summaryrefslogtreecommitdiffstats
path: root/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest')
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/pom.xml24
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/pom.xml133
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/EntitlementPools.java105
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/FeatureGroups.java108
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/LicenseAgreements.java109
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/LicenseKeyGroups.java104
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/VendorLicenseModels.java111
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapChoiceOrOtherDtoToChoiceOrOther.java36
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapChoiceOrOtherToChoiceOrOtherDto.java35
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapEntitlementPoolEntityToEntitlementPoolEntityDto.java53
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapEntitlementPoolRequestDtoToEntitlementPoolEntity.java51
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapFeatureGroupDescriptorDtoToFeatureGroupEntity.java36
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapFeatureGroupEntityToFeatureGroupDescriptorDto.java35
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapLicenseAgreementDescriptorDtoToLicenseAgreementEntity.java38
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapLicenseAgreementEntityToLicenseAgreementDescriptorDto.java38
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapLicenseKeyGroupEntityToLicenseKeyGroupEntityDto.java40
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapLicenseKeyGroupRequestDtoToLicenseKeyGroupEntity.java38
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapMultiChoiceOrOtherDtoToMultiChoiceOrOther.java36
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapMultiChoiceOrOtherToMultiChoiceOrOtherDto.java35
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapVendorLicenseModelRequestDtoToVendorLicenseModelEntity.java36
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapVersionedVendorLicenseModelToVendorLicenseModelEntityDto.java60
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/EntitlementPoolsImpl.java157
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/FeatureGroupsImpl.java169
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/LicenseAgreementsImpl.java186
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/LicenseKeyGroupsImpl.java159
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/VendorLicenseModelsImpl.java135
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/pom.xml30
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/ChoiceOrOtherDto.java75
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/EntitlementPoolEntityDto.java48
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/EntitlementPoolRequestDto.java144
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/FeatureGroupDescriptorDto.java59
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/FeatureGroupEntityDto.java69
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/FeatureGroupModelDto.java66
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/FeatureGroupRequestDto.java48
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/FeatureGroupUpdateRequestDto.java48
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseAgreementDescriptorDto.java74
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseAgreementEntityDto.java51
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseAgreementModelDto.java47
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseAgreementRequestDto.java39
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseAgreementUpdateRequestDto.java38
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseKeyGroupEntityDto.java45
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseKeyGroupRequestDto.java74
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/MultiChoiceOrOtherDto.java79
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/VendorLicenseModelActionRequestDto.java36
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/VendorLicenseModelEntityDto.java85
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/VendorLicenseModelRequestDto.java62
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/validation/ChoiceOrOtherSequenceProvider.java45
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/validation/MultiChoiceOrOtherSequenceProvider.java47
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/validation/OtherChoiceValidation.java24
49 files changed, 3400 insertions, 0 deletions
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/pom.xml b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/pom.xml
new file mode 100644
index 0000000000..6c8a7376a2
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/pom.xml
@@ -0,0 +1,24 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-rest-webapp</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <relativePath>../</relativePath>
+ </parent>
+
+ <groupId>org.openecomp.sdc.onboarding</groupId>
+ <artifactId>vendor-license-rest</artifactId>
+ <name>vendor-license-rest</name>
+ <packaging>pom</packaging>
+
+
+
+ <modules>
+ <module>/vendor-license-rest-services</module>
+ <module>/vendor-license-rest-types</module>
+ </modules>
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/pom.xml b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/pom.xml
new file mode 100644
index 0000000000..86f7ebde14
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/pom.xml
@@ -0,0 +1,133 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.openecomp.sdc.onboarding</groupId>
+ <artifactId>vendor-license-rest</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <relativePath>../</relativePath>
+ </parent>
+
+ <artifactId>vendor-license-rest-services</artifactId>
+ <name>vendor-license-rest-services</name>
+
+
+
+
+ <properties>
+ <errorcode.dir>${project.build.directory}/generated-sources/error-codes</errorcode.dir>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>vendor-license-rest-types</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-vendor-license-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-vendor-license-manager</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+
+ <!-- Spring -->
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-core</artifactId>
+ <version>${spring.framework.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ <version>${spring.framework.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context-support</artifactId>
+ <version>${spring.framework.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-web</artifactId>
+ <version>${spring.framework.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-beans</artifactId>
+ <version>${spring.framework.version}</version>
+ </dependency>
+
+ <!-- CXF -->
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-frontend-jaxrs</artifactId>
+ <version>${cxf.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpclient</artifactId>
+ <version>${http.client.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpcore</artifactId>
+ <version>${http.client.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.ws.rs</groupId>
+ <artifactId>javax.ws.rs-api</artifactId>
+ <version>${ws.rs.version}</version>
+ </dependency>
+
+ <!-- Other Stuff-->
+ <dependency>
+ <groupId>cglib</groupId>
+ <artifactId>cglib-nodep</artifactId>
+ <version>${cglib.nodep.version}</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <!-- Java Stuff -->
+ <dependency>
+ <groupId>javax.inject</groupId>
+ <artifactId>javax.inject</artifactId>
+ <version>${javax.inject.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-vendor-software-product-manager</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ </dependencies>
+
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <includes>
+ <include>test/core/unittest/offline/**</include>
+ </includes>
+ <skipTests>true</skipTests>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+
+
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/EntitlementPools.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/EntitlementPools.java
new file mode 100644
index 0000000000..9dea767f7d
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/EntitlementPools.java
@@ -0,0 +1,105 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.rest;
+
+import static org.openecomp.sdcrests.common.RestConstants.USER_HEADER_PARAM;
+import static org.openecomp.sdcrests.common.RestConstants.USER_MISSING_ERROR_MSG;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdcrests.vendorlicense.types.EntitlementPoolEntityDto;
+import org.openecomp.sdcrests.vendorlicense.types.EntitlementPoolRequestDto;
+import org.springframework.validation.annotation.Validated;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.HeaderParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+@Path("/v1.0/vendor-license-models/{vlmId}/entitlement-pools")
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+@Api(value = "Vendor License Model - Entitlement Pools")
+@Validated
+public interface EntitlementPools {
+ @GET
+ @Path("/")
+ @ApiOperation(value = "List vendor entitlement pools",
+ response = EntitlementPoolEntityDto.class,
+ responseContainer = "List")
+ Response listEntitlementPools(
+ @ApiParam(value = "Vendor license model Id") @PathParam("vlmId") String vlmId,
+ @Pattern(regexp = Version.VERSION_REGEX, message = Version.VERSION_STRING_VIOLATION_MSG)
+ @QueryParam("version") String version,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_HEADER_PARAM) String user);
+
+ @POST
+ @Path("/")
+ @ApiOperation(value = "Create vendor entitlement pool")
+ Response createEntitlementPool(@Valid EntitlementPoolRequestDto request,
+ @ApiParam(value = "Vendor license model Id") @PathParam("vlmId")
+ String vlmId,
+ @NotNull(message = USER_MISSING_ERROR_MSG)
+ @HeaderParam(USER_HEADER_PARAM) String user);
+
+ @PUT
+ @Path("/{entitlementPoolId}")
+ @ApiOperation(value = "Update vendor entitlement pool")
+ Response updateEntitlementPool(@Valid EntitlementPoolRequestDto request,
+ @ApiParam(value = "Vendor license model Id") @PathParam("vlmId")
+ String vlmId,
+ @NotNull(message = USER_MISSING_ERROR_MSG)
+ @PathParam("entitlementPoolId") String entitlementPoolId,
+ @HeaderParam(USER_HEADER_PARAM) String user);
+
+ @GET
+ @Path("/{entitlementPoolId}")
+ @ApiOperation(value = "Get vendor entitlement pool",
+ response = EntitlementPoolEntityDto.class)
+ Response getEntitlementPool(
+ @ApiParam(value = "Vendor license model Id") @PathParam("vlmId") String vlmId,
+ @Pattern(regexp = Version.VERSION_REGEX, message = Version.VERSION_STRING_VIOLATION_MSG)
+ @QueryParam("version") String version,
+ @PathParam("entitlementPoolId") String entitlementPoolId,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_HEADER_PARAM) String user);
+
+ @DELETE
+ @Path("/{entitlementPoolId}")
+ @ApiOperation(value = "Delete vendor entitlement pool")
+ Response deleteEntitlementPool(
+ @ApiParam(value = "Vendor license model Id") @PathParam("vlmId") String vlmId,
+ @PathParam("entitlementPoolId") String entitlementPoolId,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_HEADER_PARAM) String user);
+
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/FeatureGroups.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/FeatureGroups.java
new file mode 100644
index 0000000000..f5ad973cb0
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/FeatureGroups.java
@@ -0,0 +1,108 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.rest;
+
+import static org.openecomp.sdcrests.common.RestConstants.USER_HEADER_PARAM;
+import static org.openecomp.sdcrests.common.RestConstants.USER_MISSING_ERROR_MSG;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdcrests.vendorlicense.types.FeatureGroupEntityDto;
+import org.openecomp.sdcrests.vendorlicense.types.FeatureGroupModelDto;
+import org.openecomp.sdcrests.vendorlicense.types.FeatureGroupRequestDto;
+import org.openecomp.sdcrests.vendorlicense.types.FeatureGroupUpdateRequestDto;
+import org.springframework.validation.annotation.Validated;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.HeaderParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+@Path("/v1.0/vendor-license-models/{vlmId}/feature-groups")
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+@Api(value = "Vendor License Model - Feature Groups")
+@Validated
+public interface FeatureGroups {
+
+ @GET
+ @Path("/")
+ @ApiOperation(value = "List vendor feature groups",
+ response = FeatureGroupEntityDto.class,
+ responseContainer = "List")
+ Response listFeatureGroups(
+ @ApiParam(value = "Vendor license model Id") @PathParam("vlmId") String vlmId,
+ @Pattern(regexp = Version.VERSION_REGEX, message = Version.VERSION_STRING_VIOLATION_MSG)
+ @QueryParam("version") String version,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_HEADER_PARAM) String user);
+
+ @POST
+ @Path("/")
+ @ApiOperation(value = "Create vendor feature group")
+ Response createFeatureGroup(@Valid FeatureGroupRequestDto request,
+ @ApiParam(value = "Vendor license model Id") @PathParam("vlmId")
+ String vlmId,
+ @NotNull(message = USER_MISSING_ERROR_MSG)
+ @HeaderParam(USER_HEADER_PARAM) String user);
+
+ @PUT
+ @Path("/{featureGroupId}")
+ @ApiOperation(value = "Update vendor feature group")
+ Response updateFeatureGroup(@Valid FeatureGroupUpdateRequestDto request,
+ @ApiParam(value = "Vendor license model Id") @PathParam("vlmId")
+ String vlmId,
+ @PathParam("featureGroupId") String featureGroupId,
+ @NotNull(message = USER_MISSING_ERROR_MSG)
+ @HeaderParam(USER_HEADER_PARAM) String user);
+
+ @GET
+ @Path("/{featureGroupId}")
+ @ApiOperation(value = "Get vendor feature group",
+ response = FeatureGroupModelDto.class)
+ Response getFeatureGroup(
+ @ApiParam(value = "Vendor license model Id") @PathParam("vlmId") String vlmId,
+ @Pattern(regexp = Version.VERSION_REGEX, message = Version.VERSION_STRING_VIOLATION_MSG)
+ @QueryParam("version") String version,
+ @PathParam("featureGroupId") String featureGroupId,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_HEADER_PARAM) String user);
+
+ @DELETE
+ @Path("/{featureGroupId}")
+ @ApiOperation(value = "Delete vendor feature group")
+ Response deleteFeatureGroup(
+ @ApiParam(value = "Vendor license model Id") @PathParam("vlmId") String vlmId,
+ @PathParam("featureGroupId") String featureGroupId,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_HEADER_PARAM) String user);
+
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/LicenseAgreements.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/LicenseAgreements.java
new file mode 100644
index 0000000000..28d9f5a32f
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/LicenseAgreements.java
@@ -0,0 +1,109 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.rest;
+
+import static org.openecomp.sdcrests.common.RestConstants.USER_HEADER_PARAM;
+import static org.openecomp.sdcrests.common.RestConstants.USER_MISSING_ERROR_MSG;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdcrests.vendorlicense.types.LicenseAgreementEntityDto;
+import org.openecomp.sdcrests.vendorlicense.types.LicenseAgreementModelDto;
+import org.openecomp.sdcrests.vendorlicense.types.LicenseAgreementRequestDto;
+import org.openecomp.sdcrests.vendorlicense.types.LicenseAgreementUpdateRequestDto;
+import org.springframework.validation.annotation.Validated;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.HeaderParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+@Path("/v1.0/vendor-license-models/{vlmId}/license-agreements")
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+@Api(value = "Vendor License Model - License Agreements")
+@Validated
+
+public interface LicenseAgreements {
+
+ @GET
+ @Path("/")
+ @ApiOperation(value = "List vendor license agreements",
+ response = LicenseAgreementEntityDto.class,
+ responseContainer = "List")
+ Response listLicenseAgreements(
+ @ApiParam(value = "Vendor license model Id") @PathParam("vlmId") String vlmId,
+ @Pattern(regexp = Version.VERSION_REGEX, message = Version.VERSION_STRING_VIOLATION_MSG)
+ @QueryParam("version") String version,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_HEADER_PARAM) String user);
+
+ @POST
+ @Path("/")
+ @ApiOperation(value = "Create vendor license agreement")
+ Response createLicenseAgreement(@Valid LicenseAgreementRequestDto request,
+ @ApiParam(value = "Vendor license model Id") @PathParam("vlmId")
+ String vlmId,
+ @NotNull(message = USER_MISSING_ERROR_MSG)
+ @HeaderParam(USER_HEADER_PARAM) String user);
+
+ @PUT
+ @Path("/{licenseAgreementId}")
+ @ApiOperation(value = "Update vendor license agreement")
+ Response updateLicenseAgreement(@Valid LicenseAgreementUpdateRequestDto request,
+ @ApiParam(value = "Vendor license model Id") @PathParam("vlmId")
+ String vlmId,
+ @PathParam("licenseAgreementId") String licenseAgreementId,
+ @NotNull(message = USER_MISSING_ERROR_MSG)
+ @HeaderParam(USER_HEADER_PARAM) String user);
+
+ @GET
+ @Path("/{licenseAgreementId}")
+ @ApiOperation(value = "Get vendor license agreement",
+ response = LicenseAgreementModelDto.class)
+ Response getLicenseAgreement(
+ @ApiParam(value = "Vendor license model Id") @PathParam("vlmId") String vlmId,
+ @Pattern(regexp = Version.VERSION_REGEX, message = Version.VERSION_STRING_VIOLATION_MSG)
+ @QueryParam("version") String version,
+ @PathParam("licenseAgreementId") String licenseAgreementId,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_HEADER_PARAM) String user);
+
+ @DELETE
+ @Path("/{licenseAgreementId}")
+ @ApiOperation(value = "Delete vendor license agreement")
+ Response deleteLicenseAgreement(
+ @ApiParam(value = "Vendor license model Id") @PathParam("vlmId") String vlmId,
+ @PathParam("licenseAgreementId") String licenseAgreementId,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_HEADER_PARAM) String user);
+
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/LicenseKeyGroups.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/LicenseKeyGroups.java
new file mode 100644
index 0000000000..d66945d63c
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/LicenseKeyGroups.java
@@ -0,0 +1,104 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.rest;
+
+import static org.openecomp.sdcrests.common.RestConstants.USER_HEADER_PARAM;
+import static org.openecomp.sdcrests.common.RestConstants.USER_MISSING_ERROR_MSG;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdcrests.vendorlicense.types.LicenseKeyGroupEntityDto;
+import org.openecomp.sdcrests.vendorlicense.types.LicenseKeyGroupRequestDto;
+import org.springframework.validation.annotation.Validated;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.HeaderParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+@Path("/v1.0/vendor-license-models/{vlmId}/license-key-groups")
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+@Api(value = "Vendor License Model - License Key Groups")
+@Validated
+public interface LicenseKeyGroups {
+ @GET
+ @Path("/")
+ @ApiOperation(value = "List vendor license key groups",
+ response = LicenseKeyGroupEntityDto.class,
+ responseContainer = "List")
+ Response listLicenseKeyGroups(
+ @ApiParam(value = "Vendor license model Id") @PathParam("vlmId") String vlmId,
+ @Pattern(regexp = Version.VERSION_REGEX, message = Version.VERSION_STRING_VIOLATION_MSG)
+ @QueryParam("version") String version,
+ @HeaderParam(USER_HEADER_PARAM) String user);
+
+ @POST
+ @Path("/")
+ @ApiOperation(value = "Create vendor license key group")
+ Response createLicenseKeyGroup(@Valid LicenseKeyGroupRequestDto request,
+ @ApiParam(value = "Vendor license model Id") @PathParam("vlmId")
+ String vlmId,
+ @NotNull(message = USER_MISSING_ERROR_MSG)
+ @HeaderParam(USER_HEADER_PARAM) String user);
+
+ @PUT
+ @Path("/{licenseKeyGroupId}")
+ @ApiOperation(value = "Update vendor license key group")
+ Response updateLicenseKeyGroup(@Valid LicenseKeyGroupRequestDto request,
+ @ApiParam(value = "Vendor license model Id") @PathParam("vlmId")
+ String vlmId,
+ @PathParam("licenseKeyGroupId") String licenseKeyGroupId,
+ @NotNull(message = USER_MISSING_ERROR_MSG)
+ @HeaderParam(USER_HEADER_PARAM) String user);
+
+ @GET
+ @Path("/{licenseKeyGroupId}")
+ @ApiOperation(value = "Get vendor license key group",
+ response = LicenseKeyGroupEntityDto.class)
+ Response getLicenseKeyGroup(
+ @ApiParam(value = "Vendor license model Id") @PathParam("vlmId") String vlmId,
+ @Pattern(regexp = Version.VERSION_REGEX, message = Version.VERSION_STRING_VIOLATION_MSG)
+ @QueryParam("version") String version,
+ @PathParam("licenseKeyGroupId") String licenseKeyGroupId,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_HEADER_PARAM) String user);
+
+ @DELETE
+ @Path("/{licenseKeyGroupId}")
+ @ApiOperation(value = "Delete vendor license key group")
+ Response deleteLicenseKeyGroup(
+ @ApiParam(value = "Vendor license model Id") @PathParam("vlmId") String vlmId,
+ @PathParam("licenseKeyGroupId") String licenseKeyGroupId,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_HEADER_PARAM) String user);
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/VendorLicenseModels.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/VendorLicenseModels.java
new file mode 100644
index 0000000000..15fc9bf0d9
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/VendorLicenseModels.java
@@ -0,0 +1,111 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.rest;
+
+import static org.openecomp.sdcrests.common.RestConstants.USER_MISSING_ERROR_MSG;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdcrests.common.RestConstants;
+import org.openecomp.sdcrests.vendorlicense.types.VendorLicenseModelActionRequestDto;
+import org.openecomp.sdcrests.vendorlicense.types.VendorLicenseModelEntityDto;
+import org.openecomp.sdcrests.vendorlicense.types.VendorLicenseModelRequestDto;
+import org.springframework.validation.annotation.Validated;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.HeaderParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+@Path("/v1.0/vendor-license-models")
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+@Api(value = "Vendor License Models")
+@Validated
+public interface VendorLicenseModels {
+
+ @GET
+ @Path("/")
+ @ApiOperation(value = "List vendor license models",
+ response = VendorLicenseModelEntityDto.class,
+ responseContainer = "List")
+ Response listLicenseModels(@ApiParam(
+ value = "Currently supported value: 'Final' - only vendor License models with final versions "
+ + "will be return - with their latest final version")
+ @QueryParam("versionFilter") String versionFilter,
+ @NotNull(message = USER_MISSING_ERROR_MSG)
+ @HeaderParam(RestConstants.USER_HEADER_PARAM) String user);
+
+ @POST
+ @Path("/")
+ @ApiOperation(value = "Create vendor license model")
+ Response createLicenseModel(@Valid VendorLicenseModelRequestDto request,
+ @NotNull(message = USER_MISSING_ERROR_MSG)
+ @HeaderParam(RestConstants.USER_HEADER_PARAM) String user);
+
+ @PUT
+ @Path("/{vlmId}")
+ @ApiOperation(value = "Update vendor license model")
+ Response updateLicenseModel(@Valid VendorLicenseModelRequestDto request,
+ @ApiParam(value = "Vendor license model Id") @PathParam("vlmId")
+ String vlmId, @NotNull(message = USER_MISSING_ERROR_MSG)
+ @HeaderParam(RestConstants.USER_HEADER_PARAM) String user);
+
+ @GET
+ @Path("/{vlmId}")
+ @ApiOperation(value = "Get vendor license model",
+ response = VendorLicenseModelEntityDto.class)
+ Response getLicenseModel(
+ @ApiParam(value = "Vendor license model Id") @PathParam("vlmId") String vlmId,
+ @Pattern(regexp = Version.VERSION_REGEX, message = Version.VERSION_STRING_VIOLATION_MSG)
+ @QueryParam("version") String version,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(RestConstants.USER_HEADER_PARAM)
+ String user);
+
+ @DELETE
+ @Path("/{vlmId}")
+ @ApiOperation(value = "Delete vendor license model")
+ Response deleteLicenseModel(
+ @ApiParam(value = "Vendor license model Id") @PathParam("vlmId") String vlmId,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(RestConstants.USER_HEADER_PARAM)
+ String user);
+
+ @PUT
+ @Path("/{vlmId}/actions")
+ @ApiOperation(value = "Update vendor license model")
+ Response actOnLicenseModel(@Valid VendorLicenseModelActionRequestDto request,
+ @ApiParam(value = "Vendor license model Id") @PathParam("vlmId")
+ String vlmId, @NotNull(message = USER_MISSING_ERROR_MSG)
+ @HeaderParam(RestConstants.USER_HEADER_PARAM) String user);
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapChoiceOrOtherDtoToChoiceOrOther.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapChoiceOrOtherDtoToChoiceOrOther.java
new file mode 100644
index 0000000000..28eeb29018
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapChoiceOrOtherDtoToChoiceOrOther.java
@@ -0,0 +1,36 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.rest.mapping;
+
+import org.openecomp.sdc.vendorlicense.dao.types.ChoiceOrOther;
+import org.openecomp.sdcrests.mapping.MappingBase;
+import org.openecomp.sdcrests.vendorlicense.types.ChoiceOrOtherDto;
+
+public class MapChoiceOrOtherDtoToChoiceOrOther
+ extends MappingBase<ChoiceOrOtherDto, ChoiceOrOther> {
+
+ @Override
+ public void doMapping(ChoiceOrOtherDto source, ChoiceOrOther target) {
+ target.setChoice(source.getChoice());
+ target.setOther(source.getOther());
+ target.setResult(null);
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapChoiceOrOtherToChoiceOrOtherDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapChoiceOrOtherToChoiceOrOtherDto.java
new file mode 100644
index 0000000000..2d686110d5
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapChoiceOrOtherToChoiceOrOtherDto.java
@@ -0,0 +1,35 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.rest.mapping;
+
+import org.openecomp.sdc.vendorlicense.dao.types.ChoiceOrOther;
+import org.openecomp.sdcrests.mapping.MappingBase;
+import org.openecomp.sdcrests.vendorlicense.types.ChoiceOrOtherDto;
+
+public class MapChoiceOrOtherToChoiceOrOtherDto
+ extends MappingBase<ChoiceOrOther, ChoiceOrOtherDto> {
+
+ @Override
+ public void doMapping(ChoiceOrOther source, ChoiceOrOtherDto target) {
+ target.setChoice(source.getChoice());
+ target.setOther(source.getOther());
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapEntitlementPoolEntityToEntitlementPoolEntityDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapEntitlementPoolEntityToEntitlementPoolEntityDto.java
new file mode 100644
index 0000000000..c9f4ab894b
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapEntitlementPoolEntityToEntitlementPoolEntityDto.java
@@ -0,0 +1,53 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.rest.mapping;
+
+import org.openecomp.sdc.vendorlicense.dao.types.EntitlementPoolEntity;
+import org.openecomp.sdcrests.mapping.MappingBase;
+import org.openecomp.sdcrests.vendorlicense.types.ChoiceOrOtherDto;
+import org.openecomp.sdcrests.vendorlicense.types.EntitlementPoolEntityDto;
+import org.openecomp.sdcrests.vendorlicense.types.MultiChoiceOrOtherDto;
+
+public class MapEntitlementPoolEntityToEntitlementPoolEntityDto
+ extends MappingBase<EntitlementPoolEntity, EntitlementPoolEntityDto> {
+ @Override
+ public void doMapping(EntitlementPoolEntity source, EntitlementPoolEntityDto target) {
+ target.setId(source.getId());
+ target.setName(source.getName());
+ target.setDescription(source.getDescription());
+ target.setThresholdValue(source.getThresholdValue());
+ target.setThresholdUnits(source.getThresholdUnit());
+ target.setIncrements(source.getIncrements());
+
+ MapChoiceOrOtherToChoiceOrOtherDto choiceOrOtherMapper =
+ new MapChoiceOrOtherToChoiceOrOtherDto();
+ target.setEntitlementMetric(
+ choiceOrOtherMapper.applyMapping(source.getEntitlementMetric(), ChoiceOrOtherDto.class));
+ target.setAggregationFunction(
+ choiceOrOtherMapper.applyMapping(source.getAggregationFunction(), ChoiceOrOtherDto.class));
+ target.setOperationalScope(new MapMultiChoiceOrOtherToMultiChoiceOrOtherDto()
+ .applyMapping(source.getOperationalScope(), MultiChoiceOrOtherDto.class));
+ target.setTime(choiceOrOtherMapper.applyMapping(source.getTime(), ChoiceOrOtherDto.class));
+ target.setManufacturerReferenceNumber(source.getManufacturerReferenceNumber());
+
+ target.setReferencingFeatureGroups(source.getReferencingFeatureGroups());
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapEntitlementPoolRequestDtoToEntitlementPoolEntity.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapEntitlementPoolRequestDtoToEntitlementPoolEntity.java
new file mode 100644
index 0000000000..fe626e374c
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapEntitlementPoolRequestDtoToEntitlementPoolEntity.java
@@ -0,0 +1,51 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.rest.mapping;
+
+import org.openecomp.sdc.vendorlicense.dao.types.ChoiceOrOther;
+import org.openecomp.sdc.vendorlicense.dao.types.EntitlementPoolEntity;
+import org.openecomp.sdc.vendorlicense.dao.types.MultiChoiceOrOther;
+import org.openecomp.sdcrests.mapping.MappingBase;
+import org.openecomp.sdcrests.vendorlicense.types.EntitlementPoolRequestDto;
+
+public class MapEntitlementPoolRequestDtoToEntitlementPoolEntity
+ extends MappingBase<EntitlementPoolRequestDto, EntitlementPoolEntity> {
+ @Override
+ public void doMapping(EntitlementPoolRequestDto source, EntitlementPoolEntity target) {
+ target.setName(source.getName());
+ target.setDescription(source.getDescription());
+ target.setThresholdValue(source.getThresholdValue());
+ target.setThresholdUnit(source.getThresholdUnits());
+ target.setIncrements(source.getIncrements());
+
+ MapChoiceOrOtherDtoToChoiceOrOther choiceOrOtherMapper =
+ new MapChoiceOrOtherDtoToChoiceOrOther();
+ target.setEntitlementMetric(
+ choiceOrOtherMapper.applyMapping(source.getEntitlementMetric(), ChoiceOrOther.class));
+ target.setAggregationFunction(
+ choiceOrOtherMapper.applyMapping(source.getAggregationFunction(), ChoiceOrOther.class));
+ target.setOperationalScope(new MapMultiChoiceOrOtherDtoToMultiChoiceOrOther()
+ .applyMapping(source.getOperationalScope(), MultiChoiceOrOther.class));
+ target.setTime(choiceOrOtherMapper.applyMapping(source.getTime(), ChoiceOrOther.class));
+
+ target.setManufacturerReferenceNumber(source.getManufacturerReferenceNumber());
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapFeatureGroupDescriptorDtoToFeatureGroupEntity.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapFeatureGroupDescriptorDtoToFeatureGroupEntity.java
new file mode 100644
index 0000000000..91239e2655
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapFeatureGroupDescriptorDtoToFeatureGroupEntity.java
@@ -0,0 +1,36 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.rest.mapping;
+
+import org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupEntity;
+import org.openecomp.sdcrests.mapping.MappingBase;
+import org.openecomp.sdcrests.vendorlicense.types.FeatureGroupDescriptorDto;
+
+
+public class MapFeatureGroupDescriptorDtoToFeatureGroupEntity
+ extends MappingBase<FeatureGroupDescriptorDto, FeatureGroupEntity> {
+ @Override
+ public void doMapping(FeatureGroupDescriptorDto source, FeatureGroupEntity target) {
+ target.setName(source.getName());
+ target.setDescription(source.getDescription());
+ target.setPartNumber(source.getPartNumber());
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapFeatureGroupEntityToFeatureGroupDescriptorDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapFeatureGroupEntityToFeatureGroupDescriptorDto.java
new file mode 100644
index 0000000000..70f5666bcb
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapFeatureGroupEntityToFeatureGroupDescriptorDto.java
@@ -0,0 +1,35 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.rest.mapping;
+
+import org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupEntity;
+import org.openecomp.sdcrests.mapping.MappingBase;
+import org.openecomp.sdcrests.vendorlicense.types.FeatureGroupDescriptorDto;
+
+public class MapFeatureGroupEntityToFeatureGroupDescriptorDto
+ extends MappingBase<FeatureGroupEntity, FeatureGroupDescriptorDto> {
+ @Override
+ public void doMapping(FeatureGroupEntity source, FeatureGroupDescriptorDto target) {
+ target.setName(source.getName());
+ target.setDescription(source.getDescription());
+ target.setPartNumber(source.getPartNumber());
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapLicenseAgreementDescriptorDtoToLicenseAgreementEntity.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapLicenseAgreementDescriptorDtoToLicenseAgreementEntity.java
new file mode 100644
index 0000000000..f5ea8414d5
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapLicenseAgreementDescriptorDtoToLicenseAgreementEntity.java
@@ -0,0 +1,38 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.rest.mapping;
+
+import org.openecomp.sdc.vendorlicense.dao.types.ChoiceOrOther;
+import org.openecomp.sdc.vendorlicense.dao.types.LicenseAgreementEntity;
+import org.openecomp.sdcrests.mapping.MappingBase;
+import org.openecomp.sdcrests.vendorlicense.types.LicenseAgreementDescriptorDto;
+
+public class MapLicenseAgreementDescriptorDtoToLicenseAgreementEntity
+ extends MappingBase<LicenseAgreementDescriptorDto, LicenseAgreementEntity> {
+ @Override
+ public void doMapping(LicenseAgreementDescriptorDto source, LicenseAgreementEntity target) {
+ target.setName(source.getName());
+ target.setDescription(source.getDescription());
+ target.setLicenseTerm(new MapChoiceOrOtherDtoToChoiceOrOther()
+ .applyMapping(source.getLicenseTerm(), ChoiceOrOther.class));
+ target.setRequirementsAndConstrains(source.getRequirementsAndConstrains());
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapLicenseAgreementEntityToLicenseAgreementDescriptorDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapLicenseAgreementEntityToLicenseAgreementDescriptorDto.java
new file mode 100644
index 0000000000..2fd4f669cf
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapLicenseAgreementEntityToLicenseAgreementDescriptorDto.java
@@ -0,0 +1,38 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.rest.mapping;
+
+import org.openecomp.sdc.vendorlicense.dao.types.LicenseAgreementEntity;
+import org.openecomp.sdcrests.mapping.MappingBase;
+import org.openecomp.sdcrests.vendorlicense.types.ChoiceOrOtherDto;
+import org.openecomp.sdcrests.vendorlicense.types.LicenseAgreementDescriptorDto;
+
+public class MapLicenseAgreementEntityToLicenseAgreementDescriptorDto
+ extends MappingBase<LicenseAgreementEntity, LicenseAgreementDescriptorDto> {
+ @Override
+ public void doMapping(LicenseAgreementEntity source, LicenseAgreementDescriptorDto target) {
+ target.setName(source.getName());
+ target.setDescription(source.getDescription());
+ target.setLicenseTerm(new MapChoiceOrOtherToChoiceOrOtherDto()
+ .applyMapping(source.getLicenseTerm(), ChoiceOrOtherDto.class));
+ target.setRequirementsAndConstrains(source.getRequirementsAndConstrains());
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapLicenseKeyGroupEntityToLicenseKeyGroupEntityDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapLicenseKeyGroupEntityToLicenseKeyGroupEntityDto.java
new file mode 100644
index 0000000000..38384711b1
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapLicenseKeyGroupEntityToLicenseKeyGroupEntityDto.java
@@ -0,0 +1,40 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.rest.mapping;
+
+import org.openecomp.sdc.vendorlicense.dao.types.LicenseKeyGroupEntity;
+import org.openecomp.sdcrests.mapping.MappingBase;
+import org.openecomp.sdcrests.vendorlicense.types.LicenseKeyGroupEntityDto;
+import org.openecomp.sdcrests.vendorlicense.types.MultiChoiceOrOtherDto;
+
+public class MapLicenseKeyGroupEntityToLicenseKeyGroupEntityDto
+ extends MappingBase<LicenseKeyGroupEntity, LicenseKeyGroupEntityDto> {
+ @Override
+ public void doMapping(LicenseKeyGroupEntity source, LicenseKeyGroupEntityDto target) {
+ target.setId(source.getId());
+ target.setName(source.getName());
+ target.setDescription(source.getDescription());
+ target.setType(source.getType());
+ target.setOperationalScope(new MapMultiChoiceOrOtherToMultiChoiceOrOtherDto()
+ .applyMapping(source.getOperationalScope(), MultiChoiceOrOtherDto.class));
+ target.setReferencingFeatureGroups(source.getReferencingFeatureGroups());
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapLicenseKeyGroupRequestDtoToLicenseKeyGroupEntity.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapLicenseKeyGroupRequestDtoToLicenseKeyGroupEntity.java
new file mode 100644
index 0000000000..aee27c8521
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapLicenseKeyGroupRequestDtoToLicenseKeyGroupEntity.java
@@ -0,0 +1,38 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.rest.mapping;
+
+import org.openecomp.sdc.vendorlicense.dao.types.LicenseKeyGroupEntity;
+import org.openecomp.sdc.vendorlicense.dao.types.MultiChoiceOrOther;
+import org.openecomp.sdcrests.mapping.MappingBase;
+import org.openecomp.sdcrests.vendorlicense.types.LicenseKeyGroupRequestDto;
+
+public class MapLicenseKeyGroupRequestDtoToLicenseKeyGroupEntity
+ extends MappingBase<LicenseKeyGroupRequestDto, LicenseKeyGroupEntity> {
+ @Override
+ public void doMapping(LicenseKeyGroupRequestDto source, LicenseKeyGroupEntity target) {
+ target.setName(source.getName());
+ target.setDescription(source.getDescription());
+ target.setType(source.getType());
+ target.setOperationalScope(new MapMultiChoiceOrOtherDtoToMultiChoiceOrOther()
+ .applyMapping(source.getOperationalScope(), MultiChoiceOrOther.class));
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapMultiChoiceOrOtherDtoToMultiChoiceOrOther.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapMultiChoiceOrOtherDtoToMultiChoiceOrOther.java
new file mode 100644
index 0000000000..320bf67bdf
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapMultiChoiceOrOtherDtoToMultiChoiceOrOther.java
@@ -0,0 +1,36 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.rest.mapping;
+
+import org.openecomp.sdc.vendorlicense.dao.types.MultiChoiceOrOther;
+import org.openecomp.sdcrests.mapping.MappingBase;
+import org.openecomp.sdcrests.vendorlicense.types.MultiChoiceOrOtherDto;
+
+public class MapMultiChoiceOrOtherDtoToMultiChoiceOrOther
+ extends MappingBase<MultiChoiceOrOtherDto, MultiChoiceOrOther> {
+
+ @Override
+ public void doMapping(MultiChoiceOrOtherDto source, MultiChoiceOrOther target) {
+ target.setChoices(source.getChoices());
+ target.setOther(source.getOther());
+ target.setResults(null);
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapMultiChoiceOrOtherToMultiChoiceOrOtherDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapMultiChoiceOrOtherToMultiChoiceOrOtherDto.java
new file mode 100644
index 0000000000..9649053fb4
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapMultiChoiceOrOtherToMultiChoiceOrOtherDto.java
@@ -0,0 +1,35 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.rest.mapping;
+
+import org.openecomp.sdc.vendorlicense.dao.types.MultiChoiceOrOther;
+import org.openecomp.sdcrests.mapping.MappingBase;
+import org.openecomp.sdcrests.vendorlicense.types.MultiChoiceOrOtherDto;
+
+public class MapMultiChoiceOrOtherToMultiChoiceOrOtherDto
+ extends MappingBase<MultiChoiceOrOther, MultiChoiceOrOtherDto> {
+
+ @Override
+ public void doMapping(MultiChoiceOrOther source, MultiChoiceOrOtherDto target) {
+ target.setChoices(source.getChoices());
+ target.setOther(source.getOther());
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapVendorLicenseModelRequestDtoToVendorLicenseModelEntity.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapVendorLicenseModelRequestDtoToVendorLicenseModelEntity.java
new file mode 100644
index 0000000000..1117a2db9f
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapVendorLicenseModelRequestDtoToVendorLicenseModelEntity.java
@@ -0,0 +1,36 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.rest.mapping;
+
+import org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity;
+import org.openecomp.sdcrests.mapping.MappingBase;
+import org.openecomp.sdcrests.vendorlicense.types.VendorLicenseModelRequestDto;
+
+
+public class MapVendorLicenseModelRequestDtoToVendorLicenseModelEntity
+ extends MappingBase<VendorLicenseModelRequestDto, VendorLicenseModelEntity> {
+ @Override
+ public void doMapping(VendorLicenseModelRequestDto source, VendorLicenseModelEntity target) {
+ target.setVendorName(source.getVendorName());
+ target.setDescription(source.getDescription());
+ target.setIconRef(source.getIconRef());
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapVersionedVendorLicenseModelToVendorLicenseModelEntityDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapVersionedVendorLicenseModelToVendorLicenseModelEntityDto.java
new file mode 100644
index 0000000000..a53d5c9e36
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapVersionedVendorLicenseModelToVendorLicenseModelEntityDto.java
@@ -0,0 +1,60 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.rest.mapping;
+
+import org.openecomp.core.utilities.CommonMethods;
+import org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity;
+import org.openecomp.sdc.vendorlicense.types.VersionedVendorLicenseModel;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdc.versioning.types.VersionInfo;
+import org.openecomp.sdcrests.mapping.MappingBase;
+import org.openecomp.sdcrests.vendorlicense.types.VendorLicenseModelEntityDto;
+
+import java.util.stream.Collectors;
+
+public class MapVersionedVendorLicenseModelToVendorLicenseModelEntityDto
+ extends MappingBase<VersionedVendorLicenseModel, VendorLicenseModelEntityDto> {
+ @Override
+ public void doMapping(VersionedVendorLicenseModel source, VendorLicenseModelEntityDto target) {
+ VendorLicenseModelEntity sourceVlm = source.getVendorLicenseModel();
+ target.setId(sourceVlm.getId());
+ target.setVendorName(sourceVlm.getVendorName());
+ target.setDescription(sourceVlm.getDescription());
+ target.setIconRef(sourceVlm.getIconRef());
+
+ VersionInfo versionInfo = source.getVersionInfo();
+ if (versionInfo != null) {
+ target.setVersion(versionInfo.getActiveVersion().toString());
+ target.setStatus(versionInfo.getStatus());
+ target.setLockingUser(versionInfo.getLockingUser());
+
+ if (!CommonMethods.isEmpty(versionInfo.getViewableVersions())) {
+ target.setViewableVersions(versionInfo.getViewableVersions().stream().map(Version::toString)
+ .collect(Collectors.toList()));
+ }
+
+ if (!CommonMethods.isEmpty(versionInfo.getFinalVersions())) {
+ target.setFinalVersions(versionInfo.getFinalVersions().stream().map(Version::toString)
+ .collect(Collectors.toList()));
+ }
+ }
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/EntitlementPoolsImpl.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/EntitlementPoolsImpl.java
new file mode 100644
index 0000000000..ab9800e612
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/EntitlementPoolsImpl.java
@@ -0,0 +1,157 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.rest.services;
+
+import org.openecomp.sdc.vendorlicense.VendorLicenseManager;
+import org.openecomp.sdc.vendorlicense.dao.types.EntitlementPoolEntity;
+import org.openecomp.sdc.versioning.dao.types.Version;
+
+import org.openecomp.sdcrests.vendorlicense.rest.EntitlementPools;
+import org.openecomp.sdcrests.vendorlicense.rest.mapping.MapEntitlementPoolEntityToEntitlementPoolEntityDto;
+import org.openecomp.sdcrests.vendorlicense.rest.mapping.MapEntitlementPoolRequestDtoToEntitlementPoolEntity;
+import org.openecomp.sdcrests.vendorlicense.types.EntitlementPoolEntityDto;
+import org.openecomp.sdcrests.vendorlicense.types.EntitlementPoolRequestDto;
+import org.openecomp.sdcrests.wrappers.GenericCollectionWrapper;
+import org.openecomp.sdcrests.wrappers.StringWrapperResponse;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Service;
+
+import java.util.Collection;
+import javax.inject.Named;
+import javax.ws.rs.core.Response;
+
+@Named
+@Service("entitlementPools")
+@Scope(value = "prototype")
+public class EntitlementPoolsImpl implements EntitlementPools {
+
+ @Autowired
+ private VendorLicenseManager vendorLicenseManager;
+
+ /**
+ * List entitlement pools response.
+ *
+ * @param vlmId the vlm id
+ * @param version the version
+ * @param user the user
+ * @return the response
+ */
+ public Response listEntitlementPools(String vlmId, String version, String user) {
+ Collection<EntitlementPoolEntity> entitlementPools =
+ vendorLicenseManager.listEntitlementPools(vlmId, Version.valueOf(version), user);
+
+ GenericCollectionWrapper<EntitlementPoolEntityDto> result = new GenericCollectionWrapper<>();
+ MapEntitlementPoolEntityToEntitlementPoolEntityDto outputMapper =
+ new MapEntitlementPoolEntityToEntitlementPoolEntityDto();
+ for (EntitlementPoolEntity ep : entitlementPools) {
+ result.add(outputMapper.applyMapping(ep, EntitlementPoolEntityDto.class));
+ }
+
+ return Response.ok(result).build();
+ }
+
+ /**
+ * Create entitlement pool response.
+ *
+ * @param request the request
+ * @param vlmId the vlm id
+ * @param user the user
+ * @return the response
+ */
+ public Response createEntitlementPool(EntitlementPoolRequestDto request, String vlmId,
+ String user) {
+ EntitlementPoolEntity entitlementPoolEntity =
+ new MapEntitlementPoolRequestDtoToEntitlementPoolEntity()
+ .applyMapping(request, EntitlementPoolEntity.class);
+ entitlementPoolEntity.setVendorLicenseModelId(vlmId);
+
+ EntitlementPoolEntity createdEntitlementPool =
+ vendorLicenseManager.createEntitlementPool(entitlementPoolEntity, user);
+ StringWrapperResponse result =
+ createdEntitlementPool != null ? new StringWrapperResponse(createdEntitlementPool.getId())
+ : null;
+
+ return Response.ok(result).build();
+ }
+
+ /**
+ * Update entitlement pool response.
+ *
+ * @param request the request
+ * @param vlmId the vlm id
+ * @param entitlementPoolId the entitlement pool id
+ * @param user the user
+ * @return the response
+ */
+ public Response updateEntitlementPool(EntitlementPoolRequestDto request, String vlmId,
+ String entitlementPoolId, String user) {
+ EntitlementPoolEntity entitlementPoolEntity =
+ new MapEntitlementPoolRequestDtoToEntitlementPoolEntity()
+ .applyMapping(request, EntitlementPoolEntity.class);
+
+ entitlementPoolEntity.setVendorLicenseModelId(vlmId);
+ entitlementPoolEntity.setId(entitlementPoolId);
+
+ vendorLicenseManager.updateEntitlementPool(entitlementPoolEntity, user);
+ return Response.ok().build();
+ }
+
+ /**
+ * Gets entitlement pool.
+ *
+ * @param vlmId the vlm id
+ * @param version the version
+ * @param entitlementPoolId the entitlement pool id
+ * @param user the user
+ * @return the entitlement pool
+ */
+ public Response getEntitlementPool(String vlmId, String version, String entitlementPoolId,
+ String user) {
+ EntitlementPoolEntity epInput = new EntitlementPoolEntity();
+ epInput.setVendorLicenseModelId(vlmId);
+ epInput.setVersion(Version.valueOf(version));
+ epInput.setId(entitlementPoolId);
+ EntitlementPoolEntity entitlementPool = vendorLicenseManager.getEntitlementPool(epInput, user);
+
+ EntitlementPoolEntityDto entitlementPoolEntityDto = entitlementPool == null ? null :
+ new MapEntitlementPoolEntityToEntitlementPoolEntityDto()
+ .applyMapping(entitlementPool, EntitlementPoolEntityDto.class);
+ return Response.ok(entitlementPoolEntityDto).build();
+ }
+
+ /**
+ * Delete entitlement pool response.
+ *
+ * @param vlmId the vlm id
+ * @param entitlementPoolId the entitlement pool id
+ * @param user the user
+ * @return the response
+ */
+ public Response deleteEntitlementPool(String vlmId, String entitlementPoolId, String user) {
+ EntitlementPoolEntity epInput = new EntitlementPoolEntity();
+ epInput.setVendorLicenseModelId(vlmId);
+ epInput.setId(entitlementPoolId);
+ vendorLicenseManager.deleteEntitlementPool(epInput, user);
+ return Response.ok().build();
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/FeatureGroupsImpl.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/FeatureGroupsImpl.java
new file mode 100644
index 0000000000..daf35f9ee6
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/FeatureGroupsImpl.java
@@ -0,0 +1,169 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.rest.services;
+
+import org.openecomp.core.utilities.CommonMethods;
+import org.openecomp.sdc.vendorlicense.VendorLicenseManager;
+import org.openecomp.sdc.vendorlicense.dao.types.EntitlementPoolEntity;
+import org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupEntity;
+import org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupModel;
+import org.openecomp.sdc.vendorlicense.dao.types.LicenseKeyGroupEntity;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdcrests.vendorlicense.rest.FeatureGroups;
+import org.openecomp.sdcrests.vendorlicense.rest.mapping.MapEntitlementPoolEntityToEntitlementPoolEntityDto;
+import org.openecomp.sdcrests.vendorlicense.rest.mapping.MapFeatureGroupDescriptorDtoToFeatureGroupEntity;
+import org.openecomp.sdcrests.vendorlicense.rest.mapping.MapFeatureGroupEntityToFeatureGroupDescriptorDto;
+import org.openecomp.sdcrests.vendorlicense.rest.mapping.MapLicenseKeyGroupEntityToLicenseKeyGroupEntityDto;
+import org.openecomp.sdcrests.vendorlicense.types.EntitlementPoolEntityDto;
+import org.openecomp.sdcrests.vendorlicense.types.FeatureGroupEntityDto;
+import org.openecomp.sdcrests.vendorlicense.types.FeatureGroupModelDto;
+import org.openecomp.sdcrests.vendorlicense.types.FeatureGroupRequestDto;
+import org.openecomp.sdcrests.vendorlicense.types.FeatureGroupUpdateRequestDto;
+import org.openecomp.sdcrests.vendorlicense.types.LicenseKeyGroupEntityDto;
+import org.openecomp.sdcrests.wrappers.GenericCollectionWrapper;
+import org.openecomp.sdcrests.wrappers.StringWrapperResponse;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Service;
+
+import java.util.Collection;
+import java.util.HashSet;
+import javax.inject.Named;
+import javax.ws.rs.core.Response;
+
+
+@Named
+@Service("featureGroups")
+@Scope(value = "prototype")
+public class FeatureGroupsImpl implements FeatureGroups {
+
+ @Autowired
+ private VendorLicenseManager vendorLicenseManager;
+
+ @Override
+ public Response listFeatureGroups(String vlmId, String version, String user) {
+ Collection<FeatureGroupEntity> featureGroupEntities =
+ vendorLicenseManager.listFeatureGroups(vlmId, Version.valueOf(version), user);
+
+ MapFeatureGroupEntityToFeatureGroupDescriptorDto outputMapper =
+ new MapFeatureGroupEntityToFeatureGroupDescriptorDto();
+ GenericCollectionWrapper<FeatureGroupEntityDto> results = new GenericCollectionWrapper<>();
+
+ for (FeatureGroupEntity fg : featureGroupEntities) {
+ FeatureGroupEntityDto fgDto = new FeatureGroupEntityDto();
+ fgDto.setId(fg.getId());
+ fgDto.setLicenseKeyGroupsIds(fg.getLicenseKeyGroupIds());
+ fgDto.setEntitlementPoolsIds(fg.getEntitlementPoolIds());
+ fgDto.setReferencingLicenseAgreements(fg.getReferencingLicenseAgreements());
+ outputMapper.doMapping(fg, fgDto);
+ results.add(fgDto);
+ }
+
+ return Response.ok(results).build();
+ }
+
+ @Override
+ public Response createFeatureGroup(FeatureGroupRequestDto request, String vlmId, String user) {
+ FeatureGroupEntity featureGroupEntity = new MapFeatureGroupDescriptorDtoToFeatureGroupEntity()
+ .applyMapping(request, FeatureGroupEntity.class);
+ featureGroupEntity.setVendorLicenseModelId(vlmId);
+ featureGroupEntity.setLicenseKeyGroupIds(request.getAddedLicenseKeyGroupsIds());
+ featureGroupEntity.setEntitlementPoolIds(request.getAddedEntitlementPoolsIds());
+
+ FeatureGroupEntity createdFeatureGroup =
+ vendorLicenseManager.createFeatureGroup(featureGroupEntity, user);
+
+ StringWrapperResponse result =
+ createdFeatureGroup != null ? new StringWrapperResponse(createdFeatureGroup.getId()) : null;
+ return Response.ok(result).build();
+ }
+
+ @Override
+ public Response updateFeatureGroup(FeatureGroupUpdateRequestDto request, String vlmId,
+ String featureGroupId, String user) {
+ FeatureGroupEntity featureGroupEntity = new MapFeatureGroupDescriptorDtoToFeatureGroupEntity()
+ .applyMapping(request, FeatureGroupEntity.class);
+ featureGroupEntity.setVendorLicenseModelId(vlmId);
+ featureGroupEntity.setId(featureGroupId);
+
+ vendorLicenseManager
+ .updateFeatureGroup(featureGroupEntity, request.getAddedLicenseKeyGroupsIds(),
+ request.getRemovedLicenseKeyGroupsIds(), request.getAddedEntitlementPoolsIds(),
+ request.getRemovedEntitlementPoolsIds(), user);
+ return Response.ok().build();
+ }
+
+ @Override
+ public Response getFeatureGroup(String vlmId, String version, String featureGroupId,
+ String user) {
+ FeatureGroupEntity fgInput = new FeatureGroupEntity();
+ fgInput.setVendorLicenseModelId(vlmId);
+ fgInput.setVersion(Version.valueOf(version));
+ fgInput.setId(featureGroupId);
+ FeatureGroupModel featureGroupModel = vendorLicenseManager.getFeatureGroupModel(fgInput, user);
+
+ if (featureGroupModel == null) {
+ return Response.ok().build();
+ }
+
+ FeatureGroupModelDto fgmDto = new FeatureGroupModelDto();
+ fgmDto.setId(featureGroupModel.getFeatureGroup().getId());
+ fgmDto.setReferencingLicenseAgreements(
+ featureGroupModel.getFeatureGroup().getReferencingLicenseAgreements());
+ new MapFeatureGroupEntityToFeatureGroupDescriptorDto()
+ .doMapping(featureGroupModel.getFeatureGroup(), fgmDto);
+
+ if (!CommonMethods.isEmpty(featureGroupModel.getLicenseKeyGroups())) {
+ fgmDto.setLicenseKeyGroups(new HashSet<>());
+
+ MapLicenseKeyGroupEntityToLicenseKeyGroupEntityDto lkgMapper =
+ new MapLicenseKeyGroupEntityToLicenseKeyGroupEntityDto();
+ for (LicenseKeyGroupEntity lkg : featureGroupModel.getLicenseKeyGroups()) {
+ fgmDto.getLicenseKeyGroups()
+ .add(lkgMapper.applyMapping(lkg, LicenseKeyGroupEntityDto.class));
+ }
+ }
+
+ if (!CommonMethods.isEmpty(featureGroupModel.getEntitlementPools())) {
+ fgmDto.setEntitlementPools(new HashSet<>());
+
+ MapEntitlementPoolEntityToEntitlementPoolEntityDto epMapper =
+ new MapEntitlementPoolEntityToEntitlementPoolEntityDto();
+ for (EntitlementPoolEntity ep : featureGroupModel.getEntitlementPools()) {
+ fgmDto.getEntitlementPools().add(epMapper.applyMapping(ep, EntitlementPoolEntityDto.class));
+
+ }
+ }
+
+ return Response.ok(fgmDto).build();
+ }
+
+ @Override
+ public Response deleteFeatureGroup(String vlmId, String featureGroupId, String user) {
+ FeatureGroupEntity fgInput = new FeatureGroupEntity();
+ fgInput.setVendorLicenseModelId(vlmId);
+ fgInput.setId(featureGroupId);
+ vendorLicenseManager.deleteFeatureGroup(fgInput, user);
+ return Response.ok().build();
+ }
+
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/LicenseAgreementsImpl.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/LicenseAgreementsImpl.java
new file mode 100644
index 0000000000..d87be05998
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/LicenseAgreementsImpl.java
@@ -0,0 +1,186 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.rest.services;
+
+import org.openecomp.core.utilities.CommonMethods;
+import org.openecomp.sdc.vendorlicense.VendorLicenseManager;
+import org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupEntity;
+import org.openecomp.sdc.vendorlicense.dao.types.LicenseAgreementEntity;
+import org.openecomp.sdc.vendorlicense.dao.types.LicenseAgreementModel;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdcrests.vendorlicense.rest.LicenseAgreements;
+import org.openecomp.sdcrests.vendorlicense.rest.mapping.MapFeatureGroupEntityToFeatureGroupDescriptorDto;
+import org.openecomp.sdcrests.vendorlicense.rest.mapping.MapLicenseAgreementDescriptorDtoToLicenseAgreementEntity;
+import org.openecomp.sdcrests.vendorlicense.rest.mapping.MapLicenseAgreementEntityToLicenseAgreementDescriptorDto;
+import org.openecomp.sdcrests.vendorlicense.types.FeatureGroupEntityDto;
+import org.openecomp.sdcrests.vendorlicense.types.LicenseAgreementEntityDto;
+import org.openecomp.sdcrests.vendorlicense.types.LicenseAgreementModelDto;
+import org.openecomp.sdcrests.vendorlicense.types.LicenseAgreementRequestDto;
+import org.openecomp.sdcrests.vendorlicense.types.LicenseAgreementUpdateRequestDto;
+import org.openecomp.sdcrests.wrappers.GenericCollectionWrapper;
+import org.openecomp.sdcrests.wrappers.StringWrapperResponse;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Service;
+
+import java.util.Collection;
+import java.util.HashSet;
+import javax.inject.Named;
+import javax.ws.rs.core.Response;
+
+@Named
+@Service("licenseAgreements")
+@Scope(value = "prototype")
+public class LicenseAgreementsImpl implements LicenseAgreements {
+
+ @Autowired
+ private VendorLicenseManager vendorLicenseManager;
+
+ /**
+ * List license agreements response.
+ *
+ * @param vlmId the vlm id
+ * @param version the version
+ * @param user the user
+ * @return the response
+ */
+ public Response listLicenseAgreements(String vlmId, String version, String user) {
+ Collection<LicenseAgreementEntity> licenseAgreements =
+ vendorLicenseManager.listLicenseAgreements(vlmId, Version.valueOf(version), user);
+
+ GenericCollectionWrapper<LicenseAgreementEntityDto> results = new GenericCollectionWrapper<>();
+ MapLicenseAgreementEntityToLicenseAgreementDescriptorDto outputMapper =
+ new MapLicenseAgreementEntityToLicenseAgreementDescriptorDto();
+ for (LicenseAgreementEntity lae : licenseAgreements) {
+ LicenseAgreementEntityDto laeDto = new LicenseAgreementEntityDto();
+ laeDto.setId(lae.getId());
+ laeDto.setFeatureGroupsIds(lae.getFeatureGroupIds());
+ outputMapper.doMapping(lae, laeDto);
+ results.add(laeDto);
+ }
+
+ return Response.ok(results).build();
+ }
+
+ /**
+ * Create license agreement response.
+ *
+ * @param request the request
+ * @param vlmId the vlm id
+ * @param user the user
+ * @return the response
+ */
+ public Response createLicenseAgreement(LicenseAgreementRequestDto request, String vlmId,
+ String user) {
+ LicenseAgreementEntity licenseAgreementEntity =
+ new MapLicenseAgreementDescriptorDtoToLicenseAgreementEntity()
+ .applyMapping(request, LicenseAgreementEntity.class);
+ licenseAgreementEntity.setVendorLicenseModelId(vlmId);
+ licenseAgreementEntity.setFeatureGroupIds(request.getAddedFeatureGroupsIds());
+
+ LicenseAgreementEntity createdLicenseAgreement =
+ vendorLicenseManager.createLicenseAgreement(licenseAgreementEntity, user);
+ StringWrapperResponse result =
+ createdLicenseAgreement != null ? new StringWrapperResponse(createdLicenseAgreement.getId())
+ : null;
+
+ return Response.ok(result).build();
+ }
+
+ /**
+ * Update license agreement response.
+ *
+ * @param request the request
+ * @param vlmId the vlm id
+ * @param licenseAgreementId the license agreement id
+ * @param user the user
+ * @return the response
+ */
+ public Response updateLicenseAgreement(LicenseAgreementUpdateRequestDto request, String vlmId,
+ String licenseAgreementId, String user) {
+ LicenseAgreementEntity licenseAgreementEntity =
+ new MapLicenseAgreementDescriptorDtoToLicenseAgreementEntity()
+ .applyMapping(request, LicenseAgreementEntity.class);
+ licenseAgreementEntity.setVendorLicenseModelId(vlmId);
+ licenseAgreementEntity.setId(licenseAgreementId);
+
+ vendorLicenseManager
+ .updateLicenseAgreement(licenseAgreementEntity, request.getAddedFeatureGroupsIds(),
+ request.getRemovedFeatureGroupsIds(), user);
+ return Response.ok().build();
+ }
+
+ /**
+ * Gets license agreement.
+ *
+ * @param vlmId the vlm id
+ * @param version the version
+ * @param licenseAgreementId the license agreement id
+ * @param user the user
+ * @return the license agreement
+ */
+ public Response getLicenseAgreement(String vlmId, String version, String licenseAgreementId,
+ String user) {
+ LicenseAgreementModel licenseAgreementModel = vendorLicenseManager
+ .getLicenseAgreementModel(vlmId, Version.valueOf(version), licenseAgreementId, user);
+
+ if (licenseAgreementModel == null) {
+ return Response.ok().build();
+ }
+
+ LicenseAgreementModelDto lamDto = new LicenseAgreementModelDto();
+ lamDto.setId(licenseAgreementModel.getLicenseAgreement().getId());
+ new MapLicenseAgreementEntityToLicenseAgreementDescriptorDto()
+ .doMapping(licenseAgreementModel.getLicenseAgreement(), lamDto);
+
+ if (!CommonMethods.isEmpty(licenseAgreementModel.getFeatureGroups())) {
+ lamDto.setFeatureGroups(new HashSet<>());
+
+ MapFeatureGroupEntityToFeatureGroupDescriptorDto fgMapper =
+ new MapFeatureGroupEntityToFeatureGroupDescriptorDto();
+ for (FeatureGroupEntity fg : licenseAgreementModel.getFeatureGroups()) {
+ FeatureGroupEntityDto fgeDto = new FeatureGroupEntityDto();
+ fgeDto.setId(fg.getId());
+ fgeDto.setEntitlementPoolsIds(fg.getEntitlementPoolIds());
+ fgeDto.setLicenseKeyGroupsIds(fg.getLicenseKeyGroupIds());
+ fgMapper.doMapping(fg, fgeDto);
+
+ lamDto.getFeatureGroups().add(fgeDto);
+ }
+ }
+
+ return Response.ok(lamDto).build();
+ }
+
+ /**
+ * Delete license agreement response.
+ *
+ * @param vlmId the vlm id
+ * @param licenseAgreementId the license agreement id
+ * @param user the user
+ * @return the response
+ */
+ public Response deleteLicenseAgreement(String vlmId, String licenseAgreementId, String user) {
+ vendorLicenseManager.deleteLicenseAgreement(vlmId, licenseAgreementId, user);
+ return Response.ok().build();
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/LicenseKeyGroupsImpl.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/LicenseKeyGroupsImpl.java
new file mode 100644
index 0000000000..6ef7e194b8
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/LicenseKeyGroupsImpl.java
@@ -0,0 +1,159 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.rest.services;
+
+import org.openecomp.sdc.vendorlicense.VendorLicenseManager;
+import org.openecomp.sdc.vendorlicense.dao.types.LicenseKeyGroupEntity;
+import org.openecomp.sdc.versioning.dao.types.Version;
+
+import org.openecomp.sdcrests.vendorlicense.rest.LicenseKeyGroups;
+import org.openecomp.sdcrests.vendorlicense.rest.mapping.MapLicenseKeyGroupEntityToLicenseKeyGroupEntityDto;
+import org.openecomp.sdcrests.vendorlicense.rest.mapping.MapLicenseKeyGroupRequestDtoToLicenseKeyGroupEntity;
+import org.openecomp.sdcrests.vendorlicense.types.LicenseKeyGroupEntityDto;
+import org.openecomp.sdcrests.vendorlicense.types.LicenseKeyGroupRequestDto;
+import org.openecomp.sdcrests.wrappers.GenericCollectionWrapper;
+import org.openecomp.sdcrests.wrappers.StringWrapperResponse;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
+
+import java.util.Collection;
+import javax.inject.Named;
+import javax.ws.rs.core.Response;
+
+@Named
+@Service("licenseKeyGroups")
+@Scope(value = "prototype")
+@Validated
+public class LicenseKeyGroupsImpl implements LicenseKeyGroups {
+
+ @Autowired
+ private VendorLicenseManager vendorLicenseManager;
+
+ /**
+ * List license key groups response.
+ *
+ * @param vlmId the vlm id
+ * @param version the version
+ * @param user the user
+ * @return the response
+ */
+ public Response listLicenseKeyGroups(String vlmId, String version, String user) {
+ Collection<LicenseKeyGroupEntity> licenseKeyGroups =
+ vendorLicenseManager.listLicenseKeyGroups(vlmId, Version.valueOf(version), user);
+
+ GenericCollectionWrapper<LicenseKeyGroupEntityDto> result = new GenericCollectionWrapper<>();
+ MapLicenseKeyGroupEntityToLicenseKeyGroupEntityDto outputMapper =
+ new MapLicenseKeyGroupEntityToLicenseKeyGroupEntityDto();
+ for (LicenseKeyGroupEntity ep : licenseKeyGroups) {
+ result.add(outputMapper.applyMapping(ep, LicenseKeyGroupEntityDto.class));
+ }
+
+ return Response.ok(result).build();
+ }
+
+ /**
+ * Create license key group response.
+ *
+ * @param request the request
+ * @param vlmId the vlm id
+ * @param user the user
+ * @return the response
+ */
+ public Response createLicenseKeyGroup(LicenseKeyGroupRequestDto request, String vlmId,
+ String user) {
+ LicenseKeyGroupEntity licenseKeyGroupEntity =
+ new MapLicenseKeyGroupRequestDtoToLicenseKeyGroupEntity()
+ .applyMapping(request, LicenseKeyGroupEntity.class);
+ licenseKeyGroupEntity.setVendorLicenseModelId(vlmId);
+
+ LicenseKeyGroupEntity createdLicenseKeyGroup =
+ vendorLicenseManager.createLicenseKeyGroup(licenseKeyGroupEntity, user);
+ StringWrapperResponse result =
+ createdLicenseKeyGroup != null ? new StringWrapperResponse(createdLicenseKeyGroup.getId())
+ : null;
+
+ return Response.ok(result).build();
+ }
+
+ /**
+ * Update license key group response.
+ *
+ * @param request the request
+ * @param vlmId the vlm id
+ * @param licenseKeyGroupId the license key group id
+ * @param user the user
+ * @return the response
+ */
+ public Response updateLicenseKeyGroup(LicenseKeyGroupRequestDto request, String vlmId,
+ String licenseKeyGroupId, String user) {
+ LicenseKeyGroupEntity licenseKeyGroupEntity =
+ new MapLicenseKeyGroupRequestDtoToLicenseKeyGroupEntity()
+ .applyMapping(request, LicenseKeyGroupEntity.class);
+
+ licenseKeyGroupEntity.setVendorLicenseModelId(vlmId);
+ licenseKeyGroupEntity.setId(licenseKeyGroupId);
+
+ vendorLicenseManager.updateLicenseKeyGroup(licenseKeyGroupEntity, user);
+ return Response.ok().build();
+ }
+
+ /**
+ * Gets license key group.
+ *
+ * @param vlmId the vlm id
+ * @param version the version
+ * @param licenseKeyGroupId the license key group id
+ * @param user the user
+ * @return the license key group
+ */
+ public Response getLicenseKeyGroup(String vlmId, String version, String licenseKeyGroupId,
+ String user) {
+ LicenseKeyGroupEntity lkgInput = new LicenseKeyGroupEntity();
+ lkgInput.setVendorLicenseModelId(vlmId);
+ lkgInput.setVersion(Version.valueOf(version));
+ lkgInput.setId(licenseKeyGroupId);
+ LicenseKeyGroupEntity licenseKeyGroup = vendorLicenseManager.getLicenseKeyGroup(lkgInput, user);
+
+ LicenseKeyGroupEntityDto licenseKeyGroupEntityDto = licenseKeyGroup == null ? null :
+ new MapLicenseKeyGroupEntityToLicenseKeyGroupEntityDto()
+ .applyMapping(licenseKeyGroup, LicenseKeyGroupEntityDto.class);
+ return Response.ok(licenseKeyGroupEntityDto).build();
+ }
+
+ /**
+ * Delete license key group response.
+ *
+ * @param vlmId the vlm id
+ * @param licenseKeyGroupId the license key group id
+ * @param user the user
+ * @return the response
+ */
+ public Response deleteLicenseKeyGroup(String vlmId, String licenseKeyGroupId, String user) {
+ LicenseKeyGroupEntity lkgInput = new LicenseKeyGroupEntity();
+ lkgInput.setVendorLicenseModelId(vlmId);
+ lkgInput.setId(licenseKeyGroupId);
+ vendorLicenseManager.deleteLicenseKeyGroup(lkgInput, user);
+ return Response.ok().build();
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/VendorLicenseModelsImpl.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/VendorLicenseModelsImpl.java
new file mode 100644
index 0000000000..c63da86e7a
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/VendorLicenseModelsImpl.java
@@ -0,0 +1,135 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.rest.services;
+
+import org.openecomp.sdc.vendorlicense.VendorLicenseManager;
+import org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity;
+import org.openecomp.sdc.vendorlicense.types.VersionedVendorLicenseModel;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdcrests.vendorlicense.rest.VendorLicenseModels;
+import org.openecomp.sdcrests.vendorlicense.rest.mapping.MapVendorLicenseModelRequestDtoToVendorLicenseModelEntity;
+import org.openecomp.sdcrests.vendorlicense.rest.mapping.MapVersionedVendorLicenseModelToVendorLicenseModelEntityDto;
+import org.openecomp.sdcrests.vendorlicense.types.VendorLicenseModelActionRequestDto;
+import org.openecomp.sdcrests.vendorlicense.types.VendorLicenseModelEntityDto;
+import org.openecomp.sdcrests.vendorlicense.types.VendorLicenseModelRequestDto;
+import org.openecomp.sdcrests.wrappers.GenericCollectionWrapper;
+import org.openecomp.sdcrests.wrappers.StringWrapperResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
+
+import java.util.Collection;
+import javax.inject.Named;
+import javax.ws.rs.core.Response;
+
+
+
+@Named
+@Service("vendorLicenseModels")
+@Scope(value = "prototype")
+@Validated
+public class VendorLicenseModelsImpl implements VendorLicenseModels {
+
+ @Autowired
+ private VendorLicenseManager vendorLicenseManager;
+
+ @Override
+ public Response listLicenseModels(String versionFilter, String user) {
+ Collection<VersionedVendorLicenseModel> versionedVendorLicenseModels =
+ vendorLicenseManager.listVendorLicenseModels(versionFilter, user);
+
+ GenericCollectionWrapper<VendorLicenseModelEntityDto> results =
+ new GenericCollectionWrapper<>();
+ MapVersionedVendorLicenseModelToVendorLicenseModelEntityDto outputMapper =
+ new MapVersionedVendorLicenseModelToVendorLicenseModelEntityDto();
+ for (VersionedVendorLicenseModel versionedVlm : versionedVendorLicenseModels) {
+ results.add(outputMapper.applyMapping(versionedVlm, VendorLicenseModelEntityDto.class));
+ }
+
+ return Response.ok(results).build();
+ }
+
+ @Override
+ public Response createLicenseModel(VendorLicenseModelRequestDto request, String user) {
+ VendorLicenseModelEntity vendorLicenseModelEntity =
+ new MapVendorLicenseModelRequestDtoToVendorLicenseModelEntity()
+ .applyMapping(request, VendorLicenseModelEntity.class);
+ VendorLicenseModelEntity createdVendorLicenseModel =
+ vendorLicenseManager.createVendorLicenseModel(vendorLicenseModelEntity, user);
+ StringWrapperResponse result = createdVendorLicenseModel != null ? new StringWrapperResponse(
+ createdVendorLicenseModel.getId()) : null;
+
+ return Response.ok(result).build();
+ }
+
+ @Override
+ public Response updateLicenseModel(VendorLicenseModelRequestDto request, String vlmId,
+ String user) {
+ VendorLicenseModelEntity vendorLicenseModelEntity =
+ new MapVendorLicenseModelRequestDtoToVendorLicenseModelEntity()
+ .applyMapping(request, VendorLicenseModelEntity.class);
+ vendorLicenseModelEntity.setId(vlmId);
+
+ vendorLicenseManager.updateVendorLicenseModel(vendorLicenseModelEntity, user);
+ return Response.ok().build();
+ }
+
+ @Override
+ public Response getLicenseModel(String vlmId, String version, String user) {
+ VersionedVendorLicenseModel versionedVlm =
+ vendorLicenseManager.getVendorLicenseModel(vlmId, Version.valueOf(version), user);
+
+ VendorLicenseModelEntityDto vlmDto = versionedVlm == null ? null :
+ new MapVersionedVendorLicenseModelToVendorLicenseModelEntityDto()
+ .applyMapping(versionedVlm, VendorLicenseModelEntityDto.class);
+ return Response.ok(vlmDto).build();
+ }
+
+ @Override
+ public Response deleteLicenseModel(String vlmId, String user) {
+ vendorLicenseManager.deleteVendorLicenseModel(vlmId, user);
+ return Response.ok().build();
+ }
+
+ @Override
+ public Response actOnLicenseModel(VendorLicenseModelActionRequestDto request, String vlmId,
+ String user) {
+
+ switch (request.getAction()) {
+ case Checkout:
+ vendorLicenseManager.checkout(vlmId, user);
+ break;
+ case Undo_Checkout:
+ vendorLicenseManager.undoCheckout(vlmId, user);
+ break;
+ case Checkin:
+ vendorLicenseManager.checkin(vlmId, user);
+ break;
+ case Submit:
+ vendorLicenseManager.submit(vlmId, user);
+ break;
+ default:
+ }
+
+ return Response.ok().build();
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/pom.xml b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/pom.xml
new file mode 100644
index 0000000000..1b0319dcf3
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/pom.xml
@@ -0,0 +1,30 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.openecomp.sdc.onboarding</groupId>
+ <artifactId>vendor-license-rest</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <relativePath>../</relativePath>
+ </parent>
+
+ <artifactId>vendor-license-rest-types</artifactId>
+ <name>vendor-license-rest-types</name>
+
+
+
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-common-rest</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-vendor-license-manager</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/ChoiceOrOtherDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/ChoiceOrOtherDto.java
new file mode 100644
index 0000000000..ba8f57f79f
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/ChoiceOrOtherDto.java
@@ -0,0 +1,75 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.types;
+
+import org.hibernate.validator.group.GroupSequenceProvider;
+import org.openecomp.sdcrests.vendorlicense.types.validation.ChoiceOrOtherSequenceProvider;
+import org.openecomp.sdcrests.vendorlicense.types.validation.OtherChoiceValidation;
+
+import javax.validation.constraints.NotNull;
+
+@GroupSequenceProvider(value = ChoiceOrOtherSequenceProvider.class)
+public class ChoiceOrOtherDto<E extends Enum<E>> {
+ @NotNull
+ private E choice;
+ @NotNull(message = "may not be null when choice is set to 'Other'.",
+ groups = OtherChoiceValidation.class)
+ private String other;
+
+ public E getChoice() {
+ return choice;
+ }
+
+ public void setChoice(E choice) {
+ this.choice = choice;
+ }
+
+ public String getOther() {
+ return other;
+ }
+
+ public void setOther(String other) {
+ this.other = other;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null || getClass() != obj.getClass()) {
+ return false;
+ }
+
+ ChoiceOrOtherDto<?> that = (ChoiceOrOtherDto<?>) obj;
+
+ return choice != null ? choice.equals(that.choice)
+ : that.choice == null && (other != null ? other.equals(that.other) : that.other == null);
+
+ }
+
+ @Override
+ public int hashCode() {
+ int result = choice != null ? choice.hashCode() : 0;
+ result = 31 * result + (other != null ? other.hashCode() : 0);
+ return result;
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/EntitlementPoolEntityDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/EntitlementPoolEntityDto.java
new file mode 100644
index 0000000000..5ed40b00b7
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/EntitlementPoolEntityDto.java
@@ -0,0 +1,48 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.types;
+
+
+import io.swagger.annotations.ApiModel;
+
+import java.util.Set;
+
+@ApiModel(value = "EntitlementPoolEntity")
+public class EntitlementPoolEntityDto extends EntitlementPoolRequestDto {
+ private String id;
+ private Set<String> referencingFeatureGroups;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public Set<String> getReferencingFeatureGroups() {
+ return referencingFeatureGroups;
+ }
+
+ public void setReferencingFeatureGroups(Set<String> referencingFeatureGroups) {
+ this.referencingFeatureGroups = referencingFeatureGroups;
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/EntitlementPoolRequestDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/EntitlementPoolRequestDto.java
new file mode 100644
index 0000000000..b70504e20e
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/EntitlementPoolRequestDto.java
@@ -0,0 +1,144 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.types;
+
+import io.swagger.annotations.ApiModel;
+import org.openecomp.sdc.vendorlicense.dao.types.AggregationFunction;
+import org.openecomp.sdc.vendorlicense.dao.types.EntitlementMetric;
+import org.openecomp.sdc.vendorlicense.dao.types.EntitlementTime;
+import org.openecomp.sdc.vendorlicense.dao.types.OperationalScope;
+import org.openecomp.sdc.vendorlicense.dao.types.ThresholdUnit;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+
+@ApiModel(value = "EntitlementPoolRequest")
+public class EntitlementPoolRequestDto {
+
+ @NotNull
+ @Size(max = 120)
+ private String name;
+ @NotNull
+ @Size(max = 1000)
+ private String description;
+ @NotNull
+ private int thresholdValue;
+ @NotNull
+ private ThresholdUnit thresholdUnits;
+ @NotNull
+ @Valid
+ private ChoiceOrOtherDto<EntitlementMetric> entitlementMetric;
+ @Size(max = 120)
+ private String increments;
+ @NotNull
+ @Valid
+ private ChoiceOrOtherDto<AggregationFunction> aggregationFunction;
+ @NotNull
+ @Valid
+ private MultiChoiceOrOtherDto<OperationalScope> operationalScope;
+ @NotNull
+ @Valid
+ private ChoiceOrOtherDto<EntitlementTime> time;
+ @NotNull
+ @Size(max = 100)
+ private String manufacturerReferenceNumber;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public int getThresholdValue() {
+ return thresholdValue;
+ }
+
+ public void setThresholdValue(int thresholdValue) {
+ this.thresholdValue = thresholdValue;
+ }
+
+ public ThresholdUnit getThresholdUnits() {
+ return thresholdUnits;
+ }
+
+ public void setThresholdUnits(ThresholdUnit thresholdUnits) {
+ this.thresholdUnits = thresholdUnits;
+ }
+
+ public ChoiceOrOtherDto<EntitlementMetric> getEntitlementMetric() {
+ return entitlementMetric;
+ }
+
+ public void setEntitlementMetric(ChoiceOrOtherDto<EntitlementMetric> entitlementMetric) {
+ this.entitlementMetric = entitlementMetric;
+ }
+
+ public String getIncrements() {
+ return increments;
+ }
+
+ public void setIncrements(String increments) {
+ this.increments = increments;
+ }
+
+ public ChoiceOrOtherDto<AggregationFunction> getAggregationFunction() {
+ return aggregationFunction;
+ }
+
+ public void setAggregationFunction(ChoiceOrOtherDto<AggregationFunction> aggregationFunction) {
+ this.aggregationFunction = aggregationFunction;
+ }
+
+ public MultiChoiceOrOtherDto<OperationalScope> getOperationalScope() {
+ return operationalScope;
+ }
+
+ public void setOperationalScope(MultiChoiceOrOtherDto<OperationalScope> operationalScope) {
+ this.operationalScope = operationalScope;
+ }
+
+ public ChoiceOrOtherDto<EntitlementTime> getTime() {
+ return time;
+ }
+
+ public void setTime(ChoiceOrOtherDto<EntitlementTime> time) {
+ this.time = time;
+ }
+
+ public String getManufacturerReferenceNumber() {
+ return manufacturerReferenceNumber;
+ }
+
+ public void setManufacturerReferenceNumber(String manufacturerReferenceNumber) {
+ this.manufacturerReferenceNumber = manufacturerReferenceNumber;
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/FeatureGroupDescriptorDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/FeatureGroupDescriptorDto.java
new file mode 100644
index 0000000000..5c1f8f2cfc
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/FeatureGroupDescriptorDto.java
@@ -0,0 +1,59 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.types;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+
+public class FeatureGroupDescriptorDto {
+ @NotNull
+ @Size(max = 120)
+ private String name;
+ @NotNull
+ @Size(max = 1000)
+ private String description;
+ @NotNull
+ private String partNumber;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getPartNumber() {
+ return partNumber;
+ }
+
+ public void setPartNumber(String partNumber) {
+ this.partNumber = partNumber;
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/FeatureGroupEntityDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/FeatureGroupEntityDto.java
new file mode 100644
index 0000000000..a1d1edddcf
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/FeatureGroupEntityDto.java
@@ -0,0 +1,69 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.types;
+
+import io.swagger.annotations.ApiModel;
+
+import java.util.Set;
+
+import javax.validation.constraints.Size;
+
+
+@ApiModel(value = "FeatureGroupEntity")
+public class FeatureGroupEntityDto extends FeatureGroupDescriptorDto {
+ private String id;
+ private Set<String> licenseKeyGroupsIds;
+ @Size(min = 1)
+ private Set<String> entitlementPoolsIds;
+ private Set<String> referencingLicenseAgreements;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public Set<String> getLicenseKeyGroupsIds() {
+ return licenseKeyGroupsIds;
+ }
+
+ public void setLicenseKeyGroupsIds(Set<String> licenseKeyGroupsIds) {
+ this.licenseKeyGroupsIds = licenseKeyGroupsIds;
+ }
+
+ public Set<String> getEntitlementPoolsIds() {
+ return entitlementPoolsIds;
+ }
+
+ public void setEntitlementPoolsIds(Set<String> entitlementPoolsIds) {
+ this.entitlementPoolsIds = entitlementPoolsIds;
+ }
+
+ public Set<String> getReferencingLicenseAgreements() {
+ return referencingLicenseAgreements;
+ }
+
+ public void setReferencingLicenseAgreements(Set<String> referencingLicenseAgreements) {
+ this.referencingLicenseAgreements = referencingLicenseAgreements;
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/FeatureGroupModelDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/FeatureGroupModelDto.java
new file mode 100644
index 0000000000..1572320bb1
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/FeatureGroupModelDto.java
@@ -0,0 +1,66 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.types;
+
+import io.swagger.annotations.ApiModel;
+
+import java.util.Collection;
+import java.util.Set;
+
+@ApiModel(value = "FeatureGroupModel")
+public class FeatureGroupModelDto extends FeatureGroupDescriptorDto {
+ private String id;
+ private Set<String> referencingLicenseAgreements;
+ private Collection<LicenseKeyGroupEntityDto> licenseKeyGroups;
+ private Collection<EntitlementPoolEntityDto> entitlementPools;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public Set<String> getReferencingLicenseAgreements() {
+ return referencingLicenseAgreements;
+ }
+
+ public void setReferencingLicenseAgreements(Set<String> referencingLicenseAgreements) {
+ this.referencingLicenseAgreements = referencingLicenseAgreements;
+ }
+
+ public Collection<LicenseKeyGroupEntityDto> getLicenseKeyGroups() {
+ return licenseKeyGroups;
+ }
+
+ public void setLicenseKeyGroups(Collection<LicenseKeyGroupEntityDto> licenseKeyGroups) {
+ this.licenseKeyGroups = licenseKeyGroups;
+ }
+
+ public Collection<EntitlementPoolEntityDto> getEntitlementPools() {
+ return entitlementPools;
+ }
+
+ public void setEntitlementPools(Collection<EntitlementPoolEntityDto> entitlementPools) {
+ this.entitlementPools = entitlementPools;
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/FeatureGroupRequestDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/FeatureGroupRequestDto.java
new file mode 100644
index 0000000000..282e797f1b
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/FeatureGroupRequestDto.java
@@ -0,0 +1,48 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.types;
+
+import io.swagger.annotations.ApiModel;
+
+import java.util.Set;
+
+@ApiModel(value = "FeatureGroupRequest")
+public class FeatureGroupRequestDto extends FeatureGroupDescriptorDto {
+
+ private Set<String> addedLicenseKeyGroupsIds;
+ private Set<String> addedEntitlementPoolsIds;
+
+ public Set<String> getAddedLicenseKeyGroupsIds() {
+ return addedLicenseKeyGroupsIds;
+ }
+
+ public void setAddedLicenseKeyGroupsIds(Set<String> addedLicenseKeyGroupsIds) {
+ this.addedLicenseKeyGroupsIds = addedLicenseKeyGroupsIds;
+ }
+
+ public Set<String> getAddedEntitlementPoolsIds() {
+ return addedEntitlementPoolsIds;
+ }
+
+ public void setAddedEntitlementPoolsIds(Set<String> addedEntitlementPoolsIds) {
+ this.addedEntitlementPoolsIds = addedEntitlementPoolsIds;
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/FeatureGroupUpdateRequestDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/FeatureGroupUpdateRequestDto.java
new file mode 100644
index 0000000000..002e48bb2c
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/FeatureGroupUpdateRequestDto.java
@@ -0,0 +1,48 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.types;
+
+import io.swagger.annotations.ApiModel;
+
+import java.util.Set;
+
+@ApiModel(value = "FeatureGroupUpdateRequest")
+public class FeatureGroupUpdateRequestDto extends FeatureGroupRequestDto {
+
+ private Set<String> removedLicenseKeyGroupsIds;
+ private Set<String> removedEntitlementPoolsIds;
+
+ public Set<String> getRemovedLicenseKeyGroupsIds() {
+ return removedLicenseKeyGroupsIds;
+ }
+
+ public void setRemovedLicenseKeyGroupsIds(Set<String> removedLicenseKeyGroupsIds) {
+ this.removedLicenseKeyGroupsIds = removedLicenseKeyGroupsIds;
+ }
+
+ public Set<String> getRemovedEntitlementPoolsIds() {
+ return removedEntitlementPoolsIds;
+ }
+
+ public void setRemovedEntitlementPoolsIds(Set<String> removedEntitlementPoolsIds) {
+ this.removedEntitlementPoolsIds = removedEntitlementPoolsIds;
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseAgreementDescriptorDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseAgreementDescriptorDto.java
new file mode 100644
index 0000000000..acfc130ed1
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseAgreementDescriptorDto.java
@@ -0,0 +1,74 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.types;
+
+import org.openecomp.sdc.vendorlicense.dao.types.LicenseTerm;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+
+public class LicenseAgreementDescriptorDto {
+
+ @NotNull
+ @Size(max = 120)
+ private String name;
+ @NotNull
+ @Size(max = 1000)
+ private String description;
+ @NotNull
+ @Valid
+ private ChoiceOrOtherDto<LicenseTerm> licenseTerm;
+ @Size(max = 1000)
+ private String requirementsAndConstrains;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public ChoiceOrOtherDto<LicenseTerm> getLicenseTerm() {
+ return licenseTerm;
+ }
+
+ public void setLicenseTerm(ChoiceOrOtherDto<LicenseTerm> licenseTerm) {
+ this.licenseTerm = licenseTerm;
+ }
+
+ public String getRequirementsAndConstrains() {
+ return requirementsAndConstrains;
+ }
+
+ public void setRequirementsAndConstrains(String requirementsAndConstrains) {
+ this.requirementsAndConstrains = requirementsAndConstrains;
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseAgreementEntityDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseAgreementEntityDto.java
new file mode 100644
index 0000000000..b0a8f65995
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseAgreementEntityDto.java
@@ -0,0 +1,51 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.types;
+
+
+import io.swagger.annotations.ApiModel;
+
+import java.util.Set;
+import javax.validation.constraints.Size;
+
+
+@ApiModel(value = "LicenseAgreementEntity")
+public class LicenseAgreementEntityDto extends LicenseAgreementDescriptorDto {
+ private String id;
+ @Size(min = 1)
+ private Set<String> featureGroupsIds;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public Set<String> getFeatureGroupsIds() {
+ return featureGroupsIds;
+ }
+
+ public void setFeatureGroupsIds(Set<String> featureGroupsIds) {
+ this.featureGroupsIds = featureGroupsIds;
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseAgreementModelDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseAgreementModelDto.java
new file mode 100644
index 0000000000..a3460c321f
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseAgreementModelDto.java
@@ -0,0 +1,47 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.types;
+
+import io.swagger.annotations.ApiModel;
+
+import java.util.Set;
+
+@ApiModel(value = "LicenseAgreementModel")
+public class LicenseAgreementModelDto extends LicenseAgreementDescriptorDto {
+ private String id;
+ private Set<FeatureGroupEntityDto> featureGroups;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public Set<FeatureGroupEntityDto> getFeatureGroups() {
+ return featureGroups;
+ }
+
+ public void setFeatureGroups(Set<FeatureGroupEntityDto> featureGroups) {
+ this.featureGroups = featureGroups;
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseAgreementRequestDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseAgreementRequestDto.java
new file mode 100644
index 0000000000..3830bdb713
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseAgreementRequestDto.java
@@ -0,0 +1,39 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.types;
+
+import io.swagger.annotations.ApiModel;
+
+import java.util.Set;
+
+@ApiModel(value = "LicenseAgreementRequest")
+public class LicenseAgreementRequestDto extends LicenseAgreementDescriptorDto {
+
+ private Set<String> addedFeatureGroupsIds;
+
+ public Set<String> getAddedFeatureGroupsIds() {
+ return addedFeatureGroupsIds;
+ }
+
+ public void setAddedFeatureGroupsIds(Set<String> addedFeatureGroupsIds) {
+ this.addedFeatureGroupsIds = addedFeatureGroupsIds;
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseAgreementUpdateRequestDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseAgreementUpdateRequestDto.java
new file mode 100644
index 0000000000..2590bcf519
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseAgreementUpdateRequestDto.java
@@ -0,0 +1,38 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.types;
+
+import io.swagger.annotations.ApiModel;
+
+import java.util.Set;
+
+@ApiModel(value = "LicenseAgreementUpdateRequest")
+public class LicenseAgreementUpdateRequestDto extends LicenseAgreementRequestDto {
+ private Set<String> removedFeatureGroupsIds;
+
+ public Set<String> getRemovedFeatureGroupsIds() {
+ return removedFeatureGroupsIds;
+ }
+
+ public void setRemovedFeatureGroupsIds(Set<String> removedFeatureGroupsIds) {
+ this.removedFeatureGroupsIds = removedFeatureGroupsIds;
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseKeyGroupEntityDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseKeyGroupEntityDto.java
new file mode 100644
index 0000000000..9fab60fe27
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseKeyGroupEntityDto.java
@@ -0,0 +1,45 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.types;
+
+
+import java.util.Set;
+
+public class LicenseKeyGroupEntityDto extends LicenseKeyGroupRequestDto {
+ private String id;
+ private Set<String> referencingFeatureGroups;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public Set<String> getReferencingFeatureGroups() {
+ return referencingFeatureGroups;
+ }
+
+ public void setReferencingFeatureGroups(Set<String> referencingFeatureGroups) {
+ this.referencingFeatureGroups = referencingFeatureGroups;
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseKeyGroupRequestDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseKeyGroupRequestDto.java
new file mode 100644
index 0000000000..0df2e3251f
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseKeyGroupRequestDto.java
@@ -0,0 +1,74 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.types;
+
+import org.openecomp.sdc.vendorlicense.dao.types.LicenseKeyType;
+import org.openecomp.sdc.vendorlicense.dao.types.OperationalScope;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+
+public class LicenseKeyGroupRequestDto {
+ @NotNull
+ @Size(max = 120)
+ private String name;
+ @NotNull
+ @Size(max = 1000)
+ private String description;
+ @NotNull
+ private LicenseKeyType type;
+ @NotNull
+ @Valid
+ private MultiChoiceOrOtherDto<OperationalScope> operationalScope;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public LicenseKeyType getType() {
+ return type;
+ }
+
+ public void setType(LicenseKeyType type) {
+ this.type = type;
+ }
+
+ public MultiChoiceOrOtherDto<OperationalScope> getOperationalScope() {
+ return operationalScope;
+ }
+
+ public void setOperationalScope(MultiChoiceOrOtherDto<OperationalScope> operationalScope) {
+ this.operationalScope = operationalScope;
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/MultiChoiceOrOtherDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/MultiChoiceOrOtherDto.java
new file mode 100644
index 0000000000..5a88e4c72f
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/MultiChoiceOrOtherDto.java
@@ -0,0 +1,79 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.types;
+
+import org.hibernate.validator.group.GroupSequenceProvider;
+import org.openecomp.sdcrests.vendorlicense.types.validation.MultiChoiceOrOtherSequenceProvider;
+import org.openecomp.sdcrests.vendorlicense.types.validation.OtherChoiceValidation;
+
+import java.util.Set;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+
+
+@GroupSequenceProvider(value = MultiChoiceOrOtherSequenceProvider.class)
+public class MultiChoiceOrOtherDto<E extends Enum<E>> {
+ @NotNull
+ @Size(min = 1, message = "must contain at least 1 choice.")
+ private Set<E> choices;
+ @NotNull(message = "may not be null when choices is set to 'Other'.",
+ groups = OtherChoiceValidation.class)
+ private String other;
+
+ public Set<E> getChoices() {
+ return choices;
+ }
+
+ public void setChoices(Set<E> choices) {
+ this.choices = choices;
+ }
+
+ public String getOther() {
+ return other;
+ }
+
+ public void setOther(String other) {
+ this.other = other;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null || getClass() != obj.getClass()) {
+ return false;
+ }
+
+ MultiChoiceOrOtherDto<?> that = (MultiChoiceOrOtherDto<?>) obj;
+
+ return choices != null ? choices.equals(that.choices)
+ : that.choices == null && (other != null ? other.equals(that.other) : that.other == null);
+
+ }
+
+ @Override
+ public int hashCode() {
+ int result = choices != null ? choices.hashCode() : 0;
+ result = 31 * result + (other != null ? other.hashCode() : 0);
+ return result;
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/VendorLicenseModelActionRequestDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/VendorLicenseModelActionRequestDto.java
new file mode 100644
index 0000000000..cfae94ce35
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/VendorLicenseModelActionRequestDto.java
@@ -0,0 +1,36 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.types;
+
+import org.openecomp.sdcrests.versioning.types.VersioningAction;
+
+public class VendorLicenseModelActionRequestDto {
+
+ private VersioningAction action;
+
+ public VersioningAction getAction() {
+ return action;
+ }
+
+ public void setAction(VersioningAction action) {
+ this.action = action;
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/VendorLicenseModelEntityDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/VendorLicenseModelEntityDto.java
new file mode 100644
index 0000000000..6c10f8fbe2
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/VendorLicenseModelEntityDto.java
@@ -0,0 +1,85 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.types;
+
+import io.swagger.annotations.ApiModel;
+import org.openecomp.sdc.versioning.dao.types.VersionStatus;
+
+
+import java.util.List;
+
+@ApiModel(value = "VendorLicenseModelEntity")
+public class VendorLicenseModelEntityDto extends VendorLicenseModelRequestDto {
+ private String id;
+ private String version;
+ private VersionStatus status;
+ private String lockingUser;
+ private List<String> viewableVersions;
+ private List<String> finalVersions;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getVersion() {
+ return version;
+ }
+
+ public void setVersion(String version) {
+ this.version = version;
+ }
+
+ public VersionStatus getStatus() {
+ return status;
+ }
+
+ public void setStatus(VersionStatus status) {
+ this.status = status;
+ }
+
+ public String getLockingUser() {
+ return lockingUser;
+ }
+
+ public void setLockingUser(String lockingUser) {
+ this.lockingUser = lockingUser;
+ }
+
+ public List<String> getViewableVersions() {
+ return viewableVersions;
+ }
+
+ public void setViewableVersions(List<String> viewableVersions) {
+ this.viewableVersions = viewableVersions;
+ }
+
+ public List<String> getFinalVersions() {
+ return finalVersions;
+ }
+
+ public void setFinalVersions(List<String> finalVersions) {
+ this.finalVersions = finalVersions;
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/VendorLicenseModelRequestDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/VendorLicenseModelRequestDto.java
new file mode 100644
index 0000000000..57b936a57f
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/VendorLicenseModelRequestDto.java
@@ -0,0 +1,62 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.types;
+
+import io.swagger.annotations.ApiModel;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+
+@ApiModel(value = "VendorLicenseModelRequest")
+public class VendorLicenseModelRequestDto {
+ @NotNull
+ @Size(max = 25)
+ private String vendorName;
+ @NotNull
+ @Size(max = 1000)
+ private String description;
+ @NotNull
+ private String iconRef;
+
+ public String getVendorName() {
+ return vendorName;
+ }
+
+ public void setVendorName(String vendorName) {
+ this.vendorName = vendorName;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getIconRef() {
+ return iconRef;
+ }
+
+ public void setIconRef(String iconRef) {
+ this.iconRef = iconRef;
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/validation/ChoiceOrOtherSequenceProvider.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/validation/ChoiceOrOtherSequenceProvider.java
new file mode 100644
index 0000000000..8be0ba3231
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/validation/ChoiceOrOtherSequenceProvider.java
@@ -0,0 +1,45 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.types.validation;
+
+import org.hibernate.validator.spi.group.DefaultGroupSequenceProvider;
+import org.openecomp.sdc.vendorlicense.dao.types.ChoiceOrOther;
+import org.openecomp.sdcrests.vendorlicense.types.ChoiceOrOtherDto;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class ChoiceOrOtherSequenceProvider
+ implements DefaultGroupSequenceProvider<ChoiceOrOtherDto> {
+
+ @Override
+ public List<Class<?>> getValidationGroups(ChoiceOrOtherDto choiceOrOther) {
+ List<Class<?>> sequence = new ArrayList<>();
+ sequence.add(ChoiceOrOtherDto.class);
+
+ if (choiceOrOther != null && choiceOrOther.getChoice() != null
+ && ChoiceOrOther.OTHER_ENUM_VALUE.equals(choiceOrOther.getChoice().name())) {
+ sequence.add(OtherChoiceValidation.class);
+ }
+
+ return sequence;
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/validation/MultiChoiceOrOtherSequenceProvider.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/validation/MultiChoiceOrOtherSequenceProvider.java
new file mode 100644
index 0000000000..7cc9bbd2a2
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/validation/MultiChoiceOrOtherSequenceProvider.java
@@ -0,0 +1,47 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.types.validation;
+
+import org.hibernate.validator.spi.group.DefaultGroupSequenceProvider;
+import org.openecomp.sdc.vendorlicense.dao.types.MultiChoiceOrOther;
+import org.openecomp.sdcrests.vendorlicense.types.MultiChoiceOrOtherDto;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class MultiChoiceOrOtherSequenceProvider
+ implements DefaultGroupSequenceProvider<MultiChoiceOrOtherDto> {
+
+ @Override
+ public List<Class<?>> getValidationGroups(MultiChoiceOrOtherDto multiChoiceOrOther) {
+ List<Class<?>> sequence = new ArrayList<>();
+ sequence.add(MultiChoiceOrOtherDto.class);
+
+ if (multiChoiceOrOther != null && multiChoiceOrOther.getChoices() != null
+ && multiChoiceOrOther.getChoices().size() == 1
+ && MultiChoiceOrOther.OTHER_ENUM_VALUE
+ .equals((((Enum) (multiChoiceOrOther.getChoices().iterator().next())).name()))) {
+ sequence.add(OtherChoiceValidation.class);
+ }
+
+ return sequence;
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/validation/OtherChoiceValidation.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/validation/OtherChoiceValidation.java
new file mode 100644
index 0000000000..ff682dd8b5
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/validation/OtherChoiceValidation.java
@@ -0,0 +1,24 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.openecomp.sdcrests.vendorlicense.types.validation;
+
+public interface OtherChoiceValidation {
+}