aboutsummaryrefslogtreecommitdiffstats
path: root/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api
diff options
context:
space:
mode:
Diffstat (limited to 'prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api')
-rw-r--r--prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiGetServiceInstanceClient.java68
-rw-r--r--prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiHttpGetClient.java54
-rw-r--r--prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiHttpPatchClient.java65
-rw-r--r--prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiPnfResultModel.java208
-rw-r--r--prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiServiceInstanceResultModel.java211
-rw-r--r--prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api/ConsumerDmaapModel.java75
6 files changed, 494 insertions, 187 deletions
diff --git a/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiGetServiceInstanceClient.java b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiGetServiceInstanceClient.java
deleted file mode 100644
index c41bb906..00000000
--- a/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiGetServiceInstanceClient.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * DCAEGEN2-SERVICES-SDK
- * ================================================================================
- * Copyright (C) 2019 NOKIA Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.dcaegen2.services.prh.adapter.aai.api;
-
-import static org.onap.dcaegen2.services.prh.adapter.aai.main.AaiHttpClientFactory.createRequestDiagnosticContext;
-
-import io.vavr.collection.HashMap;
-import io.vavr.collection.Map;
-import org.apache.commons.text.StringSubstitutor;
-import org.onap.dcaegen2.services.prh.adapter.aai.main.AaiClientConfiguration;
-import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.HttpMethod;
-import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.HttpResponse;
-import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.ImmutableHttpRequest;
-import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.RxHttpClient;
-import reactor.core.publisher.Mono;
-
-public class AaiGetServiceInstanceClient implements
- AaiHttpClient<AaiServiceInstanceQueryModel, HttpResponse> {
-
- private static final String CUSTOMER = "customer";
- private static final String SERVICE_TYPE = "serviceType";
- private static final String SERVICE_INSTANCE_ID = "serviceInstanceId";
-
- private final RxHttpClient httpClient;
- private final AaiClientConfiguration configuration;
-
- public AaiGetServiceInstanceClient(final AaiClientConfiguration configuration,
- final RxHttpClient httpClient) {
- this.configuration = configuration;
- this.httpClient = httpClient;
- }
-
- @Override
- public Mono<HttpResponse> getAaiResponse(AaiServiceInstanceQueryModel aaiModel) {
- final Map<String, String> mapping = HashMap.of(
- CUSTOMER, aaiModel.customerId(),
- SERVICE_TYPE, aaiModel.serviceType(),
- SERVICE_INSTANCE_ID, aaiModel.serviceInstanceId());
-
- final StringSubstitutor substitutor = new StringSubstitutor(mapping.toJavaMap());
- final String endpoint = substitutor.replace(configuration.aaiServiceInstancePath());
-
- return httpClient.call(ImmutableHttpRequest.builder()
- .method(HttpMethod.GET)
- .url(configuration.baseUrl() + endpoint)
- .customHeaders(HashMap.ofAll(configuration.aaiHeaders()))
- .diagnosticContext(createRequestDiagnosticContext())
- .build());
- }
-}
diff --git a/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiHttpGetClient.java b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiHttpGetClient.java
deleted file mode 100644
index d50344ee..00000000
--- a/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiHttpGetClient.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * DCAEGEN2-SERVICES-SDK
- * ================================================================================
- * Copyright (C) 2018-2019 NOKIA Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.dcaegen2.services.prh.adapter.aai.api;
-
-import static org.onap.dcaegen2.services.prh.adapter.aai.main.AaiHttpClientFactory.createRequestDiagnosticContext;
-
-import io.vavr.collection.HashMap;
-import org.onap.dcaegen2.services.prh.adapter.aai.main.AaiClientConfiguration;
-import org.onap.dcaegen2.services.prh.model.ConsumerDmaapModel;
-import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.HttpMethod;
-import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.HttpResponse;
-import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.ImmutableHttpRequest;
-import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.RxHttpClient;
-import reactor.core.publisher.Mono;
-
-public final class AaiHttpGetClient implements AaiHttpClient<ConsumerDmaapModel, HttpResponse> {
-
- private final RxHttpClient httpClient;
- private final AaiClientConfiguration configuration;
-
-
- public AaiHttpGetClient(AaiClientConfiguration configuration, RxHttpClient httpClient) {
- this.configuration = configuration;
- this.httpClient = httpClient;
- }
-
- @Override
- public Mono<HttpResponse> getAaiResponse(ConsumerDmaapModel aaiModel) {
- return httpClient.call(ImmutableHttpRequest.builder()
- .method(HttpMethod.GET)
- .url(configuration.pnfUrl() + "/" + aaiModel.getCorrelationId())
- .customHeaders(HashMap.ofAll(configuration.aaiHeaders()))
- .diagnosticContext(createRequestDiagnosticContext())
- .build());
- }
-}
diff --git a/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiHttpPatchClient.java b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiHttpPatchClient.java
deleted file mode 100644
index ab1066aa..00000000
--- a/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiHttpPatchClient.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * DCAEGEN2-SERVICES-SDK
- * ================================================================================
- * Copyright (C) 2019 NOKIA Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.dcaegen2.services.prh.adapter.aai.api;
-
-import static org.onap.dcaegen2.services.prh.adapter.aai.main.AaiHttpClientFactory.createRequestDiagnosticContext;
-
-import io.vavr.collection.HashMap;
-import io.vavr.collection.Map;
-import org.onap.dcaegen2.services.prh.adapter.aai.main.AaiClientConfiguration;
-import org.onap.dcaegen2.services.prh.model.AaiJsonBodyBuilderImpl;
-import org.onap.dcaegen2.services.prh.model.ConsumerDmaapModel;
-import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.HttpMethod;
-import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.HttpResponse;
-import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.ImmutableHttpRequest;
-import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.RequestBody;
-import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.RxHttpClient;
-import reactor.core.publisher.Mono;
-
-public final class AaiHttpPatchClient implements AaiHttpClient<ConsumerDmaapModel, HttpResponse> {
-
- private final static Map<String, String> CONTENT_TYPE = HashMap.of("Content-Type", "application/merge-patch+json");
-
- private RxHttpClient httpClient;
- private final AaiClientConfiguration configuration;
- private final AaiJsonBodyBuilderImpl jsonBodyBuilder;
-
-
- public AaiHttpPatchClient(final AaiClientConfiguration configuration, AaiJsonBodyBuilderImpl jsonBodyBuilder,
- RxHttpClient httpClient) {
- this.configuration = configuration;
- this.jsonBodyBuilder = jsonBodyBuilder;
- this.httpClient = httpClient;
- }
-
- public Mono<HttpResponse> getAaiResponse(ConsumerDmaapModel aaiModel) {
- final Map<String, String> headers = CONTENT_TYPE.merge(HashMap.ofAll(configuration.aaiHeaders()));
- String jsonBody = jsonBodyBuilder.createJsonBody(aaiModel);
-
- return httpClient.call(ImmutableHttpRequest.builder()
- .url(configuration.pnfUrl() + "/" + aaiModel.getCorrelationId())
- .customHeaders(headers)
- .diagnosticContext(createRequestDiagnosticContext())
- .body(RequestBody.fromString(jsonBody))
- .method(HttpMethod.PATCH)
- .build());
- }
-}
diff --git a/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiPnfResultModel.java b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiPnfResultModel.java
new file mode 100644
index 00000000..cae63853
--- /dev/null
+++ b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiPnfResultModel.java
@@ -0,0 +1,208 @@
+/*
+ * ============LICENSE_START=======================================================
+ * PNF-REGISTRATION-HANDLER
+ * ================================================================================
+ * Copyright (C) 2018 NOKIA Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.dcaegen2.services.prh.adapter.aai.api;
+
+import com.google.gson.annotations.SerializedName;
+import org.immutables.gson.Gson;
+import org.immutables.value.Value;
+import org.onap.dcaegen2.services.prh.model.ImmutableRelationship;
+import org.onap.dcaegen2.services.prh.model.Relationship;
+import org.springframework.lang.Nullable;
+
+
+/**
+ * PNF represents a physical network function. typically equipment used in the D1 world. in 1607, this will be populated by SDN-C to represent a premises router that a uCPE connects to. But this can be used to represent any physical device that is not an AIC node or uCPE. ###### Related Nodes - TO complex( pnf LocatedIn complex, MANY2ONE) - TO instance-group( pnf MemberOf instance-group, MANY2MANY) - TO zone( pnf LocatedIn zone, MANY2ONE) - FROM configuration( configuration AppliesTo pnf, ONE2MANY) - FROM esr-thirdparty-sdnc( esr-thirdparty-sdnc AppliesTo pnf, ONE2MANY) - FROM generic-vnf( generic-vnf HostedOn pnf, MANY2MANY) - FROM lag-interface (CHILD of pnf, lag-interface BindsTo pnf, MANY2ONE)(1) - FROM logical-link( logical-link BridgedTo pnf, MANY2MANY) - FROM p-interface (CHILD of pnf, p-interface BindsTo pnf, MANY2ONE)(1) - FROM service-instance( service-instance ComposedOf pnf, ONE2MANY) -(1) IF this PNF node is deleted, this FROM node is DELETED also
+ */
+@Value.Immutable
+@Gson.TypeAdapters(fieldNamingStrategy = true)
+public interface AaiPnfResultModel {
+
+ /**
+ * unique name of Physical Network Function.
+ **/
+ @Nullable
+ @SerializedName("pnf-name")
+ String getPnfName();
+
+ /**
+ * name of Physical Network Function.
+ **/
+ @Nullable
+ @SerializedName("pnf-name2")
+ String getPnfName2();
+
+ /**
+ * URL to endpoint where AAI can get more details.
+ **/
+ @Nullable
+ @SerializedName("selflink")
+ String getSelflink();
+
+ /**
+ * source of name2
+ **/
+ @Nullable
+ @SerializedName("pnf-name2-source")
+ String getPnfName2Source();
+
+ /**
+ * id of pnf
+ **/
+ @Nullable
+ @SerializedName("pnf-id")
+ String getPnfId();
+
+ /**
+ * Equipment type. Source of truth should define valid values.
+ **/
+ @Nullable
+ @SerializedName("equip-type")
+ String getEquipType();
+
+ /**
+ * Equipment vendor. Source of truth should define valid values.
+ **/
+ @Nullable
+ @SerializedName("equip-vendor")
+ String getEquipVendor();
+
+ /**
+ * Equipment model. Source of truth should define valid values.
+ **/
+ @Nullable
+ @SerializedName("equip-model")
+ String getEquipModel();
+
+ /**
+ * identifier of managed by ATT or customer
+ **/
+ @Nullable
+ @SerializedName("management-option")
+ String getManagementOption();
+
+ /**
+ * ipv4-oam-address with new naming convention for IP addresses
+ **/
+ @Nullable
+ @SerializedName("ipaddress-v4-oam")
+ String getIpaddressV4Oam();
+
+ /**
+ * sw-version is the version of SW for the hosted application on the PNF.
+ **/
+ @Nullable
+ @SerializedName("sw-version")
+ String getSwVersion();
+
+ /**
+ * Used to indicate whether or not this object is in maintenance mode (maintenance mode &#x3D; true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.
+ **/
+ @Nullable
+ @SerializedName("in-maint")
+ Boolean isInMaint();
+
+ /**
+ * ID of the physical frame (relay rack) where pnf is installed.
+ **/
+ @Nullable
+ @SerializedName("frame-id")
+ String getFrameId();
+
+ /**
+ * Serial number of the device
+ **/
+ @Nullable
+ @SerializedName("serial-number")
+ String getSerialNumber();
+
+ /**
+ * IPV4 Loopback 0 address
+ **/
+ @Nullable
+ @SerializedName("ipaddress-v4-loopback-0")
+ String getIpaddressV4Loopback0();
+
+ /**
+ * IPV6 Loopback 0 address
+ **/
+ @Nullable
+ @SerializedName("ipaddress-v6-loopback-0")
+ String getIpaddressV6Loopback0();
+
+ /**
+ * IPV4 AIM address
+ **/
+ @Nullable
+ @SerializedName("ipaddress-v4-aim")
+ String getIpaddressV4Aim();
+
+ /**
+ * IPV6 AIM address
+ **/
+ @Nullable
+ @SerializedName("ipaddress-v6-aim")
+ String getIpaddressV6Aim();
+
+ /**
+ * IPV6 OAM address
+ **/
+ @Nullable
+ @SerializedName("ipaddress-v6-oam")
+ String getIpaddressV6Oam();
+
+ /**
+ * CANOPI&#39;s inventory status. Only set with values exactly as defined by CANOPI.
+ **/
+ @Nullable
+ @SerializedName("inv-status")
+ String getInvStatus();
+
+ /**
+ * Used for optimistic concurrency. Must be empty on createGson, valid on update and delete.
+ **/
+ @Nullable
+ @SerializedName("resource-version")
+ String getResourceVersion();
+
+ /**
+ * Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]
+ **/
+ @Nullable
+ @SerializedName("prov-status")
+ String getProvStatus();
+
+ /**
+ * Nf Role is the role performed by this instance in the network.
+ **/
+ @Nullable
+ @SerializedName("nf-role")
+ String getNfRole();
+
+ /**
+ * Get relationshipList
+ **/
+ @SerializedName("relationship-list")
+ @Value.Default
+ default Relationship getRelationshipList() {
+ return ImmutableRelationship.builder().build();
+ }
+}
+
diff --git a/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiServiceInstanceResultModel.java b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiServiceInstanceResultModel.java
new file mode 100644
index 00000000..f74c1a5a
--- /dev/null
+++ b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiServiceInstanceResultModel.java
@@ -0,0 +1,211 @@
+/*
+ * ============LICENSE_START=======================================================
+ * PNF-REGISTRATION-HANDLER
+ * ================================================================================
+ * Copyright (C) 2018 NOKIA Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.dcaegen2.services.prh.adapter.aai.api;
+
+import com.google.gson.annotations.SerializedName;
+import org.immutables.gson.Gson;
+import org.immutables.value.Value;
+import org.onap.dcaegen2.services.prh.model.ImmutableRelationship;
+import org.onap.dcaegen2.services.prh.model.Relationship;
+import org.springframework.lang.Nullable;
+
+@Value.Immutable
+@Gson.TypeAdapters(fieldNamingStrategy = true)
+public interface AaiServiceInstanceResultModel {
+
+ /**
+ * Uniquely identifies this instance of a service
+ **/
+ @Nullable
+ @SerializedName("service-instance-id")
+ String getServiceInstanceId();
+
+ /**
+ * This field will store a name assigned to the service-instance.
+ **/
+ @Nullable
+ @SerializedName("service-instance-name")
+ String getServiceInstanceName();
+
+ /**
+ * String capturing type of service.
+ **/
+ @Nullable
+ @SerializedName("service-type")
+ String getServiceType();
+
+ /**
+ * String capturing the service role.
+ **/
+ @Nullable
+ @SerializedName("service-role")
+ String getServiceRole();
+
+ /**
+ * This field will store the environment context assigned to the service-instance.
+ **/
+ @Nullable
+ @SerializedName("environment-context")
+ String getEnvironmentContext();
+
+ /**
+ * This field will store the workload context assigned to the service-instance.
+ **/
+ @Nullable
+ @SerializedName("workload-context")
+ String getWorkloadContext();
+
+ /**
+ * createGson time of Network Service.
+ **/
+ @Nullable
+ @SerializedName("created-at")
+ String getCreatedAt();
+
+ /**
+ * last update of Network Service.
+ **/
+ @Nullable
+ @SerializedName("updated-at")
+ String getUpdatedAt();
+
+ /**
+ * short description for service-instance.
+ **/
+ @Nullable
+ @SerializedName("description")
+ String getDescription();
+
+ /**
+ * the ASDC model id for this resource or service model.
+ **/
+ @Nullable
+ @SerializedName("model-invariant-id")
+ String getModelInvariantId();
+
+ /**
+ * the ASDC model version for this resource or service model.
+ **/
+ @Nullable
+ @SerializedName("model-version-id")
+ String getModelVersionId();
+
+ /**
+ * the ASDC model version for this resource or service model.
+ **/
+ @Nullable
+ @SerializedName("persona-model-version")
+ String getPersonaModelVersion();
+
+ /**
+ * the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget.
+ **/
+ @Nullable
+ @SerializedName("widget-model-id")
+ String getWidgetModelId();
+
+ /**
+ * the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget.
+ **/
+ @Nullable
+ @SerializedName("widget-model-version")
+ String getWidgetModelVersion();
+
+ /**
+ * Indicates the total bandwidth to be used for this service.
+ **/
+ @Nullable
+ @SerializedName("bandwidth-total")
+ String getBandwidthTotal();
+
+ /**
+ * indicates the upstream bandwidth this service will use on the WAN1 port of the physical device.
+ **/
+ @Nullable
+ @SerializedName("bandwidth-up-wan1")
+ String getBandwidthUpWan1();
+
+ /**
+ * indicates the downstream bandwidth this service will use on the WAN1 port of the physical device.
+ **/
+ @Nullable
+ @SerializedName("bandwidth-down-wan1")
+ String getBandwidthDownWan1();
+
+ /**
+ * indicates the upstream bandwidth this service will use on the WAN2 port of the physical device.
+ **/
+ @Nullable
+ @SerializedName("bandwidth-up-wan2")
+ String getBandwidthUpWan2();
+
+ /**
+ * indicates the downstream bandwidth this service will use on the WAN2 port of the physical device.
+ **/
+ @Nullable
+ @SerializedName("bandwidth-down-wan2")
+ String getBandwidthDownWan2();
+
+ /**
+ * URL customers will use to access the vHN Portal.
+ **/
+ @Nullable
+ @SerializedName("vhn-portal-url")
+ String getVhnPortalUrl();
+
+ /**
+ * An identifier that customers assign to the location where this service is being used.
+ **/
+ @Nullable
+ @SerializedName("service-instance-location-id")
+ String getServiceInstanceLocationId();
+
+ /**
+ * Used for optimistic concurrency. Must be empty on createGson, valid on update and delete.
+ **/
+ @Nullable
+ @SerializedName("resource-version")
+ String getResourceVersion();
+
+ /**
+ * Path to the controller object.
+ **/
+ @Nullable
+ @SerializedName("selflink")
+ String getSelflink();
+
+ /**
+ * Orchestration status of this service.
+ **/
+ @Nullable
+ @SerializedName("orchestration-status")
+ String getOrchestrationStatus();
+
+ /**
+ * Get relationshipList
+ **/
+ @SerializedName("relationship-list")
+ @Value.Default
+ default Relationship getRelationshipList() {
+ return ImmutableRelationship.builder().build();
+ }
+
+} \ No newline at end of file
diff --git a/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api/ConsumerDmaapModel.java b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api/ConsumerDmaapModel.java
new file mode 100644
index 00000000..4d417a5e
--- /dev/null
+++ b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/adapter/aai/api/ConsumerDmaapModel.java
@@ -0,0 +1,75 @@
+/*
+ * ============LICENSE_START=======================================================
+ * PNF-REGISTRATION-HANDLER
+ * ================================================================================
+ * Copyright (C) 2019 NOKIA Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.dcaegen2.services.prh.adapter.aai.api;
+
+import com.google.gson.JsonObject;
+import com.google.gson.annotations.SerializedName;
+import org.immutables.gson.Gson;
+import org.immutables.value.Value;
+import org.springframework.lang.Nullable;
+
+/**
+ * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 5/8/18
+ */
+
+@Value.Immutable
+@Gson.TypeAdapters(fieldNamingStrategy = true)
+public interface ConsumerDmaapModel {
+
+ @SerializedName(value = "correlationId", alternate = "correlationId")
+ String getCorrelationId();
+
+ @Nullable
+ @SerializedName(value = "ipaddress-v4-oam", alternate = "ipaddress-v4-oam")
+ String getIpv4();
+
+ @Nullable
+ @SerializedName(value = "ipaddress-v6-oam", alternate = "ipaddress-v6-oam")
+ String getIpv6();
+
+ @Nullable
+ @SerializedName(value = "serial-number", alternate = "serial-number")
+ String getSerialNumber();
+
+ @Nullable
+ @SerializedName(value = "equip-vendor", alternate = "equip-vendor")
+ String getEquipVendor();
+
+ @Nullable
+ @SerializedName(value = "equip-model", alternate = "equip-model")
+ String getEquipModel();
+
+ @Nullable
+ @SerializedName(value = "equip-type", alternate = "equip-type")
+ String getEquipType();
+
+ @Nullable
+ @SerializedName(value = "nf-role", alternate = "nf-role")
+ String getNfRole();
+
+ @Nullable
+ @SerializedName(value = "sw-version", alternate = "sw-version")
+ String getSwVersion();
+
+ @Nullable
+ @SerializedName(value = "additionalFields", alternate = "additionalFields")
+ JsonObject getAdditionalFields();
+}