summaryrefslogtreecommitdiffstats
path: root/models-interactions/model-impl/aai/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'models-interactions/model-impl/aai/src/main')
-rw-r--r--models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiGetResponse.java41
-rw-r--r--models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiGetVnfResponse.java151
-rw-r--r--models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiGetVserverResponse.java44
-rw-r--r--models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiManager.java235
-rw-r--r--models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqCloudRegion.java86
-rw-r--r--models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqExtraProperties.java43
-rw-r--r--models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqExtraProperty.java60
-rw-r--r--models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqGenericVnf.java228
-rw-r--r--models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqInstanceFilters.java45
-rw-r--r--models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqInventoryResponseItem.java130
-rw-r--r--models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqInventoryResponseItems.java43
-rw-r--r--models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqNamedQuery.java42
-rw-r--r--models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqQueryParameters.java41
-rw-r--r--models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqRequest.java52
-rw-r--r--models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqRequestError.java41
-rw-r--r--models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqResponse.java54
-rw-r--r--models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqResponseWrapper.java153
-rw-r--r--models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqServiceExcept.java51
-rw-r--r--models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqServiceInstance.java118
-rw-r--r--models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqTenant.java65
-rw-r--r--models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqVServer.java130
-rw-r--r--models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqVfModule.java183
-rw-r--r--models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/Pnf.java92
-rw-r--r--models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/PnfInstance.java138
-rw-r--r--models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/PnfType.java37
-rw-r--r--models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/RelatedToProperty.java51
-rw-r--r--models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/Relationship.java76
-rw-r--r--models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/RelationshipData.java51
-rw-r--r--models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/RelationshipList.java45
-rw-r--r--models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/util/AaiException.java48
-rw-r--r--models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/util/Serialization.java34
31 files changed, 2608 insertions, 0 deletions
diff --git a/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiGetResponse.java b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiGetResponse.java
new file mode 100644
index 000000000..89b15b9cb
--- /dev/null
+++ b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiGetResponse.java
@@ -0,0 +1,41 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * aai
+ * ================================================================================
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.aai;
+
+import com.google.gson.annotations.SerializedName;
+import java.io.Serializable;
+
+public class AaiGetResponse implements Serializable {
+ private static final long serialVersionUID = 7311418432051756162L;
+
+ @SerializedName("requestError")
+ private AaiNqRequestError requestError;
+
+ public AaiNqRequestError getRequestError() {
+ return requestError;
+ }
+
+ public void setRequestError(AaiNqRequestError requestError) {
+ this.requestError = requestError;
+ }
+
+}
diff --git a/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiGetVnfResponse.java b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiGetVnfResponse.java
new file mode 100644
index 000000000..666f68d64
--- /dev/null
+++ b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiGetVnfResponse.java
@@ -0,0 +1,151 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * aai
+ * ================================================================================
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file excthe License at
+ * ept in compliance with the License.
+ * You may obtain a copy of
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.aai;
+
+import com.google.gson.annotations.SerializedName;
+import java.io.Serializable;
+
+public class AaiGetVnfResponse extends AaiGetResponse implements Serializable {
+
+ private static final long serialVersionUID = -6247505944905898871L;
+
+ @SerializedName("vnf-id")
+ private String vnfId;
+
+ @SerializedName("vnf-name")
+ private String vnfName;
+
+ @SerializedName("vnf-type")
+ private String vnfType;
+
+ @SerializedName("service-id")
+ private String serviceId;
+
+ @SerializedName("orchestration-status")
+ private String orchestrationStatus;
+
+ @SerializedName("in-maint")
+ private boolean inMaint;
+
+ @SerializedName("is-closed-loop-disabled")
+ private boolean isClosedLoopDisabled;
+
+ @SerializedName("model-invariant-id")
+ private String modelInvariantId;
+
+ @SerializedName("prov-status")
+ private String provStatus;
+
+ @SerializedName("resource-version")
+ private String resourceVersion;
+
+ @SerializedName("relationship-list")
+ private RelationshipList relationshipList;
+
+ public String getVnfId() {
+ return vnfId;
+ }
+
+ public String getVnfName() {
+ return vnfName;
+ }
+
+ public String getVnfType() {
+ return vnfType;
+ }
+
+ public String getServiceId() {
+ return serviceId;
+ }
+
+ public String getOrchestrationStatus() {
+ return orchestrationStatus;
+ }
+
+ public boolean getInMaint() {
+ return inMaint;
+ }
+
+ public boolean getIsClosedLoopDisabled() {
+ return isClosedLoopDisabled;
+ }
+
+ public String getModelInvariantId() {
+ return modelInvariantId;
+ }
+
+ public String getProvStatus() {
+ return provStatus;
+ }
+
+ public String getResourceVersion() {
+ return resourceVersion;
+ }
+
+ public RelationshipList getRelationshipList() {
+ return relationshipList;
+ }
+
+ public void setVnfId(String vnfId) {
+ this.vnfId = vnfId;
+ }
+
+ public void setVnfName(String vnfName) {
+ this.vnfName = vnfName;
+ }
+
+ public void setVnfType(String vnfType) {
+ this.vnfType = vnfType;
+ }
+
+ public void setServiceId(String serviceId) {
+ this.serviceId = serviceId;
+ }
+
+ public void setOrchestrationStatus(String orchestrationStatus) {
+ this.orchestrationStatus = orchestrationStatus;
+ }
+
+ public void setInMaint(boolean inMaint) {
+ this.inMaint = inMaint;
+ }
+
+ public void setIsClosedLoopDisabled(boolean isClosedLoopDisabled) {
+ this.isClosedLoopDisabled = isClosedLoopDisabled;
+ }
+
+ public void setModelInvariantId(String modelInvariantId) {
+ this.modelInvariantId = modelInvariantId;
+ }
+
+ public void setProvStatus(String provStatus) {
+ this.provStatus = provStatus;
+ }
+
+ public void setResourceVersion(String resourceVersion) {
+ this.resourceVersion = resourceVersion;
+ }
+
+ public void setRelationshipList(RelationshipList relationshipList) {
+ this.relationshipList = relationshipList;
+ }
+}
diff --git a/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiGetVserverResponse.java b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiGetVserverResponse.java
new file mode 100644
index 000000000..72adb9d02
--- /dev/null
+++ b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiGetVserverResponse.java
@@ -0,0 +1,44 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * aai
+ * ================================================================================
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.aai;
+
+import com.google.gson.annotations.SerializedName;
+
+import java.io.Serializable;
+import java.util.LinkedList;
+import java.util.List;
+
+public class AaiGetVserverResponse extends AaiGetResponse implements Serializable {
+
+ private static final long serialVersionUID = -6247505944905898871L;
+
+ @SerializedName("vserver")
+ private List<AaiNqVServer> vserver = new LinkedList<>();
+
+ public List<AaiNqVServer> getVserver() {
+ return vserver;
+ }
+
+ public void setVserver(List<AaiNqVServer> vserver) {
+ this.vserver = vserver;
+ }
+}
diff --git a/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiManager.java b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiManager.java
new file mode 100644
index 000000000..bb772e6ca
--- /dev/null
+++ b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiManager.java
@@ -0,0 +1,235 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * aai
+ * ================================================================================
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019 Nordix Foundation.
+ * Modifications Copyright (C) 2019 Samsung Electronics Co., Ltd.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.aai;
+
+import com.google.gson.JsonSyntaxException;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import org.onap.policy.aai.util.Serialization;
+import org.onap.policy.common.endpoints.event.comm.Topic.CommInfrastructure;
+import org.onap.policy.common.endpoints.utils.NetLoggerUtil;
+import org.onap.policy.common.endpoints.utils.NetLoggerUtil.EventType;
+import org.onap.policy.rest.RestManager;
+import org.onap.policy.rest.RestManager.Pair;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * This class handles communication towards and responses from A&AI for this module.
+ */
+public final class AaiManager {
+
+ /** The Constant logger. */
+ private static final Logger logger = LoggerFactory.getLogger(AaiManager.class);
+
+ /** The rest manager. */
+ // The REST manager used for processing REST calls for this AAI manager
+ private final RestManager restManager;
+
+ /**
+ * Constructor, create the AAI manager with the specified REST manager.
+ *
+ * @param restManager the rest manager to use for REST calls
+ */
+ public AaiManager(final RestManager restManager) {
+ this.restManager = restManager;
+ }
+
+ /**
+ * Post a query to A&AI.
+ *
+ * @param url the A&AI URL
+ * @param username the user name for authentication
+ * @param password the password for authentication
+ * @param request the request to issue towards A&AI
+ * @param requestId the UUID of the request
+ * @return the response from A&AI
+ */
+ public AaiNqResponse postQuery(String url, String username, String password, AaiNqRequest request, UUID requestId) {
+
+ final Map<String, String> headers = createHeaders(requestId);
+
+ url = url + "/aai/search/named-query";
+
+ logger.debug("RestManager.post before");
+ String requestJson = Serialization.gsonPretty.toJson(request);
+ NetLoggerUtil.log(EventType.OUT, CommInfrastructure.REST, url, requestJson);
+ Pair<Integer, String> httpDetails =
+ restManager.post(url, username, password, headers, "application/json", requestJson);
+ logger.debug("RestManager.post after");
+
+ if (httpDetails == null) {
+ logger.info("AAI POST Null Response to {}", url);
+ return null;
+ }
+
+ int httpResponseCode = httpDetails.first;
+
+ logger.info(url);
+ logger.info("{}", httpResponseCode);
+ logger.info(httpDetails.second);
+
+ if (httpDetails.second != null) {
+ return composeResponse(httpDetails, url, AaiNqResponse.class);
+ }
+ return null;
+ }
+
+ /**
+ * Perform a GET request for a particular virtual server towards A&AI.
+ *
+ * @param urlGet the A&AI URL
+ * @param username the user name for authentication
+ * @param password the password for authentication
+ * @param requestId the UUID of the request
+ * @param key the key of the virtual server
+ * @return the response for the virtual server from A&AI
+ */
+ public AaiGetVserverResponse getQueryByVserverName(String urlGet, String username, String password, UUID requestId,
+ String key) {
+ return getQuery(urlGet, username, password, requestId, key, AaiGetVserverResponse.class);
+ }
+
+ /**
+ * Perform a GET request for a particular VNF by VNF ID towards A&AI.
+ *
+ * @param urlGet the A&AI URL
+ * @param username the user name for authentication
+ * @param password the password for authentication
+ * @param requestId the UUID of the request
+ * @param key the ID of the VNF
+ * @return the response for the virtual server from A&AI
+ */
+ public AaiGetVnfResponse getQueryByVnfId(String urlGet, String username, String password, UUID requestId,
+ String key) {
+ return getQuery(urlGet, username, password, requestId, key, AaiGetVnfResponse.class);
+ }
+
+ /**
+ * Perform a GET request for a particular VNF by VNF name towards A&AI.
+ *
+ * @param urlGet the A&AI URL
+ * @param username the user name for authentication
+ * @param password the password for authentication
+ * @param requestId the UUID of the request
+ * @param key the name of the VNF
+ * @return the response for the virtual server from A&AI
+ */
+ public AaiGetVnfResponse getQueryByVnfName(String urlGet, String username, String password, UUID requestId,
+ String key) {
+ return getQuery(urlGet, username, password, requestId, key, AaiGetVnfResponse.class);
+ }
+
+ /**
+ * Perform a GET query for a particular entity towards A&AI.
+ *
+ * @param <T> the generic type for the response
+ * @param urlGet the A&AI URL
+ * @param username the user name for authentication
+ * @param password the password for authentication
+ * @param requestId the UUID of the request
+ * @param key the name of the VNF
+ * @param classOfT the class of the response to return
+ * @return the response for the virtual server from A&AI
+ */
+ private <T> T getQuery(final String url, final String username, final String password, final UUID requestId,
+ final String key, final Class<T> classOfResponse) {
+
+ Map<String, String> headers = createHeaders(requestId);
+
+ String urlGet = url + key;
+
+ int attemptsLeft = 3;
+
+ while (attemptsLeft-- > 0) {
+ NetLoggerUtil.getNetworkLogger().info("[OUT|{}|{}|]", CommInfrastructure.REST, urlGet);
+ Pair<Integer, String> httpDetailsGet = restManager.get(urlGet, username, password, headers);
+ if (httpDetailsGet == null) {
+ logger.info("AAI GET Null Response to {}", urlGet);
+ return null;
+ }
+
+ int httpResponseCode = httpDetailsGet.first;
+
+ logger.info(urlGet);
+ logger.info("{}", httpResponseCode);
+ logger.info(httpDetailsGet.second);
+
+ if (httpResponseCode == 200) {
+ T responseGet = composeResponse(httpDetailsGet, urlGet, classOfResponse);
+ if (responseGet != null) {
+ return responseGet;
+ }
+ }
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ }
+
+ }
+
+ return null;
+ }
+
+ /**
+ * Create the headers for the HTTP request.
+ *
+ * @param requestId the request ID to insert in the headers
+ * @return the HTTP headers
+ */
+ private Map<String, String> createHeaders(final UUID requestId) {
+ Map<String, String> headers = new HashMap<>();
+
+ headers.put("X-FromAppId", "POLICY");
+ headers.put("X-TransactionId", requestId.toString());
+ headers.put("Accept", "application/json");
+
+ return headers;
+ }
+
+ /**
+ * This method uses Google's GSON to create a response object from a JSON string.
+ *
+ * @param <T> the generic type
+ * @param httpDetails the HTTP response
+ * @param url the URL from which the response came
+ * @param classOfResponse The response class
+ * @return an instance of the response class
+ * @throws JsonSyntaxException on GSON errors instantiating the response
+ */
+ private <T> T composeResponse(final Pair<Integer, String> httpDetails, final String url,
+ final Class<T> classOfResponse) {
+ try {
+ T response = Serialization.gsonPretty.fromJson(httpDetails.second, classOfResponse);
+ NetLoggerUtil.log(EventType.IN, CommInfrastructure.REST, url, httpDetails.second);
+ return response;
+ } catch (JsonSyntaxException e) {
+ logger.error("postQuery threw: ", e);
+ return null;
+ }
+ }
+}
diff --git a/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqCloudRegion.java b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqCloudRegion.java
new file mode 100644
index 000000000..ad910dcf3
--- /dev/null
+++ b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqCloudRegion.java
@@ -0,0 +1,86 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * aai
+ * ================================================================================
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.aai;
+
+import com.google.gson.annotations.SerializedName;
+
+import java.io.Serializable;
+
+public class AaiNqCloudRegion implements Serializable {
+
+ private static final long serialVersionUID = -897231529157222683L;
+
+ @SerializedName("cloud-owner")
+ private String cloudOwner;
+
+ @SerializedName("cloud-region-id")
+ private String cloudRegionId;
+
+ @SerializedName("cloud-region-version")
+ private String cloudRegionVersion;
+
+ @SerializedName("complex-name")
+ private String complexName;
+
+ @SerializedName("resource-version")
+ private String resourceVersion;
+
+ public String getCloudOwner() {
+ return cloudOwner;
+ }
+
+ public String getCloudRegionId() {
+ return cloudRegionId;
+ }
+
+ public String getCloudRegionVersion() {
+ return cloudRegionVersion;
+ }
+
+ public String getComplexName() {
+ return complexName;
+ }
+
+ public String getResourceVersion() {
+ return resourceVersion;
+ }
+
+ public void setCloudOwner(String cloudOwner) {
+ this.cloudOwner = cloudOwner;
+ }
+
+ public void setCloudRegionId(String cloudRegionId) {
+ this.cloudRegionId = cloudRegionId;
+ }
+
+ public void setCloudRegionVersion(String cloudRegionVersion) {
+ this.cloudRegionVersion = cloudRegionVersion;
+ }
+
+ public void setComplexName(String complexName) {
+ this.complexName = complexName;
+ }
+
+ public void setResourceVersion(String resourceVersion) {
+ this.resourceVersion = resourceVersion;
+ }
+}
diff --git a/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqExtraProperties.java b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqExtraProperties.java
new file mode 100644
index 000000000..c3139a342
--- /dev/null
+++ b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqExtraProperties.java
@@ -0,0 +1,43 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * aai
+ * ================================================================================
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.aai;
+
+import com.google.gson.annotations.SerializedName;
+
+import java.io.Serializable;
+import java.util.LinkedList;
+import java.util.List;
+
+public class AaiNqExtraProperties implements Serializable {
+ private static final long serialVersionUID = 4109625574744702319L;
+
+ @SerializedName("extra-property")
+ private List<AaiNqExtraProperty> extraProperty = new LinkedList<>();
+
+ public List<AaiNqExtraProperty> getExtraProperty() {
+ return extraProperty;
+ }
+
+ public void setExtraProperty(List<AaiNqExtraProperty> extraProperty) {
+ this.extraProperty = extraProperty;
+ }
+}
diff --git a/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqExtraProperty.java b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqExtraProperty.java
new file mode 100644
index 000000000..045e8fac9
--- /dev/null
+++ b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqExtraProperty.java
@@ -0,0 +1,60 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * aai
+ * ================================================================================
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.aai;
+
+import com.google.gson.annotations.SerializedName;
+
+import java.io.Serializable;
+
+public class AaiNqExtraProperty implements Serializable {
+
+ private static final long serialVersionUID = -3861240617222397736L;
+
+ @SerializedName("property-name")
+ private String propertyName;
+
+ @SerializedName("property-value")
+ private String propertyValue;
+
+ public AaiNqExtraProperty() {}
+
+ public AaiNqExtraProperty(String propertyName, String propertyValue) {
+ this.propertyName = propertyName;
+ this.propertyValue = propertyValue;
+ }
+
+ public String getPropertyName() {
+ return propertyName;
+ }
+
+ public String getPropertyValue() {
+ return propertyValue;
+ }
+
+ public void setPropertyName(String propertyName) {
+ this.propertyName = propertyName;
+ }
+
+ public void setPropertyValue(String propertyValue) {
+ this.propertyValue = propertyValue;
+ }
+}
diff --git a/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqGenericVnf.java b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqGenericVnf.java
new file mode 100644
index 000000000..d67d02443
--- /dev/null
+++ b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqGenericVnf.java
@@ -0,0 +1,228 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * aai
+ * ================================================================================
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.aai;
+
+import com.google.gson.annotations.SerializedName;
+import java.io.Serializable;
+
+public class AaiNqGenericVnf implements Serializable {
+
+ private static final long serialVersionUID = 834322706248060560L;
+
+ @SerializedName("vnf-id")
+ private String vnfId;
+
+ @SerializedName("vnf-name")
+ private String vnfName;
+
+ @SerializedName("vnf-name2")
+ private String vnfName2;
+
+ @SerializedName("vnf-type")
+ private String vnfType;
+
+ @SerializedName("service-id")
+ private String serviceId;
+
+ @SerializedName("prov-status")
+ private String provStatus;
+
+ @SerializedName("operational-state")
+ private String operationalState;
+
+ @SerializedName("ipv4-oam-address")
+ private String ipv4OamAddress;
+
+ @SerializedName("ipv4-loopback0-address")
+ private String ipv4Loopback0Address;
+
+ @SerializedName("in-maint")
+ private Boolean inMaint;
+
+ @SerializedName("is-closed-loop-disabled")
+ private Boolean isClosedLoopDisabled;
+
+ @SerializedName("resource-version")
+ private String resourceVersion;
+
+ @SerializedName("encrypted-access-flag")
+ private Boolean encrypedAccessFlag;
+
+ @SerializedName("persona-model-id")
+ private String personaModelId;
+
+ @SerializedName("persona-model-version")
+ private String personaModelVersion;
+
+ @SerializedName("model-invariant-id")
+ private String modelInvariantId;
+
+ @SerializedName("model-version-id")
+ private String modelVersionId;
+
+ @SerializedName("model-customization-id")
+ private String modelCustomizationId = null;
+
+ public String getVnfId() {
+ return vnfId;
+ }
+
+ public String getVnfName() {
+ return vnfName;
+ }
+
+ public String getVnfName2() {
+ return vnfName2;
+ }
+
+ public String getVnfType() {
+ return vnfType;
+ }
+
+ public String getServiceId() {
+ return serviceId;
+ }
+
+ public String getProvStatus() {
+ return provStatus;
+ }
+
+ public String getOperationalState() {
+ return operationalState;
+ }
+
+ public String getIpv4OamAddress() {
+ return ipv4OamAddress;
+ }
+
+ public String getIpv4Loopback0Address() {
+ return ipv4Loopback0Address;
+ }
+
+ public Boolean getInMaint() {
+ return inMaint;
+ }
+
+ public Boolean getIsClosedLoopDisabled() {
+ return isClosedLoopDisabled;
+ }
+
+ public String getResourceVersion() {
+ return resourceVersion;
+ }
+
+ public Boolean getEncrypedAccessFlag() {
+ return encrypedAccessFlag;
+ }
+
+ public String getPersonaModelId() {
+ return personaModelId;
+ }
+
+ public String getPersonaModelVersion() {
+ return personaModelVersion;
+ }
+
+ public String getModelInvariantId() {
+ return modelInvariantId;
+ }
+
+ public String getModelVersionId() {
+ return modelVersionId;
+ }
+
+ public String getModelCustomizationId() {
+ return modelCustomizationId;
+ }
+
+ public void setVnfId(String vnfId) {
+ this.vnfId = vnfId;
+ }
+
+ public void setVnfName(String vnfName) {
+ this.vnfName = vnfName;
+ }
+
+ public void setVnfName2(String vnfName2) {
+ this.vnfName2 = vnfName2;
+ }
+
+ public void setVnfType(String vnfType) {
+ this.vnfType = vnfType;
+ }
+
+ public void setServiceId(String serviceId) {
+ this.serviceId = serviceId;
+ }
+
+ public void setProvStatus(String provStatus) {
+ this.provStatus = provStatus;
+ }
+
+ public void setOperationalState(String operationalState) {
+ this.operationalState = operationalState;
+ }
+
+ public void setIpv4OamAddress(String ipv4OamAddress) {
+ this.ipv4OamAddress = ipv4OamAddress;
+ }
+
+ public void setIpv4Loopback0Address(String ipv4Loopback0Address) {
+ this.ipv4Loopback0Address = ipv4Loopback0Address;
+ }
+
+ public void setInMaint(Boolean inMaint) {
+ this.inMaint = inMaint;
+ }
+
+ public void setIsClosedLoopDisabled(Boolean isClosedLoopDisabled) {
+ this.isClosedLoopDisabled = isClosedLoopDisabled;
+ }
+
+ public void setResourceVersion(String resourceVersion) {
+ this.resourceVersion = resourceVersion;
+ }
+
+ public void setEncrypedAccessFlag(Boolean encrypedAccessFlag) {
+ this.encrypedAccessFlag = encrypedAccessFlag;
+ }
+
+ public void setPersonaModelId(String personaModelId) {
+ this.personaModelId = personaModelId;
+ }
+
+ public void setPersonaModelVersion(String personaModelVersion) {
+ this.personaModelVersion = personaModelVersion;
+ }
+
+ public void setModelInvariantId(String modelInvariantId) {
+ this.modelInvariantId = modelInvariantId;
+ }
+
+ public void setModelVersionId(String modelVersionId) {
+ this.modelVersionId = modelVersionId;
+ }
+
+ public void setModelCustomizationId(String modelCustomizationId) {
+ this.modelCustomizationId = modelCustomizationId;
+ }
+}
diff --git a/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqInstanceFilters.java b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqInstanceFilters.java
new file mode 100644
index 000000000..8719f6ff2
--- /dev/null
+++ b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqInstanceFilters.java
@@ -0,0 +1,45 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * aai
+ * ================================================================================
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.aai;
+
+import com.google.gson.annotations.SerializedName;
+
+import java.io.Serializable;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+public class AaiNqInstanceFilters implements Serializable {
+
+ private static final long serialVersionUID = 8993824591338121185L;
+
+ @SerializedName("instance-filter")
+ private List<Map<String, Map<String, String>>> instanceFilter = new LinkedList<>();
+
+ public List<Map<String, Map<String, String>>> getInstanceFilter() {
+ return instanceFilter;
+ }
+
+ public void setInstanceFilter(List<Map<String, Map<String, String>>> instanceFilter) {
+ this.instanceFilter = instanceFilter;
+ }
+}
diff --git a/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqInventoryResponseItem.java b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqInventoryResponseItem.java
new file mode 100644
index 000000000..4ba9091fb
--- /dev/null
+++ b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqInventoryResponseItem.java
@@ -0,0 +1,130 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * aai
+ * ================================================================================
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.aai;
+
+import com.google.gson.annotations.SerializedName;
+
+import java.io.Serializable;
+
+public class AaiNqInventoryResponseItem implements Serializable {
+
+ private static final long serialVersionUID = 7142072567154675183L;
+
+ @SerializedName("model-name")
+ private String modelName;
+
+ @SerializedName("vf-module")
+ private AaiNqVfModule vfModule;
+
+ @SerializedName("service-instance")
+ private AaiNqServiceInstance serviceInstance;
+
+ @SerializedName("vserver")
+ private AaiNqVServer vserver;
+
+ @SerializedName("tenant")
+ private AaiNqTenant tenant;
+
+ @SerializedName("cloud-region")
+ private AaiNqCloudRegion cloudRegion;
+
+ @SerializedName("generic-vnf")
+ private AaiNqGenericVnf genericVnf;
+
+ @SerializedName("extra-properties")
+ private AaiNqExtraProperties extraProperties;
+
+ @SerializedName("inventory-response-items")
+ private AaiNqInventoryResponseItems items;
+
+ public String getModelName() {
+ return modelName;
+ }
+
+ public AaiNqVfModule getVfModule() {
+ return vfModule;
+ }
+
+ public AaiNqServiceInstance getServiceInstance() {
+ return serviceInstance;
+ }
+
+ public AaiNqVServer getVserver() {
+ return vserver;
+ }
+
+ public AaiNqTenant getTenant() {
+ return tenant;
+ }
+
+ public AaiNqCloudRegion getCloudRegion() {
+ return cloudRegion;
+ }
+
+ public AaiNqGenericVnf getGenericVnf() {
+ return genericVnf;
+ }
+
+ public AaiNqExtraProperties getExtraProperties() {
+ return extraProperties;
+ }
+
+ public AaiNqInventoryResponseItems getItems() {
+ return items;
+ }
+
+ public void setModelName(String modelName) {
+ this.modelName = modelName;
+ }
+
+ public void setVfModule(AaiNqVfModule vfModule) {
+ this.vfModule = vfModule;
+ }
+
+ public void setServiceInstance(AaiNqServiceInstance serviceInstance) {
+ this.serviceInstance = serviceInstance;
+ }
+
+ public void setVserver(AaiNqVServer vserver) {
+ this.vserver = vserver;
+ }
+
+ public void setTenant(AaiNqTenant tenant) {
+ this.tenant = tenant;
+ }
+
+ public void setCloudRegion(AaiNqCloudRegion cloudRegion) {
+ this.cloudRegion = cloudRegion;
+ }
+
+ public void setGenericVnf(AaiNqGenericVnf genericVnf) {
+ this.genericVnf = genericVnf;
+ }
+
+ public void setExtraProperties(AaiNqExtraProperties extraProperties) {
+ this.extraProperties = extraProperties;
+ }
+
+ public void setItems(AaiNqInventoryResponseItems items) {
+ this.items = items;
+ }
+}
diff --git a/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqInventoryResponseItems.java b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqInventoryResponseItems.java
new file mode 100644
index 000000000..7d2a07787
--- /dev/null
+++ b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqInventoryResponseItems.java
@@ -0,0 +1,43 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * aai
+ * ================================================================================
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.aai;
+
+import com.google.gson.annotations.SerializedName;
+
+import java.io.Serializable;
+import java.util.LinkedList;
+import java.util.List;
+
+public class AaiNqInventoryResponseItems implements Serializable {
+ private static final long serialVersionUID = 7602807659381179004L;
+
+ @SerializedName("inventory-response-item")
+ private List<AaiNqInventoryResponseItem> inventoryResponseItems = new LinkedList<>();
+
+ public List<AaiNqInventoryResponseItem> getInventoryResponseItems() {
+ return inventoryResponseItems;
+ }
+
+ public void setInventoryResponseItems(List<AaiNqInventoryResponseItem> inventoryResponseItems) {
+ this.inventoryResponseItems = inventoryResponseItems;
+ }
+}
diff --git a/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqNamedQuery.java b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqNamedQuery.java
new file mode 100644
index 000000000..fc6442847
--- /dev/null
+++ b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqNamedQuery.java
@@ -0,0 +1,42 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * aai
+ * ================================================================================
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.aai;
+
+import com.google.gson.annotations.SerializedName;
+
+import java.io.Serializable;
+import java.util.UUID;
+
+public class AaiNqNamedQuery implements Serializable {
+ private static final long serialVersionUID = -3277980060302645333L;
+
+ @SerializedName("named-query-uuid")
+ private UUID namedQueryUuid;
+
+ public UUID getNamedQueryUuid() {
+ return namedQueryUuid;
+ }
+
+ public void setNamedQueryUuid(UUID namedQueryUuid) {
+ this.namedQueryUuid = namedQueryUuid;
+ }
+}
diff --git a/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqQueryParameters.java b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqQueryParameters.java
new file mode 100644
index 000000000..9173fcdd5
--- /dev/null
+++ b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqQueryParameters.java
@@ -0,0 +1,41 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * aai
+ * ================================================================================
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.aai;
+
+import com.google.gson.annotations.SerializedName;
+
+import java.io.Serializable;
+
+public class AaiNqQueryParameters implements Serializable {
+ private static final long serialVersionUID = -4291227193197126982L;
+
+ @SerializedName("named-query")
+ private AaiNqNamedQuery namedQuery;
+
+ public AaiNqNamedQuery getNamedQuery() {
+ return namedQuery;
+ }
+
+ public void setNamedQuery(AaiNqNamedQuery namedQuery) {
+ this.namedQuery = namedQuery;
+ }
+}
diff --git a/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqRequest.java b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqRequest.java
new file mode 100644
index 000000000..643754f9d
--- /dev/null
+++ b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqRequest.java
@@ -0,0 +1,52 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * aai
+ * ================================================================================
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.aai;
+
+import com.google.gson.annotations.SerializedName;
+
+import java.io.Serializable;
+
+public class AaiNqRequest implements Serializable {
+ private static final long serialVersionUID = -3283942659786236032L;
+
+ @SerializedName("query-parameters")
+ private AaiNqQueryParameters queryParameters;
+
+ @SerializedName("instance-filters")
+ private AaiNqInstanceFilters instanceFilters;
+
+ public AaiNqQueryParameters getQueryParameters() {
+ return queryParameters;
+ }
+
+ public AaiNqInstanceFilters getInstanceFilters() {
+ return instanceFilters;
+ }
+
+ public void setQueryParameters(AaiNqQueryParameters queryParameters) {
+ this.queryParameters = queryParameters;
+ }
+
+ public void setInstanceFilters(AaiNqInstanceFilters instanceFilters) {
+ this.instanceFilters = instanceFilters;
+ }
+}
diff --git a/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqRequestError.java b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqRequestError.java
new file mode 100644
index 000000000..6ae437232
--- /dev/null
+++ b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqRequestError.java
@@ -0,0 +1,41 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * aai
+ * ================================================================================
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.aai;
+
+import com.google.gson.annotations.SerializedName;
+
+import java.io.Serializable;
+
+public class AaiNqRequestError implements Serializable {
+ private static final long serialVersionUID = -7742674155387022932L;
+
+ @SerializedName("serviceException")
+ private AaiNqServiceExcept serviceExcept;
+
+ public AaiNqServiceExcept getServiceExcept() {
+ return serviceExcept;
+ }
+
+ public void setServiceExcept(AaiNqServiceExcept serviceExcept) {
+ this.serviceExcept = serviceExcept;
+ }
+}
diff --git a/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqResponse.java b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqResponse.java
new file mode 100644
index 000000000..b823ceafb
--- /dev/null
+++ b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqResponse.java
@@ -0,0 +1,54 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * aai
+ * ================================================================================
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.aai;
+
+import com.google.gson.annotations.SerializedName;
+
+import java.io.Serializable;
+import java.util.LinkedList;
+import java.util.List;
+
+public class AaiNqResponse implements Serializable {
+ private static final long serialVersionUID = 8411407444051746101L;
+
+ @SerializedName("inventory-response-item")
+ private List<AaiNqInventoryResponseItem> inventoryResponseItems = new LinkedList<>();
+
+ @SerializedName("requestError")
+ private AaiNqRequestError requestError;
+
+ public List<AaiNqInventoryResponseItem> getInventoryResponseItems() {
+ return inventoryResponseItems;
+ }
+
+ public AaiNqRequestError getRequestError() {
+ return requestError;
+ }
+
+ public void setRequestError(AaiNqRequestError requestError) {
+ this.requestError = requestError;
+ }
+
+ public void setInventoryResponseItems(List<AaiNqInventoryResponseItem> inventoryResponseItems) {
+ this.inventoryResponseItems = inventoryResponseItems;
+ }
+}
diff --git a/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqResponseWrapper.java b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqResponseWrapper.java
new file mode 100644
index 000000000..68d07270a
--- /dev/null
+++ b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqResponseWrapper.java
@@ -0,0 +1,153 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * aai
+ * ================================================================================
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.aai;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.UUID;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class AaiNqResponseWrapper implements Serializable {
+ private static final long serialVersionUID = 8411407444051746101L;
+
+ private static final Logger logger = LoggerFactory.getLogger(AaiNqResponseWrapper.class);
+
+ private static final Pattern VF_MODULE_NAME_PAT = Pattern.compile("(.*_)(\\d+)");
+
+ private UUID requestId;
+ private AaiNqResponse aaiNqResponse;
+
+ public AaiNqResponseWrapper() {}
+
+ public AaiNqResponseWrapper(UUID requestId, AaiNqResponse aaiNqResponse) {
+ this.requestId = requestId;
+ this.aaiNqResponse = aaiNqResponse;
+ }
+
+ public UUID getRequestId() {
+ return requestId;
+ }
+
+ public void setRequestId(UUID requestId) {
+ this.requestId = requestId;
+ }
+
+ public AaiNqResponse getAaiNqResponse() {
+ return aaiNqResponse;
+ }
+
+ public void setAaiNqResponse(AaiNqResponse aaiNqResponse) {
+ this.aaiNqResponse = aaiNqResponse;
+ }
+
+ /**
+ * Counts the number of VF modules, if any, in the response.
+ *
+ * @return the number of VF modules, or {@code 0} if there are none
+ */
+ public int countVfModules() {
+ return getVfModuleItems(false).size();
+ }
+
+ /**
+ * Generates the name for the next VF module.
+ *
+ * @return the name of the next VF module, or {@code null} if the name could not be
+ * generated (i.e., because the response has no matching VF module names on
+ * which to model it)
+ */
+ public String genVfModuleName() {
+ /*
+ * Loop through the VF modules, extracting the name prefix and the largest number
+ * suffix
+ */
+ String prefix = null;
+ int maxSuffix = -1;
+
+ for (AaiNqInventoryResponseItem item : getVfModuleItems(false)) {
+ String name = item.getVfModule().getVfModuleName();
+ Matcher matcher = VF_MODULE_NAME_PAT.matcher(name);
+ if (matcher.matches()) {
+ int suffix = Integer.parseInt(matcher.group(2));
+ if (suffix > maxSuffix) {
+ maxSuffix = suffix;
+ prefix = matcher.group(1);
+ }
+ }
+ }
+
+ ++maxSuffix;
+
+ return (prefix == null ? null : prefix + maxSuffix);
+ }
+
+ /**
+ * Gets a list of VF modules. If the non-base VF modules are requested, then only
+ * those whose names match the name pattern, {@link #VF_MODULE_NAME_PAT}, are
+ * returned.
+ *
+ * @param wantBaseModule {@code true} if the the base VF module(s) is desired,
+ * {@code false} otherwise
+ * @return the list of VF module items
+ */
+ public List<AaiNqInventoryResponseItem> getVfModuleItems(boolean wantBaseModule) {
+ // get the list of items
+ List<AaiNqInventoryResponseItem> itemList;
+ try {
+ itemList = aaiNqResponse.getInventoryResponseItems().get(0).getItems().getInventoryResponseItems().get(0)
+ .getItems().getInventoryResponseItems();
+
+ } catch (NullPointerException | IndexOutOfBoundsException e) {
+ logger.debug("no VF modules in AAI response", e);
+ return Collections.emptyList();
+ }
+
+ if (itemList == null) {
+ return Collections.emptyList();
+ }
+
+ /*
+ * Walk the items looking for VF modules, allocating the list only when an item is
+ * found.
+ */
+ List<AaiNqInventoryResponseItem> vfModuleItems = new ArrayList<>(itemList.size());
+
+ for (AaiNqInventoryResponseItem inventoryResponseItem : itemList) {
+ AaiNqVfModule vfmod = inventoryResponseItem.getVfModule();
+ if (vfmod == null) {
+ continue;
+ }
+
+ if (vfmod.getIsBaseVfModule() == wantBaseModule
+ && (wantBaseModule || VF_MODULE_NAME_PAT.matcher(vfmod.getVfModuleName()).matches())) {
+ vfModuleItems.add(inventoryResponseItem);
+ }
+ }
+
+ return vfModuleItems;
+ }
+}
diff --git a/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqServiceExcept.java b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqServiceExcept.java
new file mode 100644
index 000000000..7b6c50257
--- /dev/null
+++ b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqServiceExcept.java
@@ -0,0 +1,51 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * aai
+ * ================================================================================
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.aai;
+
+import com.google.gson.annotations.SerializedName;
+
+import java.io.Serializable;
+
+public class AaiNqServiceExcept implements Serializable {
+ private static final long serialVersionUID = 2858343404484338546L;
+
+ @SerializedName("messageId")
+ private String messageId;
+
+ @SerializedName("text")
+ private String text;
+
+ @SerializedName("variables")
+ private String[] variables;
+
+ public String getMessageId() {
+ return messageId;
+ }
+
+ public String getText() {
+ return text;
+ }
+
+ public String[] getVariables() {
+ return variables;
+ }
+}
diff --git a/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqServiceInstance.java b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqServiceInstance.java
new file mode 100644
index 000000000..2f48ad85d
--- /dev/null
+++ b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqServiceInstance.java
@@ -0,0 +1,118 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * aai
+ * ================================================================================
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.aai;
+
+import com.google.gson.annotations.SerializedName;
+
+import java.io.Serializable;
+
+public class AaiNqServiceInstance implements Serializable {
+ private static final long serialVersionUID = -8000944396593889586L;
+
+ @SerializedName("service-instance-id")
+ private String serviceInstanceId;
+
+ @SerializedName("service-instance-name")
+ private String serviceInstanceName;
+
+ @SerializedName("persona-model-id")
+ private String personaModelId;
+
+ @SerializedName("persona-model-version")
+ private String personaModelVersion;
+
+ @SerializedName("service-instance-location-id")
+ private String serviceInstanceLocationId;
+
+ @SerializedName("resource-version")
+ private String resourceVersion;
+
+ @SerializedName("model-invariant-id")
+ private String modelInvariantId;
+
+ @SerializedName("model-version-id")
+ private String modelVersionId;
+
+ public String getServiceInstanceId() {
+ return serviceInstanceId;
+ }
+
+ public String getServiceInstanceName() {
+ return serviceInstanceName;
+ }
+
+ public String getPersonaModelId() {
+ return personaModelId;
+ }
+
+ public String getPersonaModelVersion() {
+ return personaModelVersion;
+ }
+
+ public String getServiceInstanceLocationId() {
+ return serviceInstanceLocationId;
+ }
+
+ public String getResourceVersion() {
+ return resourceVersion;
+ }
+
+ public String getModelInvariantId() {
+ return modelInvariantId;
+ }
+
+ public String getModelVersionId() {
+ return modelVersionId;
+ }
+
+ public void setServiceInstanceId(String serviceInstanceId) {
+ this.serviceInstanceId = serviceInstanceId;
+ }
+
+ public void setServiceInstanceName(String serviceInstanceName) {
+ this.serviceInstanceName = serviceInstanceName;
+ }
+
+ public void setPersonaModelId(String personaModelId) {
+ this.personaModelId = personaModelId;
+ }
+
+ public void setPersonaModelVersion(String personaModelVersion) {
+ this.personaModelVersion = personaModelVersion;
+ }
+
+ public void setServiceInstanceLocationId(String serviceInstanceLocationId) {
+ this.serviceInstanceLocationId = serviceInstanceLocationId;
+ }
+
+ public void setResourceVersion(String resourceVersion) {
+ this.resourceVersion = resourceVersion;
+ }
+
+ public void setModelInvariantId(String modelInvariantId) {
+ this.modelInvariantId = modelInvariantId;
+ }
+
+ public void setModelVersionId(String modelVersionId) {
+ this.modelVersionId = modelVersionId;
+ }
+}
diff --git a/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqTenant.java b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqTenant.java
new file mode 100644
index 000000000..129c05933
--- /dev/null
+++ b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqTenant.java
@@ -0,0 +1,65 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * aai
+ * ================================================================================
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.aai;
+
+import com.google.gson.annotations.SerializedName;
+
+import java.io.Serializable;
+
+public class AaiNqTenant implements Serializable {
+ private static final long serialVersionUID = 4702784101671984364L;
+
+ @SerializedName("tenant-id")
+ private String tenantId;
+
+ @SerializedName("tenant-name")
+ private String tenantName;
+
+ @SerializedName("resource-version")
+ private String resourceVersion;
+
+ public String getTenantId() {
+ return tenantId;
+ }
+
+ public String getTenantName() {
+ return tenantName;
+ }
+
+ public String getResourceVersion() {
+ return resourceVersion;
+ }
+
+ public void setTenantId(String tenantId) {
+ this.tenantId = tenantId;
+ }
+
+ public void setTenantName(String tenantName) {
+ this.tenantName = tenantName;
+ }
+
+ public void setResourceVersion(String resourceVersion) {
+ this.resourceVersion = resourceVersion;
+ }
+
+
+}
diff --git a/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqVServer.java b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqVServer.java
new file mode 100644
index 000000000..a7286ce8a
--- /dev/null
+++ b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqVServer.java
@@ -0,0 +1,130 @@
+/*
+ * ============LICENSE_START=======================================================
+ * aai
+ * ================================================================================
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.aai;
+
+import com.google.gson.annotations.SerializedName;
+
+import java.io.Serializable;
+
+public class AaiNqVServer implements Serializable {
+ private static final long serialVersionUID = -6718526692734215643L;
+
+ @SerializedName("vserver-id")
+ private String vserverId;
+
+ @SerializedName("vserver-name")
+ private String vserverName;
+
+ @SerializedName("vserver-name2")
+ private String vserverName2;
+
+ @SerializedName("prov-status")
+ private String provStatus;
+
+ @SerializedName("vserver-selflink")
+ private String vserverSelflink;
+
+ @SerializedName("in-maint")
+ private Boolean inMaint;
+
+ @SerializedName("is-closed-loop-disabled")
+ private Boolean isClosedLoopDisabled;
+
+ @SerializedName("resource-version")
+ private String resourceVersion;
+
+ @SerializedName("relationship-list")
+ private RelationshipList relationshipList;
+
+ public String getVserverId() {
+ return vserverId;
+ }
+
+ public String getVserverName() {
+ return vserverName;
+ }
+
+ public String getVserverName2() {
+ return vserverName2;
+ }
+
+ public String getProvStatus() {
+ return provStatus;
+ }
+
+ public String getVserverSelflink() {
+ return vserverSelflink;
+ }
+
+ public Boolean getInMaint() {
+ return inMaint;
+ }
+
+ public Boolean getIsClosedLoopDisabled() {
+ return isClosedLoopDisabled;
+ }
+
+ public String getResourceVersion() {
+ return resourceVersion;
+ }
+
+ public RelationshipList getRelationshipList() {
+ return relationshipList;
+ }
+
+ public void setVserverId(String vserverId) {
+ this.vserverId = vserverId;
+ }
+
+ public void setVserverName(String vserverName) {
+ this.vserverName = vserverName;
+ }
+
+ public void setVserverName2(String vserverName2) {
+ this.vserverName2 = vserverName2;
+ }
+
+ public void setProvStatus(String provStatus) {
+ this.provStatus = provStatus;
+ }
+
+ public void setVserverSelflink(String vserverSelflink) {
+ this.vserverSelflink = vserverSelflink;
+ }
+
+ public void setInMaint(Boolean inMaint) {
+ this.inMaint = inMaint;
+ }
+
+ public void setIsClosedLoopDisabled(Boolean isClosedLoopDisabled) {
+ this.isClosedLoopDisabled = isClosedLoopDisabled;
+ }
+
+ public void setResourceVersion(String resourceVersion) {
+ this.resourceVersion = resourceVersion;
+ }
+
+ public void setRelationshipList(RelationshipList relationshipList) {
+ this.relationshipList = relationshipList;
+ }
+
+}
diff --git a/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqVfModule.java b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqVfModule.java
new file mode 100644
index 000000000..9080c486e
--- /dev/null
+++ b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiNqVfModule.java
@@ -0,0 +1,183 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * aai
+ * ================================================================================
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.aai;
+
+import com.google.gson.annotations.SerializedName;
+import java.io.Serializable;
+
+public class AaiNqVfModule implements Serializable {
+ private static final long serialVersionUID = 8019133081429638232L;
+
+ @SerializedName("vf-module-id")
+ private String vfModuleId;
+
+ @SerializedName("vf-module-name")
+ private String vfModuleName;
+
+ @SerializedName("heat-stack-id")
+ private String heatStackId;
+
+ @SerializedName("orchestration-status")
+ private String orchestrationStatus;
+
+ @SerializedName("is-base-vf-module")
+ private Boolean isBaseVfModule;
+
+ @SerializedName("resource-version")
+ private String resourceVersion;
+
+ @SerializedName("persona-model-id")
+ private String personaModelId;
+
+ @SerializedName("persona-model-version")
+ private String personaModelVersion;
+
+ @SerializedName("widget-model-id")
+ private String widgetModelId;
+
+ @SerializedName("widget-model-version")
+ private String widgetModelVersion;
+
+ @SerializedName("contrail-service-instance-fqdn")
+ private String contrailServiceInstanceFqdn;
+
+ @SerializedName("model-invariant-id")
+ private String modelInvariantId;
+
+ @SerializedName("model-version-id")
+ private String modelVersionId;
+
+ @SerializedName("model-customization-id")
+ private String modelCustomizationId = null;
+
+ public String getVfModuleId() {
+ return vfModuleId;
+ }
+
+ public String getVfModuleName() {
+ return vfModuleName;
+ }
+
+ public String getHeatStackId() {
+ return heatStackId;
+ }
+
+ public String getOrchestrationStatus() {
+ return orchestrationStatus;
+ }
+
+ public Boolean getIsBaseVfModule() {
+ return isBaseVfModule;
+ }
+
+ public String getResourceVersion() {
+ return resourceVersion;
+ }
+
+ public String getPersonaModelId() {
+ return personaModelId;
+ }
+
+ public String getPersonaModelVersion() {
+ return personaModelVersion;
+ }
+
+ public String getWidgetModelId() {
+ return widgetModelId;
+ }
+
+ public String getWidgetModelVersion() {
+ return widgetModelVersion;
+ }
+
+ public String getContrailServiceInstanceFqdn() {
+ return contrailServiceInstanceFqdn;
+ }
+
+ public String getModelInvariantId() {
+ return modelInvariantId;
+ }
+
+ public String getModelVersionId() {
+ return modelVersionId;
+ }
+
+ public String getModelCustomizationId() {
+ return modelCustomizationId;
+ }
+
+ public void setVfModuleId(String vfModuleId) {
+ this.vfModuleId = vfModuleId;
+ }
+
+ public void setVfModuleName(String vfModuleName) {
+ this.vfModuleName = vfModuleName;
+ }
+
+ public void setHeatStackId(String heatStackId) {
+ this.heatStackId = heatStackId;
+ }
+
+ public void setOrchestrationStatus(String orchestrationStatus) {
+ this.orchestrationStatus = orchestrationStatus;
+ }
+
+ public void setIsBaseVfModule(Boolean isBaseVfModule) {
+ this.isBaseVfModule = isBaseVfModule;
+ }
+
+ public void setResourceVersion(String resourceVersion) {
+ this.resourceVersion = resourceVersion;
+ }
+
+ public void setPersonaModelId(String personaModelId) {
+ this.personaModelId = personaModelId;
+ }
+
+ public void setPersonaModelVersion(String personaModelVersion) {
+ this.personaModelVersion = personaModelVersion;
+ }
+
+ public void setWidgetModelId(String widgetModelId) {
+ this.widgetModelId = widgetModelId;
+ }
+
+ public void setWidgetModelVersion(String widgetModelVersion) {
+ this.widgetModelVersion = widgetModelVersion;
+ }
+
+ public void setContrailServiceInstanceFqdn(String contrailServiceInstanceFqdn) {
+ this.contrailServiceInstanceFqdn = contrailServiceInstanceFqdn;
+ }
+
+ public void setModelInvariantId(String modelInvariantId) {
+ this.modelInvariantId = modelInvariantId;
+ }
+
+ public void setModelVersionId(String modelVersionId) {
+ this.modelVersionId = modelVersionId;
+ }
+
+ public void setModelCustomizationId(String modelCustomizationId) {
+ this.modelCustomizationId = modelCustomizationId;
+ }
+}
diff --git a/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/Pnf.java b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/Pnf.java
new file mode 100644
index 000000000..f992d886d
--- /dev/null
+++ b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/Pnf.java
@@ -0,0 +1,92 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * aai
+ * ================================================================================
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.aai;
+
+import java.io.Serializable;
+
+public class Pnf implements Serializable {
+ private static final long serialVersionUID = -3535108358668248501L;
+
+ private String pnfName;
+ private PnfType pnfType;
+
+ public Pnf() {
+
+ }
+
+ public Pnf(Pnf pnf) {
+ this.pnfName = pnf.pnfName;
+ this.pnfType = pnf.pnfType;
+ }
+
+ public String getPnfName() {
+ return pnfName;
+ }
+
+ public void setPnfName(String pnfName) {
+ this.pnfName = pnfName;
+ }
+
+ public PnfType getPnfType() {
+ return pnfType;
+ }
+
+ public void setPnfType(PnfType pnfType) {
+ this.pnfType = pnfType;
+ }
+
+ @Override
+ public String toString() {
+ return "PNF [PNFName=" + pnfName + ", PNFType=" + pnfType + "]";
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((pnfName == null) ? 0 : pnfName.hashCode());
+ result = prime * result + ((pnfType == null) ? 0 : pnfType.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ Pnf other = (Pnf) obj;
+ if (pnfName == null) {
+ if (other.pnfName != null) {
+ return false;
+ }
+ } else if (!pnfName.equals(other.pnfName)) {
+ return false;
+ }
+ return pnfType == other.pnfType;
+ }
+}
diff --git a/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/PnfInstance.java b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/PnfInstance.java
new file mode 100644
index 000000000..1a9d75efa
--- /dev/null
+++ b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/PnfInstance.java
@@ -0,0 +1,138 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * aai
+ * ================================================================================
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.aai;
+
+import java.io.Serializable;
+
+public class PnfInstance implements Serializable {
+
+ private static final long serialVersionUID = -3694152433472165034L;
+
+ private String pnfName;
+ private String pnfInstanceName;
+ private PnfType pnfType;
+ private String pnfSerial;
+
+ public PnfInstance() {
+
+ }
+
+ /**
+ * Create an instance from a given instance.
+ *
+ * @param instance the instance
+ */
+ public PnfInstance(PnfInstance instance) {
+ if (instance == null) {
+ return;
+ }
+ this.pnfName = instance.pnfName;
+ this.pnfInstanceName = instance.pnfInstanceName;
+ this.pnfType = instance.pnfType;
+ this.pnfSerial = instance.pnfSerial;
+ }
+
+ public String getPnfName() {
+ return pnfName;
+ }
+
+ public void setPnfName(String pnfName) {
+ this.pnfName = pnfName;
+ }
+
+ public String getPnfInstanceName() {
+ return pnfInstanceName;
+ }
+
+ public void setPnfInstanceName(String pnfInstanceName) {
+ this.pnfInstanceName = pnfInstanceName;
+ }
+
+ public PnfType getPnfType() {
+ return pnfType;
+ }
+
+ public void setPnfType(PnfType pnfType) {
+ this.pnfType = pnfType;
+ }
+
+ public String getPnfSerial() {
+ return pnfSerial;
+ }
+
+ public void setPnfSerial(String pnfSerial) {
+ this.pnfSerial = pnfSerial;
+ }
+
+ @Override
+ public String toString() {
+ return "PNFInstance [PNFName=" + pnfName + ", PNFInstanceName=" + pnfInstanceName + ", PNFType=" + pnfType
+ + ", PNFSerial=" + pnfSerial + "]";
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((pnfInstanceName == null) ? 0 : pnfInstanceName.hashCode());
+ result = prime * result + ((pnfName == null) ? 0 : pnfName.hashCode());
+ result = prime * result + ((pnfSerial == null) ? 0 : pnfSerial.hashCode());
+ result = prime * result + ((pnfType == null) ? 0 : pnfType.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ PnfInstance other = (PnfInstance) obj;
+ if (pnfInstanceName == null) {
+ if (other.pnfInstanceName != null) {
+ return false;
+ }
+ } else if (!pnfInstanceName.equals(other.pnfInstanceName)) {
+ return false;
+ }
+ if (pnfName == null) {
+ if (other.pnfName != null) {
+ return false;
+ }
+ } else if (!pnfName.equals(other.pnfName)) {
+ return false;
+ }
+ if (pnfSerial == null) {
+ if (other.pnfSerial != null) {
+ return false;
+ }
+ } else if (!pnfSerial.equals(other.pnfSerial)) {
+ return false;
+ }
+ return pnfType == other.pnfType;
+ }
+}
diff --git a/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/PnfType.java b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/PnfType.java
new file mode 100644
index 000000000..1e2484441
--- /dev/null
+++ b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/PnfType.java
@@ -0,0 +1,37 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * aai
+ * ================================================================================
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.aai;
+
+public enum PnfType {
+ ENODEB("eNodeB"), PSERVER("pserver");
+
+ private String type;
+
+ private PnfType(String type) {
+ this.type = type;
+ }
+
+ @Override
+ public String toString() {
+ return this.type;
+ }
+}
diff --git a/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/RelatedToProperty.java b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/RelatedToProperty.java
new file mode 100644
index 000000000..34f82e803
--- /dev/null
+++ b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/RelatedToProperty.java
@@ -0,0 +1,51 @@
+/*
+ * ============LICENSE_START=======================================================
+ * aai
+ * ================================================================================
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.aai;
+
+import com.google.gson.annotations.SerializedName;
+
+import java.io.Serializable;
+
+public class RelatedToProperty implements Serializable {
+ private static final long serialVersionUID = 5644372985092588638L;
+
+ @SerializedName("property-key")
+ private String propertyKey;
+ @SerializedName("property-value")
+ private String propertyValue;
+
+ public String getPropertyKey() {
+ return propertyKey;
+ }
+
+ public String getPropertyValue() {
+ return propertyValue;
+ }
+
+ public void setPropertyKey(String propertyKey) {
+ this.propertyKey = propertyKey;
+ }
+
+ public void setPropertyValue(String propertyValue) {
+ this.propertyValue = propertyValue;
+ }
+}
diff --git a/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/Relationship.java b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/Relationship.java
new file mode 100644
index 000000000..d9c55cc30
--- /dev/null
+++ b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/Relationship.java
@@ -0,0 +1,76 @@
+/*
+ * ============LICENSE_START=======================================================
+ * aai
+ * ================================================================================
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.aai;
+
+import com.google.gson.annotations.SerializedName;
+
+import java.io.Serializable;
+import java.util.LinkedList;
+import java.util.List;
+
+public class Relationship implements Serializable {
+ private static final long serialVersionUID = -68508443869003055L;
+
+ @SerializedName("related-to")
+ private String relatedTo;
+
+ @SerializedName("related-link")
+ private String relatedLink;
+
+ @SerializedName("relationship-data")
+ private List<RelationshipData> relationshipData = new LinkedList<>();
+
+ @SerializedName("related-to-property")
+ private List<RelatedToProperty> relatedToProperty = new LinkedList<>();
+
+ public String getRelatedTo() {
+ return relatedTo;
+ }
+
+ public String getRelatedLink() {
+ return relatedLink;
+ }
+
+ public List<RelationshipData> getRelationshipData() {
+ return relationshipData;
+ }
+
+ public List<RelatedToProperty> getRelatedToProperty() {
+ return relatedToProperty;
+ }
+
+ public void setRelatedTo(String relatedTo) {
+ this.relatedTo = relatedTo;
+ }
+
+ public void setRelatedLink(String relatedLink) {
+ this.relatedLink = relatedLink;
+ }
+
+ public void setRelationshipData(List<RelationshipData> relationshipData) {
+ this.relationshipData = relationshipData;
+ }
+
+ public void setRelatedToProperty(List<RelatedToProperty> relatedToProperty) {
+ this.relatedToProperty = relatedToProperty;
+ }
+}
diff --git a/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/RelationshipData.java b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/RelationshipData.java
new file mode 100644
index 000000000..fc6b65f6c
--- /dev/null
+++ b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/RelationshipData.java
@@ -0,0 +1,51 @@
+/*
+ * ============LICENSE_START=======================================================
+ * aai
+ * ================================================================================
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.aai;
+
+import com.google.gson.annotations.SerializedName;
+
+import java.io.Serializable;
+
+public class RelationshipData implements Serializable {
+ private static final long serialVersionUID = 550450041634939768L;
+
+ @SerializedName("relationship-key")
+ private String relationshipKey;
+ @SerializedName("relationship-value")
+ private String relationshipValue;
+
+ public String getRelationshipKey() {
+ return relationshipKey;
+ }
+
+ public String getRelationshipValue() {
+ return relationshipValue;
+ }
+
+ public void setRelationshipKey(String relationshipKey) {
+ this.relationshipKey = relationshipKey;
+ }
+
+ public void setRelationshipValue(String relationshipValue) {
+ this.relationshipValue = relationshipValue;
+ }
+}
diff --git a/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/RelationshipList.java b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/RelationshipList.java
new file mode 100644
index 000000000..0215e1601
--- /dev/null
+++ b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/RelationshipList.java
@@ -0,0 +1,45 @@
+/*
+ * ============LICENSE_START=======================================================
+ * aai
+ * ================================================================================
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.aai;
+
+import com.google.gson.annotations.SerializedName;
+
+import java.io.Serializable;
+import java.util.LinkedList;
+import java.util.List;
+
+public class RelationshipList implements Serializable {
+ private static final long serialVersionUID = 6115655704973981990L;
+
+ @SerializedName("relationship")
+ private List<Relationship> relationships = new LinkedList<>();
+
+ public List<Relationship> getRelationships() {
+ return relationships;
+ }
+
+ public void setRelationships(List<Relationship> relationships) {
+ this.relationships = relationships;
+ }
+
+
+}
diff --git a/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/util/AaiException.java b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/util/AaiException.java
new file mode 100644
index 000000000..ef7c017df
--- /dev/null
+++ b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/util/AaiException.java
@@ -0,0 +1,48 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * aai
+ * ================================================================================
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.aai.util;
+
+public class AaiException extends Exception {
+
+ private static final long serialVersionUID = 9220983727706207465L;
+
+ public AaiException() {
+ super();
+ }
+
+ public AaiException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
+ super(message, cause, enableSuppression, writableStackTrace);
+ }
+
+ public AaiException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public AaiException(String message) {
+ super(message);
+ }
+
+ public AaiException(Throwable cause) {
+ super(cause);
+ }
+
+}
diff --git a/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/util/Serialization.java b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/util/Serialization.java
new file mode 100644
index 000000000..0ca0bb033
--- /dev/null
+++ b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/util/Serialization.java
@@ -0,0 +1,34 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * aai
+ * ================================================================================
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.aai.util;
+
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+
+public final class Serialization {
+
+ public static final Gson gsonPretty = new GsonBuilder().disableHtmlEscaping().setPrettyPrinting()
+ .create();
+
+ private Serialization() {}
+
+}