--- /dev/null
+/**\r
+ * ============LICENSE_START=======================================================\r
+ * org.onap.aai\r
+ * ================================================================================\r
+ * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.\r
+ * Copyright © 2017-2018 Amdocs\r
+ * ================================================================================\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ * ============LICENSE_END=========================================================\r
+ */\r
+package org.onap.aai.datarouter.entity;\r
+\r
+import com.google.gson.Gson;\r
+import com.google.gson.GsonBuilder;\r
+import javax.ws.rs.core.Response.Status;\r
+import org.onap.aai.cl.api.Logger;\r
+import org.onap.aai.cl.eelf.LoggerFactory;\r
+import org.onap.aai.datarouter.exception.POAAuditException;\r
+import org.onap.aai.datarouter.logging.DataRouterMsgs;\r
+import org.onap.aai.datarouter.service.AuditService;\r
+\r
+/**\r
+ * This class includes the POMBA rest call message body which triggers the audit process\r
+ *\r
+ */\r
+public class POAServiceInstanceEntity\r
+{\r
+ private static final String ATTR_SERVICE_INST_ID = "serviceInstanceId";\r
+ private static final String ATTR_SERVICE_TYPE = "serviceType";\r
+ private static final String ATTR_MODEL_VERSION_ID = "modelVersionId";\r
+ private static final String ATTR_MODEL_INVARIANT_ID = "modelInvariantId";\r
+ private static final String ATTR_CUSTOMER_ID = "customerId";\r
+\r
+ private static final Gson gson = new GsonBuilder().disableHtmlEscaping().create();\r
+\r
+ private String xFromAppId;\r
+ private String xTransactionId;\r
+ private String serviceInstanceId;\r
+ private String serviceType;\r
+ private String modelVersionId;\r
+ private String modelInvariantId;\r
+ private String customerId;\r
+\r
+ private static Logger logger = LoggerFactory.getInstance().getLogger(POAServiceInstanceEntity.class.getName());\r
+\r
+\r
+ public String getxFromAppId() {\r
+ return xFromAppId;\r
+ }\r
+\r
+ public void setxFromAppId(String xFromAppId) {\r
+ this.xFromAppId = xFromAppId;\r
+ }\r
+\r
+ public String getxTransactionId() {\r
+ return xTransactionId;\r
+ }\r
+\r
+ public void setxTransactionId(String xTransactionId) {\r
+ this.xTransactionId = xTransactionId;\r
+ }\r
+\r
+ public String getServiceInstanceId() {\r
+ return serviceInstanceId;\r
+ }\r
+\r
+ public void setServiceInstanceId(String serviceInstanceId) {\r
+ this.serviceInstanceId = serviceInstanceId;\r
+ }\r
+\r
+ public String getServiceType() {\r
+ return serviceType;\r
+ }\r
+\r
+ public void setServiceType(String serviceType) {\r
+ this.serviceType = serviceType;\r
+ }\r
+\r
+ public String getModelVersionId() {\r
+ return modelVersionId;\r
+ }\r
+\r
+ public void setModelVersionId(String modelVersionId) {\r
+ this.modelVersionId = modelVersionId;\r
+ }\r
+\r
+ public String getModelInvariantId() {\r
+ return modelInvariantId;\r
+ }\r
+\r
+ public void setModelInvariantId(String modelInvariantId) {\r
+ this.modelInvariantId = modelInvariantId;\r
+ }\r
+\r
+ public String getCustomerId() {\r
+ return customerId;\r
+ }\r
+\r
+ public void setCustomerId(String customerId) {\r
+ this.customerId = customerId;\r
+ }\r
+\r
+\r
+ public String toJson() {\r
+ return gson.toJson(this);\r
+ }\r
+\r
+\r
+ public static POAServiceInstanceEntity fromJson(String payload) throws POAAuditException {\r
+\r
+ if (payload == null || payload.isEmpty()) {\r
+ throw new POAAuditException("Invalid Json Payload", Status.BAD_REQUEST);\r
+ }\r
+\r
+ try {\r
+ return gson.fromJson(payload, POAServiceInstanceEntity.class);\r
+ } catch (Exception ex) {\r
+ logger.debug("Invalid Json Payload: " + payload);\r
+ throw new POAAuditException("Invalid Json Payload", Status.BAD_REQUEST, DataRouterMsgs.BAD_REST_REQUEST, ex.getMessage());\r
+ }\r
+ }\r
+\r
+\r
+ /**\r
+ * Validates this service instance; only the attributes that are expected in request body are verified.\r
+ * @throws POAAuditException if the service instance is invalid\r
+ */\r
+ public void validate() throws POAAuditException {\r
+\r
+ if(serviceInstanceId == null || serviceInstanceId.isEmpty()) {\r
+ String error = "Missing attribute: " + ATTR_SERVICE_INST_ID;\r
+ throw new POAAuditException(error, Status.BAD_REQUEST, DataRouterMsgs.BAD_REST_REQUEST, error);\r
+ }\r
+\r
+ if(serviceType == null || serviceType.isEmpty()) {\r
+ String error = "Missing attribute: " + ATTR_SERVICE_TYPE;\r
+ throw new POAAuditException(error, Status.BAD_REQUEST, DataRouterMsgs.BAD_REST_REQUEST, error);\r
+ }\r
+\r
+ if(modelVersionId == null || modelVersionId.isEmpty()) {\r
+ String error = "Missing attribute: " + ATTR_MODEL_VERSION_ID;\r
+ throw new POAAuditException(error, Status.BAD_REQUEST, DataRouterMsgs.BAD_REST_REQUEST, error);\r
+ }\r
+\r
+ if(modelInvariantId == null || modelInvariantId.isEmpty()) {\r
+ String error = "Missing attribute: " + ATTR_MODEL_INVARIANT_ID;\r
+ throw new POAAuditException(error, Status.BAD_REQUEST, DataRouterMsgs.BAD_REST_REQUEST, error);\r
+ }\r
+\r
+ if(customerId == null || customerId.isEmpty()) {\r
+ String error = "Missing attribute: " + ATTR_CUSTOMER_ID;\r
+ throw new POAAuditException(error, Status.BAD_REQUEST, DataRouterMsgs.BAD_REST_REQUEST, error);\r
+ }\r
+ }\r
+\r
+\r
+ @Override\r
+ public String toString() {\r
+ return "ServiceInstance [xFromAppId=" + xFromAppId + ", xTransactionId=" + xTransactionId\r
+ + ", serviceInstanceId=" + serviceInstanceId + ", serviceType=" + serviceType + ", modelVersionId="\r
+ + modelVersionId + ", modelInvariantId=" + modelInvariantId + ", customerId=" + customerId + "]";\r
+ }\r
+}\r