Added vfModule scale out endpoint and validation

Issue-ID: SO-764
Change-Id: I6fc983ed6bc9d9c410406db1f2355c27e201b4f4
Signed-off-by: Brittany Plummer (bp896r) <bp896r@att.com>
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/CloudConfiguration/ScaleOutNoCloudConfig.json b/mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/CloudConfiguration/ScaleOutNoCloudConfig.json
new file mode 100644
index 0000000..1cc9150
--- /dev/null
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/CloudConfiguration/ScaleOutNoCloudConfig.json
@@ -0,0 +1,50 @@
+{
+	"requestDetails": {
+		"modelInfo": {
+			"modelType": "vfModule",
+			"modelName": "vSAMP10aDEV::base::module-0",
+			"modelVersionId": "20c4431c-246d-11e7-93ae-92361f002671",
+			"modelInvariantId": "78ca26d0-246d-11e7-93ae-92361f002671",
+			"modelVersion": "2",
+			"modelCustomizationId": "cb82ffd8-252a-11e7-93ae-92361f002671"
+		},
+		"requestInfo": {
+			"instanceName": "MSO-DEV-VF-1806BB-vSAMP10a-base-it2-1",
+			"source": "VID",
+			"suppressRollback": false,
+			"requestorId": "xxxxxx"
+		},
+		"relatedInstanceList": [
+		{
+			"relatedInstance": {
+				"instanceId": "7a88cbeb-0ec8-4765-a271-4f9e90c3da7b",
+				"modelInfo": {
+					"modelType": "service",
+					"modelName": "MSOTADevInfra_vSAMP10a_Service",
+					"modelVersionId": "5df8b6de-2083-11e7-93ae-92361f002671",
+					"modelInvariantId": "9647dfc4-2083-11e7-93ae-92361f002671",
+					"modelVersion": "1.0"
+				}
+			}
+		},
+		{
+			"relatedInstance": {
+				"instanceId": "cbba721b-4803-4df7-9347-307c9a955426",
+				"modelInfo": {
+					"modelType": "vnf",
+					"modelName": "vSAMP10a",
+					"modelVersionId": "d40be095-940e-4738-a72a-59aa9eb5671e",
+					"modelInvariantId": "2fff5b20-214b-11e7-93ae-92361f002671",
+					"modelVersion": "1.0",
+					"modelCustomizationId": "68dc9a92-214c-11e7-93ae-92361f002671",
+					"modelCustomizationName": "vSAMP10a 1"
+				}
+			}
+		}
+		],
+		"requestParameters": {
+			"usePreload": true,
+			"userParams": []
+		}
+	}
+}
\ No newline at end of file
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/ConfigurationParameters/NoConfigurationParameters.json b/mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/ConfigurationParameters/NoConfigurationParameters.json
new file mode 100644
index 0000000..2f3f42e
--- /dev/null
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/ConfigurationParameters/NoConfigurationParameters.json
@@ -0,0 +1,54 @@
+{
+	"requestDetails": {
+		"modelInfo": {
+			"modelType": "vfModule",
+			"modelName": "vSAMP10aDEV::base::module-0",
+			"modelVersionId": "20c4431c-246d-11e7-93ae-92361f002671",
+			"modelInvariantId": "78ca26d0-246d-11e7-93ae-92361f002671",
+			"modelVersion": "2",
+			"modelCustomizationId": "cb82ffd8-252a-11e7-93ae-92361f002671"
+		},
+		"cloudConfiguration": {
+			"lcpCloudRegionId": "mtn6",
+			"tenantId": "0422ffb57ba042c0800a29dc85ca70f8"
+		},
+		"requestInfo": {
+			"instanceName": "MSO-DEV-VF-1806BB-vSAMP10a-base-it2-1",
+			"source": "VID",
+			"suppressRollback": false,
+			"requestorId": "xxxxxx"
+		},
+		"relatedInstanceList": [
+		{
+			"relatedInstance": {
+				"instanceId": "ff305d54-75b4-431b-adb2-eb6b9e5ff000",
+				"modelInfo": {
+					"modelType": "service",
+					"modelName": "MSOTADevInfra_vSAMP10a_Service",
+					"modelVersionId": "5df8b6de-2083-11e7-93ae-92361f002671",
+					"modelInvariantId": "9647dfc4-2083-11e7-93ae-92361f002671",
+					"modelVersion": "1.0"
+				}
+			}
+		},
+		{
+			"relatedInstance": {
+				"instanceId": "ff305d54-75b4-431b-adb2-eb6b9e5ff000",
+				"modelInfo": {
+					"modelType": "vnf",
+					"modelName": "vSAMP10a",
+					"modelVersionId": "d40be095-940e-4738-a72a-59aa9eb5671e",
+					"modelInvariantId": "2fff5b20-214b-11e7-93ae-92361f002671",
+					"modelVersion": "1.0",
+					"modelCustomizationId": "68dc9a92-214c-11e7-93ae-92361f002671",
+					"modelCustomizationName": "vSAMP10a 1"
+				}
+			}
+		}
+		],
+		"requestParameters": {
+			"usePreload": true,
+			"userParams": []
+		}
+	}
+}
\ No newline at end of file
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/ModelInfo/ScaleOutNoModelCustomizationId.json b/mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/ModelInfo/ScaleOutNoModelCustomizationId.json
new file mode 100644
index 0000000..d1220ad
--- /dev/null
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/ModelInfo/ScaleOutNoModelCustomizationId.json
@@ -0,0 +1,53 @@
+{
+	"requestDetails": {
+		"modelInfo": {
+			"modelType": "vfModule",
+			"modelName": "vSAMP10aDEV::base::module-0",
+			"modelVersionId": "20c4431c-246d-11e7-93ae-92361f002671",
+			"modelInvariantId": "78ca26d0-246d-11e7-93ae-92361f002671",
+			"modelVersion": "2"
+		},
+		"cloudConfiguration": {
+			"lcpCloudRegionId": "mtn6",
+			"tenantId": "0422ffb57ba042c0800a29dc85ca70f8"
+		},
+		"requestInfo": {
+			"instanceName": "MSO-DEV-VF-1806BB-vSAMP10a-base-it2-1",
+			"source": "VID",
+			"suppressRollback": false,
+			"requestorId": "xxxxxx"
+		},
+		"relatedInstanceList": [
+		{
+			"relatedInstance": {
+				"instanceId": "7a88cbeb-0ec8-4765-a271-4f9e90c3da7b",
+				"modelInfo": {
+					"modelType": "service",
+					"modelName": "MSOTADevInfra_vSAMP10a_Service",
+					"modelVersionId": "5df8b6de-2083-11e7-93ae-92361f002671",
+					"modelInvariantId": "9647dfc4-2083-11e7-93ae-92361f002671",
+					"modelVersion": "1.0"
+				}
+			}
+		},
+		{
+			"relatedInstance": {
+				"instanceId": "cbba721b-4803-4df7-9347-307c9a955426",
+				"modelInfo": {
+					"modelType": "vnf",
+					"modelName": "vSAMP10a",
+					"modelVersionId": "d40be095-940e-4738-a72a-59aa9eb5671e",
+					"modelInvariantId": "2fff5b20-214b-11e7-93ae-92361f002671",
+					"modelVersion": "1.0",
+					"modelCustomizationId": "68dc9a92-214c-11e7-93ae-92361f002671",
+					"modelCustomizationName": "vSAMP10a 1"
+				}
+			}
+		}
+		],
+		"requestParameters": {
+			"usePreload": true,
+			"userParams": []
+		}
+	}
+}
\ No newline at end of file
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/ModelInfo/ScaleOutNoModelInvariantId.json b/mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/ModelInfo/ScaleOutNoModelInvariantId.json
new file mode 100644
index 0000000..9447250
--- /dev/null
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/ModelInfo/ScaleOutNoModelInvariantId.json
@@ -0,0 +1,53 @@
+{
+	"requestDetails": {
+		"modelInfo": {
+			"modelType": "vfModule",
+			"modelName": "vSAMP10aDEV::base::module-0",
+			"modelVersionId": "20c4431c-246d-11e7-93ae-92361f002671",
+			"modelVersion": "2",
+			"modelCustomizationId": "cb82ffd8-252a-11e7-93ae-92361f002671"
+		},
+		"cloudConfiguration": {
+			"lcpCloudRegionId": "mtn6",
+			"tenantId": "0422ffb57ba042c0800a29dc85ca70f8"
+		},
+		"requestInfo": {
+			"instanceName": "MSO-DEV-VF-1806BB-vSAMP10a-base-it2-1",
+			"source": "VID",
+			"suppressRollback": false,
+			"requestorId": "xxxxxx"
+		},
+		"relatedInstanceList": [
+		{
+			"relatedInstance": {
+				"instanceId": "7a88cbeb-0ec8-4765-a271-4f9e90c3da7b",
+				"modelInfo": {
+					"modelType": "service",
+					"modelName": "MSOTADevInfra_vSAMP10a_Service",
+					"modelVersionId": "5df8b6de-2083-11e7-93ae-92361f002671",
+					"modelInvariantId": "9647dfc4-2083-11e7-93ae-92361f002671",
+					"modelVersion": "1.0"
+				}
+			}
+		},
+		{
+			"relatedInstance": {
+				"instanceId": "cbba721b-4803-4df7-9347-307c9a955426",
+				"modelInfo": {
+					"modelType": "vnf",
+					"modelName": "vSAMP10a",
+					"modelVersionId": "d40be095-940e-4738-a72a-59aa9eb5671e",
+					"modelInvariantId": "2fff5b20-214b-11e7-93ae-92361f002671",
+					"modelVersion": "1.0",
+					"modelCustomizationId": "68dc9a92-214c-11e7-93ae-92361f002671",
+					"modelCustomizationName": "vSAMP10a 1"
+				}
+			}
+		}
+		],
+		"requestParameters": {
+			"usePreload": true,
+			"userParams": []
+		}
+	}
+}
\ No newline at end of file
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/ModelInfo/ScaleOutNoModelName.json b/mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/ModelInfo/ScaleOutNoModelName.json
new file mode 100644
index 0000000..ca60ffc
--- /dev/null
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/ModelInfo/ScaleOutNoModelName.json
@@ -0,0 +1,53 @@
+{
+	"requestDetails": {
+		"modelInfo": {
+			"modelType": "vfModule",
+			"modelVersionId": "20c4431c-246d-11e7-93ae-92361f002671",
+			"modelInvariantId": "78ca26d0-246d-11e7-93ae-92361f002671",
+			"modelVersion": "2",
+			"modelCustomizationId": "cb82ffd8-252a-11e7-93ae-92361f002671"
+		},
+		"cloudConfiguration": {
+			"lcpCloudRegionId": "mtn6",
+			"tenantId": "0422ffb57ba042c0800a29dc85ca70f8"
+		},
+		"requestInfo": {
+			"instanceName": "MSO-DEV-VF-1806BB-vSAMP10a-base-it2-1",
+			"source": "VID",
+			"suppressRollback": false,
+			"requestorId": "xxxxxx"
+		},
+		"relatedInstanceList": [
+		{
+			"relatedInstance": {
+				"instanceId": "7a88cbeb-0ec8-4765-a271-4f9e90c3da7b",
+				"modelInfo": {
+					"modelType": "service",
+					"modelName": "MSOTADevInfra_vSAMP10a_Service",
+					"modelVersionId": "5df8b6de-2083-11e7-93ae-92361f002671",
+					"modelInvariantId": "9647dfc4-2083-11e7-93ae-92361f002671",
+					"modelVersion": "1.0"
+				}
+			}
+		},
+		{
+			"relatedInstance": {
+				"instanceId": "cbba721b-4803-4df7-9347-307c9a955426",
+				"modelInfo": {
+					"modelType": "vnf",
+					"modelName": "vSAMP10a",
+					"modelVersionId": "d40be095-940e-4738-a72a-59aa9eb5671e",
+					"modelInvariantId": "2fff5b20-214b-11e7-93ae-92361f002671",
+					"modelVersion": "1.0",
+					"modelCustomizationId": "68dc9a92-214c-11e7-93ae-92361f002671",
+					"modelCustomizationName": "vSAMP10a 1"
+				}
+			}
+		}
+		],
+		"requestParameters": {
+			"usePreload": true,
+			"userParams": []
+		}
+	}
+}
\ No newline at end of file
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/ModelInfo/ScaleOutNoModelVersion.json b/mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/ModelInfo/ScaleOutNoModelVersion.json
new file mode 100644
index 0000000..b9914d3
--- /dev/null
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/ModelInfo/ScaleOutNoModelVersion.json
@@ -0,0 +1,53 @@
+{
+	"requestDetails": {
+		"modelInfo": {
+			"modelType": "vfModule",
+			"modelName": "vSAMP10aDEV::base::module-0",
+			"modelVersionId": "20c4431c-246d-11e7-93ae-92361f002671",
+			"modelInvariantId": "78ca26d0-246d-11e7-93ae-92361f002671",
+			"modelCustomizationId": "cb82ffd8-252a-11e7-93ae-92361f002671"
+		},
+		"cloudConfiguration": {
+			"lcpCloudRegionId": "mtn6",
+			"tenantId": "0422ffb57ba042c0800a29dc85ca70f8"
+		},
+		"requestInfo": {
+			"instanceName": "MSO-DEV-VF-1806BB-vSAMP10a-base-it2-1",
+			"source": "VID",
+			"suppressRollback": false,
+			"requestorId": "xxxxxx"
+		},
+		"relatedInstanceList": [
+		{
+			"relatedInstance": {
+				"instanceId": "7a88cbeb-0ec8-4765-a271-4f9e90c3da7b",
+				"modelInfo": {
+					"modelType": "service",
+					"modelName": "MSOTADevInfra_vSAMP10a_Service",
+					"modelVersionId": "5df8b6de-2083-11e7-93ae-92361f002671",
+					"modelInvariantId": "9647dfc4-2083-11e7-93ae-92361f002671",
+					"modelVersion": "1.0"
+				}
+			}
+		},
+		{
+			"relatedInstance": {
+				"instanceId": "cbba721b-4803-4df7-9347-307c9a955426",
+				"modelInfo": {
+					"modelType": "vnf",
+					"modelName": "vSAMP10a",
+					"modelVersionId": "d40be095-940e-4738-a72a-59aa9eb5671e",
+					"modelInvariantId": "2fff5b20-214b-11e7-93ae-92361f002671",
+					"modelVersion": "1.0",
+					"modelCustomizationId": "68dc9a92-214c-11e7-93ae-92361f002671",
+					"modelCustomizationName": "vSAMP10a 1"
+				}
+			}
+		}
+		],
+		"requestParameters": {
+			"usePreload": true,
+			"userParams": []
+		}
+	}
+}
\ No newline at end of file
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/ModelInfo/ScaleOutNoModelVersionId.json b/mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/ModelInfo/ScaleOutNoModelVersionId.json
new file mode 100644
index 0000000..b4afcda
--- /dev/null
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/ModelInfo/ScaleOutNoModelVersionId.json
@@ -0,0 +1,53 @@
+{
+	"requestDetails": {
+		"modelInfo": {
+			"modelType": "vfModule",
+			"modelName": "vSAMP10aDEV::base::module-0",
+			"modelInvariantId": "78ca26d0-246d-11e7-93ae-92361f002671",
+			"modelVersion": "2",
+			"modelCustomizationId": "cb82ffd8-252a-11e7-93ae-92361f002671"
+		},
+		"cloudConfiguration": {
+			"lcpCloudRegionId": "mtn6",
+			"tenantId": "0422ffb57ba042c0800a29dc85ca70f8"
+		},
+		"requestInfo": {
+			"instanceName": "MSO-DEV-VF-1806BB-vSAMP10a-base-it2-1",
+			"source": "VID",
+			"suppressRollback": false,
+			"requestorId": "xxxxxx"
+		},
+		"relatedInstanceList": [
+		{
+			"relatedInstance": {
+				"instanceId": "7a88cbeb-0ec8-4765-a271-4f9e90c3da7b",
+				"modelInfo": {
+					"modelType": "service",
+					"modelName": "MSOTADevInfra_vSAMP10a_Service",
+					"modelVersionId": "5df8b6de-2083-11e7-93ae-92361f002671",
+					"modelInvariantId": "9647dfc4-2083-11e7-93ae-92361f002671",
+					"modelVersion": "1.0"
+				}
+			}
+		},
+		{
+			"relatedInstance": {
+				"instanceId": "cbba721b-4803-4df7-9347-307c9a955426",
+				"modelInfo": {
+					"modelType": "vnf",
+					"modelName": "vSAMP10a",
+					"modelVersionId": "d40be095-940e-4738-a72a-59aa9eb5671e",
+					"modelInvariantId": "2fff5b20-214b-11e7-93ae-92361f002671",
+					"modelVersion": "1.0",
+					"modelCustomizationId": "68dc9a92-214c-11e7-93ae-92361f002671",
+					"modelCustomizationName": "vSAMP10a 1"
+				}
+			}
+		}
+		],
+		"requestParameters": {
+			"usePreload": true,
+			"userParams": []
+		}
+	}
+}
\ No newline at end of file
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/ModelInfo/ScaleOutNoModelVersionVersion.json b/mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/ModelInfo/ScaleOutNoModelVersionVersion.json
new file mode 100644
index 0000000..b9914d3
--- /dev/null
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/ModelInfo/ScaleOutNoModelVersionVersion.json
@@ -0,0 +1,53 @@
+{
+	"requestDetails": {
+		"modelInfo": {
+			"modelType": "vfModule",
+			"modelName": "vSAMP10aDEV::base::module-0",
+			"modelVersionId": "20c4431c-246d-11e7-93ae-92361f002671",
+			"modelInvariantId": "78ca26d0-246d-11e7-93ae-92361f002671",
+			"modelCustomizationId": "cb82ffd8-252a-11e7-93ae-92361f002671"
+		},
+		"cloudConfiguration": {
+			"lcpCloudRegionId": "mtn6",
+			"tenantId": "0422ffb57ba042c0800a29dc85ca70f8"
+		},
+		"requestInfo": {
+			"instanceName": "MSO-DEV-VF-1806BB-vSAMP10a-base-it2-1",
+			"source": "VID",
+			"suppressRollback": false,
+			"requestorId": "xxxxxx"
+		},
+		"relatedInstanceList": [
+		{
+			"relatedInstance": {
+				"instanceId": "7a88cbeb-0ec8-4765-a271-4f9e90c3da7b",
+				"modelInfo": {
+					"modelType": "service",
+					"modelName": "MSOTADevInfra_vSAMP10a_Service",
+					"modelVersionId": "5df8b6de-2083-11e7-93ae-92361f002671",
+					"modelInvariantId": "9647dfc4-2083-11e7-93ae-92361f002671",
+					"modelVersion": "1.0"
+				}
+			}
+		},
+		{
+			"relatedInstance": {
+				"instanceId": "cbba721b-4803-4df7-9347-307c9a955426",
+				"modelInfo": {
+					"modelType": "vnf",
+					"modelName": "vSAMP10a",
+					"modelVersionId": "d40be095-940e-4738-a72a-59aa9eb5671e",
+					"modelInvariantId": "2fff5b20-214b-11e7-93ae-92361f002671",
+					"modelVersion": "1.0",
+					"modelCustomizationId": "68dc9a92-214c-11e7-93ae-92361f002671",
+					"modelCustomizationName": "vSAMP10a 1"
+				}
+			}
+		}
+		],
+		"requestParameters": {
+			"usePreload": true,
+			"userParams": []
+		}
+	}
+}
\ No newline at end of file
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/RelatedInstances/ScaleOutNoRelatedInstances.json b/mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/RelatedInstances/ScaleOutNoRelatedInstances.json
new file mode 100644
index 0000000..47f49a7
--- /dev/null
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/RelatedInstances/ScaleOutNoRelatedInstances.json
@@ -0,0 +1,34 @@
+{
+   "requestDetails":{
+      "modelInfo":{
+         "modelType":"vfModule",
+         "modelInvariantId":"ff5256d2-5a33-55df-13ab-12abad84e7ff",
+         "modelVersionId":"fe6478e5-ea33-3346-ac12-ab121484a3fe",
+         "modelCustomizationId":"cb82ffd8-252a-11e7-93ae-92361f002672",
+         "modelName":"vSAMP12..base..module-0",
+         "modelVersion":"1"
+      },
+      "cloudConfiguration":{
+         "lcpCloudRegionId":"mdt1",
+         "tenantId":"88a6ca3ee0394ade9403f075db23167e"
+      },
+      "requestInfo":{
+         "instanceName":"MSOTEST103a-vSAMP12_base_module-0",
+         "source":"VID",
+         "suppressRollback":true,
+         "requestorId":"xxxxxx"
+      },
+      "requestParameters":{
+         "usePreload":true,
+         "userParams":[
+
+         ]
+      },
+      "configurationParameters":[
+         {
+            "availability-zone":"$.vnf-topology.vnf-resource-assignments.availability-zones.availability-zone[0]",
+            "xtz-123":"$.vnf-topology.vnf-resource-assignments.availability-zones.availability-zone[0]"
+         }
+      ]
+   }
+}
\ No newline at end of file
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/RequestInfo/ScaleOutNoRequestInfo.json b/mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/RequestInfo/ScaleOutNoRequestInfo.json
new file mode 100644
index 0000000..d403cc2
--- /dev/null
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/RequestInfo/ScaleOutNoRequestInfo.json
@@ -0,0 +1,48 @@
+{
+	"requestDetails": {
+		"modelInfo": {
+			"modelType": "vfModule",
+			"modelName": "vSAMP10aDEV::base::module-0",
+			"modelVersionId": "20c4431c-246d-11e7-93ae-92361f002671",
+			"modelInvariantId": "78ca26d0-246d-11e7-93ae-92361f002671",
+			"modelVersion": "2",
+			"modelCustomizationId": "cb82ffd8-252a-11e7-93ae-92361f002671"
+		},
+		"cloudConfiguration": {
+			"lcpCloudRegionId": "mtn6",
+			"tenantId": "0422ffb57ba042c0800a29dc85ca70f8"
+		},
+		"relatedInstanceList": [
+		{
+			"relatedInstance": {
+				"instanceId": "7a88cbeb-0ec8-4765-a271-4f9e90c3da7b",
+				"modelInfo": {
+					"modelType": "service",
+					"modelName": "MSOTADevInfra_vSAMP10a_Service",
+					"modelVersionId": "5df8b6de-2083-11e7-93ae-92361f002671",
+					"modelInvariantId": "9647dfc4-2083-11e7-93ae-92361f002671",
+					"modelVersion": "1.0"
+				}
+			}
+		},
+		{
+			"relatedInstance": {
+				"instanceId": "cbba721b-4803-4df7-9347-307c9a955426",
+				"modelInfo": {
+					"modelType": "vnf",
+					"modelName": "vSAMP10a",
+					"modelVersionId": "d40be095-940e-4738-a72a-59aa9eb5671e",
+					"modelInvariantId": "2fff5b20-214b-11e7-93ae-92361f002671",
+					"modelVersion": "1.0",
+					"modelCustomizationId": "68dc9a92-214c-11e7-93ae-92361f002671",
+					"modelCustomizationName": "vSAMP10a 1"
+				}
+			}
+		}
+		],
+		"requestParameters": {
+			"usePreload": true,
+			"userParams": []
+		}
+	}
+}
\ No newline at end of file
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/resources/ServiceInstanceTest/ScaleOutRequest.json b/mso-api-handlers/mso-api-handler-infra/src/test/resources/ServiceInstanceTest/ScaleOutRequest.json
new file mode 100644
index 0000000..ba5a8a9
--- /dev/null
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/resources/ServiceInstanceTest/ScaleOutRequest.json
@@ -0,0 +1,71 @@
+{
+   "requestDetails":{
+      "modelInfo":{
+         "modelType":"vfModule",
+         "modelInvariantId":"ff5256d2-5a33-55df-13ab-12abad84e7ff",
+         "modelVersionId":"fe6478e5-ea33-3346-ac12-ab121484a3fe",
+         "modelCustomizationId":"cb82ffd8-252a-11e7-93ae-92361f002672",
+         "modelName":"vSAMP12..base..module-0",
+         "modelVersion":"1"
+      },
+      "cloudConfiguration":{
+         "lcpCloudRegionId":"mdt1",
+         "tenantId":"88a6ca3ee0394ade9403f075db23167e"
+      },
+      "requestInfo":{
+         "instanceName":"MSOTEST103a-vSAMP12_base_module-0",
+         "source":"VID",
+         "suppressRollback":true,
+         "requestorId":"xxxxxx"
+      },
+      "relatedInstanceList":[
+         {
+            "relatedInstance":{
+               "instanceId":"cbba721b-4803-4df7-9347-307c9a955426",
+               "instanceName":"MSOTESTVOL103a-vSAMP12_base_module-0_vol",
+               "modelInfo":{
+                  "modelType":"volumeGroup"
+               }
+            }
+         },
+         {
+            "relatedInstance":{
+               "instanceId":"7a88cbeb-0ec8-4765-a271-4f9e90c3da7b",
+               "modelInfo":{
+                  "modelType":"service",
+                  "modelInvariantId":"ff3514e3-5a33-55df-13ab-12abad84e7ff",
+                  "modelVersionId":"fe6985cd-ea33-3346-ac12-ab121484a3fe",
+                  "modelName":"{parent service model name}",
+                  "modelVersion":"1.0"
+               }
+            }
+         },
+         {
+            "relatedInstance":{
+               "instanceId":"cbba721b-4803-4df7-9347-307c9a955426",
+               "modelInfo":{
+                  "modelType":"vnf",
+                  "modelInvariantId":"ff5256d1-5a33-55df-13ab-12abad84e7ff",
+                  "modelVersionId":"fe6478e4-ea33-3346-ac12-ab121484a3fe",
+                  "modelName":"vSAMP12",
+                  "modelVersion":"1.0",
+                  "modelCustomizationName":"vSAMP12 1",
+                  "modelCustomizationId":"a7f1d08e-b02d-11e6-80f5-76304dec7eb7"
+               }
+            }
+         }
+      ],
+      "requestParameters":{
+         "usePreload":true,
+         "userParams":[
+
+         ]
+      },
+      "configurationParameters":[
+         {
+            "availability-zone":"$.vnf-topology.vnf-resource-assignments.availability-zones.availability-zone[0]",
+            "xtz-123":"$.vnf-topology.vnf-resource-assignments.availability-zones.availability-zone[0]"
+         }
+      ]
+   }
+}
\ No newline at end of file
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/resources/data.sql b/mso-api-handlers/mso-api-handler-infra/src/test/resources/data.sql
index 54984ee..70c0791 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/test/resources/data.sql
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/resources/data.sql
@@ -224,8 +224,7 @@
 ('19', 'vfModule', 'vfModule', 'createInstance', '', '1', 'VID_DEFAULT recipe to create vf-module if no custom BPMN flow is found', '/mso/async/services/CreateVfModuleInfra', '', '180', '2016-09-14 19:18:20', '20c4431c-246d-11e7-93ae-92361f002672'),
 ('20', 'vfModule', 'vfModule', 'deleteInstance', '', '1', 'VID_DEFAULT recipe to delete vf-module if no custom BPMN flow is found', '/mso/async/services/DeleteVfModuleInfra', '', '180', '2016-09-14 19:18:20', 'VID_DEFAULT'),
 ('21', 'vfModule', 'vfModule', 'updateInstance', '', '1', 'VID_DEFAULT recipe to update vf-module if no custom BPMN flow is found', '/mso/async/services/UpdateVfModuleInfra', '', '180', '2016-09-14 19:18:20', 'VID_DEFAULT'),
-('25', 'vfModule', 'vfModule', 'replaceInstance', '', '1', 'VID_DEFAULT vfModule replace', '/mso/async/services/ReplaceVfModuleInfra', '', '180', '2017-07-28 18:25:06', 'VID_DEFAULT');               
-
+('25', 'vfModule', 'vfModule', 'replaceInstance', '', '1', 'VID_DEFAULT vfModule replace', '/mso/async/services/ReplaceVfModuleInfra', '', '180', '2017-07-28 18:25:06', 'VID_DEFAULT');
 
 INSERT INTO catalogdb.network_recipe(ID, MODEL_NAME, ACTION, DESCRIPTION, ORCHESTRATION_URI, NETWORK_PARAM_XSD, RECIPE_TIMEOUT, SERVICE_TYPE, CREATION_TIMESTAMP, VERSION_STR) VALUES
 ('17', 'VID_DEFAULT', 'createInstance', 'VID_DEFAULT recipe to create network if no custom BPMN flow is found', '/mso/async/services/CreateNetworkInstance', '', '180', '', '2016-09-14 19:18:20', '1.0'),
@@ -274,7 +273,9 @@
 ('vfModule', 'deleteInstance', '1', 'Gr api recipe to delete vf-module', '/mso/async/services/WorkflowActionBB', 180, 'GR-API-DEFAULT'),
 ('vfModule', 'updateInstance', '1', 'Gr api recipe to update vf-module', '/mso/async/services/WorkflowActionBB', 180, 'GR-API-DEFAULT'),
 ('vfModule', 'replaceInstance', '1', 'Gr api recipe to replace vf-module', '/mso/async/services/WorkflowActionBB', 180, 'GR-API-DEFAULT'),
-('vfModule', 'deactivateAndCloudDelete', '1', 'Gr api recipe to deactivateAndCloudDelete vf-module', '/mso/async/services/WorkflowActionBB', 180, 'GR-API-DEFAULT');
+('vfModule', 'deactivateAndCloudDelete', '1', 'Gr api recipe to deactivateAndCloudDelete vf-module', '/mso/async/services/WorkflowActionBB', 180, 'GR-API-DEFAULT'),
+('vfModule', 'scaleOut', '1', 'Gr api recipe to scale out vfModule', '/mso/async/services/WorkflowActionBB', '180', 'GR-API-DEFAULT');               
+
 
 UPDATE vnf_components_recipe
 SET vf_module_model_uuid = 'VNF-API-DEFAULT'