summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/onap/policy/clamp/clds/ClampServlet.java24
-rw-r--r--src/main/java/org/onap/policy/clamp/clds/config/DefaultUserConfiguration.java6
-rw-r--r--src/main/java/org/onap/policy/clamp/clds/sdc/controller/SdcSingleController.java23
-rw-r--r--src/main/java/org/onap/policy/clamp/clds/util/LoggingUtils.java92
-rw-r--r--src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicy.java3
-rw-r--r--src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicy.java5
-rw-r--r--src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayload.java18
-rw-r--r--src/main/resources/META-INF/resources/swagger.html651
-rw-r--r--src/main/resources/boot-message.txt25
-rw-r--r--src/main/resources/clds/camel/rest/clamp-api-v2.xml17
-rw-r--r--src/main/resources/clds/camel/routes/policy-flows.xml2
-rw-r--r--src/test/resources/example/policy/pdp-group-multi-policies-payload.json30
-rw-r--r--src/test/resources/example/policy/pdp-group-policy-payload.json14
13 files changed, 638 insertions, 272 deletions
diff --git a/src/main/java/org/onap/policy/clamp/clds/ClampServlet.java b/src/main/java/org/onap/policy/clamp/clds/ClampServlet.java
index dcaa2acf3..ccde7cf11 100644
--- a/src/main/java/org/onap/policy/clamp/clds/ClampServlet.java
+++ b/src/main/java/org/onap/policy/clamp/clds/ClampServlet.java
@@ -1,6 +1,6 @@
/*-
* ============LICENSE_START=======================================================
- * ONAP CLAMP
+ * ONAP POLICY-CLAMP
* ================================================================================
* Copyright (C) 2018, 2021 AT&T Intellectual Property. All rights
* reserved.
@@ -31,12 +31,14 @@ import java.io.IOException;
import java.security.Principal;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.camel.component.servlet.CamelHttpTransportServlet;
+import org.apache.commons.lang3.StringUtils;
import org.onap.policy.clamp.authorization.SecureServicePermission;
import org.springframework.context.ApplicationContext;
import org.springframework.http.HttpStatus;
@@ -46,6 +48,7 @@ import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.User;
+import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
public class ClampServlet extends CamelHttpTransportServlet {
@@ -70,9 +73,22 @@ public class ClampServlet extends CamelHttpTransportServlet {
private static List<SecureServicePermission> permissionList;
private synchronized List<String> loadDynamicAuthenticationClasses() {
- return Arrays.stream(WebApplicationContextUtils.getWebApplicationContext(getServletContext())
- .getEnvironment().getProperty(AUTHENTICATION_CLASS).split(",")).map(String::trim)
- .collect(Collectors.toList());
+ WebApplicationContext webAppContext = WebApplicationContextUtils.getWebApplicationContext(getServletContext());
+ if (webAppContext != null) {
+ String authClassProperty = webAppContext.getEnvironment().getProperty(AUTHENTICATION_CLASS);
+ if (!StringUtils.isBlank(authClassProperty)) {
+ return Arrays.stream(authClassProperty.split(",")).map(String::trim)
+ .collect(Collectors.toList());
+ }
+ logger.warn(
+ "No authentication classes defined in Clamp BE config " + AUTHENTICATION_CLASS
+ + " AAF authentication could be broken due to that");
+ } else {
+ logger.error(
+ "WebApplicationContext is NULL, no authentication classes will be loaded in clamp BE"
+ + ", AAF authentication could be broken");
+ }
+ return Collections.emptyList();
}
private synchronized List<SecureServicePermission> getPermissionList() {
diff --git a/src/main/java/org/onap/policy/clamp/clds/config/DefaultUserConfiguration.java b/src/main/java/org/onap/policy/clamp/clds/config/DefaultUserConfiguration.java
index 015868141..bb7b76af3 100644
--- a/src/main/java/org/onap/policy/clamp/clds/config/DefaultUserConfiguration.java
+++ b/src/main/java/org/onap/policy/clamp/clds/config/DefaultUserConfiguration.java
@@ -1,8 +1,8 @@
/*-
* ============LICENSE_START=======================================================
- * ONAP CLAMP
+ * ONAP POLICY-CLAMP
* ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018, 2021 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Modifications Copyright (c) 2019 Samsung
@@ -73,6 +73,8 @@ public class DefaultUserConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) {
try {
+ // Do no remove the csrf as recommended by Sonar otherwise Put/post will not work
+ // Moreover this default user class is only used by dev, on prod we use AAF and this code will be disabled
http.csrf().disable().httpBasic().and().authorizeRequests().antMatchers("/restservices/clds/v1/user/**")
.authenticated().anyRequest().permitAll().and().sessionManagement()
.maximumSessions(1);
diff --git a/src/main/java/org/onap/policy/clamp/clds/sdc/controller/SdcSingleController.java b/src/main/java/org/onap/policy/clamp/clds/sdc/controller/SdcSingleController.java
index 4ca6b1cf4..39e64e46b 100644
--- a/src/main/java/org/onap/policy/clamp/clds/sdc/controller/SdcSingleController.java
+++ b/src/main/java/org/onap/policy/clamp/clds/sdc/controller/SdcSingleController.java
@@ -1,8 +1,8 @@
/*-
* ============LICENSE_START=======================================================
- * ONAP CLAMP
+ * ONAP POLICY-CLAMP
* ================================================================================
- * Copyright (C) 2018-2019 AT&T Intellectual Property. All rights
+ * Copyright (C) 2018-2019, 2021 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -26,9 +26,9 @@ package org.onap.policy.clamp.clds.sdc.controller;
import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
+import java.security.SecureRandom;
import java.util.Date;
import java.util.Map.Entry;
-import java.util.concurrent.ThreadLocalRandom;
import org.onap.policy.clamp.clds.config.ClampProperties;
import org.onap.policy.clamp.clds.config.sdc.SdcSingleControllerConfiguration;
import org.onap.policy.clamp.clds.exception.sdc.controller.BlueprintParserException;
@@ -261,7 +261,7 @@ public class SdcSingleController {
try {
// wait for a random time, so that 2 running Clamp will not treat
// the same Notification at the same time
- Thread.sleep(ThreadLocalRandom.current().nextInt(1, 10) * 1000L);
+ Thread.sleep((new SecureRandom().nextInt(10) + 1) * 1000L);
logger.info("Notification received for service UUID:" + notificationData.getServiceUUID());
this.changeControllerStatus(SdcSingleControllerStatus.BUSY);
csar = new CsarHandler(notificationData, this.sdcConfig.getSdcControllerName(),
@@ -383,23 +383,28 @@ public class SdcSingleController {
try {
IComponentDoneStatusMessage message = new IComponentDoneStatusMessage() {
- @Override public String getDistributionID() {
+ @Override
+ public String getDistributionID() {
return notificationData.getDistributionID();
}
- @Override public String getConsumerID() {
+ @Override
+ public String getConsumerID() {
return sdcConfig.getConsumerID();
}
- @Override public long getTimestamp() {
+ @Override
+ public long getTimestamp() {
return System.currentTimeMillis();
}
- @Override public DistributionStatusEnum getStatus() {
+ @Override
+ public DistributionStatusEnum getStatus() {
return status;
}
- @Override public String getComponentName() {
+ @Override
+ public String getComponentName() {
return sdcConfig.getUser();
}
};
diff --git a/src/main/java/org/onap/policy/clamp/clds/util/LoggingUtils.java b/src/main/java/org/onap/policy/clamp/clds/util/LoggingUtils.java
index b5f9837b0..4145844a2 100644
--- a/src/main/java/org/onap/policy/clamp/clds/util/LoggingUtils.java
+++ b/src/main/java/org/onap/policy/clamp/clds/util/LoggingUtils.java
@@ -58,13 +58,19 @@ public class LoggingUtils {
private static final String DATE_FORMATTER_ISO = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX";
- /** String constant for messages <tt>ENTERING</tt>, <tt>EXITING</tt>, etc. */
+ /**
+ * String constant for messages <tt>ENTERING</tt>, <tt>EXITING</tt>, etc.
+ */
private static final String EMPTY_MESSAGE = "";
- /** Logger delegate. */
+ /**
+ * Logger delegate.
+ */
private final Logger mlogger;
- /** Automatic UUID, overrideable per adapter or per invocation. */
+ /**
+ * Automatic UUID, overrideable per adapter or per invocation.
+ */
private static final UUID sInstanceUUID = UUID.randomUUID();
/**
@@ -98,7 +104,7 @@ public class LoggingUtils {
* Set time related logging variables in thread local data via MDC.
*
* @param beginTimeStamp Start time
- * @param endTimeStamp End time
+ * @param endTimeStamp End time
*/
public static void setTimeContext(@NotNull Date beginTimeStamp, @NotNull Date endTimeStamp) {
MDC.put("EntryTimestamp", generateTimestampStr(beginTimeStamp));
@@ -109,9 +115,9 @@ public class LoggingUtils {
/**
* Set response related logging variables in thread local data via MDC.
*
- * @param code Response code ("0" indicates success)
+ * @param code Response code ("0" indicates success)
* @param description Response description
- * @param className class name of invoking class
+ * @param className class name of invoking class
*/
public static void setResponseContext(String code, String description, String className) {
MDC.put("ResponseCode", code);
@@ -123,7 +129,7 @@ public class LoggingUtils {
/**
* Set target related logging variables in thread local data via MDC.
*
- * @param targetEntity Target entity (an external/sub component, for ex. "sdc")
+ * @param targetEntity Target entity (an external/sub component, for ex. "sdc")
* @param targetServiceName Target service name (name of API invoked on target)
*/
public static void setTargetContext(String targetEntity, String targetServiceName) {
@@ -134,7 +140,7 @@ public class LoggingUtils {
/**
* Set error related logging variables in thread local data via MDC.
*
- * @param code Error code
+ * @param code Error code
* @param description Error description
*/
public static void setErrorContext(String code, String description) {
@@ -175,7 +181,7 @@ public class LoggingUtils {
/**
* Report <tt>ENTERING</tt> marker.
*
- * @param request non-null incoming request (wrapper)
+ * @param request non-null incoming request (wrapper)
* @param serviceName service name
*/
public void entering(HttpServletRequest request, String serviceName) {
@@ -183,16 +189,16 @@ public class LoggingUtils {
checkNotNull(request);
// Extract MDC values from standard HTTP headers.
final String requestId =
- defaultToUuid(request.getHeader(OnapLogConstants.Headers.REQUEST_ID));
+ defaultToUuid(request.getHeader(OnapLogConstants.Headers.REQUEST_ID));
final String invocationId =
- defaultToUuid(request.getHeader(OnapLogConstants.Headers.INVOCATION_ID));
+ defaultToUuid(request.getHeader(OnapLogConstants.Headers.INVOCATION_ID));
final String partnerName =
- defaultToEmpty(request.getHeader(OnapLogConstants.Headers.PARTNER_NAME));
+ defaultToEmpty(request.getHeader(OnapLogConstants.Headers.PARTNER_NAME));
// Default the partner name to the user name used to login to clamp
if (partnerName.equalsIgnoreCase(EMPTY_MESSAGE)) {
MDC.put(OnapLogConstants.Mdcs.PARTNER_NAME,
- AuthorizationController.getPrincipalName(SecurityContextHolder.getContext()));
+ AuthorizationController.getPrincipalName(SecurityContextHolder.getContext()));
}
// Set standard MDCs. Override this entire method if you want to set
@@ -200,7 +206,7 @@ public class LoggingUtils {
// depending on where you need them to appear, OR extend the
// ServiceDescriptor to add them.
MDC.put(OnapLogConstants.Mdcs.ENTRY_TIMESTAMP, ZonedDateTime.now(ZoneOffset.UTC)
- .format(DateTimeFormatter.ofPattern(DATE_FORMATTER_ISO)));
+ .format(DateTimeFormatter.ofPattern(DATE_FORMATTER_ISO)));
MDC.put(OnapLogConstants.Mdcs.REQUEST_ID, requestId);
MDC.put(OnapLogConstants.Mdcs.INVOCATION_ID, invocationId);
MDC.put(OnapLogConstants.Mdcs.CLIENT_IP_ADDRESS, defaultToEmpty(request.getRemoteAddr()));
@@ -217,7 +223,7 @@ public class LoggingUtils {
// Set the Response Status code to in progress
MDC.put(OnapLogConstants.Mdcs.RESPONSE_STATUS_CODE,
- OnapLogConstants.ResponseStatus.INPROGRESS.toString());
+ OnapLogConstants.ResponseStatus.INPROGRESS.toString());
setElapsedTime();
this.mlogger.info(OnapLogConstants.Markers.ENTRY, "Entering");
@@ -226,18 +232,17 @@ public class LoggingUtils {
/**
* Report <tt>EXITING</tt> marker.
*
- *
- * @param code response code
- * @param descrption response description
- * @param severity response severity
- * @param status response status code
+ * @param code response code
+ * @param description response description
+ * @param severity response severity
+ * @param status response status code
*/
- public void exiting(int code, String descrption, Level severity,
- OnapLogConstants.ResponseStatus status) {
+ public void exiting(int code, String description, Level severity,
+ OnapLogConstants.ResponseStatus status) {
try {
MDC.put(OnapLogConstants.Mdcs.RESPONSE_CODE, defaultToEmpty(code));
- MDC.put(OnapLogConstants.Mdcs.RESPONSE_DESCRIPTION, defaultToEmpty(descrption));
+ MDC.put(OnapLogConstants.Mdcs.RESPONSE_DESCRIPTION, defaultToEmpty(description));
MDC.put(OnapLogConstants.Mdcs.RESPONSE_SEVERITY, defaultToEmpty(severity));
MDC.put(OnapLogConstants.Mdcs.RESPONSE_STATUS_CODE, defaultToEmpty(status));
@@ -249,12 +254,11 @@ public class LoggingUtils {
}
private void setElapsedTime() {
- ZonedDateTime startTime =
- ZonedDateTime.parse(MDC.get(OnapLogConstants.Mdcs.ENTRY_TIMESTAMP),
- DateTimeFormatter.ISO_DATE_TIME.withZone(ZoneOffset.UTC));
- ZonedDateTime endTime = ZonedDateTime.now(ZoneOffset.UTC);
- long duration = ChronoUnit.MILLIS.between(startTime, endTime);
- MDC.put(OnapLogConstants.Mdcs.ELAPSED_TIME, String.valueOf(duration));
+ String entryTimestamp = MDC.get(OnapLogConstants.Mdcs.ENTRY_TIMESTAMP);
+ MDC.put(OnapLogConstants.Mdcs.ELAPSED_TIME, String.valueOf(ChronoUnit.MILLIS
+ .between(ZonedDateTime.parse(entryTimestamp != null ? entryTimestamp : ZonedDateTime.now(ZoneOffset.UTC)
+ .format(DateTimeFormatter.ofPattern(DATE_FORMATTER_ISO)),
+ DateTimeFormatter.ISO_DATE_TIME.withZone(ZoneOffset.UTC)), ZonedDateTime.now(ZoneOffset.UTC))));
}
/**
@@ -271,13 +275,13 @@ public class LoggingUtils {
* Report pending invocation with <tt>INVOKE</tt> marker,
* setting standard ONAP logging headers automatically.
*
- * @param con The HTTP url connection
- * @param targetEntity The target entity
+ * @param con The HTTP url connection
+ * @param targetEntity The target entity
* @param targetServiceName The target service name
* @return The HTTP url connection
*/
public HttpURLConnection invoke(final HttpURLConnection con, String targetEntity,
- String targetServiceName) {
+ String targetServiceName) {
return this.invokeGeneric(con, targetEntity, targetServiceName);
}
@@ -285,7 +289,7 @@ public class LoggingUtils {
* Report pending invocation with <tt>INVOKE</tt> marker,
* setting standard ONAP logging headers automatically.
*
- * @param targetEntity The target entity
+ * @param targetEntity The target entity
* @param targetServiceName The target service name
*/
public void invoke(String targetEntity, String targetServiceName) {
@@ -304,13 +308,13 @@ public class LoggingUtils {
* Report pending invocation with <tt>INVOKE</tt> marker,
* setting standard ONAP logging headers automatically.
*
- * @param con The HTTPS url connection
- * @param targetEntity The target entity
+ * @param con The HTTPS url connection
+ * @param targetEntity The target entity
* @param targetServiceName The target service name
* @return The HTTPS url connection
*/
public HttpsURLConnection invokeHttps(final HttpsURLConnection con, String targetEntity,
- String targetServiceName) {
+ String targetServiceName) {
return this.invokeGeneric(con, targetEntity, targetServiceName);
}
@@ -319,7 +323,7 @@ public class LoggingUtils {
*/
public void invokeReturn() {
MDC.put(OnapLogConstants.Mdcs.RESPONSE_STATUS_CODE,
- OnapLogConstants.ResponseStatus.COMPLETE.toString());
+ OnapLogConstants.ResponseStatus.COMPLETE.toString());
// Add the Invoke-return marker and clear the needed MDC
this.mlogger.info(OnapLogConstants.Markers.INVOKE_RETURN, "INVOKE-RETURN");
invokeReturnContext();
@@ -328,7 +332,7 @@ public class LoggingUtils {
/**
* Dependency-free nullcheck.
*
- * @param in to be checked
+ * @param in to be checked
* @param <T> argument (and return) type
* @return input arg
*/
@@ -368,16 +372,16 @@ public class LoggingUtils {
/**
* Set target related logging variables in thread local data via MDC.
*
- * @param targetEntity Target entity (an external/sub component, for ex. "sdc")
+ * @param targetEntity Target entity (an external/sub component, for ex. "sdc")
* @param targetServiceName Target service name (name of API invoked on target)
- * @param invocationId The invocation ID
+ * @param invocationId The invocation ID
*/
private void invokeContext(String targetEntity, String targetServiceName, String invocationId) {
MDC.put(OnapLogConstants.Mdcs.TARGET_ENTITY, defaultToEmpty(targetEntity));
MDC.put(OnapLogConstants.Mdcs.TARGET_SERVICE_NAME, defaultToEmpty(targetServiceName));
MDC.put(OnapLogConstants.Mdcs.INVOCATIONID_OUT, invocationId);
MDC.put(OnapLogConstants.Mdcs.INVOKE_TIMESTAMP, ZonedDateTime.now(ZoneOffset.UTC)
- .format(DateTimeFormatter.ofPattern(DATE_FORMATTER_ISO)));
+ .format(DateTimeFormatter.ofPattern(DATE_FORMATTER_ISO)));
}
/**
@@ -392,15 +396,15 @@ public class LoggingUtils {
}
private <T extends URLConnection> T invokeGeneric(final T con, String targetEntity,
- String targetServiceName) {
+ String targetServiceName) {
final String invocationId = UUID.randomUUID().toString();
// Set standard HTTP headers on (southbound request) builder.
con.setRequestProperty(OnapLogConstants.Headers.REQUEST_ID,
- defaultToEmpty(MDC.get(OnapLogConstants.Mdcs.REQUEST_ID)));
+ defaultToEmpty(MDC.get(OnapLogConstants.Mdcs.REQUEST_ID)));
con.setRequestProperty(OnapLogConstants.Headers.INVOCATION_ID, invocationId);
con.setRequestProperty(OnapLogConstants.Headers.PARTNER_NAME,
- defaultToEmpty(MDC.get(OnapLogConstants.Mdcs.PARTNER_NAME)));
+ defaultToEmpty(MDC.get(OnapLogConstants.Mdcs.PARTNER_NAME)));
invokeContext(targetEntity, targetServiceName, invocationId);
diff --git a/src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicy.java b/src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicy.java
index 2e5db8e24..be5e7917c 100644
--- a/src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicy.java
+++ b/src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicy.java
@@ -26,6 +26,7 @@ package org.onap.policy.clamp.policy.microservice;
import com.google.gson.JsonObject;
import com.google.gson.annotations.Expose;
import java.io.Serializable;
+import java.security.SecureRandom;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
@@ -130,7 +131,7 @@ public class MicroServicePolicy extends Policy implements Serializable {
this(Policy.generatePolicyName("MICROSERVICE", service.getName(), service.getVersion(),
loopElementModel.getPolicyModels().first().getPolicyAcronym() + '_'
+ loopElementModel.getPolicyModels().first().getVersion(),
- RandomStringUtils.randomAlphanumeric(3)),
+ RandomStringUtils.random(3, 0, 0, true, true, null, new SecureRandom())),
loopElementModel.getPolicyModels().first(), false, new JsonObject(), loopElementModel, null, null);
this.updateJsonRepresentation(toscaConverter, service);
}
diff --git a/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicy.java b/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicy.java
index 5b29f319c..1646a7cc7 100644
--- a/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicy.java
+++ b/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicy.java
@@ -30,6 +30,7 @@ import com.google.gson.JsonObject;
import com.google.gson.annotations.Expose;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
+import java.security.SecureRandom;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
@@ -114,7 +115,7 @@ public class OperationalPolicy extends Policy implements Serializable {
this(Policy.generatePolicyName("OPERATIONAL", service.getName(), service.getVersion(),
loopElementModel.getPolicyModels().first().getPolicyAcronym() + '_'
+ loopElementModel.getPolicyModels().first().getVersion(),
- RandomStringUtils.randomAlphanumeric(3)), new JsonObject(),
+ RandomStringUtils.random(3, 0, 0, true, true, null, new SecureRandom())), new JsonObject(),
new JsonObject(), loopElementModel.getPolicyModels().first(), loopElementModel, null, null);
this.setLoop(loop);
this.updateJsonRepresentation(toscaConverter, service);
@@ -132,7 +133,7 @@ public class OperationalPolicy extends Policy implements Serializable {
ToscaConverterWithDictionarySupport toscaConverter) {
this(Policy.generatePolicyName("OPERATIONAL", service.getName(), service.getVersion(),
policyModel.getPolicyAcronym() + '_' + policyModel.getVersion(),
- RandomStringUtils.randomAlphanumeric(3)),
+ RandomStringUtils.random(3, 0, 0, true, true, null, new SecureRandom())),
new JsonObject(),
new JsonObject(), policyModel, null, null, null);
this.setLoop(loop);
diff --git a/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayload.java b/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayload.java
index a10f6df7d..c6b44076f 100644
--- a/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayload.java
+++ b/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayload.java
@@ -62,7 +62,7 @@ public class PdpGroupPayload {
* Constructor that takes a list of actions in input.
*
* @param listOfPdpActions The list of actions that needs to be done.
- * e.g: {"Pdpactions":["DELETE/PdpGroup1/PdpSubGroup1/PolicyName1/1.0.0",....]}
+ * e.g: {"Pdpactions":["DELETE/PdpGroup1/PdpSubGroup1/PolicyName1/1.0.0",....]}
* @throws PdpGroupPayloadException in case of issues to read the listOfActions
*/
public PdpGroupPayload(final JsonElement listOfPdpActions) throws PdpGroupPayloadException {
@@ -74,7 +74,7 @@ public class PdpGroupPayload {
* This method converts the list of actions directly to the pdp payload query as String.
*
* @param listOfPdpActions The list of actions that needs to be done.
- * e.g: {"Pdpactions":["DELETE/PdpGroup1/PdpSubGroup1/PolicyName1/1.0.0",....]}
+ * e.g: {"Pdpactions":["DELETE/PdpGroup1/PdpSubGroup1/PolicyName1/1.0.0",....]}
* @return The string containing the PDP payload that can be sent directly
* @throws PdpGroupPayloadException in case of issues to read the listOfActions
*/
@@ -115,12 +115,16 @@ public class PdpGroupPayload {
newSubGroup.setPdpType(pdpSubGroup);
newSubGroup.setAction(DeploymentSubGroup.Action.valueOf(action));
newSubGroup.setPolicies(Arrays.asList(new ToscaConceptIdentifier(policyName, policyVersion)));
- // Then the group
- DeploymentGroup newGroup = new DeploymentGroup();
- newGroup.setName(pdpGroup);
- newGroup.setDeploymentSubgroups(Arrays.asList(newSubGroup));
// Add to deployment Groups structure
- this.deploymentGroups.getGroups().add(newGroup);
+ this.deploymentGroups.getGroups().stream().filter(group ->
+ group.getName().equals(pdpGroup)).findFirst()
+ .ifPresentOrElse(group -> group.getDeploymentSubgroups().add(newSubGroup),
+ () -> {
+ DeploymentGroup newGroup = new DeploymentGroup();
+ newGroup.setName(pdpGroup);
+ newGroup.setDeploymentSubgroups(new ArrayList<>(Arrays.asList(newSubGroup)));
+ this.deploymentGroups.getGroups().add(newGroup);
+ });
}
/**
diff --git a/src/main/resources/META-INF/resources/swagger.html b/src/main/resources/META-INF/resources/swagger.html
index 6712ab096..267cb509b 100644
--- a/src/main/resources/META-INF/resources/swagger.html
+++ b/src/main/resources/META-INF/resources/swagger.html
@@ -444,31 +444,31 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</li>
<li><a href="#_paths">2. Paths</a>
<ul class="sectlevel2">
-<li><a href="#_route184">2.1. GET /v1/healthcheck</a>
+<li><a href="#_verb194">2.1. GET /v1/healthcheck</a>
<ul class="sectlevel3">
<li><a href="#_responses">2.1.1. Responses</a></li>
<li><a href="#_produces">2.1.2. Produces</a></li>
</ul>
</li>
-<li><a href="#_route185">2.2. GET /v1/user/getUser</a>
+<li><a href="#_verb195">2.2. GET /v1/user/getUser</a>
<ul class="sectlevel3">
<li><a href="#_responses_2">2.2.1. Responses</a></li>
<li><a href="#_produces_2">2.2.2. Produces</a></li>
</ul>
</li>
-<li><a href="#_route183">2.3. GET /v2/clampInformation</a>
+<li><a href="#_verb193">2.3. GET /v2/clampInformation</a>
<ul class="sectlevel3">
<li><a href="#_responses_3">2.3.1. Responses</a></li>
<li><a href="#_produces_3">2.3.2. Produces</a></li>
</ul>
</li>
-<li><a href="#_route167">2.4. GET /v2/dictionary</a>
+<li><a href="#_verb177">2.4. GET /v2/dictionary</a>
<ul class="sectlevel3">
<li><a href="#_responses_4">2.4.1. Responses</a></li>
<li><a href="#_produces_4">2.4.2. Produces</a></li>
</ul>
</li>
-<li><a href="#_route170">2.5. PUT /v2/dictionary</a>
+<li><a href="#_verb180">2.5. PUT /v2/dictionary</a>
<ul class="sectlevel3">
<li><a href="#_parameters">2.5.1. Parameters</a></li>
<li><a href="#_responses_5">2.5.2. Responses</a></li>
@@ -476,20 +476,20 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<li><a href="#_produces_5">2.5.4. Produces</a></li>
</ul>
</li>
-<li><a href="#_route168">2.6. GET /v2/dictionary/secondary/names</a>
+<li><a href="#_verb178">2.6. GET /v2/dictionary/secondary/names</a>
<ul class="sectlevel3">
<li><a href="#_responses_6">2.6.1. Responses</a></li>
<li><a href="#_produces_6">2.6.2. Produces</a></li>
</ul>
</li>
-<li><a href="#_route169">2.7. GET /v2/dictionary/{dictionaryName}</a>
+<li><a href="#_verb179">2.7. GET /v2/dictionary/{dictionaryName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_2">2.7.1. Parameters</a></li>
<li><a href="#_responses_7">2.7.2. Responses</a></li>
<li><a href="#_produces_7">2.7.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route171">2.8. PUT /v2/dictionary/{name}</a>
+<li><a href="#_verb181">2.8. PUT /v2/dictionary/{name}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_3">2.8.1. Parameters</a></li>
<li><a href="#_responses_8">2.8.2. Responses</a></li>
@@ -497,28 +497,28 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<li><a href="#_produces_8">2.8.4. Produces</a></li>
</ul>
</li>
-<li><a href="#_route172">2.9. DELETE /v2/dictionary/{name}</a>
+<li><a href="#_verb182">2.9. DELETE /v2/dictionary/{name}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_4">2.9.1. Parameters</a></li>
<li><a href="#_responses_9">2.9.2. Responses</a></li>
<li><a href="#_produces_9">2.9.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route173">2.10. DELETE /v2/dictionary/{name}/elements/{shortName}</a>
+<li><a href="#_verb183">2.10. DELETE /v2/dictionary/{name}/elements/{shortName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_5">2.10.1. Parameters</a></li>
<li><a href="#_responses_10">2.10.2. Responses</a></li>
<li><a href="#_produces_10">2.10.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route164">2.11. PUT /v2/loop/addOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}</a>
+<li><a href="#_verb171">2.11. PUT /v2/loop/addOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_6">2.11.1. Parameters</a></li>
<li><a href="#_responses_11">2.11.2. Responses</a></li>
<li><a href="#_produces_11">2.11.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route166">2.12. POST /v2/loop/create/{loopName}?templateName={templateName}</a>
+<li><a href="#_verb173">2.12. POST /v2/loop/create/{loopName}?templateName={templateName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_7">2.12.1. Parameters</a></li>
<li><a href="#_responses_12">2.12.2. Responses</a></li>
@@ -526,82 +526,82 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<li><a href="#_produces_12">2.12.4. Produces</a></li>
</ul>
</li>
-<li><a href="#_route162">2.13. PUT /v2/loop/delete/{loopName}</a>
+<li><a href="#_verb169">2.13. PUT /v2/loop/delete/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_8">2.13.1. Parameters</a></li>
<li><a href="#_responses_13">2.13.2. Responses</a></li>
</ul>
</li>
-<li><a href="#_route155">2.14. PUT /v2/loop/deploy/{loopName}</a>
+<li><a href="#_verb162">2.14. PUT /v2/loop/deploy/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_9">2.14.1. Parameters</a></li>
<li><a href="#_responses_14">2.14.2. Responses</a></li>
<li><a href="#_produces_13">2.14.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route150">2.15. GET /v2/loop/getAllNames</a>
+<li><a href="#_verb157">2.15. GET /v2/loop/getAllNames</a>
<ul class="sectlevel3">
<li><a href="#_responses_15">2.15.1. Responses</a></li>
<li><a href="#_produces_14">2.15.2. Produces</a></li>
</ul>
</li>
-<li><a href="#_route163">2.16. GET /v2/loop/getstatus/{loopName}</a>
+<li><a href="#_verb170">2.16. GET /v2/loop/getstatus/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_10">2.16.1. Parameters</a></li>
<li><a href="#_responses_16">2.16.2. Responses</a></li>
<li><a href="#_produces_15">2.16.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route156">2.17. PUT /v2/loop/refreshMicroServicePolicyJsonSchema/{loopName}/{microServicePolicyName}</a>
+<li><a href="#_verb163">2.17. PUT /v2/loop/refreshMicroServicePolicyJsonSchema/{loopName}/{microServicePolicyName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_11">2.17.1. Parameters</a></li>
<li><a href="#_responses_17">2.17.2. Responses</a></li>
<li><a href="#_produces_16">2.17.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route157">2.18. PUT /v2/loop/refreshOperationalPolicyJsonSchema/{loopName}/{operationalPolicyName}</a>
+<li><a href="#_verb164">2.18. PUT /v2/loop/refreshOperationalPolicyJsonSchema/{loopName}/{operationalPolicyName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_12">2.18.1. Parameters</a></li>
<li><a href="#_responses_18">2.18.2. Responses</a></li>
<li><a href="#_produces_17">2.18.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route165">2.19. PUT /v2/loop/removeOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}/{policyName}</a>
+<li><a href="#_verb172">2.19. PUT /v2/loop/removeOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}/{policyName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_13">2.19.1. Parameters</a></li>
<li><a href="#_responses_19">2.19.2. Responses</a></li>
<li><a href="#_produces_18">2.19.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route160">2.20. PUT /v2/loop/restart/{loopName}</a>
+<li><a href="#_verb167">2.20. PUT /v2/loop/restart/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_14">2.20.1. Parameters</a></li>
<li><a href="#_responses_20">2.20.2. Responses</a></li>
<li><a href="#_produces_19">2.20.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route159">2.21. PUT /v2/loop/stop/{loopName}</a>
+<li><a href="#_verb166">2.21. PUT /v2/loop/stop/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_15">2.21.1. Parameters</a></li>
<li><a href="#_responses_21">2.21.2. Responses</a></li>
<li><a href="#_produces_20">2.21.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route161">2.22. PUT /v2/loop/submit/{loopName}</a>
+<li><a href="#_verb168">2.22. PUT /v2/loop/submit/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_16">2.22.1. Parameters</a></li>
<li><a href="#_responses_22">2.22.2. Responses</a></li>
<li><a href="#_produces_21">2.22.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route158">2.23. PUT /v2/loop/undeploy/{loopName}</a>
+<li><a href="#_verb165">2.23. PUT /v2/loop/undeploy/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_17">2.23.1. Parameters</a></li>
<li><a href="#_responses_23">2.23.2. Responses</a></li>
<li><a href="#_produces_22">2.23.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route152">2.24. POST /v2/loop/updateGlobalProperties/{loopName}</a>
+<li><a href="#_verb159">2.24. POST /v2/loop/updateGlobalProperties/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_18">2.24.1. Parameters</a></li>
<li><a href="#_responses_24">2.24.2. Responses</a></li>
@@ -609,7 +609,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<li><a href="#_produces_23">2.24.4. Produces</a></li>
</ul>
</li>
-<li><a href="#_route154">2.25. POST /v2/loop/updateMicroservicePolicy/{loopName}</a>
+<li><a href="#_verb161">2.25. POST /v2/loop/updateMicroservicePolicy/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_19">2.25.1. Parameters</a></li>
<li><a href="#_responses_25">2.25.2. Responses</a></li>
@@ -617,7 +617,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<li><a href="#_produces_24">2.25.4. Produces</a></li>
</ul>
</li>
-<li><a href="#_route153">2.26. POST /v2/loop/updateOperationalPolicies/{loopName}</a>
+<li><a href="#_verb160">2.26. POST /v2/loop/updateOperationalPolicies/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_20">2.26.1. Parameters</a></li>
<li><a href="#_responses_26">2.26.2. Responses</a></li>
@@ -625,72 +625,93 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<li><a href="#_produces_25">2.26.4. Produces</a></li>
</ul>
</li>
-<li><a href="#_route151">2.27. GET /v2/loop/{loopName}</a>
+<li><a href="#_verb158">2.27. GET /v2/loop/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_21">2.27.1. Parameters</a></li>
<li><a href="#_responses_27">2.27.2. Responses</a></li>
<li><a href="#_produces_26">2.27.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route182">2.28. GET /v2/policies/list</a>
+<li><a href="#_verb189">2.28. GET /v2/policies</a>
<ul class="sectlevel3">
<li><a href="#_responses_28">2.28.1. Responses</a></li>
<li><a href="#_produces_27">2.28.2. Produces</a></li>
</ul>
</li>
-<li><a href="#_route177">2.29. POST /v2/policyToscaModels</a>
+<li><a href="#_verb192">2.29. PUT /v2/policies/pdpDeployment</a>
<ul class="sectlevel3">
<li><a href="#_parameters_22">2.29.1. Parameters</a></li>
<li><a href="#_responses_29">2.29.2. Responses</a></li>
<li><a href="#_consumes_7">2.29.3. Consumes</a></li>
-<li><a href="#_produces_28">2.29.4. Produces</a></li>
</ul>
</li>
-<li><a href="#_route174">2.30. GET /v2/policyToscaModels</a>
+<li><a href="#_verb190">2.30. POST /v2/policies/{policyModelType}/{policyModelVersion}/{policyName}/{policyVersion}</a>
<ul class="sectlevel3">
-<li><a href="#_responses_30">2.30.1. Responses</a></li>
-<li><a href="#_produces_29">2.30.2. Produces</a></li>
+<li><a href="#_parameters_23">2.30.1. Parameters</a></li>
+<li><a href="#_responses_30">2.30.2. Responses</a></li>
+<li><a href="#_consumes_8">2.30.3. Consumes</a></li>
+<li><a href="#_produces_28">2.30.4. Produces</a></li>
</ul>
</li>
-<li><a href="#_route176">2.31. GET /v2/policyToscaModels/yaml/{policyModelType}/{policyModelVersion}</a>
+<li><a href="#_verb191">2.31. DELETE /v2/policies/{policyModelType}/{policyModelVersion}/{policyName}/{policyVersion}</a>
<ul class="sectlevel3">
-<li><a href="#_parameters_23">2.31.1. Parameters</a></li>
+<li><a href="#_parameters_24">2.31.1. Parameters</a></li>
<li><a href="#_responses_31">2.31.2. Responses</a></li>
-<li><a href="#_produces_30">2.31.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route175">2.32. GET /v2/policyToscaModels/{policyModelType}/{policyModelVersion}</a>
+<li><a href="#_verb187">2.32. POST /v2/policyToscaModels</a>
<ul class="sectlevel3">
-<li><a href="#_parameters_24">2.32.1. Parameters</a></li>
+<li><a href="#_parameters_25">2.32.1. Parameters</a></li>
<li><a href="#_responses_32">2.32.2. Responses</a></li>
-<li><a href="#_produces_31">2.32.3. Produces</a></li>
+<li><a href="#_consumes_9">2.32.3. Consumes</a></li>
+<li><a href="#_produces_29">2.32.4. Produces</a></li>
</ul>
</li>
-<li><a href="#_route178">2.33. PUT /v2/policyToscaModels/{policyModelType}/{policyModelVersion}</a>
+<li><a href="#_verb184">2.33. GET /v2/policyToscaModels</a>
<ul class="sectlevel3">
-<li><a href="#_parameters_25">2.33.1. Parameters</a></li>
-<li><a href="#_responses_33">2.33.2. Responses</a></li>
-<li><a href="#_consumes_8">2.33.3. Consumes</a></li>
-<li><a href="#_produces_32">2.33.4. Produces</a></li>
+<li><a href="#_responses_33">2.33.1. Responses</a></li>
+<li><a href="#_produces_30">2.33.2. Produces</a></li>
</ul>
</li>
-<li><a href="#_route179">2.34. GET /v2/templates</a>
+<li><a href="#_verb186">2.34. GET /v2/policyToscaModels/yaml/{policyModelType}/{policyModelVersion}</a>
<ul class="sectlevel3">
-<li><a href="#_responses_34">2.34.1. Responses</a></li>
-<li><a href="#_produces_33">2.34.2. Produces</a></li>
+<li><a href="#_parameters_26">2.34.1. Parameters</a></li>
+<li><a href="#_responses_34">2.34.2. Responses</a></li>
+<li><a href="#_produces_31">2.34.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route181">2.35. GET /v2/templates/names</a>
+<li><a href="#_verb185">2.35. GET /v2/policyToscaModels/{policyModelType}/{policyModelVersion}</a>
<ul class="sectlevel3">
-<li><a href="#_responses_35">2.35.1. Responses</a></li>
-<li><a href="#_produces_34">2.35.2. Produces</a></li>
+<li><a href="#_parameters_27">2.35.1. Parameters</a></li>
+<li><a href="#_responses_35">2.35.2. Responses</a></li>
+<li><a href="#_produces_32">2.35.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_route180">2.36. GET /v2/templates/{templateName}</a>
+<li><a href="#_verb188">2.36. PUT /v2/policyToscaModels/{policyModelType}/{policyModelVersion}</a>
<ul class="sectlevel3">
-<li><a href="#_parameters_26">2.36.1. Parameters</a></li>
+<li><a href="#_parameters_28">2.36.1. Parameters</a></li>
<li><a href="#_responses_36">2.36.2. Responses</a></li>
-<li><a href="#_produces_35">2.36.3. Produces</a></li>
+<li><a href="#_consumes_10">2.36.3. Consumes</a></li>
+<li><a href="#_produces_33">2.36.4. Produces</a></li>
+</ul>
+</li>
+<li><a href="#_verb174">2.37. GET /v2/templates</a>
+<ul class="sectlevel3">
+<li><a href="#_responses_37">2.37.1. Responses</a></li>
+<li><a href="#_produces_34">2.37.2. Produces</a></li>
+</ul>
+</li>
+<li><a href="#_verb176">2.38. GET /v2/templates/names</a>
+<ul class="sectlevel3">
+<li><a href="#_responses_38">2.38.1. Responses</a></li>
+<li><a href="#_produces_35">2.38.2. Produces</a></li>
+</ul>
+</li>
+<li><a href="#_verb175">2.39. GET /v2/templates/{templateName}</a>
+<ul class="sectlevel3">
+<li><a href="#_parameters_29">2.39.1. Parameters</a></li>
+<li><a href="#_responses_39">2.39.2. Responses</a></li>
+<li><a href="#_produces_36">2.39.3. Produces</a></li>
</ul>
</li>
</ul>
@@ -704,19 +725,20 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<li><a href="#_externalcomponent">3.5. ExternalComponent</a></li>
<li><a href="#_externalcomponentstate">3.6. ExternalComponentState</a></li>
<li><a href="#_jsonarray">3.7. JsonArray</a></li>
-<li><a href="#_jsonnull">3.8. JsonNull</a></li>
-<li><a href="#_jsonobject">3.9. JsonObject</a></li>
-<li><a href="#_jsonprimitive">3.10. JsonPrimitive</a></li>
-<li><a href="#_loop">3.11. Loop</a></li>
-<li><a href="#_loopelementmodel">3.12. LoopElementModel</a></li>
-<li><a href="#_looplog">3.13. LoopLog</a></li>
-<li><a href="#_looptemplate">3.14. LoopTemplate</a></li>
-<li><a href="#_looptemplateloopelementmodel">3.15. LoopTemplateLoopElementModel</a></li>
-<li><a href="#_microservicepolicy">3.16. MicroServicePolicy</a></li>
-<li><a href="#_number">3.17. Number</a></li>
-<li><a href="#_operationalpolicy">3.18. OperationalPolicy</a></li>
-<li><a href="#_policymodel">3.19. PolicyModel</a></li>
-<li><a href="#_service">3.20. Service</a></li>
+<li><a href="#_jsonelement">3.8. JsonElement</a></li>
+<li><a href="#_jsonnull">3.9. JsonNull</a></li>
+<li><a href="#_jsonobject">3.10. JsonObject</a></li>
+<li><a href="#_jsonprimitive">3.11. JsonPrimitive</a></li>
+<li><a href="#_loop">3.12. Loop</a></li>
+<li><a href="#_loopelementmodel">3.13. LoopElementModel</a></li>
+<li><a href="#_looplog">3.14. LoopLog</a></li>
+<li><a href="#_looptemplate">3.15. LoopTemplate</a></li>
+<li><a href="#_looptemplateloopelementmodel">3.16. LoopTemplateLoopElementModel</a></li>
+<li><a href="#_microservicepolicy">3.17. MicroServicePolicy</a></li>
+<li><a href="#_number">3.18. Number</a></li>
+<li><a href="#_operationalpolicy">3.19. OperationalPolicy</a></li>
+<li><a href="#_policymodel">3.20. PolicyModel</a></li>
+<li><a href="#_service">3.21. Service</a></li>
</ul>
</li>
</ul>
@@ -729,13 +751,13 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<div class="sect2">
<h3 id="_version_information"><a class="anchor" href="#_version_information"></a><a class="link" href="#_version_information">1.1. Version information</a></h3>
<div class="paragraph">
-<p><em>Version</em> : 6.0.0-SNAPSHOT</p>
+<p><em>Version</em> : 6.1.0-SNAPSHOT</p>
</div>
</div>
<div class="sect2">
<h3 id="_uri_scheme"><a class="anchor" href="#_uri_scheme"></a><a class="link" href="#_uri_scheme">1.2. URI scheme</a></h3>
<div class="paragraph">
-<p><em>Host</em> : localhost:40283<br>
+<p><em>Host</em> : localhost:40069<br>
<em>BasePath</em> : /restservices/clds/<br>
<em>Schemes</em> : HTTP</p>
</div>
@@ -746,7 +768,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<h2 id="_paths"><a class="anchor" href="#_paths"></a><a class="link" href="#_paths">2. Paths</a></h2>
<div class="sectionbody">
<div class="sect2">
-<h3 id="_route184"><a class="anchor" href="#_route184"></a><a class="link" href="#_route184">2.1. GET /v1/healthcheck</a></h3>
+<h3 id="_verb194"><a class="anchor" href="#_verb194"></a><a class="link" href="#_verb194">2.1. GET /v1/healthcheck</a></h3>
<div class="sect3">
<h4 id="_responses"><a class="anchor" href="#_responses"></a><a class="link" href="#_responses">2.1.1. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -783,7 +805,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route185"><a class="anchor" href="#_route185"></a><a class="link" href="#_route185">2.2. GET /v1/user/getUser</a></h3>
+<h3 id="_verb195"><a class="anchor" href="#_verb195"></a><a class="link" href="#_verb195">2.2. GET /v1/user/getUser</a></h3>
<div class="sect3">
<h4 id="_responses_2"><a class="anchor" href="#_responses_2"></a><a class="link" href="#_responses_2">2.2.1. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -817,7 +839,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route183"><a class="anchor" href="#_route183"></a><a class="link" href="#_route183">2.3. GET /v2/clampInformation</a></h3>
+<h3 id="_verb193"><a class="anchor" href="#_verb193"></a><a class="link" href="#_verb193">2.3. GET /v2/clampInformation</a></h3>
<div class="sect3">
<h4 id="_responses_3"><a class="anchor" href="#_responses_3"></a><a class="link" href="#_responses_3">2.3.1. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -854,7 +876,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route167"><a class="anchor" href="#_route167"></a><a class="link" href="#_route167">2.4. GET /v2/dictionary</a></h3>
+<h3 id="_verb177"><a class="anchor" href="#_verb177"></a><a class="link" href="#_verb177">2.4. GET /v2/dictionary</a></h3>
<div class="sect3">
<h4 id="_responses_4"><a class="anchor" href="#_responses_4"></a><a class="link" href="#_responses_4">2.4.1. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -891,7 +913,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route170"><a class="anchor" href="#_route170"></a><a class="link" href="#_route170">2.5. PUT /v2/dictionary</a></h3>
+<h3 id="_verb180"><a class="anchor" href="#_verb180"></a><a class="link" href="#_verb180">2.5. PUT /v2/dictionary</a></h3>
<div class="sect3">
<h4 id="_parameters"><a class="anchor" href="#_parameters"></a><a class="link" href="#_parameters">2.5.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -963,7 +985,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route168"><a class="anchor" href="#_route168"></a><a class="link" href="#_route168">2.6. GET /v2/dictionary/secondary/names</a></h3>
+<h3 id="_verb178"><a class="anchor" href="#_verb178"></a><a class="link" href="#_verb178">2.6. GET /v2/dictionary/secondary/names</a></h3>
<div class="sect3">
<h4 id="_responses_6"><a class="anchor" href="#_responses_6"></a><a class="link" href="#_responses_6">2.6.1. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1000,7 +1022,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route169"><a class="anchor" href="#_route169"></a><a class="link" href="#_route169">2.7. GET /v2/dictionary/{dictionaryName}</a></h3>
+<h3 id="_verb179"><a class="anchor" href="#_verb179"></a><a class="link" href="#_verb179">2.7. GET /v2/dictionary/{dictionaryName}</a></h3>
<div class="sect3">
<h4 id="_parameters_2"><a class="anchor" href="#_parameters_2"></a><a class="link" href="#_parameters_2">2.7.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1062,7 +1084,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route171"><a class="anchor" href="#_route171"></a><a class="link" href="#_route171">2.8. PUT /v2/dictionary/{name}</a></h3>
+<h3 id="_verb181"><a class="anchor" href="#_verb181"></a><a class="link" href="#_verb181">2.8. PUT /v2/dictionary/{name}</a></h3>
<div class="sect3">
<h4 id="_parameters_3"><a class="anchor" href="#_parameters_3"></a><a class="link" href="#_parameters_3">2.8.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1140,7 +1162,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route172"><a class="anchor" href="#_route172"></a><a class="link" href="#_route172">2.9. DELETE /v2/dictionary/{name}</a></h3>
+<h3 id="_verb182"><a class="anchor" href="#_verb182"></a><a class="link" href="#_verb182">2.9. DELETE /v2/dictionary/{name}</a></h3>
<div class="sect3">
<h4 id="_parameters_4"><a class="anchor" href="#_parameters_4"></a><a class="link" href="#_parameters_4">2.9.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1199,7 +1221,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route173"><a class="anchor" href="#_route173"></a><a class="link" href="#_route173">2.10. DELETE /v2/dictionary/{name}/elements/{shortName}</a></h3>
+<h3 id="_verb183"><a class="anchor" href="#_verb183"></a><a class="link" href="#_verb183">2.10. DELETE /v2/dictionary/{name}/elements/{shortName}</a></h3>
<div class="sect3">
<h4 id="_parameters_5"><a class="anchor" href="#_parameters_5"></a><a class="link" href="#_parameters_5">2.10.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1264,7 +1286,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route164"><a class="anchor" href="#_route164"></a><a class="link" href="#_route164">2.11. PUT /v2/loop/addOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}</a></h3>
+<h3 id="_verb171"><a class="anchor" href="#_verb171"></a><a class="link" href="#_verb171">2.11. PUT /v2/loop/addOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}</a></h3>
<div class="sect3">
<h4 id="_parameters_6"><a class="anchor" href="#_parameters_6"></a><a class="link" href="#_parameters_6">2.11.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1338,7 +1360,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route166"><a class="anchor" href="#_route166"></a><a class="link" href="#_route166">2.12. POST /v2/loop/create/{loopName}?templateName={templateName}</a></h3>
+<h3 id="_verb173"><a class="anchor" href="#_verb173"></a><a class="link" href="#_verb173">2.12. POST /v2/loop/create/{loopName}?templateName={templateName}</a></h3>
<div class="sect3">
<h4 id="_parameters_7"><a class="anchor" href="#_parameters_7"></a><a class="link" href="#_parameters_7">2.12.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1357,7 +1379,13 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<tbody>
<tr>
<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>Path</strong></p></td>
-<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>loopName}?templateName={templateName</strong><br>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>loopName</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>Path</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>templateName</strong><br>
<em>required</em></p></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
</tr>
@@ -1410,7 +1438,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route162"><a class="anchor" href="#_route162"></a><a class="link" href="#_route162">2.13. PUT /v2/loop/delete/{loopName}</a></h3>
+<h3 id="_verb169"><a class="anchor" href="#_verb169"></a><a class="link" href="#_verb169">2.13. PUT /v2/loop/delete/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_8"><a class="anchor" href="#_parameters_8"></a><a class="link" href="#_parameters_8">2.13.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1459,7 +1487,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route155"><a class="anchor" href="#_route155"></a><a class="link" href="#_route155">2.14. PUT /v2/loop/deploy/{loopName}</a></h3>
+<h3 id="_verb162"><a class="anchor" href="#_verb162"></a><a class="link" href="#_verb162">2.14. PUT /v2/loop/deploy/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_9"><a class="anchor" href="#_parameters_9"></a><a class="link" href="#_parameters_9">2.14.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1521,7 +1549,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route150"><a class="anchor" href="#_route150"></a><a class="link" href="#_route150">2.15. GET /v2/loop/getAllNames</a></h3>
+<h3 id="_verb157"><a class="anchor" href="#_verb157"></a><a class="link" href="#_verb157">2.15. GET /v2/loop/getAllNames</a></h3>
<div class="sect3">
<h4 id="_responses_15"><a class="anchor" href="#_responses_15"></a><a class="link" href="#_responses_15">2.15.1. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1558,7 +1586,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route163"><a class="anchor" href="#_route163"></a><a class="link" href="#_route163">2.16. GET /v2/loop/getstatus/{loopName}</a></h3>
+<h3 id="_verb170"><a class="anchor" href="#_verb170"></a><a class="link" href="#_verb170">2.16. GET /v2/loop/getstatus/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_10"><a class="anchor" href="#_parameters_10"></a><a class="link" href="#_parameters_10">2.16.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1620,7 +1648,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route156"><a class="anchor" href="#_route156"></a><a class="link" href="#_route156">2.17. PUT /v2/loop/refreshMicroServicePolicyJsonSchema/{loopName}/{microServicePolicyName}</a></h3>
+<h3 id="_verb163"><a class="anchor" href="#_verb163"></a><a class="link" href="#_verb163">2.17. PUT /v2/loop/refreshMicroServicePolicyJsonSchema/{loopName}/{microServicePolicyName}</a></h3>
<div class="sect3">
<h4 id="_parameters_11"><a class="anchor" href="#_parameters_11"></a><a class="link" href="#_parameters_11">2.17.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1688,7 +1716,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route157"><a class="anchor" href="#_route157"></a><a class="link" href="#_route157">2.18. PUT /v2/loop/refreshOperationalPolicyJsonSchema/{loopName}/{operationalPolicyName}</a></h3>
+<h3 id="_verb164"><a class="anchor" href="#_verb164"></a><a class="link" href="#_verb164">2.18. PUT /v2/loop/refreshOperationalPolicyJsonSchema/{loopName}/{operationalPolicyName}</a></h3>
<div class="sect3">
<h4 id="_parameters_12"><a class="anchor" href="#_parameters_12"></a><a class="link" href="#_parameters_12">2.18.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1756,7 +1784,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route165"><a class="anchor" href="#_route165"></a><a class="link" href="#_route165">2.19. PUT /v2/loop/removeOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}/{policyName}</a></h3>
+<h3 id="_verb172"><a class="anchor" href="#_verb172"></a><a class="link" href="#_verb172">2.19. PUT /v2/loop/removeOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}/{policyName}</a></h3>
<div class="sect3">
<h4 id="_parameters_13"><a class="anchor" href="#_parameters_13"></a><a class="link" href="#_parameters_13">2.19.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1836,7 +1864,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route160"><a class="anchor" href="#_route160"></a><a class="link" href="#_route160">2.20. PUT /v2/loop/restart/{loopName}</a></h3>
+<h3 id="_verb167"><a class="anchor" href="#_verb167"></a><a class="link" href="#_verb167">2.20. PUT /v2/loop/restart/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_14"><a class="anchor" href="#_parameters_14"></a><a class="link" href="#_parameters_14">2.20.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1898,7 +1926,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route159"><a class="anchor" href="#_route159"></a><a class="link" href="#_route159">2.21. PUT /v2/loop/stop/{loopName}</a></h3>
+<h3 id="_verb166"><a class="anchor" href="#_verb166"></a><a class="link" href="#_verb166">2.21. PUT /v2/loop/stop/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_15"><a class="anchor" href="#_parameters_15"></a><a class="link" href="#_parameters_15">2.21.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1960,7 +1988,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route161"><a class="anchor" href="#_route161"></a><a class="link" href="#_route161">2.22. PUT /v2/loop/submit/{loopName}</a></h3>
+<h3 id="_verb168"><a class="anchor" href="#_verb168"></a><a class="link" href="#_verb168">2.22. PUT /v2/loop/submit/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_16"><a class="anchor" href="#_parameters_16"></a><a class="link" href="#_parameters_16">2.22.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -2022,7 +2050,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route158"><a class="anchor" href="#_route158"></a><a class="link" href="#_route158">2.23. PUT /v2/loop/undeploy/{loopName}</a></h3>
+<h3 id="_verb165"><a class="anchor" href="#_verb165"></a><a class="link" href="#_verb165">2.23. PUT /v2/loop/undeploy/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_17"><a class="anchor" href="#_parameters_17"></a><a class="link" href="#_parameters_17">2.23.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -2084,7 +2112,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route152"><a class="anchor" href="#_route152"></a><a class="link" href="#_route152">2.24. POST /v2/loop/updateGlobalProperties/{loopName}</a></h3>
+<h3 id="_verb159"><a class="anchor" href="#_verb159"></a><a class="link" href="#_verb159">2.24. POST /v2/loop/updateGlobalProperties/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_18"><a class="anchor" href="#_parameters_18"></a><a class="link" href="#_parameters_18">2.24.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -2162,7 +2190,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route154"><a class="anchor" href="#_route154"></a><a class="link" href="#_route154">2.25. POST /v2/loop/updateMicroservicePolicy/{loopName}</a></h3>
+<h3 id="_verb161"><a class="anchor" href="#_verb161"></a><a class="link" href="#_verb161">2.25. POST /v2/loop/updateMicroservicePolicy/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_19"><a class="anchor" href="#_parameters_19"></a><a class="link" href="#_parameters_19">2.25.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -2240,7 +2268,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route153"><a class="anchor" href="#_route153"></a><a class="link" href="#_route153">2.26. POST /v2/loop/updateOperationalPolicies/{loopName}</a></h3>
+<h3 id="_verb160"><a class="anchor" href="#_verb160"></a><a class="link" href="#_verb160">2.26. POST /v2/loop/updateOperationalPolicies/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_20"><a class="anchor" href="#_parameters_20"></a><a class="link" href="#_parameters_20">2.26.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -2318,7 +2346,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route151"><a class="anchor" href="#_route151"></a><a class="link" href="#_route151">2.27. GET /v2/loop/{loopName}</a></h3>
+<h3 id="_verb158"><a class="anchor" href="#_verb158"></a><a class="link" href="#_verb158">2.27. GET /v2/loop/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_21"><a class="anchor" href="#_parameters_21"></a><a class="link" href="#_parameters_21">2.27.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -2380,7 +2408,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route182"><a class="anchor" href="#_route182"></a><a class="link" href="#_route182">2.28. GET /v2/policies/list</a></h3>
+<h3 id="_verb189"><a class="anchor" href="#_verb189"></a><a class="link" href="#_verb189">2.28. GET /v2/policies</a></h3>
<div class="sect3">
<h4 id="_responses_28"><a class="anchor" href="#_responses_28"></a><a class="link" href="#_responses_28">2.28.1. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -2400,7 +2428,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<tr>
<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>200</strong></p></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">Output type</p></td>
-<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_jsonobject">JsonObject</a></p></td>
</tr>
</tbody>
</table>
@@ -2417,7 +2445,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route177"><a class="anchor" href="#_route177"></a><a class="link" href="#_route177">2.29. POST /v2/policyToscaModels</a></h3>
+<h3 id="_verb192"><a class="anchor" href="#_verb192"></a><a class="link" href="#_verb192">2.29. PUT /v2/policies/pdpDeployment</a></h3>
<div class="sect3">
<h4 id="_parameters_22"><a class="anchor" href="#_parameters_22"></a><a class="link" href="#_parameters_22">2.29.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -2438,7 +2466,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>Body</strong></p></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>body</strong><br>
<em>required</em></p></td>
-<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_jsonelement">JsonElement</a></p></td>
</tr>
</tbody>
</table>
@@ -2447,6 +2475,228 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<h4 id="_responses_29"><a class="anchor" href="#_responses_29"></a><a class="link" href="#_responses_29">2.29.2. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
+<col style="width: 33.3333%;">
+<col style="width: 66.6667%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">HTTP Code</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>200</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">No Content</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect3">
+<h4 id="_consumes_7"><a class="anchor" href="#_consumes_7"></a><a class="link" href="#_consumes_7">2.29.3. Consumes</a></h4>
+<div class="ulist">
+<ul>
+<li>
+<p><code>application/json</code></p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_verb190"><a class="anchor" href="#_verb190"></a><a class="link" href="#_verb190">2.30. POST /v2/policies/{policyModelType}/{policyModelVersion}/{policyName}/{policyVersion}</a></h3>
+<div class="sect3">
+<h4 id="_parameters_23"><a class="anchor" href="#_parameters_23"></a><a class="link" href="#_parameters_23">2.30.1. Parameters</a></h4>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 22.2222%;">
+<col style="width: 33.3333%;">
+<col style="width: 44.4445%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">Type</th>
+<th class="tableblock halign-left valign-middle">Name</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>Path</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>policyModelType</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>Path</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>policyModelVersion</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>Path</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>policyName</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>Path</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>policyVersion</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>Body</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>body</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_jsonelement">JsonElement</a></p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect3">
+<h4 id="_responses_30"><a class="anchor" href="#_responses_30"></a><a class="link" href="#_responses_30">2.30.2. Responses</a></h4>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 10%;">
+<col style="width: 70%;">
+<col style="width: 20%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">HTTP Code</th>
+<th class="tableblock halign-left valign-middle">Description</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>200</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Output type</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_jsonobject">JsonObject</a></p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect3">
+<h4 id="_consumes_8"><a class="anchor" href="#_consumes_8"></a><a class="link" href="#_consumes_8">2.30.3. Consumes</a></h4>
+<div class="ulist">
+<ul>
+<li>
+<p><code>application/json</code></p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_produces_28"><a class="anchor" href="#_produces_28"></a><a class="link" href="#_produces_28">2.30.4. Produces</a></h4>
+<div class="ulist">
+<ul>
+<li>
+<p><code>application/json</code></p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_verb191"><a class="anchor" href="#_verb191"></a><a class="link" href="#_verb191">2.31. DELETE /v2/policies/{policyModelType}/{policyModelVersion}/{policyName}/{policyVersion}</a></h3>
+<div class="sect3">
+<h4 id="_parameters_24"><a class="anchor" href="#_parameters_24"></a><a class="link" href="#_parameters_24">2.31.1. Parameters</a></h4>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 22.2222%;">
+<col style="width: 33.3333%;">
+<col style="width: 44.4445%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">Type</th>
+<th class="tableblock halign-left valign-middle">Name</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>Path</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>policyModelType</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>Path</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>policyModelVersion</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>Path</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>policyName</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>Path</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>policyVersion</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect3">
+<h4 id="_responses_31"><a class="anchor" href="#_responses_31"></a><a class="link" href="#_responses_31">2.31.2. Responses</a></h4>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 33.3333%;">
+<col style="width: 66.6667%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">HTTP Code</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>200</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">No Content</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_verb187"><a class="anchor" href="#_verb187"></a><a class="link" href="#_verb187">2.32. POST /v2/policyToscaModels</a></h3>
+<div class="sect3">
+<h4 id="_parameters_25"><a class="anchor" href="#_parameters_25"></a><a class="link" href="#_parameters_25">2.32.1. Parameters</a></h4>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 22.2222%;">
+<col style="width: 33.3333%;">
+<col style="width: 44.4445%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">Type</th>
+<th class="tableblock halign-left valign-middle">Name</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>Body</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>body</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect3">
+<h4 id="_responses_32"><a class="anchor" href="#_responses_32"></a><a class="link" href="#_responses_32">2.32.2. Responses</a></h4>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
<col style="width: 10%;">
<col style="width: 70%;">
<col style="width: 20%;">
@@ -2468,7 +2718,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect3">
-<h4 id="_consumes_7"><a class="anchor" href="#_consumes_7"></a><a class="link" href="#_consumes_7">2.29.3. Consumes</a></h4>
+<h4 id="_consumes_9"><a class="anchor" href="#_consumes_9"></a><a class="link" href="#_consumes_9">2.32.3. Consumes</a></h4>
<div class="ulist">
<ul>
<li>
@@ -2478,7 +2728,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect3">
-<h4 id="_produces_28"><a class="anchor" href="#_produces_28"></a><a class="link" href="#_produces_28">2.29.4. Produces</a></h4>
+<h4 id="_produces_29"><a class="anchor" href="#_produces_29"></a><a class="link" href="#_produces_29">2.32.4. Produces</a></h4>
<div class="ulist">
<ul>
<li>
@@ -2489,9 +2739,9 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route174"><a class="anchor" href="#_route174"></a><a class="link" href="#_route174">2.30. GET /v2/policyToscaModels</a></h3>
+<h3 id="_verb184"><a class="anchor" href="#_verb184"></a><a class="link" href="#_verb184">2.33. GET /v2/policyToscaModels</a></h3>
<div class="sect3">
-<h4 id="_responses_30"><a class="anchor" href="#_responses_30"></a><a class="link" href="#_responses_30">2.30.1. Responses</a></h4>
+<h4 id="_responses_33"><a class="anchor" href="#_responses_33"></a><a class="link" href="#_responses_33">2.33.1. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 10%;">
@@ -2515,7 +2765,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect3">
-<h4 id="_produces_29"><a class="anchor" href="#_produces_29"></a><a class="link" href="#_produces_29">2.30.2. Produces</a></h4>
+<h4 id="_produces_30"><a class="anchor" href="#_produces_30"></a><a class="link" href="#_produces_30">2.33.2. Produces</a></h4>
<div class="ulist">
<ul>
<li>
@@ -2526,9 +2776,9 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route176"><a class="anchor" href="#_route176"></a><a class="link" href="#_route176">2.31. GET /v2/policyToscaModels/yaml/{policyModelType}/{policyModelVersion}</a></h3>
+<h3 id="_verb186"><a class="anchor" href="#_verb186"></a><a class="link" href="#_verb186">2.34. GET /v2/policyToscaModels/yaml/{policyModelType}/{policyModelVersion}</a></h3>
<div class="sect3">
-<h4 id="_parameters_23"><a class="anchor" href="#_parameters_23"></a><a class="link" href="#_parameters_23">2.31.1. Parameters</a></h4>
+<h4 id="_parameters_26"><a class="anchor" href="#_parameters_26"></a><a class="link" href="#_parameters_26">2.34.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 22.2222%;">
@@ -2559,7 +2809,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect3">
-<h4 id="_responses_31"><a class="anchor" href="#_responses_31"></a><a class="link" href="#_responses_31">2.31.2. Responses</a></h4>
+<h4 id="_responses_34"><a class="anchor" href="#_responses_34"></a><a class="link" href="#_responses_34">2.34.2. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 10%;">
@@ -2583,7 +2833,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect3">
-<h4 id="_produces_30"><a class="anchor" href="#_produces_30"></a><a class="link" href="#_produces_30">2.31.3. Produces</a></h4>
+<h4 id="_produces_31"><a class="anchor" href="#_produces_31"></a><a class="link" href="#_produces_31">2.34.3. Produces</a></h4>
<div class="ulist">
<ul>
<li>
@@ -2594,9 +2844,9 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route175"><a class="anchor" href="#_route175"></a><a class="link" href="#_route175">2.32. GET /v2/policyToscaModels/{policyModelType}/{policyModelVersion}</a></h3>
+<h3 id="_verb185"><a class="anchor" href="#_verb185"></a><a class="link" href="#_verb185">2.35. GET /v2/policyToscaModels/{policyModelType}/{policyModelVersion}</a></h3>
<div class="sect3">
-<h4 id="_parameters_24"><a class="anchor" href="#_parameters_24"></a><a class="link" href="#_parameters_24">2.32.1. Parameters</a></h4>
+<h4 id="_parameters_27"><a class="anchor" href="#_parameters_27"></a><a class="link" href="#_parameters_27">2.35.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 22.2222%;">
@@ -2627,7 +2877,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect3">
-<h4 id="_responses_32"><a class="anchor" href="#_responses_32"></a><a class="link" href="#_responses_32">2.32.2. Responses</a></h4>
+<h4 id="_responses_35"><a class="anchor" href="#_responses_35"></a><a class="link" href="#_responses_35">2.35.2. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 10%;">
@@ -2645,13 +2895,13 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<tr>
<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>200</strong></p></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">Output type</p></td>
-<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_policymodel">PolicyModel</a></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_jsonobject">JsonObject</a></p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect3">
-<h4 id="_produces_31"><a class="anchor" href="#_produces_31"></a><a class="link" href="#_produces_31">2.32.3. Produces</a></h4>
+<h4 id="_produces_32"><a class="anchor" href="#_produces_32"></a><a class="link" href="#_produces_32">2.35.3. Produces</a></h4>
<div class="ulist">
<ul>
<li>
@@ -2662,9 +2912,9 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route178"><a class="anchor" href="#_route178"></a><a class="link" href="#_route178">2.33. PUT /v2/policyToscaModels/{policyModelType}/{policyModelVersion}</a></h3>
+<h3 id="_verb188"><a class="anchor" href="#_verb188"></a><a class="link" href="#_verb188">2.36. PUT /v2/policyToscaModels/{policyModelType}/{policyModelVersion}</a></h3>
<div class="sect3">
-<h4 id="_parameters_25"><a class="anchor" href="#_parameters_25"></a><a class="link" href="#_parameters_25">2.33.1. Parameters</a></h4>
+<h4 id="_parameters_28"><a class="anchor" href="#_parameters_28"></a><a class="link" href="#_parameters_28">2.36.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 22.2222%;">
@@ -2701,7 +2951,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect3">
-<h4 id="_responses_33"><a class="anchor" href="#_responses_33"></a><a class="link" href="#_responses_33">2.33.2. Responses</a></h4>
+<h4 id="_responses_36"><a class="anchor" href="#_responses_36"></a><a class="link" href="#_responses_36">2.36.2. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 10%;">
@@ -2725,7 +2975,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect3">
-<h4 id="_consumes_8"><a class="anchor" href="#_consumes_8"></a><a class="link" href="#_consumes_8">2.33.3. Consumes</a></h4>
+<h4 id="_consumes_10"><a class="anchor" href="#_consumes_10"></a><a class="link" href="#_consumes_10">2.36.3. Consumes</a></h4>
<div class="ulist">
<ul>
<li>
@@ -2735,7 +2985,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect3">
-<h4 id="_produces_32"><a class="anchor" href="#_produces_32"></a><a class="link" href="#_produces_32">2.33.4. Produces</a></h4>
+<h4 id="_produces_33"><a class="anchor" href="#_produces_33"></a><a class="link" href="#_produces_33">2.36.4. Produces</a></h4>
<div class="ulist">
<ul>
<li>
@@ -2746,9 +2996,9 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route179"><a class="anchor" href="#_route179"></a><a class="link" href="#_route179">2.34. GET /v2/templates</a></h3>
+<h3 id="_verb174"><a class="anchor" href="#_verb174"></a><a class="link" href="#_verb174">2.37. GET /v2/templates</a></h3>
<div class="sect3">
-<h4 id="_responses_34"><a class="anchor" href="#_responses_34"></a><a class="link" href="#_responses_34">2.34.1. Responses</a></h4>
+<h4 id="_responses_37"><a class="anchor" href="#_responses_37"></a><a class="link" href="#_responses_37">2.37.1. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 10%;">
@@ -2772,7 +3022,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect3">
-<h4 id="_produces_33"><a class="anchor" href="#_produces_33"></a><a class="link" href="#_produces_33">2.34.2. Produces</a></h4>
+<h4 id="_produces_34"><a class="anchor" href="#_produces_34"></a><a class="link" href="#_produces_34">2.37.2. Produces</a></h4>
<div class="ulist">
<ul>
<li>
@@ -2783,9 +3033,9 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route181"><a class="anchor" href="#_route181"></a><a class="link" href="#_route181">2.35. GET /v2/templates/names</a></h3>
+<h3 id="_verb176"><a class="anchor" href="#_verb176"></a><a class="link" href="#_verb176">2.38. GET /v2/templates/names</a></h3>
<div class="sect3">
-<h4 id="_responses_35"><a class="anchor" href="#_responses_35"></a><a class="link" href="#_responses_35">2.35.1. Responses</a></h4>
+<h4 id="_responses_38"><a class="anchor" href="#_responses_38"></a><a class="link" href="#_responses_38">2.38.1. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 10%;">
@@ -2809,7 +3059,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect3">
-<h4 id="_produces_34"><a class="anchor" href="#_produces_34"></a><a class="link" href="#_produces_34">2.35.2. Produces</a></h4>
+<h4 id="_produces_35"><a class="anchor" href="#_produces_35"></a><a class="link" href="#_produces_35">2.38.2. Produces</a></h4>
<div class="ulist">
<ul>
<li>
@@ -2820,9 +3070,9 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_route180"><a class="anchor" href="#_route180"></a><a class="link" href="#_route180">2.36. GET /v2/templates/{templateName}</a></h3>
+<h3 id="_verb175"><a class="anchor" href="#_verb175"></a><a class="link" href="#_verb175">2.39. GET /v2/templates/{templateName}</a></h3>
<div class="sect3">
-<h4 id="_parameters_26"><a class="anchor" href="#_parameters_26"></a><a class="link" href="#_parameters_26">2.36.1. Parameters</a></h4>
+<h4 id="_parameters_29"><a class="anchor" href="#_parameters_29"></a><a class="link" href="#_parameters_29">2.39.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 22.2222%;">
@@ -2847,7 +3097,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect3">
-<h4 id="_responses_36"><a class="anchor" href="#_responses_36"></a><a class="link" href="#_responses_36">2.36.2. Responses</a></h4>
+<h4 id="_responses_39"><a class="anchor" href="#_responses_39"></a><a class="link" href="#_responses_39">2.39.2. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 10%;">
@@ -2871,7 +3121,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect3">
-<h4 id="_produces_35"><a class="anchor" href="#_produces_35"></a><a class="link" href="#_produces_35">2.36.3. Produces</a></h4>
+<h4 id="_produces_36"><a class="anchor" href="#_produces_36"></a><a class="link" href="#_produces_36">2.39.3. Produces</a></h4>
<div class="ulist">
<ul>
<li>
@@ -3251,7 +3501,124 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect2">
-<h3 id="_jsonnull"><a class="anchor" href="#_jsonnull"></a><a class="link" href="#_jsonnull">3.8. JsonNull</a></h3>
+<h3 id="_jsonelement"><a class="anchor" href="#_jsonelement"></a><a class="link" href="#_jsonelement">3.8. JsonElement</a></h3>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 42.8571%;">
+<col style="width: 57.1429%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">Name</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>asBigDecimal</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">number</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>asBigInteger</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">integer</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>asBoolean</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">boolean</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>asByte</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string (byte)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>asCharacter</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>asDouble</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">number (double)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>asFloat</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">number (float)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>asInt</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">integer (int32)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>asJsonArray</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_jsonarray">JsonArray</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>asJsonNull</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_jsonnull">JsonNull</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>asJsonObject</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_jsonobject">JsonObject</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>asJsonPrimitive</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_jsonprimitive">JsonPrimitive</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>asLong</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">integer (int64)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>asNumber</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><a href="#_number">Number</a></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>asShort</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">integer (int32)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>asString</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>jsonArray</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">boolean</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>jsonNull</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">boolean</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>jsonObject</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">boolean</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>jsonPrimitive</strong><br>
+<em>optional</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">boolean</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_jsonnull"><a class="anchor" href="#_jsonnull"></a><a class="link" href="#_jsonnull">3.9. JsonNull</a></h3>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 42.8571%;">
@@ -3368,7 +3735,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect2">
-<h3 id="_jsonobject"><a class="anchor" href="#_jsonobject"></a><a class="link" href="#_jsonobject">3.9. JsonObject</a></h3>
+<h3 id="_jsonobject"><a class="anchor" href="#_jsonobject"></a><a class="link" href="#_jsonobject">3.10. JsonObject</a></h3>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 42.8571%;">
@@ -3485,7 +3852,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect2">
-<h3 id="_jsonprimitive"><a class="anchor" href="#_jsonprimitive"></a><a class="link" href="#_jsonprimitive">3.10. JsonPrimitive</a></h3>
+<h3 id="_jsonprimitive"><a class="anchor" href="#_jsonprimitive"></a><a class="link" href="#_jsonprimitive">3.11. JsonPrimitive</a></h3>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 42.8571%;">
@@ -3617,7 +3984,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect2">
-<h3 id="_loop"><a class="anchor" href="#_loop"></a><a class="link" href="#_loop">3.11. Loop</a></h3>
+<h3 id="_loop"><a class="anchor" href="#_loop"></a><a class="link" href="#_loop">3.12. Loop</a></h3>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 42.8571%;">
@@ -3709,7 +4076,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect2">
-<h3 id="_loopelementmodel"><a class="anchor" href="#_loopelementmodel"></a><a class="link" href="#_loopelementmodel">3.12. LoopElementModel</a></h3>
+<h3 id="_loopelementmodel"><a class="anchor" href="#_loopelementmodel"></a><a class="link" href="#_loopelementmodel">3.13. LoopElementModel</a></h3>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 42.8571%;">
@@ -3781,7 +4148,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect2">
-<h3 id="_looplog"><a class="anchor" href="#_looplog"></a><a class="link" href="#_looplog">3.13. LoopLog</a></h3>
+<h3 id="_looplog"><a class="anchor" href="#_looplog"></a><a class="link" href="#_looplog">3.14. LoopLog</a></h3>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 42.8571%;">
@@ -3828,7 +4195,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect2">
-<h3 id="_looptemplate"><a class="anchor" href="#_looptemplate"></a><a class="link" href="#_looptemplate">3.14. LoopTemplate</a></h3>
+<h3 id="_looptemplate"><a class="anchor" href="#_looptemplate"></a><a class="link" href="#_looptemplate">3.15. LoopTemplate</a></h3>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 42.8571%;">
@@ -3905,7 +4272,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect2">
-<h3 id="_looptemplateloopelementmodel"><a class="anchor" href="#_looptemplateloopelementmodel"></a><a class="link" href="#_looptemplateloopelementmodel">3.15. LoopTemplateLoopElementModel</a></h3>
+<h3 id="_looptemplateloopelementmodel"><a class="anchor" href="#_looptemplateloopelementmodel"></a><a class="link" href="#_looptemplateloopelementmodel">3.16. LoopTemplateLoopElementModel</a></h3>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 42.8571%;">
@@ -3937,7 +4304,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect2">
-<h3 id="_microservicepolicy"><a class="anchor" href="#_microservicepolicy"></a><a class="link" href="#_microservicepolicy">3.16. MicroServicePolicy</a></h3>
+<h3 id="_microservicepolicy"><a class="anchor" href="#_microservicepolicy"></a><a class="link" href="#_microservicepolicy">3.17. MicroServicePolicy</a></h3>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 42.8571%;">
@@ -4044,13 +4411,13 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect2">
-<h3 id="_number"><a class="anchor" href="#_number"></a><a class="link" href="#_number">3.17. Number</a></h3>
+<h3 id="_number"><a class="anchor" href="#_number"></a><a class="link" href="#_number">3.18. Number</a></h3>
<div class="paragraph">
<p><em>Type</em> : object</p>
</div>
</div>
<div class="sect2">
-<h3 id="_operationalpolicy"><a class="anchor" href="#_operationalpolicy"></a><a class="link" href="#_operationalpolicy">3.18. OperationalPolicy</a></h3>
+<h3 id="_operationalpolicy"><a class="anchor" href="#_operationalpolicy"></a><a class="link" href="#_operationalpolicy">3.19. OperationalPolicy</a></h3>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 42.8571%;">
@@ -4127,7 +4494,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect2">
-<h3 id="_policymodel"><a class="anchor" href="#_policymodel"></a><a class="link" href="#_policymodel">3.19. PolicyModel</a></h3>
+<h3 id="_policymodel"><a class="anchor" href="#_policymodel"></a><a class="link" href="#_policymodel">3.20. PolicyModel</a></h3>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 42.8571%;">
@@ -4194,7 +4561,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect2">
-<h3 id="_service"><a class="anchor" href="#_service"></a><a class="link" href="#_service">3.20. Service</a></h3>
+<h3 id="_service"><a class="anchor" href="#_service"></a><a class="link" href="#_service">3.21. Service</a></h3>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 42.8571%;">
diff --git a/src/main/resources/boot-message.txt b/src/main/resources/boot-message.txt
index b0d68e04c..5a6cf1824 100644
--- a/src/main/resources/boot-message.txt
+++ b/src/main/resources/boot-message.txt
@@ -1,19 +1,14 @@
- ___ ____ ____ ____ __ __ ___ ____ ___ _ __ __ _ __ __
- / \ | \ / T| \ | T T / \ | \ / \ | T | T T| T | T T
-Y Y| _ YY o || o ) | l |Y Y| _ YY Y| | | | || | | | |
-| O || | || || _/ | _ || O || | || O || l___ | | || l___ | | |
-| || | || _ || | | | || || | || || T| : || T| : |
-l !| | || | || | | | |l !| | |l !| |l || |l |
- \___/ l__j__jl__j__jl__j l__j__j \___/ l__j__j \___/ l_____j \__,_jl_____j \__,_j
-
- ____ ___ _ ____ __ __ __ __ _ ____ ___ ___ ____
-| \ / \ | T l j / ]| T T / ]| T / T| T T| \
-| o )Y Y| | | T / / | | | _____ / / | | Y o || _ _ || o )
-| _/ | O || l___ | | / / | ~ || | / / | l___ | || \_/ || _/
-| | | || T | |/ \_ l___, |l_____j/ \_ | T| _ || | || |
-| | l !| | j l\ || ! \ || || | || | || |
-l__j \___/ l_____j|____j\____jl____/ \____jl_____jl__j__jl___j___jl__j
+ ___ _ _ _ ____ ___ _ _ _
+ / _ \| \ | | / \ | _ \ |_ _|___| |_ __ _ _ __ | |__ _ _| |
+ | | | | \| | / _ \ | |_) | | |/ __| __/ _` | '_ \| '_ \| | | | |
+ | |_| | |\ |/ ___ \| __/ | |\__ \ || (_| | | | | |_) | |_| | |
+ \___/|_| \_/_/ \_\_| |___|___/\__\__,_|_| |_|_.__/ \__,_|_|
+ ____ ___ _ ___ ______ __ ____ _ _ __ __ ____
+ | _ \ / _ \| | |_ _/ ___\ \ / / / ___| | / \ | \/ | _ \
+ | |_) | | | | | | | | \ V /____| | | | / _ \ | |\/| | |_) |
+ | __/| |_| | |___ | | |___ | |_____| |___| |___ / ___ \| | | | __/
+ |_| \___/|_____|___\____| |_| \____|_____/_/ \_\_| |_|_|
diff --git a/src/main/resources/clds/camel/rest/clamp-api-v2.xml b/src/main/resources/clds/camel/rest/clamp-api-v2.xml
index fe94460c4..bba76f7ed 100644
--- a/src/main/resources/clds/camel/rest/clamp-api-v2.xml
+++ b/src/main/resources/clds/camel/rest/clamp-api-v2.xml
@@ -1381,12 +1381,12 @@
<simple>${body}</simple>
</setProperty>
<to
- uri="bean:org.onap.policy.clamp.loop.template.PolicyModelsService?method=getPolicyModelTosca(${header.policyModelType},${header.policyModelVersion})"/>
+ uri="bean:org.onap.policy.clamp.loop.template.PolicyModelsService?method=getPolicyModelTosca(${header.policyModelType},${header.policyModelVersion})"/>
<setBody>
<method ref="org.onap.policy.clamp.policy.PolicyPayload"
method="createPolicyPayload(${header.policyModelType}, ${header.policyModelVersion},
${header.policyName}, ${header.policyVersion}, ${exchangeProperty[policyProperties]}, ${body})"/>
- </setBody>
+ </setBody>
<to uri="direct:create-policy"/>
<to
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=endLog()"/>
@@ -1461,10 +1461,9 @@
</route>
</delete>
- <put uri="/v2/policies/pdpDeployment/"
- type="com.google.gson.JsonElement"
- consumes="application/json" >
+ <put uri="/v2/policies/pdpDeployment" type="com.google.gson.JsonElement" consumes="application/json">
<route>
+ <removeHeaders pattern="*"/>
<doTry>
<to
uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=startLog(*, 'Pdp group deployment update')"/>
@@ -1477,7 +1476,7 @@
<log loggingLevel="INFO"
message="PDP Group DEPLOY request payload: ${body}"/>
<setProperty name="raiseHttpExceptionFlag">
- <simple resultType="java.lang.Boolean">false</simple>
+ <simple resultType="java.lang.Boolean">true</simple>
</setProperty>
<to uri="direct:add-multiple-policies-to-pdp-group"/>
<to
@@ -1504,8 +1503,10 @@
<get uri="/v2/clampInformation" outType="org.onap.policy.clamp.clds.model.ClampInformation"
produces="application/json">
- <to
- uri="bean:org.onap.policy.clamp.authorization.AuthorizationController?method=getClampInformation()"/>
+ <route>
+ <to
+ uri="bean:org.onap.policy.clamp.authorization.AuthorizationController?method=getClampInformation()"/>
+ </route>
</get>
</rest>
</rests>
diff --git a/src/main/resources/clds/camel/routes/policy-flows.xml b/src/main/resources/clds/camel/routes/policy-flows.xml
index f86ade5ef..4048af496 100644
--- a/src/main/resources/clds/camel/routes/policy-flows.xml
+++ b/src/main/resources/clds/camel/routes/policy-flows.xml
@@ -493,7 +493,7 @@
</simple>
</setHeader>
<log loggingLevel="INFO"
- message="Endpoint to add policies to PDP Group: {{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/deployments/batch"></log>
+ message="Endpoint to add/remove policies in batch to PDP Group: {{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/deployments/batch"></log>
<toD
uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/deployments/batch?bridgeEndpoint=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;useSystemProperties=true&amp;authUsername={{clamp.config.policy.pap.userName}}&amp;authPassword={{clamp.config.policy.pap.password}}&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
<doFinally>
diff --git a/src/test/resources/example/policy/pdp-group-multi-policies-payload.json b/src/test/resources/example/policy/pdp-group-multi-policies-payload.json
index f8625ebbb..5e9c77f45 100644
--- a/src/test/resources/example/policy/pdp-group-multi-policies-payload.json
+++ b/src/test/resources/example/policy/pdp-group-multi-policies-payload.json
@@ -12,12 +12,7 @@
"version": "1.0.0"
}
]
- }
- ]
- },
- {
- "name": "pdpgroup1",
- "deploymentSubgroups": [
+ },
{
"pdpType": "pdpsubgroup1",
"action": "POST",
@@ -27,12 +22,7 @@
"version": "1.0.0"
}
]
- }
- ]
- },
- {
- "name": "pdpgroup1",
- "deploymentSubgroups": [
+ },
{
"pdpType": "pdpsubgroup1",
"action": "POST",
@@ -57,12 +47,7 @@
"version": "1.0.0"
}
]
- }
- ]
- },
- {
- "name": "pdpgroup2",
- "deploymentSubgroups": [
+ },
{
"pdpType": "pdpsubgroup2",
"action": "POST",
@@ -72,12 +57,7 @@
"version": "2.0.0"
}
]
- }
- ]
- },
- {
- "name": "pdpgroup2",
- "deploymentSubgroups": [
+ },
{
"pdpType": "pdpsubgroup2",
"action": "DELETE",
@@ -91,4 +71,4 @@
]
}
]
-} \ No newline at end of file
+}
diff --git a/src/test/resources/example/policy/pdp-group-policy-payload.json b/src/test/resources/example/policy/pdp-group-policy-payload.json
index 44a48dacb..897fb43be 100644
--- a/src/test/resources/example/policy/pdp-group-policy-payload.json
+++ b/src/test/resources/example/policy/pdp-group-policy-payload.json
@@ -12,12 +12,7 @@
"version": "1.0.0"
}
]
- }
- ]
- },
- {
- "name": "pdpGroup2",
- "deploymentSubgroups": [
+ },
{
"pdpType": "pdpSubgroup2",
"action": "POST",
@@ -27,12 +22,7 @@
"version": "1.0.0"
}
]
- }
- ]
- },
- {
- "name": "pdpGroup2",
- "deploymentSubgroups": [
+ },
{
"pdpType": "pdpSubgroup1",
"action": "POST",