diff --git a/plans/so/integration-etsi-testing/docker-compose.local.yml b/plans/so/integration-etsi-testing/docker-compose.local.yml
index d56d4d6..8fda4bf 100644
--- a/plans/so/integration-etsi-testing/docker-compose.local.yml
+++ b/plans/so/integration-etsi-testing/docker-compose.local.yml
@@ -28,6 +28,3 @@
   so-vnfm-adapter:
     image: onap/so/vnfm-adapter:${TAG}
 ################################################################################
-  so-vnfm-simulator:
-    image: onap/so/vnfm-simulator:${TAG}
-################################################################################
diff --git a/plans/so/integration-etsi-testing/docker-compose.yml b/plans/so/integration-etsi-testing/docker-compose.yml
index 895e8de..96eea96 100644
--- a/plans/so/integration-etsi-testing/docker-compose.yml
+++ b/plans/so/integration-etsi-testing/docker-compose.yml
@@ -310,10 +310,11 @@
         max-file: "5"
 ################################################################################
   so-vnfm-simulator:
-    image: ${NEXUS_DOCKER_REPO_MSO}/onap/so/vnfm-simulator:${TAG}
+    image: simulators/vnfm-simulator:latest
     ports:
       - "9093:9093"
     volumes:
+      - ${TEST_LAB_DIR}/volumes/so/ca-certificates/onapheat:/app/ca-certificates
       - ${CONFIG_DIR_PATH}/override-files/vnfm-simulator/onapheat:/app/config
     environment:
       - APP=VNFM-SIMULATOR
diff --git a/plans/so/integration-etsi-testing/so-simulators/package/docker/pom.xml b/plans/so/integration-etsi-testing/so-simulators/package/docker/pom.xml
index 8cf8c7f..9334a09 100644
--- a/plans/so/integration-etsi-testing/so-simulators/package/docker/pom.xml
+++ b/plans/so/integration-etsi-testing/so-simulators/package/docker/pom.xml
@@ -99,6 +99,29 @@
                                 </assembly>
                             </build>
                         </image>
+                        <image>
+                            <name>simulators/vnfm-simulator</name>
+                            <build>
+                                <cleanup>try</cleanup>
+                                <dockerFileDir>docker-files</dockerFileDir>
+                                <dockerFile>Dockerfile.so-simulator-base-image</dockerFile>
+                                <tags>
+                                    <tag>${project.version}</tag>
+                                </tags>
+                                <assembly>
+                                    <inline>
+                                        <dependencySets>
+                                            <dependencySet>
+                                                <includes>
+                                                    <include>org.onap.so.simulators.vnfm:vnfm-service</include>
+                                                </includes>
+                                                <outputFileNameMapping>app.jar</outputFileNameMapping>
+                                            </dependencySet>
+                                        </dependencySets>
+                                    </inline>
+                                </assembly>
+                            </build>
+                        </image>
                     </images>
                 </configuration>
                 <executions>
@@ -147,5 +170,10 @@
             <artifactId>sdnc-simulator</artifactId>
             <version>${project.version}</version>
         </dependency>
+        <dependency>
+            <groupId>org.onap.so.simulators.vnfm</groupId>
+            <artifactId>vnfm-service</artifactId>
+            <version>${project.version}</version>
+        </dependency>
     </dependencies>
 </project>
\ No newline at end of file
diff --git a/plans/so/integration-etsi-testing/so-simulators/pom.xml b/plans/so/integration-etsi-testing/so-simulators/pom.xml
index 08d962b..80d4ba9 100644
--- a/plans/so/integration-etsi-testing/so-simulators/pom.xml
+++ b/plans/so/integration-etsi-testing/so-simulators/pom.xml
@@ -12,8 +12,10 @@
     <properties>
         <jax.ws.rs>2.1</jax.ws.rs>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
+        <java.version>1.8</java.version>
     </properties>
 
     <modules>
@@ -21,6 +23,7 @@
         <module>sdc-simulator</module>
         <module>aai-simulator</module>
         <module>sdnc-simulator</module>
+        <module>vnfm-simulator</module>
         <module>package</module>
     </modules>
 
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/pom.xml b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/pom.xml
new file mode 100644
index 0000000..9c6d8f8
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/pom.xml
@@ -0,0 +1,20 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.onap.so.simulators</groupId>
+    <artifactId>so-simulators</artifactId>
+    <version>1.0-SNAPSHOT</version>
+  </parent>
+
+  <groupId>org.onap.so.simulators.vnfm</groupId>
+  <artifactId>vnfm-simulator</artifactId>
+
+  <packaging>pom</packaging>
+  <name>${project.artifactId}</name>
+
+  <modules>
+    <module>vnfm-api</module>
+    <module>vnfm-service</module>
+  </modules>
+</project>
\ No newline at end of file
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-api/pom.xml b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-api/pom.xml
new file mode 100644
index 0000000..ade3e01
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-api/pom.xml
@@ -0,0 +1,106 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.onap.so.simulators.vnfm</groupId>
+    <artifactId>vnfm-simulator</artifactId>
+    <version>1.0-SNAPSHOT</version>
+  </parent>
+  <artifactId>vnfm-api</artifactId>
+  <name>${project.artifactId}</name>
+  <properties>
+    <gson-fire-version>1.8.2</gson-fire-version>
+    <retrofit-version>2.3.0</retrofit-version>
+    <threetenbp-version>1.3.5</threetenbp-version>
+    <rxjava-version>2.0.0-RC1</rxjava-version>
+    <oltu-version>1.0.1</oltu-version>
+    <swagger-core-version>1.5.15</swagger-core-version>
+    <gson-version>2.8.5</gson-version>
+  </properties>
+  <description>VNFM Simulator adapter API</description>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>io.swagger</groupId>
+        <artifactId>swagger-codegen-maven-plugin</artifactId>
+        <version>2.3.1</version>
+        <executions>
+          <execution>
+            <id>vnfmsimulator</id>
+            <phase>generate-sources</phase>
+            <goals>
+              <goal>generate</goal>
+            </goals>
+            <configuration>
+              <inputSpec>${basedir}/src/main/resources/vnfm-sim-swagger.yaml</inputSpec>
+              <language>java</language>
+              <library>retrofit2</library>
+              <output>${project.build.directory}/generated-sources/vnfmsimulator</output>
+              <apiPackage>org.onap.vnfm.v1.api</apiPackage>
+              <modelPackage>org.onap.vnfm.v1.model</modelPackage>
+              <configOptions>
+                <jackson>true</jackson>
+                <sourceFolder>src/gen/java/main</sourceFolder>
+                <withXml>true</withXml>
+                <useRxJava2>true</useRxJava2>
+              </configOptions>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  <dependencies>
+    <dependency>
+      <groupId>io.swagger</groupId>
+      <artifactId>swagger-annotations</artifactId>
+      <version>${swagger-core-version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.squareup.retrofit2</groupId>
+      <artifactId>converter-gson</artifactId>
+      <version>${retrofit-version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.squareup.retrofit2</groupId>
+      <artifactId>retrofit</artifactId>
+      <version>${retrofit-version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.squareup.retrofit2</groupId>
+      <artifactId>converter-scalars</artifactId>
+      <version>${retrofit-version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.oltu.oauth2</groupId>
+      <artifactId>org.apache.oltu.oauth2.client</artifactId>
+      <version>${oltu-version}</version>
+    </dependency>
+    <dependency>
+      <groupId>io.gsonfire</groupId>
+      <artifactId>gson-fire</artifactId>
+      <version>${gson-fire-version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.threeten</groupId>
+      <artifactId>threetenbp</artifactId>
+      <version>${threetenbp-version}</version>
+    </dependency>
+    <dependency>
+      <groupId>io.reactivex.rxjava2</groupId>
+      <artifactId>rxjava</artifactId>
+      <version>${rxjava-version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.squareup.retrofit2</groupId>
+      <artifactId>adapter-rxjava2</artifactId>
+      <version>${retrofit-version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.google.code.gson</groupId>
+      <artifactId>gson</artifactId>
+      <version>${gson-version}</version>
+    </dependency>
+  </dependencies>
+</project>
\ No newline at end of file
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-api/src/main/resources/vnfm-sim-swagger.json b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-api/src/main/resources/vnfm-sim-swagger.json
new file mode 100644
index 0000000..e345f26
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-api/src/main/resources/vnfm-sim-swagger.json
@@ -0,0 +1,8143 @@
+{
+  "swagger": "2.0",
+  "info": {
+    "version": "1.1.1",
+    "title": "SOL003 - VNF Lifecycle Management interface",
+    "description": "SOL003 - VNF Lifecycle Management interface definition\n\nIMPORTANT: 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.\n\nIn 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.\nPlease report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution=\n",
+    "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"
+  },
+  "basePath": "/vnflcm/v1",
+  "schemes": ["https"],
+  "consumes": ["application/json"],
+  "produces": ["application/json"],
+  "paths": {
+    "/vnf_instances": {
+      "post": {
+        "description": "Create VNF Identifier\n\nThe POST method creates a new VNF instance resource.\n",
+        "tags": ["Sol003VnfLcm"],
+        "parameters": [{
+            "name": "createVnfRequest",
+            "description": "The VNF creation parameters",
+            "in": "body",
+            "required": true,
+            "schema": {
+              "type": "object",
+              "required": ["vnfdId"],
+              "properties": {
+                "vnfdId": {
+                  "description": "An identifier with the intention of being globally unique.\n",
+                  "type": "string"
+                },
+                "vnfInstanceName": {
+                  "description": "Human-readable name of the VNF instance to be created.\n",
+                  "type": "string"
+                },
+                "vnfInstanceDescription": {
+                  "description": "Human-readable description of the VNF instance to be created.\n",
+                  "type": "string"
+                }
+              }
+            }
+          }, {
+            "name": "Accept",
+            "description": "Content-Types that are acceptable for the response. Reference: IETF RFC 7231\n",
+            "in": "header",
+            "required": true,
+            "type": "string"
+          }, {
+            "name": "Authorization",
+            "description": "The authorization token for the request. Reference: IETF RFC 7235\n",
+            "in": "header",
+            "required": false,
+            "type": "string"
+          }, {
+            "name": "Content-Type",
+            "description": "The MIME type of the body of the request. Reference: IETF RFC 7231\n",
+            "in": "header",
+            "required": true,
+            "type": "string"
+          }
+        ],
+        "responses": {
+          "201": {
+            "description": "A VNF Instance identifier was created successfully",
+            "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.\n",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 0
+              }
+            },
+            "schema": {
+              "description": "This type represents a VNF instance.\n",
+              "type": "object",
+              "required": ["id", "vnfdId", "vnfProvider", "vnfProductName", "vnfSoftwareVersion", "vnfdVersion", "vnfPkgId", "instantiationState"],
+              "properties": {
+                "id": {
+                  "description": "An identifier with the intention of being globally unique.\n",
+                  "type": "string"
+                },
+                "vnfInstanceName": {
+                  "description": "Name of the VNF instance. This attribute can be modified with the PATCH method.\n",
+                  "type": "string"
+                },
+                "vnfInstanceDescription": {
+                  "description": "Human-readable description of the VNF instance. This attribute can be modified with the PATCH method.\n",
+                  "type": "string"
+                },
+                "vnfdId": {
+                  "description": "An identifier with the intention of being globally unique.\n",
+                  "type": "string"
+                },
+                "vnfProvider": {
+                  "description": "Provider of the VNF and the VNFD. The value is copied from the VNFD.\n",
+                  "type": "string"
+                },
+                "vnfProductName": {
+                  "description": "Name to identify the VNF Product. The value is copied from the VNFD.\n",
+                  "type": "string"
+                },
+                "vnfSoftwareVersion": {
+                  "description": "A Version.\n",
+                  "type": "string"
+                },
+                "vnfdVersion": {
+                  "description": "A Version.\n",
+                  "type": "string"
+                },
+                "vnfPkgId": {
+                  "description": "An identifier with the intention of being globally unique.\n",
+                  "type": "string"
+                },
+                "vnfConfigurableProperties": {
+                  "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.\n",
+                  "type": "object"
+                },
+                "vimConnectionInfo": {
+                  "description": "Information about VIM connections to be used for managing the resources for the VNF instance. This attribute shall only be supported and present if VNF-related resource management in direct mode is applicable. This attribute can be modified with the PATCH method.\n",
+                  "type": "array",
+                  "items": {
+                    "description": "This type represents parameters to connect to a VIM for managing the resources of a VNF instance. This structure is used to convey VIM-related parameters over the Or-Vnfm interface. Additional parameters for a VIM may be configured into the VNFM by means outside the scope of the present document, and bound to the identifier of that VIM.\n",
+                    "type": "object",
+                    "required": ["id", "vimType"],
+                    "properties": {
+                      "id": {
+                        "description": "An identifier with the intention of being globally unique.\n",
+                        "type": "string"
+                      },
+                      "vimId": {
+                        "description": "An identifier with the intention of being globally unique.\n",
+                        "type": "string"
+                      },
+                      "vimType": {
+                        "description": "Discriminator for the different types of the VIM information. The value of this attribute determines the structure of the \"interfaceInfo\" and \"accessInfo\" attributes, based on the type of the VIM. The set of permitted values is expected to change over time as new types or versions of VIMs become available. The ETSI NFV registry of VIM-related information provides access to information about VimConnectionInfo definitions for various VIM types. The structure of the registry is defined in Annex C of SOL003.\n",
+                        "type": "string"
+                      },
+                      "interfaceInfo": {
+                        "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.\n",
+                        "type": "object"
+                      },
+                      "accessInfo": {
+                        "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.\n",
+                        "type": "object"
+                      },
+                      "extra": {
+                        "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.\n",
+                        "type": "object"
+                      }
+                    }
+                  }
+                },
+                "instantiationState": {
+                  "description": "The instantiation state of the VNF.\n",
+                  "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.\n",
+                  "type": "object",
+                  "required": ["flavourId", "vnfState"],
+                  "properties": {
+                    "flavourId": {
+                      "description": "An identifier that is unique within a VNF descriptor.\n",
+                      "type": "string"
+                    },
+                    "vnfState": {
+                      "type": "string",
+                      "enum": ["STARTED", "STOPPED"]
+                    },
+                    "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.\n",
+                      "type": "array",
+                      "items": {
+                        "required": ["aspectId", "scaleLevel"],
+                        "type": "object",
+                        "properties": {
+                          "aspectId": {
+                            "description": "An identifier that is unique within a VNF descriptor.\n",
+                            "type": "string"
+                          },
+                          "scaleLevel": {
+                            "description": "Indicates the scale level. The minimum value shall be 0 and the maximum value shall be <= maxScaleLevel as described in the VNFD.\n",
+                            "type": "integer"
+                          }
+                        }
+                      }
+                    },
+                    "extCpInfo": {
+                      "description": "Information about the external CPs exposed by the VNF instance.\n",
+                      "type": "array",
+                      "minItems": 1,
+                      "items": {
+                        "type": "object",
+                        "required": ["id", "cpdId"],
+                        "properties": {
+                          "id": {
+                            "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                            "type": "string"
+                          },
+                          "cpdId": {
+                            "description": "An identifier that is unique within a VNF descriptor.\n",
+                            "type": "string"
+                          },
+                          "cpProtocolInfo": {
+                            "description": "Network protocol information for this CP.\n",
+                            "type": "array",
+                            "items": {
+                              "description": "This type describes the protocol layer(s) that a CP uses together with protocol-related information, like addresses.\n",
+                              "required": ["layerProtocol"],
+                              "properties": {
+                                "layerProtocol": {
+                                  "description": "The identifier of layer(s) and protocol(s) associated to the network address information.  Permitted values: IP_OVER_ETHERNET This attribute allows to signal the addition of further types of layer and protocol in future versions of the present document in a backwards-compatible way. In the current version of the present document, only IP over Ethernet is supported.\n",
+                                  "type": "string",
+                                  "enum": ["IP_OVER_ETHERNET"]
+                                },
+                                "ipOverEthernet": {
+                                  "description": "This type represents information about a network address that has been assigned.\n",
+                                  "type": "object",
+                                  "required": ["macAddress"],
+                                  "properties": {
+                                    "macAddress": {
+                                      "description": "A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons.\n",
+                                      "type": "string",
+                                      "format": "MAC"
+                                    },
+                                    "ipAddresses": {
+                                      "description": "Addresses assigned to the CP instance. Each entry represents IP addresses assigned by fixed or dynamic IP address assignment per subnet.\n",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "object",
+                                        "required": ["type"],
+                                        "properties": {
+                                          "type": {
+                                            "description": "The type of the IP addresses. Permitted values: IPV4, IPV6.\n",
+                                            "type": "string",
+                                            "enum": ["IPV4", "IPV6"]
+                                          },
+                                          "addresses": {
+                                            "description": "Fixed addresses assigned (from the subnet defined by \"subnetId\" if provided).\n",
+                                            "type": "array",
+                                            "items": {
+                                              "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  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
+                                              "type": "string",
+                                              "format": "IP"
+                                            }
+                                          },
+                                          "isDynamic": {
+                                            "description": "Indicates whether this set of addresses was assigned dynamically (true) or based on address information provided as input from the API consumer (false). Shall be present if \"addresses\" is present and shall be absent otherwise.\n",
+                                            "type": "boolean"
+                                          },
+                                          "addressRange": {
+                                            "description": "An IP address range used, e.g., in case of egress connections. Exactly one of \"addresses\" or \"addressRange\" shall be present.\n",
+                                            "type": "object",
+                                            "required": ["minAddress", "maxAddress"],
+                                            "properties": {
+                                              "minAddress": {
+                                                "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  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
+                                                "type": "string",
+                                                "format": "IP"
+                                              },
+                                              "maxAddress": {
+                                                "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  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
+                                                "type": "string",
+                                                "format": "IP"
+                                              }
+                                            }
+                                          },
+                                          "subnetId": {
+                                            "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  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
+                                            "type": "string",
+                                            "format": "IP"
+                                          }
+                                        }
+                                      }
+                                    }
+                                  }
+                                }
+                              }
+                            }
+                          },
+                          "extLinkPortId": {
+                            "description": "An identifier with the intention of being globally unique.\n",
+                            "type": "string"
+                          }
+                        }
+                      }
+                    },
+                    "extVirtualLinkInfo": {
+                      "description": "Information about the external VLs the VNF instance is connected to.\n",
+                      "type": "array",
+                      "items": {
+                        "type": "object",
+                        "required": ["id", "resourceHandle"],
+                        "properties": {
+                          "id": {
+                            "description": "An identifier with the intention of being globally unique.\n",
+                            "type": "string"
+                          },
+                          "resourceHandle": {
+                            "required": ["vimConnectionId", "resourceId"],
+                            "type": "object",
+                            "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
+                            "properties": {
+                              "vimConnectionId": {
+                                "description": "An identifier with the intention of being globally unique.\n",
+                                "type": "string"
+                              },
+                              "resourceProviderId": {
+                                "description": "An identifier with the intention of being globally unique.\n",
+                                "type": "string"
+                              },
+                              "resourceId": {
+                                "description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
+                                "type": "string"
+                              },
+                              "vimLevelResourceType": {
+                                "description": "Type of the resource in the scope of the VIM or the resource provider.\n",
+                                "type": "string"
+                              }
+                            }
+                          },
+                          "extLinkPorts": {
+                            "description": "Link ports of this VL.\n",
+                            "type": "array",
+                            "items": {
+                              "description": "This type represents information about a link port of an external VL, i.e. a port providing connectivity for the VNF to an NS VL.\n",
+                              "type": "object",
+                              "required": ["id", "resourceHandle"],
+                              "properties": {
+                                "id": {
+                                  "description": "An identifier with the intention of being globally unique.\n",
+                                  "type": "string"
+                                },
+                                "resourceHandle": {
+                                  "required": ["vimConnectionId", "resourceId"],
+                                  "type": "object",
+                                  "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
+                                  "properties": {
+                                    "vimConnectionId": {
+                                      "description": "An identifier with the intention of being globally unique.\n",
+                                      "type": "string"
+                                    },
+                                    "resourceProviderId": {
+                                      "description": "An identifier with the intention of being globally unique.\n",
+                                      "type": "string"
+                                    },
+                                    "resourceId": {
+                                      "description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
+                                      "type": "string"
+                                    },
+                                    "vimLevelResourceType": {
+                                      "description": "Type of the resource in the scope of the VIM or the resource provider.\n",
+                                      "type": "string"
+                                    }
+                                  }
+                                },
+                                "cpInstanceId": {
+                                  "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                                  "type": "string"
+                                }
+                              }
+                            }
+                          }
+                        }
+                      }
+                    },
+                    "extManagedVirtualLinkInfo": {
+                      "description": "External virtual links the VNF instance is connected to.\n",
+                      "type": "array",
+                      "items": {
+                        "type": "object",
+                        "required": ["id", "vnfVirtualLinkDescId"],
+                        "properties": {
+                          "id": {
+                            "description": "An identifier with the intention of being globally unique.\n",
+                            "type": "string"
+                          },
+                          "vnfVirtualLinkDescId": {
+                            "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                            "type": "string"
+                          },
+                          "networkResource": {
+                            "required": ["vimConnectionId", "resourceId"],
+                            "type": "object",
+                            "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
+                            "properties": {
+                              "vimConnectionId": {
+                                "description": "An identifier with the intention of being globally unique.\n",
+                                "type": "string"
+                              },
+                              "resourceProviderId": {
+                                "description": "An identifier with the intention of being globally unique.\n",
+                                "type": "string"
+                              },
+                              "resourceId": {
+                                "description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
+                                "type": "string"
+                              },
+                              "vimLevelResourceType": {
+                                "description": "Type of the resource in the scope of the VIM or the resource provider.\n",
+                                "type": "string"
+                              }
+                            }
+                          },
+                          "vnfLinkPorts": {
+                            "description": "Link ports of this VL.\n",
+                            "type": "array",
+                            "items": {
+                              "type": "object",
+                              "required": ["id", "resourceHandle"],
+                              "properties": {
+                                "id": {
+                                  "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                                  "type": "string"
+                                },
+                                "resourceHandle": {
+                                  "required": ["vimConnectionId", "resourceId"],
+                                  "type": "object",
+                                  "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
+                                  "properties": {
+                                    "vimConnectionId": {
+                                      "description": "An identifier with the intention of being globally unique.\n",
+                                      "type": "string"
+                                    },
+                                    "resourceProviderId": {
+                                      "description": "An identifier with the intention of being globally unique.\n",
+                                      "type": "string"
+                                    },
+                                    "resourceId": {
+                                      "description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
+                                      "type": "string"
+                                    },
+                                    "vimLevelResourceType": {
+                                      "description": "Type of the resource in the scope of the VIM or the resource provider.\n",
+                                      "type": "string"
+                                    }
+                                  }
+                                },
+                                "cpInstanceId": {
+                                  "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                                  "type": "string"
+                                }
+                              }
+                            }
+                          }
+                        }
+                      }
+                    },
+                    "monitoringParameters": {
+                      "description": "Active monitoring parameters.\n",
+                      "type": "array",
+                      "items": {
+                        "type": "object",
+                        "required": ["id", "value", "timeStamp"],
+                        "properties": {
+                          "id": {
+                            "description": "An identifier that is unique within a VNF descriptor.\n",
+                            "type": "string"
+                          },
+                          "name": {
+                            "description": "Human readable name of the monitoring parameter, as defined in the VNFD.\n",
+                            "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.\n",
+                            "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.\n",
+                            "type": "string"
+                          }
+                        }
+                      }
+                    },
+                    "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.\n",
+                      "type": "string"
+                    },
+                    "vnfcResourceInfo": {
+                      "description": "Information about the virtualised compute and storage resources used by the VNFCs of the VNF instance.\n",
+                      "type": "array",
+                      "items": {
+                        "description": "This type represents the information on virtualised compute and storage resources used by a VNFC in a VNF instance.\n",
+                        "type": "object",
+                        "required": ["id", "vduId", "computeResource"],
+                        "properties": {
+                          "id": {
+                            "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                            "type": "string"
+                          },
+                          "vduId": {
+                            "description": "An identifier that is unique within a VNF descriptor.\n",
+                            "type": "string"
+                          },
+                          "computeResource": {
+                            "required": ["vimConnectionId", "resourceId"],
+                            "type": "object",
+                            "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
+                            "properties": {
+                              "vimConnectionId": {
+                                "description": "An identifier with the intention of being globally unique.\n",
+                                "type": "string"
+                              },
+                              "resourceProviderId": {
+                                "description": "An identifier with the intention of being globally unique.\n",
+                                "type": "string"
+                              },
+                              "resourceId": {
+                                "description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
+                                "type": "string"
+                              },
+                              "vimLevelResourceType": {
+                                "description": "Type of the resource in the scope of the VIM or the resource provider.\n",
+                                "type": "string"
+                              }
+                            }
+                          },
+                          "storageResourceIds": {
+                            "description": "References to the VirtualStorage resources. The value refers to a VirtualStorageResourceInfo item in the VnfInstance.\n",
+                            "type": "array",
+                            "items": {
+                              "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                              "type": "string"
+                            }
+                          },
+                          "reservationId": {
+                            "description": "An identifier with the intention of being globally unique.\n",
+                            "type": "string"
+                          },
+                          "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.\n",
+                            "type": "array",
+                            "items": {
+                              "type": "object",
+                              "required": ["id", "cpdId"],
+                              "properties": {
+                                "id": {
+                                  "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                                  "type": "string"
+                                },
+                                "cpdId": {
+                                  "description": "An identifier that is unique within a VNF descriptor.\n",
+                                  "type": "string"
+                                },
+                                "vnfExtCpId": {
+                                  "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                                  "type": "string"
+                                },
+                                "cpProtocolInfo": {
+                                  "description": "Network protocol information for this CP.\n",
+                                  "type": "array",
+                                  "items": {
+                                    "description": "This type describes the protocol layer(s) that a CP uses together with protocol-related information, like addresses.\n",
+                                    "required": ["layerProtocol"],
+                                    "properties": {
+                                      "layerProtocol": {
+                                        "description": "The identifier of layer(s) and protocol(s) associated to the network address information.  Permitted values: IP_OVER_ETHERNET This attribute allows to signal the addition of further types of layer and protocol in future versions of the present document in a backwards-compatible way. In the current version of the present document, only IP over Ethernet is supported.\n",
+                                        "type": "string",
+                                        "enum": ["IP_OVER_ETHERNET"]
+                                      },
+                                      "ipOverEthernet": {
+                                        "description": "This type represents information about a network address that has been assigned.\n",
+                                        "type": "object",
+                                        "required": ["macAddress"],
+                                        "properties": {
+                                          "macAddress": {
+                                            "description": "A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons.\n",
+                                            "type": "string",
+                                            "format": "MAC"
+                                          },
+                                          "ipAddresses": {
+                                            "description": "Addresses assigned to the CP instance. Each entry represents IP addresses assigned by fixed or dynamic IP address assignment per subnet.\n",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "object",
+                                              "required": ["type"],
+                                              "properties": {
+                                                "type": {
+                                                  "description": "The type of the IP addresses. Permitted values: IPV4, IPV6.\n",
+                                                  "type": "string",
+                                                  "enum": ["IPV4", "IPV6"]
+                                                },
+                                                "addresses": {
+                                                  "description": "Fixed addresses assigned (from the subnet defined by \"subnetId\" if provided).\n",
+                                                  "type": "array",
+                                                  "items": {
+                                                    "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  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
+                                                    "type": "string",
+                                                    "format": "IP"
+                                                  }
+                                                },
+                                                "isDynamic": {
+                                                  "description": "Indicates whether this set of addresses was assigned dynamically (true) or based on address information provided as input from the API consumer (false). Shall be present if \"addresses\" is present and shall be absent otherwise.\n",
+                                                  "type": "boolean"
+                                                },
+                                                "addressRange": {
+                                                  "description": "An IP address range used, e.g., in case of egress connections. Exactly one of \"addresses\" or \"addressRange\" shall be present.\n",
+                                                  "type": "object",
+                                                  "required": ["minAddress", "maxAddress"],
+                                                  "properties": {
+                                                    "minAddress": {
+                                                      "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  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
+                                                      "type": "string",
+                                                      "format": "IP"
+                                                    },
+                                                    "maxAddress": {
+                                                      "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  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
+                                                      "type": "string",
+                                                      "format": "IP"
+                                                    }
+                                                  }
+                                                },
+                                                "subnetId": {
+                                                  "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  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
+                                                  "type": "string",
+                                                  "format": "IP"
+                                                }
+                                              }
+                                            }
+                                          }
+                                        }
+                                      }
+                                    }
+                                  }
+                                },
+                                "vnfLinkPortId": {
+                                  "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                                  "type": "string"
+                                }
+                              }
+                            }
+                          },
+                          "metadata": {
+                            "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.\n",
+                            "type": "object"
+                          }
+                        }
+                      }
+                    },
+                    "virtualLinkResourceInfo": {
+                      "description": "Information about the virtualised network resources used by the VLs of the VNF instance.\n",
+                      "type": "array",
+                      "items": {
+                        "description": "This type represents the information that allows addressing a virtualised resource that is used by an internal VL instance in a VNF instance.\n",
+                        "type": "object",
+                        "required": ["id", "vnfVirtualLinkDescId", "networkResource"],
+                        "properties": {
+                          "id": {
+                            "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                            "type": "string"
+                          },
+                          "vnfVirtualLinkDescId": {
+                            "description": "An identifier that is unique within a VNF descriptor.\n",
+                            "type": "string"
+                          },
+                          "networkResource": {
+                            "required": ["vimConnectionId", "resourceId"],
+                            "type": "object",
+                            "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
+                            "properties": {
+                              "vimConnectionId": {
+                                "description": "An identifier with the intention of being globally unique.\n",
+                                "type": "string"
+                              },
+                              "resourceProviderId": {
+                                "description": "An identifier with the intention of being globally unique.\n",
+                                "type": "string"
+                              },
+                              "resourceId": {
+                                "description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
+                                "type": "string"
+                              },
+                              "vimLevelResourceType": {
+                                "description": "Type of the resource in the scope of the VIM or the resource provider.\n",
+                                "type": "string"
+                              }
+                            }
+                          },
+                          "reservationId": {
+                            "description": "An identifier with the intention of being globally unique.\n",
+                            "type": "string"
+                          },
+                          "vnfLinkPorts": {
+                            "description": "Links ports of this VL. Shall be present when the linkPort is used for external connectivity by the VNF (refer to VnfLinkPortInfo). May be present otherwise.\n",
+                            "type": "array",
+                            "items": {
+                              "type": "object",
+                              "required": ["id", "resourceHandle"],
+                              "properties": {
+                                "id": {
+                                  "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                                  "type": "string"
+                                },
+                                "resourceHandle": {
+                                  "required": ["vimConnectionId", "resourceId"],
+                                  "type": "object",
+                                  "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
+                                  "properties": {
+                                    "vimConnectionId": {
+                                      "description": "An identifier with the intention of being globally unique.\n",
+                                      "type": "string"
+                                    },
+                                    "resourceProviderId": {
+                                      "description": "An identifier with the intention of being globally unique.\n",
+                                      "type": "string"
+                                    },
+                                    "resourceId": {
+                                      "description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
+                                      "type": "string"
+                                    },
+                                    "vimLevelResourceType": {
+                                      "description": "Type of the resource in the scope of the VIM or the resource provider.\n",
+                                      "type": "string"
+                                    }
+                                  }
+                                },
+                                "cpInstanceId": {
+                                  "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                                  "type": "string"
+                                }
+                              }
+                            }
+                          },
+                          "metadata": {
+                            "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.\n",
+                            "type": "object"
+                          }
+                        }
+                      }
+                    },
+                    "virtualStorageResourceInfo": {
+                      "description": "Information on the virtualised storage resource(s) used as storage for the VNF instance.\n",
+                      "type": "array",
+                      "items": {
+                        "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance.\n",
+                        "type": "object",
+                        "required": ["id", "virtualStorageDescId", "storageResource"],
+                        "properties": {
+                          "id": {
+                            "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                            "type": "string"
+                          },
+                          "virtualStorageDescId": {
+                            "description": "An identifier that is unique within a VNF descriptor.\n",
+                            "type": "string"
+                          },
+                          "storageResource": {
+                            "required": ["vimConnectionId", "resourceId"],
+                            "type": "object",
+                            "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
+                            "properties": {
+                              "vimConnectionId": {
+                                "description": "An identifier with the intention of being globally unique.\n",
+                                "type": "string"
+                              },
+                              "resourceProviderId": {
+                                "description": "An identifier with the intention of being globally unique.\n",
+                                "type": "string"
+                              },
+                              "resourceId": {
+                                "description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
+                                "type": "string"
+                              },
+                              "vimLevelResourceType": {
+                                "description": "Type of the resource in the scope of the VIM or the resource provider.\n",
+                                "type": "string"
+                              }
+                            }
+                          },
+                          "reservationId": {
+                            "description": "An identifier with the intention of being globally unique.\n",
+                            "type": "string"
+                          },
+                          "metadata": {
+                            "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.\n",
+                            "type": "object"
+                          }
+                        }
+                      }
+                    }
+                  }
+                },
+                "metadata": {
+                  "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.\n",
+                  "type": "object"
+                },
+                "extensions": {
+                  "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.\n",
+                  "type": "object"
+                },
+                "_links": {
+                  "description": "Links to resources related to this resource.\n",
+                  "type": "object",
+                  "required": ["self"],
+                  "properties": {
+                    "self": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    },
+                    "indicators": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    },
+                    "instantiate": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    },
+                    "terminate": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    },
+                    "scale": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    },
+                    "scaleToLevel": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    },
+                    "changeFlavour": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    },
+                    "heal": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    },
+                    "operate": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    },
+                    "changeExtConn": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "400": {
+            "description": "Bad Request\nIf 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.\n ---\n\nIf 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.\n ---\n\nIf 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.\n",
+            "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.\n",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 0
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "401": {
+            "description": "Unauthorized\nIf 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.\n",
+            "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.\n",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 0
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "403": {
+            "description": "Forbidden\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "404": {
+            "description": "Not Found\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "405": {
+            "description": "Not Found\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "406": {
+            "description": "Not Acceptable\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "409": {
+            "description": "Conflict\nAnother request is in progress that prohibits the fulfilment of the current request, or the current resource state is inconsistent with the request.\n",
+            "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.\n",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 0
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "416": {
+            "description": "Requested Range Not Satisfiable\nThis code is returned if the requested byte range in the Range HTTP header is not present in the requested resource.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "422": {
+            "description": "Unprocessable Entity\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "500": {
+            "description": "Internal Server Error\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "503": {
+            "description": "Service Unavailable\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/vnf_instances/{vnfInstanceId}": {
+      "parameters": [{
+          "name": "vnfInstanceId",
+          "description": "Identifier of the VNF instance. 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.\n",
+          "in": "path",
+          "type": "string",
+          "required": true
+        }
+      ],
+      "get": {
+        "description": "Query VNF\n\nThe GET method retrieves information about a VNF instance by reading an individual VNF instance resource.\n",
+        "tags": ["Sol003VnfLcm"],
+        "parameters": [{
+            "name": "Accept",
+            "description": "Content-Types that are acceptable for the response. Reference: IETF RFC 7231\n",
+            "in": "header",
+            "required": true,
+            "type": "string"
+          }, {
+            "name": "Authorization",
+            "description": "The authorization token for the request. Reference: IETF RFC 7235\n",
+            "in": "header",
+            "required": false,
+            "type": "string"
+          }, {
+            "name": "Content-Type",
+            "description": "The MIME type of the body of the request. Reference: IETF RFC 7231\n",
+            "in": "header",
+            "required": true,
+            "type": "string"
+          }
+        ],
+        "responses": {
+          "200": {
+            "description": "OK\nInformation about zero or more VNF instances was queried successfully. The response body shall contain representations of zero or more VNF instances.\n",
+            "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.\n",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 0
+              }
+            },
+            "schema": {
+              "description": "This type represents a VNF instance.\n",
+              "type": "object",
+              "required": ["id", "vnfdId", "vnfProvider", "vnfProductName", "vnfSoftwareVersion", "vnfdVersion", "vnfPkgId", "instantiationState"],
+              "properties": {
+                "id": {
+                  "description": "An identifier with the intention of being globally unique.\n",
+                  "type": "string"
+                },
+                "vnfInstanceName": {
+                  "description": "Name of the VNF instance. This attribute can be modified with the PATCH method.\n",
+                  "type": "string"
+                },
+                "vnfInstanceDescription": {
+                  "description": "Human-readable description of the VNF instance. This attribute can be modified with the PATCH method.\n",
+                  "type": "string"
+                },
+                "vnfdId": {
+                  "description": "An identifier with the intention of being globally unique.\n",
+                  "type": "string"
+                },
+                "vnfProvider": {
+                  "description": "Provider of the VNF and the VNFD. The value is copied from the VNFD.\n",
+                  "type": "string"
+                },
+                "vnfProductName": {
+                  "description": "Name to identify the VNF Product. The value is copied from the VNFD.\n",
+                  "type": "string"
+                },
+                "vnfSoftwareVersion": {
+                  "description": "A Version.\n",
+                  "type": "string"
+                },
+                "vnfdVersion": {
+                  "description": "A Version.\n",
+                  "type": "string"
+                },
+                "vnfPkgId": {
+                  "description": "An identifier with the intention of being globally unique.\n",
+                  "type": "string"
+                },
+                "vnfConfigurableProperties": {
+                  "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.\n",
+                  "type": "object"
+                },
+                "vimConnectionInfo": {
+                  "description": "Information about VIM connections to be used for managing the resources for the VNF instance. This attribute shall only be supported and present if VNF-related resource management in direct mode is applicable. This attribute can be modified with the PATCH method.\n",
+                  "type": "array",
+                  "items": {
+                    "description": "This type represents parameters to connect to a VIM for managing the resources of a VNF instance. This structure is used to convey VIM-related parameters over the Or-Vnfm interface. Additional parameters for a VIM may be configured into the VNFM by means outside the scope of the present document, and bound to the identifier of that VIM.\n",
+                    "type": "object",
+                    "required": ["id", "vimType"],
+                    "properties": {
+                      "id": {
+                        "description": "An identifier with the intention of being globally unique.\n",
+                        "type": "string"
+                      },
+                      "vimId": {
+                        "description": "An identifier with the intention of being globally unique.\n",
+                        "type": "string"
+                      },
+                      "vimType": {
+                        "description": "Discriminator for the different types of the VIM information. The value of this attribute determines the structure of the \"interfaceInfo\" and \"accessInfo\" attributes, based on the type of the VIM. The set of permitted values is expected to change over time as new types or versions of VIMs become available. The ETSI NFV registry of VIM-related information provides access to information about VimConnectionInfo definitions for various VIM types. The structure of the registry is defined in Annex C of SOL003.\n",
+                        "type": "string"
+                      },
+                      "interfaceInfo": {
+                        "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.\n",
+                        "type": "object"
+                      },
+                      "accessInfo": {
+                        "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.\n",
+                        "type": "object"
+                      },
+                      "extra": {
+                        "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.\n",
+                        "type": "object"
+                      }
+                    }
+                  }
+                },
+                "instantiationState": {
+                  "description": "The instantiation state of the VNF.\n",
+                  "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.\n",
+                  "type": "object",
+                  "required": ["flavourId", "vnfState"],
+                  "properties": {
+                    "flavourId": {
+                      "description": "An identifier that is unique within a VNF descriptor.\n",
+                      "type": "string"
+                    },
+                    "vnfState": {
+                      "type": "string",
+                      "enum": ["STARTED", "STOPPED"]
+                    },
+                    "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.\n",
+                      "type": "array",
+                      "items": {
+                        "required": ["aspectId", "scaleLevel"],
+                        "type": "object",
+                        "properties": {
+                          "aspectId": {
+                            "description": "An identifier that is unique within a VNF descriptor.\n",
+                            "type": "string"
+                          },
+                          "scaleLevel": {
+                            "description": "Indicates the scale level. The minimum value shall be 0 and the maximum value shall be <= maxScaleLevel as described in the VNFD.\n",
+                            "type": "integer"
+                          }
+                        }
+                      }
+                    },
+                    "extCpInfo": {
+                      "description": "Information about the external CPs exposed by the VNF instance.\n",
+                      "type": "array",
+                      "minItems": 1,
+                      "items": {
+                        "type": "object",
+                        "required": ["id", "cpdId"],
+                        "properties": {
+                          "id": {
+                            "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                            "type": "string"
+                          },
+                          "cpdId": {
+                            "description": "An identifier that is unique within a VNF descriptor.\n",
+                            "type": "string"
+                          },
+                          "cpProtocolInfo": {
+                            "description": "Network protocol information for this CP.\n",
+                            "type": "array",
+                            "items": {
+                              "description": "This type describes the protocol layer(s) that a CP uses together with protocol-related information, like addresses.\n",
+                              "required": ["layerProtocol"],
+                              "properties": {
+                                "layerProtocol": {
+                                  "description": "The identifier of layer(s) and protocol(s) associated to the network address information.  Permitted values: IP_OVER_ETHERNET This attribute allows to signal the addition of further types of layer and protocol in future versions of the present document in a backwards-compatible way. In the current version of the present document, only IP over Ethernet is supported.\n",
+                                  "type": "string",
+                                  "enum": ["IP_OVER_ETHERNET"]
+                                },
+                                "ipOverEthernet": {
+                                  "description": "This type represents information about a network address that has been assigned.\n",
+                                  "type": "object",
+                                  "required": ["macAddress"],
+                                  "properties": {
+                                    "macAddress": {
+                                      "description": "A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons.\n",
+                                      "type": "string",
+                                      "format": "MAC"
+                                    },
+                                    "ipAddresses": {
+                                      "description": "Addresses assigned to the CP instance. Each entry represents IP addresses assigned by fixed or dynamic IP address assignment per subnet.\n",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "object",
+                                        "required": ["type"],
+                                        "properties": {
+                                          "type": {
+                                            "description": "The type of the IP addresses. Permitted values: IPV4, IPV6.\n",
+                                            "type": "string",
+                                            "enum": ["IPV4", "IPV6"]
+                                          },
+                                          "addresses": {
+                                            "description": "Fixed addresses assigned (from the subnet defined by \"subnetId\" if provided).\n",
+                                            "type": "array",
+                                            "items": {
+                                              "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  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
+                                              "type": "string",
+                                              "format": "IP"
+                                            }
+                                          },
+                                          "isDynamic": {
+                                            "description": "Indicates whether this set of addresses was assigned dynamically (true) or based on address information provided as input from the API consumer (false). Shall be present if \"addresses\" is present and shall be absent otherwise.\n",
+                                            "type": "boolean"
+                                          },
+                                          "addressRange": {
+                                            "description": "An IP address range used, e.g., in case of egress connections. Exactly one of \"addresses\" or \"addressRange\" shall be present.\n",
+                                            "type": "object",
+                                            "required": ["minAddress", "maxAddress"],
+                                            "properties": {
+                                              "minAddress": {
+                                                "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  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
+                                                "type": "string",
+                                                "format": "IP"
+                                              },
+                                              "maxAddress": {
+                                                "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  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
+                                                "type": "string",
+                                                "format": "IP"
+                                              }
+                                            }
+                                          },
+                                          "subnetId": {
+                                            "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  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
+                                            "type": "string",
+                                            "format": "IP"
+                                          }
+                                        }
+                                      }
+                                    }
+                                  }
+                                }
+                              }
+                            }
+                          },
+                          "extLinkPortId": {
+                            "description": "An identifier with the intention of being globally unique.\n",
+                            "type": "string"
+                          }
+                        }
+                      }
+                    },
+                    "extVirtualLinkInfo": {
+                      "description": "Information about the external VLs the VNF instance is connected to.\n",
+                      "type": "array",
+                      "items": {
+                        "type": "object",
+                        "required": ["id", "resourceHandle"],
+                        "properties": {
+                          "id": {
+                            "description": "An identifier with the intention of being globally unique.\n",
+                            "type": "string"
+                          },
+                          "resourceHandle": {
+                            "required": ["vimConnectionId", "resourceId"],
+                            "type": "object",
+                            "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
+                            "properties": {
+                              "vimConnectionId": {
+                                "description": "An identifier with the intention of being globally unique.\n",
+                                "type": "string"
+                              },
+                              "resourceProviderId": {
+                                "description": "An identifier with the intention of being globally unique.\n",
+                                "type": "string"
+                              },
+                              "resourceId": {
+                                "description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
+                                "type": "string"
+                              },
+                              "vimLevelResourceType": {
+                                "description": "Type of the resource in the scope of the VIM or the resource provider.\n",
+                                "type": "string"
+                              }
+                            }
+                          },
+                          "extLinkPorts": {
+                            "description": "Link ports of this VL.\n",
+                            "type": "array",
+                            "items": {
+                              "description": "This type represents information about a link port of an external VL, i.e. a port providing connectivity for the VNF to an NS VL.\n",
+                              "type": "object",
+                              "required": ["id", "resourceHandle"],
+                              "properties": {
+                                "id": {
+                                  "description": "An identifier with the intention of being globally unique.\n",
+                                  "type": "string"
+                                },
+                                "resourceHandle": {
+                                  "required": ["vimConnectionId", "resourceId"],
+                                  "type": "object",
+                                  "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
+                                  "properties": {
+                                    "vimConnectionId": {
+                                      "description": "An identifier with the intention of being globally unique.\n",
+                                      "type": "string"
+                                    },
+                                    "resourceProviderId": {
+                                      "description": "An identifier with the intention of being globally unique.\n",
+                                      "type": "string"
+                                    },
+                                    "resourceId": {
+                                      "description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
+                                      "type": "string"
+                                    },
+                                    "vimLevelResourceType": {
+                                      "description": "Type of the resource in the scope of the VIM or the resource provider.\n",
+                                      "type": "string"
+                                    }
+                                  }
+                                },
+                                "cpInstanceId": {
+                                  "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                                  "type": "string"
+                                }
+                              }
+                            }
+                          }
+                        }
+                      }
+                    },
+                    "extManagedVirtualLinkInfo": {
+                      "description": "External virtual links the VNF instance is connected to.\n",
+                      "type": "array",
+                      "items": {
+                        "type": "object",
+                        "required": ["id", "vnfVirtualLinkDescId"],
+                        "properties": {
+                          "id": {
+                            "description": "An identifier with the intention of being globally unique.\n",
+                            "type": "string"
+                          },
+                          "vnfVirtualLinkDescId": {
+                            "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                            "type": "string"
+                          },
+                          "networkResource": {
+                            "required": ["vimConnectionId", "resourceId"],
+                            "type": "object",
+                            "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
+                            "properties": {
+                              "vimConnectionId": {
+                                "description": "An identifier with the intention of being globally unique.\n",
+                                "type": "string"
+                              },
+                              "resourceProviderId": {
+                                "description": "An identifier with the intention of being globally unique.\n",
+                                "type": "string"
+                              },
+                              "resourceId": {
+                                "description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
+                                "type": "string"
+                              },
+                              "vimLevelResourceType": {
+                                "description": "Type of the resource in the scope of the VIM or the resource provider.\n",
+                                "type": "string"
+                              }
+                            }
+                          },
+                          "vnfLinkPorts": {
+                            "description": "Link ports of this VL.\n",
+                            "type": "array",
+                            "items": {
+                              "type": "object",
+                              "required": ["id", "resourceHandle"],
+                              "properties": {
+                                "id": {
+                                  "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                                  "type": "string"
+                                },
+                                "resourceHandle": {
+                                  "required": ["vimConnectionId", "resourceId"],
+                                  "type": "object",
+                                  "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
+                                  "properties": {
+                                    "vimConnectionId": {
+                                      "description": "An identifier with the intention of being globally unique.\n",
+                                      "type": "string"
+                                    },
+                                    "resourceProviderId": {
+                                      "description": "An identifier with the intention of being globally unique.\n",
+                                      "type": "string"
+                                    },
+                                    "resourceId": {
+                                      "description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
+                                      "type": "string"
+                                    },
+                                    "vimLevelResourceType": {
+                                      "description": "Type of the resource in the scope of the VIM or the resource provider.\n",
+                                      "type": "string"
+                                    }
+                                  }
+                                },
+                                "cpInstanceId": {
+                                  "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                                  "type": "string"
+                                }
+                              }
+                            }
+                          }
+                        }
+                      }
+                    },
+                    "monitoringParameters": {
+                      "description": "Active monitoring parameters.\n",
+                      "type": "array",
+                      "items": {
+                        "type": "object",
+                        "required": ["id", "value", "timeStamp"],
+                        "properties": {
+                          "id": {
+                            "description": "An identifier that is unique within a VNF descriptor.\n",
+                            "type": "string"
+                          },
+                          "name": {
+                            "description": "Human readable name of the monitoring parameter, as defined in the VNFD.\n",
+                            "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.\n",
+                            "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.\n",
+                            "type": "string"
+                          }
+                        }
+                      }
+                    },
+                    "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.\n",
+                      "type": "string"
+                    },
+                    "vnfcResourceInfo": {
+                      "description": "Information about the virtualised compute and storage resources used by the VNFCs of the VNF instance.\n",
+                      "type": "array",
+                      "items": {
+                        "description": "This type represents the information on virtualised compute and storage resources used by a VNFC in a VNF instance.\n",
+                        "type": "object",
+                        "required": ["id", "vduId", "computeResource"],
+                        "properties": {
+                          "id": {
+                            "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                            "type": "string"
+                          },
+                          "vduId": {
+                            "description": "An identifier that is unique within a VNF descriptor.\n",
+                            "type": "string"
+                          },
+                          "computeResource": {
+                            "required": ["vimConnectionId", "resourceId"],
+                            "type": "object",
+                            "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
+                            "properties": {
+                              "vimConnectionId": {
+                                "description": "An identifier with the intention of being globally unique.\n",
+                                "type": "string"
+                              },
+                              "resourceProviderId": {
+                                "description": "An identifier with the intention of being globally unique.\n",
+                                "type": "string"
+                              },
+                              "resourceId": {
+                                "description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
+                                "type": "string"
+                              },
+                              "vimLevelResourceType": {
+                                "description": "Type of the resource in the scope of the VIM or the resource provider.\n",
+                                "type": "string"
+                              }
+                            }
+                          },
+                          "storageResourceIds": {
+                            "description": "References to the VirtualStorage resources. The value refers to a VirtualStorageResourceInfo item in the VnfInstance.\n",
+                            "type": "array",
+                            "items": {
+                              "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                              "type": "string"
+                            }
+                          },
+                          "reservationId": {
+                            "description": "An identifier with the intention of being globally unique.\n",
+                            "type": "string"
+                          },
+                          "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.\n",
+                            "type": "array",
+                            "items": {
+                              "type": "object",
+                              "required": ["id", "cpdId"],
+                              "properties": {
+                                "id": {
+                                  "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                                  "type": "string"
+                                },
+                                "cpdId": {
+                                  "description": "An identifier that is unique within a VNF descriptor.\n",
+                                  "type": "string"
+                                },
+                                "vnfExtCpId": {
+                                  "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                                  "type": "string"
+                                },
+                                "cpProtocolInfo": {
+                                  "description": "Network protocol information for this CP.\n",
+                                  "type": "array",
+                                  "items": {
+                                    "description": "This type describes the protocol layer(s) that a CP uses together with protocol-related information, like addresses.\n",
+                                    "required": ["layerProtocol"],
+                                    "properties": {
+                                      "layerProtocol": {
+                                        "description": "The identifier of layer(s) and protocol(s) associated to the network address information.  Permitted values: IP_OVER_ETHERNET This attribute allows to signal the addition of further types of layer and protocol in future versions of the present document in a backwards-compatible way. In the current version of the present document, only IP over Ethernet is supported.\n",
+                                        "type": "string",
+                                        "enum": ["IP_OVER_ETHERNET"]
+                                      },
+                                      "ipOverEthernet": {
+                                        "description": "This type represents information about a network address that has been assigned.\n",
+                                        "type": "object",
+                                        "required": ["macAddress"],
+                                        "properties": {
+                                          "macAddress": {
+                                            "description": "A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons.\n",
+                                            "type": "string",
+                                            "format": "MAC"
+                                          },
+                                          "ipAddresses": {
+                                            "description": "Addresses assigned to the CP instance. Each entry represents IP addresses assigned by fixed or dynamic IP address assignment per subnet.\n",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "object",
+                                              "required": ["type"],
+                                              "properties": {
+                                                "type": {
+                                                  "description": "The type of the IP addresses. Permitted values: IPV4, IPV6.\n",
+                                                  "type": "string",
+                                                  "enum": ["IPV4", "IPV6"]
+                                                },
+                                                "addresses": {
+                                                  "description": "Fixed addresses assigned (from the subnet defined by \"subnetId\" if provided).\n",
+                                                  "type": "array",
+                                                  "items": {
+                                                    "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  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
+                                                    "type": "string",
+                                                    "format": "IP"
+                                                  }
+                                                },
+                                                "isDynamic": {
+                                                  "description": "Indicates whether this set of addresses was assigned dynamically (true) or based on address information provided as input from the API consumer (false). Shall be present if \"addresses\" is present and shall be absent otherwise.\n",
+                                                  "type": "boolean"
+                                                },
+                                                "addressRange": {
+                                                  "description": "An IP address range used, e.g., in case of egress connections. Exactly one of \"addresses\" or \"addressRange\" shall be present.\n",
+                                                  "type": "object",
+                                                  "required": ["minAddress", "maxAddress"],
+                                                  "properties": {
+                                                    "minAddress": {
+                                                      "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  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
+                                                      "type": "string",
+                                                      "format": "IP"
+                                                    },
+                                                    "maxAddress": {
+                                                      "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  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
+                                                      "type": "string",
+                                                      "format": "IP"
+                                                    }
+                                                  }
+                                                },
+                                                "subnetId": {
+                                                  "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  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
+                                                  "type": "string",
+                                                  "format": "IP"
+                                                }
+                                              }
+                                            }
+                                          }
+                                        }
+                                      }
+                                    }
+                                  }
+                                },
+                                "vnfLinkPortId": {
+                                  "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                                  "type": "string"
+                                }
+                              }
+                            }
+                          },
+                          "metadata": {
+                            "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.\n",
+                            "type": "object"
+                          }
+                        }
+                      }
+                    },
+                    "virtualLinkResourceInfo": {
+                      "description": "Information about the virtualised network resources used by the VLs of the VNF instance.\n",
+                      "type": "array",
+                      "items": {
+                        "description": "This type represents the information that allows addressing a virtualised resource that is used by an internal VL instance in a VNF instance.\n",
+                        "type": "object",
+                        "required": ["id", "vnfVirtualLinkDescId", "networkResource"],
+                        "properties": {
+                          "id": {
+                            "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                            "type": "string"
+                          },
+                          "vnfVirtualLinkDescId": {
+                            "description": "An identifier that is unique within a VNF descriptor.\n",
+                            "type": "string"
+                          },
+                          "networkResource": {
+                            "required": ["vimConnectionId", "resourceId"],
+                            "type": "object",
+                            "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
+                            "properties": {
+                              "vimConnectionId": {
+                                "description": "An identifier with the intention of being globally unique.\n",
+                                "type": "string"
+                              },
+                              "resourceProviderId": {
+                                "description": "An identifier with the intention of being globally unique.\n",
+                                "type": "string"
+                              },
+                              "resourceId": {
+                                "description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
+                                "type": "string"
+                              },
+                              "vimLevelResourceType": {
+                                "description": "Type of the resource in the scope of the VIM or the resource provider.\n",
+                                "type": "string"
+                              }
+                            }
+                          },
+                          "reservationId": {
+                            "description": "An identifier with the intention of being globally unique.\n",
+                            "type": "string"
+                          },
+                          "vnfLinkPorts": {
+                            "description": "Links ports of this VL. Shall be present when the linkPort is used for external connectivity by the VNF (refer to VnfLinkPortInfo). May be present otherwise.\n",
+                            "type": "array",
+                            "items": {
+                              "type": "object",
+                              "required": ["id", "resourceHandle"],
+                              "properties": {
+                                "id": {
+                                  "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                                  "type": "string"
+                                },
+                                "resourceHandle": {
+                                  "required": ["vimConnectionId", "resourceId"],
+                                  "type": "object",
+                                  "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
+                                  "properties": {
+                                    "vimConnectionId": {
+                                      "description": "An identifier with the intention of being globally unique.\n",
+                                      "type": "string"
+                                    },
+                                    "resourceProviderId": {
+                                      "description": "An identifier with the intention of being globally unique.\n",
+                                      "type": "string"
+                                    },
+                                    "resourceId": {
+                                      "description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
+                                      "type": "string"
+                                    },
+                                    "vimLevelResourceType": {
+                                      "description": "Type of the resource in the scope of the VIM or the resource provider.\n",
+                                      "type": "string"
+                                    }
+                                  }
+                                },
+                                "cpInstanceId": {
+                                  "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                                  "type": "string"
+                                }
+                              }
+                            }
+                          },
+                          "metadata": {
+                            "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.\n",
+                            "type": "object"
+                          }
+                        }
+                      }
+                    },
+                    "virtualStorageResourceInfo": {
+                      "description": "Information on the virtualised storage resource(s) used as storage for the VNF instance.\n",
+                      "type": "array",
+                      "items": {
+                        "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance.\n",
+                        "type": "object",
+                        "required": ["id", "virtualStorageDescId", "storageResource"],
+                        "properties": {
+                          "id": {
+                            "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                            "type": "string"
+                          },
+                          "virtualStorageDescId": {
+                            "description": "An identifier that is unique within a VNF descriptor.\n",
+                            "type": "string"
+                          },
+                          "storageResource": {
+                            "required": ["vimConnectionId", "resourceId"],
+                            "type": "object",
+                            "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
+                            "properties": {
+                              "vimConnectionId": {
+                                "description": "An identifier with the intention of being globally unique.\n",
+                                "type": "string"
+                              },
+                              "resourceProviderId": {
+                                "description": "An identifier with the intention of being globally unique.\n",
+                                "type": "string"
+                              },
+                              "resourceId": {
+                                "description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
+                                "type": "string"
+                              },
+                              "vimLevelResourceType": {
+                                "description": "Type of the resource in the scope of the VIM or the resource provider.\n",
+                                "type": "string"
+                              }
+                            }
+                          },
+                          "reservationId": {
+                            "description": "An identifier with the intention of being globally unique.\n",
+                            "type": "string"
+                          },
+                          "metadata": {
+                            "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.\n",
+                            "type": "object"
+                          }
+                        }
+                      }
+                    }
+                  }
+                },
+                "metadata": {
+                  "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.\n",
+                  "type": "object"
+                },
+                "extensions": {
+                  "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.\n",
+                  "type": "object"
+                },
+                "_links": {
+                  "description": "Links to resources related to this resource.\n",
+                  "type": "object",
+                  "required": ["self"],
+                  "properties": {
+                    "self": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    },
+                    "indicators": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    },
+                    "instantiate": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    },
+                    "terminate": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    },
+                    "scale": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    },
+                    "scaleToLevel": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    },
+                    "changeFlavour": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    },
+                    "heal": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    },
+                    "operate": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    },
+                    "changeExtConn": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "400": {
+            "description": "Bad Request\nIf 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.\n ---\n\nIf 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.\n ---\n\nIf 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.\n",
+            "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.\n",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 0
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "401": {
+            "description": "Unauthorized\nIf 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.\n",
+            "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.\n",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 0
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "403": {
+            "description": "Forbidden\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "404": {
+            "description": "Not Found\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "405": {
+            "description": "Not Found\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "406": {
+            "description": "Not Acceptable\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "409": {
+            "description": "Conflict\nAnother request is in progress that prohibits the fulfilment of the current request, or the current resource state is inconsistent with the request.\n",
+            "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.\n",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 0
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "416": {
+            "description": "Requested Range Not Satisfiable\nThis code is returned if the requested byte range in the Range HTTP header is not present in the requested resource.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "500": {
+            "description": "Internal Server Error\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "503": {
+            "description": "Service Unavailable\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          }
+        }
+      },
+      "delete": {
+        "description": "Delete VNF Identifier\n\nThis method deletes an individual VNF instance resource.\n",
+        "tags": ["Sol003VnfLcm"],
+        "parameters": [{
+            "name": "Authorization",
+            "description": "The authorization token for the request. Reference: IETF RFC 7235\n",
+            "in": "header",
+            "required": false,
+            "type": "string"
+          }
+        ],
+        "responses": {
+          "204": {
+            "description": "No Content\nThe VNF instance resource and the associated VNF identifier were deleted successfully. The response body shall be empty.\n",
+            "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.\n",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 0
+              }
+            }
+          },
+          "400": {
+            "description": "Bad Request\nIt 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.\n",
+            "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.\n",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 0
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "401": {
+            "description": "Unauthorized\nIf 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.\n",
+            "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.\n",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 0
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "403": {
+            "description": "Forbidden\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "404": {
+            "description": "Not Found\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "405": {
+            "description": "Not Found\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "406": {
+            "description": "Not Acceptable\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "409": {
+            "description": "Conflict\nThe 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.\n",
+            "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.\n",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 0
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "412": {
+            "description": "Precondition Failed\nA 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "500": {
+            "description": "Internal Server Error\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "503": {
+            "description": "Service Unavailable\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/vnf_instances/{vnfInstanceId}/instantiate": {
+      "parameters": [{
+          "name": "vnfInstanceId",
+          "description": "Identifier of the VNF instance. 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.\n",
+          "in": "path",
+          "type": "string",
+          "required": true
+        }
+      ],
+      "post": {
+        "description": "Instantiate VNF\n\nThe POST method instantiates a VNF instance.\n",
+        "tags": ["Sol003VnfLcm"],
+        "parameters": [{
+            "name": "InstantiateVnfRequest",
+            "description": "Parameters for the VNF instantiation.",
+            "in": "body",
+            "required": true,
+            "schema": {
+              "type": "object",
+              "required": ["flavourId"],
+              "properties": {
+                "flavourId": {
+                  "description": "An identifier that is unique within a VNF descriptor.\n",
+                  "type": "string"
+                },
+                "extVirtualLinks": {
+                  "description": "Information about external VLs to connect the VNF to.\n",
+                  "type": "array",
+                  "items": {
+                    "description": "This type represents an external VL.\n",
+                    "type": "object",
+                    "required": ["id", "resourceId", "extCps"],
+                    "properties": {
+                      "id": {
+                        "description": "An identifier with the intention of being globally unique.\n",
+                        "type": "string"
+                      },
+                      "vimConnectionId": {
+                        "description": "An identifier with the intention of being globally unique.\n",
+                        "type": "string"
+                      },
+                      "resourceId": {
+                        "description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
+                        "type": "string"
+                      },
+                      "extCps": {
+                        "description": "External CPs of the VNF to be connected to this external VL.\n",
+                        "type": "array",
+                        "items": {
+                          "description": "This type represents configuration information for external CPs created from a CPD.\n",
+                          "type": "object",
+                          "required": ["cpdId"],
+                          "properties": {
+                            "cpdId": {
+                              "description": "An identifier that is unique within a VNF descriptor.\n",
+                              "type": "string"
+                            },
+                            "cpConfig": {
+                              "description": "List of instance data that need to be configured on the CP instances created from the respective CPD.\n",
+                              "type": "array",
+                              "items": {
+                                "description": "This type represents an externally provided link port or network address information per instance of an external connection point. In case a link port is provided, the VNFM shall use that link port when connecting the external CP to the external VL. In a link port is not provided, the VNFM shall create a link port on the external VL, and use that link port to connect the external CP to the external VL.\n",
+                                "type": "object",
+                                "properties": {
+                                  "cpInstanceId": {
+                                    "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                                    "type": "string"
+                                  },
+                                  "linkPortId": {
+                                    "description": "An identifier with the intention of being globally unique.\n",
+                                    "type": "string"
+                                  },
+                                  "cpProtocolData": {
+                                    "description": "Parameters for configuring the network protocols on the link port that connects the CP to a VL.  The following conditions apply to the attributes \"linkPortId\" and \"cpProtocolData\":  * The \"linkPortId\" and \"cpProtocolData\" attributes shall both be  absent for the deletion of an existing external CP instance\n  addressed by cpInstanceId. \n* At least one of these attributes shall be present for a  to-be-created external CP instance or an existing external\n  CP instance.\n* If the \"linkPortId\" attribute is absent, the VNFM shall create a  link port.\n* If the \"cpProtocolData\" attribute is absent, the \"linkPortId\"  attribute shall be provided referencing a pre-created link port,\n  and the VNFM can use means outside the scope of the present\n  document to obtain the pre-configured address information for the\n  connection point from the resource representing the link port.\n* If both \"cpProtocolData\" and \"linkportId\" are provided, the API  consumer shall ensure that the cpProtocolData can be used with the\n  pre-created link port referenced by \"linkPortId\".\n",
+                                    "type": "array",
+                                    "items": {
+                                      "description": "This type represents network protocol data.\n",
+                                      "type": "object",
+                                      "required": ["layerProtocol"],
+                                      "properties": {
+                                        "layerProtocol": {
+                                          "description": "Identifier of layer(s) and protocol(s). This attribute allows to signal the addition of further types of layer and protocol in future versions of the present document in a backwards-compatible way. In the current version of the present document, only IP over Ethernet is supported.\n",
+                                          "type": "string",
+                                          "enum": ["IP_OVER_ETHERNET"]
+                                        },
+                                        "ipOverEthernet": {
+                                          "description": "This type represents network address data for IP over Ethernet.\n",
+                                          "type": "object",
+                                          "properties": {
+                                            "macAddress": {
+                                              "description": "A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons.\n",
+                                              "type": "string",
+                                              "format": "MAC"
+                                            },
+                                            "ipAddresses": {
+                                              "description": "List of IP addresses to assign to the CP instance. Each entry represents IP address data for fixed or dynamic IP address assignment per subnet. If this attribute is not present, no IP address shall be assigned.\n",
+                                              "type": "array",
+                                              "items": {
+                                                "type": "object",
+                                                "required": ["type"],
+                                                "properties": {
+                                                  "type": {
+                                                    "description": "The type of the IP addresses. Permitted values: IPV4, IPV6.\n",
+                                                    "type": "string",
+                                                    "enum": ["IPV4", "IPV6"]
+                                                  },
+                                                  "fixedAddresses": {
+                                                    "description": "Fixed addresses to assign (from the subnet defined by \"subnetId\" if provided). Exactly one of \"fixedAddresses\", \"numDynamicAddresses\" or \"ipAddressRange\" shall be present.\n",
+                                                    "type": "array",
+                                                    "items": {
+                                                      "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  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
+                                                      "type": "string",
+                                                      "format": "IP"
+                                                    }
+                                                  },
+                                                  "numDynamicAddresses": {
+                                                    "description": "Number of dynamic addresses to assign (from the subnet defined by \"subnetId\" if provided). Exactly one of \"fixedAddresses\", \"numDynamicAddresses\" or \"ipAddressRange\" shall be present.\n",
+                                                    "type": "integer"
+                                                  },
+                                                  "addressRange": {
+                                                    "description": "An IP address range to be used, e.g. in case of egress connections. In case this attribute is present, IP addresses from the range will be used.\n",
+                                                    "type": "object",
+                                                    "required": ["minAddress", "maxAddress"],
+                                                    "properties": {
+                                                      "minAddress": {
+                                                        "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  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
+                                                        "type": "string",
+                                                        "format": "IP"
+                                                      },
+                                                      "maxAddress": {
+                                                        "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  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
+                                                        "type": "string",
+                                                        "format": "IP"
+                                                      }
+                                                    }
+                                                  },
+                                                  "subnetId": {
+                                                    "description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
+                                                    "type": "string"
+                                                  }
+                                                }
+                                              }
+                                            }
+                                          }
+                                        }
+                                      }
+                                    }
+                                  }
+                                }
+                              }
+                            }
+                          }
+                        }
+                      },
+                      "extLinkPorts": {
+                        "description": "Externally provided link ports to be used to connect external connection points to this external VL. If this attribute is not present, the VNFM shall create the link ports on the external VL.\n",
+                        "type": "array",
+                        "items": {
+                          "description": "This type represents an externally provided link port to be used to connect an external connection point to an external VL.\n",
+                          "type": "object",
+                          "required": ["id", "resourceHandle"],
+                          "properties": {
+                            "id": {
+                              "description": "An identifier with the intention of being globally unique.\n",
+                              "type": "string"
+                            },
+                            "resourceHandle": {
+                              "required": ["vimConnectionId", "resourceId"],
+                              "type": "object",
+                              "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
+                              "properties": {
+                                "vimConnectionId": {
+                                  "description": "An identifier with the intention of being globally unique.\n",
+                                  "type": "string"
+                                },
+                                "resourceId": {
+                                  "description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
+                                  "type": "string"
+                                },
+                                "vimLevelResourceType": {
+                                  "description": "Type of the resource in the scope of the VIM or the resource provider.\n",
+                                  "type": "string"
+                                }
+                              }
+                            }
+                          }
+                        }
+                      }
+                    }
+                  }
+                },
+                "vimConnectionInfo": {
+                  "description": "Information about VIM connections to be used for managing the resources for the VNF instance, or refer to external / externally-managed virtual links. This attribute shall only be supported and may be present if VNF-related resource management in direct mode is applicable.\n",
+                  "type": "array",
+                  "items": {
+                    "description": "This type represents parameters to connect to a VIM for managing the resources of a VNF instance. This structure is used to convey VIM-related parameters over the Or-Vnfm interface. Additional parameters for a VIM may be configured into the VNFM by means outside the scope of the present document, and bound to the identifier of that VIM.\n",
+                    "type": "object",
+                    "required": ["id", "vimType"],
+                    "properties": {
+                      "id": {
+                        "description": "An identifier with the intention of being globally unique.\n",
+                        "type": "string"
+                      },
+                      "vimId": {
+                        "description": "An identifier with the intention of being globally unique.\n",
+                        "type": "string"
+                      },
+                      "vimType": {
+                        "description": "Discriminator for the different types of the VIM information. The value of this attribute determines the structure of the \"interfaceInfo\" and \"accessInfo\" attributes, based on the type of the VIM. The set of permitted values is expected to change over time as new types or versions of VIMs become available. The ETSI NFV registry of VIM-related information provides access to information about VimConnectionInfo definitions for various VIM types. The structure of the registry is defined in Annex C of SOL003.\n",
+                        "type": "string"
+                      },
+                      "interfaceInfo": {
+                        "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.\n",
+                        "type": "object"
+                      },
+                      "accessInfo": {
+                        "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.\n",
+                        "type": "object"
+                      }
+                    }
+                  }
+                },
+                "additionalParams": {
+                  "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.\n",
+                  "type": "object"
+                }
+              }
+            }
+          }, {
+            "name": "Accept",
+            "description": "Content-Types that are acceptable for the response. Reference: IETF RFC 7231\n",
+            "in": "header",
+            "required": true,
+            "type": "string"
+          }, {
+            "name": "Authorization",
+            "description": "The authorization token for the request. Reference: IETF RFC 7235\n",
+            "in": "header",
+            "required": false,
+            "type": "string"
+          }, {
+            "name": "Content-Type",
+            "description": "The MIME type of the body of the request. Reference: IETF RFC 7231\n",
+            "in": "header",
+            "required": true,
+            "type": "string"
+          }
+        ],
+        "responses": {
+          "202": {
+            "description": "Accepted\nThe 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.\n",
+            "headers": {
+              "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.\n",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 0
+              }
+            }
+          },
+          "400": {
+            "description": "Bad Request\nIf 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.\n ---\n\nIf 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.\n ---\n\nIf 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.\n",
+            "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.\n",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 0
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "401": {
+            "description": "Unauthorized\nIf 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.\n",
+            "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.\n",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 0
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "403": {
+            "description": "Forbidden\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "404": {
+            "description": "Not Found\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "405": {
+            "description": "Not Found\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "406": {
+            "description": "Not Acceptable\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "409": {
+            "description": "Conflict\nThe 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.\n",
+            "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.\n",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 0
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "416": {
+            "description": "Requested Range Not Satisfiable\nThis code is returned if the requested byte range in the Range HTTP header is not present in the requested resource.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "500": {
+            "description": "Internal Server Error\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "503": {
+            "description": "Service Unavailable\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/vnf_instances/{vnfInstanceId}/terminate": {
+      "parameters": [{
+          "name": "vnfInstanceId",
+          "description": "The identifier of the VNF instance to be terminated. 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.\n",
+          "in": "path",
+          "type": "string",
+          "required": true
+        }
+      ],
+      "post": {
+        "description": "Terminate VNF\n\nThe POST method terminates a VNF instance.\n",
+        "tags": ["Sol003VnfLcm"],
+        "parameters": [{
+            "name": "TerminateVnfRequest",
+            "description": "Parameters for the VNF termination.",
+            "in": "body",
+            "required": true,
+            "schema": {
+              "type": "object",
+              "required": ["terminationType"],
+              "properties": {
+                "terminationType": {
+                  "description": "Indicates whether forceful or graceful termination is requested. VNFM Adapter will only support FORCEFUL in Dublin.\n",
+                  "type": "string",
+                  "enum": ["FORCEFUL", "GRACEFUL"]
+                }
+              }
+            }
+          }, {
+            "name": "Accept",
+            "description": "Content-Types that are acceptable for the response. Reference: IETF RFC 7231\n",
+            "in": "header",
+            "required": true,
+            "type": "string"
+          }, {
+            "name": "Authorization",
+            "description": "The authorization token for the request. Reference: IETF RFC 7235\n",
+            "in": "header",
+            "required": false,
+            "type": "string"
+          }, {
+            "name": "Content-Type",
+            "description": "The MIME type of the body of the request. Reference: IETF RFC 7231\n",
+            "in": "header",
+            "required": true,
+            "type": "string"
+          }
+        ],
+        "responses": {
+          "202": {
+            "description": "Accepted\nThe 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.\n",
+            "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.\n",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 0
+              }
+            },
+            "schema": {
+              "description": "This type represents a VNF instance.\n",
+              "type": "object",
+              "required": ["id", "vnfdId", "vnfProvider", "vnfProductName", "vnfSoftwareVersion", "vnfdVersion", "vnfPkgId", "instantiationState"],
+              "properties": {
+                "id": {
+                  "description": "An identifier with the intention of being globally unique.\n",
+                  "type": "string"
+                },
+                "vnfInstanceName": {
+                  "description": "Name of the VNF instance. This attribute can be modified with the PATCH method.\n",
+                  "type": "string"
+                },
+                "vnfInstanceDescription": {
+                  "description": "Human-readable description of the VNF instance. This attribute can be modified with the PATCH method.\n",
+                  "type": "string"
+                },
+                "vnfdId": {
+                  "description": "An identifier with the intention of being globally unique.\n",
+                  "type": "string"
+                },
+                "vnfProvider": {
+                  "description": "Provider of the VNF and the VNFD. The value is copied from the VNFD.\n",
+                  "type": "string"
+                },
+                "vnfProductName": {
+                  "description": "Name to identify the VNF Product. The value is copied from the VNFD.\n",
+                  "type": "string"
+                },
+                "vnfSoftwareVersion": {
+                  "description": "A Version.\n",
+                  "type": "string"
+                },
+                "vnfdVersion": {
+                  "description": "A Version.\n",
+                  "type": "string"
+                },
+                "vnfPkgId": {
+                  "description": "An identifier with the intention of being globally unique.\n",
+                  "type": "string"
+                },
+                "vnfConfigurableProperties": {
+                  "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.\n",
+                  "type": "object"
+                },
+                "vimConnectionInfo": {
+                  "description": "Information about VIM connections to be used for managing the resources for the VNF instance. This attribute shall only be supported and present if VNF-related resource management in direct mode is applicable. This attribute can be modified with the PATCH method.\n",
+                  "type": "array",
+                  "items": {
+                    "description": "This type represents parameters to connect to a VIM for managing the resources of a VNF instance. This structure is used to convey VIM-related parameters over the Or-Vnfm interface. Additional parameters for a VIM may be configured into the VNFM by means outside the scope of the present document, and bound to the identifier of that VIM.\n",
+                    "type": "object",
+                    "required": ["id", "vimType"],
+                    "properties": {
+                      "id": {
+                        "description": "An identifier with the intention of being globally unique.\n",
+                        "type": "string"
+                      },
+                      "vimId": {
+                        "description": "An identifier with the intention of being globally unique.\n",
+                        "type": "string"
+                      },
+                      "vimType": {
+                        "description": "Discriminator for the different types of the VIM information. The value of this attribute determines the structure of the \"interfaceInfo\" and \"accessInfo\" attributes, based on the type of the VIM. The set of permitted values is expected to change over time as new types or versions of VIMs become available. The ETSI NFV registry of VIM-related information provides access to information about VimConnectionInfo definitions for various VIM types. The structure of the registry is defined in Annex C of SOL003.\n",
+                        "type": "string"
+                      },
+                      "interfaceInfo": {
+                        "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.\n",
+                        "type": "object"
+                      },
+                      "accessInfo": {
+                        "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.\n",
+                        "type": "object"
+                      },
+                      "extra": {
+                        "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.\n",
+                        "type": "object"
+                      }
+                    }
+                  }
+                },
+                "instantiationState": {
+                  "description": "The instantiation state of the VNF.\n",
+                  "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.\n",
+                  "type": "object",
+                  "required": ["flavourId", "vnfState"],
+                  "properties": {
+                    "flavourId": {
+                      "description": "An identifier that is unique within a VNF descriptor.\n",
+                      "type": "string"
+                    },
+                    "vnfState": {
+                      "type": "string",
+                      "enum": ["STARTED", "STOPPED"]
+                    },
+                    "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.\n",
+                      "type": "array",
+                      "items": {
+                        "required": ["aspectId", "scaleLevel"],
+                        "type": "object",
+                        "properties": {
+                          "aspectId": {
+                            "description": "An identifier that is unique within a VNF descriptor.\n",
+                            "type": "string"
+                          },
+                          "scaleLevel": {
+                            "description": "Indicates the scale level. The minimum value shall be 0 and the maximum value shall be <= maxScaleLevel as described in the VNFD.\n",
+                            "type": "integer"
+                          }
+                        }
+                      }
+                    },
+                    "extCpInfo": {
+                      "description": "Information about the external CPs exposed by the VNF instance.\n",
+                      "type": "array",
+                      "minItems": 1,
+                      "items": {
+                        "type": "object",
+                        "required": ["id", "cpdId"],
+                        "properties": {
+                          "id": {
+                            "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                            "type": "string"
+                          },
+                          "cpdId": {
+                            "description": "An identifier that is unique within a VNF descriptor.\n",
+                            "type": "string"
+                          },
+                          "cpProtocolInfo": {
+                            "description": "Network protocol information for this CP.\n",
+                            "type": "array",
+                            "items": {
+                              "description": "This type describes the protocol layer(s) that a CP uses together with protocol-related information, like addresses.\n",
+                              "required": ["layerProtocol"],
+                              "properties": {
+                                "layerProtocol": {
+                                  "description": "The identifier of layer(s) and protocol(s) associated to the network address information.  Permitted values: IP_OVER_ETHERNET This attribute allows to signal the addition of further types of layer and protocol in future versions of the present document in a backwards-compatible way. In the current version of the present document, only IP over Ethernet is supported.\n",
+                                  "type": "string",
+                                  "enum": ["IP_OVER_ETHERNET"]
+                                },
+                                "ipOverEthernet": {
+                                  "description": "This type represents information about a network address that has been assigned.\n",
+                                  "type": "object",
+                                  "required": ["macAddress"],
+                                  "properties": {
+                                    "macAddress": {
+                                      "description": "A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons.\n",
+                                      "type": "string",
+                                      "format": "MAC"
+                                    },
+                                    "ipAddresses": {
+                                      "description": "Addresses assigned to the CP instance. Each entry represents IP addresses assigned by fixed or dynamic IP address assignment per subnet.\n",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "object",
+                                        "required": ["type"],
+                                        "properties": {
+                                          "type": {
+                                            "description": "The type of the IP addresses. Permitted values: IPV4, IPV6.\n",
+                                            "type": "string",
+                                            "enum": ["IPV4", "IPV6"]
+                                          },
+                                          "addresses": {
+                                            "description": "Fixed addresses assigned (from the subnet defined by \"subnetId\" if provided).\n",
+                                            "type": "array",
+                                            "items": {
+                                              "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  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
+                                              "type": "string",
+                                              "format": "IP"
+                                            }
+                                          },
+                                          "isDynamic": {
+                                            "description": "Indicates whether this set of addresses was assigned dynamically (true) or based on address information provided as input from the API consumer (false). Shall be present if \"addresses\" is present and shall be absent otherwise.\n",
+                                            "type": "boolean"
+                                          },
+                                          "addressRange": {
+                                            "description": "An IP address range used, e.g., in case of egress connections. Exactly one of \"addresses\" or \"addressRange\" shall be present.\n",
+                                            "type": "object",
+                                            "required": ["minAddress", "maxAddress"],
+                                            "properties": {
+                                              "minAddress": {
+                                                "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  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
+                                                "type": "string",
+                                                "format": "IP"
+                                              },
+                                              "maxAddress": {
+                                                "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  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
+                                                "type": "string",
+                                                "format": "IP"
+                                              }
+                                            }
+                                          },
+                                          "subnetId": {
+                                            "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  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
+                                            "type": "string",
+                                            "format": "IP"
+                                          }
+                                        }
+                                      }
+                                    }
+                                  }
+                                }
+                              }
+                            }
+                          },
+                          "extLinkPortId": {
+                            "description": "An identifier with the intention of being globally unique.\n",
+                            "type": "string"
+                          }
+                        }
+                      }
+                    },
+                    "extVirtualLinkInfo": {
+                      "description": "Information about the external VLs the VNF instance is connected to.\n",
+                      "type": "array",
+                      "items": {
+                        "type": "object",
+                        "required": ["id", "resourceHandle"],
+                        "properties": {
+                          "id": {
+                            "description": "An identifier with the intention of being globally unique.\n",
+                            "type": "string"
+                          },
+                          "resourceHandle": {
+                            "required": ["vimConnectionId", "resourceId"],
+                            "type": "object",
+                            "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
+                            "properties": {
+                              "vimConnectionId": {
+                                "description": "An identifier with the intention of being globally unique.\n",
+                                "type": "string"
+                              },
+                              "resourceProviderId": {
+                                "description": "An identifier with the intention of being globally unique.\n",
+                                "type": "string"
+                              },
+                              "resourceId": {
+                                "description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
+                                "type": "string"
+                              },
+                              "vimLevelResourceType": {
+                                "description": "Type of the resource in the scope of the VIM or the resource provider.\n",
+                                "type": "string"
+                              }
+                            }
+                          },
+                          "extLinkPorts": {
+                            "description": "Link ports of this VL.\n",
+                            "type": "array",
+                            "items": {
+                              "description": "This type represents information about a link port of an external VL, i.e. a port providing connectivity for the VNF to an NS VL.\n",
+                              "type": "object",
+                              "required": ["id", "resourceHandle"],
+                              "properties": {
+                                "id": {
+                                  "description": "An identifier with the intention of being globally unique.\n",
+                                  "type": "string"
+                                },
+                                "resourceHandle": {
+                                  "required": ["vimConnectionId", "resourceId"],
+                                  "type": "object",
+                                  "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
+                                  "properties": {
+                                    "vimConnectionId": {
+                                      "description": "An identifier with the intention of being globally unique.\n",
+                                      "type": "string"
+                                    },
+                                    "resourceProviderId": {
+                                      "description": "An identifier with the intention of being globally unique.\n",
+                                      "type": "string"
+                                    },
+                                    "resourceId": {
+                                      "description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
+                                      "type": "string"
+                                    },
+                                    "vimLevelResourceType": {
+                                      "description": "Type of the resource in the scope of the VIM or the resource provider.\n",
+                                      "type": "string"
+                                    }
+                                  }
+                                },
+                                "cpInstanceId": {
+                                  "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                                  "type": "string"
+                                }
+                              }
+                            }
+                          }
+                        }
+                      }
+                    },
+                    "extManagedVirtualLinkInfo": {
+                      "description": "External virtual links the VNF instance is connected to.\n",
+                      "type": "array",
+                      "items": {
+                        "type": "object",
+                        "required": ["id", "vnfVirtualLinkDescId"],
+                        "properties": {
+                          "id": {
+                            "description": "An identifier with the intention of being globally unique.\n",
+                            "type": "string"
+                          },
+                          "vnfVirtualLinkDescId": {
+                            "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                            "type": "string"
+                          },
+                          "networkResource": {
+                            "required": ["vimConnectionId", "resourceId"],
+                            "type": "object",
+                            "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
+                            "properties": {
+                              "vimConnectionId": {
+                                "description": "An identifier with the intention of being globally unique.\n",
+                                "type": "string"
+                              },
+                              "resourceProviderId": {
+                                "description": "An identifier with the intention of being globally unique.\n",
+                                "type": "string"
+                              },
+                              "resourceId": {
+                                "description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
+                                "type": "string"
+                              },
+                              "vimLevelResourceType": {
+                                "description": "Type of the resource in the scope of the VIM or the resource provider.\n",
+                                "type": "string"
+                              }
+                            }
+                          },
+                          "vnfLinkPorts": {
+                            "description": "Link ports of this VL.\n",
+                            "type": "array",
+                            "items": {
+                              "type": "object",
+                              "required": ["id", "resourceHandle"],
+                              "properties": {
+                                "id": {
+                                  "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                                  "type": "string"
+                                },
+                                "resourceHandle": {
+                                  "required": ["vimConnectionId", "resourceId"],
+                                  "type": "object",
+                                  "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
+                                  "properties": {
+                                    "vimConnectionId": {
+                                      "description": "An identifier with the intention of being globally unique.\n",
+                                      "type": "string"
+                                    },
+                                    "resourceProviderId": {
+                                      "description": "An identifier with the intention of being globally unique.\n",
+                                      "type": "string"
+                                    },
+                                    "resourceId": {
+                                      "description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
+                                      "type": "string"
+                                    },
+                                    "vimLevelResourceType": {
+                                      "description": "Type of the resource in the scope of the VIM or the resource provider.\n",
+                                      "type": "string"
+                                    }
+                                  }
+                                },
+                                "cpInstanceId": {
+                                  "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                                  "type": "string"
+                                }
+                              }
+                            }
+                          }
+                        }
+                      }
+                    },
+                    "monitoringParameters": {
+                      "description": "Active monitoring parameters.\n",
+                      "type": "array",
+                      "items": {
+                        "type": "object",
+                        "required": ["id", "value", "timeStamp"],
+                        "properties": {
+                          "id": {
+                            "description": "An identifier that is unique within a VNF descriptor.\n",
+                            "type": "string"
+                          },
+                          "name": {
+                            "description": "Human readable name of the monitoring parameter, as defined in the VNFD.\n",
+                            "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.\n",
+                            "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.\n",
+                            "type": "string"
+                          }
+                        }
+                      }
+                    },
+                    "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.\n",
+                      "type": "string"
+                    },
+                    "vnfcResourceInfo": {
+                      "description": "Information about the virtualised compute and storage resources used by the VNFCs of the VNF instance.\n",
+                      "type": "array",
+                      "items": {
+                        "description": "This type represents the information on virtualised compute and storage resources used by a VNFC in a VNF instance.\n",
+                        "type": "object",
+                        "required": ["id", "vduId", "computeResource"],
+                        "properties": {
+                          "id": {
+                            "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                            "type": "string"
+                          },
+                          "vduId": {
+                            "description": "An identifier that is unique within a VNF descriptor.\n",
+                            "type": "string"
+                          },
+                          "computeResource": {
+                            "required": ["vimConnectionId", "resourceId"],
+                            "type": "object",
+                            "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
+                            "properties": {
+                              "vimConnectionId": {
+                                "description": "An identifier with the intention of being globally unique.\n",
+                                "type": "string"
+                              },
+                              "resourceProviderId": {
+                                "description": "An identifier with the intention of being globally unique.\n",
+                                "type": "string"
+                              },
+                              "resourceId": {
+                                "description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
+                                "type": "string"
+                              },
+                              "vimLevelResourceType": {
+                                "description": "Type of the resource in the scope of the VIM or the resource provider.\n",
+                                "type": "string"
+                              }
+                            }
+                          },
+                          "storageResourceIds": {
+                            "description": "References to the VirtualStorage resources. The value refers to a VirtualStorageResourceInfo item in the VnfInstance.\n",
+                            "type": "array",
+                            "items": {
+                              "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                              "type": "string"
+                            }
+                          },
+                          "reservationId": {
+                            "description": "An identifier with the intention of being globally unique.\n",
+                            "type": "string"
+                          },
+                          "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.\n",
+                            "type": "array",
+                            "items": {
+                              "type": "object",
+                              "required": ["id", "cpdId"],
+                              "properties": {
+                                "id": {
+                                  "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                                  "type": "string"
+                                },
+                                "cpdId": {
+                                  "description": "An identifier that is unique within a VNF descriptor.\n",
+                                  "type": "string"
+                                },
+                                "vnfExtCpId": {
+                                  "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                                  "type": "string"
+                                },
+                                "cpProtocolInfo": {
+                                  "description": "Network protocol information for this CP.\n",
+                                  "type": "array",
+                                  "items": {
+                                    "description": "This type describes the protocol layer(s) that a CP uses together with protocol-related information, like addresses.\n",
+                                    "required": ["layerProtocol"],
+                                    "properties": {
+                                      "layerProtocol": {
+                                        "description": "The identifier of layer(s) and protocol(s) associated to the network address information.  Permitted values: IP_OVER_ETHERNET This attribute allows to signal the addition of further types of layer and protocol in future versions of the present document in a backwards-compatible way. In the current version of the present document, only IP over Ethernet is supported.\n",
+                                        "type": "string",
+                                        "enum": ["IP_OVER_ETHERNET"]
+                                      },
+                                      "ipOverEthernet": {
+                                        "description": "This type represents information about a network address that has been assigned.\n",
+                                        "type": "object",
+                                        "required": ["macAddress"],
+                                        "properties": {
+                                          "macAddress": {
+                                            "description": "A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons.\n",
+                                            "type": "string",
+                                            "format": "MAC"
+                                          },
+                                          "ipAddresses": {
+                                            "description": "Addresses assigned to the CP instance. Each entry represents IP addresses assigned by fixed or dynamic IP address assignment per subnet.\n",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "object",
+                                              "required": ["type"],
+                                              "properties": {
+                                                "type": {
+                                                  "description": "The type of the IP addresses. Permitted values: IPV4, IPV6.\n",
+                                                  "type": "string",
+                                                  "enum": ["IPV4", "IPV6"]
+                                                },
+                                                "addresses": {
+                                                  "description": "Fixed addresses assigned (from the subnet defined by \"subnetId\" if provided).\n",
+                                                  "type": "array",
+                                                  "items": {
+                                                    "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  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
+                                                    "type": "string",
+                                                    "format": "IP"
+                                                  }
+                                                },
+                                                "isDynamic": {
+                                                  "description": "Indicates whether this set of addresses was assigned dynamically (true) or based on address information provided as input from the API consumer (false). Shall be present if \"addresses\" is present and shall be absent otherwise.\n",
+                                                  "type": "boolean"
+                                                },
+                                                "addressRange": {
+                                                  "description": "An IP address range used, e.g., in case of egress connections. Exactly one of \"addresses\" or \"addressRange\" shall be present.\n",
+                                                  "type": "object",
+                                                  "required": ["minAddress", "maxAddress"],
+                                                  "properties": {
+                                                    "minAddress": {
+                                                      "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  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
+                                                      "type": "string",
+                                                      "format": "IP"
+                                                    },
+                                                    "maxAddress": {
+                                                      "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  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
+                                                      "type": "string",
+                                                      "format": "IP"
+                                                    }
+                                                  }
+                                                },
+                                                "subnetId": {
+                                                  "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  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
+                                                  "type": "string",
+                                                  "format": "IP"
+                                                }
+                                              }
+                                            }
+                                          }
+                                        }
+                                      }
+                                    }
+                                  }
+                                },
+                                "vnfLinkPortId": {
+                                  "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                                  "type": "string"
+                                }
+                              }
+                            }
+                          },
+                          "metadata": {
+                            "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.\n",
+                            "type": "object"
+                          }
+                        }
+                      }
+                    },
+                    "virtualLinkResourceInfo": {
+                      "description": "Information about the virtualised network resources used by the VLs of the VNF instance.\n",
+                      "type": "array",
+                      "items": {
+                        "description": "This type represents the information that allows addressing a virtualised resource that is used by an internal VL instance in a VNF instance.\n",
+                        "type": "object",
+                        "required": ["id", "vnfVirtualLinkDescId", "networkResource"],
+                        "properties": {
+                          "id": {
+                            "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                            "type": "string"
+                          },
+                          "vnfVirtualLinkDescId": {
+                            "description": "An identifier that is unique within a VNF descriptor.\n",
+                            "type": "string"
+                          },
+                          "networkResource": {
+                            "required": ["vimConnectionId", "resourceId"],
+                            "type": "object",
+                            "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
+                            "properties": {
+                              "vimConnectionId": {
+                                "description": "An identifier with the intention of being globally unique.\n",
+                                "type": "string"
+                              },
+                              "resourceProviderId": {
+                                "description": "An identifier with the intention of being globally unique.\n",
+                                "type": "string"
+                              },
+                              "resourceId": {
+                                "description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
+                                "type": "string"
+                              },
+                              "vimLevelResourceType": {
+                                "description": "Type of the resource in the scope of the VIM or the resource provider.\n",
+                                "type": "string"
+                              }
+                            }
+                          },
+                          "reservationId": {
+                            "description": "An identifier with the intention of being globally unique.\n",
+                            "type": "string"
+                          },
+                          "vnfLinkPorts": {
+                            "description": "Links ports of this VL. Shall be present when the linkPort is used for external connectivity by the VNF (refer to VnfLinkPortInfo). May be present otherwise.\n",
+                            "type": "array",
+                            "items": {
+                              "type": "object",
+                              "required": ["id", "resourceHandle"],
+                              "properties": {
+                                "id": {
+                                  "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                                  "type": "string"
+                                },
+                                "resourceHandle": {
+                                  "required": ["vimConnectionId", "resourceId"],
+                                  "type": "object",
+                                  "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
+                                  "properties": {
+                                    "vimConnectionId": {
+                                      "description": "An identifier with the intention of being globally unique.\n",
+                                      "type": "string"
+                                    },
+                                    "resourceProviderId": {
+                                      "description": "An identifier with the intention of being globally unique.\n",
+                                      "type": "string"
+                                    },
+                                    "resourceId": {
+                                      "description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
+                                      "type": "string"
+                                    },
+                                    "vimLevelResourceType": {
+                                      "description": "Type of the resource in the scope of the VIM or the resource provider.\n",
+                                      "type": "string"
+                                    }
+                                  }
+                                },
+                                "cpInstanceId": {
+                                  "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                                  "type": "string"
+                                }
+                              }
+                            }
+                          },
+                          "metadata": {
+                            "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.\n",
+                            "type": "object"
+                          }
+                        }
+                      }
+                    },
+                    "virtualStorageResourceInfo": {
+                      "description": "Information on the virtualised storage resource(s) used as storage for the VNF instance.\n",
+                      "type": "array",
+                      "items": {
+                        "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance.\n",
+                        "type": "object",
+                        "required": ["id", "virtualStorageDescId", "storageResource"],
+                        "properties": {
+                          "id": {
+                            "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                            "type": "string"
+                          },
+                          "virtualStorageDescId": {
+                            "description": "An identifier that is unique within a VNF descriptor.\n",
+                            "type": "string"
+                          },
+                          "storageResource": {
+                            "required": ["vimConnectionId", "resourceId"],
+                            "type": "object",
+                            "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
+                            "properties": {
+                              "vimConnectionId": {
+                                "description": "An identifier with the intention of being globally unique.\n",
+                                "type": "string"
+                              },
+                              "resourceProviderId": {
+                                "description": "An identifier with the intention of being globally unique.\n",
+                                "type": "string"
+                              },
+                              "resourceId": {
+                                "description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
+                                "type": "string"
+                              },
+                              "vimLevelResourceType": {
+                                "description": "Type of the resource in the scope of the VIM or the resource provider.\n",
+                                "type": "string"
+                              }
+                            }
+                          },
+                          "reservationId": {
+                            "description": "An identifier with the intention of being globally unique.\n",
+                            "type": "string"
+                          },
+                          "metadata": {
+                            "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.\n",
+                            "type": "object"
+                          }
+                        }
+                      }
+                    }
+                  }
+                },
+                "metadata": {
+                  "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.\n",
+                  "type": "object"
+                },
+                "extensions": {
+                  "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.\n",
+                  "type": "object"
+                },
+                "_links": {
+                  "description": "Links to resources related to this resource.\n",
+                  "type": "object",
+                  "required": ["self"],
+                  "properties": {
+                    "self": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    },
+                    "indicators": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    },
+                    "instantiate": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    },
+                    "terminate": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    },
+                    "scale": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    },
+                    "scaleToLevel": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    },
+                    "changeFlavour": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    },
+                    "heal": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    },
+                    "operate": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    },
+                    "changeExtConn": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "400": {
+            "description": "Bad Request\nIf 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.\n ---\n\nIf 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.\n ---\n\nIf 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.\n",
+            "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.\n",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 0
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "401": {
+            "description": "Unauthorized\nIf 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.\n",
+            "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.\n",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 0
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "403": {
+            "description": "Forbidden\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "404": {
+            "description": "Not Found\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "405": {
+            "description": "Not Found\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "406": {
+            "description": "Not Acceptable\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "409": {
+            "description": "Conflict\nThe 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.\n",
+            "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.\n",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 0
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "500": {
+            "description": "Internal Server Error\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "503": {
+            "description": "Service Unavailable\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/vnf_lcm_op_occs/{vnfLcmOpOccId}": {
+      "parameters": [{
+          "name": "vnfLcmOpOccId",
+          "description": "Identifier of a VNF lifecycle management operation occurrence. This identifier can be retrieved from the resource referenced by the \"Location\" HTTP header in the response to a PATCH or POST request triggering a VNF LCM operation. It can also be retrieved from the \"vnfLcmOpOccId\" attribute in the VnfLcmOperationOccurrenceNotification.\n",
+          "in": "path",
+          "required": true,
+          "type": "string"
+        }
+      ],
+      "get": {
+        "description": "Get Operation Status\n\nThe client can use this method to retrieve status information about a VNF lifecycle management operation occurrence by reading an individual \"VNF LCM operation occurrence\" resource.\n",
+        "tags": ["Sol003VnfLcm"],
+        "parameters": [{
+            "name": "Accept",
+            "description": "Content-Types that are acceptable for the response. Reference: IETF RFC 7231\n",
+            "in": "header",
+            "required": true,
+            "type": "string"
+          }, {
+            "name": "Authorization",
+            "description": "The authorization token for the request. Reference: IETF RFC 7235\n",
+            "in": "header",
+            "required": false,
+            "type": "string"
+          }
+        ],
+        "responses": {
+          "200": {
+            "description": "OK\nInformation about an individual VNF instance was queried successfully. The response body shall contain status information about a VNF lifecycle management operation occurrence.\n",
+            "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.\n",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 0
+              }
+            },
+            "schema": {
+              "description": "This type represents a VNF lifecycle management operation occurrence.\n",
+              "type": "object",
+              "required": ["id", "operationState", "stateEnteredTime", "startTime", "vnfInstanceId", "operation", "isAutomaticInvocation", "operationParams", "isCancelPending"],
+              "properties": {
+                "id": {
+                  "description": "An identifier with the intention of being globally unique.\n",
+                  "type": "string"
+                },
+                "operationState": {
+                  "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.\n",
+                  "type": "string",
+                  "enum": ["STARTING", "PROCESSING", "COMPLETED", "FAILED_TEMP", "FAILED", "ROLLING_BACK", "ROLLED_BACK"]
+                },
+                "stateEnteredTime": {
+                  "description": "Date-time when the current state was entered.\n",
+                  "type": "string",
+                  "format": "date-time"
+                },
+                "startTime": {
+                  "description": "Date-time of the start of the operation.\n",
+                  "type": "string",
+                  "format": "date-time"
+                },
+                "vnfInstanceId": {
+                  "description": "An identifier with the intention of being globally unique.\n",
+                  "type": "string"
+                },
+                "grantId": {
+                  "description": "An identifier with the intention of being globally unique.\n",
+                  "type": "string"
+                },
+                "operation": {
+                  "description": "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. MODIFY_INFO | Represents the \"Modify VNF Information\" LCM operation.\n",
+                  "type": "string",
+                  "enum": ["INSTANTIATE", "SCALE", "SCALE_TO_LEVEL", "CHANGE_FLAVOUR", "TERMINATE", "HEAL", "OPERATE", "CHANGE_EXT_CONN", "MODIFY_INFO"]
+                },
+                "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.\n",
+                  "type": "boolean"
+                },
+                "operationParams": {
+                  "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.\n",
+                  "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.\n",
+                  "type": "boolean"
+                },
+                "cancelMode": {
+                  "description": "Cancellation mode. GRACEFUL: If the VNF LCM operation occurrence is in \"PROCESSING\" or \"ROLLING_BACK\" state, 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. If the VNF LCM operation occurrence is in \"STARTING\" state, the VNFM shall not start any resource management operation and shall wait for the granting request to finish execution or time out. After that, the VNFM shall put the operation occurrence into the ROLLED_BACK state.  FORCEFUL: If the VNF LCM operation occurrence is in \"PROCESSING\" or \"ROLLING_BACK\" state, 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.  If the VNF LCM operation occurrence is in \"STARTING\" state, the VNFM shall not start any resource management operation and put the operation occurrence into the ROLLED_BACK state.\n",
+                  "type": "string",
+                  "enum": ["GRACEFUL", "FORCEFUL"]
+                },
+                "error": {
+                  "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+                  "type": "object",
+                  "required": ["status", "detail"],
+                  "properties": {
+                    "type": {
+                      "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                      "type": "string",
+                      "format": "URI"
+                    },
+                    "title": {
+                      "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                      "type": "string"
+                    },
+                    "status": {
+                      "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                      "type": "integer"
+                    },
+                    "detail": {
+                      "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                      "type": "string"
+                    },
+                    "instance": {
+                      "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                      "type": "string",
+                      "format": "URI"
+                    }
+                  }
+                },
+                "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.\n",
+                  "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.\n",
+                      "type": "array",
+                      "items": {
+                        "description": "This type provides information about added, deleted, modified and temporary VNFCs.\n",
+                        "type": "object",
+                        "required": ["id", "vduId", "changeType", "computeResource"],
+                        "properties": {
+                          "id": {
+                            "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                            "type": "string"
+                          },
+                          "vduId": {
+                            "description": "An identifier that is unique within a VNF descriptor.\n",
+                            "type": "string"
+                          },
+                          "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.\n",
+                            "type": "string",
+                            "enum": ["ADDED", "REMOVED", "MODIFIED", "TEMPORARY"]
+                          },
+                          "computeResource": {
+                            "required": ["vimConnectionId", "resourceId"],
+                            "type": "object",
+                            "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
+                            "properties": {
+                              "vimConnectionId": {
+                                "description": "An identifier with the intention of being globally unique.\n",
+                                "type": "string"
+                              },
+                              "resourceProviderId": {
+                                "description": "An identifier with the intention of being globally unique.\n",
+                                "type": "string"
+                              },
+                              "resourceId": {
+                                "description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
+                                "type": "string"
+                              },
+                              "vimLevelResourceType": {
+                                "description": "Type of the resource in the scope of the VIM or the resource provider.\n",
+                                "type": "string"
+                              }
+                            }
+                          },
+                          "metadata": {
+                            "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.\n",
+                            "type": "object"
+                          },
+                          "affectedVnfcCpIds": {
+                            "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.\n",
+                            "type": "array",
+                            "items": {
+                              "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                              "type": "string"
+                            }
+                          },
+                          "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.\n",
+                            "type": "array",
+                            "items": {
+                              "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                              "type": "string"
+                            }
+                          },
+                          "removedStorageResourceIds": {
+                            "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.\n",
+                            "type": "array",
+                            "items": {
+                              "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                              "type": "string"
+                            }
+                          }
+                        }
+                      }
+                    },
+                    "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.\n",
+                      "type": "array",
+                      "items": {
+                        "description": "This type provides information about added, deleted, modified and temporary VLs.\n",
+                        "type": "object",
+                        "required": ["id", "virtualLinkDescId", "changeType", "networkResource"],
+                        "properties": {
+                          "id": {
+                            "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                            "type": "string"
+                          },
+                          "virtualLinkDescId": {
+                            "description": "An identifier that is unique within a VNF descriptor.\n",
+                            "type": "string"
+                          },
+                          "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.\n",
+                            "type": "string",
+                            "enum": ["ADDED", "REMOVED", "MODIFIED", "TEMPORARY", "LINK_PORT_ADDED", "LINK_PORT_REMOVED"]
+                          },
+                          "networkResource": {
+                            "required": ["vimConnectionId", "resourceId"],
+                            "type": "object",
+                            "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
+                            "properties": {
+                              "vimConnectionId": {
+                                "description": "An identifier with the intention of being globally unique.\n",
+                                "type": "string"
+                              },
+                              "resourceProviderId": {
+                                "description": "An identifier with the intention of being globally unique.\n",
+                                "type": "string"
+                              },
+                              "resourceId": {
+                                "description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
+                                "type": "string"
+                              },
+                              "vimLevelResourceType": {
+                                "description": "Type of the resource in the scope of the VIM or the resource provider.\n",
+                                "type": "string"
+                              }
+                            }
+                          },
+                          "metadata": {
+                            "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.\n",
+                            "type": "object"
+                          }
+                        }
+                      }
+                    },
+                    "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.\n",
+                      "type": "array",
+                      "items": {
+                        "description": "This type provides information about added, deleted, modified and temporary virtual storage resources.\n",
+                        "type": "object",
+                        "required": ["id", "virtualStorageDescId", "changeType", "storageResource"],
+                        "properties": {
+                          "id": {
+                            "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                            "type": "string"
+                          },
+                          "virtualStorageDescId": {
+                            "description": "An identifier that is unique within a VNF descriptor.\n",
+                            "type": "string"
+                          },
+                          "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.\n",
+                            "type": "string",
+                            "enum": ["ADDED", "REMOVED", "MODIFIED", "TEMPORARY"]
+                          },
+                          "storageResource": {
+                            "required": ["vimConnectionId", "resourceId"],
+                            "type": "object",
+                            "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
+                            "properties": {
+                              "vimConnectionId": {
+                                "description": "An identifier with the intention of being globally unique.\n",
+                                "type": "string"
+                              },
+                              "resourceProviderId": {
+                                "description": "An identifier with the intention of being globally unique.\n",
+                                "type": "string"
+                              },
+                              "resourceId": {
+                                "description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
+                                "type": "string"
+                              },
+                              "vimLevelResourceType": {
+                                "description": "Type of the resource in the scope of the VIM or the resource provider.\n",
+                                "type": "string"
+                              }
+                            }
+                          },
+                          "metadata": {
+                            "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.\n",
+                            "type": "object"
+                          }
+                        }
+                      }
+                    }
+                  }
+                },
+                "changedInfo": {
+                  "description": "This type represents attribute modifications that were performed on an \"Individual VNF instance\" resource. The attributes that can be included consist of those requested to be modified explicitly in the \"VnfInfoModificationRequest\" data structure, and additional attributes of the \"VnfInstance\" data structure that were modified implicitly e.g. when modifying the referenced VNF package.\n",
+                  "type": "object",
+                  "properties": {
+                    "vnfInstanceName": {
+                      "description": "If present, this attribute signals modifications of the \"vnfInstanceName\" attribute in \"VnfInstance\".\n",
+                      "type": "string"
+                    },
+                    "vnfInstanceDescription": {
+                      "description": "If present, this attribute signals modifications of the \"vnfInstanceDescription\" attribute in \"VnfInstance\".\n",
+                      "type": "string"
+                    },
+                    "vnfConfigurableProperties": {
+                      "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.\n",
+                      "type": "object"
+                    },
+                    "metadata": {
+                      "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.\n",
+                      "type": "object"
+                    },
+                    "extensions": {
+                      "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.\n",
+                      "type": "object"
+                    },
+                    "vimConnectionInfo": {
+                      "description": "If present, this attribute signals modifications of certain entries in the \"vimConnectionInfo\" attribute array in \"VnfInstance\".\n",
+                      "type": "array",
+                      "items": {
+                        "description": "This type represents parameters to connect to a VIM for managing the resources of a VNF instance. This structure is used to convey VIM-related parameters over the Or-Vnfm interface. Additional parameters for a VIM may be configured into the VNFM by means outside the scope of the present document, and bound to the identifier of that VIM.\n",
+                        "type": "object",
+                        "required": ["id", "vimType"],
+                        "properties": {
+                          "id": {
+                            "description": "An identifier with the intention of being globally unique.\n",
+                            "type": "string"
+                          },
+                          "vimId": {
+                            "description": "An identifier with the intention of being globally unique.\n",
+                            "type": "string"
+                          },
+                          "vimType": {
+                            "description": "Discriminator for the different types of the VIM information. The value of this attribute determines the structure of the \"interfaceInfo\" and \"accessInfo\" attributes, based on the type of the VIM. The set of permitted values is expected to change over time as new types or versions of VIMs become available. The ETSI NFV registry of VIM-related information provides access to information about VimConnectionInfo definitions for various VIM types. The structure of the registry is defined in Annex C of SOL003.\n",
+                            "type": "string"
+                          },
+                          "interfaceInfo": {
+                            "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.\n",
+                            "type": "object"
+                          },
+                          "accessInfo": {
+                            "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.\n",
+                            "type": "object"
+                          },
+                          "extra": {
+                            "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.\n",
+                            "type": "object"
+                          }
+                        }
+                      }
+                    },
+                    "vnfPkgId": {
+                      "description": "An identifier with the intention of being globally unique.\n",
+                      "type": "string"
+                    },
+                    "vnfdId": {
+                      "description": "An identifier with the intention of being globally unique.\n",
+                      "type": "string"
+                    },
+                    "vnfProvider": {
+                      "description": "If present, this attribute signals modifications of the \"vnfProvider\" 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 attribute from the VNFD in the VNF Package identified by the \"vnfPkgId” attribute.\n",
+                      "type": "string"
+                    },
+                    "vnfProductName": {
+                      "description": "If present, this attribute signals modifications of the \"vnfProductName\" 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 attribute from the VNFD in the VNF Package identified by the \"vnfPkgId” attribute.\n",
+                      "type": "string"
+                    },
+                    "vnfSoftwareVersion": {
+                      "description": "A Version.\n",
+                      "type": "string"
+                    },
+                    "vnfdVersion": {
+                      "description": "A Version.\n",
+                      "type": "string"
+                    }
+                  }
+                },
+                "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.\n",
+                  "type": "array",
+                  "items": {
+                    "type": "object",
+                    "required": ["id", "resourceHandle"],
+                    "properties": {
+                      "id": {
+                        "description": "An identifier with the intention of being globally unique.\n",
+                        "type": "string"
+                      },
+                      "resourceHandle": {
+                        "required": ["vimConnectionId", "resourceId"],
+                        "type": "object",
+                        "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
+                        "properties": {
+                          "vimConnectionId": {
+                            "description": "An identifier with the intention of being globally unique.\n",
+                            "type": "string"
+                          },
+                          "resourceProviderId": {
+                            "description": "An identifier with the intention of being globally unique.\n",
+                            "type": "string"
+                          },
+                          "resourceId": {
+                            "description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
+                            "type": "string"
+                          },
+                          "vimLevelResourceType": {
+                            "description": "Type of the resource in the scope of the VIM or the resource provider.\n",
+                            "type": "string"
+                          }
+                        }
+                      },
+                      "extLinkPorts": {
+                        "description": "Link ports of this VL.\n",
+                        "type": "array",
+                        "items": {
+                          "description": "This type represents information about a link port of an external VL, i.e. a port providing connectivity for the VNF to an NS VL.\n",
+                          "type": "object",
+                          "required": ["id", "resourceHandle"],
+                          "properties": {
+                            "id": {
+                              "description": "An identifier with the intention of being globally unique.\n",
+                              "type": "string"
+                            },
+                            "resourceHandle": {
+                              "required": ["vimConnectionId", "resourceId"],
+                              "type": "object",
+                              "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
+                              "properties": {
+                                "vimConnectionId": {
+                                  "description": "An identifier with the intention of being globally unique.\n",
+                                  "type": "string"
+                                },
+                                "resourceProviderId": {
+                                  "description": "An identifier with the intention of being globally unique.\n",
+                                  "type": "string"
+                                },
+                                "resourceId": {
+                                  "description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
+                                  "type": "string"
+                                },
+                                "vimLevelResourceType": {
+                                  "description": "Type of the resource in the scope of the VIM or the resource provider.\n",
+                                  "type": "string"
+                                }
+                              }
+                            },
+                            "cpInstanceId": {
+                              "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
+                              "type": "string"
+                            }
+                          }
+                        }
+                      }
+                    }
+                  }
+                },
+                "_links": {
+                  "description": "Links to resources related to this resource.\n",
+                  "type": "object",
+                  "required": ["self", "vnfInstance"],
+                  "properties": {
+                    "self": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    },
+                    "vnfInstance": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    },
+                    "grant": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    },
+                    "cancel": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    },
+                    "retry": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    },
+                    "rollback": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    },
+                    "fail": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "400": {
+            "description": "Bad Request\nIf 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.\n ---\n\nIf 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.\n ---\n\nIf 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.\n",
+            "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.\n",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 0
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "401": {
+            "description": "Unauthorized\nIf 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.\n",
+            "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.\n",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 0
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "403": {
+            "description": "Forbidden\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "404": {
+            "description": "Not Found\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "405": {
+            "description": "Not Found\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "406": {
+            "description": "Not Acceptable\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "409": {
+            "description": "Conflict\nAnother request is in progress that prohibits the fulfilment of the current request, or the current resource state is inconsistent with the request.\n",
+            "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.\n",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 0
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "500": {
+            "description": "Internal Server Error\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "503": {
+            "description": "Service Unavailable\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/subscriptions": {
+      "post": {
+        "description": "Subscribe\n\nThe POST method creates a new subscription. Creation of two subscription resources with the same callbackURI and the same filter can result in performance degradation and will provide duplicates of notifications to the NFVO, and might make sense only in very rare use cases. Consequently, the VNFM may either allow creating a subscription resource if another subscription resource with the same filter and callbackUri already exists (in which case it shall return the “201 Created” response code), or may decide to not create a duplicate subscription resource (in which case it shall return a “303 See Other” response code referencing the existing subscription resource with the same filter and callbackUri).\n",
+        "tags": ["Sol003VnfLcm"],
+        "parameters": [{
+            "name": "LccnSubscriptionRequest",
+            "description": "Details of the subscription to be created.\n",
+            "in": "body",
+            "required": true,
+            "schema": {
+              "description": "This type represents a subscription request related to notifications about VNF lifecycle changes.\n",
+              "type": "object",
+              "required": ["callbackUri"],
+              "properties": {
+                "filter": {
+                  "description": "This type represents a subscription filter related to notifications about VNF lifecycle 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).\n",
+                  "type": "object",
+                  "properties": {
+                    "vnfInstanceSubscriptionFilter": {
+                      "description": "This type represents subscription filter criteria to match VNF instances.\n",
+                      "type": "object",
+                      "properties": {
+                        "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.\n",
+                          "type": "array",
+                          "items": {
+                            "description": "An identifier with the intention of being globally unique.\n",
+                            "type": "string"
+                          }
+                        }
+                      }
+                    },
+                    "notificationTypes": {
+                      "description": "Match particular notification types. Permitted values: * VnfLcmOperationOccurrenceNotification * VnfIdentifierCreationNotification * VnfIdentifierDeletionNotification The permitted values of the \"notificationTypes\" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems.\n",
+                      "type": "array",
+                      "items": {
+                        "type": "string",
+                        "enum": ["VnfLcmOperationOccurrenceNotification", "VnfIdentifierCreationNotification", "VnfIdentifierDeletionNotification"]
+                      }
+                    },
+                    "operationTypes": {
+                      "description": "Match particular VNF lifecycle operation types for the notification of type VnfLcmOperationOccurrenceNotification. May be present if the \"notificationTypes\" attribute contains the value \"VnfLcmOperationOccurrenceNotification\", and shall be absent otherwise.\n",
+                      "type": "array",
+                      "items": {
+                        "description": "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. MODIFY_INFO | Represents the \"Modify VNF Information\" LCM operation.\n",
+                        "type": "string",
+                        "enum": ["INSTANTIATE", "TERMINATE"]
+                      }
+                    },
+                    "operationStates": {
+                      "description": "Match particular LCM operation state values as reported in notifications of type VnfLcmOperationOccurrenceNotification. May be present if the \"notificationTypes\" attribute contains the value \"VnfLcmOperationOccurrenceNotification\", and shall be absent otherwise.\n",
+                      "type": "array",
+                      "items": {
+                        "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.\n",
+                        "type": "string",
+                        "enum": ["STARTING", "PROCESSING", "COMPLETED", "FAILED_TEMP", "FAILED", "ROLLING_BACK", "ROLLED_BACK"]
+                      }
+                    }
+                  }
+                },
+                "callbackUri": {
+                  "description": "String formatted according to IETF RFC 3986.\n",
+                  "type": "string"
+                },
+                "authentication": {
+                  "type": "object",
+                  "required": ["authType"],
+                  "properties": {
+                    "authType": {
+                      "description": "Defines the types of Authentication / Authorization which the API consumer is willing to accept when receiving a notification. Permitted values: * BASIC: In every HTTP request to the notification endpoint, use  HTTP Basic authentication with the client credentials. \n* OAUTH2_CLIENT_CREDENTIALS: In every HTTP request to the  notification endpoint, use an OAuth 2.0 Bearer token, obtained\n  using the client credentials grant type.\n* TLS_CERT: Every HTTP request to the notification endpoint is sent  over a mutually authenticated TLS session, i.e. not only the\n  server is authenticated, but also the client is authenticated\n  during the TLS tunnel setup.\n",
+                      "type": "array",
+                      "items": {
+                        "type": "string",
+                        "enum": ["BASIC", "OAUTH2_CLIENT_CREDENTIALS", "TLS_CERT"]
+                      }
+                    },
+                    "paramsBasic": {
+                      "description": "Parameters for authentication/authorization using BASIC. Shall be present if authType is \"BASIC\" and the contained information has not been provisioned out of band. Shall be absent otherwise.\n",
+                      "type": "object",
+                      "properties": {
+                        "userName": {
+                          "description": "Username to be used in HTTP Basic authentication. Shall be present if it has not been provisioned out of band.\n",
+                          "type": "string"
+                        },
+                        "password": {
+                          "description": "Password to be used in HTTP Basic authentication. Shall be present if it has not been provisioned out of band.\n",
+                          "type": "string"
+                        }
+                      }
+                    },
+                    "paramsOauth2ClientCredentials": {
+                      "description": "Parameters for authentication/authorization using OAUTH2_CLIENT_CREDENTIALS. Shall be present if authType is \"OAUTH2_CLIENT_CREDENTIALS\" and the contained information has not been provisioned out of band. Shall be absent otherwise.\n",
+                      "type": "object",
+                      "properties": {
+                        "clientId": {
+                          "description": "Client identifier to be used in the access token request of the OAuth 2.0 client credentials grant type.  Shall be present if it has not been provisioned out of band. The clientId and clientPassword passed in a subscription shall not be the same as the clientId and clientPassword that are used to obtain authorization for API requests. Client credentials may differ between subscriptions. The value of clientPassword should be generated by a random process.\n",
+                          "type": "string"
+                        },
+                        "clientPassword": {
+                          "description": "Client password to be used in the access token request of the OAuth 2.0 client credentials grant type.  Shall be present if it has not been provisioned out of band. The clientId and clientPassword passed in a subscription shall not be the same as the clientId and clientPassword that are used to obtain authorization for API requests. Client credentials may differ between subscriptions. The value of clientPassword should be generated by a random process.\n",
+                          "type": "string"
+                        },
+                        "tokenEndpoint": {
+                          "description": "String formatted according to IETF RFC 3986.\n",
+                          "type": "string"
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }, {
+            "name": "Accept",
+            "description": "Content-Types that are acceptable for the response. Reference: IETF RFC 7231\n",
+            "in": "header",
+            "required": true,
+            "type": "string"
+          }, {
+            "name": "Authorization",
+            "description": "The authorization token for the request. Reference: IETF RFC 7235\n",
+            "in": "header",
+            "required": false,
+            "type": "string"
+          }, {
+            "name": "Content-Type",
+            "description": "The MIME type of the body of the request. Reference: IETF RFC 7231\n",
+            "in": "header",
+            "required": true,
+            "type": "string"
+          }
+        ],
+        "responses": {
+          "201": {
+            "description": "Created\nThe subscription was created successfully. The response body shall contain a representation of the created subscription resource. The HTTP response shall include a \"Location\" HTTP header that points to the created subscription resource.\n",
+            "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.\n",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 0
+              }
+            },
+            "schema": {
+              "description": "This type represents a subscription related to notifications about VNF lifecycle changes.\n",
+              "type": "object",
+              "required": ["id", "callbackUri", "_links"],
+              "properties": {
+                "id": {
+                  "description": "An identifier with the intention of being globally unique.\n",
+                  "type": "string"
+                },
+                "filter": {
+                  "description": "This type represents a subscription filter related to notifications about VNF lifecycle 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).\n",
+                  "type": "object",
+                  "properties": {
+                    "vnfInstanceSubscriptionFilter": {
+                      "description": "This type represents subscription filter criteria to match VNF instances.\n",
+                      "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.\n",
+                          "type": "array",
+                          "items": {
+                            "description": "An identifier with the intention of being globally unique.\n",
+                            "type": "string"
+                          }
+                        },
+                        "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.\n",
+                          "type": "array",
+                          "items": {
+                            "type": "object",
+                            "required": ["vnfProvider"],
+                            "properties": {
+                              "vnfProvider": {
+                                "description": "Name of the VNF provider to match.\n",
+                                "type": "string"
+                              },
+                              "vnfProducts": {
+                                "description": "If present, match VNF instances that belong to VNF products with certain product names, from one particular provider.\n",
+                                "type": "array",
+                                "items": {
+                                  "type": "object",
+                                  "required": ["vnfProductName"],
+                                  "properties": {
+                                    "vnfProductName": {
+                                      "description": "Name of the VNF product to match.\n",
+                                      "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.\n",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "object",
+                                        "required": ["vnfSoftwareVersion"],
+                                        "properties": {
+                                          "vnfSoftwareVersion": {
+                                            "description": "A version.\n",
+                                            "type": "string"
+                                          },
+                                          "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.\n",
+                                            "type": "array",
+                                            "items": {
+                                              "description": "A version.\n",
+                                              "type": "string"
+                                            }
+                                          }
+                                        }
+                                      }
+                                    }
+                                  }
+                                }
+                              }
+                            }
+                          }
+                        },
+                        "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.\n",
+                          "type": "array",
+                          "items": {
+                            "description": "An identifier with the intention of being globally unique.\n",
+                            "type": "string"
+                          }
+                        },
+                        "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.\n",
+                          "type": "array",
+                          "items": {
+                            "type": "string"
+                          }
+                        }
+                      }
+                    },
+                    "notificationTypes": {
+                      "description": "Match particular notification types. Permitted values: * VnfLcmOperationOccurrenceNotification * VnfIdentifierCreationNotification * VnfIdentifierDeletionNotification The permitted values of the \"notificationTypes\" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems.\n",
+                      "type": "array",
+                      "items": {
+                        "type": "string",
+                        "enum": ["VnfLcmOperationOccurrenceNotification", "VnfIdentifierCreationNotification", "VnfIdentifierDeletionNotification"]
+                      }
+                    },
+                    "operationTypes": {
+                      "description": "Match particular VNF lifecycle operation types for the notification of type VnfLcmOperationOccurrenceNotification. May be present if the \"notificationTypes\" attribute contains the value \"VnfLcmOperationOccurrenceNotification\", and shall be absent otherwise.\n",
+                      "type": "array",
+                      "items": {
+                        "description": "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. MODIFY_INFO | Represents the \"Modify VNF Information\" LCM operation.\n",
+                        "type": "string",
+                        "enum": ["INSTANTIATE", "SCALE", "SCALE_TO_LEVEL", "CHANGE_FLAVOUR", "TERMINATE", "HEAL", "OPERATE", "CHANGE_EXT_CONN", "MODIFY_INFO"]
+                      }
+                    },
+                    "operationStates": {
+                      "description": "Match particular LCM operation state values as reported in notifications of type VnfLcmOperationOccurrenceNotification. May be present if the \"notificationTypes\" attribute contains the value \"VnfLcmOperationOccurrenceNotification\", and shall be absent otherwise.\n",
+                      "type": "array",
+                      "items": {
+                        "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.\n",
+                        "type": "string",
+                        "enum": ["STARTING", "PROCESSING", "COMPLETED", "FAILED_TEMP", "FAILED", "ROLLING_BACK", "ROLLED_BACK"]
+                      }
+                    }
+                  }
+                },
+                "callbackUri": {
+                  "description": "String formatted according to IETF RFC 3986.\n",
+                  "type": "string"
+                },
+                "_links": {
+                  "description": "Links to resources related to this resource.\n",
+                  "type": "object",
+                  "required": ["self"],
+                  "properties": {
+                    "self": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "303": {
+            "description": "See Other\nA 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.\n",
+            "headers": {
+              "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.\n",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 0
+              }
+            }
+          },
+          "400": {
+            "description": "Bad Request\nIf 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.\n ---\n\nIf 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.\n ---\n\nIf 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.\n",
+            "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.\n",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 0
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "401": {
+            "description": "Unauthorized\nIf 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.\n",
+            "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.\n",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 0
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "403": {
+            "description": "Forbidden\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "404": {
+            "description": "Not Found\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "405": {
+            "description": "Not Found\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "406": {
+            "description": "Not Acceptable\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "500": {
+            "description": "Internal Server Error\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "503": {
+            "description": "Service Unavailable\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          }
+        }
+      },
+      "get": {
+        "description": "Query Subscription Information\n\nThe 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.\n",
+        "tags": ["Sol003VnfLcm"],
+        "parameters": [{
+            "name": "Accept",
+            "description": "Content-Types that are acceptable for the response. Reference: IETF RFC 7231\n",
+            "in": "header",
+            "required": true,
+            "type": "string"
+          }, {
+            "name": "Authorization",
+            "description": "The authorization token for the request. Reference: IETF RFC 7235\n",
+            "in": "header",
+            "required": false,
+            "type": "string"
+          }
+        ],
+        "responses": {
+          "200": {
+            "description": "OK\nThe 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.\n",
+            "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.\n",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 0
+              }
+            },
+            "schema": {
+              "description": "This type represents a subscription related to notifications about VNF lifecycle changes.\n",
+              "type": "object",
+              "required": ["id", "callbackUri", "_links"],
+              "properties": {
+                "id": {
+                  "description": "An identifier with the intention of being globally unique.\n",
+                  "type": "string"
+                },
+                "filter": {
+                  "description": "This type represents a subscription filter related to notifications about VNF lifecycle 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).\n",
+                  "type": "object",
+                  "properties": {
+                    "vnfInstanceSubscriptionFilter": {
+                      "description": "This type represents subscription filter criteria to match VNF instances.\n",
+                      "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.\n",
+                          "type": "array",
+                          "items": {
+                            "description": "An identifier with the intention of being globally unique.\n",
+                            "type": "string"
+                          }
+                        },
+                        "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.\n",
+                          "type": "array",
+                          "items": {
+                            "type": "object",
+                            "required": ["vnfProvider"],
+                            "properties": {
+                              "vnfProvider": {
+                                "description": "Name of the VNF provider to match.\n",
+                                "type": "string"
+                              },
+                              "vnfProducts": {
+                                "description": "If present, match VNF instances that belong to VNF products with certain product names, from one particular provider.\n",
+                                "type": "array",
+                                "items": {
+                                  "type": "object",
+                                  "required": ["vnfProductName"],
+                                  "properties": {
+                                    "vnfProductName": {
+                                      "description": "Name of the VNF product to match.\n",
+                                      "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.\n",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "object",
+                                        "required": ["vnfSoftwareVersion"],
+                                        "properties": {
+                                          "vnfSoftwareVersion": {
+                                            "description": "A version.\n",
+                                            "type": "string"
+                                          },
+                                          "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.\n",
+                                            "type": "array",
+                                            "items": {
+                                              "description": "A version.\n",
+                                              "type": "string"
+                                            }
+                                          }
+                                        }
+                                      }
+                                    }
+                                  }
+                                }
+                              }
+                            }
+                          }
+                        },
+                        "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.\n",
+                          "type": "array",
+                          "items": {
+                            "description": "An identifier with the intention of being globally unique.\n",
+                            "type": "string"
+                          }
+                        },
+                        "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.\n",
+                          "type": "array",
+                          "items": {
+                            "type": "string"
+                          }
+                        }
+                      }
+                    },
+                    "notificationTypes": {
+                      "description": "Match particular notification types. Permitted values: * VnfLcmOperationOccurrenceNotification * VnfIdentifierCreationNotification * VnfIdentifierDeletionNotification The permitted values of the \"notificationTypes\" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems.\n",
+                      "type": "array",
+                      "items": {
+                        "type": "string",
+                        "enum": ["VnfLcmOperationOccurrenceNotification", "VnfIdentifierCreationNotification", "VnfIdentifierDeletionNotification"]
+                      }
+                    },
+                    "operationTypes": {
+                      "description": "Match particular VNF lifecycle operation types for the notification of type VnfLcmOperationOccurrenceNotification. May be present if the \"notificationTypes\" attribute contains the value \"VnfLcmOperationOccurrenceNotification\", and shall be absent otherwise.\n",
+                      "type": "array",
+                      "items": {
+                        "description": "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. MODIFY_INFO | Represents the \"Modify VNF Information\" LCM operation.\n",
+                        "type": "string",
+                        "enum": ["INSTANTIATE", "SCALE", "SCALE_TO_LEVEL", "CHANGE_FLAVOUR", "TERMINATE", "HEAL", "OPERATE", "CHANGE_EXT_CONN", "MODIFY_INFO"]
+                      }
+                    },
+                    "operationStates": {
+                      "description": "Match particular LCM operation state values as reported in notifications of type VnfLcmOperationOccurrenceNotification. May be present if the \"notificationTypes\" attribute contains the value \"VnfLcmOperationOccurrenceNotification\", and shall be absent otherwise.\n",
+                      "type": "array",
+                      "items": {
+                        "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.\n",
+                        "type": "string",
+                        "enum": ["STARTING", "PROCESSING", "COMPLETED", "FAILED_TEMP", "FAILED", "ROLLING_BACK", "ROLLED_BACK"]
+                      }
+                    }
+                  }
+                },
+                "callbackUri": {
+                  "description": "String formatted according to IETF RFC 3986.\n",
+                  "type": "string"
+                },
+                "_links": {
+                  "description": "Links to resources related to this resource.\n",
+                  "type": "object",
+                  "required": ["self"],
+                  "properties": {
+                    "self": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "400": {
+            "description": "Bad Request\nInvalid attribute-based filtering parameters. The response body shall contain a ProblemDetails structure, in which the \"detail\" attribute should convey more information about the error.\n",
+            "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.\n",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 0
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "401": {
+            "description": "Unauthorized\nIf 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.\n",
+            "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.\n",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 0
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "403": {
+            "description": "Forbidden\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "404": {
+            "description": "Not Found\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "405": {
+            "description": "Not Found\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "406": {
+            "description": "Not Acceptable\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "500": {
+            "description": "Internal Server Error\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "503": {
+            "description": "Service Unavailable\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/subscriptions/{subscriptionId}": {
+      "parameters": [{
+          "name": "subscriptionId",
+          "description": "Identifier of this subscription. 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.\n",
+          "in": "path",
+          "type": "string",
+          "required": true
+        }
+      ],
+      "get": {
+        "description": "Query Subscription Information\n\nThe GET method retrieves information about a subscription by reading an individual subscription resource.\n",
+        "tags": ["Sol003VnfLcm"],
+        "parameters": [{
+            "name": "Accept",
+            "description": "Content-Types that are acceptable for the response. Reference: IETF RFC 7231\n",
+            "in": "header",
+            "required": true,
+            "type": "string"
+          }, {
+            "name": "Authorization",
+            "description": "The authorization token for the request. Reference: IETF RFC 7235\n",
+            "in": "header",
+            "required": false,
+            "type": "string"
+          }
+        ],
+        "responses": {
+          "200": {
+            "description": "OK\nThe operation has completed successfully. The response body shall contain a representation of the subscription resource.\n",
+            "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.\n",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 0
+              }
+            },
+            "schema": {
+              "description": "This type represents a subscription related to notifications about VNF lifecycle changes.\n",
+              "type": "object",
+              "required": ["id", "callbackUri", "_links"],
+              "properties": {
+                "id": {
+                  "description": "An identifier with the intention of being globally unique.\n",
+                  "type": "string"
+                },
+                "filter": {
+                  "description": "This type represents a subscription filter related to notifications about VNF lifecycle 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).\n",
+                  "type": "object",
+                  "properties": {
+                    "vnfInstanceSubscriptionFilter": {
+                      "description": "This type represents subscription filter criteria to match VNF instances.\n",
+                      "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.\n",
+                          "type": "array",
+                          "items": {
+                            "description": "An identifier with the intention of being globally unique.\n",
+                            "type": "string"
+                          }
+                        },
+                        "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.\n",
+                          "type": "array",
+                          "items": {
+                            "type": "object",
+                            "required": ["vnfProvider"],
+                            "properties": {
+                              "vnfProvider": {
+                                "description": "Name of the VNF provider to match.\n",
+                                "type": "string"
+                              },
+                              "vnfProducts": {
+                                "description": "If present, match VNF instances that belong to VNF products with certain product names, from one particular provider.\n",
+                                "type": "array",
+                                "items": {
+                                  "type": "object",
+                                  "required": ["vnfProductName"],
+                                  "properties": {
+                                    "vnfProductName": {
+                                      "description": "Name of the VNF product to match.\n",
+                                      "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.\n",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "object",
+                                        "required": ["vnfSoftwareVersion"],
+                                        "properties": {
+                                          "vnfSoftwareVersion": {
+                                            "description": "A version.\n",
+                                            "type": "string"
+                                          },
+                                          "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.\n",
+                                            "type": "array",
+                                            "items": {
+                                              "description": "A version.\n",
+                                              "type": "string"
+                                            }
+                                          }
+                                        }
+                                      }
+                                    }
+                                  }
+                                }
+                              }
+                            }
+                          }
+                        },
+                        "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.\n",
+                          "type": "array",
+                          "items": {
+                            "description": "An identifier with the intention of being globally unique.\n",
+                            "type": "string"
+                          }
+                        },
+                        "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.\n",
+                          "type": "array",
+                          "items": {
+                            "type": "string"
+                          }
+                        }
+                      }
+                    },
+                    "notificationTypes": {
+                      "description": "Match particular notification types. Permitted values: * VnfLcmOperationOccurrenceNotification * VnfIdentifierCreationNotification * VnfIdentifierDeletionNotification The permitted values of the \"notificationTypes\" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems.\n",
+                      "type": "array",
+                      "items": {
+                        "type": "string",
+                        "enum": ["VnfLcmOperationOccurrenceNotification", "VnfIdentifierCreationNotification", "VnfIdentifierDeletionNotification"]
+                      }
+                    },
+                    "operationTypes": {
+                      "description": "Match particular VNF lifecycle operation types for the notification of type VnfLcmOperationOccurrenceNotification. May be present if the \"notificationTypes\" attribute contains the value \"VnfLcmOperationOccurrenceNotification\", and shall be absent otherwise.\n",
+                      "type": "array",
+                      "items": {
+                        "description": "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. MODIFY_INFO | Represents the \"Modify VNF Information\" LCM operation.\n",
+                        "type": "string",
+                        "enum": ["INSTANTIATE", "SCALE", "SCALE_TO_LEVEL", "CHANGE_FLAVOUR", "TERMINATE", "HEAL", "OPERATE", "CHANGE_EXT_CONN", "MODIFY_INFO"]
+                      }
+                    },
+                    "operationStates": {
+                      "description": "Match particular LCM operation state values as reported in notifications of type VnfLcmOperationOccurrenceNotification. May be present if the \"notificationTypes\" attribute contains the value \"VnfLcmOperationOccurrenceNotification\", and shall be absent otherwise.\n",
+                      "type": "array",
+                      "items": {
+                        "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.\n",
+                        "type": "string",
+                        "enum": ["STARTING", "PROCESSING", "COMPLETED", "FAILED_TEMP", "FAILED", "ROLLING_BACK", "ROLLED_BACK"]
+                      }
+                    }
+                  }
+                },
+                "callbackUri": {
+                  "description": "String formatted according to IETF RFC 3986.\n",
+                  "type": "string"
+                },
+                "_links": {
+                  "description": "Links to resources related to this resource.\n",
+                  "type": "object",
+                  "required": ["self"],
+                  "properties": {
+                    "self": {
+                      "description": "This type represents a link to a resource.\n",
+                      "type": "object",
+                      "required": ["href"],
+                      "properties": {
+                        "href": {
+                          "description": "URI of the referenced resource.\n",
+                          "type": "string",
+                          "format": "url"
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "400": {
+            "description": "Bad Request\nIf 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.\n ---\n\nIf 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.\n ---\n\nIf 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.\n",
+            "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.\n",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 0
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "401": {
+            "description": "Unauthorized\nIf 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.\n",
+            "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.\n",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 0
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "403": {
+            "description": "Forbidden\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "404": {
+            "description": "Not Found\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "405": {
+            "description": "Not Found\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "406": {
+            "description": "Not Acceptable\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "500": {
+            "description": "Internal Server Error\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "503": {
+            "description": "Service Unavailable\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          }
+        }
+      },
+      "delete": {
+        "description": "Terminate Subscription\n\nThe DELETE method terminates an individual subscription.\n",
+        "tags": ["Sol003VnfLcm"],
+        "parameters": [{
+            "name": "Authorization",
+            "description": "The authorization token for the request. Reference: IETF RFC 7235\n",
+            "in": "header",
+            "required": false,
+            "type": "string"
+          }
+        ],
+        "responses": {
+          "204": {
+            "description": "No Content\nThe subscription resource was deleted successfully. The response body shall be empty.\n",
+            "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.\n",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 0
+              }
+            }
+          },
+          "400": {
+            "description": "Bad Request\nIf 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.\n ---\n\nIf 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.\n ---\n\nIf 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.\n",
+            "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.\n",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 0
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "401": {
+            "description": "Unauthorized\nIf 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.\n",
+            "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.\n",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 0
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "403": {
+            "description": "Forbidden\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "404": {
+            "description": "Not Found\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "405": {
+            "description": "Not Found\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "406": {
+            "description": "Not Acceptable\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "500": {
+            "description": "Internal Server Error\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          },
+          "503": {
+            "description": "Service Unavailable\nIf 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.\n",
+            "headers": {
+              "Content-Type": {
+                "description": "The MIME type of the body of the response.",
+                "type": "string",
+                "maximum": 1,
+                "minimum": 1
+              }
+            },
+            "schema": {
+              "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
+              "type": "object",
+              "required": ["status", "detail"],
+              "properties": {
+                "type": {
+                  "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
+                  "type": "string",
+                  "format": "URI"
+                },
+                "title": {
+                  "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
+                  "type": "string"
+                },
+                "status": {
+                  "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
+                  "type": "integer"
+                },
+                "detail": {
+                  "description": "A human-readable explanation specific to this occurrence of the problem.\n",
+                  "type": "string"
+                },
+                "instance": {
+                  "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
+                  "type": "string",
+                  "format": "URI"
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+}
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-api/src/main/resources/vnfm-sim-swagger.yaml b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-api/src/main/resources/vnfm-sim-swagger.yaml
new file mode 100644
index 0000000..71b7163
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-api/src/main/resources/vnfm-sim-swagger.yaml
@@ -0,0 +1,8404 @@
+swagger: '2.0'
+info:
+  version: 1.1.1
+  title: SOL003 - VNF Lifecycle Management interface
+  description: |
+    SOL003 - VNF Lifecycle Management interface definition
+
+    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'
+basePath: /vnflcm/v1
+schemes:
+  - https
+consumes:
+  - application/json
+produces:
+  - application/json
+paths:
+  /vnf_instances:
+    post:
+      description: |
+        Create VNF Identifier
+
+        The POST method creates a new VNF instance resource.
+      tags:
+        - Sol003VnfLcm
+      parameters:
+        - name: createVnfRequest
+          description: The VNF creation parameters
+          in: body
+          required: true
+          schema:
+            type: object
+            required:
+              - vnfdId
+            properties:
+              vnfdId:
+                description: |
+                  An identifier with the intention of being globally unique.
+                type: string
+              vnfInstanceName:
+                description: |
+                  Human-readable name of the VNF instance to be created.
+                type: string
+              vnfInstanceDescription:
+                description: |
+                  Human-readable description of the VNF instance to be created.
+                type: string
+        - name: Accept
+          description: |
+            Content-Types that are acceptable for the response. Reference: IETF RFC 7231
+          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
+        - name: Content-Type
+          description: |
+            The MIME type of the body of the request. Reference: IETF RFC 7231
+          in: header
+          required: true
+          type: string
+      responses:
+        '201':
+          description: A VNF Instance identifier was created successfully
+          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:
+            description: |
+              This type represents a VNF instance.
+            type: object
+            required:
+              - id
+              - vnfdId
+              - vnfProvider
+              - vnfProductName
+              - vnfSoftwareVersion
+              - vnfdVersion
+              - vnfPkgId
+              - instantiationState
+            properties:
+              id:
+                description: |
+                  An identifier with the intention of being globally unique.
+                type: string
+              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: |
+                  An identifier with the intention of being globally unique.
+                type: string
+              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: |
+                  A Version.
+                type: string
+              vnfdVersion:
+                description: |
+                  A Version.
+                type: string
+              vnfPkgId:
+                description: |
+                  An identifier with the intention of being globally unique.
+                type: string
+              vnfConfigurableProperties:
+                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
+              vimConnectionInfo:
+                description: |
+                  Information about VIM connections to be used for managing the resources for the VNF instance. This attribute shall only be supported and present if VNF-related resource management in direct mode is applicable. This attribute can be modified with the PATCH method.
+                type: array
+                items:
+                  description: |
+                    This type represents parameters to connect to a VIM for managing the resources of a VNF instance. This structure is used to convey VIM-related parameters over the Or-Vnfm interface. Additional parameters for a VIM may be configured into the VNFM by means outside the scope of the present document, and bound to the identifier of that VIM.
+                  type: object
+                  required:
+                    - id
+                    - vimType
+                  properties:
+                    id:
+                      description: |
+                        An identifier with the intention of being globally unique.
+                      type: string
+                    vimId:
+                      description: |
+                        An identifier with the intention of being globally unique.
+                      type: string
+                    vimType:
+                      description: |
+                        Discriminator for the different types of the VIM information. The value of this attribute determines the structure of the "interfaceInfo" and "accessInfo" attributes, based on the type of the VIM. The set of permitted values is expected to change over time as new types or versions of VIMs become available. The ETSI NFV registry of VIM-related information provides access to information about VimConnectionInfo definitions for various VIM types. The structure of the registry is defined in Annex C of SOL003.
+                      type: string
+                    interfaceInfo:
+                      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
+                    accessInfo:
+                      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
+                    extra:
+                      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
+              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
+                properties:
+                  flavourId:
+                    description: |
+                      An identifier that is unique within a VNF descriptor.
+                    type: string
+                  vnfState:
+                    type: string
+                    enum:
+                      - STARTED
+                      - STOPPED
+                  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:
+                      required:
+                        - aspectId
+                        - scaleLevel
+                      type: object
+                      properties:
+                        aspectId:
+                          description: |
+                            An identifier that is unique within a VNF descriptor.
+                          type: string
+                        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
+                  extCpInfo:
+                    description: |
+                      Information about the external CPs exposed by the VNF instance.
+                    type: array
+                    minItems: 1
+                    items:
+                      type: object
+                      required:
+                        - id
+                        - cpdId
+                      properties:
+                        id:
+                          description: |
+                            An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                          type: string
+                        cpdId:
+                          description: |
+                            An identifier that is unique within a VNF descriptor.
+                          type: string
+                        cpProtocolInfo:
+                          description: |
+                            Network protocol information for this CP.
+                          type: array
+                          items:
+                            description: |
+                              This type describes the protocol layer(s) that a CP uses together with protocol-related information, like addresses.
+                            required:
+                              - layerProtocol
+                            properties:
+                              layerProtocol:
+                                description: |
+                                  The identifier of layer(s) and protocol(s) associated to the network address information.  Permitted values: IP_OVER_ETHERNET This attribute allows to signal the addition of further types of layer and protocol in future versions of the present document in a backwards-compatible way. In the current version of the present document, only IP over Ethernet is supported.
+                                type: string
+                                enum:
+                                  - IP_OVER_ETHERNET
+                              ipOverEthernet:
+                                description: |
+                                  This type represents information about a network address that has been assigned.
+                                type: object
+                                required:
+                                  - macAddress
+                                properties:
+                                  macAddress:
+                                    description: |
+                                      A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons.
+                                    type: string
+                                    format: MAC
+                                  ipAddresses:
+                                    description: |
+                                      Addresses assigned to the CP instance. Each entry represents IP addresses assigned by fixed or dynamic IP address assignment per subnet.
+                                    type: array
+                                    items:
+                                      type: object
+                                      required:
+                                        - type
+                                      properties:
+                                        type:
+                                          description: |
+                                            The type of the IP addresses. Permitted values: IPV4, IPV6.
+                                          type: string
+                                          enum:
+                                            - IPV4
+                                            - IPV6
+                                        addresses:
+                                          description: |
+                                            Fixed addresses assigned (from the subnet defined by "subnetId" if provided).
+                                          type: array
+                                          items:
+                                            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  consists of groups of zero to four hexadecimal digits, separated by colons.
+                                            type: string
+                                            format: IP
+                                        isDynamic:
+                                          description: |
+                                            Indicates whether this set of addresses was assigned dynamically (true) or based on address information provided as input from the API consumer (false). Shall be present if "addresses" is present and shall be absent otherwise.
+                                          type: boolean
+                                        addressRange:
+                                          description: |
+                                            An IP address range used, e.g., in case of egress connections. Exactly one of "addresses" or "addressRange" shall be present.
+                                          type: object
+                                          required:
+                                            - minAddress
+                                            - maxAddress
+                                          properties:
+                                            minAddress:
+                                              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  consists of groups of zero to four hexadecimal digits, separated by colons.
+                                              type: string
+                                              format: IP
+                                            maxAddress:
+                                              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  consists of groups of zero to four hexadecimal digits, separated by colons.
+                                              type: string
+                                              format: IP
+                                        subnetId:
+                                          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  consists of groups of zero to four hexadecimal digits, separated by colons.
+                                          type: string
+                                          format: IP
+                        extLinkPortId:
+                          description: |
+                            An identifier with the intention of being globally unique.
+                          type: string
+                  extVirtualLinkInfo:
+                    description: |
+                      Information about the external VLs the VNF instance is connected to.
+                    type: array
+                    items:
+                      type: object
+                      required:
+                        - id
+                        - resourceHandle
+                      properties:
+                        id:
+                          description: |
+                            An identifier with the intention of being globally unique.
+                          type: string
+                        resourceHandle:
+                          required:
+                            - vimConnectionId
+                            - resourceId
+                          type: object
+                          description: |
+                            This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
+                          properties:
+                            vimConnectionId:
+                              description: |
+                                An identifier with the intention of being globally unique.
+                              type: string
+                            resourceProviderId:
+                              description: |
+                                An identifier with the intention of being globally unique.
+                              type: string
+                            resourceId:
+                              description: |
+                                An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
+                              type: string
+                            vimLevelResourceType:
+                              description: |
+                                Type of the resource in the scope of the VIM or the resource provider.
+                              type: string
+                        extLinkPorts:
+                          description: |
+                            Link ports of this VL.
+                          type: array
+                          items:
+                            description: |
+                              This type represents information about a link port of an external VL, i.e. a port providing connectivity for the VNF to an NS VL.
+                            type: object
+                            required:
+                              - id
+                              - resourceHandle
+                            properties:
+                              id:
+                                description: |
+                                  An identifier with the intention of being globally unique.
+                                type: string
+                              resourceHandle:
+                                required:
+                                  - vimConnectionId
+                                  - resourceId
+                                type: object
+                                description: |
+                                  This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
+                                properties:
+                                  vimConnectionId:
+                                    description: |
+                                      An identifier with the intention of being globally unique.
+                                    type: string
+                                  resourceProviderId:
+                                    description: |
+                                      An identifier with the intention of being globally unique.
+                                    type: string
+                                  resourceId:
+                                    description: |
+                                      An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
+                                    type: string
+                                  vimLevelResourceType:
+                                    description: |
+                                      Type of the resource in the scope of the VIM or the resource provider.
+                                    type: string
+                              cpInstanceId:
+                                description: |
+                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                                type: string
+                  extManagedVirtualLinkInfo:
+                    description: |
+                      External virtual links the VNF instance is connected to.
+                    type: array
+                    items:
+                      type: object
+                      required:
+                        - id
+                        - vnfVirtualLinkDescId
+                      properties:
+                        id:
+                          description: |
+                            An identifier with the intention of being globally unique.
+                          type: string
+                        vnfVirtualLinkDescId:
+                          description: |
+                            An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                          type: string
+                        networkResource:
+                          required:
+                            - vimConnectionId
+                            - resourceId
+                          type: object
+                          description: |
+                            This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
+                          properties:
+                            vimConnectionId:
+                              description: |
+                                An identifier with the intention of being globally unique.
+                              type: string
+                            resourceProviderId:
+                              description: |
+                                An identifier with the intention of being globally unique.
+                              type: string
+                            resourceId:
+                              description: |
+                                An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
+                              type: string
+                            vimLevelResourceType:
+                              description: |
+                                Type of the resource in the scope of the VIM or the resource provider.
+                              type: string
+                        vnfLinkPorts:
+                          description: |
+                            Link ports of this VL.
+                          type: array
+                          items:
+                            type: object
+                            required:
+                              - id
+                              - resourceHandle
+                            properties:
+                              id:
+                                description: |
+                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                                type: string
+                              resourceHandle:
+                                required:
+                                  - vimConnectionId
+                                  - resourceId
+                                type: object
+                                description: |
+                                  This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
+                                properties:
+                                  vimConnectionId:
+                                    description: |
+                                      An identifier with the intention of being globally unique.
+                                    type: string
+                                  resourceProviderId:
+                                    description: |
+                                      An identifier with the intention of being globally unique.
+                                    type: string
+                                  resourceId:
+                                    description: |
+                                      An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
+                                    type: string
+                                  vimLevelResourceType:
+                                    description: |
+                                      Type of the resource in the scope of the VIM or the resource provider.
+                                    type: string
+                              cpInstanceId:
+                                description: |
+                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                                type: string
+                  monitoringParameters:
+                    description: |
+                      Active monitoring parameters.
+                    type: array
+                    items:
+                      type: object
+                      required:
+                        - id
+                        - value
+                        - timeStamp
+                      properties:
+                        id:
+                          description: |
+                            An identifier that is unique within a VNF descriptor.
+                          type: string
+                        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.
+                          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
+                  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:
+                      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
+                      properties:
+                        id:
+                          description: |
+                            An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                          type: string
+                        vduId:
+                          description: |
+                            An identifier that is unique within a VNF descriptor.
+                          type: string
+                        computeResource:
+                          required:
+                            - vimConnectionId
+                            - resourceId
+                          type: object
+                          description: |
+                            This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
+                          properties:
+                            vimConnectionId:
+                              description: |
+                                An identifier with the intention of being globally unique.
+                              type: string
+                            resourceProviderId:
+                              description: |
+                                An identifier with the intention of being globally unique.
+                              type: string
+                            resourceId:
+                              description: |
+                                An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
+                              type: string
+                            vimLevelResourceType:
+                              description: |
+                                Type of the resource in the scope of the VIM or the resource provider.
+                              type: string
+                        storageResourceIds:
+                          description: |
+                            References to the VirtualStorage resources. The value refers to a VirtualStorageResourceInfo item in the VnfInstance.
+                          type: array
+                          items:
+                            description: |
+                              An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                            type: string
+                        reservationId:
+                          description: |
+                            An identifier with the intention of being globally unique.
+                          type: string
+                        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: |
+                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                                type: string
+                              cpdId:
+                                description: |
+                                  An identifier that is unique within a VNF descriptor.
+                                type: string
+                              vnfExtCpId:
+                                description: |
+                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                                type: string
+                              cpProtocolInfo:
+                                description: |
+                                  Network protocol information for this CP.
+                                type: array
+                                items:
+                                  description: |
+                                    This type describes the protocol layer(s) that a CP uses together with protocol-related information, like addresses.
+                                  required:
+                                    - layerProtocol
+                                  properties:
+                                    layerProtocol:
+                                      description: |
+                                        The identifier of layer(s) and protocol(s) associated to the network address information.  Permitted values: IP_OVER_ETHERNET This attribute allows to signal the addition of further types of layer and protocol in future versions of the present document in a backwards-compatible way. In the current version of the present document, only IP over Ethernet is supported.
+                                      type: string
+                                      enum:
+                                        - IP_OVER_ETHERNET
+                                    ipOverEthernet:
+                                      description: |
+                                        This type represents information about a network address that has been assigned.
+                                      type: object
+                                      required:
+                                        - macAddress
+                                      properties:
+                                        macAddress:
+                                          description: |
+                                            A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons.
+                                          type: string
+                                          format: MAC
+                                        ipAddresses:
+                                          description: |
+                                            Addresses assigned to the CP instance. Each entry represents IP addresses assigned by fixed or dynamic IP address assignment per subnet.
+                                          type: array
+                                          items:
+                                            type: object
+                                            required:
+                                              - type
+                                            properties:
+                                              type:
+                                                description: |
+                                                  The type of the IP addresses. Permitted values: IPV4, IPV6.
+                                                type: string
+                                                enum:
+                                                  - IPV4
+                                                  - IPV6
+                                              addresses:
+                                                description: |
+                                                  Fixed addresses assigned (from the subnet defined by "subnetId" if provided).
+                                                type: array
+                                                items:
+                                                  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  consists of groups of zero to four hexadecimal digits, separated by colons.
+                                                  type: string
+                                                  format: IP
+                                              isDynamic:
+                                                description: |
+                                                  Indicates whether this set of addresses was assigned dynamically (true) or based on address information provided as input from the API consumer (false). Shall be present if "addresses" is present and shall be absent otherwise.
+                                                type: boolean
+                                              addressRange:
+                                                description: |
+                                                  An IP address range used, e.g., in case of egress connections. Exactly one of "addresses" or "addressRange" shall be present.
+                                                type: object
+                                                required:
+                                                  - minAddress
+                                                  - maxAddress
+                                                properties:
+                                                  minAddress:
+                                                    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  consists of groups of zero to four hexadecimal digits, separated by colons.
+                                                    type: string
+                                                    format: IP
+                                                  maxAddress:
+                                                    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  consists of groups of zero to four hexadecimal digits, separated by colons.
+                                                    type: string
+                                                    format: IP
+                                              subnetId:
+                                                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  consists of groups of zero to four hexadecimal digits, separated by colons.
+                                                type: string
+                                                format: IP
+                              vnfLinkPortId:
+                                description: |
+                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                                type: string
+                        metadata:
+                          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
+                  virtualLinkResourceInfo:
+                    description: |
+                      Information about the virtualised network resources used by the VLs of the VNF instance.
+                    type: array
+                    items:
+                      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
+                        - vnfVirtualLinkDescId
+                        - networkResource
+                      properties:
+                        id:
+                          description: |
+                            An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                          type: string
+                        vnfVirtualLinkDescId:
+                          description: |
+                            An identifier that is unique within a VNF descriptor.
+                          type: string
+                        networkResource:
+                          required:
+                            - vimConnectionId
+                            - resourceId
+                          type: object
+                          description: |
+                            This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
+                          properties:
+                            vimConnectionId:
+                              description: |
+                                An identifier with the intention of being globally unique.
+                              type: string
+                            resourceProviderId:
+                              description: |
+                                An identifier with the intention of being globally unique.
+                              type: string
+                            resourceId:
+                              description: |
+                                An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
+                              type: string
+                            vimLevelResourceType:
+                              description: |
+                                Type of the resource in the scope of the VIM or the resource provider.
+                              type: string
+                        reservationId:
+                          description: |
+                            An identifier with the intention of being globally unique.
+                          type: string
+                        vnfLinkPorts:
+                          description: |
+                            Links ports of this VL. Shall be present when the linkPort is used for external connectivity by the VNF (refer to VnfLinkPortInfo). May be present otherwise.
+                          type: array
+                          items:
+                            type: object
+                            required:
+                              - id
+                              - resourceHandle
+                            properties:
+                              id:
+                                description: |
+                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                                type: string
+                              resourceHandle:
+                                required:
+                                  - vimConnectionId
+                                  - resourceId
+                                type: object
+                                description: |
+                                  This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
+                                properties:
+                                  vimConnectionId:
+                                    description: |
+                                      An identifier with the intention of being globally unique.
+                                    type: string
+                                  resourceProviderId:
+                                    description: |
+                                      An identifier with the intention of being globally unique.
+                                    type: string
+                                  resourceId:
+                                    description: |
+                                      An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
+                                    type: string
+                                  vimLevelResourceType:
+                                    description: |
+                                      Type of the resource in the scope of the VIM or the resource provider.
+                                    type: string
+                              cpInstanceId:
+                                description: |
+                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                                type: string
+                        metadata:
+                          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
+                  virtualStorageResourceInfo:
+                    description: |
+                      Information on the virtualised storage resource(s) used as storage for the VNF instance.
+                    type: array
+                    items:
+                      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: |
+                            An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                          type: string
+                        virtualStorageDescId:
+                          description: |
+                            An identifier that is unique within a VNF descriptor.
+                          type: string
+                        storageResource:
+                          required:
+                            - vimConnectionId
+                            - resourceId
+                          type: object
+                          description: |
+                            This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
+                          properties:
+                            vimConnectionId:
+                              description: |
+                                An identifier with the intention of being globally unique.
+                              type: string
+                            resourceProviderId:
+                              description: |
+                                An identifier with the intention of being globally unique.
+                              type: string
+                            resourceId:
+                              description: |
+                                An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
+                              type: string
+                            vimLevelResourceType:
+                              description: |
+                                Type of the resource in the scope of the VIM or the resource provider.
+                              type: string
+                        reservationId:
+                          description: |
+                            An identifier with the intention of being globally unique.
+                          type: string
+                        metadata:
+                          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
+              metadata:
+                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
+              extensions:
+                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
+              _links:
+                description: |
+                  Links to resources related to this resource.
+                type: object
+                required:
+                  - self
+                properties:
+                  self:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+                  indicators:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+                  instantiate:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+                  terminate:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+                  scale:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+                  scaleToLevel:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+                  changeFlavour:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+                  heal:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+                  operate:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+                  changeExtConn:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+        '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.
+          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:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '401':
+          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.
+          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:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '403':
+          description: |
+            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.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '404':
+          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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '405':
+          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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '406':
+          description: |
+            Not Acceptable
+            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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '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
+            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:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '416':
+          description: |
+            Requested Range Not Satisfiable
+            This code is returned if the requested byte range in the Range HTTP header is not present in the requested resource.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '422':
+          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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '500':
+          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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '503':
+          description: |
+            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 [13] 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
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+  '/vnf_instances/{vnfInstanceId}':
+    parameters:
+      - name: vnfInstanceId
+        description: |
+          Identifier of the VNF instance. 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.
+        in: path
+        type: string
+        required: true
+    get:
+      description: |
+        Query VNF
+
+        The GET method retrieves information about a VNF instance by reading an individual VNF instance resource.
+      tags:
+        - Sol003VnfLcm
+      parameters:
+        - name: Accept
+          description: |
+            Content-Types that are acceptable for the response. Reference: IETF RFC 7231
+          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
+        - name: Content-Type
+          description: |
+            The MIME type of the body of the request. Reference: IETF RFC 7231
+          in: header
+          required: true
+          type: string
+      responses:
+        '200':
+          description: |
+            OK
+            Information about zero or more VNF instances was queried successfully. The response body shall contain representations of zero or more VNF instances.
+          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:
+            description: |
+              This type represents a VNF instance.
+            type: object
+            required:
+              - id
+              - vnfdId
+              - vnfProvider
+              - vnfProductName
+              - vnfSoftwareVersion
+              - vnfdVersion
+              - vnfPkgId
+              - instantiationState
+            properties:
+              id:
+                description: |
+                  An identifier with the intention of being globally unique.
+                type: string
+              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: |
+                  An identifier with the intention of being globally unique.
+                type: string
+              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: |
+                  A Version.
+                type: string
+              vnfdVersion:
+                description: |
+                  A Version.
+                type: string
+              vnfPkgId:
+                description: |
+                  An identifier with the intention of being globally unique.
+                type: string
+              vnfConfigurableProperties:
+                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
+              vimConnectionInfo:
+                description: |
+                  Information about VIM connections to be used for managing the resources for the VNF instance. This attribute shall only be supported and present if VNF-related resource management in direct mode is applicable. This attribute can be modified with the PATCH method.
+                type: array
+                items:
+                  description: |
+                    This type represents parameters to connect to a VIM for managing the resources of a VNF instance. This structure is used to convey VIM-related parameters over the Or-Vnfm interface. Additional parameters for a VIM may be configured into the VNFM by means outside the scope of the present document, and bound to the identifier of that VIM.
+                  type: object
+                  required:
+                    - id
+                    - vimType
+                  properties:
+                    id:
+                      description: |
+                        An identifier with the intention of being globally unique.
+                      type: string
+                    vimId:
+                      description: |
+                        An identifier with the intention of being globally unique.
+                      type: string
+                    vimType:
+                      description: |
+                        Discriminator for the different types of the VIM information. The value of this attribute determines the structure of the "interfaceInfo" and "accessInfo" attributes, based on the type of the VIM. The set of permitted values is expected to change over time as new types or versions of VIMs become available. The ETSI NFV registry of VIM-related information provides access to information about VimConnectionInfo definitions for various VIM types. The structure of the registry is defined in Annex C of SOL003.
+                      type: string
+                    interfaceInfo:
+                      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
+                    accessInfo:
+                      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
+                    extra:
+                      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
+              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
+                properties:
+                  flavourId:
+                    description: |
+                      An identifier that is unique within a VNF descriptor.
+                    type: string
+                  vnfState:
+                    type: string
+                    enum:
+                      - STARTED
+                      - STOPPED
+                  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:
+                      required:
+                        - aspectId
+                        - scaleLevel
+                      type: object
+                      properties:
+                        aspectId:
+                          description: |
+                            An identifier that is unique within a VNF descriptor.
+                          type: string
+                        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
+                  extCpInfo:
+                    description: |
+                      Information about the external CPs exposed by the VNF instance.
+                    type: array
+                    minItems: 1
+                    items:
+                      type: object
+                      required:
+                        - id
+                        - cpdId
+                      properties:
+                        id:
+                          description: |
+                            An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                          type: string
+                        cpdId:
+                          description: |
+                            An identifier that is unique within a VNF descriptor.
+                          type: string
+                        cpProtocolInfo:
+                          description: |
+                            Network protocol information for this CP.
+                          type: array
+                          items:
+                            description: |
+                              This type describes the protocol layer(s) that a CP uses together with protocol-related information, like addresses.
+                            required:
+                              - layerProtocol
+                            properties:
+                              layerProtocol:
+                                description: |
+                                  The identifier of layer(s) and protocol(s) associated to the network address information.  Permitted values: IP_OVER_ETHERNET This attribute allows to signal the addition of further types of layer and protocol in future versions of the present document in a backwards-compatible way. In the current version of the present document, only IP over Ethernet is supported.
+                                type: string
+                                enum:
+                                  - IP_OVER_ETHERNET
+                              ipOverEthernet:
+                                description: |
+                                  This type represents information about a network address that has been assigned.
+                                type: object
+                                required:
+                                  - macAddress
+                                properties:
+                                  macAddress:
+                                    description: |
+                                      A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons.
+                                    type: string
+                                    format: MAC
+                                  ipAddresses:
+                                    description: |
+                                      Addresses assigned to the CP instance. Each entry represents IP addresses assigned by fixed or dynamic IP address assignment per subnet.
+                                    type: array
+                                    items:
+                                      type: object
+                                      required:
+                                        - type
+                                      properties:
+                                        type:
+                                          description: |
+                                            The type of the IP addresses. Permitted values: IPV4, IPV6.
+                                          type: string
+                                          enum:
+                                            - IPV4
+                                            - IPV6
+                                        addresses:
+                                          description: |
+                                            Fixed addresses assigned (from the subnet defined by "subnetId" if provided).
+                                          type: array
+                                          items:
+                                            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  consists of groups of zero to four hexadecimal digits, separated by colons.
+                                            type: string
+                                            format: IP
+                                        isDynamic:
+                                          description: |
+                                            Indicates whether this set of addresses was assigned dynamically (true) or based on address information provided as input from the API consumer (false). Shall be present if "addresses" is present and shall be absent otherwise.
+                                          type: boolean
+                                        addressRange:
+                                          description: |
+                                            An IP address range used, e.g., in case of egress connections. Exactly one of "addresses" or "addressRange" shall be present.
+                                          type: object
+                                          required:
+                                            - minAddress
+                                            - maxAddress
+                                          properties:
+                                            minAddress:
+                                              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  consists of groups of zero to four hexadecimal digits, separated by colons.
+                                              type: string
+                                              format: IP
+                                            maxAddress:
+                                              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  consists of groups of zero to four hexadecimal digits, separated by colons.
+                                              type: string
+                                              format: IP
+                                        subnetId:
+                                          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  consists of groups of zero to four hexadecimal digits, separated by colons.
+                                          type: string
+                                          format: IP
+                        extLinkPortId:
+                          description: |
+                            An identifier with the intention of being globally unique.
+                          type: string
+                  extVirtualLinkInfo:
+                    description: |
+                      Information about the external VLs the VNF instance is connected to.
+                    type: array
+                    items:
+                      type: object
+                      required:
+                        - id
+                        - resourceHandle
+                      properties:
+                        id:
+                          description: |
+                            An identifier with the intention of being globally unique.
+                          type: string
+                        resourceHandle:
+                          required:
+                            - vimConnectionId
+                            - resourceId
+                          type: object
+                          description: |
+                            This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
+                          properties:
+                            vimConnectionId:
+                              description: |
+                                An identifier with the intention of being globally unique.
+                              type: string
+                            resourceProviderId:
+                              description: |
+                                An identifier with the intention of being globally unique.
+                              type: string
+                            resourceId:
+                              description: |
+                                An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
+                              type: string
+                            vimLevelResourceType:
+                              description: |
+                                Type of the resource in the scope of the VIM or the resource provider.
+                              type: string
+                        extLinkPorts:
+                          description: |
+                            Link ports of this VL.
+                          type: array
+                          items:
+                            description: |
+                              This type represents information about a link port of an external VL, i.e. a port providing connectivity for the VNF to an NS VL.
+                            type: object
+                            required:
+                              - id
+                              - resourceHandle
+                            properties:
+                              id:
+                                description: |
+                                  An identifier with the intention of being globally unique.
+                                type: string
+                              resourceHandle:
+                                required:
+                                  - vimConnectionId
+                                  - resourceId
+                                type: object
+                                description: |
+                                  This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
+                                properties:
+                                  vimConnectionId:
+                                    description: |
+                                      An identifier with the intention of being globally unique.
+                                    type: string
+                                  resourceProviderId:
+                                    description: |
+                                      An identifier with the intention of being globally unique.
+                                    type: string
+                                  resourceId:
+                                    description: |
+                                      An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
+                                    type: string
+                                  vimLevelResourceType:
+                                    description: |
+                                      Type of the resource in the scope of the VIM or the resource provider.
+                                    type: string
+                              cpInstanceId:
+                                description: |
+                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                                type: string
+                  extManagedVirtualLinkInfo:
+                    description: |
+                      External virtual links the VNF instance is connected to.
+                    type: array
+                    items:
+                      type: object
+                      required:
+                        - id
+                        - vnfVirtualLinkDescId
+                      properties:
+                        id:
+                          description: |
+                            An identifier with the intention of being globally unique.
+                          type: string
+                        vnfVirtualLinkDescId:
+                          description: |
+                            An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                          type: string
+                        networkResource:
+                          required:
+                            - vimConnectionId
+                            - resourceId
+                          type: object
+                          description: |
+                            This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
+                          properties:
+                            vimConnectionId:
+                              description: |
+                                An identifier with the intention of being globally unique.
+                              type: string
+                            resourceProviderId:
+                              description: |
+                                An identifier with the intention of being globally unique.
+                              type: string
+                            resourceId:
+                              description: |
+                                An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
+                              type: string
+                            vimLevelResourceType:
+                              description: |
+                                Type of the resource in the scope of the VIM or the resource provider.
+                              type: string
+                        vnfLinkPorts:
+                          description: |
+                            Link ports of this VL.
+                          type: array
+                          items:
+                            type: object
+                            required:
+                              - id
+                              - resourceHandle
+                            properties:
+                              id:
+                                description: |
+                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                                type: string
+                              resourceHandle:
+                                required:
+                                  - vimConnectionId
+                                  - resourceId
+                                type: object
+                                description: |
+                                  This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
+                                properties:
+                                  vimConnectionId:
+                                    description: |
+                                      An identifier with the intention of being globally unique.
+                                    type: string
+                                  resourceProviderId:
+                                    description: |
+                                      An identifier with the intention of being globally unique.
+                                    type: string
+                                  resourceId:
+                                    description: |
+                                      An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
+                                    type: string
+                                  vimLevelResourceType:
+                                    description: |
+                                      Type of the resource in the scope of the VIM or the resource provider.
+                                    type: string
+                              cpInstanceId:
+                                description: |
+                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                                type: string
+                  monitoringParameters:
+                    description: |
+                      Active monitoring parameters.
+                    type: array
+                    items:
+                      type: object
+                      required:
+                        - id
+                        - value
+                        - timeStamp
+                      properties:
+                        id:
+                          description: |
+                            An identifier that is unique within a VNF descriptor.
+                          type: string
+                        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.
+                          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
+                  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:
+                      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
+                      properties:
+                        id:
+                          description: |
+                            An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                          type: string
+                        vduId:
+                          description: |
+                            An identifier that is unique within a VNF descriptor.
+                          type: string
+                        computeResource:
+                          required:
+                            - vimConnectionId
+                            - resourceId
+                          type: object
+                          description: |
+                            This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
+                          properties:
+                            vimConnectionId:
+                              description: |
+                                An identifier with the intention of being globally unique.
+                              type: string
+                            resourceProviderId:
+                              description: |
+                                An identifier with the intention of being globally unique.
+                              type: string
+                            resourceId:
+                              description: |
+                                An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
+                              type: string
+                            vimLevelResourceType:
+                              description: |
+                                Type of the resource in the scope of the VIM or the resource provider.
+                              type: string
+                        storageResourceIds:
+                          description: |
+                            References to the VirtualStorage resources. The value refers to a VirtualStorageResourceInfo item in the VnfInstance.
+                          type: array
+                          items:
+                            description: |
+                              An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                            type: string
+                        reservationId:
+                          description: |
+                            An identifier with the intention of being globally unique.
+                          type: string
+                        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: |
+                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                                type: string
+                              cpdId:
+                                description: |
+                                  An identifier that is unique within a VNF descriptor.
+                                type: string
+                              vnfExtCpId:
+                                description: |
+                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                                type: string
+                              cpProtocolInfo:
+                                description: |
+                                  Network protocol information for this CP.
+                                type: array
+                                items:
+                                  description: |
+                                    This type describes the protocol layer(s) that a CP uses together with protocol-related information, like addresses.
+                                  required:
+                                    - layerProtocol
+                                  properties:
+                                    layerProtocol:
+                                      description: |
+                                        The identifier of layer(s) and protocol(s) associated to the network address information.  Permitted values: IP_OVER_ETHERNET This attribute allows to signal the addition of further types of layer and protocol in future versions of the present document in a backwards-compatible way. In the current version of the present document, only IP over Ethernet is supported.
+                                      type: string
+                                      enum:
+                                        - IP_OVER_ETHERNET
+                                    ipOverEthernet:
+                                      description: |
+                                        This type represents information about a network address that has been assigned.
+                                      type: object
+                                      required:
+                                        - macAddress
+                                      properties:
+                                        macAddress:
+                                          description: |
+                                            A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons.
+                                          type: string
+                                          format: MAC
+                                        ipAddresses:
+                                          description: |
+                                            Addresses assigned to the CP instance. Each entry represents IP addresses assigned by fixed or dynamic IP address assignment per subnet.
+                                          type: array
+                                          items:
+                                            type: object
+                                            required:
+                                              - type
+                                            properties:
+                                              type:
+                                                description: |
+                                                  The type of the IP addresses. Permitted values: IPV4, IPV6.
+                                                type: string
+                                                enum:
+                                                  - IPV4
+                                                  - IPV6
+                                              addresses:
+                                                description: |
+                                                  Fixed addresses assigned (from the subnet defined by "subnetId" if provided).
+                                                type: array
+                                                items:
+                                                  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  consists of groups of zero to four hexadecimal digits, separated by colons.
+                                                  type: string
+                                                  format: IP
+                                              isDynamic:
+                                                description: |
+                                                  Indicates whether this set of addresses was assigned dynamically (true) or based on address information provided as input from the API consumer (false). Shall be present if "addresses" is present and shall be absent otherwise.
+                                                type: boolean
+                                              addressRange:
+                                                description: |
+                                                  An IP address range used, e.g., in case of egress connections. Exactly one of "addresses" or "addressRange" shall be present.
+                                                type: object
+                                                required:
+                                                  - minAddress
+                                                  - maxAddress
+                                                properties:
+                                                  minAddress:
+                                                    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  consists of groups of zero to four hexadecimal digits, separated by colons.
+                                                    type: string
+                                                    format: IP
+                                                  maxAddress:
+                                                    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  consists of groups of zero to four hexadecimal digits, separated by colons.
+                                                    type: string
+                                                    format: IP
+                                              subnetId:
+                                                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  consists of groups of zero to four hexadecimal digits, separated by colons.
+                                                type: string
+                                                format: IP
+                              vnfLinkPortId:
+                                description: |
+                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                                type: string
+                        metadata:
+                          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
+                  virtualLinkResourceInfo:
+                    description: |
+                      Information about the virtualised network resources used by the VLs of the VNF instance.
+                    type: array
+                    items:
+                      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
+                        - vnfVirtualLinkDescId
+                        - networkResource
+                      properties:
+                        id:
+                          description: |
+                            An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                          type: string
+                        vnfVirtualLinkDescId:
+                          description: |
+                            An identifier that is unique within a VNF descriptor.
+                          type: string
+                        networkResource:
+                          required:
+                            - vimConnectionId
+                            - resourceId
+                          type: object
+                          description: |
+                            This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
+                          properties:
+                            vimConnectionId:
+                              description: |
+                                An identifier with the intention of being globally unique.
+                              type: string
+                            resourceProviderId:
+                              description: |
+                                An identifier with the intention of being globally unique.
+                              type: string
+                            resourceId:
+                              description: |
+                                An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
+                              type: string
+                            vimLevelResourceType:
+                              description: |
+                                Type of the resource in the scope of the VIM or the resource provider.
+                              type: string
+                        reservationId:
+                          description: |
+                            An identifier with the intention of being globally unique.
+                          type: string
+                        vnfLinkPorts:
+                          description: |
+                            Links ports of this VL. Shall be present when the linkPort is used for external connectivity by the VNF (refer to VnfLinkPortInfo). May be present otherwise.
+                          type: array
+                          items:
+                            type: object
+                            required:
+                              - id
+                              - resourceHandle
+                            properties:
+                              id:
+                                description: |
+                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                                type: string
+                              resourceHandle:
+                                required:
+                                  - vimConnectionId
+                                  - resourceId
+                                type: object
+                                description: |
+                                  This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
+                                properties:
+                                  vimConnectionId:
+                                    description: |
+                                      An identifier with the intention of being globally unique.
+                                    type: string
+                                  resourceProviderId:
+                                    description: |
+                                      An identifier with the intention of being globally unique.
+                                    type: string
+                                  resourceId:
+                                    description: |
+                                      An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
+                                    type: string
+                                  vimLevelResourceType:
+                                    description: |
+                                      Type of the resource in the scope of the VIM or the resource provider.
+                                    type: string
+                              cpInstanceId:
+                                description: |
+                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                                type: string
+                        metadata:
+                          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
+                  virtualStorageResourceInfo:
+                    description: |
+                      Information on the virtualised storage resource(s) used as storage for the VNF instance.
+                    type: array
+                    items:
+                      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: |
+                            An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                          type: string
+                        virtualStorageDescId:
+                          description: |
+                            An identifier that is unique within a VNF descriptor.
+                          type: string
+                        storageResource:
+                          required:
+                            - vimConnectionId
+                            - resourceId
+                          type: object
+                          description: |
+                            This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
+                          properties:
+                            vimConnectionId:
+                              description: |
+                                An identifier with the intention of being globally unique.
+                              type: string
+                            resourceProviderId:
+                              description: |
+                                An identifier with the intention of being globally unique.
+                              type: string
+                            resourceId:
+                              description: |
+                                An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
+                              type: string
+                            vimLevelResourceType:
+                              description: |
+                                Type of the resource in the scope of the VIM or the resource provider.
+                              type: string
+                        reservationId:
+                          description: |
+                            An identifier with the intention of being globally unique.
+                          type: string
+                        metadata:
+                          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
+              metadata:
+                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
+              extensions:
+                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
+              _links:
+                description: |
+                  Links to resources related to this resource.
+                type: object
+                required:
+                  - self
+                properties:
+                  self:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+                  indicators:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+                  instantiate:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+                  terminate:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+                  scale:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+                  scaleToLevel:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+                  changeFlavour:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+                  heal:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+                  operate:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+                  changeExtConn:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+        '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.
+          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:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '401':
+          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.
+          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:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '403':
+          description: |
+            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.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '404':
+          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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '405':
+          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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '406':
+          description: |
+            Not Acceptable
+            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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '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
+            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:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '416':
+          description: |
+            Requested Range Not Satisfiable
+            This code is returned if the requested byte range in the Range HTTP header is not present in the requested resource.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '500':
+          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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '503':
+          description: |
+            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 [13] 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
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+    delete:
+      description: |
+        Delete VNF Identifier
+
+        This method deletes an individual VNF instance resource.
+      tags:
+        - Sol003VnfLcm
+      parameters:
+        - name: Authorization
+          description: |
+            The authorization token for the request. Reference: IETF RFC 7235
+          in: header
+          required: false
+          type: string
+      responses:
+        '204':
+          description: |
+            No Content
+            The VNF instance resource and the associated VNF identifier were deleted 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
+        '400':
+          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.
+          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:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '401':
+          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.
+          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:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '403':
+          description: |
+            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.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '404':
+          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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '405':
+          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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '406':
+          description: |
+            Not Acceptable
+            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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '409':
+          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:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '412':
+          description: |
+            Precondition Failed
+            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:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '500':
+          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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '503':
+          description: |
+            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 [13] 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
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+  '/vnf_instances/{vnfInstanceId}/instantiate':
+    parameters:
+      - name: vnfInstanceId
+        description: |
+          Identifier of the VNF instance. 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.
+        in: path
+        type: string
+        required: true
+    post:
+      description: |
+        Instantiate VNF
+
+        The POST method instantiates a VNF instance.
+      tags:
+        - Sol003VnfLcm
+      parameters:
+        - name: InstantiateVnfRequest
+          description: Parameters for the VNF instantiation.
+          in: body
+          required: true
+          schema:
+            type: object
+            required:
+              - flavourId
+            properties:
+              flavourId:
+                description: |
+                  An identifier that is unique within a VNF descriptor.
+                type: string
+              extVirtualLinks:
+                description: |
+                  Information about external VLs to connect the VNF to.
+                type: array
+                items:
+                  description: |
+                    This type represents an external VL.
+                  type: object
+                  required:
+                    - id
+                    - resourceId
+                    - extCps
+                  properties:
+                    id:
+                      description: |
+                        An identifier with the intention of being globally unique.
+                      type: string
+                    vimConnectionId:
+                      description: |
+                        An identifier with the intention of being globally unique.
+                      type: string
+                    resourceId:
+                      description: |
+                        An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
+                      type: string
+                    extCps:
+                      description: |
+                        External CPs of the VNF to be connected to this external VL.
+                      type: array
+                      items:
+                        description: |
+                          This type represents configuration information for external CPs created from a CPD.
+                        type: object
+                        required:
+                          - cpdId
+                        properties:
+                          cpdId:
+                            description: |
+                              An identifier that is unique within a VNF descriptor.
+                            type: string
+                          cpConfig:
+                            description: |
+                              List of instance data that need to be configured on the CP instances created from the respective CPD.
+                            type: array
+                            items:
+                              description: |
+                                This type represents an externally provided link port or network address information per instance of an external connection point. In case a link port is provided, the VNFM shall use that link port when connecting the external CP to the external VL. In a link port is not provided, the VNFM shall create a link port on the external VL, and use that link port to connect the external CP to the external VL.
+                              type: object
+                              properties:
+                                cpInstanceId:
+                                  description: |
+                                    An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                                  type: string
+                                linkPortId:
+                                  description: |
+                                    An identifier with the intention of being globally unique.
+                                  type: string
+                                cpProtocolData:
+                                  description: |
+                                    Parameters for configuring the network protocols on the link port that connects the CP to a VL.  The following conditions apply to the attributes "linkPortId" and "cpProtocolData":  * The "linkPortId" and "cpProtocolData" attributes shall both be  absent for the deletion of an existing external CP instance
+                                      addressed by cpInstanceId. 
+                                    * At least one of these attributes shall be present for a  to-be-created external CP instance or an existing external
+                                      CP instance.
+                                    * If the "linkPortId" attribute is absent, the VNFM shall create a  link port.
+                                    * If the "cpProtocolData" attribute is absent, the "linkPortId"  attribute shall be provided referencing a pre-created link port,
+                                      and the VNFM can use means outside the scope of the present
+                                      document to obtain the pre-configured address information for the
+                                      connection point from the resource representing the link port.
+                                    * If both "cpProtocolData" and "linkportId" are provided, the API  consumer shall ensure that the cpProtocolData can be used with the
+                                      pre-created link port referenced by "linkPortId".
+                                  type: array
+                                  items:
+                                    description: |
+                                      This type represents network protocol data.
+                                    type: object
+                                    required:
+                                      - layerProtocol
+                                    properties:
+                                      layerProtocol:
+                                        description: |
+                                          Identifier of layer(s) and protocol(s). This attribute allows to signal the addition of further types of layer and protocol in future versions of the present document in a backwards-compatible way. In the current version of the present document, only IP over Ethernet is supported.
+                                        type: string
+                                        enum:
+                                          - IP_OVER_ETHERNET
+                                      ipOverEthernet:
+                                        description: |
+                                          This type represents network address data for IP over Ethernet.
+                                        type: object
+                                        properties:
+                                          macAddress:
+                                            description: |
+                                              A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons.
+                                            type: string
+                                            format: MAC
+                                          ipAddresses:
+                                            description: |
+                                              List of IP addresses to assign to the CP instance. Each entry represents IP address data for fixed or dynamic IP address assignment per subnet. If this attribute is not present, no IP address shall be assigned.
+                                            type: array
+                                            items:
+                                              type: object
+                                              required:
+                                                - type
+                                              properties:
+                                                type:
+                                                  description: |
+                                                    The type of the IP addresses. Permitted values: IPV4, IPV6.
+                                                  type: string
+                                                  enum:
+                                                    - IPV4
+                                                    - IPV6
+                                                fixedAddresses:
+                                                  description: |
+                                                    Fixed addresses to assign (from the subnet defined by "subnetId" if provided). Exactly one of "fixedAddresses", "numDynamicAddresses" or "ipAddressRange" shall be present.
+                                                  type: array
+                                                  items:
+                                                    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  consists of groups of zero to four hexadecimal digits, separated by colons.
+                                                    type: string
+                                                    format: IP
+                                                numDynamicAddresses:
+                                                  description: |
+                                                    Number of dynamic addresses to assign (from the subnet defined by "subnetId" if provided). Exactly one of "fixedAddresses", "numDynamicAddresses" or "ipAddressRange" shall be present.
+                                                  type: integer
+                                                addressRange:
+                                                  description: |
+                                                    An IP address range to be used, e.g. in case of egress connections. In case this attribute is present, IP addresses from the range will be used.
+                                                  type: object
+                                                  required:
+                                                    - minAddress
+                                                    - maxAddress
+                                                  properties:
+                                                    minAddress:
+                                                      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  consists of groups of zero to four hexadecimal digits, separated by colons.
+                                                      type: string
+                                                      format: IP
+                                                    maxAddress:
+                                                      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  consists of groups of zero to four hexadecimal digits, separated by colons.
+                                                      type: string
+                                                      format: IP
+                                                subnetId:
+                                                  description: |
+                                                    An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
+                                                  type: string
+                    extLinkPorts:
+                      description: |
+                        Externally provided link ports to be used to connect external 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:
+                        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:
+                          - id
+                          - resourceHandle
+                        properties:
+                          id:
+                            description: |
+                              An identifier with the intention of being globally unique.
+                            type: string
+                          resourceHandle:
+                            required:
+                              - vimConnectionId
+                              - resourceId
+                            type: object
+                            description: |
+                              This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
+                            properties:
+                              vimConnectionId:
+                                description: |
+                                  An identifier with the intention of being globally unique.
+                                type: string
+                              resourceId:
+                                description: |
+                                  An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
+                                type: string
+                              vimLevelResourceType:
+                                description: |
+                                  Type of the resource in the scope of the VIM or the resource provider.
+                                type: string
+              vimConnectionInfo:
+                description: |
+                  Information about VIM connections to be used for managing the resources for the VNF instance, or refer to external / externally-managed virtual links. This attribute shall only be supported and may be present if VNF-related resource management in direct mode is applicable.
+                type: array
+                items:
+                  description: |
+                    This type represents parameters to connect to a VIM for managing the resources of a VNF instance. This structure is used to convey VIM-related parameters over the Or-Vnfm interface. Additional parameters for a VIM may be configured into the VNFM by means outside the scope of the present document, and bound to the identifier of that VIM.
+                  type: object
+                  required:
+                    - id
+                    - vimType
+                  properties:
+                    id:
+                      description: |
+                        An identifier with the intention of being globally unique.
+                      type: string
+                    vimId:
+                      description: |
+                        An identifier with the intention of being globally unique.
+                      type: string
+                    vimType:
+                      description: |
+                        Discriminator for the different types of the VIM information. The value of this attribute determines the structure of the "interfaceInfo" and "accessInfo" attributes, based on the type of the VIM. The set of permitted values is expected to change over time as new types or versions of VIMs become available. The ETSI NFV registry of VIM-related information provides access to information about VimConnectionInfo definitions for various VIM types. The structure of the registry is defined in Annex C of SOL003.
+                      type: string
+                    interfaceInfo:
+                      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
+                    accessInfo:
+                      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
+              additionalParams:
+                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
+        - name: Accept
+          description: |
+            Content-Types that are acceptable for the response. Reference: IETF RFC 7231
+          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
+        - name: Content-Type
+          description: |
+            The MIME type of the body of the request. Reference: IETF RFC 7231
+          in: header
+          required: true
+          type: string
+      responses:
+        '202':
+          description: |
+            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:
+            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
+        '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.
+          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:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '401':
+          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.
+          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:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '403':
+          description: |
+            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.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '404':
+          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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '405':
+          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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '406':
+          description: |
+            Not Acceptable
+            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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '409':
+          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:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '416':
+          description: |
+            Requested Range Not Satisfiable
+            This code is returned if the requested byte range in the Range HTTP header is not present in the requested resource.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '500':
+          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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '503':
+          description: |
+            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 [13] 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
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+  '/vnf_instances/{vnfInstanceId}/terminate':
+    parameters:
+      - name: vnfInstanceId
+        description: |
+          The identifier of the VNF instance to be terminated. 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.
+        in: path
+        type: string
+        required: true
+    post:
+      description: |
+        Terminate VNF
+
+        The POST method terminates a VNF instance.
+      tags:
+        - Sol003VnfLcm
+      parameters:
+        - name: TerminateVnfRequest
+          description: Parameters for the VNF termination.
+          in: body
+          required: true
+          schema:
+            type: object
+            required:
+              - terminationType
+            properties:
+              terminationType:
+                description: |
+                  Indicates whether forceful or graceful termination is requested. VNFM Adapter will only support FORCEFUL in Dublin.
+                type: string
+                enum:
+                  - FORCEFUL
+                  - GRACEFUL
+        - name: Accept
+          description: |
+            Content-Types that are acceptable for the response. Reference: IETF RFC 7231
+          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
+        - name: Content-Type
+          description: |
+            The MIME type of the body of the request. Reference: IETF RFC 7231
+          in: header
+          required: true
+          type: string
+      responses:
+        '202':
+          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:
+            description: |
+              This type represents a VNF instance.
+            type: object
+            required:
+              - id
+              - vnfdId
+              - vnfProvider
+              - vnfProductName
+              - vnfSoftwareVersion
+              - vnfdVersion
+              - vnfPkgId
+              - instantiationState
+            properties:
+              id:
+                description: |
+                  An identifier with the intention of being globally unique.
+                type: string
+              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: |
+                  An identifier with the intention of being globally unique.
+                type: string
+              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: |
+                  A Version.
+                type: string
+              vnfdVersion:
+                description: |
+                  A Version.
+                type: string
+              vnfPkgId:
+                description: |
+                  An identifier with the intention of being globally unique.
+                type: string
+              vnfConfigurableProperties:
+                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
+              vimConnectionInfo:
+                description: |
+                  Information about VIM connections to be used for managing the resources for the VNF instance. This attribute shall only be supported and present if VNF-related resource management in direct mode is applicable. This attribute can be modified with the PATCH method.
+                type: array
+                items:
+                  description: |
+                    This type represents parameters to connect to a VIM for managing the resources of a VNF instance. This structure is used to convey VIM-related parameters over the Or-Vnfm interface. Additional parameters for a VIM may be configured into the VNFM by means outside the scope of the present document, and bound to the identifier of that VIM.
+                  type: object
+                  required:
+                    - id
+                    - vimType
+                  properties:
+                    id:
+                      description: |
+                        An identifier with the intention of being globally unique.
+                      type: string
+                    vimId:
+                      description: |
+                        An identifier with the intention of being globally unique.
+                      type: string
+                    vimType:
+                      description: |
+                        Discriminator for the different types of the VIM information. The value of this attribute determines the structure of the "interfaceInfo" and "accessInfo" attributes, based on the type of the VIM. The set of permitted values is expected to change over time as new types or versions of VIMs become available. The ETSI NFV registry of VIM-related information provides access to information about VimConnectionInfo definitions for various VIM types. The structure of the registry is defined in Annex C of SOL003.
+                      type: string
+                    interfaceInfo:
+                      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
+                    accessInfo:
+                      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
+                    extra:
+                      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
+              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
+                properties:
+                  flavourId:
+                    description: |
+                      An identifier that is unique within a VNF descriptor.
+                    type: string
+                  vnfState:
+                    type: string
+                    enum:
+                      - STARTED
+                      - STOPPED
+                  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:
+                      required:
+                        - aspectId
+                        - scaleLevel
+                      type: object
+                      properties:
+                        aspectId:
+                          description: |
+                            An identifier that is unique within a VNF descriptor.
+                          type: string
+                        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
+                  extCpInfo:
+                    description: |
+                      Information about the external CPs exposed by the VNF instance.
+                    type: array
+                    minItems: 1
+                    items:
+                      type: object
+                      required:
+                        - id
+                        - cpdId
+                      properties:
+                        id:
+                          description: |
+                            An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                          type: string
+                        cpdId:
+                          description: |
+                            An identifier that is unique within a VNF descriptor.
+                          type: string
+                        cpProtocolInfo:
+                          description: |
+                            Network protocol information for this CP.
+                          type: array
+                          items:
+                            description: |
+                              This type describes the protocol layer(s) that a CP uses together with protocol-related information, like addresses.
+                            required:
+                              - layerProtocol
+                            properties:
+                              layerProtocol:
+                                description: |
+                                  The identifier of layer(s) and protocol(s) associated to the network address information.  Permitted values: IP_OVER_ETHERNET This attribute allows to signal the addition of further types of layer and protocol in future versions of the present document in a backwards-compatible way. In the current version of the present document, only IP over Ethernet is supported.
+                                type: string
+                                enum:
+                                  - IP_OVER_ETHERNET
+                              ipOverEthernet:
+                                description: |
+                                  This type represents information about a network address that has been assigned.
+                                type: object
+                                required:
+                                  - macAddress
+                                properties:
+                                  macAddress:
+                                    description: |
+                                      A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons.
+                                    type: string
+                                    format: MAC
+                                  ipAddresses:
+                                    description: |
+                                      Addresses assigned to the CP instance. Each entry represents IP addresses assigned by fixed or dynamic IP address assignment per subnet.
+                                    type: array
+                                    items:
+                                      type: object
+                                      required:
+                                        - type
+                                      properties:
+                                        type:
+                                          description: |
+                                            The type of the IP addresses. Permitted values: IPV4, IPV6.
+                                          type: string
+                                          enum:
+                                            - IPV4
+                                            - IPV6
+                                        addresses:
+                                          description: |
+                                            Fixed addresses assigned (from the subnet defined by "subnetId" if provided).
+                                          type: array
+                                          items:
+                                            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  consists of groups of zero to four hexadecimal digits, separated by colons.
+                                            type: string
+                                            format: IP
+                                        isDynamic:
+                                          description: |
+                                            Indicates whether this set of addresses was assigned dynamically (true) or based on address information provided as input from the API consumer (false). Shall be present if "addresses" is present and shall be absent otherwise.
+                                          type: boolean
+                                        addressRange:
+                                          description: |
+                                            An IP address range used, e.g., in case of egress connections. Exactly one of "addresses" or "addressRange" shall be present.
+                                          type: object
+                                          required:
+                                            - minAddress
+                                            - maxAddress
+                                          properties:
+                                            minAddress:
+                                              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  consists of groups of zero to four hexadecimal digits, separated by colons.
+                                              type: string
+                                              format: IP
+                                            maxAddress:
+                                              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  consists of groups of zero to four hexadecimal digits, separated by colons.
+                                              type: string
+                                              format: IP
+                                        subnetId:
+                                          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  consists of groups of zero to four hexadecimal digits, separated by colons.
+                                          type: string
+                                          format: IP
+                        extLinkPortId:
+                          description: |
+                            An identifier with the intention of being globally unique.
+                          type: string
+                  extVirtualLinkInfo:
+                    description: |
+                      Information about the external VLs the VNF instance is connected to.
+                    type: array
+                    items:
+                      type: object
+                      required:
+                        - id
+                        - resourceHandle
+                      properties:
+                        id:
+                          description: |
+                            An identifier with the intention of being globally unique.
+                          type: string
+                        resourceHandle:
+                          required:
+                            - vimConnectionId
+                            - resourceId
+                          type: object
+                          description: |
+                            This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
+                          properties:
+                            vimConnectionId:
+                              description: |
+                                An identifier with the intention of being globally unique.
+                              type: string
+                            resourceProviderId:
+                              description: |
+                                An identifier with the intention of being globally unique.
+                              type: string
+                            resourceId:
+                              description: |
+                                An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
+                              type: string
+                            vimLevelResourceType:
+                              description: |
+                                Type of the resource in the scope of the VIM or the resource provider.
+                              type: string
+                        extLinkPorts:
+                          description: |
+                            Link ports of this VL.
+                          type: array
+                          items:
+                            description: |
+                              This type represents information about a link port of an external VL, i.e. a port providing connectivity for the VNF to an NS VL.
+                            type: object
+                            required:
+                              - id
+                              - resourceHandle
+                            properties:
+                              id:
+                                description: |
+                                  An identifier with the intention of being globally unique.
+                                type: string
+                              resourceHandle:
+                                required:
+                                  - vimConnectionId
+                                  - resourceId
+                                type: object
+                                description: |
+                                  This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
+                                properties:
+                                  vimConnectionId:
+                                    description: |
+                                      An identifier with the intention of being globally unique.
+                                    type: string
+                                  resourceProviderId:
+                                    description: |
+                                      An identifier with the intention of being globally unique.
+                                    type: string
+                                  resourceId:
+                                    description: |
+                                      An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
+                                    type: string
+                                  vimLevelResourceType:
+                                    description: |
+                                      Type of the resource in the scope of the VIM or the resource provider.
+                                    type: string
+                              cpInstanceId:
+                                description: |
+                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                                type: string
+                  extManagedVirtualLinkInfo:
+                    description: |
+                      External virtual links the VNF instance is connected to.
+                    type: array
+                    items:
+                      type: object
+                      required:
+                        - id
+                        - vnfVirtualLinkDescId
+                      properties:
+                        id:
+                          description: |
+                            An identifier with the intention of being globally unique.
+                          type: string
+                        vnfVirtualLinkDescId:
+                          description: |
+                            An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                          type: string
+                        networkResource:
+                          required:
+                            - vimConnectionId
+                            - resourceId
+                          type: object
+                          description: |
+                            This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
+                          properties:
+                            vimConnectionId:
+                              description: |
+                                An identifier with the intention of being globally unique.
+                              type: string
+                            resourceProviderId:
+                              description: |
+                                An identifier with the intention of being globally unique.
+                              type: string
+                            resourceId:
+                              description: |
+                                An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
+                              type: string
+                            vimLevelResourceType:
+                              description: |
+                                Type of the resource in the scope of the VIM or the resource provider.
+                              type: string
+                        vnfLinkPorts:
+                          description: |
+                            Link ports of this VL.
+                          type: array
+                          items:
+                            type: object
+                            required:
+                              - id
+                              - resourceHandle
+                            properties:
+                              id:
+                                description: |
+                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                                type: string
+                              resourceHandle:
+                                required:
+                                  - vimConnectionId
+                                  - resourceId
+                                type: object
+                                description: |
+                                  This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
+                                properties:
+                                  vimConnectionId:
+                                    description: |
+                                      An identifier with the intention of being globally unique.
+                                    type: string
+                                  resourceProviderId:
+                                    description: |
+                                      An identifier with the intention of being globally unique.
+                                    type: string
+                                  resourceId:
+                                    description: |
+                                      An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
+                                    type: string
+                                  vimLevelResourceType:
+                                    description: |
+                                      Type of the resource in the scope of the VIM or the resource provider.
+                                    type: string
+                              cpInstanceId:
+                                description: |
+                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                                type: string
+                  monitoringParameters:
+                    description: |
+                      Active monitoring parameters.
+                    type: array
+                    items:
+                      type: object
+                      required:
+                        - id
+                        - value
+                        - timeStamp
+                      properties:
+                        id:
+                          description: |
+                            An identifier that is unique within a VNF descriptor.
+                          type: string
+                        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.
+                          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
+                  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:
+                      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
+                      properties:
+                        id:
+                          description: |
+                            An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                          type: string
+                        vduId:
+                          description: |
+                            An identifier that is unique within a VNF descriptor.
+                          type: string
+                        computeResource:
+                          required:
+                            - vimConnectionId
+                            - resourceId
+                          type: object
+                          description: |
+                            This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
+                          properties:
+                            vimConnectionId:
+                              description: |
+                                An identifier with the intention of being globally unique.
+                              type: string
+                            resourceProviderId:
+                              description: |
+                                An identifier with the intention of being globally unique.
+                              type: string
+                            resourceId:
+                              description: |
+                                An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
+                              type: string
+                            vimLevelResourceType:
+                              description: |
+                                Type of the resource in the scope of the VIM or the resource provider.
+                              type: string
+                        storageResourceIds:
+                          description: |
+                            References to the VirtualStorage resources. The value refers to a VirtualStorageResourceInfo item in the VnfInstance.
+                          type: array
+                          items:
+                            description: |
+                              An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                            type: string
+                        reservationId:
+                          description: |
+                            An identifier with the intention of being globally unique.
+                          type: string
+                        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: |
+                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                                type: string
+                              cpdId:
+                                description: |
+                                  An identifier that is unique within a VNF descriptor.
+                                type: string
+                              vnfExtCpId:
+                                description: |
+                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                                type: string
+                              cpProtocolInfo:
+                                description: |
+                                  Network protocol information for this CP.
+                                type: array
+                                items:
+                                  description: |
+                                    This type describes the protocol layer(s) that a CP uses together with protocol-related information, like addresses.
+                                  required:
+                                    - layerProtocol
+                                  properties:
+                                    layerProtocol:
+                                      description: |
+                                        The identifier of layer(s) and protocol(s) associated to the network address information.  Permitted values: IP_OVER_ETHERNET This attribute allows to signal the addition of further types of layer and protocol in future versions of the present document in a backwards-compatible way. In the current version of the present document, only IP over Ethernet is supported.
+                                      type: string
+                                      enum:
+                                        - IP_OVER_ETHERNET
+                                    ipOverEthernet:
+                                      description: |
+                                        This type represents information about a network address that has been assigned.
+                                      type: object
+                                      required:
+                                        - macAddress
+                                      properties:
+                                        macAddress:
+                                          description: |
+                                            A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons.
+                                          type: string
+                                          format: MAC
+                                        ipAddresses:
+                                          description: |
+                                            Addresses assigned to the CP instance. Each entry represents IP addresses assigned by fixed or dynamic IP address assignment per subnet.
+                                          type: array
+                                          items:
+                                            type: object
+                                            required:
+                                              - type
+                                            properties:
+                                              type:
+                                                description: |
+                                                  The type of the IP addresses. Permitted values: IPV4, IPV6.
+                                                type: string
+                                                enum:
+                                                  - IPV4
+                                                  - IPV6
+                                              addresses:
+                                                description: |
+                                                  Fixed addresses assigned (from the subnet defined by "subnetId" if provided).
+                                                type: array
+                                                items:
+                                                  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  consists of groups of zero to four hexadecimal digits, separated by colons.
+                                                  type: string
+                                                  format: IP
+                                              isDynamic:
+                                                description: |
+                                                  Indicates whether this set of addresses was assigned dynamically (true) or based on address information provided as input from the API consumer (false). Shall be present if "addresses" is present and shall be absent otherwise.
+                                                type: boolean
+                                              addressRange:
+                                                description: |
+                                                  An IP address range used, e.g., in case of egress connections. Exactly one of "addresses" or "addressRange" shall be present.
+                                                type: object
+                                                required:
+                                                  - minAddress
+                                                  - maxAddress
+                                                properties:
+                                                  minAddress:
+                                                    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  consists of groups of zero to four hexadecimal digits, separated by colons.
+                                                    type: string
+                                                    format: IP
+                                                  maxAddress:
+                                                    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  consists of groups of zero to four hexadecimal digits, separated by colons.
+                                                    type: string
+                                                    format: IP
+                                              subnetId:
+                                                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  consists of groups of zero to four hexadecimal digits, separated by colons.
+                                                type: string
+                                                format: IP
+                              vnfLinkPortId:
+                                description: |
+                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                                type: string
+                        metadata:
+                          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
+                  virtualLinkResourceInfo:
+                    description: |
+                      Information about the virtualised network resources used by the VLs of the VNF instance.
+                    type: array
+                    items:
+                      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
+                        - vnfVirtualLinkDescId
+                        - networkResource
+                      properties:
+                        id:
+                          description: |
+                            An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                          type: string
+                        vnfVirtualLinkDescId:
+                          description: |
+                            An identifier that is unique within a VNF descriptor.
+                          type: string
+                        networkResource:
+                          required:
+                            - vimConnectionId
+                            - resourceId
+                          type: object
+                          description: |
+                            This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
+                          properties:
+                            vimConnectionId:
+                              description: |
+                                An identifier with the intention of being globally unique.
+                              type: string
+                            resourceProviderId:
+                              description: |
+                                An identifier with the intention of being globally unique.
+                              type: string
+                            resourceId:
+                              description: |
+                                An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
+                              type: string
+                            vimLevelResourceType:
+                              description: |
+                                Type of the resource in the scope of the VIM or the resource provider.
+                              type: string
+                        reservationId:
+                          description: |
+                            An identifier with the intention of being globally unique.
+                          type: string
+                        vnfLinkPorts:
+                          description: |
+                            Links ports of this VL. Shall be present when the linkPort is used for external connectivity by the VNF (refer to VnfLinkPortInfo). May be present otherwise.
+                          type: array
+                          items:
+                            type: object
+                            required:
+                              - id
+                              - resourceHandle
+                            properties:
+                              id:
+                                description: |
+                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                                type: string
+                              resourceHandle:
+                                required:
+                                  - vimConnectionId
+                                  - resourceId
+                                type: object
+                                description: |
+                                  This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
+                                properties:
+                                  vimConnectionId:
+                                    description: |
+                                      An identifier with the intention of being globally unique.
+                                    type: string
+                                  resourceProviderId:
+                                    description: |
+                                      An identifier with the intention of being globally unique.
+                                    type: string
+                                  resourceId:
+                                    description: |
+                                      An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
+                                    type: string
+                                  vimLevelResourceType:
+                                    description: |
+                                      Type of the resource in the scope of the VIM or the resource provider.
+                                    type: string
+                              cpInstanceId:
+                                description: |
+                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                                type: string
+                        metadata:
+                          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
+                  virtualStorageResourceInfo:
+                    description: |
+                      Information on the virtualised storage resource(s) used as storage for the VNF instance.
+                    type: array
+                    items:
+                      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: |
+                            An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                          type: string
+                        virtualStorageDescId:
+                          description: |
+                            An identifier that is unique within a VNF descriptor.
+                          type: string
+                        storageResource:
+                          required:
+                            - vimConnectionId
+                            - resourceId
+                          type: object
+                          description: |
+                            This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
+                          properties:
+                            vimConnectionId:
+                              description: |
+                                An identifier with the intention of being globally unique.
+                              type: string
+                            resourceProviderId:
+                              description: |
+                                An identifier with the intention of being globally unique.
+                              type: string
+                            resourceId:
+                              description: |
+                                An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
+                              type: string
+                            vimLevelResourceType:
+                              description: |
+                                Type of the resource in the scope of the VIM or the resource provider.
+                              type: string
+                        reservationId:
+                          description: |
+                            An identifier with the intention of being globally unique.
+                          type: string
+                        metadata:
+                          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
+              metadata:
+                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
+              extensions:
+                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
+              _links:
+                description: |
+                  Links to resources related to this resource.
+                type: object
+                required:
+                  - self
+                properties:
+                  self:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+                  indicators:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+                  instantiate:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+                  terminate:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+                  scale:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+                  scaleToLevel:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+                  changeFlavour:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+                  heal:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+                  operate:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+                  changeExtConn:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+        '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.
+          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:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '401':
+          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.
+          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:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '403':
+          description: |
+            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.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '404':
+          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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '405':
+          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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '406':
+          description: |
+            Not Acceptable
+            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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '409':
+          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:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '500':
+          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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '503':
+          description: |
+            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 [13] 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
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+  '/vnf_lcm_op_occs/{vnfLcmOpOccId}':
+    parameters:
+      - name: vnfLcmOpOccId
+        description: |
+          Identifier of a VNF lifecycle management operation occurrence. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a PATCH or POST request triggering a VNF LCM operation. It can also be retrieved from the "vnfLcmOpOccId" attribute in the VnfLcmOperationOccurrenceNotification.
+        in: path
+        required: true
+        type: string
+    get:
+      description: |
+        Get Operation Status
+
+        The client can use this method to retrieve status information about a VNF lifecycle management operation occurrence by reading an individual "VNF LCM operation occurrence" resource.
+      tags:
+        - Sol003VnfLcm
+      parameters:
+        - name: Accept
+          description: |
+            Content-Types that are acceptable for the response. Reference: IETF RFC 7231
+          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
+      responses:
+        '200':
+          description: |
+            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:
+            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:
+            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: |
+                  An identifier with the intention of being globally unique.
+                type: string
+              operationState:
+                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
+              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: |
+                  An identifier with the intention of being globally unique.
+                type: string
+              grantId:
+                description: |
+                  An identifier with the intention of being globally unique.
+                type: string
+              operation:
+                description: |
+                  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. MODIFY_INFO | Represents the "Modify VNF Information" LCM operation.
+                type: string
+                enum:
+                  - INSTANTIATE
+                  - SCALE
+                  - SCALE_TO_LEVEL
+                  - CHANGE_FLAVOUR
+                  - TERMINATE
+                  - HEAL
+                  - OPERATE
+                  - CHANGE_EXT_CONN
+                  - MODIFY_INFO
+              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: |
+                  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
+              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: |
+                  Cancellation mode. GRACEFUL: If the VNF LCM operation occurrence is in "PROCESSING" or "ROLLING_BACK" state, 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. If the VNF LCM operation occurrence is in "STARTING" state, the VNFM shall not start any resource management operation and shall wait for the granting request to finish execution or time out. After that, the VNFM shall put the operation occurrence into the ROLLED_BACK state.  FORCEFUL: If the VNF LCM operation occurrence is in "PROCESSING" or "ROLLING_BACK" state, 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.  If the VNF LCM operation occurrence is in "STARTING" state, the VNFM shall not start any resource management operation and put the operation occurrence into the ROLLED_BACK state.
+                type: string
+                enum:
+                  - GRACEFUL
+                  - FORCEFUL
+              error:
+                description: |
+                  The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+                type: object
+                required:
+                  - status
+                  - detail
+                properties:
+                  type:
+                    description: |
+                      A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                    type: string
+                    format: URI
+                  title:
+                    description: |
+                      A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                    type: string
+                  status:
+                    description: |
+                      The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                    type: integer
+                  detail:
+                    description: |
+                      A human-readable explanation specific to this occurrence of the problem.
+                    type: string
+                  instance:
+                    description: |
+                      A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                    type: string
+                    format: URI
+              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:
+                      description: |
+                        This type provides information about added, deleted, modified and temporary VNFCs.
+                      type: object
+                      required:
+                        - id
+                        - vduId
+                        - changeType
+                        - computeResource
+                      properties:
+                        id:
+                          description: |
+                            An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                          type: string
+                        vduId:
+                          description: |
+                            An identifier that is unique within a VNF descriptor.
+                          type: string
+                        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:
+                          required:
+                            - vimConnectionId
+                            - resourceId
+                          type: object
+                          description: |
+                            This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
+                          properties:
+                            vimConnectionId:
+                              description: |
+                                An identifier with the intention of being globally unique.
+                              type: string
+                            resourceProviderId:
+                              description: |
+                                An identifier with the intention of being globally unique.
+                              type: string
+                            resourceId:
+                              description: |
+                                An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
+                              type: string
+                            vimLevelResourceType:
+                              description: |
+                                Type of the resource in the scope of the VIM or the resource provider.
+                              type: string
+                        metadata:
+                          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
+                        affectedVnfcCpIds:
+                          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.
+                          type: array
+                          items:
+                            description: |
+                              An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                            type: string
+                        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.
+                          type: array
+                          items:
+                            description: |
+                              An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                            type: string
+                        removedStorageResourceIds:
+                          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.
+                          type: array
+                          items:
+                            description: |
+                              An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                            type: string
+                  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:
+                      description: |
+                        This type provides information about added, deleted, modified and temporary VLs.
+                      type: object
+                      required:
+                        - id
+                        - virtualLinkDescId
+                        - changeType
+                        - networkResource
+                      properties:
+                        id:
+                          description: |
+                            An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                          type: string
+                        virtualLinkDescId:
+                          description: |
+                            An identifier that is unique within a VNF descriptor.
+                          type: string
+                        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:
+                          required:
+                            - vimConnectionId
+                            - resourceId
+                          type: object
+                          description: |
+                            This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
+                          properties:
+                            vimConnectionId:
+                              description: |
+                                An identifier with the intention of being globally unique.
+                              type: string
+                            resourceProviderId:
+                              description: |
+                                An identifier with the intention of being globally unique.
+                              type: string
+                            resourceId:
+                              description: |
+                                An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
+                              type: string
+                            vimLevelResourceType:
+                              description: |
+                                Type of the resource in the scope of the VIM or the resource provider.
+                              type: string
+                        metadata:
+                          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
+                  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:
+                      description: |
+                        This type provides information about added, deleted, modified and temporary virtual storage resources.
+                      type: object
+                      required:
+                        - id
+                        - virtualStorageDescId
+                        - changeType
+                        - storageResource
+                      properties:
+                        id:
+                          description: |
+                            An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                          type: string
+                        virtualStorageDescId:
+                          description: |
+                            An identifier that is unique within a VNF descriptor.
+                          type: string
+                        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:
+                          required:
+                            - vimConnectionId
+                            - resourceId
+                          type: object
+                          description: |
+                            This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
+                          properties:
+                            vimConnectionId:
+                              description: |
+                                An identifier with the intention of being globally unique.
+                              type: string
+                            resourceProviderId:
+                              description: |
+                                An identifier with the intention of being globally unique.
+                              type: string
+                            resourceId:
+                              description: |
+                                An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
+                              type: string
+                            vimLevelResourceType:
+                              description: |
+                                Type of the resource in the scope of the VIM or the resource provider.
+                              type: string
+                        metadata:
+                          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
+              changedInfo:
+                description: |
+                  This type represents attribute modifications that were performed on an "Individual VNF instance" resource. The attributes that can be included consist of those requested to be modified explicitly in the "VnfInfoModificationRequest" data structure, and additional attributes of the "VnfInstance" data structure that were modified implicitly e.g. when modifying the referenced VNF package.
+                type: object
+                properties:
+                  vnfInstanceName:
+                    description: |
+                      If present, this attribute signals modifications of the "vnfInstanceName" attribute in "VnfInstance".
+                    type: string
+                  vnfInstanceDescription:
+                    description: |
+                      If present, this attribute signals modifications of the "vnfInstanceDescription" attribute in "VnfInstance".
+                    type: string
+                  vnfConfigurableProperties:
+                    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
+                  metadata:
+                    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
+                  extensions:
+                    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
+                  vimConnectionInfo:
+                    description: |
+                      If present, this attribute signals modifications of certain entries in the "vimConnectionInfo" attribute array in "VnfInstance".
+                    type: array
+                    items:
+                      description: |
+                        This type represents parameters to connect to a VIM for managing the resources of a VNF instance. This structure is used to convey VIM-related parameters over the Or-Vnfm interface. Additional parameters for a VIM may be configured into the VNFM by means outside the scope of the present document, and bound to the identifier of that VIM.
+                      type: object
+                      required:
+                        - id
+                        - vimType
+                      properties:
+                        id:
+                          description: |
+                            An identifier with the intention of being globally unique.
+                          type: string
+                        vimId:
+                          description: |
+                            An identifier with the intention of being globally unique.
+                          type: string
+                        vimType:
+                          description: |
+                            Discriminator for the different types of the VIM information. The value of this attribute determines the structure of the "interfaceInfo" and "accessInfo" attributes, based on the type of the VIM. The set of permitted values is expected to change over time as new types or versions of VIMs become available. The ETSI NFV registry of VIM-related information provides access to information about VimConnectionInfo definitions for various VIM types. The structure of the registry is defined in Annex C of SOL003.
+                          type: string
+                        interfaceInfo:
+                          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
+                        accessInfo:
+                          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
+                        extra:
+                          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
+                  vnfPkgId:
+                    description: |
+                      An identifier with the intention of being globally unique.
+                    type: string
+                  vnfdId:
+                    description: |
+                      An identifier with the intention of being globally unique.
+                    type: string
+                  vnfProvider:
+                    description: |
+                      If present, this attribute signals modifications of the "vnfProvider" 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 attribute from the VNFD in the VNF Package identified by the "vnfPkgId” attribute.
+                    type: string
+                  vnfProductName:
+                    description: |
+                      If present, this attribute signals modifications of the "vnfProductName" 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 attribute from the VNFD in the VNF Package identified by the "vnfPkgId” attribute.
+                    type: string
+                  vnfSoftwareVersion:
+                    description: |
+                      A Version.
+                    type: string
+                  vnfdVersion:
+                    description: |
+                      A Version.
+                    type: string
+              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:
+                  type: object
+                  required:
+                    - id
+                    - resourceHandle
+                  properties:
+                    id:
+                      description: |
+                        An identifier with the intention of being globally unique.
+                      type: string
+                    resourceHandle:
+                      required:
+                        - vimConnectionId
+                        - resourceId
+                      type: object
+                      description: |
+                        This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
+                      properties:
+                        vimConnectionId:
+                          description: |
+                            An identifier with the intention of being globally unique.
+                          type: string
+                        resourceProviderId:
+                          description: |
+                            An identifier with the intention of being globally unique.
+                          type: string
+                        resourceId:
+                          description: |
+                            An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
+                          type: string
+                        vimLevelResourceType:
+                          description: |
+                            Type of the resource in the scope of the VIM or the resource provider.
+                          type: string
+                    extLinkPorts:
+                      description: |
+                        Link ports of this VL.
+                      type: array
+                      items:
+                        description: |
+                          This type represents information about a link port of an external VL, i.e. a port providing connectivity for the VNF to an NS VL.
+                        type: object
+                        required:
+                          - id
+                          - resourceHandle
+                        properties:
+                          id:
+                            description: |
+                              An identifier with the intention of being globally unique.
+                            type: string
+                          resourceHandle:
+                            required:
+                              - vimConnectionId
+                              - resourceId
+                            type: object
+                            description: |
+                              This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
+                            properties:
+                              vimConnectionId:
+                                description: |
+                                  An identifier with the intention of being globally unique.
+                                type: string
+                              resourceProviderId:
+                                description: |
+                                  An identifier with the intention of being globally unique.
+                                type: string
+                              resourceId:
+                                description: |
+                                  An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
+                                type: string
+                              vimLevelResourceType:
+                                description: |
+                                  Type of the resource in the scope of the VIM or the resource provider.
+                                type: string
+                          cpInstanceId:
+                            description: |
+                              An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
+                            type: string
+              _links:
+                description: |
+                  Links to resources related to this resource.
+                type: object
+                required:
+                  - self
+                  - vnfInstance
+                properties:
+                  self:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+                  vnfInstance:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+                  grant:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+                  cancel:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+                  retry:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+                  rollback:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+                  fail:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+        '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.
+          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:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '401':
+          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.
+          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:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '403':
+          description: |
+            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.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '404':
+          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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '405':
+          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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '406':
+          description: |
+            Not Acceptable
+            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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '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
+            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:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '500':
+          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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '503':
+          description: |
+            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 [13] 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
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+  /subscriptions:
+    post:
+      description: |
+        Subscribe
+
+        The POST method creates a new subscription. Creation of two subscription resources with the same callbackURI and the same filter can result in performance degradation and will provide duplicates of notifications to the NFVO, and might make sense only in very rare use cases. Consequently, the VNFM may either allow creating a subscription resource if another subscription resource with the same filter and callbackUri already exists (in which case it shall return the “201 Created” response code), or may decide to not create a duplicate subscription resource (in which case it shall return a “303 See Other” response code referencing the existing subscription resource with the same filter and callbackUri).
+      tags:
+        - Sol003VnfLcm
+      parameters:
+        - name: LccnSubscriptionRequest
+          description: |
+            Details of the subscription to be created.
+          in: body
+          required: true
+          schema:
+            description: |
+              This type represents a subscription request related to notifications about VNF lifecycle changes.
+            type: object
+            required:
+              - callbackUri
+            properties:
+              filter:
+                description: |
+                  This type represents a subscription filter related to notifications about VNF lifecycle 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: |
+                      This type represents subscription filter criteria to match VNF instances.
+                    type: object
+                    properties:
+                      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:
+                          description: |
+                            An identifier with the intention of being globally unique.
+                          type: string
+                  notificationTypes:
+                    description: |
+                      Match particular notification types. Permitted values: * VnfLcmOperationOccurrenceNotification * VnfIdentifierCreationNotification * VnfIdentifierDeletionNotification The permitted values of the "notificationTypes" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems.
+                    type: array
+                    items:
+                      type: string
+                      enum:
+                        - VnfLcmOperationOccurrenceNotification
+                        - VnfIdentifierCreationNotification
+                        - VnfIdentifierDeletionNotification
+                  operationTypes:
+                    description: |
+                      Match particular VNF lifecycle operation types for the notification of type VnfLcmOperationOccurrenceNotification. May be present if the "notificationTypes" attribute contains the value "VnfLcmOperationOccurrenceNotification", and shall be absent otherwise.
+                    type: array
+                    items:
+                      description: |
+                        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. MODIFY_INFO | Represents the "Modify VNF Information" LCM operation.
+                      type: string
+                      enum:
+                        - INSTANTIATE
+                        - TERMINATE
+                  operationStates:
+                    description: |
+                      Match particular LCM operation state values as reported in notifications of type VnfLcmOperationOccurrenceNotification. May be present if the "notificationTypes" attribute contains the value "VnfLcmOperationOccurrenceNotification", and shall be absent otherwise.
+                    type: array
+                    items:
+                      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
+              callbackUri:
+                description: |
+                  String formatted according to IETF RFC 3986.
+                type: string
+              authentication:
+                type: object
+                required:
+                  - authType
+                properties:
+                  authType:
+                    description: |
+                      Defines the types of Authentication / Authorization which the API consumer is willing to accept when receiving a notification. Permitted values: * BASIC: In every HTTP request to the notification endpoint, use  HTTP Basic authentication with the client credentials. 
+                      * OAUTH2_CLIENT_CREDENTIALS: In every HTTP request to the  notification endpoint, use an OAuth 2.0 Bearer token, obtained
+                        using the client credentials grant type.
+                      * TLS_CERT: Every HTTP request to the notification endpoint is sent  over a mutually authenticated TLS session, i.e. not only the
+                        server is authenticated, but also the client is authenticated
+                        during the TLS tunnel setup.
+                    type: array
+                    items:
+                      type: string
+                      enum:
+                        - BASIC
+                        - OAUTH2_CLIENT_CREDENTIALS
+                        - TLS_CERT
+                  paramsBasic:
+                    description: |
+                      Parameters for authentication/authorization using BASIC. Shall be present if authType is "BASIC" and the contained information has not been provisioned out of band. Shall be absent otherwise.
+                    type: object
+                    properties:
+                      userName:
+                        description: |
+                          Username to be used in HTTP Basic authentication. Shall be present if it has not been provisioned out of band.
+                        type: string
+                      password:
+                        description: |
+                          Password to be used in HTTP Basic authentication. Shall be present if it has not been provisioned out of band.
+                        type: string
+                  paramsOauth2ClientCredentials:
+                    description: |
+                      Parameters for authentication/authorization using OAUTH2_CLIENT_CREDENTIALS. Shall be present if authType is "OAUTH2_CLIENT_CREDENTIALS" and the contained information has not been provisioned out of band. Shall be absent otherwise.
+                    type: object
+                    properties:
+                      clientId:
+                        description: |
+                          Client identifier to be used in the access token request of the OAuth 2.0 client credentials grant type.  Shall be present if it has not been provisioned out of band. The clientId and clientPassword passed in a subscription shall not be the same as the clientId and clientPassword that are used to obtain authorization for API requests. Client credentials may differ between subscriptions. The value of clientPassword should be generated by a random process.
+                        type: string
+                      clientPassword:
+                        description: |
+                          Client password to be used in the access token request of the OAuth 2.0 client credentials grant type.  Shall be present if it has not been provisioned out of band. The clientId and clientPassword passed in a subscription shall not be the same as the clientId and clientPassword that are used to obtain authorization for API requests. Client credentials may differ between subscriptions. The value of clientPassword should be generated by a random process.
+                        type: string
+                      tokenEndpoint:
+                        description: |
+                          String formatted according to IETF RFC 3986.
+                        type: string
+        - name: Accept
+          description: |
+            Content-Types that are acceptable for the response. Reference: IETF RFC 7231
+          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
+        - name: Content-Type
+          description: |
+            The MIME type of the body of the request. Reference: IETF RFC 7231
+          in: header
+          required: true
+          type: string
+      responses:
+        '201':
+          description: |
+            Created
+            The subscription was created successfully. The response body shall contain a representation of the created subscription resource. The HTTP response shall include a "Location" HTTP header that points to the created subscription resource.
+          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:
+            description: |
+              This type represents a subscription related to notifications about VNF lifecycle changes.
+            type: object
+            required:
+              - id
+              - callbackUri
+              - _links
+            properties:
+              id:
+                description: |
+                  An identifier with the intention of being globally unique.
+                type: string
+              filter:
+                description: |
+                  This type represents a subscription filter related to notifications about VNF lifecycle 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: |
+                      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:
+                          description: |
+                            An identifier with the intention of being globally unique.
+                          type: string
+                      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: |
+                                            A version.
+                                          type: string
+                                        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:
+                                            description: |
+                                              A version.
+                                            type: string
+                      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:
+                          description: |
+                            An identifier with the intention of being globally unique.
+                          type: string
+                      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
+                  notificationTypes:
+                    description: |
+                      Match particular notification types. Permitted values: * VnfLcmOperationOccurrenceNotification * VnfIdentifierCreationNotification * VnfIdentifierDeletionNotification The permitted values of the "notificationTypes" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems.
+                    type: array
+                    items:
+                      type: string
+                      enum:
+                        - VnfLcmOperationOccurrenceNotification
+                        - VnfIdentifierCreationNotification
+                        - VnfIdentifierDeletionNotification
+                  operationTypes:
+                    description: |
+                      Match particular VNF lifecycle operation types for the notification of type VnfLcmOperationOccurrenceNotification. May be present if the "notificationTypes" attribute contains the value "VnfLcmOperationOccurrenceNotification", and shall be absent otherwise.
+                    type: array
+                    items:
+                      description: |
+                        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. MODIFY_INFO | Represents the "Modify VNF Information" LCM operation.
+                      type: string
+                      enum:
+                        - INSTANTIATE
+                        - SCALE
+                        - SCALE_TO_LEVEL
+                        - CHANGE_FLAVOUR
+                        - TERMINATE
+                        - HEAL
+                        - OPERATE
+                        - CHANGE_EXT_CONN
+                        - MODIFY_INFO
+                  operationStates:
+                    description: |
+                      Match particular LCM operation state values as reported in notifications of type VnfLcmOperationOccurrenceNotification. May be present if the "notificationTypes" attribute contains the value "VnfLcmOperationOccurrenceNotification", and shall be absent otherwise.
+                    type: array
+                    items:
+                      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
+              callbackUri:
+                description: |
+                  String formatted according to IETF RFC 3986.
+                type: string
+              _links:
+                description: |
+                  Links to resources related to this resource.
+                type: object
+                required:
+                  - self
+                properties:
+                  self:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+        '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.
+          headers:
+            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
+        '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.
+          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:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '401':
+          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.
+          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:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '403':
+          description: |
+            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.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '404':
+          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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '405':
+          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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '406':
+          description: |
+            Not Acceptable
+            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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '500':
+          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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '503':
+          description: |
+            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 [13] 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
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+    get:
+      description: |
+        Query Subscription Information
+
+        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.
+      tags:
+        - Sol003VnfLcm
+      parameters:
+        - name: Accept
+          description: |
+            Content-Types that are acceptable for the response. Reference: IETF RFC 7231
+          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
+      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.
+          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:
+            description: |
+              This type represents a subscription related to notifications about VNF lifecycle changes.
+            type: object
+            required:
+              - id
+              - callbackUri
+              - _links
+            properties:
+              id:
+                description: |
+                  An identifier with the intention of being globally unique.
+                type: string
+              filter:
+                description: |
+                  This type represents a subscription filter related to notifications about VNF lifecycle 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: |
+                      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:
+                          description: |
+                            An identifier with the intention of being globally unique.
+                          type: string
+                      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: |
+                                            A version.
+                                          type: string
+                                        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:
+                                            description: |
+                                              A version.
+                                            type: string
+                      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:
+                          description: |
+                            An identifier with the intention of being globally unique.
+                          type: string
+                      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
+                  notificationTypes:
+                    description: |
+                      Match particular notification types. Permitted values: * VnfLcmOperationOccurrenceNotification * VnfIdentifierCreationNotification * VnfIdentifierDeletionNotification The permitted values of the "notificationTypes" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems.
+                    type: array
+                    items:
+                      type: string
+                      enum:
+                        - VnfLcmOperationOccurrenceNotification
+                        - VnfIdentifierCreationNotification
+                        - VnfIdentifierDeletionNotification
+                  operationTypes:
+                    description: |
+                      Match particular VNF lifecycle operation types for the notification of type VnfLcmOperationOccurrenceNotification. May be present if the "notificationTypes" attribute contains the value "VnfLcmOperationOccurrenceNotification", and shall be absent otherwise.
+                    type: array
+                    items:
+                      description: |
+                        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. MODIFY_INFO | Represents the "Modify VNF Information" LCM operation.
+                      type: string
+                      enum:
+                        - INSTANTIATE
+                        - SCALE
+                        - SCALE_TO_LEVEL
+                        - CHANGE_FLAVOUR
+                        - TERMINATE
+                        - HEAL
+                        - OPERATE
+                        - CHANGE_EXT_CONN
+                        - MODIFY_INFO
+                  operationStates:
+                    description: |
+                      Match particular LCM operation state values as reported in notifications of type VnfLcmOperationOccurrenceNotification. May be present if the "notificationTypes" attribute contains the value "VnfLcmOperationOccurrenceNotification", and shall be absent otherwise.
+                    type: array
+                    items:
+                      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
+              callbackUri:
+                description: |
+                  String formatted according to IETF RFC 3986.
+                type: string
+              _links:
+                description: |
+                  Links to resources related to this resource.
+                type: object
+                required:
+                  - self
+                properties:
+                  self:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+        '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.
+              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:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '401':
+          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.
+          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:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '403':
+          description: |
+            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.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '404':
+          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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '405':
+          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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '406':
+          description: |
+            Not Acceptable
+            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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '500':
+          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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '503':
+          description: |
+            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 [13] 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
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+  '/subscriptions/{subscriptionId}':
+    parameters:
+      - name: subscriptionId
+        description: |
+          Identifier of this subscription. 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
+    get:
+      description: |
+        Query Subscription Information
+
+        The GET method retrieves information about a subscription by reading an individual subscription resource.
+      tags:
+        - Sol003VnfLcm
+      parameters:
+        - name: Accept
+          description: |
+            Content-Types that are acceptable for the response. Reference: IETF RFC 7231
+          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
+      responses:
+        '200':
+          description: |
+            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 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:
+            description: |
+              This type represents a subscription related to notifications about VNF lifecycle changes.
+            type: object
+            required:
+              - id
+              - callbackUri
+              - _links
+            properties:
+              id:
+                description: |
+                  An identifier with the intention of being globally unique.
+                type: string
+              filter:
+                description: |
+                  This type represents a subscription filter related to notifications about VNF lifecycle 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: |
+                      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:
+                          description: |
+                            An identifier with the intention of being globally unique.
+                          type: string
+                      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: |
+                                            A version.
+                                          type: string
+                                        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:
+                                            description: |
+                                              A version.
+                                            type: string
+                      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:
+                          description: |
+                            An identifier with the intention of being globally unique.
+                          type: string
+                      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
+                  notificationTypes:
+                    description: |
+                      Match particular notification types. Permitted values: * VnfLcmOperationOccurrenceNotification * VnfIdentifierCreationNotification * VnfIdentifierDeletionNotification The permitted values of the "notificationTypes" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems.
+                    type: array
+                    items:
+                      type: string
+                      enum:
+                        - VnfLcmOperationOccurrenceNotification
+                        - VnfIdentifierCreationNotification
+                        - VnfIdentifierDeletionNotification
+                  operationTypes:
+                    description: |
+                      Match particular VNF lifecycle operation types for the notification of type VnfLcmOperationOccurrenceNotification. May be present if the "notificationTypes" attribute contains the value "VnfLcmOperationOccurrenceNotification", and shall be absent otherwise.
+                    type: array
+                    items:
+                      description: |
+                        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. MODIFY_INFO | Represents the "Modify VNF Information" LCM operation.
+                      type: string
+                      enum:
+                        - INSTANTIATE
+                        - SCALE
+                        - SCALE_TO_LEVEL
+                        - CHANGE_FLAVOUR
+                        - TERMINATE
+                        - HEAL
+                        - OPERATE
+                        - CHANGE_EXT_CONN
+                        - MODIFY_INFO
+                  operationStates:
+                    description: |
+                      Match particular LCM operation state values as reported in notifications of type VnfLcmOperationOccurrenceNotification. May be present if the "notificationTypes" attribute contains the value "VnfLcmOperationOccurrenceNotification", and shall be absent otherwise.
+                    type: array
+                    items:
+                      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
+              callbackUri:
+                description: |
+                  String formatted according to IETF RFC 3986.
+                type: string
+              _links:
+                description: |
+                  Links to resources related to this resource.
+                type: object
+                required:
+                  - self
+                properties:
+                  self:
+                    description: |
+                      This type represents a link to a resource.
+                    type: object
+                    required:
+                      - href
+                    properties:
+                      href:
+                        description: |
+                          URI of the referenced resource.
+                        type: string
+                        format: url
+        '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.
+          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:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '401':
+          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.
+          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:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '403':
+          description: |
+            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.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '404':
+          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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '405':
+          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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '406':
+          description: |
+            Not Acceptable
+            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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '500':
+          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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '503':
+          description: |
+            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 [13] 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
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+    delete:
+      description: |
+        Terminate Subscription
+
+        The DELETE method terminates an individual subscription.
+      tags:
+        - Sol003VnfLcm
+      parameters:
+        - name: Authorization
+          description: |
+            The authorization token for the request. Reference: IETF RFC 7235
+          in: header
+          required: false
+          type: string
+      responses:
+        '204':
+          description: |
+            No Content
+            The subscription resource was deleted 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
+        '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.
+          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:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '401':
+          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.
+          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:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '403':
+          description: |
+            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.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '404':
+          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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '405':
+          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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '406':
+          description: |
+            Not Acceptable
+            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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '500':
+          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.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+        '503':
+          description: |
+            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 [13] 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
+          schema:
+            description: |
+              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
+            type: object
+            required:
+              - status
+              - detail
+            properties:
+              type:
+                description: |
+                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
+                type: string
+                format: URI
+              title:
+                description: |
+                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
+                type: string
+              status:
+                description: |
+                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
+                type: integer
+              detail:
+                description: |
+                  A human-readable explanation specific to this occurrence of the problem.
+                type: string
+              instance:
+                description: |
+                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
+                type: string
+                format: URI
+
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/pom.xml b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/pom.xml
new file mode 100644
index 0000000..aefea95
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/pom.xml
@@ -0,0 +1,154 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.onap.so.simulators.vnfm</groupId>
+    <artifactId>vnfm-simulator</artifactId>
+    <version>1.0-SNAPSHOT</version>
+  </parent>
+  <artifactId>vnfm-service</artifactId>
+  <name>${project.artifactId}</name>
+
+  <properties>
+    <okhttp-version>2.7.5</okhttp-version>
+    <gson-version>2.8.1</gson-version>
+  </properties>
+  <dependencies>
+    <dependency>
+      <groupId>org.onap.so.adapters</groupId>
+      <artifactId>mso-vnfm-adapter-ext-clients</artifactId>
+      <version>1.4.3</version>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-starter-data-jpa</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-devtools</artifactId>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.security.oauth</groupId>
+      <artifactId>spring-security-oauth2</artifactId>
+      <version>2.3.6.RELEASE</version>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>io.swagger</groupId>
+      <artifactId>swagger-jaxrs</artifactId>
+      <version>1.5.0</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.directory.studio</groupId>
+      <artifactId>org.apache.commons.io</artifactId>
+      <version>2.4</version>
+    </dependency>
+    <dependency>
+      <groupId>com.googlecode.json-simple</groupId>
+      <artifactId>json-simple</artifactId>
+      <version>1.1.1</version>
+    </dependency>
+    <dependency>
+      <groupId>io.springfox</groupId>
+      <artifactId>springfox-swagger-ui</artifactId>
+      <version>2.6.1</version>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>io.springfox</groupId>
+      <artifactId>springfox-swagger2</artifactId>
+      <version>2.6.1</version>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>com.fasterxml.jackson.core</groupId>
+      <artifactId>jackson-databind</artifactId>
+      <version>2.9.8</version>
+    </dependency>
+    <dependency>
+      <groupId>com.h2database</groupId>
+      <artifactId>h2</artifactId>
+    </dependency>
+    <!-- https://mvnrepository.com/artifact/commons-beanutils/commons-beanutils -->
+    <dependency>
+      <groupId>commons-beanutils</groupId>
+      <artifactId>commons-beanutils</artifactId>
+      <version>1.9.3</version>
+    </dependency>
+    <dependency>
+      <groupId>org.modelmapper</groupId>
+      <artifactId>modelmapper</artifactId>
+      <version>2.3.0</version>
+    </dependency>
+    <dependency>
+      <groupId>com.squareup.okio</groupId>
+      <artifactId>okio</artifactId>
+      <version>1.13.0</version>
+    </dependency>
+    <dependency>
+      <groupId>com.squareup.okhttp</groupId>
+      <artifactId>okhttp</artifactId>
+      <version>${okhttp-version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.squareup.okhttp</groupId>
+      <artifactId>logging-interceptor</artifactId>
+      <version>${okhttp-version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.google.code.gson</groupId>
+      <artifactId>gson</artifactId>
+      <version>${gson-version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.onap.so</groupId>
+      <artifactId>common</artifactId>
+      <version>1.4.3</version>
+    </dependency>
+  </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-maven-plugin</artifactId>
+        <configuration>
+          <mainClass>org.onap.so.svnfm.simulator.config.SvnfmApplication</mainClass>
+        </configuration>
+        <executions>
+          <execution>
+            <goals>
+              <goal>repackage</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-maven-plugin</artifactId>
+      </plugin>
+    </plugins>
+    <resources>
+      <resource>
+        <directory>src/main/resources</directory>
+        <filtering>true</filtering>
+        <excludes>
+          <exclude>**/*.p12</exclude>
+          <exclude>**/*.jks</exclude>
+        </excludes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+        <filtering>false</filtering>
+        <includes>
+          <include>**/*.p12</include>
+          <include>**/*.jks</include>
+        </includes>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/config/ApplicationConfig.java b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/config/ApplicationConfig.java
new file mode 100644
index 0000000..79b3fa8
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/config/ApplicationConfig.java
@@ -0,0 +1,53 @@
+package org.onap.so.svnfm.simulator.config;
+
+import java.util.Arrays;
+import org.onap.so.svnfm.simulator.constants.Constant;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.cache.Cache;
+import org.springframework.cache.CacheManager;
+import org.springframework.cache.concurrent.ConcurrentMapCache;
+import org.springframework.cache.support.SimpleCacheManager;
+import org.springframework.context.annotation.Bean;
+import org.springframework.core.env.Environment;
+import org.springframework.stereotype.Component;
+
+@Component
+public class ApplicationConfig implements ApplicationRunner {
+
+    private static final String PORT = "local.server.port";
+
+    @Value("${server.dns.name:so-vnfm-simulator.onap}")
+    private String serverDnsName;
+
+    @Value("${server.request.grant.auth:oauth}")
+    private String grantAuth;
+
+    @Autowired
+    private Environment environment;
+
+    private String baseUrl;
+
+    @Override
+    public void run(final ApplicationArguments args) throws Exception {
+        baseUrl = "https://" + serverDnsName + ":" + environment.getProperty(PORT);
+    }
+
+    public String getBaseUrl() {
+        return baseUrl;
+    }
+
+    public String getGrantAuth() {
+        return grantAuth;
+    }
+
+    @Bean
+    public CacheManager cacheManager() {
+        final Cache inlineResponse201 = new ConcurrentMapCache(Constant.IN_LINE_RESPONSE_201_CACHE);
+        final SimpleCacheManager manager = new SimpleCacheManager();
+        manager.setCaches(Arrays.asList(inlineResponse201));
+        return manager;
+    }
+}
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/config/SvnfmApplication.java b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/config/SvnfmApplication.java
new file mode 100644
index 0000000..612e61d
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/config/SvnfmApplication.java
@@ -0,0 +1,46 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.svnfm.simulator.config;
+
+import org.onap.so.svnfm.simulator.controller.SvnfmController;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.domain.EntityScan;
+import org.springframework.cache.annotation.EnableCaching;
+import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
+
+/**
+ * The spring boot application for the VNF LCM.
+ * <p>
+ * The VNFM receives requests through its REST API {@link SvnfmController}
+ *
+ * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech)
+ * @author ronan.kenny@est.tech
+ */
+@SpringBootApplication(scanBasePackages = {"org.onap"})
+@EnableJpaRepositories("org.onap.so.svnfm.simulator")
+@EntityScan("org.onap.so.svnfm.simulator.model")
+@EnableCaching
+public class SvnfmApplication {
+    public static void main(final String[] args) {
+        SpringApplication.run(SvnfmApplication.class, args);
+    }
+}
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/config/WebSecurityConfigImpl.java b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/config/WebSecurityConfigImpl.java
new file mode 100644
index 0000000..14d5c06
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/config/WebSecurityConfigImpl.java
@@ -0,0 +1,48 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.svnfm.simulator.config;
+
+import org.onap.so.security.MSOSpringFirewall;
+import org.onap.so.security.WebSecurityConfig;
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.config.annotation.web.builders.WebSecurity;
+import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
+import org.springframework.security.web.firewall.StrictHttpFirewall;
+
+/**
+ * Configure the web security for the application.
+ */
+@EnableWebSecurity
+public class WebSecurityConfigImpl extends WebSecurityConfig {
+
+    @Override
+    protected void configure(final HttpSecurity http) throws Exception {
+        http.csrf().disable().authorizeRequests().antMatchers("/**").permitAll();
+    }
+
+    @Override
+    public void configure(final WebSecurity web) throws Exception {
+        super.configure(web);
+        final StrictHttpFirewall firewall = new MSOSpringFirewall();
+        web.httpFirewall(firewall);
+    }
+
+}
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/constants/Constant.java b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/constants/Constant.java
new file mode 100644
index 0000000..02a319a
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/constants/Constant.java
@@ -0,0 +1,39 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.svnfm.simulator.constants;
+
+/**
+ * 
+ * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech)
+ * @author ronan.kenny@est.tech
+ */
+public class Constant {
+
+    public static final String BASE_URL = "/vnflcm/v1";
+    public static final String VNF_PROVIDER = "XYZ";
+    public static final String VNF_PROVIDER_NAME = "vCPE";
+    public static final String VNF_SOFTWARE_VERSION = "1.24";
+    public static final String VNFD_VERSION = "onapvcpe01_cxp9025898_4r85d01";
+    public static final String VNF_NOT_INSTANTIATED = "NOT_INSTANTIATED";
+    public static final String VNF_CONFIG_PROPERTIES =
+            "{\"isAutoScaleEnabled\": \"true\",\"isAutoHealingEnabled\": \"true\"}";
+    public static final String IN_LINE_RESPONSE_201_CACHE = "inlineResponse201";
+}
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/controller/SvnfmController.java b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/controller/SvnfmController.java
new file mode 100644
index 0000000..6683b69
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/controller/SvnfmController.java
@@ -0,0 +1,171 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.svnfm.simulator.controller;
+
+import java.util.UUID;
+import javax.ws.rs.core.MediaType;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.CreateVnfRequest;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse200;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse2001;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.LccnSubscriptionRequest;
+import org.onap.so.svnfm.simulator.constants.Constant;
+import org.onap.so.svnfm.simulator.repository.VnfmCacheRepository;
+import org.onap.so.svnfm.simulator.services.SvnfmService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseStatus;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ *
+ * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech)
+ * @author Ronan Kenny (ronan.kenny@est.tech)
+ */
+@RestController
+@RequestMapping(path = Constant.BASE_URL, produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
+public class SvnfmController {
+
+    @Autowired
+    private SvnfmService svnfmService;
+
+    @Autowired
+    private VnfmCacheRepository vnfmCacheRepository;
+
+    private static final Logger LOGGER = LoggerFactory.getLogger(SvnfmController.class);
+
+    /**
+     * To create the Vnf and stores the response in cache
+     *
+     * @param CreateVnfRequest
+     * @return InlineResponse201
+     */
+    @PostMapping(value = "/vnf_instances")
+    public ResponseEntity<InlineResponse201> createVnf(@RequestBody final CreateVnfRequest createVNFRequest) {
+        LOGGER.info("Start createVnf {}", createVNFRequest);
+        final String id = UUID.randomUUID().toString();
+        final HttpHeaders headers = new HttpHeaders();
+        headers.add(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON);
+        final ResponseEntity<InlineResponse201> responseEntity =
+                new ResponseEntity<>(vnfmCacheRepository.createVnf(createVNFRequest, id), headers, HttpStatus.CREATED);
+        LOGGER.info("Finished create {}", responseEntity);
+        return responseEntity;
+    }
+
+    /**
+     * Get the vnf by id from cache
+     *
+     * @param vnfId
+     * @return InlineResponse201
+     */
+    @GetMapping(value = "/vnf_instances/{vnfInstanceId}")
+    @ResponseStatus(code = HttpStatus.OK)
+    public InlineResponse201 getVnf(@PathVariable("vnfInstanceId") final String vnfId) {
+        LOGGER.info("Start getVnf------");
+        return vnfmCacheRepository.getVnf(vnfId);
+    }
+
+    /**
+     * To instantiate the vnf and returns the operation id
+     *
+     * @param vnfId
+     * @throws InterruptedException
+     */
+    @PostMapping(value = "/vnf_instances/{vnfInstanceId}/instantiate")
+    public ResponseEntity<Void> instantiateVnf(@PathVariable("vnfInstanceId") final String vnfId) {
+        LOGGER.info("Start instantiateVNFRequest for vnf id {} ", vnfId);
+
+        final HttpHeaders headers = new HttpHeaders();
+        headers.add(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON);
+        headers.add(HttpHeaders.LOCATION, svnfmService.instantiateVnf(vnfId));
+        return new ResponseEntity<>(headers, HttpStatus.ACCEPTED);
+    }
+
+    /**
+     * To delete the vnf by id
+     *
+     * @param vnfId
+     * @return InlineResponse201
+     */
+    @DeleteMapping(value = "/vnf_instances/{vnfInstanceId}")
+    @ResponseStatus(code = HttpStatus.OK)
+    public ResponseEntity<Void> deleteVnf(@PathVariable("vnfInstanceId") final String vnfId) {
+        LOGGER.info("Start deleting Vnf------");
+        vnfmCacheRepository.deleteVnf(vnfId);
+        final HttpHeaders headers = new HttpHeaders();
+        headers.add(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON);
+        return new ResponseEntity<>(headers, HttpStatus.NO_CONTENT);
+    }
+
+    /**
+     * To terminate the vnf by id
+     *
+     * @param vnfId
+     * @throws InterruptedException
+     */
+    @PostMapping(value = "/vnf_instances/{vnfInstanceId}/terminate")
+    public ResponseEntity<Object> terminateVnf(@PathVariable("vnfInstanceId") final String vnfId) {
+        LOGGER.info("Start terminateVNFRequest {}", vnfId);
+        final HttpHeaders headers = new HttpHeaders();
+        headers.add(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON);
+        headers.add(HttpHeaders.LOCATION, svnfmService.terminateVnf(vnfId));
+        return new ResponseEntity<>(headers, HttpStatus.ACCEPTED);
+    }
+
+
+    /**
+     * To get the status of the operation by id
+     *
+     * @param operationId
+     * @return response entity
+     * @throws InterruptedException
+     */
+    @GetMapping(value = "/vnf_lcm_op_occs/{vnfLcmOpOccId}")
+    public ResponseEntity<InlineResponse200> getOperationStatus(
+            @PathVariable("vnfLcmOpOccId") final String operationId) {
+        LOGGER.info("Start getOperationStatus");
+        final HttpHeaders headers = new HttpHeaders();
+        headers.add("Content-Type", MediaType.APPLICATION_JSON);
+        return new ResponseEntity<>(svnfmService.getOperationStatus(operationId), headers, HttpStatus.OK);
+    }
+
+    @PostMapping(value = "/subscriptions")
+    public ResponseEntity<InlineResponse2001> subscribeForNotifications(
+            @RequestBody final LccnSubscriptionRequest lccnSubscriptionRequest) {
+        LOGGER.info("Subscription request received: {}", lccnSubscriptionRequest);
+        svnfmService.registerSubscription(lccnSubscriptionRequest);
+        final InlineResponse2001 response = new InlineResponse2001();
+
+        final HttpHeaders headers = new HttpHeaders();
+        headers.add(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON);
+        return new ResponseEntity<>(response, headers, HttpStatus.CREATED);
+    }
+}
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/exception/GlobalExceptionHandler.java b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/exception/GlobalExceptionHandler.java
new file mode 100644
index 0000000..5b1e5ca
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/exception/GlobalExceptionHandler.java
@@ -0,0 +1,47 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.svnfm.simulator.exception;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.http.HttpStatus;
+import org.springframework.web.HttpMediaTypeNotSupportedException;
+import org.springframework.web.bind.annotation.ControllerAdvice;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.ResponseStatus;
+
+/**
+ * 
+ * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech)
+ * @author ronan.kenny@est.tech
+ */
+@ControllerAdvice
+public class GlobalExceptionHandler {
+
+    private static final Logger logger = LoggerFactory.getLogger(GlobalExceptionHandler.class);
+
+    @ResponseStatus(HttpStatus.UNSUPPORTED_MEDIA_TYPE)
+    @ExceptionHandler(HttpMediaTypeNotSupportedException.class)
+    public void handleConflict() {
+        final String error = "Media type Not Supported";
+        logger.error(error);
+    }
+}
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/model/VnfInstance.java b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/model/VnfInstance.java
new file mode 100644
index 0000000..a633c3a
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/model/VnfInstance.java
@@ -0,0 +1,182 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.svnfm.simulator.model;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+/**
+ * 
+ * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech)
+ * @author Ronan Kenny (ronan.kenny@est.tech)
+ */
+@Entity
+@Table(name = "VNF_INSTANCE")
+public class VnfInstance {
+    @Id
+    @Column(name = "id", nullable = false)
+    private String id;
+    private String vnfInstanceName;
+    private String vnfInstanceDescription;
+    private String vnfdId;
+    private String vnfProvider;
+    private String vnfProductName;
+    private String vnfSoftwareVersion;
+    private String vnfdVersion;
+    private String vnfPkgId;
+    private String vnfConfigurableProperties;
+    private String vimConnectionInfo;
+    private String vnfInstantiationState;
+    private String instantiatedVnfInfo;
+    private String metadata;
+    private String extensions;
+    private String links;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(final String id) {
+        this.id = id;
+    }
+
+    public String getVnfInstanceName() {
+        return vnfInstanceName;
+    }
+
+    public void setVnfInstanceName(final String vnfInstanceName) {
+        this.vnfInstanceName = vnfInstanceName;
+    }
+
+    public String getVnfInstanceDescription() {
+        return vnfInstanceDescription;
+    }
+
+    public void setVnfInstanceDescription(final String vnfInstanceDescription) {
+        this.vnfInstanceDescription = vnfInstanceDescription;
+    }
+
+    public String getVnfdId() {
+        return vnfdId;
+    }
+
+    public void setVnfdId(final String vnfdId) {
+        this.vnfdId = vnfdId;
+    }
+
+    public String getVnfProvider() {
+        return vnfProvider;
+    }
+
+    public void setVnfProvider(final String vnfProvider) {
+        this.vnfProvider = vnfProvider;
+    }
+
+    public String getVnfProductName() {
+        return vnfProductName;
+    }
+
+    public void setVnfProductName(final String vnfProductName) {
+        this.vnfProductName = vnfProductName;
+    }
+
+    public String getVnfSoftwareVersion() {
+        return vnfSoftwareVersion;
+    }
+
+    public void setVnfSoftwareVersion(final String vnfSoftwareVersion) {
+        this.vnfSoftwareVersion = vnfSoftwareVersion;
+    }
+
+    public String getVnfdVersion() {
+        return vnfdVersion;
+    }
+
+    public void setVnfdVersion(final String vnfdVersion) {
+        this.vnfdVersion = vnfdVersion;
+    }
+
+    public String getVnfPkgId() {
+        return vnfPkgId;
+    }
+
+    public void setVnfPkgId(final String vnfPkgId) {
+        this.vnfPkgId = vnfPkgId;
+    }
+
+    public String getVnfConfigurableProperties() {
+        return vnfConfigurableProperties;
+    }
+
+    public void setVnfConfigurableProperties(final String vnfConfigurableProperties) {
+        this.vnfConfigurableProperties = vnfConfigurableProperties;
+    }
+
+    public String getVimConnectionInfo() {
+        return vimConnectionInfo;
+    }
+
+    public void setVimConnectionInfo(final String vimConnectionInfo) {
+        this.vimConnectionInfo = vimConnectionInfo;
+    }
+
+    public String getInstantiationState() {
+        return vnfInstantiationState;
+    }
+
+    public void setVnfInstantiationState(final String vnfInstantiationState) {
+        this.vnfInstantiationState = vnfInstantiationState;
+    }
+
+    public String getVnfInstantiationState() {
+        return instantiatedVnfInfo;
+    }
+
+    public void setInstantiatedVnfInfo(final String instantiatedVnfInfo) {
+        this.instantiatedVnfInfo = instantiatedVnfInfo;
+    }
+
+    public String getMetadata() {
+        return metadata;
+    }
+
+    public void setMetadata(final String metadata) {
+        this.metadata = metadata;
+    }
+
+    public String getExtensions() {
+        return extensions;
+    }
+
+    public void setExtensions(final String extensions) {
+        this.extensions = extensions;
+    }
+
+    public String getLinks() {
+        return links;
+    }
+
+    public void setLinks(final String links) {
+        this.links = links;
+    }
+}
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/model/VnfOperation.java b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/model/VnfOperation.java
new file mode 100644
index 0000000..a7380dc
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/model/VnfOperation.java
@@ -0,0 +1,80 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.so.svnfm.simulator.model;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.EnumType;
+import javax.persistence.Enumerated;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse200;
+
+/**
+ *
+ * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech)
+ * @author Ronan Kenny (ronan.kenny@est.tech)
+ */
+@Entity
+@Table(name = "VNF_OPERATION")
+public class VnfOperation {
+    @Id
+    @Column(name = "operationId", nullable = false)
+    private String id;
+    private String vnfInstanceId;
+
+    @Enumerated(EnumType.STRING)
+    private InlineResponse200.OperationEnum operation;
+
+    @Enumerated(EnumType.STRING)
+    private InlineResponse200.OperationStateEnum operationState;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(final String id) {
+        this.id = id;
+    }
+
+    public String getVnfInstanceId() {
+        return vnfInstanceId;
+    }
+
+    public void setVnfInstanceId(final String vnfInstanceId) {
+        this.vnfInstanceId = vnfInstanceId;
+    }
+
+    public InlineResponse200.OperationEnum getOperation() {
+        return operation;
+    }
+
+    public void setOperation(final InlineResponse200.OperationEnum operation) {
+        this.operation = operation;
+    }
+
+    public InlineResponse200.OperationStateEnum getOperationState() {
+        return operationState;
+    }
+
+    public void setOperationState(final InlineResponse200.OperationStateEnum operationState) {
+        this.operationState = operationState;
+    }
+}
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/model/Vnfds.java b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/model/Vnfds.java
new file mode 100644
index 0000000..cf55006
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/model/Vnfds.java
@@ -0,0 +1,97 @@
+package org.onap.so.svnfm.simulator.model;
+
+import java.util.List;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+@ConfigurationProperties(prefix = "vnfds")
+@Component
+public class Vnfds {
+
+    private List<Vnfd> vnfdList;
+
+    public static class Vnfd {
+
+        private String vnfdId;
+        private List<Vnfc> vnfclist;
+
+
+        public String getVnfdId() {
+            return vnfdId;
+        }
+
+        public void setVnfdId(final String vnfdId) {
+            this.vnfdId = vnfdId;
+        }
+
+        public List<Vnfc> getVnfcList() {
+            return vnfclist;
+        }
+
+        public void setVnfcList(final List<Vnfc> vnfclist) {
+            this.vnfclist = vnfclist;
+        }
+    }
+
+
+    public static class Vnfc {
+
+        private String vnfcId;
+        private String type;
+        private String vduId;
+        private String resourceTemplateId;
+        private String grantResourceId;
+
+        public String getVnfcId() {
+            return vnfcId;
+        }
+
+        public void setVnfcId(final String vnfcId) {
+            this.vnfcId = vnfcId;
+        }
+
+        public String getVduId() {
+            return vduId;
+        }
+
+        public void setVduId(final String vduId) {
+            this.vduId = vduId;
+        }
+
+        public String getType() {
+            return type;
+        }
+
+        public void setType(final String type) {
+            this.type = type;
+        }
+
+        public String getResourceTemplateId() {
+            return resourceTemplateId;
+        }
+
+        public void setResourceTemplateId(final String resourceTemplateId) {
+            this.resourceTemplateId = resourceTemplateId;
+        }
+
+        public String getGrantResourceId() {
+            return grantResourceId;
+        }
+
+        public void setGrantResourceId(final String grantResourceId) {
+            this.grantResourceId = grantResourceId;
+        }
+
+    }
+
+
+    public List<Vnfd> getVnfdList() {
+        return vnfdList;
+    }
+
+
+    public void setVnfdList(final List<Vnfd> vnfdList) {
+        this.vnfdList = vnfdList;
+    }
+
+}
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/notifications/VnfInstantiationNotification.java b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/notifications/VnfInstantiationNotification.java
new file mode 100644
index 0000000..a8c77db
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/notifications/VnfInstantiationNotification.java
@@ -0,0 +1,47 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ *  Modifications Copyright (c) 2019 Samsung
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.svnfm.simulator.notifications;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * 
+ * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech)
+ * @author Ronan Kenny (ronan.kenny@est.tech)
+ */
+public class VnfInstantiationNotification implements Runnable {
+
+    private static final Logger logger = LoggerFactory.getLogger(VnfInstantiationNotification.class);
+
+    @Override
+    public void run() {
+        try {
+            Thread.sleep(10000);
+        } catch (final InterruptedException e) {
+            logger.error("Error occured while simulating instantiation ", e);
+            Thread.currentThread().interrupt();
+        }
+        logger.info("Instantiation process finished");
+    }
+}
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/notifications/VnfmAdapterCreationNotification.java b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/notifications/VnfmAdapterCreationNotification.java
new file mode 100644
index 0000000..667b99e
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/notifications/VnfmAdapterCreationNotification.java
@@ -0,0 +1,48 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ *  Modifications Copyright (c) 2019 Samsung
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.svnfm.simulator.notifications;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * 
+ * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech)
+ * @author Ronan Kenny (ronan.kenny@est.tech)
+ */
+public class VnfmAdapterCreationNotification implements Runnable {
+
+    private static final Logger logger = LoggerFactory.getLogger(VnfmAdapterCreationNotification.class);
+
+    @Override
+    public void run() {
+        try {
+            Thread.sleep(10000);
+        } catch (final InterruptedException e) {
+            logger.error("Error occured while simulating creation ", e);
+            Thread.currentThread().interrupt();
+        }
+        logger.info("Call to VNFM Adapter-Create");
+    }
+
+}
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/notifications/VnfmAdapterDeletionNotification.java b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/notifications/VnfmAdapterDeletionNotification.java
new file mode 100644
index 0000000..eaab104
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/notifications/VnfmAdapterDeletionNotification.java
@@ -0,0 +1,48 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ *  Modifications Copyright (c) 2019 Samsung
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.svnfm.simulator.notifications;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * 
+ * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech)
+ * @author Ronan Kenny (ronan.kenny@est.tech)
+ */
+public class VnfmAdapterDeletionNotification implements Runnable {
+
+    private static final Logger logger = LoggerFactory.getLogger(VnfmAdapterDeletionNotification.class);
+
+    @Override
+    public void run() {
+        try {
+            Thread.sleep(10000);
+        } catch (final InterruptedException e) {
+            logger.error("Error occured while simulating deletion ", e);
+            Thread.currentThread().interrupt();
+        }
+        logger.info("Call to VNFM Adapter-Delete");
+    }
+
+}
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/oauth/AuthorizationServerConfig.java b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/oauth/AuthorizationServerConfig.java
new file mode 100644
index 0000000..500c85b
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/oauth/AuthorizationServerConfig.java
@@ -0,0 +1,28 @@
+package org.onap.so.svnfm.simulator.oauth;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Profile;
+import org.springframework.security.oauth2.config.annotation.configurers.ClientDetailsServiceConfigurer;
+import org.springframework.security.oauth2.config.annotation.web.configuration.AuthorizationServerConfigurerAdapter;
+import org.springframework.security.oauth2.config.annotation.web.configuration.EnableAuthorizationServer;
+
+@Configuration
+@EnableAuthorizationServer
+@Profile("oauth-authentication")
+/**
+ * Configures the authorization server for oauth token based authentication when the spring profile
+ * "oauth-authentication" is active
+ */
+public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdapter {
+
+    private static final int ONE_DAY = 60 * 60 * 24;
+
+    @Override
+    public void configure(final ClientDetailsServiceConfigurer clients) throws Exception {
+        clients.inMemory().withClient("vnfmadapter")
+                .secret("$2a$10$dHzTlqSBcm8hdO52LBvnX./zNTvUzzJy.lZrc4bCBL5gkln0wX6T6")
+                .authorizedGrantTypes("client_credentials").scopes("write").accessTokenValiditySeconds(ONE_DAY)
+                .refreshTokenValiditySeconds(ONE_DAY);
+    }
+
+}
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/oauth/JsonSerializerConfiguration.java b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/oauth/JsonSerializerConfiguration.java
new file mode 100644
index 0000000..7d5d612
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/oauth/JsonSerializerConfiguration.java
@@ -0,0 +1,49 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.so.svnfm.simulator.oauth;
+
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+import java.util.ArrayList;
+import java.util.Collection;
+import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.http.converter.HttpMessageConverter;
+import org.springframework.http.converter.json.GsonHttpMessageConverter;
+import org.springframework.security.oauth2.common.OAuth2AccessToken;
+
+/**
+ * Configures message converter
+ */
+@Configuration
+public class JsonSerializerConfiguration {
+
+    @Bean
+    public HttpMessageConverters customConverters() {
+        final Collection<HttpMessageConverter<?>> messageConverters = new ArrayList<>();
+
+        final Gson gson = new GsonBuilder()
+                .registerTypeHierarchyAdapter(OAuth2AccessToken.class, new OAuth2AccessTokenAdapter()).create();
+        final GsonHttpMessageConverter gsonHttpMessageConverter = new GsonHttpMessageConverter(gson);
+        messageConverters.add(gsonHttpMessageConverter);
+        return new HttpMessageConverters(true, messageConverters);
+    }
+}
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/oauth/OAuth2AccessTokenAdapter.java b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/oauth/OAuth2AccessTokenAdapter.java
new file mode 100644
index 0000000..ac96a82
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/oauth/OAuth2AccessTokenAdapter.java
@@ -0,0 +1,31 @@
+package org.onap.so.svnfm.simulator.oauth;
+
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonSerializationContext;
+import com.google.gson.JsonSerializer;
+import java.lang.reflect.Type;
+import org.springframework.security.oauth2.common.OAuth2AccessToken;
+
+public class OAuth2AccessTokenAdapter implements JsonSerializer<OAuth2AccessToken> {
+
+    @Override
+    public JsonElement serialize(final OAuth2AccessToken src, final Type typeOfSrc,
+            final JsonSerializationContext context) {
+        final JsonObject obj = new JsonObject();
+        obj.addProperty(OAuth2AccessToken.ACCESS_TOKEN, src.getValue());
+        obj.addProperty(OAuth2AccessToken.TOKEN_TYPE, src.getTokenType());
+        if (src.getRefreshToken() != null) {
+            obj.addProperty(OAuth2AccessToken.REFRESH_TOKEN, src.getRefreshToken().getValue());
+        }
+        obj.addProperty(OAuth2AccessToken.EXPIRES_IN, src.getExpiresIn());
+        final JsonArray scopeObj = new JsonArray();
+        for (final String scope : src.getScope()) {
+            scopeObj.add(scope);
+        }
+        obj.add(OAuth2AccessToken.SCOPE, scopeObj);
+
+        return obj;
+    }
+}
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/oauth/OAuth2ResourceServer.java b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/oauth/OAuth2ResourceServer.java
new file mode 100644
index 0000000..749abef
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/oauth/OAuth2ResourceServer.java
@@ -0,0 +1,36 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.svnfm.simulator.oauth;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Profile;
+import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer;
+import org.springframework.security.oauth2.config.annotation.web.configuration.ResourceServerConfigurerAdapter;
+
+@Configuration
+@EnableResourceServer
+@Profile("oauth-authentication")
+/**
+ * Enforces oauth token based authentication when the spring profile "oauth-authentication" is active
+ */
+public class OAuth2ResourceServer extends ResourceServerConfigurerAdapter {
+
+}
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/repository/VnfOperationRepository.java b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/repository/VnfOperationRepository.java
new file mode 100644
index 0000000..e179c71
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/repository/VnfOperationRepository.java
@@ -0,0 +1,33 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.svnfm.simulator.repository;
+
+import org.onap.so.svnfm.simulator.model.VnfOperation;
+import org.springframework.data.repository.CrudRepository;
+
+/**
+ * 
+ * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech)
+ * @author Ronan Kenny (ronan.kenny@est.tech)
+ */
+public interface VnfOperationRepository extends CrudRepository<VnfOperation, String> {
+
+}
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/repository/VnfmCacheRepository.java b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/repository/VnfmCacheRepository.java
new file mode 100644
index 0000000..76d7319
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/repository/VnfmCacheRepository.java
@@ -0,0 +1,60 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.svnfm.simulator.repository;
+
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.CreateVnfRequest;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201;
+import org.onap.so.svnfm.simulator.constants.Constant;
+import org.onap.so.svnfm.simulator.services.SvnfmService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cache.annotation.CacheEvict;
+import org.springframework.cache.annotation.Cacheable;
+import org.springframework.stereotype.Repository;
+
+/**
+ *
+ * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech)
+ * @author Ronan Kenny (ronan.kenny@est.tech)
+ */
+@Repository
+public class VnfmCacheRepository {
+
+    @Autowired
+    private SvnfmService svnfmService;
+
+    @Cacheable(value = Constant.IN_LINE_RESPONSE_201_CACHE, key = "#id")
+    public InlineResponse201 createVnf(final CreateVnfRequest createVnfRequest, final String id) {
+        return svnfmService.createVnf(createVnfRequest, id);
+    }
+
+
+
+    public InlineResponse201 getVnf(final String id) {
+        return svnfmService.getVnf(id);
+    }
+
+    /**
+     * @param vnfId
+     * @return
+     */
+    @CacheEvict(value = Constant.IN_LINE_RESPONSE_201_CACHE, key = "#id")
+    public void deleteVnf(final String id) {}
+}
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/repository/VnfmRepository.java b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/repository/VnfmRepository.java
new file mode 100644
index 0000000..37c6bb2
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/repository/VnfmRepository.java
@@ -0,0 +1,35 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.svnfm.simulator.repository;
+
+import java.util.Optional;
+import org.onap.so.svnfm.simulator.model.VnfInstance;
+import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.repository.query.Param;
+
+/**
+ * 
+ * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech)
+ * @author Ronan Kenny (ronan.kenny@est.tech)
+ */
+public interface VnfmRepository extends CrudRepository<VnfInstance, String> {
+    public Optional<VnfInstance> findById(@Param("id") String id);
+}
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/services/InstantiateOperationProgressor.java b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/services/InstantiateOperationProgressor.java
new file mode 100644
index 0000000..0a5444b
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/services/InstantiateOperationProgressor.java
@@ -0,0 +1,123 @@
+package org.onap.so.svnfm.simulator.services;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import org.modelmapper.ModelMapper;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.GrantsAddResources;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.GrantsAddResources.TypeEnum;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.InlineResponse201;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.InlineResponse201AddResources;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.InlineResponse201VimConnections;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.model.LcnVnfLcmOperationOccurrenceNotificationAffectedVnfcs.ChangeTypeEnum;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201.InstantiationStateEnum;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201InstantiatedVnfInfo;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201InstantiatedVnfInfoResourceHandle;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201InstantiatedVnfInfoVnfcResourceInfo;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201VimConnectionInfo;
+import org.onap.so.svnfm.simulator.model.Vnfds;
+import org.onap.so.svnfm.simulator.model.Vnfds.Vnfc;
+import org.onap.so.svnfm.simulator.model.Vnfds.Vnfd;
+import org.onap.so.svnfm.simulator.repository.VnfOperationRepository;
+import org.onap.so.svnfm.simulator.config.ApplicationConfig;
+import org.onap.so.svnfm.simulator.model.VnfOperation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class InstantiateOperationProgressor extends OperationProgressor {
+
+    private static final Logger LOGGER = LoggerFactory.getLogger(InstantiateOperationProgressor.class);
+
+    public InstantiateOperationProgressor(final VnfOperation operation, final SvnfmService svnfmService,
+            final VnfOperationRepository vnfOperationRepository, final ApplicationConfig applicationConfig,
+            final Vnfds vnfds, final SubscriptionService subscriptionService) {
+        super(operation, svnfmService, vnfOperationRepository, applicationConfig, vnfds, subscriptionService);
+    }
+
+    @Override
+    protected List<GrantsAddResources> getAddResources(final String vnfdId) {
+        final List<GrantsAddResources> resources = new ArrayList<>();
+
+        for (final Vnfd vnfd : vnfds.getVnfdList()) {
+            if (vnfd.getVnfdId().equals(vnfdId)) {
+                for (final Vnfc vnfc : vnfd.getVnfcList()) {
+                    final GrantsAddResources addResource = new GrantsAddResources();
+                    vnfc.setGrantResourceId(UUID.randomUUID().toString());
+                    addResource.setId(vnfc.getGrantResourceId());
+                    addResource.setType(TypeEnum.fromValue(vnfc.getType()));
+                    addResource.setResourceTemplateId(vnfc.getResourceTemplateId());
+                    addResource.setVduId(vnfc.getVduId());
+                    resources.add(addResource);
+                }
+            }
+        }
+        return resources;
+    }
+
+    @Override
+    protected List<GrantsAddResources> getRemoveResources(final String vnfdId) {
+        return Collections.emptyList();
+    }
+
+    @Override
+    protected List<InlineResponse201InstantiatedVnfInfoVnfcResourceInfo> handleGrantResponse(
+            final InlineResponse201 grantResponse) {
+        final InlineResponse201InstantiatedVnfInfo instantiatedVnfInfo = createInstantiatedVnfInfo(grantResponse);
+        svnfmService.updateVnf(InstantiationStateEnum.INSTANTIATED, instantiatedVnfInfo, operation.getVnfInstanceId(),
+                getVimConnections(grantResponse));
+        return instantiatedVnfInfo.getVnfcResourceInfo();
+    }
+
+    private InlineResponse201InstantiatedVnfInfo createInstantiatedVnfInfo(final InlineResponse201 grantResponse) {
+        final InlineResponse201InstantiatedVnfInfo instantiatedVnfInfo = new InlineResponse201InstantiatedVnfInfo();
+
+        final Map<String, String> mapOfGrantResourceIdToVimConnectionId = new HashMap<>();
+        for (final InlineResponse201AddResources addResource : grantResponse.getAddResources()) {
+            mapOfGrantResourceIdToVimConnectionId.put(addResource.getResourceDefinitionId(),
+                    addResource.getVimConnectionId());
+        }
+        LOGGER.info("VIM connections in grant response: {}", mapOfGrantResourceIdToVimConnectionId);
+
+        for (final Vnfd vnfd : vnfds.getVnfdList()) {
+            if (vnfd.getVnfdId().equals(svnfmService.getVnf(operation.getVnfInstanceId()).getVnfdId())) {
+                for (final Vnfc vnfc : vnfd.getVnfcList()) {
+                    final InlineResponse201InstantiatedVnfInfoVnfcResourceInfo vnfcResourceInfoItem =
+                            new InlineResponse201InstantiatedVnfInfoVnfcResourceInfo();
+                    vnfcResourceInfoItem.setId(vnfc.getVnfcId());
+                    vnfcResourceInfoItem.setVduId(vnfc.getVduId());
+                    final InlineResponse201InstantiatedVnfInfoResourceHandle computeResource =
+                            new InlineResponse201InstantiatedVnfInfoResourceHandle();
+                    computeResource.setResourceId(UUID.randomUUID().toString());
+                    LOGGER.info("Checking for VIM connection id for : {}", vnfc.getGrantResourceId());
+                    computeResource
+                            .setVimConnectionId(mapOfGrantResourceIdToVimConnectionId.get(vnfc.getGrantResourceId()));
+
+                    computeResource.setVimLevelResourceType("OS::Nova::Server");
+                    vnfcResourceInfoItem.setComputeResource(computeResource);
+                    instantiatedVnfInfo.addVnfcResourceInfoItem(vnfcResourceInfoItem);
+                }
+            }
+        }
+
+        return instantiatedVnfInfo;
+    }
+
+
+    private List<InlineResponse201VimConnectionInfo> getVimConnections(final InlineResponse201 grantResponse) {
+        final List<InlineResponse201VimConnectionInfo> vimConnectionInfo = new ArrayList<>();
+        for (final InlineResponse201VimConnections vimConnection : grantResponse.getVimConnections()) {
+            final ModelMapper modelMapper = new ModelMapper();
+            vimConnectionInfo.add(modelMapper.map(vimConnection, InlineResponse201VimConnectionInfo.class));
+        }
+        return vimConnectionInfo;
+    }
+
+    @Override
+    protected ChangeTypeEnum getVnfcChangeType() {
+        return ChangeTypeEnum.ADDED;
+    }
+
+}
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/services/OperationProgressor.java b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/services/OperationProgressor.java
new file mode 100644
index 0000000..487a931
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/services/OperationProgressor.java
@@ -0,0 +1,348 @@
+package org.onap.so.svnfm.simulator.services;
+
+import com.google.gson.JsonObject;
+import com.google.gson.JsonParser;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.nio.charset.StandardCharsets;
+import java.security.KeyStore;
+import java.security.KeyStoreException;
+import java.security.NoSuchAlgorithmException;
+import java.security.UnrecoverableKeyException;
+import java.security.cert.CertificateException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+import javax.net.ssl.HttpsURLConnection;
+import javax.net.ssl.KeyManager;
+import javax.net.ssl.KeyManagerFactory;
+import javax.ws.rs.core.MediaType;
+import org.apache.commons.codec.binary.Base64;
+import org.modelmapper.ModelMapper;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.ApiResponse;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.GrantRequest;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.GrantsAddResources;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.GrantsLinks;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.GrantsLinksVnfLcmOpOcc;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.InlineResponse201;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.ApiClient;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.ApiException;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.api.DefaultApi;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.model.LcnVnfLcmOperationOccurrenceNotificationAffectedVnfcs;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.model.LcnVnfLcmOperationOccurrenceNotificationAffectedVnfcs.ChangeTypeEnum;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.model.LcnVnfLcmOperationOccurrenceNotificationLinks;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.model.LcnVnfLcmOperationOccurrenceNotificationLinksVnfInstance;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.model.VnfLcmOperationOccurrenceNotification;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.model.VnfLcmOperationOccurrenceNotification.NotificationStatusEnum;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.model.VnfLcmOperationOccurrenceNotification.NotificationTypeEnum;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.model.VnfLcmOperationOccurrenceNotification.OperationEnum;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.model.VnfLcmOperationOccurrenceNotification.OperationStateEnum;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse200;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201InstantiatedVnfInfoVnfcResourceInfo;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.SubscriptionsAuthenticationParamsBasic;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.SubscriptionsAuthenticationParamsOauth2ClientCredentials;
+import org.onap.so.svnfm.simulator.model.Vnfds;
+import org.onap.so.svnfm.simulator.repository.VnfOperationRepository;
+import org.onap.so.svnfm.simulator.config.ApplicationConfig;
+import org.onap.so.svnfm.simulator.model.VnfOperation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.core.io.Resource;
+
+public abstract class OperationProgressor implements Runnable {
+
+    private static final Logger LOGGER = LoggerFactory.getLogger(OperationProgressor.class);
+    private static final String CERTIFICATE_TO_TRUST = "so-vnfm-adapter.crt.pem";
+
+    private Resource keyStoreResource = new ClassPathResource("so-vnfm-simulator.p12");
+    private String keyStorePassword = "7Em3&j4.19xYiMelhD5?xbQ.";
+
+    protected final VnfOperation operation;
+    protected final SvnfmService svnfmService;
+    private final VnfOperationRepository vnfOperationRepository;
+    private final ApplicationConfig applicationConfig;
+    protected final Vnfds vnfds;
+    private final SubscriptionService subscriptionService;
+    private final DefaultApi notificationClient;
+    private final org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.api.DefaultApi grantClient;
+
+    public OperationProgressor(final VnfOperation operation, final SvnfmService svnfmService,
+            final VnfOperationRepository vnfOperationRepository, final ApplicationConfig applicationConfig,
+            final Vnfds vnfds, final SubscriptionService subscriptionService) {
+        this.operation = operation;
+        this.svnfmService = svnfmService;
+        this.vnfOperationRepository = vnfOperationRepository;
+        this.applicationConfig = applicationConfig;
+        this.vnfds = vnfds;
+        this.subscriptionService = subscriptionService;
+
+        final ApiClient apiClient = new ApiClient();
+        String callBackUrl = subscriptionService.getSubscriptions().iterator().next().getCallbackUri();
+        callBackUrl = callBackUrl.substring(0, callBackUrl.indexOf("/lcn/"));
+        apiClient.setBasePath(callBackUrl);
+        apiClient.setKeyManagers(getKeyManagers());
+        apiClient.setSslCaCert(getCertificateToTrust());
+        notificationClient = new DefaultApi(apiClient);
+
+        final org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.ApiClient grantApiClient =
+                new org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.ApiClient();
+        grantApiClient.setBasePath(callBackUrl);
+        grantApiClient.setKeyManagers(getKeyManagers());
+        grantApiClient.setSslCaCert(getCertificateToTrust());
+        grantClient = new org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.api.DefaultApi(grantApiClient);
+    }
+
+    private InputStream getCertificateToTrust() {
+        try {
+            return new ClassPathResource(CERTIFICATE_TO_TRUST).getInputStream();
+        } catch (final IOException exception) {
+            LOGGER.error("Error reading certificate to trust, https calls to VNFM adapter will fail", exception);
+            return null;
+        }
+    }
+
+    private KeyManager[] getKeyManagers() {
+        KeyStore keystore;
+        try {
+            keystore = KeyStore.getInstance("pkcs12");
+            keystore.load(keyStoreResource.getInputStream(), keyStorePassword.toCharArray());
+            KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance("SunX509");
+            keyManagerFactory.init(keystore, keyStorePassword.toCharArray());
+            return keyManagerFactory.getKeyManagers();
+        } catch (KeyStoreException | NoSuchAlgorithmException | CertificateException | IOException
+                | UnrecoverableKeyException exception) {
+            LOGGER.error("Error reading certificate, https calls using two way TLS to VNFM adapter will fail",
+                    exception);
+            return new KeyManager[0];
+        }
+    }
+
+    @Override
+    public void run() {
+        try {
+            final VnfLcmOperationOccurrenceNotification notificationOfStarting =
+                    buildNotification(NotificationStatusEnum.START, OperationStateEnum.STARTING);
+            sendNotification(notificationOfStarting);
+
+            sleep(2000);
+            setState(InlineResponse200.OperationStateEnum.PROCESSING);
+            final VnfLcmOperationOccurrenceNotification notificationOfProcessing =
+                    buildNotification(NotificationStatusEnum.START, OperationStateEnum.PROCESSING);
+            sendNotification(notificationOfProcessing);
+
+
+            final GrantRequest grantRequest = buildGrantRequest();
+            final InlineResponse201 grantResponse = sendGrantRequest(grantRequest);
+            final List<InlineResponse201InstantiatedVnfInfoVnfcResourceInfo> vnfcs = handleGrantResponse(grantResponse);
+
+            svnfmService.getVnf(operation.getVnfInstanceId()).getInstantiatedVnfInfo();
+
+            sleep(10000);
+            setState(InlineResponse200.OperationStateEnum.COMPLETED);
+            final VnfLcmOperationOccurrenceNotification notificationOfCompleted =
+                    buildNotification(NotificationStatusEnum.RESULT, OperationStateEnum.COMPLETED);
+            notificationOfCompleted.setAffectedVnfcs(getVnfcs(vnfcs));
+
+            sendNotification(notificationOfCompleted);
+        } catch (final Exception exception) {
+            LOGGER.error("Error in OperationProgressor ", exception);
+        }
+
+    }
+
+    private void sleep(final long milliSeconds) {
+        try {
+            Thread.sleep(milliSeconds);
+        } catch (final InterruptedException e) {
+            operation.setOperationState(InlineResponse200.OperationStateEnum.FAILED);
+            // Restore interrupted state
+            Thread.currentThread().interrupt();
+        }
+    }
+
+    private void setState(final InlineResponse200.OperationStateEnum state) {
+        LOGGER.info("Setting state to {} for operation {}", state, operation.getId());
+        operation.setOperationState(state);
+        vnfOperationRepository.save(operation);
+    }
+
+    private VnfLcmOperationOccurrenceNotification buildNotification(final NotificationStatusEnum status,
+            final OperationStateEnum operationState) {
+        final VnfLcmOperationOccurrenceNotification notification = new VnfLcmOperationOccurrenceNotification();
+        notification.setId(UUID.randomUUID().toString());
+        notification.setNotificationType(NotificationTypeEnum.VNFLCMOPERATIONOCCURRENCENOTIFICATION);
+        notification.setNotificationStatus(status);
+        notification.setOperationState(operationState);
+        notification.setOperation(OperationEnum.fromValue(operation.getOperation().toString()));
+        notification.setVnfInstanceId(operation.getVnfInstanceId());
+        notification.setVnfLcmOpOccId(operation.getId());
+
+        final LcnVnfLcmOperationOccurrenceNotificationLinks links = new LcnVnfLcmOperationOccurrenceNotificationLinks();
+        final LcnVnfLcmOperationOccurrenceNotificationLinksVnfInstance vnfInstanceLink =
+                new LcnVnfLcmOperationOccurrenceNotificationLinksVnfInstance();
+        vnfInstanceLink.setHref(getVnfLink());
+        links.setVnfInstance(vnfInstanceLink);
+
+
+        final LcnVnfLcmOperationOccurrenceNotificationLinksVnfInstance operationLink =
+                new LcnVnfLcmOperationOccurrenceNotificationLinksVnfInstance();
+        operationLink.setHref(getOperationLink());
+        links.setVnfLcmOpOcc(operationLink);
+
+        notification.setLinks(links);
+
+        return notification;
+    }
+
+    private List<LcnVnfLcmOperationOccurrenceNotificationAffectedVnfcs> getVnfcs(
+            final List<InlineResponse201InstantiatedVnfInfoVnfcResourceInfo> instantiatedVnfcs) {
+        final List<LcnVnfLcmOperationOccurrenceNotificationAffectedVnfcs> vnfcs = new ArrayList<>();
+        if (instantiatedVnfcs != null) {
+            for (final InlineResponse201InstantiatedVnfInfoVnfcResourceInfo instantiatedVnfc : instantiatedVnfcs) {
+                LOGGER.info("VNFC TO BE CONVERTED: {}", instantiatedVnfc);
+                final ModelMapper mapper = new ModelMapper();
+                final LcnVnfLcmOperationOccurrenceNotificationAffectedVnfcs vnfc =
+                        mapper.map(instantiatedVnfc, LcnVnfLcmOperationOccurrenceNotificationAffectedVnfcs.class);
+                LOGGER.info("VNFC FROM CONVERSION: {}", vnfc);
+                vnfc.setChangeType(getVnfcChangeType());
+                vnfcs.add(vnfc);
+            }
+        }
+        return vnfcs;
+    }
+
+    private void sendNotification(final VnfLcmOperationOccurrenceNotification notification) {
+        LOGGER.info("Sending notification: {}", notification);
+        try {
+            final SubscriptionsAuthenticationParamsBasic subscriptionAuthentication =
+                    subscriptionService.getSubscriptions().iterator().next().getAuthentication().getParamsBasic();
+            final String auth =
+                    subscriptionAuthentication.getUserName() + ":" + subscriptionAuthentication.getPassword();
+            final byte[] encodedAuth = Base64.encodeBase64(auth.getBytes(StandardCharsets.ISO_8859_1));
+            String authHeader = "Basic " + new String(encodedAuth);
+
+            notificationClient.lcnVnfLcmOperationOccurrenceNotificationPostWithHttpInfo(notification,
+                    MediaType.APPLICATION_JSON, authHeader);
+        } catch (final ApiException exception) {
+            LOGGER.error("Error sending notification: " + notification, exception);
+            LOGGER.error("Response code: {}, body: {}, basePath: {}", exception.getCode(), exception.getResponseBody(),
+                    notificationClient.getApiClient().getBasePath());
+
+        }
+    }
+
+
+    public GrantRequest buildGrantRequest() {
+        final GrantRequest grantRequest = new GrantRequest();
+        grantRequest.setVnfInstanceId(operation.getVnfInstanceId());
+        final String vnfdId = svnfmService.getVnf(operation.getVnfInstanceId()).getVnfdId();
+        grantRequest.setVnfdId(vnfdId);
+        grantRequest.setAddResources(getAddResources(vnfdId));
+        grantRequest.setRemoveResources(getRemoveResources(vnfdId));
+        grantRequest.setVnfLcmOpOccId(operation.getId());
+        grantRequest
+                .setOperation(org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.GrantRequest.OperationEnum
+                        .fromValue(operation.getOperation().getValue()));
+        grantRequest.setIsAutomaticInvocation(false);
+
+        final GrantsLinksVnfLcmOpOcc vnfInstanceLink = new GrantsLinksVnfLcmOpOcc();
+        vnfInstanceLink.setHref(getVnfLink());
+        final GrantsLinksVnfLcmOpOcc operationInstanceLink = new GrantsLinksVnfLcmOpOcc();
+        operationInstanceLink.setHref(getOperationLink());
+        final GrantsLinks links = new GrantsLinks();
+        links.setVnfInstance(vnfInstanceLink);
+        links.setVnfLcmOpOcc(operationInstanceLink);
+        grantRequest.setLinks(links);
+        return grantRequest;
+    }
+
+    protected abstract List<GrantsAddResources> getAddResources(final String vnfdId);
+
+    protected abstract List<GrantsAddResources> getRemoveResources(final String vnfdId);
+
+    protected abstract List<InlineResponse201InstantiatedVnfInfoVnfcResourceInfo> handleGrantResponse(
+            InlineResponse201 grantResponse);
+
+    protected abstract ChangeTypeEnum getVnfcChangeType();
+
+    private InlineResponse201 sendGrantRequest(final GrantRequest grantRequest) {
+        LOGGER.info("Sending grant request: {}", grantRequest);
+        try {
+
+            final SubscriptionsAuthenticationParamsOauth2ClientCredentials subscriptionAuthentication =
+                    subscriptionService.getSubscriptions().iterator().next().getAuthentication()
+                            .getParamsOauth2ClientCredentials();
+
+            final String authHeader = applicationConfig.getGrantAuth().equals("oauth")
+                    ? "Bearer " + getToken(notificationClient.getApiClient(), subscriptionAuthentication)
+                    : null;
+
+            final ApiResponse<InlineResponse201> response = grantClient.grantsPostWithHttpInfo(grantRequest,
+                    MediaType.APPLICATION_JSON, MediaType.APPLICATION_JSON, authHeader);
+            LOGGER.info("Grant Response: {}", response);
+            return response.getData();
+        } catch (final org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.ApiException exception) {
+            LOGGER.error("Error sending notification: " + grantRequest, exception);
+            return null;
+        }
+    }
+
+    private String getVnfLink() {
+        return getLinkBaseUrl() + "/vnf_instances/" + operation.getVnfInstanceId();
+    }
+
+    private String getOperationLink() {
+        return getLinkBaseUrl() + "/vnf_lcm_op_occs/" + operation.getId();
+    }
+
+    private String getLinkBaseUrl() {
+        return applicationConfig.getBaseUrl() + "/vnflcm/v1";
+    }
+
+    private String getToken(final ApiClient apiClient,
+            final SubscriptionsAuthenticationParamsOauth2ClientCredentials oauthClientCredentials) {
+        final String basePath = apiClient.getBasePath().substring(0, apiClient.getBasePath().indexOf("/so/"));
+        final String tokenUrl = basePath + "/oauth/token?grant_type=client_credentials";
+
+        try {
+            URL url = new URL(tokenUrl);
+            HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
+            connection.setRequestMethod("POST");
+            final String authorizationHeader = getAuthorizationHeader(oauthClientCredentials);
+            connection.addRequestProperty("Authorization", authorizationHeader);
+
+            connection.connect();
+
+            return getResponse(connection).get("access_token").getAsString();
+
+        } catch (IOException exception) {
+            LOGGER.error("Error getting token", exception);
+            return null;
+        }
+    }
+
+    private String getAuthorizationHeader(
+            final SubscriptionsAuthenticationParamsOauth2ClientCredentials oauthClientCredentials) {
+        final String auth = oauthClientCredentials.getClientId() + ":" + oauthClientCredentials.getClientPassword();
+        final byte[] encodedAuth = Base64.encodeBase64(auth.getBytes(StandardCharsets.UTF_8));
+        return "Basic " + new String(encodedAuth);
+    }
+
+    private JsonObject getResponse(HttpsURLConnection connection) throws IOException {
+        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
+        String line, data = "";
+        while ((line = in.readLine()) != null) {
+            data += line;
+        }
+        in.close();
+        connection.getInputStream().close();
+
+        JsonObject jsonObject = new JsonParser().parse(data).getAsJsonObject();
+        return jsonObject;
+    }
+
+}
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/services/SubscriptionService.java b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/services/SubscriptionService.java
new file mode 100644
index 0000000..0922180
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/services/SubscriptionService.java
@@ -0,0 +1,21 @@
+package org.onap.so.svnfm.simulator.services;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.LccnSubscriptionRequest;
+import org.springframework.stereotype.Service;
+
+@Service
+public class SubscriptionService {
+
+    Collection<LccnSubscriptionRequest> subscriptions = new ArrayList<>();
+
+    public void registerSubscription(final LccnSubscriptionRequest subscription) {
+        subscriptions.add(subscription);
+    }
+
+    public Collection<LccnSubscriptionRequest> getSubscriptions() {
+        return Collections.unmodifiableCollection(subscriptions);
+    }
+}
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/services/SvnfmService.java b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/services/SvnfmService.java
new file mode 100644
index 0000000..4d968ce
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/services/SvnfmService.java
@@ -0,0 +1,169 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.svnfm.simulator.services;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.List;
+import java.util.UUID;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import org.modelmapper.ModelMapper;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.CreateVnfRequest;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse200;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201.InstantiationStateEnum;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201InstantiatedVnfInfo;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201VimConnectionInfo;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.LccnSubscriptionRequest;
+import org.onap.so.svnfm.simulator.model.Vnfds;
+import org.onap.so.svnfm.simulator.notifications.VnfInstantiationNotification;
+import org.onap.so.svnfm.simulator.notifications.VnfmAdapterCreationNotification;
+import org.onap.so.svnfm.simulator.repository.VnfOperationRepository;
+import org.onap.so.svnfm.simulator.repository.VnfmRepository;
+import org.onap.so.svnfm.simulator.config.ApplicationConfig;
+import org.onap.so.svnfm.simulator.constants.Constant;
+import org.onap.so.svnfm.simulator.model.VnfInstance;
+import org.onap.so.svnfm.simulator.model.VnfOperation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cache.Cache;
+import org.springframework.cache.CacheManager;
+import org.springframework.cache.annotation.CachePut;
+import org.springframework.cache.support.SimpleValueWrapper;
+import org.springframework.stereotype.Service;
+
+/**
+ *
+ * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech)
+ * @author Ronan Kenny (ronan.kenny@est.tech)
+ */
+@Service
+public class SvnfmService {
+
+    private VnfmRepository vnfmRepository;
+    private VnfOperationRepository vnfOperationRepository;
+    private VnfmHelper vnfmHelper;
+    private ApplicationConfig applicationConfig;
+    private CacheManager cacheManager;
+    private Vnfds vnfds;
+    private SubscriptionService subscriptionService;
+
+    private final ExecutorService executor = Executors.newCachedThreadPool();
+
+    private static final Logger LOGGER = LoggerFactory.getLogger(SvnfmService.class);
+
+    @Autowired
+    public SvnfmService(VnfmRepository vnfmRepository, VnfOperationRepository vnfOperationRepository,
+            VnfmHelper vnfmHelper, ApplicationConfig applicationConfig, CacheManager cacheManager, Vnfds vnfds,
+            SubscriptionService subscriptionService) {
+        this.vnfmRepository = vnfmRepository;
+        this.vnfOperationRepository = vnfOperationRepository;
+        this.vnfmHelper = vnfmHelper;
+        this.applicationConfig = applicationConfig;
+        this.cacheManager = cacheManager;
+        this.vnfds = vnfds;
+        this.subscriptionService = subscriptionService;
+    }
+
+    public InlineResponse201 createVnf(final CreateVnfRequest createVNFRequest, final String id) {
+        InlineResponse201 inlineResponse201 = null;
+        try {
+            final VnfInstance vnfInstance = vnfmHelper.createVnfInstance(createVNFRequest, id);
+            vnfmRepository.save(vnfInstance);
+            final Thread creationNotification = new Thread(new VnfmAdapterCreationNotification());
+            creationNotification.start();
+            inlineResponse201 = vnfmHelper.getInlineResponse201(vnfInstance);
+            LOGGER.debug("Response from Create VNF {}", inlineResponse201);
+        } catch (IllegalAccessException | InvocationTargetException e) {
+            LOGGER.error("Failed in Create Vnf", e);
+        }
+        return inlineResponse201;
+    }
+
+    @CachePut(value = Constant.IN_LINE_RESPONSE_201_CACHE, key = "#id")
+    public void updateVnf(final InstantiationStateEnum instantiationState,
+            final InlineResponse201InstantiatedVnfInfo instantiatedVnfInfo, final String id,
+            final List<InlineResponse201VimConnectionInfo> vimConnectionInfo) {
+        final InlineResponse201 vnf = getVnf(id);
+        vnf.setInstantiatedVnfInfo(instantiatedVnfInfo);
+        vnf.setInstantiationState(instantiationState);
+        vnf.setVimConnectionInfo(vimConnectionInfo);
+    }
+
+    public String instantiateVnf(final String vnfId) {
+        final VnfOperation vnfOperation = buildVnfOperation(InlineResponse200.OperationEnum.INSTANTIATE, vnfId);
+        vnfOperationRepository.save(vnfOperation);
+        executor.submit(new InstantiateOperationProgressor(vnfOperation, this, vnfOperationRepository,
+                applicationConfig, vnfds, subscriptionService));
+        return vnfOperation.getId();
+    }
+
+    private VnfOperation buildVnfOperation(final InlineResponse200.OperationEnum operation, final String vnfId) {
+        final VnfOperation vnfOperation = new VnfOperation();
+        vnfOperation.setId(UUID.randomUUID().toString());
+        vnfOperation.setOperation(operation);
+        vnfOperation.setOperationState(InlineResponse200.OperationStateEnum.STARTING);
+        vnfOperation.setVnfInstanceId(vnfId);
+        return vnfOperation;
+    }
+
+    public InlineResponse200 getOperationStatus(final String operationId) {
+        LOGGER.info("Getting operation status with id: {}", operationId);
+        final Thread instantiationNotification = new Thread(new VnfInstantiationNotification());
+        instantiationNotification.start();
+        for (final VnfOperation operation : vnfOperationRepository.findAll()) {
+            LOGGER.info("Operation found: {}", operation);
+            if (operation.getId().equals(operationId)) {
+                final ModelMapper modelMapper = new ModelMapper();
+                return modelMapper.map(operation, InlineResponse200.class);
+            }
+        }
+        return null;
+    }
+
+    public InlineResponse201 getVnf(final String vnfId) {
+        final Cache ca = cacheManager.getCache(Constant.IN_LINE_RESPONSE_201_CACHE);
+        if (ca == null)
+            return null;
+        final SimpleValueWrapper wrapper = (SimpleValueWrapper) ca.get(vnfId);
+        if (wrapper == null)
+            return null;
+        final InlineResponse201 inlineResponse201 = (InlineResponse201) wrapper.get();
+        if (inlineResponse201 != null) {
+            LOGGER.info("Cache Read Successful");
+            return inlineResponse201;
+        }
+        return null;
+    }
+
+    public String terminateVnf(final String vnfId) {
+        final VnfOperation vnfOperation = buildVnfOperation(InlineResponse200.OperationEnum.TERMINATE, vnfId);
+        vnfOperationRepository.save(vnfOperation);
+        executor.submit(new TerminateOperationProgressor(vnfOperation, this, vnfOperationRepository, applicationConfig,
+                vnfds, subscriptionService));
+        return vnfOperation.getId();
+    }
+
+    public void registerSubscription(final LccnSubscriptionRequest subscription) {
+        subscriptionService.registerSubscription(subscription);
+    }
+}
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/services/TerminateOperationProgressor.java b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/services/TerminateOperationProgressor.java
new file mode 100644
index 0000000..bd729f3
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/services/TerminateOperationProgressor.java
@@ -0,0 +1,74 @@
+package org.onap.so.svnfm.simulator.services;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.UUID;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.GrantsAddResources;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.GrantsAddResources.TypeEnum;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.GrantsResource;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.InlineResponse201;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.model.LcnVnfLcmOperationOccurrenceNotificationAffectedVnfcs.ChangeTypeEnum;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201.InstantiationStateEnum;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201InstantiatedVnfInfoResourceHandle;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201InstantiatedVnfInfoVnfcResourceInfo;
+import org.onap.so.svnfm.simulator.model.Vnfds;
+import org.onap.so.svnfm.simulator.repository.VnfOperationRepository;
+import org.onap.so.svnfm.simulator.config.ApplicationConfig;
+import org.onap.so.svnfm.simulator.model.VnfOperation;
+
+public class TerminateOperationProgressor extends OperationProgressor {
+
+    public TerminateOperationProgressor(final VnfOperation operation, final SvnfmService svnfmService,
+            final VnfOperationRepository vnfOperationRepository, final ApplicationConfig applicationConfig,
+            final Vnfds vnfds, final SubscriptionService subscriptionService) {
+        super(operation, svnfmService, vnfOperationRepository, applicationConfig, vnfds, subscriptionService);
+    }
+
+    @Override
+    protected List<GrantsAddResources> getAddResources(final String vnfdId) {
+        return Collections.emptyList();
+    }
+
+    @Override
+    protected List<GrantsAddResources> getRemoveResources(final String vnfdId) {
+        final List<GrantsAddResources> resources = new ArrayList<>();
+
+        final org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201 vnf =
+                svnfmService.getVnf(operation.getVnfInstanceId());
+        for (final InlineResponse201InstantiatedVnfInfoVnfcResourceInfo vnfc : vnf.getInstantiatedVnfInfo()
+                .getVnfcResourceInfo()) {
+            final GrantsAddResources addResource = new GrantsAddResources();
+            addResource.setId(UUID.randomUUID().toString());
+            addResource.setType(TypeEnum.COMPUTE);
+            addResource.setVduId(vnfc.getVduId());
+            final GrantsResource resource = new GrantsResource();
+
+            final InlineResponse201InstantiatedVnfInfoResourceHandle computeResource = vnfc.getComputeResource();
+            resource.setResourceId(computeResource.getResourceId());
+            resource.setVimConnectionId(computeResource.getVimConnectionId());
+            resource.setVimLevelResourceType(computeResource.getVimLevelResourceType());
+            addResource.setResource(resource);
+            resources.add(addResource);
+
+        }
+        return resources;
+    }
+
+    @Override
+    protected List<InlineResponse201InstantiatedVnfInfoVnfcResourceInfo> handleGrantResponse(
+            final InlineResponse201 grantResponse) {
+        final List<InlineResponse201InstantiatedVnfInfoVnfcResourceInfo> vnfcs =
+                svnfmService.getVnf(operation.getVnfInstanceId()).getInstantiatedVnfInfo().getVnfcResourceInfo();
+        svnfmService.updateVnf(InstantiationStateEnum.NOT_INSTANTIATED, null, operation.getVnfInstanceId(), null);
+        return vnfcs;
+    }
+
+    @Override
+    protected ChangeTypeEnum getVnfcChangeType() {
+        return ChangeTypeEnum.REMOVED;
+    }
+
+
+
+}
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/services/VnfmHelper.java b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/services/VnfmHelper.java
new file mode 100644
index 0000000..03f15af
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/java/org/onap/so/svnfm/simulator/services/VnfmHelper.java
@@ -0,0 +1,106 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.svnfm.simulator.services;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.commons.beanutils.BeanUtils;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.CreateVnfRequest;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201.InstantiationStateEnum;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201Links;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201LinksSelf;
+import org.onap.so.svnfm.simulator.constants.Constant;
+import org.onap.so.svnfm.simulator.config.ApplicationConfig;
+import org.onap.so.svnfm.simulator.model.VnfInstance;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ *
+ * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech)
+ * @author Ronan Kenny (ronan.kenny@est.tech)
+ */
+@Component
+public class VnfmHelper {
+
+    private ApplicationConfig applicationConfig;
+
+    @Autowired
+    public VnfmHelper(ApplicationConfig applicationConfig) {
+        this.applicationConfig = applicationConfig;
+    }
+
+    /**
+     *
+     * @param createVNFRequest
+     * @return vnfInstance
+     */
+    public VnfInstance createVnfInstance(final CreateVnfRequest createVNFRequest, final String id) {
+        final VnfInstance vnfInstance = new VnfInstance();
+        vnfInstance.setId(id);
+        vnfInstance.setVnfInstanceName(createVNFRequest.getVnfInstanceName());
+        vnfInstance.setVnfInstanceDescription(createVNFRequest.getVnfInstanceDescription());
+        vnfInstance.setVnfdId(createVNFRequest.getVnfdId());
+        vnfInstance.setVnfProvider(Constant.VNF_PROVIDER);
+        vnfInstance.setVnfProductName(Constant.VNF_PROVIDER_NAME);
+        return vnfInstance;
+    }
+
+    /**
+     *
+     * @param vnfInstance
+     * @return inlineResponse201
+     * @throws IllegalAccessException
+     * @throws InvocationTargetException
+     */
+    public InlineResponse201 getInlineResponse201(final VnfInstance vnfInstance)
+            throws IllegalAccessException, InvocationTargetException {
+        final InlineResponse201 inlineResponse201 = new InlineResponse201();
+        BeanUtils.copyProperties(inlineResponse201, vnfInstance);
+        inlineResponse201.setVnfdVersion(Constant.VNFD_VERSION);
+        inlineResponse201.setVnfSoftwareVersion(Constant.VNF_SOFTWARE_VERSION);
+        inlineResponse201.setInstantiationState(InstantiationStateEnum.NOT_INSTANTIATED);
+        inlineResponse201.setVnfConfigurableProperties(getConfigProperties());
+        addAdditionalPRopertyInlineResponse201(inlineResponse201);
+        return inlineResponse201;
+    }
+
+    private Map<String, String> getConfigProperties() {
+        final Map<String, String> configProperties = new HashMap<>();
+        configProperties.put("ipAddress", "10.11.12.13");
+        return configProperties;
+    }
+
+    private void addAdditionalPRopertyInlineResponse201(final InlineResponse201 inlineResponse201) {
+        final InlineResponse201LinksSelf VnfInstancesLinksSelf = new InlineResponse201LinksSelf();
+        VnfInstancesLinksSelf
+                .setHref(applicationConfig.getBaseUrl() + "/vnflcm/v1/vnf_instances/" + inlineResponse201.getId());
+        final InlineResponse201LinksSelf VnfInstancesLinksSelfInstantiate = new InlineResponse201LinksSelf();
+        VnfInstancesLinksSelfInstantiate.setHref(applicationConfig.getBaseUrl() + "/vnflcm/v1/vnf_instances/"
+                + inlineResponse201.getId() + "/instantiate");
+        final InlineResponse201Links inlineResponse201Links = new InlineResponse201Links();
+        inlineResponse201Links.setSelf(VnfInstancesLinksSelf);
+        inlineResponse201Links.setInstantiate(VnfInstancesLinksSelfInstantiate);
+        inlineResponse201.setLinks(inlineResponse201Links);
+    }
+}
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/resources/application.yaml b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/resources/application.yaml
new file mode 100644
index 0000000..33d865c
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/resources/application.yaml
@@ -0,0 +1,64 @@
+# Copyright © 2019 Nordix Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+spring:
+ h2:
+  console:
+  enabled: true
+  path: console
+ datasource:
+  url: jdbc:h2:mem:testdb;DB_CLOSE_ON_EXIT=FALSE
+  username: admin
+  password: admin
+ http:
+  converters:
+   preferred-json-mapper: gson
+ security:
+  usercredentials:
+   - username: vnfm
+     password: '$2a$10$Fh9ffgPw2vnmsghsRD3ZauBL1aKXebigbq3BB1RPWtE62UDILsjke'
+     role: BPEL-Client
+
+server:
+  port: 9093
+  tomcat:
+    max-threads: 50
+  ssl:
+    key-alias: so@so.onap.org
+    key--store-password: '7Em3&j4.19xYiMelhD5?xbQ.'
+    key-store: classpath:so-vnfm-simulator.p12
+    key-store-type: PKCS12
+
+vnfds:
+  vnfdlist:
+  -  vnfdid: 1
+     vnfclist:
+     - vnfcid: VNFC1
+       resourceTemplateId: vnfd1_vnfc1
+       vduId: vnfd1_vduForVnfc1
+       type: COMPUTE
+     - vnfcid: VNFC2
+       resourceTemplateId: vnfd1_vnfc2
+       vduId: vnfd1_vduForVnfc2
+       type: COMPUTE
+  -  vnfdid: 2
+     vnfclist:
+     - vnfcid: VNFC3
+       resourceTemplateId: vnfd2_vnfc3
+       vduId: vnfd2_vduForVnfc3
+       type: COMPUTE
+     - vnfcid: VNFC4
+       resourceTemplateId: vnfd2_vnfc4
+       vduId: vnfd2_vduForVnfc4
+       type: COMPUTE
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/resources/so-vnfm-adapter.crt.pem b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/resources/so-vnfm-adapter.crt.pem
new file mode 100644
index 0000000..3c899e3
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/resources/so-vnfm-adapter.crt.pem
@@ -0,0 +1,30 @@
+Bag Attributes
+    friendlyName: so@so.onap.org
+    localKeyID: 54 69 6D 65 20 31 35 36 33 34 36 33 36 32 39 35 38 33 
+subject=/CN=so-vnfm-adapter/emailAddress=/OU=so@so.onap.org/OU=OSAAF/O=ONAP/C=US
+issuer=/C=US/O=ONAP/OU=OSAAF/CN=intermediateCA_9
+-----BEGIN CERTIFICATE-----
+MIIEITCCAwmgAwIBAgIILuAnLLineoYwDQYJKoZIhvcNAQELBQAwRzELMAkGA1UE
+BhMCVVMxDTALBgNVBAoMBE9OQVAxDjAMBgNVBAsMBU9TQUFGMRkwFwYDVQQDDBBp
+bnRlcm1lZGlhdGVDQV85MB4XDTE5MDcxODE1MjcwOVoXDTIwMDcxODE1MjcwOVow
+cDEYMBYGA1UEAwwPc28tdm5mbS1hZGFwdGVyMQ8wDQYJKoZIhvcNAQkBFgAxFzAV
+BgNVBAsMDnNvQHNvLm9uYXAub3JnMQ4wDAYDVQQLDAVPU0FBRjENMAsGA1UECgwE
+T05BUDELMAkGA1UEBhMCVVMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
+AQCu2NbWjFiZ5Tz5P7daCD6mqJqSWV3f+gkM2VC/UYM/43hd/2ILJbbtsv4uzS/P
+GXl3UIKBjb7zRiDCvLNMFsHCZ9/gIonG1z737S42LCrdVKq/KQ59yIOPrxYmLyiQ
+Xy81ChX77b2KvKPPeF+K/wnh5fLwlcJ18geeCoWGaMK0C/i6J/uUb9z+Ef0Nmtau
+NdXAuUnERCKMra+3kFxZwaRC/gSCy+/s6EQdeaGNiijg03AmrUx9XjrJjHbYMDVo
+OKSxtv0E4fxbfmTpHaKCuN4eg+0nEXw/eiIEuSHJuh3KKv7wRoP/hG/Tdog7x60M
+SD+hdNjCbFP6yAyMPfoxVnjHAgMBAAGjgecwgeQwCQYDVR0TBAIwADAOBgNVHQ8B
+Af8EBAMCBeAwIAYDVR0lAQH/BBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMFQGA1Ud
+IwRNMEuAFIH3mVsQuciM3vNSXupOaaBDPqzdoTCkLjAsMQ4wDAYDVQQLDAVPU0FB
+RjENMAsGA1UECgwET05BUDELMAkGA1UEBhMCVVOCAQcwHQYDVR0OBBYEFFLrO3T4
+QybeDQ28mHgC/xT5f03qMDAGA1UdEQQpMCeCD3NvLXZuZm0tYWRhcHRlcoIUc28t
+dm5mbS1hZGFwdGVyLm9uYXAwDQYJKoZIhvcNAQELBQADggEBACe+JaVIjTku/QNp
+XoQCNN+sllSZmEHTLmYfpSzY5BY2AeJsgTYqFtAhtp6uQf8Jr993CyEyeJ4if2Z9
+J5NWoJKmY1+a63UphB1mg4sNSCuDxvbxPjtrFkOx/DiB1XEUdoifS9IQSDIIuhaD
+YP6sih1TBOh/2ityCe51Mu1J9/wgb24rlYouVtEyQeIai4dqngFHeQHeNXOnGN0z
+osEcKSYa0C+ZOAomBMT58C2aDz9vyI8YPuzwVSDKndmXUgvrkkVnxk3qJRtghDQc
+RV+4SeZg8s4+5DxKL4AL15IAaAPMJHi+MRtfm7qNzqCEl5sAEzO7S4oVHeWLNFV8
+a9PHErg=
+-----END CERTIFICATE-----
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/resources/so-vnfm-simulator.p12 b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/resources/so-vnfm-simulator.p12
new file mode 100644
index 0000000..7ac0285
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/main/resources/so-vnfm-simulator.p12
Binary files differ
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/test/java/org/onap/so/svnfm/simulator/controllers/TestSvnfmController.java b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/test/java/org/onap/so/svnfm/simulator/controllers/TestSvnfmController.java
new file mode 100644
index 0000000..84a3462
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/test/java/org/onap/so/svnfm/simulator/controllers/TestSvnfmController.java
@@ -0,0 +1,183 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.svnfm.simulator.controllers;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.when;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.CreateVnfRequest;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse200;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse200.OperationEnum;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.LccnSubscriptionRequest;
+import org.onap.so.svnfm.simulator.constants.Constant;
+import org.onap.so.svnfm.simulator.controller.SvnfmController;
+import org.onap.so.svnfm.simulator.repository.VnfmCacheRepository;
+import org.onap.so.svnfm.simulator.services.SvnfmService;
+import org.springframework.http.MediaType;
+import org.springframework.test.web.servlet.MockMvc;
+import org.springframework.test.web.servlet.MvcResult;
+import org.springframework.test.web.servlet.ResultActions;
+import org.springframework.test.web.servlet.setup.MockMvcBuilders;
+
+@RunWith(MockitoJUnitRunner.class)
+public class TestSvnfmController {
+
+    private static final String VNF_INSTANCES_URL = "/vnf_instances/";
+    private static final String VNFD_ID = "vnfdId";
+    private static final String VNF_INSTANCE_NAME = "vnfInstanceName";
+    private static final String VNF_INSTANCE_DESCRIPTION = "vnfInstanceDescription";
+    private static final String VNF_INSTANCE_ID = "vnfInstanceId";
+    private static final String VNF_OPERATION_ID = "vnfOperationId";
+    private static final String VNF_INSTANTIATE_URL = "/instantiate";
+    private static final String VNF_TERMINATE_URL = "/terminate";
+    private static final String VNF_LCM_OP_OCC_ID = "vnfLcmOpOccId";
+    private static final String VNF_OPERATION_STATUS_URL = "/vnf_lcm_op_occs/";
+    private static final String SUBSCRIPTIONS_URL = "/subscriptions";
+
+    @InjectMocks
+    private SvnfmController svnfmController;
+
+    private MockMvc mockMvc;
+
+    @Mock
+    private SvnfmService svnfmService;
+
+    @Mock
+    private VnfmCacheRepository vnfmCacheRepository;
+
+    @Before
+    public void setup() {
+        MockitoAnnotations.initMocks(this);
+        this.mockMvc = MockMvcBuilders.standaloneSetup(svnfmController).build();
+    }
+
+    @Test
+    public void createVnfInstanceTest() throws Exception {
+        final CreateVnfRequest createVnfRequest = new CreateVnfRequest();
+
+        createVnfRequest.setVnfdId(VNFD_ID);
+        createVnfRequest.setVnfInstanceName(VNF_INSTANCE_NAME);
+        createVnfRequest.setVnfInstanceDescription(VNF_INSTANCE_DESCRIPTION);
+
+        when(vnfmCacheRepository.createVnf(eq(createVnfRequest), anyString())).thenReturn(new InlineResponse201());
+
+        final String body = (new ObjectMapper()).valueToTree(createVnfRequest).toString();
+        this.mockMvc
+                .perform(post(Constant.BASE_URL + VNF_INSTANCES_URL).content(body)
+                        .contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON))
+                .andExpect(status().isCreated()).andExpect(content().contentType(MediaType.APPLICATION_JSON));
+    }
+
+    @Test
+    public void test_getVnf_usingValidVnfInstanceId_vnfInstanceRetrievedSuccessfully() throws Exception {
+        final InlineResponse201 inlineResponse201 = new InlineResponse201();
+        inlineResponse201.setId(VNF_INSTANCE_ID);
+        inlineResponse201.setVnfInstanceName(VNF_INSTANCE_NAME);
+
+        when(vnfmCacheRepository.getVnf(VNF_INSTANCE_ID)).thenReturn(inlineResponse201);
+
+        final ResultActions resultActions = this.mockMvc
+                .perform(get(Constant.BASE_URL + VNF_INSTANCES_URL + VNF_INSTANCE_ID)
+                        .contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON))
+                .andExpect(status().isOk()).andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8));
+
+        final MvcResult result = resultActions.andReturn();
+        final String content = result.getResponse().getContentAsString();
+        final InlineResponse201 response201 = new ObjectMapper().readValue(content, InlineResponse201.class);
+        assertThat(response201.getId()).isEqualTo(VNF_INSTANCE_ID);
+        assertThat(response201.getVnfInstanceName()).isEqualTo(VNF_INSTANCE_NAME);
+    }
+
+    @Test
+    public void test_instantiateVnf_usingValidVnfInstanceId_returnsHttpStatusAccepted() throws Exception {
+        when(svnfmService.instantiateVnf(VNF_INSTANCE_ID)).thenReturn(VNF_OPERATION_ID);
+
+        this.mockMvc
+                .perform(post(Constant.BASE_URL + VNF_INSTANCES_URL + VNF_INSTANCE_ID + VNF_INSTANTIATE_URL)
+                        .contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON))
+                .andExpect(status().isAccepted()).andExpect(content().contentType(MediaType.APPLICATION_JSON));
+    }
+
+    @Test
+    public void test_deleteVnf_usingValidVnfInstanceId_returnsHttpStatusNoContent() throws Exception {
+        this.mockMvc
+                .perform(delete(Constant.BASE_URL + VNF_INSTANCES_URL + VNF_INSTANCE_ID)
+                        .contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON))
+                .andExpect(status().isNoContent()).andExpect(content().contentType(MediaType.APPLICATION_JSON));
+    }
+
+    @Test
+    public void test_terminateVnf_usingValidVnfInstanceId_returnsHttpStatusIsAccepted() throws Exception {
+        when(svnfmService.terminateVnf(VNF_INSTANCE_ID)).thenReturn(VNF_OPERATION_ID);
+
+        this.mockMvc
+                .perform(post(Constant.BASE_URL + VNF_INSTANCES_URL + VNF_INSTANCE_ID + VNF_TERMINATE_URL)
+                        .contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON))
+                .andExpect(status().isAccepted()).andExpect(content().contentType(MediaType.APPLICATION_JSON));
+    }
+
+    @Test
+    public void test_getOperationStatus_usingValidOperationId_operationStatusRetrievedSuccessfully() throws Exception {
+        final InlineResponse200 inlineResponse200 = new InlineResponse200();
+        inlineResponse200.setId(VNF_LCM_OP_OCC_ID);
+        inlineResponse200.setOperation(OperationEnum.INSTANTIATE);
+
+        when(svnfmService.getOperationStatus(VNF_LCM_OP_OCC_ID)).thenReturn(inlineResponse200);
+
+        final ResultActions resultActions = this.mockMvc
+                .perform(get(Constant.BASE_URL + VNF_OPERATION_STATUS_URL + VNF_LCM_OP_OCC_ID)
+                        .contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON))
+                .andExpect(content().contentType(MediaType.APPLICATION_JSON)).andExpect(status().isOk());
+
+        final MvcResult result = resultActions.andReturn();
+        final String content = result.getResponse().getContentAsString();
+        final InlineResponse200 response200 = new ObjectMapper().readValue(content, InlineResponse200.class);
+        assertThat(response200.getId()).isEqualTo(VNF_LCM_OP_OCC_ID);
+        assertThat(response200.getOperation()).isEqualTo(OperationEnum.INSTANTIATE);
+    }
+
+    @Test
+    public void test_subscribeForNotifications_usingValidSubscriptionRequest_returnsHttpStatusCreated()
+            throws Exception {
+        final LccnSubscriptionRequest lccnSubscriptionRequest = new LccnSubscriptionRequest();
+        final String body = (new ObjectMapper()).valueToTree(lccnSubscriptionRequest).toString();
+
+        this.mockMvc
+                .perform(post(Constant.BASE_URL + SUBSCRIPTIONS_URL).content(body)
+                        .contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON))
+                .andExpect(status().isCreated()).andExpect(content().contentType(MediaType.APPLICATION_JSON));
+    }
+}
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/test/java/org/onap/so/svnfm/simulator/services/InstantiateOperatorProgressorTest.java b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/test/java/org/onap/so/svnfm/simulator/services/InstantiateOperatorProgressorTest.java
new file mode 100644
index 0000000..71709cb
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/test/java/org/onap/so/svnfm/simulator/services/InstantiateOperatorProgressorTest.java
@@ -0,0 +1,169 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2019 Nokia.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.svnfm.simulator.services;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.GrantRequest;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.GrantsAddResources;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.InlineResponse201;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.InlineResponse201AddResources;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.InlineResponse201VimConnections;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse200.OperationEnum;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201InstantiatedVnfInfoVnfcResourceInfo;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.LccnSubscriptionRequest;
+import org.onap.so.svnfm.simulator.model.Vnfds;
+import org.onap.so.svnfm.simulator.model.Vnfds.Vnfc;
+import org.onap.so.svnfm.simulator.model.Vnfds.Vnfd;
+import org.onap.so.svnfm.simulator.config.ApplicationConfig;
+import org.onap.so.svnfm.simulator.model.VnfOperation;
+
+public class InstantiateOperatorProgressorTest {
+
+    private static final String VNF_ID = "vnfTestId";
+    private static final String CALLBACK_URI = "/lcn/uritest";
+    private static final String VNFC_TYPE = "COMPUTE";
+    private static final String RESOURCE_TEMPLATE_ID = "resTempIdTest";
+    private static final String VDU_ID = "vduIdTest";
+    private static final String VNF_INSTANCE_ID = "vnfInstanceId";
+    private static final String VNFC_ID = "vnfcIdTest";
+    private static final String RESOURCE_DEFINITION_ID = "resDefTestId";
+    private static final String VIM_CONNECTION_ID = "vimConnTestId";
+
+    private SvnfmService svnfmServiceMock;
+
+    private InstantiateOperationProgressor testedObject;
+
+    @Before
+    public void setup() {
+        svnfmServiceMock = mock(SvnfmService.class);
+        VnfOperation vnfOperation = new VnfOperation();
+        vnfOperation.setVnfInstanceId(VNF_INSTANCE_ID);
+        vnfOperation.setOperation(OperationEnum.OPERATE);
+        testedObject = new InstantiateOperationProgressor(vnfOperation, svnfmServiceMock, null, new ApplicationConfig(),
+                createVnfds(), createSubscriptionService());
+    }
+
+    @Test
+    public void getAddResources_vnfIdFound() {
+        List<GrantsAddResources> result = testedObject.getAddResources(VNF_ID);
+        assertThat(result).hasSize(1);
+        GrantsAddResources grantsAddResourceResult = result.get(0);
+        assertThat(grantsAddResourceResult.getType()).hasToString(VNFC_TYPE);
+        assertThat(grantsAddResourceResult.getResourceTemplateId()).isEqualTo(RESOURCE_TEMPLATE_ID);
+        assertThat(grantsAddResourceResult.getVduId()).isEqualTo(VDU_ID);
+    }
+
+    @Test
+    public void getAddResources_vnfIdNotFound() {
+        List<GrantsAddResources> result = testedObject.getAddResources("otherVnfId");
+        assertThat(result).isEmpty();
+    }
+
+    @Test
+    public void handleGrantResponse_VnfdObjectsAvailable() {
+        when(svnfmServiceMock.getVnf(VNF_INSTANCE_ID)).thenReturn(createInlineResponse201());
+
+        InlineResponse201VimConnections inlineResponse201VimConnections = new InlineResponse201VimConnections();
+        List<InlineResponse201VimConnections> listOfVimConnection = new ArrayList<>();
+        listOfVimConnection.add(inlineResponse201VimConnections);
+
+        InlineResponse201AddResources inlineResponse201AddResources = new InlineResponse201AddResources();
+        inlineResponse201AddResources.setResourceDefinitionId(RESOURCE_DEFINITION_ID);
+        inlineResponse201AddResources.setVimConnectionId(VIM_CONNECTION_ID);
+        List<InlineResponse201AddResources> listOfResources = new ArrayList<>();
+        listOfResources.add(inlineResponse201AddResources);
+
+        InlineResponse201 inlineResponse201 = new InlineResponse201();
+        inlineResponse201.setVimConnections(listOfVimConnection);
+        inlineResponse201.setAddResources(listOfResources);
+        List<InlineResponse201InstantiatedVnfInfoVnfcResourceInfo> resultList =
+                testedObject.handleGrantResponse(inlineResponse201);
+
+        assertThat(resultList).hasSize(1);
+        InlineResponse201InstantiatedVnfInfoVnfcResourceInfo resultObject = resultList.get(0);
+        assertThat(resultObject.getId()).isEqualTo(VNFC_ID);
+        assertThat(resultObject.getVduId()).isEqualTo(VDU_ID);
+        assertThat(resultObject.getComputeResource().getVimConnectionId()).isEqualTo(VIM_CONNECTION_ID);
+    }
+
+    @Test
+    public void getVnfcChangeType_enumAdded() {
+        assertThat(testedObject.getVnfcChangeType().getValue()).isEqualTo("ADDED");
+    }
+
+    @Test
+    public void getRemoveResourcesShouldReturnEmptyList() {
+        assertThat(testedObject.getRemoveResources("anyVnfId")).isEmpty();
+    }
+
+    @Test
+    public void test_buildGrantRequest_usingValidVnfInstanceId_grantRequestRetrievedSuccessfully() {
+        when(svnfmServiceMock.getVnf(Mockito.eq(VNF_INSTANCE_ID))).thenReturn(createInlineResponse201());
+        GrantRequest grantRequest = testedObject.buildGrantRequest();
+        assertThat(grantRequest.getVnfdId().equals(VNF_ID));
+    }
+
+    private Vnfds createVnfds() {
+        Vnfd vnfd = new Vnfd();
+        vnfd.setVnfdId(VNF_ID);
+        List<Vnfc> vnfcList = new ArrayList<>();
+        vnfcList.add(createVnfc());
+        vnfd.setVnfcList(vnfcList);
+        List<Vnfd> vnfdList = new ArrayList<>();
+        vnfdList.add(vnfd);
+
+        Vnfds vnfds = new Vnfds();
+        vnfds.setVnfdList(vnfdList);
+        return vnfds;
+    }
+
+    private Vnfc createVnfc() {
+        Vnfc vnfc = new Vnfc();
+        vnfc.setVnfcId(VNFC_ID);
+        vnfc.setType(VNFC_TYPE);
+        vnfc.setResourceTemplateId(RESOURCE_TEMPLATE_ID);
+        vnfc.setVduId(VDU_ID);
+        vnfc.setGrantResourceId(RESOURCE_DEFINITION_ID);
+        return vnfc;
+    }
+
+    private SubscriptionService createSubscriptionService() {
+        SubscriptionService subscriptionService = new SubscriptionService();
+        LccnSubscriptionRequest lccnSubscriptionRequest = new LccnSubscriptionRequest();
+        lccnSubscriptionRequest.setCallbackUri(CALLBACK_URI);
+        subscriptionService.registerSubscription(lccnSubscriptionRequest);
+        return subscriptionService;
+    }
+
+    private org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201 createInlineResponse201() {
+        org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201 inlineResponse201 =
+                new org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201();
+        inlineResponse201.setVnfdId(VNF_ID);
+        return inlineResponse201;
+    }
+}
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/test/java/org/onap/so/svnfm/simulator/services/SvnfmServiceTest.java b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/test/java/org/onap/so/svnfm/simulator/services/SvnfmServiceTest.java
new file mode 100644
index 0000000..7e441ab
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/test/java/org/onap/so/svnfm/simulator/services/SvnfmServiceTest.java
@@ -0,0 +1,203 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2019 Nokia.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.svnfm.simulator.services;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.junit.Assert.assertNull;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Before;
+import org.junit.Test;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.CreateVnfRequest;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse200;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse200.OperationEnum;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201;
+import org.onap.so.svnfm.simulator.model.Vnfds;
+import org.onap.so.svnfm.simulator.config.ApplicationConfig;
+import org.onap.so.svnfm.simulator.constants.Constant;
+import org.onap.so.svnfm.simulator.model.VnfInstance;
+import org.onap.so.svnfm.simulator.model.VnfOperation;
+import org.onap.so.svnfm.simulator.repository.VnfOperationRepository;
+import org.onap.so.svnfm.simulator.repository.VnfmRepository;
+import org.springframework.cache.Cache;
+import org.springframework.cache.CacheManager;
+import org.springframework.cache.support.SimpleValueWrapper;
+
+public class SvnfmServiceTest {
+
+    private static final String VNFD_ID = "vnfdId";
+    private static final String VNF_INSTANCE_NAME = "vnfInstanceName";
+    private static final String VNF_INSTANCE_ID = "vnfInstanceId";
+    private static final String OPERATION_ID = "operationId";
+    private SvnfmService testedObject;
+    private CacheManager cacheManagerMock;
+    private VnfmHelper vnfmHelperMock;
+    private VnfmRepository vnfmRepositoryMock;
+    private VnfOperationRepository vnfOperationRepositoryMock;
+
+    @Before
+    public void setup() {
+        vnfmRepositoryMock = mock(VnfmRepository.class);
+        vnfOperationRepositoryMock = mock(VnfOperationRepository.class);
+        vnfmHelperMock = mock(VnfmHelper.class);
+        ApplicationConfig applicationConfigMock = mock(ApplicationConfig.class);
+        cacheManagerMock = mock(CacheManager.class);
+        Vnfds vnfdsMock = mock(Vnfds.class);
+        SubscriptionService subscriptionServiceMock = mock(SubscriptionService.class);
+
+        testedObject = new SvnfmService(vnfmRepositoryMock, vnfOperationRepositoryMock, vnfmHelperMock,
+                applicationConfigMock, cacheManagerMock, vnfdsMock, subscriptionServiceMock);
+    }
+
+    @Test
+    public void getVnfSuccessful() {
+        // given
+        Cache cacheMock = mock(Cache.class);
+        SimpleValueWrapper simpleValueWrapperMock = mock(SimpleValueWrapper.class);
+        when(cacheManagerMock.getCache(Constant.IN_LINE_RESPONSE_201_CACHE)).thenReturn(cacheMock);
+        when(cacheMock.get(VNF_INSTANCE_ID)).thenReturn(simpleValueWrapperMock);
+        when(simpleValueWrapperMock.get()).thenReturn(getInlineResponse(VNFD_ID, VNF_INSTANCE_NAME));
+        // when
+        InlineResponse201 result = testedObject.getVnf(VNF_INSTANCE_ID);
+        // then
+        assertThat(result.getVnfdId()).isEqualTo(VNFD_ID);
+        assertThat(result.getVnfInstanceName()).isEqualTo(VNF_INSTANCE_NAME);
+    }
+
+    @Test
+    public void getVnf_ifCacheNullThenReturnNull() {
+        // given
+        when(cacheManagerMock.getCache(Constant.IN_LINE_RESPONSE_201_CACHE)).thenReturn(null);
+        // then
+        assertThat(testedObject.getVnf("any")).isNull();
+    }
+
+    @Test
+    public void getVnf_ifWrapperNullThenReturnNull() {
+        // given
+        Cache cacheMock = mock(Cache.class);
+        when(cacheManagerMock.getCache(Constant.IN_LINE_RESPONSE_201_CACHE)).thenReturn(cacheMock);
+        when(cacheMock.get(VNF_INSTANCE_ID)).thenReturn(null);
+        // then
+        assertThat(testedObject.getVnf(VNF_INSTANCE_ID)).isNull();
+    }
+
+    @Test
+    public void getVnf_ifResultIsNullThenReturnNull() {
+        // when
+        Cache cacheMock = mock(Cache.class);
+        SimpleValueWrapper simpleValueWrapperMock = mock(SimpleValueWrapper.class);
+        when(cacheManagerMock.getCache(Constant.IN_LINE_RESPONSE_201_CACHE)).thenReturn(cacheMock);
+        when(cacheMock.get(VNF_INSTANCE_ID)).thenReturn(simpleValueWrapperMock);
+        when(simpleValueWrapperMock.get()).thenReturn(null);
+        // then
+        assertThat(testedObject.getVnf(VNF_INSTANCE_ID)).isNull();
+    }
+
+    @Test
+    public void test_createVnf_usingValidCreateVnfRequest_vnfInstanceCreatedSuccessfully() throws Exception {
+        // given
+        final CreateVnfRequest createVnfRequest = getCreateVnfRequest();
+        final VnfInstance vnfInstance = getVnfInstance();
+        final InlineResponse201 inlineResponse201 = getInlineResponse(VNFD_ID, VNF_INSTANCE_NAME);
+        when(vnfmHelperMock.createVnfInstance(createVnfRequest, VNF_INSTANCE_ID)).thenReturn(vnfInstance);
+        when(vnfmRepositoryMock.save(vnfInstance)).thenReturn(vnfInstance);
+        when(vnfmHelperMock.getInlineResponse201(vnfInstance)).thenReturn(inlineResponse201);
+        // when
+        final InlineResponse201 result = testedObject.createVnf(createVnfRequest, VNF_INSTANCE_ID);
+        // then
+        assertThat(result.getVnfdId()).isEqualTo(VNFD_ID);
+        assertThat(result.getVnfInstanceName()).isEqualTo(VNF_INSTANCE_NAME);
+    }
+
+    @Test
+    public void test_createVnf_illegalAccessExceptionThrown_returnsNull() throws Exception {
+        // given
+        final CreateVnfRequest createVnfRequest = getCreateVnfRequest();
+        final VnfInstance vnfInstance = getVnfInstance();
+        when(vnfmHelperMock.createVnfInstance(createVnfRequest, VNF_INSTANCE_ID)).thenReturn(vnfInstance);
+        when(vnfmRepositoryMock.save(vnfInstance)).thenReturn(vnfInstance);
+        when(vnfmHelperMock.getInlineResponse201(vnfInstance)).thenThrow(new IllegalAccessException());
+        // when
+        final InlineResponse201 result = testedObject.createVnf(createVnfRequest, VNF_INSTANCE_ID);
+        // then
+        assertNull(result);
+    }
+
+    @Test
+    public void test_getOperationStatus_usingValidOperationId_operationStatusRetrievedSuccessfully() {
+        // given
+        final OperationEnum operationEnum = OperationEnum.OPERATE;
+        final VnfOperation vnfOperation = getVnfOperation(OPERATION_ID, operationEnum);
+        final List<VnfOperation> vnfOperations = new ArrayList<>();
+        vnfOperations.add(vnfOperation);
+        when(vnfOperationRepositoryMock.findAll()).thenReturn(vnfOperations);
+        // when
+        final InlineResponse200 result = testedObject.getOperationStatus(OPERATION_ID);
+        // then
+        assertThat(result.getId()).isEqualTo(OPERATION_ID);
+        assertThat(result.getOperation()).isEqualTo(operationEnum);
+    }
+
+    @Test
+    public void test_getOperationStatus_usingInvalidOperationId_returnsNull() {
+        // given
+        final OperationEnum operationEnum = OperationEnum.OPERATE;
+        final VnfOperation vnfOperation = getVnfOperation(OPERATION_ID, operationEnum);
+        final List<VnfOperation> vnfOperations = new ArrayList<>();
+        vnfOperations.add(vnfOperation);
+        when(vnfOperationRepositoryMock.findAll()).thenReturn(vnfOperations);
+        // when
+        InlineResponse200 result = testedObject.getOperationStatus("invalidOperationId");
+        // then
+        assertNull(result);
+    }
+
+    private InlineResponse201 getInlineResponse(String vnfdId, String vnfInstanceName) {
+        InlineResponse201 response201 = new InlineResponse201();
+        response201.setVnfdId(vnfdId);
+        response201.vnfInstanceName(vnfInstanceName);
+        return response201;
+    }
+
+    private CreateVnfRequest getCreateVnfRequest() {
+        final CreateVnfRequest createVnfRequest = new CreateVnfRequest();
+        createVnfRequest.setVnfdId(VNFD_ID);
+        createVnfRequest.setVnfInstanceName(VNF_INSTANCE_NAME);
+        return createVnfRequest;
+    }
+
+    private VnfInstance getVnfInstance() {
+        final VnfInstance vnfInstance = new VnfInstance();
+        vnfInstance.setVnfdId(VNFD_ID);
+        vnfInstance.setVnfInstanceName(VNF_INSTANCE_NAME);
+        return vnfInstance;
+    }
+
+    private VnfOperation getVnfOperation(String operationId, OperationEnum operationEnum) {
+        final VnfOperation vnfOperation = new VnfOperation();
+        vnfOperation.setId(operationId);
+        vnfOperation.setOperation(operationEnum);
+        return vnfOperation;
+    }
+}
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/test/java/org/onap/so/svnfm/simulator/services/TerminateOperationProgressorTest.java b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/test/java/org/onap/so/svnfm/simulator/services/TerminateOperationProgressorTest.java
new file mode 100644
index 0000000..0b1ded4
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/test/java/org/onap/so/svnfm/simulator/services/TerminateOperationProgressorTest.java
@@ -0,0 +1,157 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.svnfm.simulator.services;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mock;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.GrantsAddResources;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse200.OperationEnum;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201InstantiatedVnfInfo;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201InstantiatedVnfInfoResourceHandle;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201InstantiatedVnfInfoVnfcResourceInfo;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.LccnSubscriptionRequest;
+import org.onap.so.svnfm.simulator.model.Vnfds;
+import org.onap.so.svnfm.simulator.model.Vnfds.Vnfc;
+import org.onap.so.svnfm.simulator.model.Vnfds.Vnfd;
+import org.onap.so.svnfm.simulator.config.ApplicationConfig;
+import org.onap.so.svnfm.simulator.model.VnfOperation;
+
+public class TerminateOperationProgressorTest {
+
+    private static final String VNFD_ID = "vnfdId";
+    private static final String VNFC_TYPE = "COMPUTE";
+    private static final String VDU_ID = "vduId";
+    private static final String VNF_INSTANCE_ID = "vnfInstanceId";
+
+    @Mock
+    private SvnfmService svnfmService;
+
+    private TerminateOperationProgressor testedObject;
+
+    @Before
+    public void setup() {
+        svnfmService = mock(SvnfmService.class);
+        VnfOperation vnfOperation = new VnfOperation();
+        vnfOperation.setVnfInstanceId(VNF_INSTANCE_ID);
+        vnfOperation.setOperation(OperationEnum.OPERATE);
+        testedObject = new TerminateOperationProgressor(vnfOperation, svnfmService, null, new ApplicationConfig(),
+                createVnfds(), createSubscriptionService());
+    }
+
+    @Test
+    public void test_getAddResources_usingValidVnfdId_returnsEmptyList() {
+        List<GrantsAddResources> results = testedObject.getAddResources(VNFD_ID);
+        assertThat(results.isEmpty());
+    }
+
+    @Test
+    public void test_getRemoveResources_usingValidVnfdId_retrievesGrantsAddResourcesSuccessfully() {
+        // given
+        InlineResponse201 inlineResponse201 = createInlineResponse201();
+        InlineResponse201InstantiatedVnfInfo inlineResponse201InstantiatedVnfInfo =
+                setupInlineResponseInstantiatedVnfInfo();
+        inlineResponse201.setInstantiatedVnfInfo(inlineResponse201InstantiatedVnfInfo);
+
+        when(svnfmService.getVnf(VNF_INSTANCE_ID)).thenReturn(inlineResponse201);
+
+        // when
+        List<GrantsAddResources> result = testedObject.getRemoveResources(VNFD_ID);
+
+        // then
+        assertThat(result).hasSize(1);
+        GrantsAddResources grantsAddResourcesResult = result.get(0);
+        assertThat(grantsAddResourcesResult.getType()).hasToString(VNFC_TYPE);
+        assertThat(grantsAddResourcesResult.getVduId()).isEqualTo(VDU_ID);
+    }
+
+    @Test
+    public void test_getVnfcChangeType_isEnumRemoved() {
+        assertThat(testedObject.getVnfcChangeType().getValue()).isEqualTo("REMOVED");
+    }
+
+    private Vnfds createVnfds() {
+        Vnfd vnfd = new Vnfd();
+        vnfd.setVnfdId(VNFD_ID);
+        List<Vnfc> vnfcList = new ArrayList<>();
+        vnfcList.add(createVnfc());
+        vnfd.setVnfcList(vnfcList);
+        List<Vnfd> vnfdList = new ArrayList<>();
+        vnfdList.add(vnfd);
+
+        Vnfds vnfds = new Vnfds();
+        vnfds.setVnfdList(vnfdList);
+        return vnfds;
+    }
+
+    private Vnfc createVnfc() {
+        Vnfc vnfc = new Vnfc();
+        String vnfcId = "vnfcId";
+        vnfc.setVnfcId(vnfcId);
+        vnfc.setType(VNFC_TYPE);
+        String resourceTemplateId = "resTempId";
+        vnfc.setResourceTemplateId(resourceTemplateId);
+        vnfc.setVduId(VDU_ID);
+        String resourceDefinitionId = "resourceDefinitionId";
+        vnfc.setGrantResourceId(resourceDefinitionId);
+        return vnfc;
+    }
+
+    private SubscriptionService createSubscriptionService() {
+        SubscriptionService subscriptionService = new SubscriptionService();
+        LccnSubscriptionRequest lccnSubscriptionRequest = new LccnSubscriptionRequest();
+        String callbackUri = "/lcn/uriest";
+        lccnSubscriptionRequest.setCallbackUri(callbackUri);
+        subscriptionService.registerSubscription(lccnSubscriptionRequest);
+        return subscriptionService;
+    }
+
+    private InlineResponse201 createInlineResponse201() {
+        InlineResponse201 inlineResponse201 = new InlineResponse201();
+        inlineResponse201.setVnfdId(VNFD_ID);
+        return inlineResponse201;
+    }
+
+    private InlineResponse201InstantiatedVnfInfo setupInlineResponseInstantiatedVnfInfo() {
+        InlineResponse201InstantiatedVnfInfo inlineResponse201InstantiatedVnfInfo =
+                new InlineResponse201InstantiatedVnfInfo();
+        List<InlineResponse201InstantiatedVnfInfoVnfcResourceInfo> resultList = new ArrayList<>();
+        InlineResponse201InstantiatedVnfInfoVnfcResourceInfo resourceInfo =
+                new InlineResponse201InstantiatedVnfInfoVnfcResourceInfo();
+        String resourceInfoId = "resourceInfoId";
+        resourceInfo.setId(resourceInfoId);
+        resourceInfo.setVduId((VDU_ID));
+        InlineResponse201InstantiatedVnfInfoResourceHandle resourceHandle =
+                new InlineResponse201InstantiatedVnfInfoResourceHandle();
+        resourceInfo.setComputeResource(resourceHandle);
+        resultList.add(resourceInfo);
+        inlineResponse201InstantiatedVnfInfo.setVnfcResourceInfo(resultList);
+        String flavourId = "flavourId";
+        inlineResponse201InstantiatedVnfInfo.setFlavourId(flavourId);
+        return inlineResponse201InstantiatedVnfInfo;
+    }
+}
diff --git a/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/test/java/org/onap/so/svnfm/simulator/services/VnfmHelperTest.java b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/test/java/org/onap/so/svnfm/simulator/services/VnfmHelperTest.java
new file mode 100644
index 0000000..da53899
--- /dev/null
+++ b/plans/so/integration-etsi-testing/so-simulators/vnfm-simulator/vnfm-service/src/test/java/org/onap/so/svnfm/simulator/services/VnfmHelperTest.java
@@ -0,0 +1,104 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2019 Nokia.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.svnfm.simulator.services;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+import org.junit.Before;
+import org.junit.Test;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.CreateVnfRequest;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201.InstantiationStateEnum;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201LinksSelf;
+import org.onap.so.svnfm.simulator.config.ApplicationConfig;
+import org.onap.so.svnfm.simulator.constants.Constant;
+import org.onap.so.svnfm.simulator.model.VnfInstance;
+
+public class VnfmHelperTest {
+
+    private static final String VNF_INSTANCE_ID = "vnfInstanceTestId";
+    private static final String VNFD_ID = "vnfdTestId";
+    private static final String VNF_INSTANCE_NAME = "vnfInsNameTest";
+    private static final String VNF_INSTANCE_DESCRIPTION = "vnfInstTestDescr";
+    private static final String APPLICATION_CONFIG_BASE_URL = "appConfUrl";
+    private VnfmHelper testedObject;
+    private ApplicationConfig applicationConfigMock;
+
+    @Before
+    public void setup() {
+        applicationConfigMock = mock(ApplicationConfig.class);
+        testedObject = new VnfmHelper(applicationConfigMock);
+    }
+
+    @Test
+    public void createVnfInstance() {
+        // when
+        VnfInstance result = testedObject.createVnfInstance(createVnfRequest(), VNF_INSTANCE_ID);
+        // then
+        assertThat(result.getId()).isEqualTo(VNF_INSTANCE_ID);
+        assertThat(result.getVnfdId()).isEqualTo(VNFD_ID);
+        assertThat(result.getVnfInstanceName()).isEqualTo(VNF_INSTANCE_NAME);
+        assertThat(result.getVnfInstanceDescription()).isEqualTo(VNF_INSTANCE_DESCRIPTION);
+        assertThat(result.getVnfProvider()).isEqualTo(Constant.VNF_PROVIDER);
+        assertThat(result.getVnfProductName()).isEqualTo(Constant.VNF_PROVIDER_NAME);
+    }
+
+    @Test
+    public void getInlineResponse201() throws Exception {
+        // given
+        when(applicationConfigMock.getBaseUrl()).thenReturn(APPLICATION_CONFIG_BASE_URL);
+        // when
+        InlineResponse201 result = testedObject.getInlineResponse201(prepareVnfInstance());
+        // then
+        assertThat(result.getVnfdVersion()).isEqualTo(Constant.VNFD_VERSION);
+        assertThat(result.getVnfSoftwareVersion()).isEqualTo(Constant.VNF_SOFTWARE_VERSION);
+        assertThat(result.getInstantiationState()).isEqualByComparingTo(InstantiationStateEnum.NOT_INSTANTIATED);
+        verifyAdditionalPropertyInlineResponse201(result);
+    }
+
+    private CreateVnfRequest createVnfRequest() {
+        CreateVnfRequest createVnfRequest = new CreateVnfRequest();
+        createVnfRequest.setVnfdId(VNFD_ID);
+        createVnfRequest.setVnfInstanceName(VNF_INSTANCE_NAME);
+        createVnfRequest.setVnfInstanceDescription(VNF_INSTANCE_DESCRIPTION);
+        return createVnfRequest;
+    }
+
+    private VnfInstance prepareVnfInstance() {
+        VnfInstance vnfInstance = new VnfInstance();
+        vnfInstance.setId(VNF_INSTANCE_ID);
+        return vnfInstance;
+    }
+
+    private void verifyAdditionalPropertyInlineResponse201(InlineResponse201 result) {
+        InlineResponse201LinksSelf expectedVnfInstancesLinksSelf = new InlineResponse201LinksSelf();
+        expectedVnfInstancesLinksSelf
+                .setHref(APPLICATION_CONFIG_BASE_URL + "/vnflcm/v1/vnf_instances/" + VNF_INSTANCE_ID);
+        assertThat(result.getLinks().getSelf()).isEqualTo(expectedVnfInstancesLinksSelf);
+
+        InlineResponse201LinksSelf expectedVnfInstancesLinksSelfInstantiate = new InlineResponse201LinksSelf();
+        expectedVnfInstancesLinksSelfInstantiate.setHref(
+                (APPLICATION_CONFIG_BASE_URL + "/vnflcm/v1/vnf_instances/" + VNF_INSTANCE_ID + "/instantiate"));
+        assertThat(result.getLinks().getInstantiate()).isEqualTo(expectedVnfInstancesLinksSelfInstantiate);
+    }
+
+}
