--- /dev/null
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2018 Ericsson. 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.distribution.model;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Represents a CloudArtifact that a {@link Policy} can be decoded from.
+ */
+public class CloudArtifact implements PolicyInput {
+
+    List<VfModuelModel> vfModulePayload;
+    Map<String, String> artifactTypeMap;
+
+    public CloudArtifact(List<VfModuelModel> vfModulePayload, Map<String, String> artifactTypeMap) {
+        this.vfModulePayload = vfModulePayload;
+        this.artifactTypeMap = artifactTypeMap;
+    }
+
+    /**
+     * Get the path to the TOSCA file.
+     *
+     * @return the path of the TOSCA file
+     */
+    List<VfModuelModel> getVfModulePayload() {
+        return vfModulePayload;
+    }
+
+    /**
+     * Get the path to the TOSCA file.
+     *
+     * @return the path of the TOSCA file
+     */
+    Map<String, String> getArtifactTypeMap() {
+        return artifactTypeMap;
+    }
+
+}
 
--- /dev/null
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2018 Ericsson. 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.distribution.model;
+
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
+import java.util.List;
+/**
+ * A GsonUtil created by a {@link GsonUtil}.
+ */
+
+public class GsonUtil {
+    // 将Json数据解析成相应的映射对象
+    public static <T> T parseJsonWithGson(String jsonData, Class<T> type) {
+        Gson gson = new Gson();
+        T result = gson.fromJson(jsonData, type);
+        return result;
+    }
+
+    // 将Json数组解析成相应的映射对象列表
+    public static <T> List<T> parseJsonArrayWithGson(String jsonData,
+            Class<T> type) {
+        Gson gson = new Gson();
+        List<T> result = gson.fromJson(jsonData, new TypeToken<List<T>>() {}.getType());
+        return result;
+    }
+}
+
 
--- /dev/null
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2018 Ericsson. 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.distribution.model;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * Represents a VfModuleModel that a {@link VfModuleModel} can be parsed.
+ */
+
+public class VfModuelModel {
+
+    private String vfModuleModelName;
+    private String vfModuleModelInvariantUUID;
+    private String vfModuleModelVersion;
+    private String vfModuleModelUUID;
+    private String vfModuleModelCustomizationUUID;
+    private String vfModuleModelDescription;
+    private Boolean isBase;
+    private List<String> artifacts;
+    private Map<String, Object> properties;
+
+    public String getVfModuleModelName() {
+        return vfModuleModelName;
+    }
+
+    public String getVfModuleModelCustomizationUUID() {
+        return vfModuleModelCustomizationUUID;
+    }
+
+    public String getVfModuleModelDescription() {
+        return vfModuleModelDescription;
+    }
+
+    public List<String> getArtifacts() {
+        return artifacts;
+    }
+
+    public Map<String, Object> getProperties() {
+        return properties;
+    }
+}
 
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 -->
-<project 
-    xmlns="http://maven.apache.org/POM/4.0.0" 
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
         <groupId>org.onap.multicloud.framework</groupId>
         <artifactId>multicloud-framework</artifactId>
         <version.logback>1.2.3</version.logback>
         <policy.common.version>1.3.4</policy.common.version>
     </properties>
-
     <modules>
         <module>model</module>
         <module>main</module>
             <artifactId>capabilities</artifactId>
             <version>${policy.common.version}</version>
         </dependency>
-        <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
         <dependency>
             <groupId>com.fasterxml.jackson.core</groupId>
             <artifactId>jackson-databind</artifactId>
             <version>2.9.8</version>
         </dependency>
-        <!-- https://mvnrepository.com/artifact/org.json/json -->
         <dependency>
             <groupId>org.json</groupId>
             <artifactId>json</artifactId>
             <version>2.8.4</version>
         </dependency>
     </dependencies>
-
     <build>
         <plugins>
             <plugin>
                         </goals>
                         <phase>process-sources</phase>
                         <configuration>
-                            <!-- Use Google Java Style Guide:
-                            https://github.com/checkstyle/checkstyle/blob/master/src/main/resources/google_checks.xml
-                            with minor changes -->
                             <configLocation>onap-checkstyle/onap-java-style.xml</configLocation>
-                            <!-- <sourceDirectory> is needed so that checkstyle ignores the generated sources directory -->
                             <sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
                             <includeResources>true</includeResources>
                             <includeTestSourceDirectory>true</includeTestSourceDirectory>
                             </excludes>
                             <consoleOutput>true</consoleOutput>
                             <failOnViolation>true</failOnViolation>
-                            <violationSeverity>warning</violationSeverity>
+                            <violationSeverity>error</violationSeverity>
                         </configuration>
                     </execution>
                 </executions>
                     <artifactId>jacoco-maven-plugin</artifactId>
                     <version>${jacoco.version}</version>
                     <configuration>
-                        <!-- Note: This exclusion list should match <sonar.exclusions> property
-                            above -->
                         <excludes>
                             <exclude>**/gen/**</exclude>
                             <exclude>**/generated-sources/**</exclude>
                         </excludes>
                     </configuration>
                     <executions>
-                        <!-- Prepares the property pointing to the JaCoCo runtime agent which
-                            is passed as VM argument when Maven the Surefire plugin is executed. -->
                         <execution>
                             <id>pre-unit-test</id>
                             <goals>
                                 <destFile>${sonar.jacoco.reportPath}</destFile>
                             </configuration>
                         </execution>
-                        <!-- Ensures that the code coverage report for unit tests is created
-                            after unit tests have been run. -->
                         <execution>
                             <id>post-unit-test</id>
                             <phase>test</phase>
         </pluginManagement>
     </build>
 </project>
-</project>