ensure data for si matches on macro requests 42/76042/1
authorBenjamin, Max (mb388a) <mb388a@us.att.com>
Mon, 21 Jan 2019 01:17:45 +0000 (20:17 -0500)
committerBenjamin, Max (mb388a) <mb388a@us.att.com>
Mon, 21 Jan 2019 01:18:09 +0000 (20:18 -0500)
Fixed failing ValidationExceptionTest
Moved MacroRequest.json to test specific folder
Moved resource files to test specific folder
Cleaned up comments from UserParamsValidationTest
Refactored modelInfoValidation method
Removed unused constants from ValidationException
Removed unused ValidationException
ADded overrideExistingMessage boolean
Added test for missing modelType in userParams service object
Fixed failing JUnit tests in MsoRequestTest
Started fixing failing JUnit tests
Began adding validation and tests for userParams modelInfo
Began adding validation for instanceName

Change-Id: I442f6b660af4e716d75746f8d8155aac1e183e80
Issue-ID: SO-1405
Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
32 files changed:
common/src/main/java/org/onap/so/exceptions/ValidationException.java
common/src/test/java/org/onap/so/exceptions/ValidationExceptionTest.java
mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/MsoRequest.java
mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/validation/UserParamsValidation.java
mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/MsoRequestTest.java
mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/validation/UserParamsValidationTest.java [new file with mode: 0644]
mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/RequestParameters/AssignCloudConfigVnf.json
mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/RequestParameters/Network.json
mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/RequestParameters/NetworkCloudConfig.json
mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/RequestParameters/NetworkModelCustomizationId.json
mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/RequestParameters/NetworkModelVersionId.json
mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/RequestParameters/ProductFamilyId.json
mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/RequestParameters/UserParamsModelVersionId.json
mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/RequestParameters/UserParamsPlatform.json
mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/RequestParameters/UserParamsPlatformName.json
mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/RequestParameters/UserParamsVnfModelInfo.json
mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/RequestParameters/VfModuleModelCustomizationId.json
mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/RequestParameters/VfModuleModelVersionId.json
mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/RequestParameters/VfModules.json
mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/RequestParameters/VfModulesModelInfo.json
mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/RequestParameters/VnfModelCustomizationId.json
mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/RequestParameters/VnfModelVersionId.json
mso-api-handlers/mso-api-handler-infra/src/test/resources/MsoRequestTest/SuccessfulValidation/ServiceAssign.json
mso-api-handlers/mso-api-handler-infra/src/test/resources/ServiceInstanceTest/ServiceAssign.json
mso-api-handlers/mso-api-handler-infra/src/test/resources/Validation/UserParamsValidation/MacroRequest.json [new file with mode: 0644]
mso-api-handlers/mso-api-handler-infra/src/test/resources/Validation/UserParamsValidation/ModelCustomizationId.json [new file with mode: 0644]
mso-api-handlers/mso-api-handler-infra/src/test/resources/Validation/UserParamsValidation/ModelInfoNoModelType.json [new file with mode: 0644]
mso-api-handlers/mso-api-handler-infra/src/test/resources/Validation/UserParamsValidation/ModelInvariantId.json [new file with mode: 0644]
mso-api-handlers/mso-api-handler-infra/src/test/resources/Validation/UserParamsValidation/ModelName.json [new file with mode: 0644]
mso-api-handlers/mso-api-handler-infra/src/test/resources/Validation/UserParamsValidation/ModelType.json [new file with mode: 0644]
mso-api-handlers/mso-api-handler-infra/src/test/resources/Validation/UserParamsValidation/ModelVersion.json [new file with mode: 0644]
mso-api-handlers/mso-api-handler-infra/src/test/resources/Validation/UserParamsValidation/ModelVersionId.json [new file with mode: 0644]

index 713fac7..b91c30c 100644 (file)
@@ -32,9 +32,9 @@ public class ValidationException extends Exception {
 
     private static final long serialVersionUID = 1L;
     private static final String VALIDATION_FAIL = "No valid $ELEMENT is specified";
-    private static final String INVALID_ELEMENT = "$ELEMENT is not valid in the $VERSION version";
+    private static final String UNMATCHED_ELEMENTS = "$ELEMENT does not match $SECOND_ELEMENT";
     private static final String REPLACE_ELEMENT_KEY = "\\$ELEMENT";
-    private static final String REPLACE_VERSION_KEY = "\\$VERSION";
+    private static final String REPLACE_SECOND_ELEMENT_KEY = "\\$SECOND_ELEMENT";
 
     @Deprecated
     public ValidationException (String msg) {
@@ -48,7 +48,7 @@ public class ValidationException extends Exception {
     public ValidationException (String msg, Exception cause) {
         super (VALIDATION_FAIL.replaceAll (REPLACE_ELEMENT_KEY, msg), cause);
     }
-    public ValidationException(String msg, String version) {
-        super(INVALID_ELEMENT.replaceAll(REPLACE_ELEMENT_KEY, msg).replaceAll(REPLACE_VERSION_KEY, version));
+    public ValidationException(String firstElement, String secondElement) {
+        super(UNMATCHED_ELEMENTS.replaceAll(REPLACE_ELEMENT_KEY, firstElement).replaceAll(REPLACE_SECOND_ELEMENT_KEY, secondElement));
     }
-}
+}
\ No newline at end of file
index b3ae7ba..27fb584 100644 (file)
@@ -47,7 +47,7 @@ public class ValidationExceptionTest {
 
     @Test
     public void validationExceptionVersion(){
-        ValidationException e = new ValidationException("testMessage", "1.0");
-        Assert.assertEquals("testMessage is not valid in the 1.0 version", e.getMessage());
+        ValidationException e = new ValidationException("testMessage", "secondTestMessage");
+        Assert.assertEquals("testMessage does not match secondTestMessage", e.getMessage());
     }
 }
index 440a9ea..7f60232 100644 (file)
@@ -162,7 +162,7 @@ public class MsoRequest {
     public void parse (ServiceInstancesRequest sir, HashMap<String,String> instanceIdMap, Actions action, String version,
                String originalRequestJSON, int reqVersion, Boolean aLaCarteFlag) throws ValidationException, IOException {
        
-        msoLogger.debug ("Validating the Service Instance request");       
+        msoLogger.debug ("Validating the Service Instance request");
         List<ValidationRule> rules = new ArrayList<>();
         msoLogger.debug ("Incoming version is: " + version + " coverting to int: " + reqVersion);
            RequestParameters requestParameters = sir.getRequestDetails().getRequestParameters();
index da1f1f6..894e488 100644 (file)
@@ -27,56 +27,60 @@ import java.util.List;
 import org.onap.so.apihandlerinfra.Action;
 import org.onap.so.apihandlerinfra.Actions;
 import org.onap.so.exceptions.ValidationException;
+import org.onap.so.serviceinstancebeans.ModelInfo;
 import org.onap.so.serviceinstancebeans.Networks;
 import org.onap.so.serviceinstancebeans.Service;
 import org.onap.so.serviceinstancebeans.VfModules;
 import org.onap.so.serviceinstancebeans.Vnfs;
 
 public class UserParamsValidation implements ValidationRule{
-    private static boolean empty(String s) {
-         return (s == null || s.trim().isEmpty());
-    }
        @Override
        public ValidationInformation validate(ValidationInformation info) throws ValidationException{
                Service validate = info.getUserParams();
                Actions action = info.getAction();
                
                if(validate.getModelInfo() == null){
-                       throw new ValidationException ("model-info in userParams");
+                       throw new ValidationException ("modelInfo in userParams", true);
+               }else if(validate.getModelInfo().getModelType() == null){
+                       throw new ValidationException("modelType in userParams service modelInfo", true);
                }else if(validate.getModelInfo().getModelVersionId() == null){
-                       throw new ValidationException("modelVersionId in userParams");
+                       throw new ValidationException("modelVersionId in userParams service modelInfo", true);
+               }
+               modelInfoValidation(info.getSir().getRequestDetails().getModelInfo(), validate.getModelInfo());
+               if(validate.getInstanceName() != null && info.getRequestInfo().getInstanceName() != null){
+                       instanceNameValidation(info, validate);
                }
                for(Vnfs vnf : validate.getResources().getVnfs()){
                        if(vnf.getModelInfo() == null){
-                               throw new ValidationException ("model-info in userParams vnf resources");
+                               throw new ValidationException ("modelInfo in userParams vnf resources", true);
                        }else if(vnf.getModelInfo().getModelCustomizationId() == null){
-                               throw new ValidationException ("modelCustomizationId in userParams vnf resources");
+                               throw new ValidationException ("modelCustomizationId in userParams vnf resources", true);
                        }else if(vnf.getModelInfo().getModelVersionId() == null){
-                               throw new ValidationException("modelVersionId in userParams vnf resources");
+                               throw new ValidationException("modelVersionId in userParams vnf resources", true);
                        }
                        if(vnf.getCloudConfiguration() == null){
-                               throw new ValidationException ("cloudConfiguration in userParams vnf resources");
+                               throw new ValidationException ("cloudConfiguration in userParams vnf resources", true);
                        }
                        if(action == Action.createInstance || action == Action.assignInstance){
                                if(vnf.getPlatform() == null){
-                                       throw new ValidationException ("platform in userParams vnf resources");
+                                       throw new ValidationException ("platform in userParams vnf resources", true);
                                }if(vnf.getProductFamilyId() == null){
-                                       throw new ValidationException ("productFamilyId in userParams vnf resources");
+                                       throw new ValidationException ("productFamilyId in userParams vnf resources", true);
                                }
                        }
                        if (vnf.getPlatform() != null && vnf.getPlatform().getPlatformName() == null){
-                               throw new ValidationException ("platformName in userParams vnf resources");
+                               throw new ValidationException ("platformName in userParams vnf resources", true);
                        }
                        if(vnf.getVfModules().isEmpty()){
-                               throw new ValidationException ("vfModules in userParams vnf resources");
+                               throw new ValidationException ("vfModules in userParams vnf resources", true);
                        }
                        for(VfModules vfModules : vnf.getVfModules()){
                                if(vfModules.getModelInfo() == null){
-                                       throw new ValidationException ("model-info in userParams vfModules resources");
+                                       throw new ValidationException ("modelInfo in userParams vfModules resources", true);
                                }else if(vfModules.getModelInfo().getModelCustomizationId() == null){
-                                       throw new ValidationException ("modelCustomizationId in userParams vfModule resources");
+                                       throw new ValidationException ("modelCustomizationId in userParams vfModule resources", true);
                                }else if(vfModules.getModelInfo().getModelVersionId() == null){
-                                       throw new ValidationException("modelVersionId in userParams vfModule resources");
+                                       throw new ValidationException("modelVersionId in userParams vfModule resources", true);
                                }
                        }
                }
@@ -86,17 +90,46 @@ public class UserParamsValidation implements ValidationRule{
                if(validateNetworks != null){
                        for(Networks networks : validateNetworks){
                                if(networks.getModelInfo() == null){
-                                       throw new ValidationException ("model-info in userParams network resources");
+                                       throw new ValidationException ("modelInfo in userParams network resources", true);
                                }else if(networks.getModelInfo().getModelCustomizationId() == null){
-                                       throw new ValidationException ("modelCustomizationId in userParams network resources");
+                                       throw new ValidationException ("modelCustomizationId in userParams network resources", true);
                                }else if(networks.getModelInfo().getModelVersionId() == null){
-                                       throw new ValidationException("modelVersionId in userParams network resources");
+                                       throw new ValidationException("modelVersionId in userParams network resources", true);
                                }
                                if(networks.getCloudConfiguration() == null){
-                                       throw new ValidationException ("cloudConfiguration in userParams network resources");
+                                       throw new ValidationException ("cloudConfiguration in userParams network resources", true);
                                }
                        }
                } 
                return info;
        }
+       public void instanceNameValidation(ValidationInformation info, Service validate) throws ValidationException{
+               if(!info.getRequestInfo().getInstanceName().equals(validate.getInstanceName())){
+                       throw new ValidationException("instanceName in requestInfo", "instanceName in userParams service");
+               }
+       }
+       public void modelInfoValidation(ModelInfo info, ModelInfo userParamInfo) throws ValidationException{
+               if(!info.getModelType().equals(userParamInfo.getModelType())){
+                       throw new ValidationException("modelType in modelInfo", "modelType in userParams service");
+               }
+               if((info.getModelInvariantId() != null && userParamInfo.getModelInvariantId() != null) &&
+                               (!info.getModelInvariantId().equals(userParamInfo.getModelInvariantId()))){
+                       throw new ValidationException("modelInvariantId in modelInfo", "modelInvariantId in userParams service");
+               }
+               if(!info.getModelVersionId().equals(userParamInfo.getModelVersionId())){
+                       throw new ValidationException("modelVersionId in modelInfo", "modelVersionId in userParams service");
+               }
+               if((info.getModelName() != null && userParamInfo.getModelName() != null) &&
+                               (!info.getModelName().equals(userParamInfo.getModelName()))){
+                       throw new ValidationException("modelName in modelInfo", "modelName in userParams service");
+               }
+               if((info.getModelVersion() != null && userParamInfo.getModelVersion() != null) &&
+                       (!info.getModelVersion().equals(userParamInfo.getModelVersion()))){
+                       throw new ValidationException("modelVersion in modelInfo", "modelVersion in userParams service");
+               }
+               if((info.getModelCustomizationId() != null && userParamInfo.getModelCustomizationId() != null) &&
+                       (!info.getModelCustomizationId().equals(userParamInfo.getModelCustomizationId()))){
+                       throw new ValidationException("modelCustomizationId in modelInfo", "modelCustomizationId in userParams service");
+               }
+       }
 }
\ No newline at end of file
index aa51704..145213f 100644 (file)
@@ -317,9 +317,9 @@ public class MsoRequestTest extends BaseTest {
                        //Validation for UserParams
                        {"No valid cloudConfiguration in userParams vnf resources is specified", mapper.readValue(inputStream("/RequestParameters/AssignCloudConfigVnf.json"), ServiceInstancesRequest.class), instanceIdMapTest, Action.assignInstance, 7},
                        {"No valid cloudConfiguration in userParams network resources is specified", mapper.readValue(inputStream("/RequestParameters/NetworkCloudConfig.json"), ServiceInstancesRequest.class), instanceIdMapTest, Action.assignInstance, 7},
-                       {"No valid model-info in userParams is specified", mapper.readValue(inputStream("/RequestParameters/UserParamsModelInfo.json"), ServiceInstancesRequest.class), instanceIdMapTest, Action.assignInstance, 7},
-                       {"No valid model-info in userParams vnf resources is specified", mapper.readValue(inputStream("/RequestParameters/UserParamsVnfModelInfo.json"), ServiceInstancesRequest.class), instanceIdMapTest, Action.assignInstance, 7},
-                       {"No valid modelVersionId in userParams is specified", mapper.readValue(inputStream("/RequestParameters/UserParamsModelVersionId.json"), ServiceInstancesRequest.class), instanceIdMapTest, Action.assignInstance, 7},
+                       {"No valid modelInfo in userParams is specified", mapper.readValue(inputStream("/RequestParameters/UserParamsModelInfo.json"), ServiceInstancesRequest.class), instanceIdMapTest, Action.assignInstance, 7},
+                       {"No valid modelInfo in userParams vnf resources is specified", mapper.readValue(inputStream("/RequestParameters/UserParamsVnfModelInfo.json"), ServiceInstancesRequest.class), instanceIdMapTest, Action.assignInstance, 7},
+                       {"No valid modelVersionId in userParams service modelInfo is specified", mapper.readValue(inputStream("/RequestParameters/UserParamsModelVersionId.json"), ServiceInstancesRequest.class), instanceIdMapTest, Action.assignInstance, 7},
                        {"No valid modelVersionId in userParams vnf resources is specified", mapper.readValue(inputStream("/RequestParameters/VnfModelVersionId.json"), ServiceInstancesRequest.class), instanceIdMapTest, Action.assignInstance, 7},
                        {"No valid modelVersionId in userParams vfModule resources is specified", mapper.readValue(inputStream("/RequestParameters/VfModuleModelVersionId.json"), ServiceInstancesRequest.class), instanceIdMapTest, Action.assignInstance, 7},
                        {"No valid modelVersionId in userParams network resources is specified", mapper.readValue(inputStream("/RequestParameters/NetworkModelVersionId.json"), ServiceInstancesRequest.class), instanceIdMapTest, Action.assignInstance, 7},
@@ -327,8 +327,8 @@ public class MsoRequestTest extends BaseTest {
                        {"No valid platformName in userParams vnf resources is specified", mapper.readValue(inputStream("/RequestParameters/UserParamsPlatformName.json"), ServiceInstancesRequest.class), instanceIdMapTest, Action.assignInstance, 7},
                        {"No valid productFamilyId in userParams vnf resources is specified", mapper.readValue(inputStream("/RequestParameters/ProductFamilyId.json"), ServiceInstancesRequest.class), instanceIdMapTest, Action.assignInstance, 7},
                        {"No valid vfModules in userParams vnf resources is specified", mapper.readValue(inputStream("/RequestParameters/VfModules.json"), ServiceInstancesRequest.class), instanceIdMapTest, Action.assignInstance, 7},
-                       {"No valid model-info in userParams vfModules resources is specified", mapper.readValue(inputStream("/RequestParameters/VfModulesModelInfo.json"), ServiceInstancesRequest.class), instanceIdMapTest, Action.assignInstance, 7},
-                       {"No valid model-info in userParams network resources is specified", mapper.readValue(inputStream("/RequestParameters/Network.json"), ServiceInstancesRequest.class), instanceIdMapTest, Action.assignInstance, 7},     
+                       {"No valid modelInfo in userParams vfModules resources is specified", mapper.readValue(inputStream("/RequestParameters/VfModulesModelInfo.json"), ServiceInstancesRequest.class), instanceIdMapTest, Action.assignInstance, 7},
+                       {"No valid modelInfo in userParams network resources is specified", mapper.readValue(inputStream("/RequestParameters/Network.json"), ServiceInstancesRequest.class), instanceIdMapTest, Action.assignInstance, 7},      
                        {"No valid modelCustomizationId in userParams vfModule resources is specified", mapper.readValue(inputStream("/RequestParameters/VfModuleModelCustomizationId.json"), ServiceInstancesRequest.class), instanceIdMapTest, Action.assignInstance, 7},
                        {"No valid modelCustomizationId in userParams vnf resources is specified", mapper.readValue(inputStream("/RequestParameters/VnfModelCustomizationId.json"), ServiceInstancesRequest.class), instanceIdMapTest, Action.assignInstance, 7},
                        {"No valid modelCustomizationId in userParams network resources is specified", mapper.readValue(inputStream("/RequestParameters/NetworkModelCustomizationId.json"), ServiceInstancesRequest.class), instanceIdMapTest, Action.assignInstance, 7},
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/validation/UserParamsValidationTest.java b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/validation/UserParamsValidationTest.java
new file mode 100644 (file)
index 0000000..c1c4915
--- /dev/null
@@ -0,0 +1,109 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.apihandlerinfra.validation;
+
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.Map;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.onap.so.apihandlerinfra.Action;
+import org.onap.so.exceptions.ValidationException;
+import org.onap.so.serviceinstancebeans.Service;
+import org.onap.so.serviceinstancebeans.ServiceInstancesRequest;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+public class UserParamsValidationTest{
+       
+       UserParamsValidation validation = new UserParamsValidation();
+       
+       @Rule
+       public ExpectedException thrown = ExpectedException.none();
+       
+       public ValidationInformation setupValidationInformation(String path) throws IOException{
+               String jsonInput = new String(Files.readAllBytes(Paths.get(path)));
+               ObjectMapper mapper = new ObjectMapper();
+               ServiceInstancesRequest sir = mapper.readValue(jsonInput, ServiceInstancesRequest.class);
+               ValidationInformation info = new ValidationInformation(sir, null, Action.createInstance, 7, false, sir.getRequestDetails().getRequestParameters());
+       for(Map<String, Object> params : sir.getRequestDetails().getRequestParameters().getUserParams()){
+                       ObjectMapper obj = new ObjectMapper();
+                       String input = obj.writeValueAsString(params.get("service"));
+                       Service validate = obj.readValue(input, Service.class);
+                       info.setUserParams(validate);
+                       break;
+           }
+       info.setRequestInfo(sir.getRequestDetails().getRequestInfo());
+               return info;
+       }
+       
+       @Test
+       public void validateModelTypeExceptionTest() throws IOException, ValidationException{
+       thrown.expect(ValidationException.class);
+               thrown.expectMessage("No valid modelType in userParams service modelInfo is specified");
+       validation.validate(setupValidationInformation("src/test/resources/Validation/UserParamsValidation/ModelInfoNoModelType.json"));
+       }
+       @Test
+       public void validateInstanceNameExceptionTest() throws IOException, ValidationException{
+       thrown.expect(ValidationException.class);
+               thrown.expectMessage("instanceName in requestInfo does not match instanceName in userParams service");
+       validation.validate(setupValidationInformation("src/test/resources/Validation/UserParamsValidation/MacroRequest.json"));
+       }
+       @Test
+       public void validateModelTypeTest() throws ValidationException, IOException{
+       thrown.expect(ValidationException.class);
+               thrown.expectMessage("modelType in modelInfo does not match modelType in userParams service");
+       validation.validate(setupValidationInformation("src/test/resources/Validation/UserParamsValidation/ModelType.json"));
+       }
+       @Test
+       public void validateModelInvariantIdTest() throws ValidationException, IOException{
+       thrown.expect(ValidationException.class);
+               thrown.expectMessage("modelInvariantId in modelInfo does not match modelInvariantId in userParams service");
+       validation.validate(setupValidationInformation("src/test/resources/Validation/UserParamsValidation/ModelInvariantId.json"));
+       }
+       @Test
+       public void validateModelVersionIdTest() throws ValidationException, IOException{
+       thrown.expect(ValidationException.class);
+               thrown.expectMessage("modelVersionId in modelInfo does not match modelVersionId in userParams service");
+       validation.validate(setupValidationInformation("src/test/resources/Validation/UserParamsValidation/ModelVersionId.json"));
+       }
+       @Test
+       public void validateModelNameTest() throws ValidationException, IOException{
+       thrown.expect(ValidationException.class);
+               thrown.expectMessage("modelName in modelInfo does not match modelName in userParams service");
+       validation.validate(setupValidationInformation("src/test/resources/Validation/UserParamsValidation/ModelName.json"));
+       }
+       @Test
+       public void validateModelVersionTest() throws ValidationException, IOException{
+       thrown.expect(ValidationException.class);
+               thrown.expectMessage("modelVersion in modelInfo does not match modelVersion in userParams service");
+       validation.validate(setupValidationInformation("src/test/resources/Validation/UserParamsValidation/ModelVersion.json"));
+       }
+       @Test
+       public void validateModelCustomizationIdTest() throws ValidationException, IOException{
+       thrown.expect(ValidationException.class);
+               thrown.expectMessage("modelCustomizationId in modelInfo does not match modelCustomizationId in userParams service");
+       validation.validate(setupValidationInformation("src/test/resources/Validation/UserParamsValidation/ModelCustomizationId.json"));
+       }
+}
\ No newline at end of file
index 9e571e6..9d57569 100644 (file)
         { 
           "service": { 
             "modelInfo": { 
-              "modelName": "testModelName", 
-              "modelCustomizationId": "3c40d244-808e-42ca-b09a-256d83d19d0a",
-              "modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a" 
+              "modelType": "service", 
+                     "modelInvariantId": "5d48acb5-097d-4982-aeb2-f4a3bd87d31b", 
+                     "modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a", 
+                     "modelName": "testModelName", 
+                     "modelVersion": "10" 
             }, 
             "instanceParams": [], 
             "resources": { 
index 26bb217..a7d930f 100644 (file)
         { 
           "service": { 
             "modelInfo": { 
-              "modelName": "MOW vMX BV 1 Service", 
-              "modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a",
-              "modelCustomizationId": "3c40d244-808e-42ca-b09a-256d83d19d0b" 
+              "modelType": "service", 
+                     "modelInvariantId": "5d48acb5-097d-4982-aeb2-f4a3bd87d31b", 
+                     "modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a", 
+                     "modelName": "MOW vMX BV 1 Service", 
+                     "modelVersion": "10"
             }, 
             "instanceParams": [], 
             "resources": { 
index 6b32f3e..75e8fb5 100644 (file)
         { 
           "service": { 
             "modelInfo": { 
-              "modelName": "MOW vMX BV 1 Service", 
-              "modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a",
-              "modelCustomizationId": "3c40d244-808e-42ca-b09a-256d83d19d0b" 
+              "modelType": "service", 
+                     "modelInvariantId": "5d48acb5-097d-4982-aeb2-f4a3bd87d31b", 
+                     "modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a", 
+                     "modelName": "MOW vMX BV 1 Service", 
+                     "modelVersion": "10" 
             }, 
             "instanceParams": [], 
             "resources": { 
index 1aa6094..baf620b 100644 (file)
         { 
           "service": { 
             "modelInfo": { 
-              "modelName": "MOW vMX BV 1 Service",
-              "modelCustomizationId": "3c40d244-808e-42ca-b09a-256d83d19d0b", 
-              "modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a" 
+              "modelType": "service", 
+                     "modelInvariantId": "5d48acb5-097d-4982-aeb2-f4a3bd87d31b", 
+                     "modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a", 
+                     "modelName": "MOW vMX BV 1 Service", 
+                     "modelVersion": "10" 
             }, 
             "instanceParams": [], 
             "resources": { 
index 1fddf79..6c15285 100644 (file)
         { 
           "service": { 
             "modelInfo": { 
-              "modelName": "MOW vMX BV 1 Service",
-              "modelCustomizationId": "3c40d244-808e-42ca-b09a-256d83d19d0b", 
-              "modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a" 
+              "modelType": "service", 
+                     "modelInvariantId": "5d48acb5-097d-4982-aeb2-f4a3bd87d31b", 
+                     "modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a", 
+                     "modelName": "MOW vMX BV 1 Service", 
+                     "modelVersion": "10" 
             }, 
             "instanceParams": [], 
             "resources": { 
index f9a5ea9..3f93139 100644 (file)
         { 
           "service": { 
             "modelInfo": { 
-              "modelName": "MOW vMX BV 1 Service", 
-              "modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a",
-              "modelCustomizationId": "3c40d244-808e-42ca-b09a-256d83d19d0b" 
+              "modelType": "service", 
+                     "modelInvariantId": "5d48acb5-097d-4982-aeb2-f4a3bd87d31b", 
+                     "modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a", 
+                     "modelName": "MOW vMX BV 1 Service", 
+                     "modelVersion": "10" 
             }, 
             "instanceParams": [], 
             "resources": { 
index 8d3ed69..f3592c2 100644 (file)
         { 
           "service": { 
             "modelInfo": { 
-              "modelName": "MOW vMX BV 1 Service", 
-              "modelCustomizationId": "3c40d244-808e-42ca-b09a-256d83d19d0a"
+              "modelType": "service", 
+                     "modelInvariantId": "5d48acb5-097d-4982-aeb2-f4a3bd87d31b", 
+                     "modelName": "MOW vMX BV 1 Service", 
+                     "modelVersion": "10" 
             }, 
             "instanceParams": [], 
             "resources": { 
index f05fdb0..0fbe1da 100644 (file)
         { 
           "service": { 
             "modelInfo": { 
-              "modelName": "MOW vMX BV 1 Service", 
-              "modelCustomizationId": "3c40d244-808e-42ca-b09a-256d83d19d0b",
-              "modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a" 
+              "modelType": "service", 
+                     "modelInvariantId": "5d48acb5-097d-4982-aeb2-f4a3bd87d31b", 
+                     "modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a", 
+                     "modelName": "MOW vMX BV 1 Service", 
+                     "modelVersion": "10" 
             }, 
             "instanceParams": [], 
             "resources": { 
index 4436baf..e94c5aa 100644 (file)
         { 
           "service": { 
             "modelInfo": { 
-              "modelName": "MOW vMX BV 1 Service", 
-              "modelCustomizationId": "3c40d244-808e-42ca-b09a-256d83d19d0b",
-              "modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a" 
+              "modelType": "service", 
+                     "modelInvariantId": "5d48acb5-097d-4982-aeb2-f4a3bd87d31b", 
+                     "modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a", 
+                     "modelName": "MOW vMX BV 1 Service", 
+                     "modelVersion": "10" 
             }, 
             "instanceParams": [], 
             "resources": { 
index e31523f..c19784f 100644 (file)
         { 
           "service": { 
             "modelInfo": { 
-              "modelName": "MOW vMX BV 1 Service", 
-              "modelCustomizationId": "3c40d244-808e-42ca-b09a-256d83d19d0b",
-              "modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a" 
+              "modelType": "service", 
+                         "modelInvariantId": "5d48acb5-097d-4982-aeb2-f4a3bd87d31b", 
+                         "modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a", 
+                         "modelName": "MOW vMX BV 1 Service", 
+                         "modelVersion": "10" 
             }, 
             "instanceParams": [], 
             "resources": { 
index 0cf4928..f315ff8 100644 (file)
         { 
           "service": { 
             "modelInfo": { 
-              "modelName": "MOW vMX BV 1 Service", 
-              "modelCustomizationId": "3c40d244-808e-42ca-b09a-256d83d19d0b",
-              "modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a" 
+              "modelType": "service", 
+                     "modelInvariantId": "5d48acb5-097d-4982-aeb2-f4a3bd87d31b", 
+                     "modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a", 
+                     "modelName": "MOW vMX BV 1 Service", 
+                     "modelVersion": "10" 
             }, 
             "instanceParams": [], 
             "resources": { 
index 5362b43..91e7183 100644 (file)
         { 
           "service": { 
             "modelInfo": { 
-              "modelName": "MOW vMX BV 1 Service", 
-              "modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a",
-              "modelCustomizationId": "3c40d244-808e-42ca-b09a-256d83d19d0b" 
+              "modelType": "service", 
+                     "modelInvariantId": "5d48acb5-097d-4982-aeb2-f4a3bd87d31b", 
+                     "modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a", 
+                     "modelName": "MOW vMX BV 1 Service", 
+                     "modelVersion": "10"
             }, 
             "instanceParams": [], 
             "resources": { 
index ad1c02e..fedaad4 100644 (file)
         { 
           "service": { 
             "modelInfo": { 
-              "modelName": "MOW vMX BV 1 Service", 
-              "modelCustomizationId": "3c40d244-808e-42ca-b09a-256d83d19d0a",
-              "modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a" 
+              "modelType": "service", 
+                     "modelInvariantId": "5d48acb5-097d-4982-aeb2-f4a3bd87d31b", 
+                     "modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a", 
+                     "modelName": "MOW vMX BV 1 Service", 
+                     "modelVersion": "10" 
             }, 
             "instanceParams": [], 
             "resources": { 
index 81904fe..612586c 100644 (file)
         { 
           "service": { 
             "modelInfo": { 
-              "modelName": "MOW vMX BV 1 Service", 
-              "modelCustomizationId": "3c40d244-808e-42ca-b09a-256d83d19d0b",
-              "modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a" 
+              "modelType": "service", 
+                     "modelInvariantId": "5d48acb5-097d-4982-aeb2-f4a3bd87d31b", 
+                     "modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a", 
+                     "modelName": "MOW vMX BV 1 Service", 
+                     "modelVersion": "10" 
             }, 
             "instanceParams": [], 
             "resources": { 
index 5b40977..8709619 100644 (file)
         { 
           "service": { 
             "modelInfo": { 
-              "modelName": "MOW vMX BV 1 Service", 
-              "modelCustomizationId": "3c40d244-808e-42ca-b09a-256d83d19d0b",
-              "modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a" 
+              "modelType": "service", 
+                     "modelInvariantId": "5d48acb5-097d-4982-aeb2-f4a3bd87d31b", 
+                     "modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a", 
+                     "modelName": "MOW vMX BV 1 Service", 
+                     "modelVersion": "10" 
             }, 
             "instanceParams": [], 
             "resources": { 
index b52be1f..9c650ad 100644 (file)
         { 
           "service": { 
             "modelInfo": { 
-              "modelName": "MOW vMX BV 1 Service", 
-              "modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a",
-              "modelCustomizationId": "3c40d244-808e-42ca-b09a-256d83d19d0b" 
+              "modelType": "service", 
+                     "modelInvariantId": "5d48acb5-097d-4982-aeb2-f4a3bd87d31b", 
+                     "modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a", 
+                     "modelName": "MOW vMX BV 1 Service", 
+                     "modelVersion": "10" 
             }, 
             "instanceParams": [], 
             "resources": { 
index 2d7ab4a..bc6f8fc 100644 (file)
         { 
           "service": { 
             "modelInfo": { 
-              "modelName": "MOW vMX BV 1 Service", 
-              "modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a",
-              "modelCustomizationId": "3c40d244-808e-42ca-b09a-256d83d19d0b" 
+              "modelType": "service", 
+                     "modelInvariantId": "5d48acb5-097d-4982-aeb2-f4a3bd87d31b", 
+                     "modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a", 
+                     "modelName": "MOW vMX BV 1 Service", 
+                     "modelVersion": "10" 
             }, 
             "instanceParams": [], 
             "resources": { 
index 7625bf7..fd8b7c4 100644 (file)
                "service":{
                   "modelInfo":{
                      "modelType":"service",
-                     "modelName":"MOW",
-                     "modelVersionId":"3c40d244-808e-42ca-b09a-256d83d19d0a",
-                     "modelCustomizationId": "3c40d244-808e-42ca-b09a-256d83d19d0a"
+                                "modelInvariantId":"5d48acb5-097d-4982-aeb2-f4a3bd87d31b",
+                                "modelVersionId":"3c40d244-808e-42ca-b09a-256d83d19d0a",
+                                "modelName":"MOW vMX BV 1 Service",
+                                "modelVersion":"10.0"
                   },
                   "instanceParams":[
 
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/resources/Validation/UserParamsValidation/MacroRequest.json b/mso-api-handlers/mso-api-handler-infra/src/test/resources/Validation/UserParamsValidation/MacroRequest.json
new file mode 100644 (file)
index 0000000..c3ee53b
--- /dev/null
@@ -0,0 +1,135 @@
+{
+  "requestDetails": {
+    "modelInfo": {
+      "modelInvariantId": "282bdcd2-34ed-4665-9ab2-63455814531d",
+      "modelType": "service",
+      "modelName": "MOW_ADIG_test_BV_IST",
+      "modelVersion": "1.0",
+      "modelVersionId": "109a153e-325f-4df5-8161-edd91314daee",
+      "modelUuid": "109a153e-325f-4df5-8161-edd91314daee",
+      "modelInvariantUuid": "282bdcd2-34ed-4665-9ab2-63455814531d"
+    },
+    "requestInfo": {
+      "productFamilyId": "testaaS",
+      "source": "VID",
+      "suppressRollback": false,
+      "requestorId": "ss616y",
+      "instanceName": "instanceName"
+    },
+    "subscriberInfo": {
+      "globalSubscriberId": "21014aa2-526b-11e6-beb8-9e71128cae77"
+    },
+    "requestParameters": {
+      "subscriptionServiceType": "test",
+      "userParams": [
+        {
+          "service": {
+            "modelInfo": {
+              "modelInvariantId": "282bdcd2-34ed-4665-9ab2-63455814531d",
+                     "modelType": "service",
+                     "modelName": "MOW_ADIG_test_BV_IST",
+                     "modelVersion": "1.0",
+                     "modelVersionId": "109a153e-325f-4df5-8161-edd91314daee",
+                     "modelUuid": "109a153e-325f-4df5-8161-edd91314daee",
+                     "modelInvariantUuid": "282bdcd2-34ed-4665-9ab2-63455814531d"
+            },
+            "instanceName" : "test",
+            "instanceParams": [
+              {
+                "mow_adig_test_bv_ist0_bandwidth": "10",
+                "mow_adig_test_bv_ist0_ASN": "2685",
+                "mow_adig_test_bv_ist0_availability_zone_0": "mdt25b-kvm-az01",
+                "mow_adig_test_bv_ist0_AIC_CLLI": "MTSNJA4LCP1",
+                "mow_adig_test_bv_ist0_vnf_config_template_version": "17.2",
+                "mow_adig_test_bv_ist0_vnf_instance_name": "wswdc403me6",
+                "mow_adig_test_bv_ist0_bandwidth_units": "Gbps"
+              }
+            ],
+            "resources": {
+              "vnfs": [
+                {
+                  "modelInfo": {
+                    "modelCustomizationName": "MOW_ADIG_test_BV_IST 0",
+                    "modelCustomizationId": "31d41ef2-0a3e-43bf-a4f0-0b1f31b1cbac",
+                    "modelInvariantId": "33fb95d0-5f18-4dfb-8e7d-0c8ac8d743c5",
+                    "modelVersionId": "bdf50902-4b07-4dcf-a2e2-ec6cfe568798",
+                    "modelName": "MOW_ADIG_test_BV_IST",
+                    "modelType": "service",
+                    "modelVersion": "2.0"
+                  },
+                  "cloudConfiguration": {
+                    "lcpCloudRegionId": "mdt25b",
+                    "tenantId": "aefb697db6524ddebfe4915591b0a347"
+                  },
+                  "platform": {
+                    "platformName": "AIC"
+                  },
+                  "lineOfBusiness": {},
+                  "productFamilyId": "testaaS",
+                  "instanceParams": [
+                         {
+                               "mow_adig_test_bv_ist0_vnf_config_template": "17.2",
+                               "mow_adig_test_bv_ist0_vnf_instance": "wswdc403me6",
+                               "mow_adig_test_bv_ist0_bandwidth": "Gbps"
+                         }
+                  ],
+                  "vfModules": [
+                    {
+                      "modelInfo": {
+                        "modelCustomizationName": "MowAdigtestBvIst..ADIG_vRE_BV_v2..module-1",
+                        "modelCustomizationId": "34c57c2d-cf19-4926-9296-acde6a967f70",
+                        "modelInvariantId": "f3093158-a609-41d5-a2fb-07dbc0ca8096",
+                        "modelVersionId": "2507f79d-6e1b-413b-b2a8-c434113ff862",
+                        "modelName": "MowAdigtestBvIst..ADIG_vRE_BV_v2..module-1",
+                        "modelType": "service",
+                        "modelVersion": "1"
+                      },
+                      "instanceParams": [
+                       {
+                                       "mow_adig_test_ist0_vnf_config_template_version": "17.2",
+                                       "mow_adig_test_ist0_vnf_instance_name": "wswdc403me6",
+                                       "mow_adig_test_ist0_bandwidth_units": "Gbps"
+                               }
+                      ]
+                    },
+                    {
+                      "modelInfo": {
+                        "modelCustomizationName": "MowAdigtestBvIst..ADIG_base_test_BV_v2..module-0",
+                        "modelCustomizationId": "f4a414c4-b71a-43ed-82be-51478d7e154f",
+                        "modelInvariantId": "af867fdc-3808-4b62-ae76-bdb1b9ae7ee8",
+                        "modelVersionId": "3fcf6cb6-2ef2-4154-99a6-06ce889c79f1",
+                        "modelName": "MowAdigtestBvIst..ADIG_base_test_BV_v2..module-0",
+                        "modelType": "service",
+                        "modelVersion": "1"
+                      },
+                      "instanceParams": []
+                    },
+                    {
+                      "modelInfo": {
+                        "modelCustomizationName": "MowAdigtestBvIst..ADIG_vPFE_BV_v2..module-2",
+                        "modelCustomizationId": "583c2280-23d9-4338-a607-69c238d4899d",
+                        "modelInvariantId": "90c2be4f-cb6f-4e75-9c65-04fdc5c30cef",
+                        "modelVersionId": "7c8a69e0-6612-4b7b-8e9c-fb8b9f31cb4f",
+                        "modelName": "MowAdigtestBvIst..ADIG_vPFE_BV_v2..module-2",
+                        "modelType": "service",
+                        "modelVersion": "1"
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          }
+        }
+      ],
+      "aLaCarte": false
+    },
+    "project": {
+      "projectName": "GigaPower"
+    },
+    "owningEntity": {
+      "owningEntityId": "2811e2fb-005e-40de-990b-c0794f362399",
+      "owningEntityName": "PACKET-CORE"
+    }
+  }
+}
\ No newline at end of file
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/resources/Validation/UserParamsValidation/ModelCustomizationId.json b/mso-api-handlers/mso-api-handler-infra/src/test/resources/Validation/UserParamsValidation/ModelCustomizationId.json
new file mode 100644 (file)
index 0000000..f5209ac
--- /dev/null
@@ -0,0 +1,137 @@
+{
+  "requestDetails": {
+    "modelInfo": {
+      "modelInvariantId": "282bdcd2-34ed-4665-9ab2-63455814531d",
+      "modelType": "service",
+      "modelName": "MOW_ADIG_test_BV_IST",
+      "modelVersion": "1.0",
+      "modelVersionId": "109a153e-325f-4df5-8161-edd91314daee",
+      "modelUuid": "109a153e-325f-4df5-8161-edd91314daee",
+      "modelInvariantUuid": "282bdcd2-34ed-4665-9ab2-63455814531d",
+      "modelCustomizationId": "31d41ef2-0a3e-43bf-a4f0-0b1f31b1cbad"
+    },
+    "requestInfo": {
+      "productFamilyId": "testaaS",
+      "source": "VID",
+      "suppressRollback": false,
+      "requestorId": "ss616y",
+      "instanceName": "instanceName"
+    },
+    "subscriberInfo": {
+      "globalSubscriberId": "21014aa2-526b-11e6-beb8-9e71128cae77"
+    },
+    "requestParameters": {
+      "subscriptionServiceType": "test",
+      "userParams": [
+        {
+          "service": {
+            "modelInfo": {
+              "modelInvariantId": "282bdcd2-34ed-4665-9ab2-63455814531d",
+                     "modelType": "service",
+                     "modelName": "MOW_ADIG_test_BV_IST",
+                     "modelVersion": "1.0",
+                     "modelVersionId": "109a153e-325f-4df5-8161-edd91314daee",
+                     "modelUuid": "109a153e-325f-4df5-8161-edd91314daee",
+                     "modelInvariantUuid": "282bdcd2-34ed-4665-9ab2-63455814531d",
+                     "modelCustomizationId": "31d41ef2-0a3e-43bf-a4f0-0b1f31b1cbae"
+            },
+            "instanceName" : "test",
+            "instanceParams": [
+              {
+                "mow_adig_test_bv_ist0_bandwidth": "10",
+                "mow_adig_test_bv_ist0_ASN": "2685",
+                "mow_adig_test_bv_ist0_availability_zone_0": "mdt25b-kvm-az01",
+                "mow_adig_test_bv_ist0_AIC_CLLI": "MTSNJA4LCP1",
+                "mow_adig_test_bv_ist0_vnf_config_template_version": "17.2",
+                "mow_adig_test_bv_ist0_vnf_instance_name": "wswdc403me6",
+                "mow_adig_test_bv_ist0_bandwidth_units": "Gbps"
+              }
+            ],
+            "resources": {
+              "vnfs": [
+                {
+                  "modelInfo": {
+                    "modelCustomizationName": "MOW_ADIG_test_BV_IST 0",
+                    "modelCustomizationId": "31d41ef2-0a3e-43bf-a4f0-0b1f31b1cbac",
+                    "modelInvariantId": "33fb95d0-5f18-4dfb-8e7d-0c8ac8d743c5",
+                    "modelVersionId": "bdf50902-4b07-4dcf-a2e2-ec6cfe568798",
+                    "modelName": "MOW_ADIG_test_BV_IST",
+                    "modelType": "service",
+                    "modelVersion": "2.0"
+                  },
+                  "cloudConfiguration": {
+                    "lcpCloudRegionId": "mdt25b",
+                    "tenantId": "aefb697db6524ddebfe4915591b0a347"
+                  },
+                  "platform": {
+                    "platformName": "AIC"
+                  },
+                  "lineOfBusiness": {},
+                  "productFamilyId": "testaaS",
+                  "instanceParams": [
+                         {
+                               "mow_adig_test_bv_ist0_vnf_config_template": "17.2",
+                               "mow_adig_test_bv_ist0_vnf_instance": "wswdc403me6",
+                               "mow_adig_test_bv_ist0_bandwidth": "Gbps"
+                         }
+                  ],
+                  "vfModules": [
+                    {
+                      "modelInfo": {
+                        "modelCustomizationName": "MowAdigtestBvIst..ADIG_vRE_BV_v2..module-1",
+                        "modelCustomizationId": "34c57c2d-cf19-4926-9296-acde6a967f70",
+                        "modelInvariantId": "f3093158-a609-41d5-a2fb-07dbc0ca8096",
+                        "modelVersionId": "2507f79d-6e1b-413b-b2a8-c434113ff862",
+                        "modelName": "MowAdigtestBvIst..ADIG_vRE_BV_v2..module-1",
+                        "modelType": "service",
+                        "modelVersion": "1"
+                      },
+                      "instanceParams": [
+                       {
+                                       "mow_adig_test_ist0_vnf_config_template_version": "17.2",
+                                       "mow_adig_test_ist0_vnf_instance_name": "wswdc403me6",
+                                       "mow_adig_test_ist0_bandwidth_units": "Gbps"
+                               }
+                      ]
+                    },
+                    {
+                      "modelInfo": {
+                        "modelCustomizationName": "MowAdigtestBvIst..ADIG_base_test_BV_v2..module-0",
+                        "modelCustomizationId": "f4a414c4-b71a-43ed-82be-51478d7e154f",
+                        "modelInvariantId": "af867fdc-3808-4b62-ae76-bdb1b9ae7ee8",
+                        "modelVersionId": "3fcf6cb6-2ef2-4154-99a6-06ce889c79f1",
+                        "modelName": "MowAdigtestBvIst..ADIG_base_test_BV_v2..module-0",
+                        "modelType": "service",
+                        "modelVersion": "1"
+                      },
+                      "instanceParams": []
+                    },
+                    {
+                      "modelInfo": {
+                        "modelCustomizationName": "MowAdigtestBvIst..ADIG_vPFE_BV_v2..module-2",
+                        "modelCustomizationId": "583c2280-23d9-4338-a607-69c238d4899d",
+                        "modelInvariantId": "90c2be4f-cb6f-4e75-9c65-04fdc5c30cef",
+                        "modelVersionId": "7c8a69e0-6612-4b7b-8e9c-fb8b9f31cb4f",
+                        "modelName": "MowAdigtestBvIst..ADIG_vPFE_BV_v2..module-2",
+                        "modelType": "service",
+                        "modelVersion": "1"
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          }
+        }
+      ],
+      "aLaCarte": false
+    },
+    "project": {
+      "projectName": "GigaPower"
+    },
+    "owningEntity": {
+      "owningEntityId": "2811e2fb-005e-40de-990b-c0794f362399",
+      "owningEntityName": "PACKET-CORE"
+    }
+  }
+}
\ No newline at end of file
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/resources/Validation/UserParamsValidation/ModelInfoNoModelType.json b/mso-api-handlers/mso-api-handler-infra/src/test/resources/Validation/UserParamsValidation/ModelInfoNoModelType.json
new file mode 100644 (file)
index 0000000..ffcb48d
--- /dev/null
@@ -0,0 +1,134 @@
+{
+  "requestDetails": {
+    "modelInfo": {
+      "modelInvariantId": "282bdcd2-34ed-4665-9ab2-63455814531d",
+      "modelType": "service",
+      "modelName": "MOW_ADIG_test_BV_IST",
+      "modelVersion": "1.0",
+      "modelVersionId": "109a153e-325f-4df5-8161-edd91314daee",
+      "modelUuid": "109a153e-325f-4df5-8161-edd91314daee",
+      "modelInvariantUuid": "282bdcd2-34ed-4665-9ab2-63455814531d"
+    },
+    "requestInfo": {
+      "productFamilyId": "testaaS",
+      "source": "VID",
+      "suppressRollback": false,
+      "requestorId": "ss616y",
+      "instanceName": "instanceName"
+    },
+    "subscriberInfo": {
+      "globalSubscriberId": "21014aa2-526b-11e6-beb8-9e71128cae77"
+    },
+    "requestParameters": {
+      "subscriptionServiceType": "test",
+      "userParams": [
+        {
+          "service": {
+            "modelInfo": {
+              "modelInvariantId": "282bdcd2-34ed-4665-9ab2-63455814531d",
+                     "modelName": "MOW_ADIG_test_BV_IST",
+                     "modelVersion": "1.0",
+                     "modelVersionId": "109a153e-325f-4df5-8161-edd91314daee",
+                     "modelUuid": "109a153e-325f-4df5-8161-edd91314daee",
+                     "modelInvariantUuid": "282bdcd2-34ed-4665-9ab2-63455814531d"
+            },
+            "instanceName" : "test",
+            "instanceParams": [
+              {
+                "mow_adig_test_bv_ist0_bandwidth": "10",
+                "mow_adig_test_bv_ist0_ASN": "2685",
+                "mow_adig_test_bv_ist0_availability_zone_0": "mdt25b-kvm-az01",
+                "mow_adig_test_bv_ist0_AIC_CLLI": "MTSNJA4LCP1",
+                "mow_adig_test_bv_ist0_vnf_config_template_version": "17.2",
+                "mow_adig_test_bv_ist0_vnf_instance_name": "wswdc403me6",
+                "mow_adig_test_bv_ist0_bandwidth_units": "Gbps"
+              }
+            ],
+            "resources": {
+              "vnfs": [
+                {
+                  "modelInfo": {
+                    "modelCustomizationName": "MOW_ADIG_test_BV_IST 0",
+                    "modelCustomizationId": "31d41ef2-0a3e-43bf-a4f0-0b1f31b1cbac",
+                    "modelInvariantId": "33fb95d0-5f18-4dfb-8e7d-0c8ac8d743c5",
+                    "modelVersionId": "bdf50902-4b07-4dcf-a2e2-ec6cfe568798",
+                    "modelName": "MOW_ADIG_test_BV_IST",
+                    "modelType": "service",
+                    "modelVersion": "2.0"
+                  },
+                  "cloudConfiguration": {
+                    "lcpCloudRegionId": "mdt25b",
+                    "tenantId": "aefb697db6524ddebfe4915591b0a347"
+                  },
+                  "platform": {
+                    "platformName": "AIC"
+                  },
+                  "lineOfBusiness": {},
+                  "productFamilyId": "testaaS",
+                  "instanceParams": [
+                         {
+                               "mow_adig_test_bv_ist0_vnf_config_template": "17.2",
+                               "mow_adig_test_bv_ist0_vnf_instance": "wswdc403me6",
+                               "mow_adig_test_bv_ist0_bandwidth": "Gbps"
+                         }
+                  ],
+                  "vfModules": [
+                    {
+                      "modelInfo": {
+                        "modelCustomizationName": "MowAdigtestBvIst..ADIG_vRE_BV_v2..module-1",
+                        "modelCustomizationId": "34c57c2d-cf19-4926-9296-acde6a967f70",
+                        "modelInvariantId": "f3093158-a609-41d5-a2fb-07dbc0ca8096",
+                        "modelVersionId": "2507f79d-6e1b-413b-b2a8-c434113ff862",
+                        "modelName": "MowAdigtestBvIst..ADIG_vRE_BV_v2..module-1",
+                        "modelType": "service",
+                        "modelVersion": "1"
+                      },
+                      "instanceParams": [
+                       {
+                                       "mow_adig_test_ist0_vnf_config_template_version": "17.2",
+                                       "mow_adig_test_ist0_vnf_instance_name": "wswdc403me6",
+                                       "mow_adig_test_ist0_bandwidth_units": "Gbps"
+                               }
+                      ]
+                    },
+                    {
+                      "modelInfo": {
+                        "modelCustomizationName": "MowAdigtestBvIst..ADIG_base_test_BV_v2..module-0",
+                        "modelCustomizationId": "f4a414c4-b71a-43ed-82be-51478d7e154f",
+                        "modelInvariantId": "af867fdc-3808-4b62-ae76-bdb1b9ae7ee8",
+                        "modelVersionId": "3fcf6cb6-2ef2-4154-99a6-06ce889c79f1",
+                        "modelName": "MowAdigtestBvIst..ADIG_base_test_BV_v2..module-0",
+                        "modelType": "service",
+                        "modelVersion": "1"
+                      },
+                      "instanceParams": []
+                    },
+                    {
+                      "modelInfo": {
+                        "modelCustomizationName": "MowAdigtestBvIst..ADIG_vPFE_BV_v2..module-2",
+                        "modelCustomizationId": "583c2280-23d9-4338-a607-69c238d4899d",
+                        "modelInvariantId": "90c2be4f-cb6f-4e75-9c65-04fdc5c30cef",
+                        "modelVersionId": "7c8a69e0-6612-4b7b-8e9c-fb8b9f31cb4f",
+                        "modelName": "MowAdigtestBvIst..ADIG_vPFE_BV_v2..module-2",
+                        "modelType": "service",
+                        "modelVersion": "1"
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          }
+        }
+      ],
+      "aLaCarte": false
+    },
+    "project": {
+      "projectName": "GigaPower"
+    },
+    "owningEntity": {
+      "owningEntityId": "2811e2fb-005e-40de-990b-c0794f362399",
+      "owningEntityName": "PACKET-CORE"
+    }
+  }
+}
\ No newline at end of file
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/resources/Validation/UserParamsValidation/ModelInvariantId.json b/mso-api-handlers/mso-api-handler-infra/src/test/resources/Validation/UserParamsValidation/ModelInvariantId.json
new file mode 100644 (file)
index 0000000..13796ed
--- /dev/null
@@ -0,0 +1,135 @@
+{
+  "requestDetails": {
+    "modelInfo": {
+      "modelInvariantId": "282bdcd2-34ed-4665-9ab2-63455814531d",
+      "modelType": "service",
+      "modelName": "MOW_ADIG_test_BV_IST",
+      "modelVersion": "1.0",
+      "modelVersionId": "109a153e-325f-4df5-8161-edd91314daee",
+      "modelUuid": "109a153e-325f-4df5-8161-edd91314daee",
+      "modelInvariantUuid": "282bdcd2-34ed-4665-9ab2-63455814531d"
+    },
+    "requestInfo": {
+      "productFamilyId": "testaaS",
+      "source": "VID",
+      "suppressRollback": false,
+      "requestorId": "ss616y",
+      "instanceName": "instanceName"
+    },
+    "subscriberInfo": {
+      "globalSubscriberId": "21014aa2-526b-11e6-beb8-9e71128cae77"
+    },
+    "requestParameters": {
+      "subscriptionServiceType": "test",
+      "userParams": [
+        {
+          "service": {
+            "modelInfo": {
+              "modelInvariantId": "282bdcd2-34ed-4665-9ab2-63455814531e",
+                     "modelType": "service",
+                     "modelName": "MOW_ADIG_test_BV_IST",
+                     "modelVersion": "1.0",
+                     "modelVersionId": "109a153e-325f-4df5-8161-edd91314daee",
+                     "modelUuid": "109a153e-325f-4df5-8161-edd91314daee",
+                     "modelInvariantUuid": "282bdcd2-34ed-4665-9ab2-63455814531d"
+            },
+            "instanceName" : "test",
+            "instanceParams": [
+              {
+                "mow_adig_test_bv_ist0_bandwidth": "10",
+                "mow_adig_test_bv_ist0_ASN": "2685",
+                "mow_adig_test_bv_ist0_availability_zone_0": "mdt25b-kvm-az01",
+                "mow_adig_test_bv_ist0_AIC_CLLI": "MTSNJA4LCP1",
+                "mow_adig_test_bv_ist0_vnf_config_template_version": "17.2",
+                "mow_adig_test_bv_ist0_vnf_instance_name": "wswdc403me6",
+                "mow_adig_test_bv_ist0_bandwidth_units": "Gbps"
+              }
+            ],
+            "resources": {
+              "vnfs": [
+                {
+                  "modelInfo": {
+                    "modelCustomizationName": "MOW_ADIG_test_BV_IST 0",
+                    "modelCustomizationId": "31d41ef2-0a3e-43bf-a4f0-0b1f31b1cbac",
+                    "modelInvariantId": "33fb95d0-5f18-4dfb-8e7d-0c8ac8d743c5",
+                    "modelVersionId": "bdf50902-4b07-4dcf-a2e2-ec6cfe568798",
+                    "modelName": "MOW_ADIG_test_BV_IST",
+                    "modelType": "service",
+                    "modelVersion": "2.0"
+                  },
+                  "cloudConfiguration": {
+                    "lcpCloudRegionId": "mdt25b",
+                    "tenantId": "aefb697db6524ddebfe4915591b0a347"
+                  },
+                  "platform": {
+                    "platformName": "AIC"
+                  },
+                  "lineOfBusiness": {},
+                  "productFamilyId": "testaaS",
+                  "instanceParams": [
+                         {
+                               "mow_adig_test_bv_ist0_vnf_config_template": "17.2",
+                               "mow_adig_test_bv_ist0_vnf_instance": "wswdc403me6",
+                               "mow_adig_test_bv_ist0_bandwidth": "Gbps"
+                         }
+                  ],
+                  "vfModules": [
+                    {
+                      "modelInfo": {
+                        "modelCustomizationName": "MowAdigtestBvIst..ADIG_vRE_BV_v2..module-1",
+                        "modelCustomizationId": "34c57c2d-cf19-4926-9296-acde6a967f70",
+                        "modelInvariantId": "f3093158-a609-41d5-a2fb-07dbc0ca8096",
+                        "modelVersionId": "2507f79d-6e1b-413b-b2a8-c434113ff862",
+                        "modelName": "MowAdigtestBvIst..ADIG_vRE_BV_v2..module-1",
+                        "modelType": "service",
+                        "modelVersion": "1"
+                      },
+                      "instanceParams": [
+                       {
+                                       "mow_adig_test_ist0_vnf_config_template_version": "17.2",
+                                       "mow_adig_test_ist0_vnf_instance_name": "wswdc403me6",
+                                       "mow_adig_test_ist0_bandwidth_units": "Gbps"
+                               }
+                      ]
+                    },
+                    {
+                      "modelInfo": {
+                        "modelCustomizationName": "MowAdigtestBvIst..ADIG_base_test_BV_v2..module-0",
+                        "modelCustomizationId": "f4a414c4-b71a-43ed-82be-51478d7e154f",
+                        "modelInvariantId": "af867fdc-3808-4b62-ae76-bdb1b9ae7ee8",
+                        "modelVersionId": "3fcf6cb6-2ef2-4154-99a6-06ce889c79f1",
+                        "modelName": "MowAdigtestBvIst..ADIG_base_test_BV_v2..module-0",
+                        "modelType": "service",
+                        "modelVersion": "1"
+                      },
+                      "instanceParams": []
+                    },
+                    {
+                      "modelInfo": {
+                        "modelCustomizationName": "MowAdigtestBvIst..ADIG_vPFE_BV_v2..module-2",
+                        "modelCustomizationId": "583c2280-23d9-4338-a607-69c238d4899d",
+                        "modelInvariantId": "90c2be4f-cb6f-4e75-9c65-04fdc5c30cef",
+                        "modelVersionId": "7c8a69e0-6612-4b7b-8e9c-fb8b9f31cb4f",
+                        "modelName": "MowAdigtestBvIst..ADIG_vPFE_BV_v2..module-2",
+                        "modelType": "service",
+                        "modelVersion": "1"
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          }
+        }
+      ],
+      "aLaCarte": false
+    },
+    "project": {
+      "projectName": "GigaPower"
+    },
+    "owningEntity": {
+      "owningEntityId": "2811e2fb-005e-40de-990b-c0794f362399",
+      "owningEntityName": "PACKET-CORE"
+    }
+  }
+}
\ No newline at end of file
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/resources/Validation/UserParamsValidation/ModelName.json b/mso-api-handlers/mso-api-handler-infra/src/test/resources/Validation/UserParamsValidation/ModelName.json
new file mode 100644 (file)
index 0000000..0410b9c
--- /dev/null
@@ -0,0 +1,135 @@
+{
+  "requestDetails": {
+    "modelInfo": {
+      "modelInvariantId": "282bdcd2-34ed-4665-9ab2-63455814531d",
+      "modelType": "service",
+      "modelName": "MOW_ADIG_test_BV_IST",
+      "modelVersion": "1.0",
+      "modelVersionId": "109a153e-325f-4df5-8161-edd91314daee",
+      "modelUuid": "109a153e-325f-4df5-8161-edd91314daee",
+      "modelInvariantUuid": "282bdcd2-34ed-4665-9ab2-63455814531d"
+    },
+    "requestInfo": {
+      "productFamilyId": "testaaS",
+      "source": "VID",
+      "suppressRollback": false,
+      "requestorId": "ss616y",
+      "instanceName": "instanceName"
+    },
+    "subscriberInfo": {
+      "globalSubscriberId": "21014aa2-526b-11e6-beb8-9e71128cae77"
+    },
+    "requestParameters": {
+      "subscriptionServiceType": "test",
+      "userParams": [
+        {
+          "service": {
+            "modelInfo": {
+              "modelInvariantId": "282bdcd2-34ed-4665-9ab2-63455814531d",
+                     "modelType": "service",
+                     "modelName": "MOW_ADIG_test_BV_IST2",
+                     "modelVersion": "1.0",
+                     "modelVersionId": "109a153e-325f-4df5-8161-edd91314daee",
+                     "modelUuid": "109a153e-325f-4df5-8161-edd91314daee",
+                     "modelInvariantUuid": "282bdcd2-34ed-4665-9ab2-63455814531d"
+            },
+            "instanceName" : "test",
+            "instanceParams": [
+              {
+                "mow_adig_test_bv_ist0_bandwidth": "10",
+                "mow_adig_test_bv_ist0_ASN": "2685",
+                "mow_adig_test_bv_ist0_availability_zone_0": "mdt25b-kvm-az01",
+                "mow_adig_test_bv_ist0_AIC_CLLI": "MTSNJA4LCP1",
+                "mow_adig_test_bv_ist0_vnf_config_template_version": "17.2",
+                "mow_adig_test_bv_ist0_vnf_instance_name": "wswdc403me6",
+                "mow_adig_test_bv_ist0_bandwidth_units": "Gbps"
+              }
+            ],
+            "resources": {
+              "vnfs": [
+                {
+                  "modelInfo": {
+                    "modelCustomizationName": "MOW_ADIG_test_BV_IST 0",
+                    "modelCustomizationId": "31d41ef2-0a3e-43bf-a4f0-0b1f31b1cbac",
+                    "modelInvariantId": "33fb95d0-5f18-4dfb-8e7d-0c8ac8d743c5",
+                    "modelVersionId": "bdf50902-4b07-4dcf-a2e2-ec6cfe568798",
+                    "modelName": "MOW_ADIG_test_BV_IST",
+                    "modelType": "service",
+                    "modelVersion": "2.0"
+                  },
+                  "cloudConfiguration": {
+                    "lcpCloudRegionId": "mdt25b",
+                    "tenantId": "aefb697db6524ddebfe4915591b0a347"
+                  },
+                  "platform": {
+                    "platformName": "AIC"
+                  },
+                  "lineOfBusiness": {},
+                  "productFamilyId": "testaaS",
+                  "instanceParams": [
+                         {
+                               "mow_adig_test_bv_ist0_vnf_config_template": "17.2",
+                               "mow_adig_test_bv_ist0_vnf_instance": "wswdc403me6",
+                               "mow_adig_test_bv_ist0_bandwidth": "Gbps"
+                         }
+                  ],
+                  "vfModules": [
+                    {
+                      "modelInfo": {
+                        "modelCustomizationName": "MowAdigtestBvIst..ADIG_vRE_BV_v2..module-1",
+                        "modelCustomizationId": "34c57c2d-cf19-4926-9296-acde6a967f70",
+                        "modelInvariantId": "f3093158-a609-41d5-a2fb-07dbc0ca8096",
+                        "modelVersionId": "2507f79d-6e1b-413b-b2a8-c434113ff862",
+                        "modelName": "MowAdigtestBvIst..ADIG_vRE_BV_v2..module-1",
+                        "modelType": "service",
+                        "modelVersion": "1"
+                      },
+                      "instanceParams": [
+                       {
+                                       "mow_adig_test_ist0_vnf_config_template_version": "17.2",
+                                       "mow_adig_test_ist0_vnf_instance_name": "wswdc403me6",
+                                       "mow_adig_test_ist0_bandwidth_units": "Gbps"
+                               }
+                      ]
+                    },
+                    {
+                      "modelInfo": {
+                        "modelCustomizationName": "MowAdigtestBvIst..ADIG_base_test_BV_v2..module-0",
+                        "modelCustomizationId": "f4a414c4-b71a-43ed-82be-51478d7e154f",
+                        "modelInvariantId": "af867fdc-3808-4b62-ae76-bdb1b9ae7ee8",
+                        "modelVersionId": "3fcf6cb6-2ef2-4154-99a6-06ce889c79f1",
+                        "modelName": "MowAdigtestBvIst..ADIG_base_test_BV_v2..module-0",
+                        "modelType": "service",
+                        "modelVersion": "1"
+                      },
+                      "instanceParams": []
+                    },
+                    {
+                      "modelInfo": {
+                        "modelCustomizationName": "MowAdigtestBvIst..ADIG_vPFE_BV_v2..module-2",
+                        "modelCustomizationId": "583c2280-23d9-4338-a607-69c238d4899d",
+                        "modelInvariantId": "90c2be4f-cb6f-4e75-9c65-04fdc5c30cef",
+                        "modelVersionId": "7c8a69e0-6612-4b7b-8e9c-fb8b9f31cb4f",
+                        "modelName": "MowAdigtestBvIst..ADIG_vPFE_BV_v2..module-2",
+                        "modelType": "service",
+                        "modelVersion": "1"
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          }
+        }
+      ],
+      "aLaCarte": false
+    },
+    "project": {
+      "projectName": "GigaPower"
+    },
+    "owningEntity": {
+      "owningEntityId": "2811e2fb-005e-40de-990b-c0794f362399",
+      "owningEntityName": "PACKET-CORE"
+    }
+  }
+}
\ No newline at end of file
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/resources/Validation/UserParamsValidation/ModelType.json b/mso-api-handlers/mso-api-handler-infra/src/test/resources/Validation/UserParamsValidation/ModelType.json
new file mode 100644 (file)
index 0000000..f287864
--- /dev/null
@@ -0,0 +1,135 @@
+{
+  "requestDetails": {
+    "modelInfo": {
+      "modelInvariantId": "282bdcd2-34ed-4665-9ab2-63455814531d",
+      "modelType": "service",
+      "modelName": "MOW_ADIG_test_BV_IST",
+      "modelVersion": "1.0",
+      "modelVersionId": "109a153e-325f-4df5-8161-edd91314daee",
+      "modelUuid": "109a153e-325f-4df5-8161-edd91314daee",
+      "modelInvariantUuid": "282bdcd2-34ed-4665-9ab2-63455814531d"
+    },
+    "requestInfo": {
+      "productFamilyId": "testaaS",
+      "source": "VID",
+      "suppressRollback": false,
+      "requestorId": "ss616y",
+      "instanceName": "instanceName"
+    },
+    "subscriberInfo": {
+      "globalSubscriberId": "21014aa2-526b-11e6-beb8-9e71128cae77"
+    },
+    "requestParameters": {
+      "subscriptionServiceType": "test",
+      "userParams": [
+        {
+          "service": {
+            "modelInfo": {
+              "modelInvariantId": "282bdcd2-34ed-4665-9ab2-63455814531d",
+                     "modelType": "vnf",
+                     "modelName": "MOW_ADIG_test_BV_IST",
+                     "modelVersion": "1.0",
+                     "modelVersionId": "109a153e-325f-4df5-8161-edd91314daee",
+                     "modelUuid": "109a153e-325f-4df5-8161-edd91314daee",
+                     "modelInvariantUuid": "282bdcd2-34ed-4665-9ab2-63455814531d"
+            },
+            "instanceName" : "test",
+            "instanceParams": [
+              {
+                "mow_adig_test_bv_ist0_bandwidth": "10",
+                "mow_adig_test_bv_ist0_ASN": "2685",
+                "mow_adig_test_bv_ist0_availability_zone_0": "mdt25b-kvm-az01",
+                "mow_adig_test_bv_ist0_AIC_CLLI": "MTSNJA4LCP1",
+                "mow_adig_test_bv_ist0_vnf_config_template_version": "17.2",
+                "mow_adig_test_bv_ist0_vnf_instance_name": "wswdc403me6",
+                "mow_adig_test_bv_ist0_bandwidth_units": "Gbps"
+              }
+            ],
+            "resources": {
+              "vnfs": [
+                {
+                  "modelInfo": {
+                    "modelCustomizationName": "MOW_ADIG_test_BV_IST 0",
+                    "modelCustomizationId": "31d41ef2-0a3e-43bf-a4f0-0b1f31b1cbac",
+                    "modelInvariantId": "33fb95d0-5f18-4dfb-8e7d-0c8ac8d743c5",
+                    "modelVersionId": "bdf50902-4b07-4dcf-a2e2-ec6cfe568798",
+                    "modelName": "MOW_ADIG_test_BV_IST",
+                    "modelType": "service",
+                    "modelVersion": "2.0"
+                  },
+                  "cloudConfiguration": {
+                    "lcpCloudRegionId": "mdt25b",
+                    "tenantId": "aefb697db6524ddebfe4915591b0a347"
+                  },
+                  "platform": {
+                    "platformName": "AIC"
+                  },
+                  "lineOfBusiness": {},
+                  "productFamilyId": "testaaS",
+                  "instanceParams": [
+                         {
+                               "mow_adig_test_bv_ist0_vnf_config_template": "17.2",
+                               "mow_adig_test_bv_ist0_vnf_instance": "wswdc403me6",
+                               "mow_adig_test_bv_ist0_bandwidth": "Gbps"
+                         }
+                  ],
+                  "vfModules": [
+                    {
+                      "modelInfo": {
+                        "modelCustomizationName": "MowAdigtestBvIst..ADIG_vRE_BV_v2..module-1",
+                        "modelCustomizationId": "34c57c2d-cf19-4926-9296-acde6a967f70",
+                        "modelInvariantId": "f3093158-a609-41d5-a2fb-07dbc0ca8096",
+                        "modelVersionId": "2507f79d-6e1b-413b-b2a8-c434113ff862",
+                        "modelName": "MowAdigtestBvIst..ADIG_vRE_BV_v2..module-1",
+                        "modelType": "service",
+                        "modelVersion": "1"
+                      },
+                      "instanceParams": [
+                       {
+                                       "mow_adig_test_ist0_vnf_config_template_version": "17.2",
+                                       "mow_adig_test_ist0_vnf_instance_name": "wswdc403me6",
+                                       "mow_adig_test_ist0_bandwidth_units": "Gbps"
+                               }
+                      ]
+                    },
+                    {
+                      "modelInfo": {
+                        "modelCustomizationName": "MowAdigtestBvIst..ADIG_base_test_BV_v2..module-0",
+                        "modelCustomizationId": "f4a414c4-b71a-43ed-82be-51478d7e154f",
+                        "modelInvariantId": "af867fdc-3808-4b62-ae76-bdb1b9ae7ee8",
+                        "modelVersionId": "3fcf6cb6-2ef2-4154-99a6-06ce889c79f1",
+                        "modelName": "MowAdigtestBvIst..ADIG_base_test_BV_v2..module-0",
+                        "modelType": "service",
+                        "modelVersion": "1"
+                      },
+                      "instanceParams": []
+                    },
+                    {
+                      "modelInfo": {
+                        "modelCustomizationName": "MowAdigtestBvIst..ADIG_vPFE_BV_v2..module-2",
+                        "modelCustomizationId": "583c2280-23d9-4338-a607-69c238d4899d",
+                        "modelInvariantId": "90c2be4f-cb6f-4e75-9c65-04fdc5c30cef",
+                        "modelVersionId": "7c8a69e0-6612-4b7b-8e9c-fb8b9f31cb4f",
+                        "modelName": "MowAdigtestBvIst..ADIG_vPFE_BV_v2..module-2",
+                        "modelType": "service",
+                        "modelVersion": "1"
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          }
+        }
+      ],
+      "aLaCarte": false
+    },
+    "project": {
+      "projectName": "GigaPower"
+    },
+    "owningEntity": {
+      "owningEntityId": "2811e2fb-005e-40de-990b-c0794f362399",
+      "owningEntityName": "PACKET-CORE"
+    }
+  }
+}
\ No newline at end of file
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/resources/Validation/UserParamsValidation/ModelVersion.json b/mso-api-handlers/mso-api-handler-infra/src/test/resources/Validation/UserParamsValidation/ModelVersion.json
new file mode 100644 (file)
index 0000000..ed2dffe
--- /dev/null
@@ -0,0 +1,135 @@
+{
+  "requestDetails": {
+    "modelInfo": {
+      "modelInvariantId": "282bdcd2-34ed-4665-9ab2-63455814531d",
+      "modelType": "service",
+      "modelName": "MOW_ADIG_test_BV_IST",
+      "modelVersion": "1.0",
+      "modelVersionId": "109a153e-325f-4df5-8161-edd91314daee",
+      "modelUuid": "109a153e-325f-4df5-8161-edd91314daee",
+      "modelInvariantUuid": "282bdcd2-34ed-4665-9ab2-63455814531d"
+    },
+    "requestInfo": {
+      "productFamilyId": "testaaS",
+      "source": "VID",
+      "suppressRollback": false,
+      "requestorId": "ss616y",
+      "instanceName": "instanceName"
+    },
+    "subscriberInfo": {
+      "globalSubscriberId": "21014aa2-526b-11e6-beb8-9e71128cae77"
+    },
+    "requestParameters": {
+      "subscriptionServiceType": "test",
+      "userParams": [
+        {
+          "service": {
+            "modelInfo": {
+              "modelInvariantId": "282bdcd2-34ed-4665-9ab2-63455814531d",
+                     "modelType": "service",
+                     "modelName": "MOW_ADIG_test_BV_IST",
+                     "modelVersion": "2.0",
+                     "modelVersionId": "109a153e-325f-4df5-8161-edd91314daee",
+                     "modelUuid": "109a153e-325f-4df5-8161-edd91314daee",
+                     "modelInvariantUuid": "282bdcd2-34ed-4665-9ab2-63455814531d"
+            },
+            "instanceName" : "test",
+            "instanceParams": [
+              {
+                "mow_adig_test_bv_ist0_bandwidth": "10",
+                "mow_adig_test_bv_ist0_ASN": "2685",
+                "mow_adig_test_bv_ist0_availability_zone_0": "mdt25b-kvm-az01",
+                "mow_adig_test_bv_ist0_AIC_CLLI": "MTSNJA4LCP1",
+                "mow_adig_test_bv_ist0_vnf_config_template_version": "17.2",
+                "mow_adig_test_bv_ist0_vnf_instance_name": "wswdc403me6",
+                "mow_adig_test_bv_ist0_bandwidth_units": "Gbps"
+              }
+            ],
+            "resources": {
+              "vnfs": [
+                {
+                  "modelInfo": {
+                    "modelCustomizationName": "MOW_ADIG_test_BV_IST 0",
+                    "modelCustomizationId": "31d41ef2-0a3e-43bf-a4f0-0b1f31b1cbac",
+                    "modelInvariantId": "33fb95d0-5f18-4dfb-8e7d-0c8ac8d743c5",
+                    "modelVersionId": "bdf50902-4b07-4dcf-a2e2-ec6cfe568798",
+                    "modelName": "MOW_ADIG_test_BV_IST",
+                    "modelType": "service",
+                    "modelVersion": "2.0"
+                  },
+                  "cloudConfiguration": {
+                    "lcpCloudRegionId": "mdt25b",
+                    "tenantId": "aefb697db6524ddebfe4915591b0a347"
+                  },
+                  "platform": {
+                    "platformName": "AIC"
+                  },
+                  "lineOfBusiness": {},
+                  "productFamilyId": "testaaS",
+                  "instanceParams": [
+                         {
+                               "mow_adig_test_bv_ist0_vnf_config_template": "17.2",
+                               "mow_adig_test_bv_ist0_vnf_instance": "wswdc403me6",
+                               "mow_adig_test_bv_ist0_bandwidth": "Gbps"
+                         }
+                  ],
+                  "vfModules": [
+                    {
+                      "modelInfo": {
+                        "modelCustomizationName": "MowAdigtestBvIst..ADIG_vRE_BV_v2..module-1",
+                        "modelCustomizationId": "34c57c2d-cf19-4926-9296-acde6a967f70",
+                        "modelInvariantId": "f3093158-a609-41d5-a2fb-07dbc0ca8096",
+                        "modelVersionId": "2507f79d-6e1b-413b-b2a8-c434113ff862",
+                        "modelName": "MowAdigtestBvIst..ADIG_vRE_BV_v2..module-1",
+                        "modelType": "service",
+                        "modelVersion": "1"
+                      },
+                      "instanceParams": [
+                       {
+                                       "mow_adig_test_ist0_vnf_config_template_version": "17.2",
+                                       "mow_adig_test_ist0_vnf_instance_name": "wswdc403me6",
+                                       "mow_adig_test_ist0_bandwidth_units": "Gbps"
+                               }
+                      ]
+                    },
+                    {
+                      "modelInfo": {
+                        "modelCustomizationName": "MowAdigtestBvIst..ADIG_base_test_BV_v2..module-0",
+                        "modelCustomizationId": "f4a414c4-b71a-43ed-82be-51478d7e154f",
+                        "modelInvariantId": "af867fdc-3808-4b62-ae76-bdb1b9ae7ee8",
+                        "modelVersionId": "3fcf6cb6-2ef2-4154-99a6-06ce889c79f1",
+                        "modelName": "MowAdigtestBvIst..ADIG_base_test_BV_v2..module-0",
+                        "modelType": "service",
+                        "modelVersion": "1"
+                      },
+                      "instanceParams": []
+                    },
+                    {
+                      "modelInfo": {
+                        "modelCustomizationName": "MowAdigtestBvIst..ADIG_vPFE_BV_v2..module-2",
+                        "modelCustomizationId": "583c2280-23d9-4338-a607-69c238d4899d",
+                        "modelInvariantId": "90c2be4f-cb6f-4e75-9c65-04fdc5c30cef",
+                        "modelVersionId": "7c8a69e0-6612-4b7b-8e9c-fb8b9f31cb4f",
+                        "modelName": "MowAdigtestBvIst..ADIG_vPFE_BV_v2..module-2",
+                        "modelType": "service",
+                        "modelVersion": "1"
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          }
+        }
+      ],
+      "aLaCarte": false
+    },
+    "project": {
+      "projectName": "GigaPower"
+    },
+    "owningEntity": {
+      "owningEntityId": "2811e2fb-005e-40de-990b-c0794f362399",
+      "owningEntityName": "PACKET-CORE"
+    }
+  }
+}
\ No newline at end of file
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/resources/Validation/UserParamsValidation/ModelVersionId.json b/mso-api-handlers/mso-api-handler-infra/src/test/resources/Validation/UserParamsValidation/ModelVersionId.json
new file mode 100644 (file)
index 0000000..feb08a3
--- /dev/null
@@ -0,0 +1,135 @@
+{
+  "requestDetails": {
+    "modelInfo": {
+      "modelInvariantId": "282bdcd2-34ed-4665-9ab2-63455814531d",
+      "modelType": "service",
+      "modelName": "MOW_ADIG_test_BV_IST",
+      "modelVersion": "1.0",
+      "modelVersionId": "109a153e-325f-4df5-8161-edd91314daee",
+      "modelUuid": "109a153e-325f-4df5-8161-edd91314daee",
+      "modelInvariantUuid": "282bdcd2-34ed-4665-9ab2-63455814531d"
+    },
+    "requestInfo": {
+      "productFamilyId": "testaaS",
+      "source": "VID",
+      "suppressRollback": false,
+      "requestorId": "ss616y",
+      "instanceName": "instanceName"
+    },
+    "subscriberInfo": {
+      "globalSubscriberId": "21014aa2-526b-11e6-beb8-9e71128cae77"
+    },
+    "requestParameters": {
+      "subscriptionServiceType": "test",
+      "userParams": [
+        {
+          "service": {
+            "modelInfo": {
+              "modelInvariantId": "282bdcd2-34ed-4665-9ab2-63455814531d",
+                     "modelType": "service",
+                     "modelName": "MOW_ADIG_test_BV_IST",
+                     "modelVersion": "1.0",
+                     "modelVersionId": "109a153e-325f-4df5-8161-edd91314daed",
+                     "modelUuid": "109a153e-325f-4df5-8161-edd91314daee",
+                     "modelInvariantUuid": "282bdcd2-34ed-4665-9ab2-63455814531d"
+            },
+            "instanceName" : "test",
+            "instanceParams": [
+              {
+                "mow_adig_test_bv_ist0_bandwidth": "10",
+                "mow_adig_test_bv_ist0_ASN": "2685",
+                "mow_adig_test_bv_ist0_availability_zone_0": "mdt25b-kvm-az01",
+                "mow_adig_test_bv_ist0_AIC_CLLI": "MTSNJA4LCP1",
+                "mow_adig_test_bv_ist0_vnf_config_template_version": "17.2",
+                "mow_adig_test_bv_ist0_vnf_instance_name": "wswdc403me6",
+                "mow_adig_test_bv_ist0_bandwidth_units": "Gbps"
+              }
+            ],
+            "resources": {
+              "vnfs": [
+                {
+                  "modelInfo": {
+                    "modelCustomizationName": "MOW_ADIG_test_BV_IST 0",
+                    "modelCustomizationId": "31d41ef2-0a3e-43bf-a4f0-0b1f31b1cbac",
+                    "modelInvariantId": "33fb95d0-5f18-4dfb-8e7d-0c8ac8d743c5",
+                    "modelVersionId": "bdf50902-4b07-4dcf-a2e2-ec6cfe568798",
+                    "modelName": "MOW_ADIG_test_BV_IST",
+                    "modelType": "service",
+                    "modelVersion": "2.0"
+                  },
+                  "cloudConfiguration": {
+                    "lcpCloudRegionId": "mdt25b",
+                    "tenantId": "aefb697db6524ddebfe4915591b0a347"
+                  },
+                  "platform": {
+                    "platformName": "AIC"
+                  },
+                  "lineOfBusiness": {},
+                  "productFamilyId": "testaaS",
+                  "instanceParams": [
+                         {
+                               "mow_adig_test_bv_ist0_vnf_config_template": "17.2",
+                               "mow_adig_test_bv_ist0_vnf_instance": "wswdc403me6",
+                               "mow_adig_test_bv_ist0_bandwidth": "Gbps"
+                         }
+                  ],
+                  "vfModules": [
+                    {
+                      "modelInfo": {
+                        "modelCustomizationName": "MowAdigtestBvIst..ADIG_vRE_BV_v2..module-1",
+                        "modelCustomizationId": "34c57c2d-cf19-4926-9296-acde6a967f70",
+                        "modelInvariantId": "f3093158-a609-41d5-a2fb-07dbc0ca8096",
+                        "modelVersionId": "2507f79d-6e1b-413b-b2a8-c434113ff862",
+                        "modelName": "MowAdigtestBvIst..ADIG_vRE_BV_v2..module-1",
+                        "modelType": "service",
+                        "modelVersion": "1"
+                      },
+                      "instanceParams": [
+                       {
+                                       "mow_adig_test_ist0_vnf_config_template_version": "17.2",
+                                       "mow_adig_test_ist0_vnf_instance_name": "wswdc403me6",
+                                       "mow_adig_test_ist0_bandwidth_units": "Gbps"
+                               }
+                      ]
+                    },
+                    {
+                      "modelInfo": {
+                        "modelCustomizationName": "MowAdigtestBvIst..ADIG_base_test_BV_v2..module-0",
+                        "modelCustomizationId": "f4a414c4-b71a-43ed-82be-51478d7e154f",
+                        "modelInvariantId": "af867fdc-3808-4b62-ae76-bdb1b9ae7ee8",
+                        "modelVersionId": "3fcf6cb6-2ef2-4154-99a6-06ce889c79f1",
+                        "modelName": "MowAdigtestBvIst..ADIG_base_test_BV_v2..module-0",
+                        "modelType": "service",
+                        "modelVersion": "1"
+                      },
+                      "instanceParams": []
+                    },
+                    {
+                      "modelInfo": {
+                        "modelCustomizationName": "MowAdigtestBvIst..ADIG_vPFE_BV_v2..module-2",
+                        "modelCustomizationId": "583c2280-23d9-4338-a607-69c238d4899d",
+                        "modelInvariantId": "90c2be4f-cb6f-4e75-9c65-04fdc5c30cef",
+                        "modelVersionId": "7c8a69e0-6612-4b7b-8e9c-fb8b9f31cb4f",
+                        "modelName": "MowAdigtestBvIst..ADIG_vPFE_BV_v2..module-2",
+                        "modelType": "service",
+                        "modelVersion": "1"
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          }
+        }
+      ],
+      "aLaCarte": false
+    },
+    "project": {
+      "projectName": "GigaPower"
+    },
+    "owningEntity": {
+      "owningEntityId": "2811e2fb-005e-40de-990b-c0794f362399",
+      "owningEntityName": "PACKET-CORE"
+    }
+  }
+}
\ No newline at end of file