summaryrefslogtreecommitdiffstats
path: root/sparkybe-onap-application
diff options
context:
space:
mode:
Diffstat (limited to 'sparkybe-onap-application')
-rw-r--r--sparkybe-onap-application/config/application.properties63
-rw-r--r--sparkybe-onap-application/config/logging/logback.xml4
-rw-r--r--sparkybe-onap-application/config/schemaIngest.properties57
-rw-r--r--sparkybe-onap-application/config/spring-beans/oxm-reader-bean.xml62
-rw-r--r--sparkybe-onap-application/config/spring-beans/sparky-oxm.xml2
-rw-r--r--sparkybe-onap-application/pom.xml23
-rw-r--r--sparkybe-onap-application/src/test/java/org/onap/aai/sparky/aggregatevnf/AggregateSummaryProcessorTest.java95
-rw-r--r--sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/Aggregation.java30
-rw-r--r--sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/AggregationFilter.java28
-rw-r--r--sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/AggregationResult.java29
-rw-r--r--sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/AggregationsResponse.java31
-rw-r--r--sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/Bucket.java28
-rw-r--r--sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/BucketResponse.java28
-rw-r--r--sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/FilterAggregationRequest.java29
-rw-r--r--sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/SearchResult.java27
-rw-r--r--sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/SearchServiceAggregationsResponse.java29
16 files changed, 503 insertions, 62 deletions
diff --git a/sparkybe-onap-application/config/application.properties b/sparkybe-onap-application/config/application.properties
index cdebe11..e96247c 100644
--- a/sparkybe-onap-application/config/application.properties
+++ b/sparkybe-onap-application/config/application.properties
@@ -1,3 +1,6 @@
+APP_HOME=.
+CONFIG_HOME=./config
+
#
# disable the default thyme leaf icon on web-pages
#
@@ -25,4 +28,62 @@ searchservice.truststore=tomcat_keystore
spring.mvc.favicon.enabled=false
-schema.ingest.file=${CONFIG_HOME}/schemaIngest.properties \ No newline at end of file
+schema.ingest.file=${CONFIG_HOME}/schemaIngest.properties
+
+# Properties for the SchemaLocationsBean
+# Files named aai_oxm_v*.xml are unpacked here:
+# Schema Version Related Attributes
+schema.uri.base.path=/aai
+# Lists all of the versions in the schema
+schema.version.list=v9,v10,v11,v12,v13,v14
+# Specifies from which version should the depth parameter to default to zero
+schema.version.depth.start=v10
+# Specifies from which version should the related link be displayed in response payload
+schema.version.related.link.start=v10
+# Specifies from which version should the client see only the uri excluding host info
+# Before this version server base will also be included
+schema.version.app.root.start=v11
+# Specifies from which version should the namespace be changed
+schema.version.namespace.change.start=v12
+# Specifies from which version should the client start seeing the edge label in payload
+schema.version.edge.label.start=v12
+# Specifies the version that the application should default to
+schema.version.api.default=v14
+
+# Schema Location Related Attributes
+schema.configuration.location=NA
+
+# New propterties required by the aai-common - aai-schema-ingest lib as of 1.3.0
+schema.configuration.location=N/A
+schema.nodes.location=${APP_HOME}/onap/oxm
+schema.edges.location=
+
+# Setting this values to ${oxm.apiVersion} only to ensure the value used exists (we don't use this properties in our application)
+# schema.version.depth.start=${oxm.apiVersion}
+# schema.version.related.link.start=${oxm.apiVersion}
+# schema.version.app.root.start=${oxm.apiVersion}
+# schema.version.namespace.change.start=${oxm.apiVersion}
+# schema.version.edge.label.start=${oxm.apiVersion}
+
+# Properties required by AAI Schema Service MS
+schema.translator.list=config
+schema.service.base.url=${oxm.schemaServiceBaseUrl}
+schema.service.nodes.endpoint=nodes?version=
+schema.service.edges.endpoint=edgerules?version=
+schema.service.versions.endpoint=versions
+schema.local=true
+schema.filename=mockrequests
+#Default rest client is the two-way-ssl
+#schema.service.client=two-way-ssl
+#Replace the below with the A&AI client key store
+schema.service.ssl.key-store=${oxm.schemaServiceKeystore}
+#Replace the below with the A&AI tomcat trust store
+schema.service.ssl.trust-store=${oxm.schemaServiceTruststore}
+schema.service.ssl.key-store-password=${oxm.schemaServiceKeystorePassword}
+schema.service.ssl.trust-store-password=${oxm.schemaServiceTruststorePassword}
+
+spring.application.name=sparky
+
+nodeDir=src/main/resources/schema/onap/oxm/
+edgeDir=src/main/resources/schema/onap/oxm
+schemaIngestPropLoc=src/main/resources/schema/onap/oxm \ No newline at end of file
diff --git a/sparkybe-onap-application/config/logging/logback.xml b/sparkybe-onap-application/config/logging/logback.xml
index 3d132b7..0838bda 100644
--- a/sparkybe-onap-application/config/logging/logback.xml
+++ b/sparkybe-onap-application/config/logging/logback.xml
@@ -164,8 +164,8 @@
<logger name="ch.qos.logback.classic" level="WARN" />
<logger name="ch.qos.logback.core" level="WARN" />
- <root>
- <appender-ref ref="asyncEELF" />
+ <root level="INFO">
+ <appender-ref ref="STDOUT" />
<!-- <appender-ref ref="asyncEELFDebug" /> -->
</root>
diff --git a/sparkybe-onap-application/config/schemaIngest.properties b/sparkybe-onap-application/config/schemaIngest.properties
index f88a7ef..e69de29 100644
--- a/sparkybe-onap-application/config/schemaIngest.properties
+++ b/sparkybe-onap-application/config/schemaIngest.properties
@@ -1,57 +0,0 @@
-# Properties for the SchemaLocationsBean
-# Files named aai_oxm_v*.xml are unpacked here:
-# Schema Version Related Attributes
-schema.uri.base.path=/aai
-# Lists all of the versions in the schema
-schema.version.list=v9,v10,v11,v12,v13,v14
-# Specifies from which version should the depth parameter to default to zero
-schema.version.depth.start=v10
-# Specifies from which version should the related link be displayed in response payload
-schema.version.related.link.start=v10
-# Specifies from which version should the client see only the uri excluding host info
-# Before this version server base will also be included
-schema.version.app.root.start=v11
-# Specifies from which version should the namespace be changed
-schema.version.namespace.change.start=v12
-# Specifies from which version should the client start seeing the edge label in payload
-schema.version.edge.label.start=v12
-# Specifies the version that the application should default to
-schema.version.api.default=v14
-
-# Schema Location Related Attributes
-schema.configuration.location=NA
-
-# New propterties required by the aai-common - aai-schema-ingest lib as of 1.3.0
-schema.configuration.location=N/A
-schema.nodes.location=${oxm.schemaNodeDir}
-schema.edges.location=
-# These versions need to exist if they are included in the list
-schema.version.list=${oxm.apiVersionList}
-# Decalares the oxm version to load
-schema.version.api.default=${oxm.apiVersion}
-
-# Setting this values to ${oxm.apiVersion} only to ensure the value used exists (we don't use this properties in our application)
-schema.version.depth.start=${oxm.apiVersion}
-schema.version.related.link.start=${oxm.apiVersion}
-schema.version.app.root.start=${oxm.apiVersion}
-schema.version.namespace.change.start=${oxm.apiVersion}
-schema.version.edge.label.start=${oxm.apiVersion}
-
-# Properties required by AAI Schema Service MS
-schema.translator.list=config
-schema.service.base.url=${oxm.schemaServiceBaseUrl}
-schema.service.nodes.endpoint=nodes?version=
-schema.service.edges.endpoint=edgerules?version=
-schema.service.versions.endpoint=versions
-schema.local=true
-schema.filename=mockrequests
-#Default rest client is the two-way-ssl
-#schema.service.client=two-way-ssl
-#Replace the below with the A&AI client key store
-schema.service.ssl.key-store=${oxm.schemaServiceKeystore}
-#Replace the below with the A&AI tomcat trust store
-schema.service.ssl.trust-store=${oxm.schemaServiceTruststore}
-schema.service.ssl.key-store-password=${oxm.schemaServiceKeystorePassword}
-schema.service.ssl.trust-store-password=${oxm.schemaServiceTruststorePassword}
-
-spring.application.name=sparky \ No newline at end of file
diff --git a/sparkybe-onap-application/config/spring-beans/oxm-reader-bean.xml b/sparkybe-onap-application/config/spring-beans/oxm-reader-bean.xml
new file mode 100644
index 0000000..74a291c
--- /dev/null
+++ b/sparkybe-onap-application/config/spring-beans/oxm-reader-bean.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:context="http://www.springframework.org/schema/context"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
+
+ <context:property-placeholder location="file:${schemaIngestPropLoc}" ignore-unresolvable="true" />
+
+ <bean id="filtersConfig" class="org.onap.aai.sparky.search.filters.config.FiltersConfig">
+
+ </bean>
+
+ <bean id="sparkyResourceLoader" class="org.onap.aai.sparky.config.SparkyResourceLoader">
+ <property name="configHomeEnvVar" value="${CONFIG_HOME}" />
+ </bean>
+
+ <bean id="crossEntityReferenceLookup"
+ class="org.onap.aai.sparky.config.oxm.CrossEntityReferenceLookup" />
+
+ <bean id="oxmEntityLookup" class="org.onap.aai.sparky.config.oxm.OxmEntityLookup" />
+
+
+ <bean id="suggestionEntityLookup" class="org.onap.aai.sparky.config.oxm.SuggestionEntityLookup">
+ <constructor-arg ref="filtersConfig" />
+ </bean>
+ <bean id="oxmModelProcessorSet" class="org.springframework.beans.factory.config.SetFactoryBean">
+ <property name="targetSetClass" value="java.util.HashSet" />
+ <property name="sourceSet">
+ <set>
+ <ref bean="oxmEntityLookup" />
+ </set>
+ </property>
+ </bean>
+
+ <bean id="schemaLocationsBean" class="org.onap.aai.setup.SchemaLocationsBean">
+ <!-- When running with AJSC these properties must be injected directly.
+ The reason for this is unknown. -->
+ <property name="nodeDirectory" value="${nodeDir}" />
+ <property name="edgeDirectory" value="${edgeDir}" />
+ </bean>
+
+ <bean id="schemaVersions" class="org.onap.aai.setup.SchemaVersions" />
+
+ <bean id="oxmConfigTranslator" class="org.onap.aai.setup.AAIConfigTranslator">
+ <constructor-arg ref="schemaLocationsBean" />
+ <constructor-arg ref="schemaVersions" />
+ </bean>
+
+ <bean id="nodeIngestor" class="org.onap.aai.nodes.NodeIngestor">
+ <constructor-arg ref="oxmConfigTranslator" />
+ </bean>
+
+
+ <bean id="oxmModelLoader" class="org.onap.aai.sparky.config.oxm.OxmModelLoader"
+ init-method="loadModel">
+ <!-- <constructor-arg name="apiVersionOverride" value="V11" /> -->
+ <constructor-arg ref="oxmModelProcessorSet" />
+ <constructor-arg ref="schemaVersions" />
+ </bean>
+
+</beans> \ No newline at end of file
diff --git a/sparkybe-onap-application/config/spring-beans/sparky-oxm.xml b/sparkybe-onap-application/config/spring-beans/sparky-oxm.xml
index a210d12..c182c98 100644
--- a/sparkybe-onap-application/config/spring-beans/sparky-oxm.xml
+++ b/sparkybe-onap-application/config/spring-beans/sparky-oxm.xml
@@ -39,7 +39,7 @@
class="org.onap.aai.sparky.search.registry.SearchProviderRegistry" />
<bean id="sparkyResourceLoader" class="org.onap.aai.sparky.config.SparkyResourceLoader">
- <property name="configHomeEnvVar" value="CONFIG_HOME" />
+ <property name="configHomeEnvVar" value="${CONFIG_HOME}" />
</bean>
<bean id="unifiedSearchProcessor" class="org.onap.aai.sparky.search.UnifiedSearchProcessor">
diff --git a/sparkybe-onap-application/pom.xml b/sparkybe-onap-application/pom.xml
index 3b0301b..1d7d3b0 100644
--- a/sparkybe-onap-application/pom.xml
+++ b/sparkybe-onap-application/pom.xml
@@ -37,6 +37,7 @@
<aai.docker.namespace>onap</aai.docker.namespace>
<aai.base.image>alpine</aai.base.image>
<aai.base.image.version>1.13.2</aai.base.image.version>
+ <jacoco.line.coverage.limit>0.10</jacoco.line.coverage.limit>
<!-- This will be used for the docker images as the default format of maven build has issues -->
<maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format>
</properties>
@@ -94,6 +95,11 @@
</dependency>
<dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-test</artifactId>
+ </dependency>
+
+ <dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-restlet</artifactId>
<exclusions>
@@ -287,6 +293,13 @@
</exclusions>
</dependency>
+ <dependency>
+ <groupId>org.projectlombok</groupId>
+ <artifactId>lombok</artifactId>
+ <version>1.18.30</version>
+ <scope>provided</scope>
+ </dependency>
+
<!-- Test dependencies -->
<dependency>
@@ -534,7 +547,7 @@
</execution>
<execution>
<id>unpack</id>
- <phase>prepare-package</phase>
+ <phase>initialize</phase>
<goals>
<goal>unpack</goal>
</goals>
@@ -548,6 +561,14 @@
<includes>/${shemaUnpackVersion}/oxm/</includes>
<outputDirectory>${aai.build.directory}</outputDirectory>
</artifactItem>
+ <artifactItem>
+ <groupId>org.onap.aai.schema-service</groupId>
+ <artifactId>aai-schema</artifactId>
+ <version>${version.aai-schema}</version>
+ <type>jar</type>
+ <outputDirectory>${project.basedir}/src/main/resources/schema/</outputDirectory>
+ <includes>**/oxm/**/*.xml</includes>
+ </artifactItem>
</artifactItems>
</configuration>
</execution>
diff --git a/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/aggregatevnf/AggregateSummaryProcessorTest.java b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/aggregatevnf/AggregateSummaryProcessorTest.java
new file mode 100644
index 0000000..f6a88aa
--- /dev/null
+++ b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/aggregatevnf/AggregateSummaryProcessorTest.java
@@ -0,0 +1,95 @@
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2024 Deutsche Telekom 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.aai.sparky.aggregatevnf;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.when;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.onap.aai.restclient.client.OperationResult;
+import org.onap.aai.sparky.entities.Aggregation;
+import org.onap.aai.sparky.entities.AggregationFilter;
+import org.onap.aai.sparky.entities.AggregationResult;
+import org.onap.aai.sparky.entities.AggregationsResponse;
+import org.onap.aai.sparky.entities.SearchServiceAggregationsResponse;
+import org.onap.aai.sparky.entities.Bucket;
+import org.onap.aai.sparky.entities.BucketResponse;
+import org.onap.aai.sparky.entities.FilterAggregationRequest;
+import org.onap.aai.sparky.entities.SearchResult;
+import org.onap.aai.sparky.search.SearchServiceAdapter;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.http.ResponseEntity;
+import org.springframework.test.context.ActiveProfiles;
+import org.springframework.test.context.junit4.SpringRunner;
+import org.springframework.web.client.RestClientException;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+@ActiveProfiles({"oxm-default","oxm-schema-dev", "camel","fe-dev"})
+@RunWith(SpringRunner.class)
+@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
+public class AggregateSummaryProcessorTest {
+
+ ObjectMapper objectMapper = new ObjectMapper();
+
+ @MockBean SearchServiceAdapter searchServiceAdapter;
+ @Mock OperationResult operationResult;
+
+ @Autowired
+ private TestRestTemplate restTemplate;
+
+ @Value("${schema.ingest.file}") String schemaIngestFileLocation;
+
+ @Test
+ public void someTest() throws RestClientException, JsonProcessingException {
+ when(searchServiceAdapter.doPost(Mockito.any(), Mockito.any())).thenReturn(operationResult);
+ when(operationResult.wasSuccessful()).thenReturn(true);
+
+ List<Aggregation> aggregationList = Arrays.asList(new Aggregation("someAggregation", Arrays.asList(new Bucket(1L,"someKey"))));
+ SearchServiceAggregationsResponse searchServiceAggregationsResponse = new SearchServiceAggregationsResponse(new SearchResult(1L), new AggregationResult(aggregationList), 1L);
+ when(operationResult.getResult()).thenReturn(objectMapper.writeValueAsString(searchServiceAggregationsResponse));
+
+ Map<String,String> params = new HashMap<String,String>();
+ AggregationFilter filter = new AggregationFilter("1","someOrchestrationStatus");
+ FilterAggregationRequest request = new FilterAggregationRequest(Arrays.asList(filter));
+
+ ResponseEntity<AggregationsResponse> response = restTemplate.postForEntity("/rest/search/filterAggregation", objectMapper.writeValueAsString(request), AggregationsResponse.class);
+ AggregationsResponse aggregationsResponse = response.getBody();
+ assertEquals(1L, aggregationsResponse.getTotal());
+ BucketResponse bucket = aggregationsResponse.getAggregations().get("someAggregation").get(0);
+ assertEquals("someKey", bucket.getKey());
+ assertEquals(0, bucket.getDocCount());
+
+ }
+}
diff --git a/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/Aggregation.java b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/Aggregation.java
new file mode 100644
index 0000000..2ad0b44
--- /dev/null
+++ b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/Aggregation.java
@@ -0,0 +1,30 @@
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2024 Deutsche Telekom 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.aai.sparky.entities;
+
+import java.util.List;
+
+import lombok.Value;
+
+@Value
+public class Aggregation {
+ String name;
+ List<Bucket> buckets;
+}
diff --git a/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/AggregationFilter.java b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/AggregationFilter.java
new file mode 100644
index 0000000..5d4ba6c
--- /dev/null
+++ b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/AggregationFilter.java
@@ -0,0 +1,28 @@
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2024 Deutsche Telekom 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.aai.sparky.entities;
+
+import lombok.Value;
+
+@Value
+public class AggregationFilter {
+ String filterId;
+ String filterValue;
+}
diff --git a/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/AggregationResult.java b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/AggregationResult.java
new file mode 100644
index 0000000..5f353ad
--- /dev/null
+++ b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/AggregationResult.java
@@ -0,0 +1,29 @@
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2024 Deutsche Telekom 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.aai.sparky.entities;
+
+import java.util.List;
+
+import lombok.Value;
+
+@Value
+public class AggregationResult {
+ List<Aggregation> aggregations;
+}
diff --git a/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/AggregationsResponse.java b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/AggregationsResponse.java
new file mode 100644
index 0000000..9675fff
--- /dev/null
+++ b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/AggregationsResponse.java
@@ -0,0 +1,31 @@
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2024 Deutsche Telekom 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.aai.sparky.entities;
+
+import java.util.List;
+import java.util.Map;
+
+import lombok.Data;
+
+@Data
+public class AggregationsResponse {
+ long total;
+ Map<String, List<BucketResponse>> aggregations;
+}
diff --git a/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/Bucket.java b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/Bucket.java
new file mode 100644
index 0000000..8dcf388
--- /dev/null
+++ b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/Bucket.java
@@ -0,0 +1,28 @@
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2024 Deutsche Telekom 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.aai.sparky.entities;
+
+import lombok.Value;
+
+@Value
+public class Bucket {
+ long count;
+ String key;
+}
diff --git a/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/BucketResponse.java b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/BucketResponse.java
new file mode 100644
index 0000000..ff07df5
--- /dev/null
+++ b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/BucketResponse.java
@@ -0,0 +1,28 @@
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2024 Deutsche Telekom 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.aai.sparky.entities;
+
+import lombok.Data;
+
+@Data
+public class BucketResponse {
+ long docCount;
+ String key;
+}
diff --git a/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/FilterAggregationRequest.java b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/FilterAggregationRequest.java
new file mode 100644
index 0000000..5733f8d
--- /dev/null
+++ b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/FilterAggregationRequest.java
@@ -0,0 +1,29 @@
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2024 Deutsche Telekom 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.aai.sparky.entities;
+
+import java.util.List;
+
+import lombok.Value;
+
+@Value
+public class FilterAggregationRequest {
+ List<AggregationFilter> filters;
+}
diff --git a/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/SearchResult.java b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/SearchResult.java
new file mode 100644
index 0000000..0e405b3
--- /dev/null
+++ b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/SearchResult.java
@@ -0,0 +1,27 @@
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2024 Deutsche Telekom 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.aai.sparky.entities;
+
+import lombok.Value;
+
+@Value
+public class SearchResult {
+ long totalHits;
+}
diff --git a/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/SearchServiceAggregationsResponse.java b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/SearchServiceAggregationsResponse.java
new file mode 100644
index 0000000..a25df4c
--- /dev/null
+++ b/sparkybe-onap-application/src/test/java/org/onap/aai/sparky/entities/SearchServiceAggregationsResponse.java
@@ -0,0 +1,29 @@
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2024 Deutsche Telekom 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.aai.sparky.entities;
+
+import lombok.Value;
+
+@Value
+public class SearchServiceAggregationsResponse {
+ SearchResult searchResult;
+ AggregationResult aggregationResult;
+ long totalHits;
+}