diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/MsoNetworkAdapter.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/MsoNetworkAdapter.java
index 27829a6..6e2fcb0 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/MsoNetworkAdapter.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/MsoNetworkAdapter.java
@@ -55,9 +55,12 @@
 							@WebParam(name="networkName") @XmlElement(required=true) String networkName,
 							@WebParam(name="physicalNetworkName") String physicalNetworkName,
 							@WebParam(name="vlans") List<Integer> vlans,
+							@WebParam(name="shared") String shared,
+							@WebParam(name="external") String external,
 							@WebParam(name="failIfExists") Boolean failIfExists,
 							@WebParam(name="backout") Boolean backout,
 							@WebParam(name="subnets") List<Subnet> subnets,
+							@WebParam(name="networkParams") Map<String, String> networkParams,
 							@WebParam(name="request") MsoRequest msoRequest,
 							@WebParam(name="networkId", mode=Mode.OUT) Holder<String> networkId,
 							@WebParam(name="neutronNetworkId", mode=Mode.OUT) Holder<String> neutronNetworkId,
@@ -77,6 +80,7 @@
 							@WebParam(name="failIfExists") Boolean failIfExists,
 							@WebParam(name="backout") Boolean backout,
 							@WebParam(name="subnets") List<Subnet> subnets,
+							@WebParam(name="networkParams") Map<String, String> networkParams,
 							@WebParam(name="policyFqdns") List<String> policyFqdns,
 							@WebParam(name="routeTableFqdns") List<String> routeTableFqdns,
 							@WebParam(name="request") MsoRequest msoRequest,
@@ -100,7 +104,10 @@
 							@WebParam(name="networkName") @XmlElement(required=true) String networkName,
 							@WebParam(name="physicalNetworkName") @XmlElement(required=true) String physicalNetworkName,
 							@WebParam(name="vlans") @XmlElement(required=true) List<Integer> vlans,
+							@WebParam(name="shared") String shared,
+							@WebParam(name="external") String external,
 							@WebParam(name="subnets") List<Subnet> subnets,
+							@WebParam(name="networkParams") Map<String,String> networkParams,
 							@WebParam(name="request") MsoRequest msoRequest,
 							@WebParam(name="subnetIdMap", mode=Mode.OUT) Holder<Map<String, String>> subnetIdMap,
 							@WebParam(name="rollback", mode=Mode.OUT) Holder<NetworkRollback> rollback )
@@ -117,6 +124,7 @@
 							@WebParam(name="shared") String shared,
 							@WebParam(name="external") String external,
 							@WebParam(name="subnets") List<Subnet> subnets,
+							@WebParam(name="networkParams") Map<String,String> networkParams,
 							@WebParam(name="policyFqdns") List<String> policyFqdns,
 							@WebParam(name="routeTableFqdns") List<String> routeTableFqdns,
 							@WebParam(name="request") MsoRequest msoRequest,
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/MsoNetworkAdapterAsync.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/MsoNetworkAdapterAsync.java
index 99f590b..a85da58 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/MsoNetworkAdapterAsync.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/MsoNetworkAdapterAsync.java
@@ -22,6 +22,7 @@
 
 
 import java.util.List;
+import java.util.Map;
 
 import javax.jws.Oneway;
 import javax.jws.WebMethod;
@@ -56,6 +57,7 @@
 							@WebParam(name="failIfExists") Boolean failIfExists,
 							@WebParam(name="backout") Boolean backout,
 							@WebParam(name="subnets") List<Subnet> subnets,
+							@WebParam(name="networkParams") Map<String, String> networkParams,
 							@WebParam(name="messageId") @XmlElement(required=true) String messageId,
 							@WebParam(name="request") MsoRequest msoRequest,
 							@WebParam(name="notificationUrl") @XmlElement(required=true) String notificationUrl );
@@ -71,6 +73,7 @@
 						@WebParam(name="physicalNetworkName") @XmlElement(required=true) String physicalNetworkName,
 						@WebParam(name="vlans") @XmlElement(required=true) List<Integer> vlans,
 						@WebParam(name="subnets") List<Subnet> subnets,
+						@WebParam(name="networkParams") Map<String, String> networkParams,
 						@WebParam(name="messageId") @XmlElement(required=true) String messageId,
 						@WebParam(name="request") MsoRequest msoRequest,
 						@WebParam(name="notificationUrl") @XmlElement(required=true) String notificationUrl );
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/MsoNetworkAdapterAsyncImpl.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/MsoNetworkAdapterAsyncImpl.java
index 608f39a..8181714 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/MsoNetworkAdapterAsyncImpl.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/MsoNetworkAdapterAsyncImpl.java
@@ -122,6 +122,7 @@
                                 Boolean failIfExists,
                                 Boolean backout,
                                 List <Subnet> subnets,
+                                Map<String,String> networkParams,
                                 String messageId,
                                 MsoRequest msoRequest,
                                 String notificationUrl) {
@@ -145,6 +146,16 @@
         Holder <String> neutronNetworkId = new Holder <> ();
         Holder <NetworkRollback> networkRollback = new Holder <> ();
         Holder <Map <String, String>> subnetIdMap = new Holder <> ();
+        
+        HashMap<String, String> params = (HashMap<String,String>) networkParams;
+        if (params == null)
+        	params = new HashMap<String,String>();
+        String shared = null;
+        String external = null;
+        if (params.containsKey("shared"))
+        	shared = params.get("shared");
+        if (params.containsKey("external"))
+        	external = params.get("external");
 
         try {
             networkAdapter.createNetwork (cloudSiteId,
@@ -154,9 +165,12 @@
                                           networkName,
                                           physicalNetworkName,
                                           vlans,
+                                          shared,
+                                          external,
                                           failIfExists,
                                           backout,
                                           subnets,
+                                          params,
                                           msoRequest,
                                           networkId,
                                           neutronNetworkId,
@@ -239,6 +253,7 @@
                                 String physicalNetworkName,
                                 List <Integer> vlans,
                                 List <Subnet> subnets,
+                                Map <String,String> networkParams,
                                 String messageId,
                                 MsoRequest msoRequest,
                                 String notificationUrl) {
@@ -261,6 +276,16 @@
         // Synchronous Web Service Outputs
         Holder <NetworkRollback> networkRollback = new Holder <> ();
         Holder <Map <String, String>> subnetIdMap = new Holder <> ();
+        
+        HashMap<String, String> params = (HashMap<String,String>) networkParams;
+        if (params == null)
+        	params = new HashMap<String,String>();
+        String shared = null;
+        String external = null;
+        if (params.containsKey("shared"))
+        	shared = params.get("shared");
+        if (params.containsKey("external"))
+        	external = params.get("external");
 
         try {
             networkAdapter.updateNetwork (cloudSiteId,
@@ -271,7 +296,10 @@
                                           networkName,
                                           physicalNetworkName,
                                           vlans,
+                                          shared,
+                                          external,
                                           subnets,
+                                          params,
                                           msoRequest,
                                           subnetIdMap,
                                           networkRollback);
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/MsoNetworkAdapterImpl.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/MsoNetworkAdapterImpl.java
index 45285d0..d250561 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/MsoNetworkAdapterImpl.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/MsoNetworkAdapterImpl.java
@@ -138,9 +138,12 @@
                                String networkName,
                                String physicalNetworkName,
                                List <Integer> vlans,
+                               String shared,
+                               String external,
                                Boolean failIfExists,
                                Boolean backout,
                                List <Subnet> subnets,
+                               Map<String, String> networkParams,
                                MsoRequest msoRequest,
                                Holder <String> networkId,
                                Holder <String> neutronNetworkId,
@@ -155,8 +158,8 @@
                        physicalNetworkName,
                        vlans,
                        null,
-                       null,
-                       null,
+                       shared,
+                       external,
                        failIfExists,
                        backout,
                        subnets,
@@ -182,6 +185,7 @@
                                        Boolean failIfExists,
                                        Boolean backout,
                                        List <Subnet> subnets,
+                                       Map<String, String> networkParams,
                                        List <String> policyFqdns,
                                        List<String> routeTableFqdns,
                                        MsoRequest msoRequest,
@@ -660,7 +664,10 @@
                                String networkName,
                                String physicalNetworkName,
                                List <Integer> vlans,
+                               String shared,
+                               String external,
                                List <Subnet> subnets,
+                               Map<String,String> networkParams,
                                MsoRequest msoRequest,
                                Holder <Map <String, String>> subnetIdMap,
                                Holder <NetworkRollback> rollback) throws NetworkException {
@@ -673,8 +680,8 @@
                        physicalNetworkName,
                        vlans,
                        null,
-                       null,
-                       null,
+                       shared,
+                       external,
                        subnets,
                        null,
                        null,
@@ -695,6 +702,7 @@
                                        String shared,
                                        String external,
                                        List <Subnet> subnets,
+                                       Map<String, String> networkParams,
                                        List <String> policyFqdns,
                                        List<String> routeTableFqdns,
                                        MsoRequest msoRequest,
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/NetworkAdapterRest.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/NetworkAdapterRest.java
index effe7a8..8d08b3b 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/NetworkAdapterRest.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/NetworkAdapterRest.java
@@ -168,6 +168,13 @@
 				Holder<String> networkFqdn = new Holder<>();
 				Holder<Map<String, String>> subnetIdMap = new Holder<>();
 				Holder<NetworkRollback> rollback = new Holder<>();
+				
+				HashMap<String, String> params = (HashMap<String, String>) req.getNetworkParams();
+				if (params == null) {
+					params = new HashMap<String,String>();
+				}
+				String shared = null;
+				String external = null;
 
 				String cloudsite = req.getCloudSiteId();
 				if (cloudsite != null && cloudsite.equals(TESTING_KEYWORD)) {
@@ -186,6 +193,20 @@
 						ctn = new ContrailNetwork();
 						req.setContrailNetwork(ctn);
 					}
+					if (params.containsKey("shared")) {
+						shared = params.get("shared");
+					} else {
+						if (ctn.getShared() != null) {
+							shared = ctn.getShared();
+						}
+					}
+					if (params.containsKey("external")) {
+						external = params.get("external");
+					} else {
+						if (ctn.getExternal() != null) {
+							external = ctn.getExternal();
+						}
+					}
 					adapter.createNetworkContrail(
 						req.getCloudSiteId(),
 						req.getTenantId(),
@@ -193,11 +214,12 @@
 						req.getModelCustomizationUuid(),
 						req.getNetworkName(),
                         req.getContrailNetwork().getRouteTargets(),
-                        req.getContrailNetwork().getShared(),
-                        req.getContrailNetwork().getExternal(),
+                        shared,
+                        external,
                         req.getFailIfExists(),
                         req.getBackout(),
                         req.getSubnets(),
+                        params,
                         req.getContrailNetwork().getPolicyFqdns(),
                         req.getContrailNetwork().getRouteTableFqdns(),
               			req.getMsoRequest(),
@@ -212,6 +234,10 @@
 						pvn = new ProviderVlanNetwork();
 						req.setProviderVlanNetwork(pvn);
 					}
+					if (params.containsKey("shared"))
+						shared = params.get("shared");
+					if (params.containsKey("external"))
+						external = params.get("external");
 					adapter.createNetwork(
 						req.getCloudSiteId(),
 						req.getTenantId(),
@@ -220,9 +246,12 @@
 						req.getNetworkName(),
 						req.getProviderVlanNetwork().getPhysicalNetworkName(),
 						req.getProviderVlanNetwork().getVlans(),
+						shared,
+						external,
                         req.getFailIfExists(),
                         req.getBackout(),
                         req.getSubnets(),
+                        params,
                         req.getMsoRequest(),
     					networkId,
     					neutronNetworkId,
@@ -593,6 +622,12 @@
 			try {
 				Holder<Map<String, String>> subnetIdMap = new Holder<>();
 				Holder<NetworkRollback> rollback = new Holder<> ();
+				HashMap<String, String> params = (HashMap<String, String>) req.getNetworkParams();
+				if (params == null) {
+					params = new HashMap<String,String>();
+				}
+				String shared = null;
+				String external = null;
 
 				if (req.getCloudSiteId().equals(TESTING_KEYWORD)) {
 					subnetIdMap.value = testMap();
@@ -607,6 +642,20 @@
 						ctn = new ContrailNetwork();
 						req.setContrailNetwork(ctn);
 					}
+					if (params.containsKey("shared")) {
+						shared = params.get("shared");
+					} else {
+						if (ctn.getShared() != null) {
+							shared = ctn.getShared();
+						}
+					}
+					if (params.containsKey("external")) {
+						external = params.get("external");
+					} else {
+						if (ctn.getExternal() != null) {
+							external = ctn.getExternal();
+						}
+					}
 					adapter.updateNetworkContrail(
 						req.getCloudSiteId(),
 						req.getTenantId(),
@@ -615,9 +664,10 @@
 						req.getNetworkStackId(),
 						req.getNetworkName(),
 						req.getContrailNetwork().getRouteTargets(),
-	                    req.getContrailNetwork().getShared(),
-	                    req.getContrailNetwork().getExternal(),
+						shared,
+						external,
 	                    req.getSubnets(),
+	                    params,
 	                    req.getContrailNetwork().getPolicyFqdns(),
 	                    req.getContrailNetwork().getRouteTableFqdns(),
 	                    req.getMsoRequest(),
@@ -629,6 +679,12 @@
 						pvn = new ProviderVlanNetwork();
 						req.setProviderVlanNetwork(pvn);
 					}
+					if (params.containsKey("shared")) {
+						shared = params.get("shared");
+					} 
+					if (params.containsKey("external")) {
+						external = params.get("external");
+					} 
 					adapter.updateNetwork(
 						req.getCloudSiteId(),
 						req.getTenantId(),
@@ -638,7 +694,10 @@
 						req.getNetworkName(),
 						req.getProviderVlanNetwork().getPhysicalNetworkName(),
 						req.getProviderVlanNetwork().getVlans(),
+						shared,
+						external,
 						req.getSubnets(),
+						params,
 						req.getMsoRequest(),
 						subnetIdMap,
 						rollback);
diff --git a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/network/MsoNetworkAdapterAsyncImplTest.java b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/network/MsoNetworkAdapterAsyncImplTest.java
index 094d308..f8dcddd 100644
--- a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/network/MsoNetworkAdapterAsyncImplTest.java
+++ b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/network/MsoNetworkAdapterAsyncImplTest.java
@@ -25,10 +25,12 @@
 import org.onap.so.adapters.vnf.BaseRestTestUtils;
 import org.onap.so.entity.MsoRequest;
 import org.onap.so.openstack.beans.NetworkRollback;
+import org.onap.so.openstack.beans.Subnet;
 import org.springframework.beans.factory.annotation.Autowired;
 
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.HashMap;
 
 import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
 import static com.github.tomakehurst.wiremock.client.WireMock.containing;
@@ -184,8 +186,11 @@
 								"   </soapenv:Body>\n" +
 								"</soapenv:Envelope>")
 						.withStatus(HttpStatus.SC_OK)));
+		HashMap<String,String> networkParams = new HashMap<String,String>();
+		networkParams.put("shared", "true");
+		networkParams.put("external", "false");
 		impl.updateNetworkA("mtn13", "tenantId", "networkType", "3bdbb104-476c-483e-9f8b-c095b3d3068c", "dvspg-VCE_VPE-mtjnj40avbc",
-				"dvspg-VCE_VPE-mtjnj40avbc", "physicalNetworkName", new ArrayList<>(), new ArrayList<>(), "messageId",
+				"dvspg-VCE_VPE-mtjnj40avbc", "physicalNetworkName", new ArrayList<>(), new ArrayList<Subnet>(), networkParams, "messageId",
 				new MsoRequest(), "http://localhost:"+wireMockPort+"/notificationUrl");
 	}
 
@@ -199,14 +204,17 @@
 		mockOpenStackGetStackCreated_200("OpenstackResponse_Stack_Created.json", "dvspg-VCE_VPE-mtjnj40avbc");
 		mockOpenStackGetStackDeleteOrUpdateComplete_200("OpenstackResponse_Stack_UpdateComplete.json");
 		mockOpenStackPutPublicUrlStackByNameAndID_NETWORK2_200();
+		HashMap<String,String> networkParams = new HashMap<String,String>();
+		networkParams.put("shared", "true");
+		networkParams.put("external", "false");
 		impl.updateNetworkA("mtn13", "tenantId", "networkType", "3bdbb104-476c-483e-9f8b-c095b3d3068c", "dvspg-VCE_VPE-mtjnj40avbc",
-				"dvspg-VCE_VPE-mtjnj40avbc", "physicalNetworkName", new ArrayList<>(), new ArrayList<>(), "messageId",
+				"dvspg-VCE_VPE-mtjnj40avbc", "physicalNetworkName", new ArrayList<>(), new ArrayList<>(), networkParams, "messageId",
 				new MsoRequest(), "http://localhost:"+wireMockPort+"/notificationUrl");	}
 
 	@Test
 	public void updateNetworkATest_NetworkException() {
 		impl.updateNetworkA("cloudSiteId", "tenantId", "networkType", "3bdbb104-476c-483e-9f8b-c095b3d3068c", "networkId",
-				"dvspg-VCE_VPE-mtjnj40avbc", "physicalNetworkName", new ArrayList<>(), new ArrayList<>(), "messageId",
+				"dvspg-VCE_VPE-mtjnj40avbc", "physicalNetworkName", new ArrayList<>(), new ArrayList<>(), new HashMap<String,String>(), "messageId",
 				new MsoRequest(), "http://localhost:"+wireMockPort+"/notificationUrl");
 	}
 
@@ -237,8 +245,10 @@
 						.withStatus(HttpStatus.SC_OK)));
 		mockOpenStackGetStackCreatedVUSP_200();
 		mockOpenStackPostStacks_200();
+		mockOpenStackPostStacks_200();
+		HashMap<String,String> networkParams = new HashMap<String,String>();
 		impl.createNetworkA("mtn13", "tenantId", "networkType", "3bdbb104-476c-483e-9f8b-c095b3d3068c", "vUSP-23804-T-01-dpa2b_EVUSP-CORE-VIF-TSIG0_net_0",
-				"physicalNetworkName", new ArrayList<>(), false, false, new ArrayList<>(), "messageId",
+				"physicalNetworkName", new ArrayList<>(), false, false, new ArrayList<>(), networkParams, "messageId",
 				new MsoRequest(), "http://localhost:"+wireMockPort+"/notificationUrl");
 	}
 
@@ -251,15 +261,18 @@
 						.withStatus(HttpStatus.SC_OK)));
 		mockOpenStackGetStackCreatedVUSP_200();
 		mockOpenStackPostStacks_200();
+		HashMap<String,String> networkParams = new HashMap<String,String>();
+		networkParams.put("shared", "true");
+		networkParams.put("external", "false");
 		impl.createNetworkA("mtn13", "tenantId", "networkType", "3bdbb104-476c-483e-9f8b-c095b3d3068c", "vUSP-23804-T-01-dpa2b_EVUSP-CORE-VIF-TSIG0_net_0",
-				"physicalNetworkName", new ArrayList<>(), false, false, new ArrayList<>(), "messageId",
+				"physicalNetworkName", new ArrayList<>(), false, false, new ArrayList<>(), networkParams, "messageId",
 				new MsoRequest(), "http://localhost:"+wireMockPort+"/notificationUrl");
 	}
 
 	@Test
 	public void createNetworkATest_NetworkException()  {
 		impl.createNetworkA("mtn13", "tenantId", "networkType", "3bdbb104-476c-483e-9f8b-c095b3d3068c", "vUSP-23804-T-01-dpa2b_EVUSP-CORE-VIF-TSIG0_net_0",
-				"physicalNetworkName", new ArrayList<>(), false, false, new ArrayList<>(), "messageId",
+				"physicalNetworkName", new ArrayList<>(), false, false, new ArrayList<>(), new HashMap<String,String>(), "messageId",
 				new MsoRequest(), "http://localhost:"+wireMockPort+"/notificationUrl");
 	}
 }
diff --git a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/network/NetworkAdapterRestTest.java b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/network/NetworkAdapterRestTest.java
index 6123415..3910d9e 100644
--- a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/network/NetworkAdapterRestTest.java
+++ b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/network/NetworkAdapterRestTest.java
@@ -88,7 +88,7 @@
 		request.setSkipAAI(true);
 		request.setFailIfExists(false);
 		MsoRequest msoReq = new MsoRequest();
-		NetworkTechnology networkTechnology = NetworkTechnology.CONTRAIL;
+		String networkTechnology = "CONTRAIL";
 
 		msoReq.setRequestId(MSO_REQUEST_ID);
 		msoReq.setServiceInstanceId(MSO_SERVICE_INSTANCE_ID);
@@ -296,6 +296,33 @@
 		assertThat(response.getBody(), sameBeanAs(expectedResponse));
 	}
 	
+	@Test
+	public void testCreateNetworkNC_Shared_JSON() throws JSONException, JsonParseException, JsonMappingException, IOException {
+		
+		mockOpenStackResponseAccess(wireMockPort);
+
+		mockOpenStackPostPublicUrlWithBodyFile_200();
+
+		mockOpenStackGetStackCreatedAppC_200();
+		
+		mockOpenStackGetStackAppC_404();
+		
+		headers.add("Content-Type", MediaType.APPLICATION_JSON);
+		headers.add("Accept", MediaType.APPLICATION_JSON);
+		
+		String request = readJsonFileAsString("src/test/resources/CreateNetwork4.json");
+		HttpEntity<String> entity = new HttpEntity<String>(request, headers);
+
+		ResponseEntity<CreateNetworkResponse> response = restTemplate.exchange(
+				createURLWithPort("/services/rest/v1/networks"), HttpMethod.POST, entity, CreateNetworkResponse.class);
+
+		CreateNetworkResponse expectedResponse = jettisonTypeObjectMapper.getMapper().readValue(
+				new File("src/test/resources/__files/CreateNetworkResponse4.json"), CreateNetworkResponse.class);
+		
+		assertEquals(Response.Status.OK.getStatusCode(), response.getStatusCode().value());
+		assertThat(response.getBody(), sameBeanAs(expectedResponse));
+	}
+	
 	@Override
 	protected String readJsonFileAsString(String fileLocation) throws JsonParseException, JsonMappingException, IOException{
 		return new String(Files.readAllBytes(Paths.get(fileLocation)));
diff --git a/adapters/mso-openstack-adapters/src/test/resources/CreateNetwork4.json b/adapters/mso-openstack-adapters/src/test/resources/CreateNetwork4.json
new file mode 100644
index 0000000..3a116a6
--- /dev/null
+++ b/adapters/mso-openstack-adapters/src/test/resources/CreateNetwork4.json
@@ -0,0 +1,46 @@
+{
+	"createNetworkRequest": {
+		"skipAAI": true,
+		"messageId": "c4c44af4-4310-4d8b-a1eb-656fc99fe709",
+		"synchronous": true,
+		"cloudSiteId": "mtn13",
+		"tenantId": "ba38bc24a2ef4fb2ad2810c894f1938f",
+		"networkId": "da886914-efb2-4917-b335-c8381528d90b",
+		"networkName": "APP-C-24595-T-IST-04AShared_untrusted_vDBE_net_3",
+		"networkType": "CONTRAIL30_BASIC",
+		"modelCustomizationUuid": "3bdbb104-ffff-483e-9f8b-c095b3d30844",
+		"networkTechnology": "NEUTRON",
+		"subnets": [{
+			"subnetName": "APP-C-24595-T-IST-04AShared_untrusted_vDBE_net_3_subnet_1",
+			"subnetId": "da60501d-9aa8-48d2-99b7-26644fa01093",
+			"cidr": "20",
+			"gatewayIp": "",
+			"ipVersion": "4",
+			"enableDHCP": false,
+			"addrFromStart": true,
+			"hostRoutes": []
+		}],
+		"providerVlanNetwork": {
+			"physicalNetworkName": "FALSE",
+			"vlans": []
+		},
+		"contrailNetwork": {
+			"shared": "false",
+			"external": "false",
+			"routeTargets": [],
+			"policyFqdns": [],
+			"routeTableFqdns": []
+		},
+		"failIfExists": true,
+		"backout": false,
+		"networkParams": {
+			"shared": "true",
+			"external": "false"
+		},
+		"msoRequest": {
+			"requestId": "5349f419-b3e9-4546-b3a1-094bd568d6b7",
+			"serviceInstanceId": "cf965caf-a003-4189-abf9-e0ed77056dd6"
+		},
+		"contrailRequest": false
+	}
+}
\ No newline at end of file
diff --git a/adapters/mso-openstack-adapters/src/test/resources/__files/CreateNetworkResponse4.json b/adapters/mso-openstack-adapters/src/test/resources/__files/CreateNetworkResponse4.json
new file mode 100644
index 0000000..2e5517c
--- /dev/null
+++ b/adapters/mso-openstack-adapters/src/test/resources/__files/CreateNetworkResponse4.json
@@ -0,0 +1,25 @@
+{
+	"createNetworkResponse": {
+		"networkId": "da886914-efb2-4917-b335-c8381528d90b",
+		"neutronNetworkId": null,
+		"networkStackId": "stackname/stackId",
+		"networkFqdn": null,
+		"networkCreated": true,
+		"subnetMap": {
+
+		},
+		"rollback": {
+			"networkStackId": "stackname/stackId",
+			"tenantId": "ba38bc24a2ef4fb2ad2810c894f1938f",
+			"cloudId": "mtn13",
+			"networkType": "CONTRAIL30_BASIC",
+			"modelCustomizationUuid": "3bdbb104-ffff-483e-9f8b-c095b3d30844",
+			"networkCreated": true,
+			"msoRequest": {
+				"requestId": "5349f419-b3e9-4546-b3a1-094bd568d6b7",
+				"serviceInstanceId": "cf965caf-a003-4189-abf9-e0ed77056dd6"
+			}
+		},
+		"messageId": "c4c44af4-4310-4d8b-a1eb-656fc99fe709"
+	}
+}
\ No newline at end of file
