();
+ localVarQueryParams.putAll(apiClient.parameterToMultiValueMap(null, "remoteName", remoteName));
+
if (aiResourceGroup != null)
localVarHeaderParams.add("AI-Resource-Group", apiClient.parameterToString(aiResourceGroup));
@@ -219,6 +224,31 @@ public DataRepository getDataRepositoryById(
localVarReturnType);
}
+ /**
+ * List single DataRepository object.
+ *
+ * List data repository by id
+ *
+ *
200 - Successful Response
+ *
+ *
400 - The specification of the resource was incorrect
+ *
+ *
422 - There are validation issues with the data.
+ *
+ *
404 - The specification of the resource was incorrect
+ *
+ * @param aiResourceGroup Resource Group ID
+ * @param repositoryId Repository ID
+ * @return DataRepository
+ * @throws OpenApiRequestException if an error occurs while attempting to invoke the API
+ */
+ @Nonnull
+ public DataRepository getDataRepositoryById(
+ @Nonnull final String aiResourceGroup, @Nonnull final UUID repositoryId)
+ throws OpenApiRequestException {
+ return getDataRepositoryById(aiResourceGroup, repositoryId, null);
+ }
+
/**
* Retrieve relevant content
*
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/client/VectorApi.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/client/VectorApi.java
index 4647e2be3..7453ed569 100644
--- a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/client/VectorApi.java
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/client/VectorApi.java
@@ -11,6 +11,8 @@
import com.sap.ai.sdk.grounding.model.DocumentUpdateRequest;
import com.sap.ai.sdk.grounding.model.Documents;
import com.sap.ai.sdk.grounding.model.DocumentsListResponse;
+import com.sap.ai.sdk.grounding.model.MetadataResponse;
+import com.sap.ai.sdk.grounding.model.MetadataUpdates;
import com.sap.ai.sdk.grounding.model.TextSearchRequest;
import com.sap.ai.sdk.grounding.model.VectorSearchResults;
import com.sap.ai.sdk.grounding.model.VectorV1VectorEndpointsGetCollectionCreationStatus200Response;
@@ -1042,6 +1044,146 @@ public VectorSearchResults search(
localVarReturnType);
}
+ /**
+ * Patch chunks metadata
+ *
+ *
Allows to add, remove and modify the chunks metadata.
+ *
+ *
200 - Successful Response
+ *
+ *
400 - The specification of the resource was incorrect
+ *
+ *
404 - The specification of the resource was incorrect
+ *
+ *
422 - There are validation issues with the data.
+ *
+ * @param aiResourceGroup Resource Group ID
+ * @param metadataUpdates The value for the parameter metadataUpdates
+ * @return MetadataResponse
+ * @throws OpenApiRequestException if an error occurs while attempting to invoke the API
+ */
+ @Nonnull
+ public MetadataResponse updateChunksMetadata(
+ @Nonnull final String aiResourceGroup, @Nonnull final MetadataUpdates metadataUpdates)
+ throws OpenApiRequestException {
+ final Object localVarPostBody = metadataUpdates;
+
+ // verify the required parameter 'aiResourceGroup' is set
+ if (aiResourceGroup == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'aiResourceGroup' when calling updateChunksMetadata");
+ }
+
+ // verify the required parameter 'metadataUpdates' is set
+ if (metadataUpdates == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'metadataUpdates' when calling vectorV1VectorEndpointsUpdateChunksMetadata");
+ }
+
+ final String localVarPath =
+ UriComponentsBuilder.fromPath("/vector/chunks/metadata").build().toUriString();
+
+ final MultiValueMap localVarQueryParams =
+ new LinkedMultiValueMap();
+ final HttpHeaders localVarHeaderParams = new HttpHeaders();
+ final MultiValueMap localVarFormParams =
+ new LinkedMultiValueMap();
+
+ if (aiResourceGroup != null)
+ localVarHeaderParams.add("AI-Resource-Group", apiClient.parameterToString(aiResourceGroup));
+
+ final String[] localVarAccepts = {"application/json"};
+ final List localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);
+ final String[] localVarContentTypes = {"application/json"};
+ final MediaType localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);
+
+ final String[] localVarAuthNames = new String[] {};
+
+ final ParameterizedTypeReference localVarReturnType =
+ new ParameterizedTypeReference() {};
+ return apiClient.invokeAPI(
+ localVarPath,
+ HttpMethod.PATCH,
+ localVarQueryParams,
+ localVarPostBody,
+ localVarHeaderParams,
+ localVarFormParams,
+ localVarAccept,
+ localVarContentType,
+ localVarAuthNames,
+ localVarReturnType);
+ }
+
+ /**
+ * Patch collections metadata
+ *
+ * Allows to add, remove and modify the collections metadata.
+ *
+ *
200 - Successful Response
+ *
+ *
400 - The specification of the resource was incorrect
+ *
+ *
404 - The specification of the resource was incorrect
+ *
+ *
422 - There are validation issues with the data.
+ *
+ * @param aiResourceGroup Resource Group ID
+ * @param metadataUpdates The value for the parameter metadataUpdates
+ * @return MetadataResponse
+ * @throws OpenApiRequestException if an error occurs while attempting to invoke the API
+ */
+ @Nonnull
+ public MetadataResponse updateCollectionsMetadata(
+ @Nonnull final String aiResourceGroup, @Nonnull final MetadataUpdates metadataUpdates)
+ throws OpenApiRequestException {
+ final Object localVarPostBody = metadataUpdates;
+
+ // verify the required parameter 'aiResourceGroup' is set
+ if (aiResourceGroup == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'aiResourceGroup' when calling updateCollectionsMetadata");
+ }
+
+ // verify the required parameter 'metadataUpdates' is set
+ if (metadataUpdates == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'metadataUpdates' when calling vectorV1VectorEndpointsUpdateCollectionsMetadata");
+ }
+
+ final String localVarPath =
+ UriComponentsBuilder.fromPath("/vector/collections/metadata").build().toUriString();
+
+ final MultiValueMap localVarQueryParams =
+ new LinkedMultiValueMap();
+ final HttpHeaders localVarHeaderParams = new HttpHeaders();
+ final MultiValueMap localVarFormParams =
+ new LinkedMultiValueMap();
+
+ if (aiResourceGroup != null)
+ localVarHeaderParams.add("AI-Resource-Group", apiClient.parameterToString(aiResourceGroup));
+
+ final String[] localVarAccepts = {"application/json"};
+ final List localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);
+ final String[] localVarContentTypes = {"application/json"};
+ final MediaType localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);
+
+ final String[] localVarAuthNames = new String[] {};
+
+ final ParameterizedTypeReference localVarReturnType =
+ new ParameterizedTypeReference() {};
+ return apiClient.invokeAPI(
+ localVarPath,
+ HttpMethod.PATCH,
+ localVarQueryParams,
+ localVarPostBody,
+ localVarHeaderParams,
+ localVarFormParams,
+ localVarAccept,
+ localVarContentType,
+ localVarAuthNames,
+ localVarReturnType);
+ }
+
/**
* Upsert documents in collection
*
@@ -1125,4 +1267,74 @@ public DocumentsListResponse updateDocuments(
localVarAuthNames,
localVarReturnType);
}
+
+ /**
+ * Patch documents metadata
+ *
+ * Allows to add, remove and modify the documents metadata.
+ *
+ *
200 - Successful Response
+ *
+ *
400 - The specification of the resource was incorrect
+ *
+ *
404 - The specification of the resource was incorrect
+ *
+ *
422 - There are validation issues with the data.
+ *
+ * @param aiResourceGroup Resource Group ID
+ * @param metadataUpdates The value for the parameter metadataUpdates
+ * @return MetadataResponse
+ * @throws OpenApiRequestException if an error occurs while attempting to invoke the API
+ */
+ @Nonnull
+ public MetadataResponse updateDocumentsMetadata(
+ @Nonnull final String aiResourceGroup, @Nonnull final MetadataUpdates metadataUpdates)
+ throws OpenApiRequestException {
+ final Object localVarPostBody = metadataUpdates;
+
+ // verify the required parameter 'aiResourceGroup' is set
+ if (aiResourceGroup == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'aiResourceGroup' when calling updateDocumentsMetadata");
+ }
+
+ // verify the required parameter 'metadataUpdates' is set
+ if (metadataUpdates == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'metadataUpdates' when calling vectorV1VectorEndpointsUpdateDocumentsMetadata");
+ }
+
+ final String localVarPath =
+ UriComponentsBuilder.fromPath("/vector/documents/metadata").build().toUriString();
+
+ final MultiValueMap localVarQueryParams =
+ new LinkedMultiValueMap();
+ final HttpHeaders localVarHeaderParams = new HttpHeaders();
+ final MultiValueMap localVarFormParams =
+ new LinkedMultiValueMap();
+
+ if (aiResourceGroup != null)
+ localVarHeaderParams.add("AI-Resource-Group", apiClient.parameterToString(aiResourceGroup));
+
+ final String[] localVarAccepts = {"application/json"};
+ final List localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);
+ final String[] localVarContentTypes = {"application/json"};
+ final MediaType localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);
+
+ final String[] localVarAuthNames = new String[] {};
+
+ final ParameterizedTypeReference localVarReturnType =
+ new ParameterizedTypeReference() {};
+ return apiClient.invokeAPI(
+ localVarPath,
+ HttpMethod.PATCH,
+ localVarQueryParams,
+ localVarPostBody,
+ localVarHeaderParams,
+ localVarFormParams,
+ localVarAccept,
+ localVarContentType,
+ localVarAuthNames,
+ localVarReturnType);
+ }
}
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/BaseDocument.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/BaseDocument.java
index 2691195fe..d89ab92d1 100644
--- a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/BaseDocument.java
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/BaseDocument.java
@@ -32,7 +32,7 @@ public class BaseDocument
// CHECKSTYLE:ON
{
@JsonProperty("chunks")
- private List chunks = new ArrayList<>();
+ private List chunks = new ArrayList<>();
@JsonProperty("metadata")
private List metadata = new ArrayList<>();
@@ -50,7 +50,7 @@ protected BaseDocument() {}
* @return The same instance of this {@link BaseDocument} class
*/
@Nonnull
- public BaseDocument chunks(@Nonnull final List chunks) {
+ public BaseDocument chunks(@Nonnull final List chunks) {
this.chunks = chunks;
return this;
}
@@ -62,7 +62,7 @@ public BaseDocument chunks(@Nonnull final List chunks) {
* @return The same instance of type {@link BaseDocument}
*/
@Nonnull
- public BaseDocument addChunksItem(@Nonnull final TextOnlyBaseChunk chunksItem) {
+ public BaseDocument addChunksItem(@Nonnull final TextOnlyBaseChunkCreate chunksItem) {
if (this.chunks == null) {
this.chunks = new ArrayList<>();
}
@@ -76,7 +76,7 @@ public BaseDocument addChunksItem(@Nonnull final TextOnlyBaseChunk chunksItem) {
* @return chunks The chunks of this {@link BaseDocument} instance.
*/
@Nonnull
- public List getChunks() {
+ public List getChunks() {
return chunks;
}
@@ -85,7 +85,7 @@ public List getChunks() {
*
* @param chunks The chunks of this {@link BaseDocument}
*/
- public void setChunks(@Nonnull final List chunks) {
+ public void setChunks(@Nonnull final List chunks) {
this.chunks = chunks;
}
@@ -96,7 +96,7 @@ public void setChunks(@Nonnull final List chunks) {
* @return The same instance of this {@link BaseDocument} class
*/
@Nonnull
- public BaseDocument metadata(@Nonnull final List metadata) {
+ public BaseDocument metadata(@Nullable final List metadata) {
this.metadata = metadata;
return this;
}
@@ -131,7 +131,7 @@ public List getMetadata() {
*
* @param metadata The metadata of this {@link BaseDocument}
*/
- public void setMetadata(@Nonnull final List metadata) {
+ public void setMetadata(@Nullable final List metadata) {
this.metadata = metadata;
}
@@ -238,7 +238,7 @@ private String toIndentedString(final java.lang.Object o) {
* with all required arguments.
*/
public static Builder create() {
- return (chunks) -> (metadata) -> new BaseDocument().chunks(chunks).metadata(metadata);
+ return (chunks) -> new BaseDocument().chunks(chunks);
}
/** Builder helper class. */
@@ -247,39 +247,18 @@ public interface Builder {
* Set the chunks of this {@link BaseDocument} instance.
*
* @param chunks The chunks of this {@link BaseDocument}
- * @return The BaseDocument builder.
+ * @return The BaseDocument instance.
*/
- Builder1 chunks(@Nonnull final List chunks);
+ BaseDocument chunks(@Nonnull final List chunks);
/**
* Set the chunks of this {@link BaseDocument} instance.
*
* @param chunks The chunks of this {@link BaseDocument}
- * @return The BaseDocument builder.
- */
- default Builder1 chunks(@Nonnull final TextOnlyBaseChunk... chunks) {
- return chunks(Arrays.asList(chunks));
- }
- }
-
- /** Builder helper class. */
- public interface Builder1 {
- /**
- * Set the metadata of this {@link BaseDocument} instance.
- *
- * @param metadata The metadata of this {@link BaseDocument}
* @return The BaseDocument instance.
*/
- BaseDocument metadata(@Nonnull final List metadata);
-
- /**
- * Set the metadata of this {@link BaseDocument} instance.
- *
- * @param metadata The metadata of this {@link BaseDocument}
- * @return The BaseDocument instance.
- */
- default BaseDocument metadata(@Nonnull final VectorDocumentKeyValueListPair... metadata) {
- return metadata(Arrays.asList(metadata));
+ default BaseDocument chunks(@Nonnull final TextOnlyBaseChunkCreate... chunks) {
+ return chunks(Arrays.asList(chunks));
}
}
}
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/BinaryBooleanFilter.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/BinaryBooleanFilter.java
new file mode 100644
index 000000000..f1fa41df4
--- /dev/null
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/BinaryBooleanFilter.java
@@ -0,0 +1,341 @@
+/*
+ * Grounding
+ * Grounding is a service designed to handle data-related tasks, such as grounding and retrieval, using vector databases. It provides specialized data retrieval through these databases, grounding the retrieval process with your own external and context-relevant data. Grounding combines generative AI capabilities with the ability to use real-time, precise data to improve decision-making and business operations for specific AI-driven business solutions.
+ *
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.sap.ai.sdk.grounding.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonValue;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.Objects;
+import java.util.Set;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+/** BinaryBooleanFilter */
+// CHECKSTYLE:OFF
+public class BinaryBooleanFilter
+// CHECKSTYLE:ON
+{
+ /** Boolean operator for combining filter conditions */
+ public enum OperatorEnum {
+ /** The AND option of this BinaryBooleanFilter */
+ AND("and"),
+
+ /** The OR option of this BinaryBooleanFilter */
+ OR("or"),
+
+ /** The UNKNOWN_DEFAULT_OPEN_API option of this BinaryBooleanFilter */
+ UNKNOWN_DEFAULT_OPEN_API("unknown_default_open_api");
+
+ private String value;
+
+ OperatorEnum(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Get the value of the enum
+ *
+ * @return The enum value
+ */
+ @JsonValue
+ @Nonnull
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * Get the String value of the enum value.
+ *
+ * @return The enum value as String
+ */
+ @Override
+ @Nonnull
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ /**
+ * Get the enum value from a String value
+ *
+ * @param value The String value
+ * @return The enum value of type BinaryBooleanFilter
+ */
+ @JsonCreator
+ @Nonnull
+ public static OperatorEnum fromValue(@Nonnull final String value) {
+ for (OperatorEnum b : OperatorEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ return UNKNOWN_DEFAULT_OPEN_API;
+ }
+ }
+
+ @JsonProperty("operator")
+ private OperatorEnum operator;
+
+ @JsonProperty("left")
+ private Left1 left;
+
+ @JsonProperty("right")
+ private Right1 right;
+
+ @JsonAnySetter @JsonAnyGetter
+ private final Map cloudSdkCustomFields = new LinkedHashMap<>();
+
+ /** Default constructor for BinaryBooleanFilter. */
+ protected BinaryBooleanFilter() {}
+
+ /**
+ * Set the operator of this {@link BinaryBooleanFilter} instance and return the same instance.
+ *
+ * @param operator Boolean operator for combining filter conditions
+ * @return The same instance of this {@link BinaryBooleanFilter} class
+ */
+ @Nonnull
+ public BinaryBooleanFilter operator(@Nonnull final OperatorEnum operator) {
+ this.operator = operator;
+ return this;
+ }
+
+ /**
+ * Boolean operator for combining filter conditions
+ *
+ * @return operator The operator of this {@link BinaryBooleanFilter} instance.
+ */
+ @Nonnull
+ public OperatorEnum getOperator() {
+ return operator;
+ }
+
+ /**
+ * Set the operator of this {@link BinaryBooleanFilter} instance.
+ *
+ * @param operator Boolean operator for combining filter conditions
+ */
+ public void setOperator(@Nonnull final OperatorEnum operator) {
+ this.operator = operator;
+ }
+
+ /**
+ * Set the left of this {@link BinaryBooleanFilter} instance and return the same instance.
+ *
+ * @param left The left of this {@link BinaryBooleanFilter}
+ * @return The same instance of this {@link BinaryBooleanFilter} class
+ */
+ @Nonnull
+ public BinaryBooleanFilter left(@Nonnull final Left1 left) {
+ this.left = left;
+ return this;
+ }
+
+ /**
+ * Get left
+ *
+ * @return left The left of this {@link BinaryBooleanFilter} instance.
+ */
+ @Nonnull
+ public Left1 getLeft() {
+ return left;
+ }
+
+ /**
+ * Set the left of this {@link BinaryBooleanFilter} instance.
+ *
+ * @param left The left of this {@link BinaryBooleanFilter}
+ */
+ public void setLeft(@Nonnull final Left1 left) {
+ this.left = left;
+ }
+
+ /**
+ * Set the right of this {@link BinaryBooleanFilter} instance and return the same instance.
+ *
+ * @param right The right of this {@link BinaryBooleanFilter}
+ * @return The same instance of this {@link BinaryBooleanFilter} class
+ */
+ @Nonnull
+ public BinaryBooleanFilter right(@Nonnull final Right1 right) {
+ this.right = right;
+ return this;
+ }
+
+ /**
+ * Get right
+ *
+ * @return right The right of this {@link BinaryBooleanFilter} instance.
+ */
+ @Nonnull
+ public Right1 getRight() {
+ return right;
+ }
+
+ /**
+ * Set the right of this {@link BinaryBooleanFilter} instance.
+ *
+ * @param right The right of this {@link BinaryBooleanFilter}
+ */
+ public void setRight(@Nonnull final Right1 right) {
+ this.right = right;
+ }
+
+ /**
+ * Get the names of the unrecognizable properties of the {@link BinaryBooleanFilter}.
+ *
+ * @return The set of properties names
+ */
+ @JsonIgnore
+ @Nonnull
+ public Set getCustomFieldNames() {
+ return cloudSdkCustomFields.keySet();
+ }
+
+ /**
+ * Get the value of an unrecognizable property of this {@link BinaryBooleanFilter} instance.
+ *
+ * @deprecated Use {@link #toMap()} instead.
+ * @param name The name of the property
+ * @return The value of the property
+ * @throws NoSuchElementException If no property with the given name could be found.
+ */
+ @Nullable
+ @Deprecated
+ public Object getCustomField(@Nonnull final String name) throws NoSuchElementException {
+ if (!cloudSdkCustomFields.containsKey(name)) {
+ throw new NoSuchElementException(
+ "BinaryBooleanFilter has no field with name '" + name + "'.");
+ }
+ return cloudSdkCustomFields.get(name);
+ }
+
+ /**
+ * Get the value of all properties of this {@link BinaryBooleanFilter} instance including
+ * unrecognized properties.
+ *
+ * @return The map of all properties
+ */
+ @JsonIgnore
+ @Nonnull
+ public Map toMap() {
+ final Map declaredFields = new LinkedHashMap<>(cloudSdkCustomFields);
+ if (operator != null) declaredFields.put("operator", operator);
+ if (left != null) declaredFields.put("left", left);
+ if (right != null) declaredFields.put("right", right);
+ return declaredFields;
+ }
+
+ /**
+ * Set an unrecognizable property of this {@link BinaryBooleanFilter} instance. If the map
+ * previously contained a mapping for the key, the old value is replaced by the specified value.
+ *
+ * @param customFieldName The name of the property
+ * @param customFieldValue The value of the property
+ */
+ @JsonIgnore
+ public void setCustomField(@Nonnull String customFieldName, @Nullable Object customFieldValue) {
+ cloudSdkCustomFields.put(customFieldName, customFieldValue);
+ }
+
+ @Override
+ public boolean equals(@Nullable final java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ final BinaryBooleanFilter binaryBooleanFilter = (BinaryBooleanFilter) o;
+ return Objects.equals(this.cloudSdkCustomFields, binaryBooleanFilter.cloudSdkCustomFields)
+ && Objects.equals(this.operator, binaryBooleanFilter.operator)
+ && Objects.equals(this.left, binaryBooleanFilter.left)
+ && Objects.equals(this.right, binaryBooleanFilter.right);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(operator, left, right, cloudSdkCustomFields);
+ }
+
+ @Override
+ @Nonnull
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("class BinaryBooleanFilter {\n");
+ sb.append(" operator: ").append(toIndentedString(operator)).append("\n");
+ sb.append(" left: ").append(toIndentedString(left)).append("\n");
+ sb.append(" right: ").append(toIndentedString(right)).append("\n");
+ cloudSdkCustomFields.forEach(
+ (k, v) ->
+ sb.append(" ").append(k).append(": ").append(toIndentedString(v)).append("\n"));
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(final java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+ /**
+ * Create a type-safe, fluent-api builder object to construct a new {@link BinaryBooleanFilter}
+ * instance with all required arguments.
+ */
+ public static Builder create() {
+ return (operator) ->
+ (left) -> (right) -> new BinaryBooleanFilter().operator(operator).left(left).right(right);
+ }
+
+ /** Builder helper class. */
+ public interface Builder {
+ /**
+ * Set the operator of this {@link BinaryBooleanFilter} instance.
+ *
+ * @param operator Boolean operator for combining filter conditions
+ * @return The BinaryBooleanFilter builder.
+ */
+ Builder1 operator(@Nonnull final OperatorEnum operator);
+ }
+
+ /** Builder helper class. */
+ public interface Builder1 {
+ /**
+ * Set the left of this {@link BinaryBooleanFilter} instance.
+ *
+ * @param left The left of this {@link BinaryBooleanFilter}
+ * @return The BinaryBooleanFilter builder.
+ */
+ Builder2 left(@Nonnull final Left1 left);
+ }
+
+ /** Builder helper class. */
+ public interface Builder2 {
+ /**
+ * Set the right of this {@link BinaryBooleanFilter} instance.
+ *
+ * @param right The right of this {@link BinaryBooleanFilter}
+ * @return The BinaryBooleanFilter instance.
+ */
+ BinaryBooleanFilter right(@Nonnull final Right1 right);
+ }
+}
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/BoostingScoreComputationStrategy.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/BoostingScoreComputationStrategy.java
new file mode 100644
index 000000000..c9d66eec4
--- /dev/null
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/BoostingScoreComputationStrategy.java
@@ -0,0 +1,64 @@
+/*
+ * Grounding
+ * Grounding is a service designed to handle data-related tasks, such as grounding and retrieval, using vector databases. It provides specialized data retrieval through these databases, grounding the retrieval process with your own external and context-relevant data. Grounding combines generative AI capabilities with the ability to use real-time, precise data to improve decision-making and business operations for specific AI-driven business solutions.
+ *
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.sap.ai.sdk.grounding.model;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import javax.annotation.Nonnull;
+
+/** Gets or Sets BoostingScoreComputationStrategy */
+public enum BoostingScoreComputationStrategy {
+ MATCH_COUNT("match_count"),
+
+ EMBEDDING("embedding"),
+
+ UNKNOWN_DEFAULT_OPEN_API("unknown_default_open_api");
+
+ private final String value;
+
+ BoostingScoreComputationStrategy(String value) {
+ this.value = value;
+ }
+
+ /**
+ * @return The enum value.
+ */
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * @return The String representation of the enum value.
+ */
+ @Override
+ @Nonnull
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ /**
+ * Converts the given value to its enum representation.
+ *
+ * @param value The input value.
+ * @return The enum representation of the given value.
+ */
+ @JsonCreator
+ public static BoostingScoreComputationStrategy fromValue(@Nonnull final String value) {
+ for (final BoostingScoreComputationStrategy b : BoostingScoreComputationStrategy.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ return UNKNOWN_DEFAULT_OPEN_API;
+ }
+}
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/BoostingScoringConfiguration.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/BoostingScoringConfiguration.java
new file mode 100644
index 000000000..df7a4c347
--- /dev/null
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/BoostingScoringConfiguration.java
@@ -0,0 +1,319 @@
+/*
+ * Grounding
+ * Grounding is a service designed to handle data-related tasks, such as grounding and retrieval, using vector databases. It provides specialized data retrieval through these databases, grounding the retrieval process with your own external and context-relevant data. Grounding combines generative AI capabilities with the ability to use real-time, precise data to improve decision-making and business operations for specific AI-driven business solutions.
+ *
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.sap.ai.sdk.grounding.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.Objects;
+import java.util.Set;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+/** BoostingScoringConfiguration */
+// CHECKSTYLE:OFF
+public class BoostingScoringConfiguration
+// CHECKSTYLE:ON
+{
+ @JsonProperty("enabled")
+ private Boolean enabled = true;
+
+ @JsonProperty("metadata")
+ private List metadata = new ArrayList<>();
+
+ @JsonProperty("weight")
+ private Integer weight = 1;
+
+ @JsonProperty("scoreComputationStrategy")
+ private BoostingScoreComputationStrategy scoreComputationStrategy;
+
+ @JsonAnySetter @JsonAnyGetter
+ private final Map cloudSdkCustomFields = new LinkedHashMap<>();
+
+ /** Default constructor for BoostingScoringConfiguration. */
+ protected BoostingScoringConfiguration() {}
+
+ /**
+ * Set the enabled of this {@link BoostingScoringConfiguration} instance and return the same
+ * instance.
+ *
+ * @param enabled Enable metadata-based boosting.
+ * @return The same instance of this {@link BoostingScoringConfiguration} class
+ */
+ @Nonnull
+ public BoostingScoringConfiguration enabled(@Nullable final Boolean enabled) {
+ this.enabled = enabled;
+ return this;
+ }
+
+ /**
+ * Enable metadata-based boosting.
+ *
+ * @return enabled The enabled of this {@link BoostingScoringConfiguration} instance.
+ */
+ @Nullable
+ public Boolean isEnabled() {
+ return enabled;
+ }
+
+ /**
+ * Set the enabled of this {@link BoostingScoringConfiguration} instance.
+ *
+ * @param enabled Enable metadata-based boosting.
+ */
+ public void setEnabled(@Nullable final Boolean enabled) {
+ this.enabled = enabled;
+ }
+
+ /**
+ * Set the metadata of this {@link BoostingScoringConfiguration} instance and return the same
+ * instance.
+ *
+ * @param metadata The metadata of this {@link BoostingScoringConfiguration}
+ * @return The same instance of this {@link BoostingScoringConfiguration} class
+ */
+ @Nonnull
+ public BoostingScoringConfiguration metadata(
+ @Nullable final List metadata) {
+ this.metadata = metadata;
+ return this;
+ }
+
+ /**
+ * Add one metadata instance to this {@link BoostingScoringConfiguration}.
+ *
+ * @param metadataItem The metadata that should be added
+ * @return The same instance of type {@link BoostingScoringConfiguration}
+ */
+ @Nonnull
+ public BoostingScoringConfiguration addMetadataItem(
+ @Nonnull final BoostingScoringConfigurationMetadataInner metadataItem) {
+ if (this.metadata == null) {
+ this.metadata = new ArrayList<>();
+ }
+ this.metadata.add(metadataItem);
+ return this;
+ }
+
+ /**
+ * Get metadata
+ *
+ * @return metadata The metadata of this {@link BoostingScoringConfiguration} instance.
+ */
+ @Nullable
+ public List getMetadata() {
+ return metadata;
+ }
+
+ /**
+ * Set the metadata of this {@link BoostingScoringConfiguration} instance.
+ *
+ * @param metadata The metadata of this {@link BoostingScoringConfiguration}
+ */
+ public void setMetadata(
+ @Nullable final List metadata) {
+ this.metadata = metadata;
+ }
+
+ /**
+ * Set the weight of this {@link BoostingScoringConfiguration} instance and return the same
+ * instance.
+ *
+ * @param weight Contribution to final score.
+ * @return The same instance of this {@link BoostingScoringConfiguration} class
+ */
+ @Nonnull
+ public BoostingScoringConfiguration weight(@Nullable final Integer weight) {
+ this.weight = weight;
+ return this;
+ }
+
+ /**
+ * Contribution to final score.
+ *
+ * @return weight The weight of this {@link BoostingScoringConfiguration} instance.
+ */
+ @Nullable
+ public Integer getWeight() {
+ return weight;
+ }
+
+ /**
+ * Set the weight of this {@link BoostingScoringConfiguration} instance.
+ *
+ * @param weight Contribution to final score.
+ */
+ public void setWeight(@Nullable final Integer weight) {
+ this.weight = weight;
+ }
+
+ /**
+ * Set the scoreComputationStrategy of this {@link BoostingScoringConfiguration} instance and
+ * return the same instance.
+ *
+ * @param scoreComputationStrategy The scoreComputationStrategy of this {@link
+ * BoostingScoringConfiguration}
+ * @return The same instance of this {@link BoostingScoringConfiguration} class
+ */
+ @Nonnull
+ public BoostingScoringConfiguration scoreComputationStrategy(
+ @Nullable final BoostingScoreComputationStrategy scoreComputationStrategy) {
+ this.scoreComputationStrategy = scoreComputationStrategy;
+ return this;
+ }
+
+ /**
+ * Get scoreComputationStrategy
+ *
+ * @return scoreComputationStrategy The scoreComputationStrategy of this {@link
+ * BoostingScoringConfiguration} instance.
+ */
+ @Nonnull
+ public BoostingScoreComputationStrategy getScoreComputationStrategy() {
+ return scoreComputationStrategy;
+ }
+
+ /**
+ * Set the scoreComputationStrategy of this {@link BoostingScoringConfiguration} instance.
+ *
+ * @param scoreComputationStrategy The scoreComputationStrategy of this {@link
+ * BoostingScoringConfiguration}
+ */
+ public void setScoreComputationStrategy(
+ @Nullable final BoostingScoreComputationStrategy scoreComputationStrategy) {
+ this.scoreComputationStrategy = scoreComputationStrategy;
+ }
+
+ /**
+ * Get the names of the unrecognizable properties of the {@link BoostingScoringConfiguration}.
+ *
+ * @return The set of properties names
+ */
+ @JsonIgnore
+ @Nonnull
+ public Set getCustomFieldNames() {
+ return cloudSdkCustomFields.keySet();
+ }
+
+ /**
+ * Get the value of an unrecognizable property of this {@link BoostingScoringConfiguration}
+ * instance.
+ *
+ * @deprecated Use {@link #toMap()} instead.
+ * @param name The name of the property
+ * @return The value of the property
+ * @throws NoSuchElementException If no property with the given name could be found.
+ */
+ @Nullable
+ @Deprecated
+ public Object getCustomField(@Nonnull final String name) throws NoSuchElementException {
+ if (!cloudSdkCustomFields.containsKey(name)) {
+ throw new NoSuchElementException(
+ "BoostingScoringConfiguration has no field with name '" + name + "'.");
+ }
+ return cloudSdkCustomFields.get(name);
+ }
+
+ /**
+ * Get the value of all properties of this {@link BoostingScoringConfiguration} instance including
+ * unrecognized properties.
+ *
+ * @return The map of all properties
+ */
+ @JsonIgnore
+ @Nonnull
+ public Map toMap() {
+ final Map declaredFields = new LinkedHashMap<>(cloudSdkCustomFields);
+ if (enabled != null) declaredFields.put("enabled", enabled);
+ if (metadata != null) declaredFields.put("metadata", metadata);
+ if (weight != null) declaredFields.put("weight", weight);
+ if (scoreComputationStrategy != null)
+ declaredFields.put("scoreComputationStrategy", scoreComputationStrategy);
+ return declaredFields;
+ }
+
+ /**
+ * Set an unrecognizable property of this {@link BoostingScoringConfiguration} instance. If the
+ * map previously contained a mapping for the key, the old value is replaced by the specified
+ * value.
+ *
+ * @param customFieldName The name of the property
+ * @param customFieldValue The value of the property
+ */
+ @JsonIgnore
+ public void setCustomField(@Nonnull String customFieldName, @Nullable Object customFieldValue) {
+ cloudSdkCustomFields.put(customFieldName, customFieldValue);
+ }
+
+ @Override
+ public boolean equals(@Nullable final java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ final BoostingScoringConfiguration boostingScoringConfiguration =
+ (BoostingScoringConfiguration) o;
+ return Objects.equals(
+ this.cloudSdkCustomFields, boostingScoringConfiguration.cloudSdkCustomFields)
+ && Objects.equals(this.enabled, boostingScoringConfiguration.enabled)
+ && Objects.equals(this.metadata, boostingScoringConfiguration.metadata)
+ && Objects.equals(this.weight, boostingScoringConfiguration.weight)
+ && Objects.equals(
+ this.scoreComputationStrategy, boostingScoringConfiguration.scoreComputationStrategy);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(enabled, metadata, weight, scoreComputationStrategy, cloudSdkCustomFields);
+ }
+
+ @Override
+ @Nonnull
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("class BoostingScoringConfiguration {\n");
+ sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n");
+ sb.append(" metadata: ").append(toIndentedString(metadata)).append("\n");
+ sb.append(" weight: ").append(toIndentedString(weight)).append("\n");
+ sb.append(" scoreComputationStrategy: ")
+ .append(toIndentedString(scoreComputationStrategy))
+ .append("\n");
+ cloudSdkCustomFields.forEach(
+ (k, v) ->
+ sb.append(" ").append(k).append(": ").append(toIndentedString(v)).append("\n"));
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(final java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+ /** Create a new {@link BoostingScoringConfiguration} instance. No arguments are required. */
+ public static BoostingScoringConfiguration create() {
+ return new BoostingScoringConfiguration();
+ }
+}
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/BoostingScoringConfigurationMetadataInner.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/BoostingScoringConfigurationMetadataInner.java
new file mode 100644
index 000000000..68663f699
--- /dev/null
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/BoostingScoringConfigurationMetadataInner.java
@@ -0,0 +1,424 @@
+/*
+ * Grounding
+ * Grounding is a service designed to handle data-related tasks, such as grounding and retrieval, using vector databases. It provides specialized data retrieval through these databases, grounding the retrieval process with your own external and context-relevant data. Grounding combines generative AI capabilities with the ability to use real-time, precise data to improve decision-making and business operations for specific AI-driven business solutions.
+ *
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.sap.ai.sdk.grounding.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonValue;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.Objects;
+import java.util.Set;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+/** BoostingScoringConfigurationMetadataInner */
+// CHECKSTYLE:OFF
+public class BoostingScoringConfigurationMetadataInner
+// CHECKSTYLE:ON
+{
+ @JsonProperty("key")
+ private String key;
+
+ @JsonProperty("value")
+ private List value = new ArrayList<>();
+
+ /** Gets or Sets scope */
+ public enum ScopeEnum {
+ /** The REPOSITORY option of this BoostingScoringConfigurationMetadataInner */
+ REPOSITORY("repository"),
+
+ /** The DOCUMENT option of this BoostingScoringConfigurationMetadataInner */
+ DOCUMENT("document"),
+
+ /** The CHUNK option of this BoostingScoringConfigurationMetadataInner */
+ CHUNK("chunk"),
+
+ /** The UNKNOWN_DEFAULT_OPEN_API option of this BoostingScoringConfigurationMetadataInner */
+ UNKNOWN_DEFAULT_OPEN_API("unknown_default_open_api");
+
+ private String value;
+
+ ScopeEnum(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Get the value of the enum
+ *
+ * @return The enum value
+ */
+ @JsonValue
+ @Nonnull
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * Get the String value of the enum value.
+ *
+ * @return The enum value as String
+ */
+ @Override
+ @Nonnull
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ /**
+ * Get the enum value from a String value
+ *
+ * @param value The String value
+ * @return The enum value of type BoostingScoringConfigurationMetadataInner
+ */
+ @JsonCreator
+ @Nonnull
+ public static ScopeEnum fromValue(@Nonnull final String value) {
+ for (ScopeEnum b : ScopeEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ return UNKNOWN_DEFAULT_OPEN_API;
+ }
+ }
+
+ @JsonProperty("scope")
+ private ScopeEnum scope = ScopeEnum.DOCUMENT;
+
+ @JsonProperty("weight")
+ private Integer weight;
+
+ @JsonAnySetter @JsonAnyGetter
+ private final Map cloudSdkCustomFields = new LinkedHashMap<>();
+
+ /** Default constructor for BoostingScoringConfigurationMetadataInner. */
+ protected BoostingScoringConfigurationMetadataInner() {}
+
+ /**
+ * Set the key of this {@link BoostingScoringConfigurationMetadataInner} instance and return the
+ * same instance.
+ *
+ * @param key The key of this {@link BoostingScoringConfigurationMetadataInner}
+ * @return The same instance of this {@link BoostingScoringConfigurationMetadataInner} class
+ */
+ @Nonnull
+ public BoostingScoringConfigurationMetadataInner key(@Nonnull final String key) {
+ this.key = key;
+ return this;
+ }
+
+ /**
+ * Get key
+ *
+ * @return key The key of this {@link BoostingScoringConfigurationMetadataInner} instance.
+ */
+ @Nonnull
+ public String getKey() {
+ return key;
+ }
+
+ /**
+ * Set the key of this {@link BoostingScoringConfigurationMetadataInner} instance.
+ *
+ * @param key The key of this {@link BoostingScoringConfigurationMetadataInner}
+ */
+ public void setKey(@Nonnull final String key) {
+ this.key = key;
+ }
+
+ /**
+ * Set the value of this {@link BoostingScoringConfigurationMetadataInner} instance and return the
+ * same instance.
+ *
+ * @param value The value of this {@link BoostingScoringConfigurationMetadataInner}
+ * @return The same instance of this {@link BoostingScoringConfigurationMetadataInner} class
+ */
+ @Nonnull
+ public BoostingScoringConfigurationMetadataInner value(@Nonnull final List value) {
+ this.value = value;
+ return this;
+ }
+
+ /**
+ * Add one value instance to this {@link BoostingScoringConfigurationMetadataInner}.
+ *
+ * @param valueItem The value that should be added
+ * @return The same instance of type {@link BoostingScoringConfigurationMetadataInner}
+ */
+ @Nonnull
+ public BoostingScoringConfigurationMetadataInner addValueItem(@Nonnull final String valueItem) {
+ if (this.value == null) {
+ this.value = new ArrayList<>();
+ }
+ this.value.add(valueItem);
+ return this;
+ }
+
+ /**
+ * Get value
+ *
+ * @return value The value of this {@link BoostingScoringConfigurationMetadataInner} instance.
+ */
+ @Nonnull
+ public List getValue() {
+ return value;
+ }
+
+ /**
+ * Set the value of this {@link BoostingScoringConfigurationMetadataInner} instance.
+ *
+ * @param value The value of this {@link BoostingScoringConfigurationMetadataInner}
+ */
+ public void setValue(@Nonnull final List value) {
+ this.value = value;
+ }
+
+ /**
+ * Set the scope of this {@link BoostingScoringConfigurationMetadataInner} instance and return the
+ * same instance.
+ *
+ * @param scope The scope of this {@link BoostingScoringConfigurationMetadataInner}
+ * @return The same instance of this {@link BoostingScoringConfigurationMetadataInner} class
+ */
+ @Nonnull
+ public BoostingScoringConfigurationMetadataInner scope(@Nullable final ScopeEnum scope) {
+ this.scope = scope;
+ return this;
+ }
+
+ /**
+ * Get scope
+ *
+ * @return scope The scope of this {@link BoostingScoringConfigurationMetadataInner} instance.
+ */
+ @Nonnull
+ public ScopeEnum getScope() {
+ return scope;
+ }
+
+ /**
+ * Set the scope of this {@link BoostingScoringConfigurationMetadataInner} instance.
+ *
+ * @param scope The scope of this {@link BoostingScoringConfigurationMetadataInner}
+ */
+ public void setScope(@Nullable final ScopeEnum scope) {
+ this.scope = scope;
+ }
+
+ /**
+ * Set the weight of this {@link BoostingScoringConfigurationMetadataInner} instance and return
+ * the same instance.
+ *
+ * @param weight The weight of this {@link BoostingScoringConfigurationMetadataInner}
+ * @return The same instance of this {@link BoostingScoringConfigurationMetadataInner} class
+ */
+ @Nonnull
+ public BoostingScoringConfigurationMetadataInner weight(@Nonnull final Integer weight) {
+ this.weight = weight;
+ return this;
+ }
+
+ /**
+ * Get weight
+ *
+ * @return weight The weight of this {@link BoostingScoringConfigurationMetadataInner} instance.
+ */
+ @Nonnull
+ public Integer getWeight() {
+ return weight;
+ }
+
+ /**
+ * Set the weight of this {@link BoostingScoringConfigurationMetadataInner} instance.
+ *
+ * @param weight The weight of this {@link BoostingScoringConfigurationMetadataInner}
+ */
+ public void setWeight(@Nonnull final Integer weight) {
+ this.weight = weight;
+ }
+
+ /**
+ * Get the names of the unrecognizable properties of the {@link
+ * BoostingScoringConfigurationMetadataInner}.
+ *
+ * @return The set of properties names
+ */
+ @JsonIgnore
+ @Nonnull
+ public Set getCustomFieldNames() {
+ return cloudSdkCustomFields.keySet();
+ }
+
+ /**
+ * Get the value of an unrecognizable property of this {@link
+ * BoostingScoringConfigurationMetadataInner} instance.
+ *
+ * @deprecated Use {@link #toMap()} instead.
+ * @param name The name of the property
+ * @return The value of the property
+ * @throws NoSuchElementException If no property with the given name could be found.
+ */
+ @Nullable
+ @Deprecated
+ public Object getCustomField(@Nonnull final String name) throws NoSuchElementException {
+ if (!cloudSdkCustomFields.containsKey(name)) {
+ throw new NoSuchElementException(
+ "BoostingScoringConfigurationMetadataInner has no field with name '" + name + "'.");
+ }
+ return cloudSdkCustomFields.get(name);
+ }
+
+ /**
+ * Get the value of all properties of this {@link BoostingScoringConfigurationMetadataInner}
+ * instance including unrecognized properties.
+ *
+ * @return The map of all properties
+ */
+ @JsonIgnore
+ @Nonnull
+ public Map toMap() {
+ final Map declaredFields = new LinkedHashMap<>(cloudSdkCustomFields);
+ if (key != null) declaredFields.put("key", key);
+ if (value != null) declaredFields.put("value", value);
+ if (scope != null) declaredFields.put("scope", scope);
+ if (weight != null) declaredFields.put("weight", weight);
+ return declaredFields;
+ }
+
+ /**
+ * Set an unrecognizable property of this {@link BoostingScoringConfigurationMetadataInner}
+ * instance. If the map previously contained a mapping for the key, the old value is replaced by
+ * the specified value.
+ *
+ * @param customFieldName The name of the property
+ * @param customFieldValue The value of the property
+ */
+ @JsonIgnore
+ public void setCustomField(@Nonnull String customFieldName, @Nullable Object customFieldValue) {
+ cloudSdkCustomFields.put(customFieldName, customFieldValue);
+ }
+
+ @Override
+ public boolean equals(@Nullable final java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ final BoostingScoringConfigurationMetadataInner boostingScoringConfigurationMetadataInner =
+ (BoostingScoringConfigurationMetadataInner) o;
+ return Objects.equals(
+ this.cloudSdkCustomFields,
+ boostingScoringConfigurationMetadataInner.cloudSdkCustomFields)
+ && Objects.equals(this.key, boostingScoringConfigurationMetadataInner.key)
+ && Objects.equals(this.value, boostingScoringConfigurationMetadataInner.value)
+ && Objects.equals(this.scope, boostingScoringConfigurationMetadataInner.scope)
+ && Objects.equals(this.weight, boostingScoringConfigurationMetadataInner.weight);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(key, value, scope, weight, cloudSdkCustomFields);
+ }
+
+ @Override
+ @Nonnull
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("class BoostingScoringConfigurationMetadataInner {\n");
+ sb.append(" key: ").append(toIndentedString(key)).append("\n");
+ sb.append(" value: ").append(toIndentedString(value)).append("\n");
+ sb.append(" scope: ").append(toIndentedString(scope)).append("\n");
+ sb.append(" weight: ").append(toIndentedString(weight)).append("\n");
+ cloudSdkCustomFields.forEach(
+ (k, v) ->
+ sb.append(" ").append(k).append(": ").append(toIndentedString(v)).append("\n"));
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(final java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+ /**
+ * Create a type-safe, fluent-api builder object to construct a new {@link
+ * BoostingScoringConfigurationMetadataInner} instance with all required arguments.
+ */
+ public static Builder create() {
+ return (key) ->
+ (value) ->
+ (weight) ->
+ new BoostingScoringConfigurationMetadataInner()
+ .key(key)
+ .value(value)
+ .weight(weight);
+ }
+
+ /** Builder helper class. */
+ public interface Builder {
+ /**
+ * Set the key of this {@link BoostingScoringConfigurationMetadataInner} instance.
+ *
+ * @param key The key of this {@link BoostingScoringConfigurationMetadataInner}
+ * @return The BoostingScoringConfigurationMetadataInner builder.
+ */
+ Builder1 key(@Nonnull final String key);
+ }
+
+ /** Builder helper class. */
+ public interface Builder1 {
+ /**
+ * Set the value of this {@link BoostingScoringConfigurationMetadataInner} instance.
+ *
+ * @param value The value of this {@link BoostingScoringConfigurationMetadataInner}
+ * @return The BoostingScoringConfigurationMetadataInner builder.
+ */
+ Builder2 value(@Nonnull final List value);
+
+ /**
+ * Set the value of this {@link BoostingScoringConfigurationMetadataInner} instance.
+ *
+ * @param value The value of this {@link BoostingScoringConfigurationMetadataInner}
+ * @return The BoostingScoringConfigurationMetadataInner builder.
+ */
+ default Builder2 value(@Nonnull final String... value) {
+ return value(Arrays.asList(value));
+ }
+ }
+
+ /** Builder helper class. */
+ public interface Builder2 {
+ /**
+ * Set the weight of this {@link BoostingScoringConfigurationMetadataInner} instance.
+ *
+ * @param weight The weight of this {@link BoostingScoringConfigurationMetadataInner}
+ * @return The BoostingScoringConfigurationMetadataInner instance.
+ */
+ BoostingScoringConfigurationMetadataInner weight(@Nonnull final Integer weight);
+ }
+}
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/CollectionPendingResponse.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/CollectionPendingResponse.java
index ed5259502..62aab46b3 100644
--- a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/CollectionPendingResponse.java
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/CollectionPendingResponse.java
@@ -30,11 +30,8 @@ public class CollectionPendingResponse
VectorV1VectorEndpointsGetCollectionDeletionStatus200Response
// CHECKSTYLE:ON
{
- @JsonProperty("Location")
- private String location;
-
- @JsonProperty("status")
- private String status;
+ @JsonProperty("monitorURL")
+ private String monitorURL;
@JsonAnySetter @JsonAnyGetter
private final Map cloudSdkCustomFields = new LinkedHashMap<>();
@@ -43,66 +40,35 @@ public class CollectionPendingResponse
protected CollectionPendingResponse() {}
/**
- * Set the location of this {@link CollectionPendingResponse} instance and return the same
+ * Set the monitorURL of this {@link CollectionPendingResponse} instance and return the same
* instance.
*
- * @param location The location of this {@link CollectionPendingResponse}
- * @return The same instance of this {@link CollectionPendingResponse} class
- */
- @Nonnull
- public CollectionPendingResponse location(@Nonnull final String location) {
- this.location = location;
- return this;
- }
-
- /**
- * Get location
- *
- * @return location The location of this {@link CollectionPendingResponse} instance.
- */
- @Nonnull
- public String getLocation() {
- return location;
- }
-
- /**
- * Set the location of this {@link CollectionPendingResponse} instance.
- *
- * @param location The location of this {@link CollectionPendingResponse}
- */
- public void setLocation(@Nonnull final String location) {
- this.location = location;
- }
-
- /**
- * Set the status of this {@link CollectionPendingResponse} instance and return the same instance.
- *
- * @param status The status of this {@link CollectionPendingResponse}
+ * @param monitorURL The monitorURL of this {@link CollectionPendingResponse}
* @return The same instance of this {@link CollectionPendingResponse} class
*/
@Nonnull
- public CollectionPendingResponse status(@Nonnull final String status) {
- this.status = status;
+ public CollectionPendingResponse monitorURL(@Nonnull final String monitorURL) {
+ this.monitorURL = monitorURL;
return this;
}
/**
- * Get status
+ * Get monitorURL
*
- * @return status The status of this {@link CollectionPendingResponse} instance.
+ * @return monitorURL The monitorURL of this {@link CollectionPendingResponse} instance.
*/
@Nonnull
- public String getStatus() {
- return status;
+ public String getMonitorURL() {
+ return monitorURL;
}
/**
- * Set the status of this {@link CollectionPendingResponse} instance.
+ * Set the monitorURL of this {@link CollectionPendingResponse} instance.
*
- * @param status The status of this {@link CollectionPendingResponse}
+ * @param monitorURL The monitorURL of this {@link CollectionPendingResponse}
*/
- public void setStatus(@Nonnull final String status) {
- this.status = status;
+ public void setMonitorURL(@Nonnull final String monitorURL) {
+ this.monitorURL = monitorURL;
}
/**
@@ -144,8 +110,7 @@ public Object getCustomField(@Nonnull final String name) throws NoSuchElementExc
@Nonnull
public Map toMap() {
final Map declaredFields = new LinkedHashMap<>(cloudSdkCustomFields);
- if (location != null) declaredFields.put("location", location);
- if (status != null) declaredFields.put("status", status);
+ if (monitorURL != null) declaredFields.put("monitorURL", monitorURL);
return declaredFields;
}
@@ -171,13 +136,12 @@ public boolean equals(@Nullable final java.lang.Object o) {
}
final CollectionPendingResponse collectionPendingResponse = (CollectionPendingResponse) o;
return Objects.equals(this.cloudSdkCustomFields, collectionPendingResponse.cloudSdkCustomFields)
- && Objects.equals(this.location, collectionPendingResponse.location)
- && Objects.equals(this.status, collectionPendingResponse.status);
+ && Objects.equals(this.monitorURL, collectionPendingResponse.monitorURL);
}
@Override
public int hashCode() {
- return Objects.hash(location, status, cloudSdkCustomFields);
+ return Objects.hash(monitorURL, cloudSdkCustomFields);
}
@Override
@@ -185,8 +149,7 @@ public int hashCode() {
public String toString() {
final StringBuilder sb = new StringBuilder();
sb.append("class CollectionPendingResponse {\n");
- sb.append(" location: ").append(toIndentedString(location)).append("\n");
- sb.append(" status: ").append(toIndentedString(status)).append("\n");
+ sb.append(" monitorURL: ").append(toIndentedString(monitorURL)).append("\n");
cloudSdkCustomFields.forEach(
(k, v) ->
sb.append(" ").append(k).append(": ").append(toIndentedString(v)).append("\n"));
@@ -209,29 +172,17 @@ private String toIndentedString(final java.lang.Object o) {
* CollectionPendingResponse} instance with all required arguments.
*/
public static Builder create() {
- return (location) ->
- (status) -> new CollectionPendingResponse().location(location).status(status);
+ return (monitorURL) -> new CollectionPendingResponse().monitorURL(monitorURL);
}
/** Builder helper class. */
public interface Builder {
/**
- * Set the location of this {@link CollectionPendingResponse} instance.
- *
- * @param location The location of this {@link CollectionPendingResponse}
- * @return The CollectionPendingResponse builder.
- */
- Builder1 location(@Nonnull final String location);
- }
-
- /** Builder helper class. */
- public interface Builder1 {
- /**
- * Set the status of this {@link CollectionPendingResponse} instance.
+ * Set the monitorURL of this {@link CollectionPendingResponse} instance.
*
- * @param status The status of this {@link CollectionPendingResponse}
+ * @param monitorURL The monitorURL of this {@link CollectionPendingResponse}
* @return The CollectionPendingResponse instance.
*/
- CollectionPendingResponse status(@Nonnull final String status);
+ CollectionPendingResponse monitorURL(@Nonnull final String monitorURL);
}
}
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/CollectionRequest.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/CollectionRequest.java
index b514ab2d4..592a846ac 100644
--- a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/CollectionRequest.java
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/CollectionRequest.java
@@ -177,7 +177,7 @@ public CollectionRequest id(@Nullable final UUID id) {
*
* @return id The id of this {@link CollectionRequest} instance.
*/
- @Nonnull
+ @Nullable
public UUID getId() {
return id;
}
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/DataRepository.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/DataRepository.java
index c1c195443..73ad708e8 100644
--- a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/DataRepository.java
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/DataRepository.java
@@ -40,6 +40,12 @@ public class DataRepository
@JsonProperty("metadata")
private List metadata = new ArrayList<>();
+ @JsonProperty("remoteGroundingName")
+ private String remoteGroundingName;
+
+ @JsonProperty("message")
+ private String message;
+
@JsonProperty("type")
private DataRepositoryType type;
@@ -160,6 +166,69 @@ public void setMetadata(@Nullable final List metadata
this.metadata = metadata;
}
+ /**
+ * Set the remoteGroundingName of this {@link DataRepository} instance and return the same
+ * instance.
+ *
+ * @param remoteGroundingName The remoteGroundingName of this {@link DataRepository}
+ * @return The same instance of this {@link DataRepository} class
+ */
+ @Nonnull
+ public DataRepository remoteGroundingName(@Nullable final String remoteGroundingName) {
+ this.remoteGroundingName = remoteGroundingName;
+ return this;
+ }
+
+ /**
+ * Get remoteGroundingName
+ *
+ * @return remoteGroundingName The remoteGroundingName of this {@link DataRepository} instance.
+ */
+ @Nullable
+ public String getRemoteGroundingName() {
+ return remoteGroundingName;
+ }
+
+ /**
+ * Set the remoteGroundingName of this {@link DataRepository} instance.
+ *
+ * @param remoteGroundingName The remoteGroundingName of this {@link DataRepository}
+ */
+ public void setRemoteGroundingName(@Nullable final String remoteGroundingName) {
+ this.remoteGroundingName = remoteGroundingName;
+ }
+
+ /**
+ * Set the message of this {@link DataRepository} instance and return the same instance.
+ *
+ * @param message The message of this {@link DataRepository}
+ * @return The same instance of this {@link DataRepository} class
+ */
+ @Nonnull
+ public DataRepository message(@Nullable final String message) {
+ this.message = message;
+ return this;
+ }
+
+ /**
+ * Get message
+ *
+ * @return message The message of this {@link DataRepository} instance.
+ */
+ @Nullable
+ public String getMessage() {
+ return message;
+ }
+
+ /**
+ * Set the message of this {@link DataRepository} instance.
+ *
+ * @param message The message of this {@link DataRepository}
+ */
+ public void setMessage(@Nullable final String message) {
+ this.message = message;
+ }
+
/**
* Set the type of this {@link DataRepository} instance and return the same instance.
*
@@ -167,7 +236,7 @@ public void setMetadata(@Nullable final List metadata
* @return The same instance of this {@link DataRepository} class
*/
@Nonnull
- public DataRepository type(@Nullable final DataRepositoryType type) {
+ public DataRepository type(@Nonnull final DataRepositoryType type) {
this.type = type;
return this;
}
@@ -177,7 +246,7 @@ public DataRepository type(@Nullable final DataRepositoryType type) {
*
* @return type The type of this {@link DataRepository} instance.
*/
- @Nullable
+ @Nonnull
public DataRepositoryType getType() {
return type;
}
@@ -187,7 +256,7 @@ public DataRepositoryType getType() {
*
* @param type The type of this {@link DataRepository}
*/
- public void setType(@Nullable final DataRepositoryType type) {
+ public void setType(@Nonnull final DataRepositoryType type) {
this.type = type;
}
@@ -232,6 +301,8 @@ public Map toMap() {
if (id != null) declaredFields.put("id", id);
if (title != null) declaredFields.put("title", title);
if (metadata != null) declaredFields.put("metadata", metadata);
+ if (remoteGroundingName != null) declaredFields.put("remoteGroundingName", remoteGroundingName);
+ if (message != null) declaredFields.put("message", message);
if (type != null) declaredFields.put("type", type);
return declaredFields;
}
@@ -261,12 +332,15 @@ public boolean equals(@Nullable final java.lang.Object o) {
&& Objects.equals(this.id, dataRepository.id)
&& Objects.equals(this.title, dataRepository.title)
&& Objects.equals(this.metadata, dataRepository.metadata)
+ && Objects.equals(this.remoteGroundingName, dataRepository.remoteGroundingName)
+ && Objects.equals(this.message, dataRepository.message)
&& Objects.equals(this.type, dataRepository.type);
}
@Override
public int hashCode() {
- return Objects.hash(id, title, metadata, type, cloudSdkCustomFields);
+ return Objects.hash(
+ id, title, metadata, remoteGroundingName, message, type, cloudSdkCustomFields);
}
@Override
@@ -277,6 +351,10 @@ public String toString() {
sb.append(" id: ").append(toIndentedString(id)).append("\n");
sb.append(" title: ").append(toIndentedString(title)).append("\n");
sb.append(" metadata: ").append(toIndentedString(metadata)).append("\n");
+ sb.append(" remoteGroundingName: ")
+ .append(toIndentedString(remoteGroundingName))
+ .append("\n");
+ sb.append(" message: ").append(toIndentedString(message)).append("\n");
sb.append(" type: ").append(toIndentedString(type)).append("\n");
cloudSdkCustomFields.forEach(
(k, v) ->
@@ -333,6 +411,6 @@ public interface Builder2 {
* @param type The type of this {@link DataRepository}
* @return The DataRepository instance.
*/
- DataRepository type(@Nullable final DataRepositoryType type);
+ DataRepository type(@Nonnull final DataRepositoryType type);
}
}
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/DataRepositorySearchResults.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/DataRepositorySearchResults.java
index 60e8049c7..a305466e8 100644
--- a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/DataRepositorySearchResults.java
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/DataRepositorySearchResults.java
@@ -32,7 +32,7 @@ public class DataRepositorySearchResults
// CHECKSTYLE:ON
{
@JsonProperty("results")
- private List results = new ArrayList<>();
+ private List results = new ArrayList<>();
@JsonAnySetter @JsonAnyGetter
private final Map cloudSdkCustomFields = new LinkedHashMap<>();
@@ -48,7 +48,7 @@ protected DataRepositorySearchResults() {}
* @return The same instance of this {@link DataRepositorySearchResults} class
*/
@Nonnull
- public DataRepositorySearchResults results(@Nonnull final List results) {
+ public DataRepositorySearchResults results(@Nonnull final List results) {
this.results = results;
return this;
}
@@ -60,7 +60,7 @@ public DataRepositorySearchResults results(@Nonnull final List re
* @return The same instance of type {@link DataRepositorySearchResults}
*/
@Nonnull
- public DataRepositorySearchResults addResultsItem(@Nonnull final ResultsInner3 resultsItem) {
+ public DataRepositorySearchResults addResultsItem(@Nonnull final ResultsInner2 resultsItem) {
if (this.results == null) {
this.results = new ArrayList<>();
}
@@ -74,7 +74,7 @@ public DataRepositorySearchResults addResultsItem(@Nonnull final ResultsInner3 r
* @return results The results of this {@link DataRepositorySearchResults} instance.
*/
@Nonnull
- public List getResults() {
+ public List getResults() {
return results;
}
@@ -83,7 +83,7 @@ public List getResults() {
*
* @param results List of returned results.
*/
- public void setResults(@Nonnull final List results) {
+ public void setResults(@Nonnull final List results) {
this.results = results;
}
@@ -201,7 +201,7 @@ public interface Builder {
* @param results List of returned results.
* @return The DataRepositorySearchResults instance.
*/
- DataRepositorySearchResults results(@Nonnull final List results);
+ DataRepositorySearchResults results(@Nonnull final List results);
/**
* Set the results of this {@link DataRepositorySearchResults} instance.
@@ -209,7 +209,7 @@ public interface Builder {
* @param results List of returned results.
* @return The DataRepositorySearchResults instance.
*/
- default DataRepositorySearchResults results(@Nonnull final ResultsInner3... results) {
+ default DataRepositorySearchResults results(@Nonnull final ResultsInner2... results) {
return results(Arrays.asList(results));
}
}
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/DataRepositoryType.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/DataRepositoryType.java
index b3cc53040..a8d18c7cf 100644
--- a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/DataRepositoryType.java
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/DataRepositoryType.java
@@ -15,12 +15,14 @@
import com.fasterxml.jackson.annotation.JsonValue;
import javax.annotation.Nonnull;
-/** Gets or Sets DataRepositoryType */
+/** Only include DataRepositories with the given type. */
public enum DataRepositoryType {
VECTOR("vector"),
HELP_SAP_COM("help.sap.com"),
+ REMOTE_DG("remote:dg"),
+
UNKNOWN_DEFAULT_OPEN_API("unknown_default_open_api");
private final String value;
@@ -59,6 +61,6 @@ public static DataRepositoryType fromValue(@Nonnull final String value) {
return b;
}
}
- return null;
+ return UNKNOWN_DEFAULT_OPEN_API;
}
}
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/DataRepositoryWithDocuments.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/DataRepositoryWithDocuments.java
index df951886e..871def445 100644
--- a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/DataRepositoryWithDocuments.java
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/DataRepositoryWithDocuments.java
@@ -41,6 +41,12 @@ public class DataRepositoryWithDocuments
@JsonProperty("metadata")
private List metadata = new ArrayList<>();
+ @JsonProperty("remoteGroundingName")
+ private String remoteGroundingName;
+
+ @JsonProperty("message")
+ private String message;
+
@JsonProperty("documents")
private List documents = new ArrayList<>();
@@ -165,6 +171,72 @@ public void setMetadata(@Nullable final List metadata
this.metadata = metadata;
}
+ /**
+ * Set the remoteGroundingName of this {@link DataRepositoryWithDocuments} instance and return the
+ * same instance.
+ *
+ * @param remoteGroundingName Friendly destination Name (grounding.name) of remote instance.
+ * @return The same instance of this {@link DataRepositoryWithDocuments} class
+ */
+ @Nonnull
+ public DataRepositoryWithDocuments remoteGroundingName(
+ @Nullable final String remoteGroundingName) {
+ this.remoteGroundingName = remoteGroundingName;
+ return this;
+ }
+
+ /**
+ * Friendly destination Name (grounding.name) of remote instance.
+ *
+ * @return remoteGroundingName The remoteGroundingName of this {@link DataRepositoryWithDocuments}
+ * instance.
+ */
+ @Nullable
+ public String getRemoteGroundingName() {
+ return remoteGroundingName;
+ }
+
+ /**
+ * Set the remoteGroundingName of this {@link DataRepositoryWithDocuments} instance.
+ *
+ * @param remoteGroundingName Friendly destination Name (grounding.name) of remote instance.
+ */
+ public void setRemoteGroundingName(@Nullable final String remoteGroundingName) {
+ this.remoteGroundingName = remoteGroundingName;
+ }
+
+ /**
+ * Set the message of this {@link DataRepositoryWithDocuments} instance and return the same
+ * instance.
+ *
+ * @param message Optional message.
+ * @return The same instance of this {@link DataRepositoryWithDocuments} class
+ */
+ @Nonnull
+ public DataRepositoryWithDocuments message(@Nullable final String message) {
+ this.message = message;
+ return this;
+ }
+
+ /**
+ * Optional message.
+ *
+ * @return message The message of this {@link DataRepositoryWithDocuments} instance.
+ */
+ @Nullable
+ public String getMessage() {
+ return message;
+ }
+
+ /**
+ * Set the message of this {@link DataRepositoryWithDocuments} instance.
+ *
+ * @param message Optional message.
+ */
+ public void setMessage(@Nullable final String message) {
+ this.message = message;
+ }
+
/**
* Set the documents of this {@link DataRepositoryWithDocuments} instance and return the same
* instance.
@@ -255,6 +327,8 @@ public Map toMap() {
if (id != null) declaredFields.put("id", id);
if (title != null) declaredFields.put("title", title);
if (metadata != null) declaredFields.put("metadata", metadata);
+ if (remoteGroundingName != null) declaredFields.put("remoteGroundingName", remoteGroundingName);
+ if (message != null) declaredFields.put("message", message);
if (documents != null) declaredFields.put("documents", documents);
return declaredFields;
}
@@ -285,12 +359,15 @@ public boolean equals(@Nullable final java.lang.Object o) {
&& Objects.equals(this.id, dataRepositoryWithDocuments.id)
&& Objects.equals(this.title, dataRepositoryWithDocuments.title)
&& Objects.equals(this.metadata, dataRepositoryWithDocuments.metadata)
+ && Objects.equals(this.remoteGroundingName, dataRepositoryWithDocuments.remoteGroundingName)
+ && Objects.equals(this.message, dataRepositoryWithDocuments.message)
&& Objects.equals(this.documents, dataRepositoryWithDocuments.documents);
}
@Override
public int hashCode() {
- return Objects.hash(id, title, metadata, documents, cloudSdkCustomFields);
+ return Objects.hash(
+ id, title, metadata, remoteGroundingName, message, documents, cloudSdkCustomFields);
}
@Override
@@ -301,6 +378,10 @@ public String toString() {
sb.append(" id: ").append(toIndentedString(id)).append("\n");
sb.append(" title: ").append(toIndentedString(title)).append("\n");
sb.append(" metadata: ").append(toIndentedString(metadata)).append("\n");
+ sb.append(" remoteGroundingName: ")
+ .append(toIndentedString(remoteGroundingName))
+ .append("\n");
+ sb.append(" message: ").append(toIndentedString(message)).append("\n");
sb.append(" documents: ").append(toIndentedString(documents)).append("\n");
cloudSdkCustomFields.forEach(
(k, v) ->
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/DenseRetrievalScoringConfiguration.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/DenseRetrievalScoringConfiguration.java
new file mode 100644
index 000000000..7a186c261
--- /dev/null
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/DenseRetrievalScoringConfiguration.java
@@ -0,0 +1,217 @@
+/*
+ * Grounding
+ * Grounding is a service designed to handle data-related tasks, such as grounding and retrieval, using vector databases. It provides specialized data retrieval through these databases, grounding the retrieval process with your own external and context-relevant data. Grounding combines generative AI capabilities with the ability to use real-time, precise data to improve decision-making and business operations for specific AI-driven business solutions.
+ *
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.sap.ai.sdk.grounding.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.Objects;
+import java.util.Set;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+/** DenseRetrievalScoringConfiguration */
+// CHECKSTYLE:OFF
+public class DenseRetrievalScoringConfiguration
+// CHECKSTYLE:ON
+{
+ @JsonProperty("enabled")
+ private Boolean enabled = true;
+
+ @JsonProperty("weight")
+ private Integer weight = 1;
+
+ @JsonAnySetter @JsonAnyGetter
+ private final Map cloudSdkCustomFields = new LinkedHashMap<>();
+
+ /** Default constructor for DenseRetrievalScoringConfiguration. */
+ protected DenseRetrievalScoringConfiguration() {}
+
+ /**
+ * Set the enabled of this {@link DenseRetrievalScoringConfiguration} instance and return the same
+ * instance.
+ *
+ * @param enabled Enable dense retrieval.
+ * @return The same instance of this {@link DenseRetrievalScoringConfiguration} class
+ */
+ @Nonnull
+ public DenseRetrievalScoringConfiguration enabled(@Nullable final Boolean enabled) {
+ this.enabled = enabled;
+ return this;
+ }
+
+ /**
+ * Enable dense retrieval.
+ *
+ * @return enabled The enabled of this {@link DenseRetrievalScoringConfiguration} instance.
+ */
+ @Nullable
+ public Boolean isEnabled() {
+ return enabled;
+ }
+
+ /**
+ * Set the enabled of this {@link DenseRetrievalScoringConfiguration} instance.
+ *
+ * @param enabled Enable dense retrieval.
+ */
+ public void setEnabled(@Nullable final Boolean enabled) {
+ this.enabled = enabled;
+ }
+
+ /**
+ * Set the weight of this {@link DenseRetrievalScoringConfiguration} instance and return the same
+ * instance.
+ *
+ * @param weight Contribution to final score.
+ * @return The same instance of this {@link DenseRetrievalScoringConfiguration} class
+ */
+ @Nonnull
+ public DenseRetrievalScoringConfiguration weight(@Nullable final Integer weight) {
+ this.weight = weight;
+ return this;
+ }
+
+ /**
+ * Contribution to final score.
+ *
+ * @return weight The weight of this {@link DenseRetrievalScoringConfiguration} instance.
+ */
+ @Nullable
+ public Integer getWeight() {
+ return weight;
+ }
+
+ /**
+ * Set the weight of this {@link DenseRetrievalScoringConfiguration} instance.
+ *
+ * @param weight Contribution to final score.
+ */
+ public void setWeight(@Nullable final Integer weight) {
+ this.weight = weight;
+ }
+
+ /**
+ * Get the names of the unrecognizable properties of the {@link
+ * DenseRetrievalScoringConfiguration}.
+ *
+ * @return The set of properties names
+ */
+ @JsonIgnore
+ @Nonnull
+ public Set getCustomFieldNames() {
+ return cloudSdkCustomFields.keySet();
+ }
+
+ /**
+ * Get the value of an unrecognizable property of this {@link DenseRetrievalScoringConfiguration}
+ * instance.
+ *
+ * @deprecated Use {@link #toMap()} instead.
+ * @param name The name of the property
+ * @return The value of the property
+ * @throws NoSuchElementException If no property with the given name could be found.
+ */
+ @Nullable
+ @Deprecated
+ public Object getCustomField(@Nonnull final String name) throws NoSuchElementException {
+ if (!cloudSdkCustomFields.containsKey(name)) {
+ throw new NoSuchElementException(
+ "DenseRetrievalScoringConfiguration has no field with name '" + name + "'.");
+ }
+ return cloudSdkCustomFields.get(name);
+ }
+
+ /**
+ * Get the value of all properties of this {@link DenseRetrievalScoringConfiguration} instance
+ * including unrecognized properties.
+ *
+ * @return The map of all properties
+ */
+ @JsonIgnore
+ @Nonnull
+ public Map toMap() {
+ final Map declaredFields = new LinkedHashMap<>(cloudSdkCustomFields);
+ if (enabled != null) declaredFields.put("enabled", enabled);
+ if (weight != null) declaredFields.put("weight", weight);
+ return declaredFields;
+ }
+
+ /**
+ * Set an unrecognizable property of this {@link DenseRetrievalScoringConfiguration} instance. If
+ * the map previously contained a mapping for the key, the old value is replaced by the specified
+ * value.
+ *
+ * @param customFieldName The name of the property
+ * @param customFieldValue The value of the property
+ */
+ @JsonIgnore
+ public void setCustomField(@Nonnull String customFieldName, @Nullable Object customFieldValue) {
+ cloudSdkCustomFields.put(customFieldName, customFieldValue);
+ }
+
+ @Override
+ public boolean equals(@Nullable final java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ final DenseRetrievalScoringConfiguration denseRetrievalScoringConfiguration =
+ (DenseRetrievalScoringConfiguration) o;
+ return Objects.equals(
+ this.cloudSdkCustomFields, denseRetrievalScoringConfiguration.cloudSdkCustomFields)
+ && Objects.equals(this.enabled, denseRetrievalScoringConfiguration.enabled)
+ && Objects.equals(this.weight, denseRetrievalScoringConfiguration.weight);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(enabled, weight, cloudSdkCustomFields);
+ }
+
+ @Override
+ @Nonnull
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("class DenseRetrievalScoringConfiguration {\n");
+ sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n");
+ sb.append(" weight: ").append(toIndentedString(weight)).append("\n");
+ cloudSdkCustomFields.forEach(
+ (k, v) ->
+ sb.append(" ").append(k).append(": ").append(toIndentedString(v)).append("\n"));
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(final java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+ /**
+ * Create a new {@link DenseRetrievalScoringConfiguration} instance. No arguments are required.
+ */
+ public static DenseRetrievalScoringConfiguration create() {
+ return new DenseRetrievalScoringConfiguration();
+ }
+}
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/DocumentInput.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/DocumentInput.java
index e8d8937e6..2a07fe952 100644
--- a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/DocumentInput.java
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/DocumentInput.java
@@ -33,7 +33,7 @@ public class DocumentInput
// CHECKSTYLE:ON
{
@JsonProperty("chunks")
- private List chunks = new ArrayList<>();
+ private List chunks = new ArrayList<>();
@JsonProperty("metadata")
private List metadata = new ArrayList<>();
@@ -54,7 +54,7 @@ protected DocumentInput() {}
* @return The same instance of this {@link DocumentInput} class
*/
@Nonnull
- public DocumentInput chunks(@Nonnull final List chunks) {
+ public DocumentInput chunks(@Nonnull final List chunks) {
this.chunks = chunks;
return this;
}
@@ -66,7 +66,7 @@ public DocumentInput chunks(@Nonnull final List chunks) {
* @return The same instance of type {@link DocumentInput}
*/
@Nonnull
- public DocumentInput addChunksItem(@Nonnull final TextOnlyBaseChunk chunksItem) {
+ public DocumentInput addChunksItem(@Nonnull final TextOnlyBaseChunkCreate chunksItem) {
if (this.chunks == null) {
this.chunks = new ArrayList<>();
}
@@ -80,7 +80,7 @@ public DocumentInput addChunksItem(@Nonnull final TextOnlyBaseChunk chunksItem)
* @return chunks The chunks of this {@link DocumentInput} instance.
*/
@Nonnull
- public List getChunks() {
+ public List getChunks() {
return chunks;
}
@@ -89,7 +89,7 @@ public List getChunks() {
*
* @param chunks The chunks of this {@link DocumentInput}
*/
- public void setChunks(@Nonnull final List chunks) {
+ public void setChunks(@Nonnull final List chunks) {
this.chunks = chunks;
}
@@ -100,7 +100,7 @@ public void setChunks(@Nonnull final List chunks) {
* @return The same instance of this {@link DocumentInput} class
*/
@Nonnull
- public DocumentInput metadata(@Nonnull final List metadata) {
+ public DocumentInput metadata(@Nullable final List metadata) {
this.metadata = metadata;
return this;
}
@@ -135,7 +135,7 @@ public List getMetadata() {
*
* @param metadata The metadata of this {@link DocumentInput}
*/
- public void setMetadata(@Nonnull final List metadata) {
+ public void setMetadata(@Nullable final List metadata) {
this.metadata = metadata;
}
@@ -276,8 +276,7 @@ private String toIndentedString(final java.lang.Object o) {
* with all required arguments.
*/
public static Builder create() {
- return (chunks) ->
- (metadata) -> (id) -> new DocumentInput().chunks(chunks).metadata(metadata).id(id);
+ return (chunks) -> (id) -> new DocumentInput().chunks(chunks).id(id);
}
/** Builder helper class. */
@@ -288,7 +287,7 @@ public interface Builder {
* @param chunks The chunks of this {@link DocumentInput}
* @return The DocumentInput builder.
*/
- Builder1 chunks(@Nonnull final List chunks);
+ Builder1 chunks(@Nonnull final List chunks);
/**
* Set the chunks of this {@link DocumentInput} instance.
@@ -296,34 +295,13 @@ public interface Builder {
* @param chunks The chunks of this {@link DocumentInput}
* @return The DocumentInput builder.
*/
- default Builder1 chunks(@Nonnull final TextOnlyBaseChunk... chunks) {
+ default Builder1 chunks(@Nonnull final TextOnlyBaseChunkCreate... chunks) {
return chunks(Arrays.asList(chunks));
}
}
/** Builder helper class. */
public interface Builder1 {
- /**
- * Set the metadata of this {@link DocumentInput} instance.
- *
- * @param metadata The metadata of this {@link DocumentInput}
- * @return The DocumentInput builder.
- */
- Builder2 metadata(@Nonnull final List metadata);
-
- /**
- * Set the metadata of this {@link DocumentInput} instance.
- *
- * @param metadata The metadata of this {@link DocumentInput}
- * @return The DocumentInput builder.
- */
- default Builder2 metadata(@Nonnull final VectorDocumentKeyValueListPair... metadata) {
- return metadata(Arrays.asList(metadata));
- }
- }
-
- /** Builder helper class. */
- public interface Builder2 {
/**
* Set the id of this {@link DocumentInput} instance.
*
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/DocumentKeyValueListPair.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/DocumentKeyValueListPair.java
index 38a9c5cb7..a96618ba3 100644
--- a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/DocumentKeyValueListPair.java
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/DocumentKeyValueListPair.java
@@ -13,10 +13,8 @@
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
-import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonValue;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedHashMap;
@@ -39,65 +37,8 @@ public class DocumentKeyValueListPair
@JsonProperty("value")
private List value = new ArrayList<>();
- /** Gets or Sets matchMode */
- public enum MatchModeEnum {
- /** The ANY option of this DocumentKeyValueListPair */
- ANY("ANY"),
-
- /** The ALL option of this DocumentKeyValueListPair */
- ALL("ALL"),
-
- /** The UNKNOWN_DEFAULT_OPEN_API option of this DocumentKeyValueListPair */
- UNKNOWN_DEFAULT_OPEN_API("unknown_default_open_api");
-
- private String value;
-
- MatchModeEnum(String value) {
- this.value = value;
- }
-
- /**
- * Get the value of the enum
- *
- * @return The enum value
- */
- @JsonValue
- @Nonnull
- public String getValue() {
- return value;
- }
-
- /**
- * Get the String value of the enum value.
- *
- * @return The enum value as String
- */
- @Override
- @Nonnull
- public String toString() {
- return String.valueOf(value);
- }
-
- /**
- * Get the enum value from a String value
- *
- * @param value The String value
- * @return The enum value of type DocumentKeyValueListPair
- */
- @JsonCreator
- @Nullable
- public static MatchModeEnum fromValue(@Nonnull final String value) {
- for (MatchModeEnum b : MatchModeEnum.values()) {
- if (b.value.equals(value)) {
- return b;
- }
- }
- return null;
- }
- }
-
@JsonProperty("matchMode")
- private MatchModeEnum matchMode;
+ private FilterMatchModeEnum matchMode;
@JsonAnySetter @JsonAnyGetter
private final Map cloudSdkCustomFields = new LinkedHashMap<>();
@@ -190,7 +131,7 @@ public void setValue(@Nonnull final List value) {
* @return The same instance of this {@link DocumentKeyValueListPair} class
*/
@Nonnull
- public DocumentKeyValueListPair matchMode(@Nullable final MatchModeEnum matchMode) {
+ public DocumentKeyValueListPair matchMode(@Nullable final FilterMatchModeEnum matchMode) {
this.matchMode = matchMode;
return this;
}
@@ -200,8 +141,8 @@ public DocumentKeyValueListPair matchMode(@Nullable final MatchModeEnum matchMod
*
* @return matchMode The matchMode of this {@link DocumentKeyValueListPair} instance.
*/
- @Nullable
- public MatchModeEnum getMatchMode() {
+ @Nonnull
+ public FilterMatchModeEnum getMatchMode() {
return matchMode;
}
@@ -210,7 +151,7 @@ public MatchModeEnum getMatchMode() {
*
* @param matchMode The matchMode of this {@link DocumentKeyValueListPair}
*/
- public void setMatchMode(@Nullable final MatchModeEnum matchMode) {
+ public void setMatchMode(@Nullable final FilterMatchModeEnum matchMode) {
this.matchMode = matchMode;
}
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/DocumentResponse.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/DocumentResponse.java
index 6cad13430..01aae16bf 100644
--- a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/DocumentResponse.java
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/DocumentResponse.java
@@ -100,7 +100,7 @@ public void setChunks(@Nonnull final List chunks) {
* @return The same instance of this {@link DocumentResponse} class
*/
@Nonnull
- public DocumentResponse metadata(@Nonnull final List metadata) {
+ public DocumentResponse metadata(@Nullable final List metadata) {
this.metadata = metadata;
return this;
}
@@ -136,7 +136,7 @@ public List getMetadata() {
*
* @param metadata The metadata of this {@link DocumentResponse}
*/
- public void setMetadata(@Nonnull final List metadata) {
+ public void setMetadata(@Nullable final List metadata) {
this.metadata = metadata;
}
@@ -277,8 +277,7 @@ private String toIndentedString(final java.lang.Object o) {
* instance with all required arguments.
*/
public static Builder create() {
- return (chunks) ->
- (metadata) -> (id) -> new DocumentResponse().chunks(chunks).metadata(metadata).id(id);
+ return (chunks) -> (id) -> new DocumentResponse().chunks(chunks).id(id);
}
/** Builder helper class. */
@@ -304,27 +303,6 @@ default Builder1 chunks(@Nonnull final TextOnlyBaseChunk... chunks) {
/** Builder helper class. */
public interface Builder1 {
- /**
- * Set the metadata of this {@link DocumentResponse} instance.
- *
- * @param metadata The metadata of this {@link DocumentResponse}
- * @return The DocumentResponse builder.
- */
- Builder2 metadata(@Nonnull final List metadata);
-
- /**
- * Set the metadata of this {@link DocumentResponse} instance.
- *
- * @param metadata The metadata of this {@link DocumentResponse}
- * @return The DocumentResponse builder.
- */
- default Builder2 metadata(@Nonnull final VectorDocumentKeyValueListPair... metadata) {
- return metadata(Arrays.asList(metadata));
- }
- }
-
- /** Builder helper class. */
- public interface Builder2 {
/**
* Set the id of this {@link DocumentResponse} instance.
*
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/DocumentsListResponse.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/DocumentsListResponse.java
index 5531d854b..07459b6b1 100644
--- a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/DocumentsListResponse.java
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/DocumentsListResponse.java
@@ -26,7 +26,7 @@
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
-/** A response containing documents created or updated, retrieved from the server. */
+/** A response containing documents retrieved from the server. */
// CHECKSTYLE:OFF
public class DocumentsListResponse
// CHECKSTYLE:ON
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/Filter.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/Filter.java
new file mode 100644
index 000000000..f14167f6e
--- /dev/null
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/Filter.java
@@ -0,0 +1,570 @@
+/*
+ * Grounding
+ * Grounding is a service designed to handle data-related tasks, such as grounding and retrieval, using vector databases. It provides specialized data retrieval through these databases, grounding the retrieval process with your own external and context-relevant data. Grounding combines generative AI capabilities with the ability to use real-time, precise data to improve decision-making and business operations for specific AI-driven business solutions.
+ *
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.sap.ai.sdk.grounding.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonValue;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.Objects;
+import java.util.Set;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+/** Advanced filter expression for combining metadata filters with boolean logic */
+// CHECKSTYLE:OFF
+public class Filter
+// CHECKSTYLE:ON
+{
+ /** Boolean operator for combining filter conditions */
+ public enum OperatorEnum {
+ /** The AND option of this Filter */
+ AND("and"),
+
+ /** The OR option of this Filter */
+ OR("or"),
+
+ /** The UNKNOWN_DEFAULT_OPEN_API option of this Filter */
+ UNKNOWN_DEFAULT_OPEN_API("unknown_default_open_api");
+
+ private String value;
+
+ OperatorEnum(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Get the value of the enum
+ *
+ * @return The enum value
+ */
+ @JsonValue
+ @Nonnull
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * Get the String value of the enum value.
+ *
+ * @return The enum value as String
+ */
+ @Override
+ @Nonnull
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ /**
+ * Get the enum value from a String value
+ *
+ * @param value The String value
+ * @return The enum value of type Filter
+ */
+ @JsonCreator
+ @Nonnull
+ public static OperatorEnum fromValue(@Nonnull final String value) {
+ for (OperatorEnum b : OperatorEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ return UNKNOWN_DEFAULT_OPEN_API;
+ }
+ }
+
+ @JsonProperty("operator")
+ private OperatorEnum operator;
+
+ @JsonProperty("left")
+ private Left1 left;
+
+ @JsonProperty("right")
+ private Right1 right;
+
+ @JsonProperty("key")
+ private String key;
+
+ @JsonProperty("value")
+ private List value = new ArrayList<>();
+
+ /** Scope of the metadata filter (e.g., collection, document, chunk) */
+ public enum ScopeEnum {
+ /** The COLLECTION option of this Filter */
+ COLLECTION("collection"),
+
+ /** The DOCUMENT option of this Filter */
+ DOCUMENT("document"),
+
+ /** The CHUNK option of this Filter */
+ CHUNK("chunk"),
+
+ /** The UNKNOWN_DEFAULT_OPEN_API option of this Filter */
+ UNKNOWN_DEFAULT_OPEN_API("unknown_default_open_api");
+
+ private String value;
+
+ ScopeEnum(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Get the value of the enum
+ *
+ * @return The enum value
+ */
+ @JsonValue
+ @Nonnull
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * Get the String value of the enum value.
+ *
+ * @return The enum value as String
+ */
+ @Override
+ @Nonnull
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ /**
+ * Get the enum value from a String value
+ *
+ * @param value The String value
+ * @return The enum value of type Filter
+ */
+ @JsonCreator
+ @Nonnull
+ public static ScopeEnum fromValue(@Nonnull final String value) {
+ for (ScopeEnum b : ScopeEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ return UNKNOWN_DEFAULT_OPEN_API;
+ }
+ }
+
+ @JsonProperty("scope")
+ private ScopeEnum scope = ScopeEnum.DOCUMENT;
+
+ @JsonAnySetter @JsonAnyGetter
+ private final Map cloudSdkCustomFields = new LinkedHashMap<>();
+
+ /** Default constructor for Filter. */
+ protected Filter() {}
+
+ /**
+ * Set the operator of this {@link Filter} instance and return the same instance.
+ *
+ * @param operator Boolean operator for combining filter conditions
+ * @return The same instance of this {@link Filter} class
+ */
+ @Nonnull
+ public Filter operator(@Nonnull final OperatorEnum operator) {
+ this.operator = operator;
+ return this;
+ }
+
+ /**
+ * Boolean operator for combining filter conditions
+ *
+ * @return operator The operator of this {@link Filter} instance.
+ */
+ @Nonnull
+ public OperatorEnum getOperator() {
+ return operator;
+ }
+
+ /**
+ * Set the operator of this {@link Filter} instance.
+ *
+ * @param operator Boolean operator for combining filter conditions
+ */
+ public void setOperator(@Nonnull final OperatorEnum operator) {
+ this.operator = operator;
+ }
+
+ /**
+ * Set the left of this {@link Filter} instance and return the same instance.
+ *
+ * @param left The left of this {@link Filter}
+ * @return The same instance of this {@link Filter} class
+ */
+ @Nonnull
+ public Filter left(@Nonnull final Left1 left) {
+ this.left = left;
+ return this;
+ }
+
+ /**
+ * Get left
+ *
+ * @return left The left of this {@link Filter} instance.
+ */
+ @Nonnull
+ public Left1 getLeft() {
+ return left;
+ }
+
+ /**
+ * Set the left of this {@link Filter} instance.
+ *
+ * @param left The left of this {@link Filter}
+ */
+ public void setLeft(@Nonnull final Left1 left) {
+ this.left = left;
+ }
+
+ /**
+ * Set the right of this {@link Filter} instance and return the same instance.
+ *
+ * @param right The right of this {@link Filter}
+ * @return The same instance of this {@link Filter} class
+ */
+ @Nonnull
+ public Filter right(@Nonnull final Right1 right) {
+ this.right = right;
+ return this;
+ }
+
+ /**
+ * Get right
+ *
+ * @return right The right of this {@link Filter} instance.
+ */
+ @Nonnull
+ public Right1 getRight() {
+ return right;
+ }
+
+ /**
+ * Set the right of this {@link Filter} instance.
+ *
+ * @param right The right of this {@link Filter}
+ */
+ public void setRight(@Nonnull final Right1 right) {
+ this.right = right;
+ }
+
+ /**
+ * Set the key of this {@link Filter} instance and return the same instance.
+ *
+ * @param key The key of this {@link Filter}
+ * @return The same instance of this {@link Filter} class
+ */
+ @Nonnull
+ public Filter key(@Nonnull final String key) {
+ this.key = key;
+ return this;
+ }
+
+ /**
+ * Get key
+ *
+ * @return key The key of this {@link Filter} instance.
+ */
+ @Nonnull
+ public String getKey() {
+ return key;
+ }
+
+ /**
+ * Set the key of this {@link Filter} instance.
+ *
+ * @param key The key of this {@link Filter}
+ */
+ public void setKey(@Nonnull final String key) {
+ this.key = key;
+ }
+
+ /**
+ * Set the value of this {@link Filter} instance and return the same instance.
+ *
+ * @param value The value of this {@link Filter}
+ * @return The same instance of this {@link Filter} class
+ */
+ @Nonnull
+ public Filter value(@Nonnull final List value) {
+ this.value = value;
+ return this;
+ }
+
+ /**
+ * Add one value instance to this {@link Filter}.
+ *
+ * @param valueItem The value that should be added
+ * @return The same instance of type {@link Filter}
+ */
+ @Nonnull
+ public Filter addValueItem(@Nonnull final String valueItem) {
+ if (this.value == null) {
+ this.value = new ArrayList<>();
+ }
+ this.value.add(valueItem);
+ return this;
+ }
+
+ /**
+ * Get value
+ *
+ * @return value The value of this {@link Filter} instance.
+ */
+ @Nonnull
+ public List getValue() {
+ return value;
+ }
+
+ /**
+ * Set the value of this {@link Filter} instance.
+ *
+ * @param value The value of this {@link Filter}
+ */
+ public void setValue(@Nonnull final List value) {
+ this.value = value;
+ }
+
+ /**
+ * Set the scope of this {@link Filter} instance and return the same instance.
+ *
+ * @param scope Scope of the metadata filter (e.g., collection, document, chunk)
+ * @return The same instance of this {@link Filter} class
+ */
+ @Nonnull
+ public Filter scope(@Nullable final ScopeEnum scope) {
+ this.scope = scope;
+ return this;
+ }
+
+ /**
+ * Scope of the metadata filter (e.g., collection, document, chunk)
+ *
+ * @return scope The scope of this {@link Filter} instance.
+ */
+ @Nonnull
+ public ScopeEnum getScope() {
+ return scope;
+ }
+
+ /**
+ * Set the scope of this {@link Filter} instance.
+ *
+ * @param scope Scope of the metadata filter (e.g., collection, document, chunk)
+ */
+ public void setScope(@Nullable final ScopeEnum scope) {
+ this.scope = scope;
+ }
+
+ /**
+ * Get the names of the unrecognizable properties of the {@link Filter}.
+ *
+ * @return The set of properties names
+ */
+ @JsonIgnore
+ @Nonnull
+ public Set getCustomFieldNames() {
+ return cloudSdkCustomFields.keySet();
+ }
+
+ /**
+ * Get the value of an unrecognizable property of this {@link Filter} instance.
+ *
+ * @deprecated Use {@link #toMap()} instead.
+ * @param name The name of the property
+ * @return The value of the property
+ * @throws NoSuchElementException If no property with the given name could be found.
+ */
+ @Nullable
+ @Deprecated
+ public Object getCustomField(@Nonnull final String name) throws NoSuchElementException {
+ if (!cloudSdkCustomFields.containsKey(name)) {
+ throw new NoSuchElementException("Filter has no field with name '" + name + "'.");
+ }
+ return cloudSdkCustomFields.get(name);
+ }
+
+ /**
+ * Get the value of all properties of this {@link Filter} instance including unrecognized
+ * properties.
+ *
+ * @return The map of all properties
+ */
+ @JsonIgnore
+ @Nonnull
+ public Map toMap() {
+ final Map declaredFields = new LinkedHashMap<>(cloudSdkCustomFields);
+ if (operator != null) declaredFields.put("operator", operator);
+ if (left != null) declaredFields.put("left", left);
+ if (right != null) declaredFields.put("right", right);
+ if (key != null) declaredFields.put("key", key);
+ if (value != null) declaredFields.put("value", value);
+ if (scope != null) declaredFields.put("scope", scope);
+ return declaredFields;
+ }
+
+ /**
+ * Set an unrecognizable property of this {@link Filter} instance. If the map previously contained
+ * a mapping for the key, the old value is replaced by the specified value.
+ *
+ * @param customFieldName The name of the property
+ * @param customFieldValue The value of the property
+ */
+ @JsonIgnore
+ public void setCustomField(@Nonnull String customFieldName, @Nullable Object customFieldValue) {
+ cloudSdkCustomFields.put(customFieldName, customFieldValue);
+ }
+
+ @Override
+ public boolean equals(@Nullable final java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ final Filter filter = (Filter) o;
+ return Objects.equals(this.cloudSdkCustomFields, filter.cloudSdkCustomFields)
+ && Objects.equals(this.operator, filter.operator)
+ && Objects.equals(this.left, filter.left)
+ && Objects.equals(this.right, filter.right)
+ && Objects.equals(this.key, filter.key)
+ && Objects.equals(this.value, filter.value)
+ && Objects.equals(this.scope, filter.scope);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(operator, left, right, key, value, scope, cloudSdkCustomFields);
+ }
+
+ @Override
+ @Nonnull
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("class Filter {\n");
+ sb.append(" operator: ").append(toIndentedString(operator)).append("\n");
+ sb.append(" left: ").append(toIndentedString(left)).append("\n");
+ sb.append(" right: ").append(toIndentedString(right)).append("\n");
+ sb.append(" key: ").append(toIndentedString(key)).append("\n");
+ sb.append(" value: ").append(toIndentedString(value)).append("\n");
+ sb.append(" scope: ").append(toIndentedString(scope)).append("\n");
+ cloudSdkCustomFields.forEach(
+ (k, v) ->
+ sb.append(" ").append(k).append(": ").append(toIndentedString(v)).append("\n"));
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(final java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+ /**
+ * Create a type-safe, fluent-api builder object to construct a new {@link Filter} instance with
+ * all required arguments.
+ */
+ public static Builder create() {
+ return (operator) ->
+ (left) ->
+ (right) ->
+ (key) ->
+ (value) ->
+ new Filter()
+ .operator(operator)
+ .left(left)
+ .right(right)
+ .key(key)
+ .value(value);
+ }
+
+ /** Builder helper class. */
+ public interface Builder {
+ /**
+ * Set the operator of this {@link Filter} instance.
+ *
+ * @param operator Boolean operator for combining filter conditions
+ * @return The Filter builder.
+ */
+ Builder1 operator(@Nonnull final OperatorEnum operator);
+ }
+
+ /** Builder helper class. */
+ public interface Builder1 {
+ /**
+ * Set the left of this {@link Filter} instance.
+ *
+ * @param left The left of this {@link Filter}
+ * @return The Filter builder.
+ */
+ Builder2 left(@Nonnull final Left1 left);
+ }
+
+ /** Builder helper class. */
+ public interface Builder2 {
+ /**
+ * Set the right of this {@link Filter} instance.
+ *
+ * @param right The right of this {@link Filter}
+ * @return The Filter builder.
+ */
+ Builder3 right(@Nonnull final Right1 right);
+ }
+
+ /** Builder helper class. */
+ public interface Builder3 {
+ /**
+ * Set the key of this {@link Filter} instance.
+ *
+ * @param key The key of this {@link Filter}
+ * @return The Filter builder.
+ */
+ Builder4 key(@Nonnull final String key);
+ }
+
+ /** Builder helper class. */
+ public interface Builder4 {
+ /**
+ * Set the value of this {@link Filter} instance.
+ *
+ * @param value The value of this {@link Filter}
+ * @return The Filter instance.
+ */
+ Filter value(@Nonnull final List value);
+
+ /**
+ * Set the value of this {@link Filter} instance.
+ *
+ * @param value The value of this {@link Filter}
+ * @return The Filter instance.
+ */
+ default Filter value(@Nonnull final String... value) {
+ return value(Arrays.asList(value));
+ }
+ }
+}
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/FilterMatchModeEnum.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/FilterMatchModeEnum.java
new file mode 100644
index 000000000..74216976f
--- /dev/null
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/FilterMatchModeEnum.java
@@ -0,0 +1,64 @@
+/*
+ * Grounding
+ * Grounding is a service designed to handle data-related tasks, such as grounding and retrieval, using vector databases. It provides specialized data retrieval through these databases, grounding the retrieval process with your own external and context-relevant data. Grounding combines generative AI capabilities with the ability to use real-time, precise data to improve decision-making and business operations for specific AI-driven business solutions.
+ *
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.sap.ai.sdk.grounding.model;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import javax.annotation.Nonnull;
+
+/** Gets or Sets FilterMatchModeEnum */
+public enum FilterMatchModeEnum {
+ ANY("ANY"),
+
+ ALL("ALL"),
+
+ UNKNOWN_DEFAULT_OPEN_API("unknown_default_open_api");
+
+ private final String value;
+
+ FilterMatchModeEnum(String value) {
+ this.value = value;
+ }
+
+ /**
+ * @return The enum value.
+ */
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * @return The String representation of the enum value.
+ */
+ @Override
+ @Nonnull
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ /**
+ * Converts the given value to its enum representation.
+ *
+ * @param value The input value.
+ * @return The enum representation of the given value.
+ */
+ @JsonCreator
+ public static FilterMatchModeEnum fromValue(@Nonnull final String value) {
+ for (final FilterMatchModeEnum b : FilterMatchModeEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ return UNKNOWN_DEFAULT_OPEN_API;
+ }
+}
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/FiltersInner.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/FiltersInner.java
new file mode 100644
index 000000000..6d8e31c7d
--- /dev/null
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/FiltersInner.java
@@ -0,0 +1,635 @@
+/*
+ * Grounding
+ * Grounding is a service designed to handle data-related tasks, such as grounding and retrieval, using vector databases. It provides specialized data retrieval through these databases, grounding the retrieval process with your own external and context-relevant data. Grounding combines generative AI capabilities with the ability to use real-time, precise data to improve decision-making and business operations for specific AI-driven business solutions.
+ *
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.sap.ai.sdk.grounding.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.Objects;
+import java.util.Set;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+/** FiltersInner */
+// CHECKSTYLE:OFF
+public class FiltersInner
+// CHECKSTYLE:ON
+{
+ @JsonProperty("id")
+ private String id;
+
+ @JsonProperty("searchConfiguration")
+ private RetrievalSearchConfiguration searchConfiguration = new RetrievalSearchConfiguration();
+
+ @JsonProperty("dataRepositories")
+ private List dataRepositories = new ArrayList<>(Arrays.asList("*"));
+
+ @JsonProperty("dataRepositoryType")
+ private DataRepositoryType dataRepositoryType;
+
+ @JsonProperty("remoteName")
+ private String remoteName;
+
+ @JsonProperty("dataRepositoryMetadata")
+ private List dataRepositoryMetadata = new ArrayList<>();
+
+ @JsonProperty("documentMetadata")
+ private List documentMetadata = new ArrayList<>();
+
+ @JsonProperty("chunkMetadata")
+ private List chunkMetadata = new ArrayList<>();
+
+ @JsonProperty("filter")
+ private RetrievalVectorSearchFilterFilter filter;
+
+ @JsonProperty("scoringConfiguration")
+ private VectorScoringConfiguration scoringConfiguration;
+
+ @JsonAnySetter @JsonAnyGetter
+ private final Map cloudSdkCustomFields = new LinkedHashMap<>();
+
+ /** Default constructor for FiltersInner. */
+ protected FiltersInner() {}
+
+ /**
+ * Set the id of this {@link FiltersInner} instance and return the same instance.
+ *
+ * @param id Identifier of this RetrievalSearchFilter - unique per request.
+ * @return The same instance of this {@link FiltersInner} class
+ */
+ @Nonnull
+ public FiltersInner id(@Nonnull final String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Identifier of this RetrievalSearchFilter - unique per request.
+ *
+ * @return id The id of this {@link FiltersInner} instance.
+ */
+ @Nonnull
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * Set the id of this {@link FiltersInner} instance.
+ *
+ * @param id Identifier of this RetrievalSearchFilter - unique per request.
+ */
+ public void setId(@Nonnull final String id) {
+ this.id = id;
+ }
+
+ /**
+ * Set the searchConfiguration of this {@link FiltersInner} instance and return the same instance.
+ *
+ * @param searchConfiguration The searchConfiguration of this {@link FiltersInner}
+ * @return The same instance of this {@link FiltersInner} class
+ */
+ @Nonnull
+ public FiltersInner searchConfiguration(
+ @Nullable final RetrievalSearchConfiguration searchConfiguration) {
+ this.searchConfiguration = searchConfiguration;
+ return this;
+ }
+
+ /**
+ * Get searchConfiguration
+ *
+ * @return searchConfiguration The searchConfiguration of this {@link FiltersInner} instance.
+ */
+ @Nullable
+ public RetrievalSearchConfiguration getSearchConfiguration() {
+ return searchConfiguration;
+ }
+
+ /**
+ * Set the searchConfiguration of this {@link FiltersInner} instance.
+ *
+ * @param searchConfiguration The searchConfiguration of this {@link FiltersInner}
+ */
+ public void setSearchConfiguration(
+ @Nullable final RetrievalSearchConfiguration searchConfiguration) {
+ this.searchConfiguration = searchConfiguration;
+ }
+
+ /**
+ * Set the dataRepositories of this {@link FiltersInner} instance and return the same instance.
+ *
+ * @param dataRepositories Specify ['*'] to search across all DataRepositories or give a
+ * specific list of DataRepository ids.
+ * @return The same instance of this {@link FiltersInner} class
+ */
+ @Nonnull
+ public FiltersInner dataRepositories(@Nullable final List dataRepositories) {
+ this.dataRepositories = dataRepositories;
+ return this;
+ }
+
+ /**
+ * Add one dataRepositories instance to this {@link FiltersInner}.
+ *
+ * @param dataRepositoriesItem The dataRepositories that should be added
+ * @return The same instance of type {@link FiltersInner}
+ */
+ @Nonnull
+ public FiltersInner addDataRepositoriesItem(@Nonnull final String dataRepositoriesItem) {
+ if (this.dataRepositories == null) {
+ this.dataRepositories = new ArrayList<>(Arrays.asList("*"));
+ }
+ this.dataRepositories.add(dataRepositoriesItem);
+ return this;
+ }
+
+ /**
+ * Specify ['*'] to search across all DataRepositories or give a specific list of
+ * DataRepository ids.
+ *
+ * @return dataRepositories The dataRepositories of this {@link FiltersInner} instance.
+ */
+ @Nonnull
+ public List getDataRepositories() {
+ return dataRepositories;
+ }
+
+ /**
+ * Set the dataRepositories of this {@link FiltersInner} instance.
+ *
+ * @param dataRepositories Specify ['*'] to search across all DataRepositories or give a
+ * specific list of DataRepository ids.
+ */
+ public void setDataRepositories(@Nullable final List dataRepositories) {
+ this.dataRepositories = dataRepositories;
+ }
+
+ /**
+ * Set the dataRepositoryType of this {@link FiltersInner} instance and return the same instance.
+ *
+ * @param dataRepositoryType The dataRepositoryType of this {@link FiltersInner}
+ * @return The same instance of this {@link FiltersInner} class
+ */
+ @Nonnull
+ public FiltersInner dataRepositoryType(@Nonnull final DataRepositoryType dataRepositoryType) {
+ this.dataRepositoryType = dataRepositoryType;
+ return this;
+ }
+
+ /**
+ * Get dataRepositoryType
+ *
+ * @return dataRepositoryType The dataRepositoryType of this {@link FiltersInner} instance.
+ */
+ @Nonnull
+ public DataRepositoryType getDataRepositoryType() {
+ return dataRepositoryType;
+ }
+
+ /**
+ * Set the dataRepositoryType of this {@link FiltersInner} instance.
+ *
+ * @param dataRepositoryType The dataRepositoryType of this {@link FiltersInner}
+ */
+ public void setDataRepositoryType(@Nonnull final DataRepositoryType dataRepositoryType) {
+ this.dataRepositoryType = dataRepositoryType;
+ }
+
+ /**
+ * Set the remoteName of this {@link FiltersInner} instance and return the same instance.
+ *
+ * @param remoteName Destination Name of remote instance.
+ * @return The same instance of this {@link FiltersInner} class
+ */
+ @Nonnull
+ public FiltersInner remoteName(@Nullable final String remoteName) {
+ this.remoteName = remoteName;
+ return this;
+ }
+
+ /**
+ * Destination Name of remote instance.
+ *
+ * @return remoteName The remoteName of this {@link FiltersInner} instance.
+ */
+ @Nullable
+ public String getRemoteName() {
+ return remoteName;
+ }
+
+ /**
+ * Set the remoteName of this {@link FiltersInner} instance.
+ *
+ * @param remoteName Destination Name of remote instance.
+ */
+ public void setRemoteName(@Nullable final String remoteName) {
+ this.remoteName = remoteName;
+ }
+
+ /**
+ * Set the dataRepositoryMetadata of this {@link FiltersInner} instance and return the same
+ * instance.
+ *
+ * @param dataRepositoryMetadata Restrict DataRepositories considered during search to those
+ * annotated with the given metadata. Useful when combined with
+ * dataRepositories=['*']
+ * @return The same instance of this {@link FiltersInner} class
+ */
+ @Nonnull
+ public FiltersInner dataRepositoryMetadata(
+ @Nullable final List dataRepositoryMetadata) {
+ this.dataRepositoryMetadata = dataRepositoryMetadata;
+ return this;
+ }
+
+ /**
+ * Add one dataRepositoryMetadata instance to this {@link FiltersInner}.
+ *
+ * @param dataRepositoryMetadataItem The dataRepositoryMetadata that should be added
+ * @return The same instance of type {@link FiltersInner}
+ */
+ @Nonnull
+ public FiltersInner addDataRepositoryMetadataItem(
+ @Nonnull final RetrievalKeyValueListPair dataRepositoryMetadataItem) {
+ if (this.dataRepositoryMetadata == null) {
+ this.dataRepositoryMetadata = new ArrayList<>();
+ }
+ this.dataRepositoryMetadata.add(dataRepositoryMetadataItem);
+ return this;
+ }
+
+ /**
+ * Restrict DataRepositories considered during search to those annotated with the given metadata.
+ * Useful when combined with dataRepositories=['*']
+ *
+ * @return dataRepositoryMetadata The dataRepositoryMetadata of this {@link FiltersInner}
+ * instance.
+ */
+ @Nonnull
+ public List getDataRepositoryMetadata() {
+ return dataRepositoryMetadata;
+ }
+
+ /**
+ * Set the dataRepositoryMetadata of this {@link FiltersInner} instance.
+ *
+ * @param dataRepositoryMetadata Restrict DataRepositories considered during search to those
+ * annotated with the given metadata. Useful when combined with
+ * dataRepositories=['*']
+ */
+ public void setDataRepositoryMetadata(
+ @Nullable final List dataRepositoryMetadata) {
+ this.dataRepositoryMetadata = dataRepositoryMetadata;
+ }
+
+ /**
+ * Set the documentMetadata of this {@link FiltersInner} instance and return the same instance.
+ *
+ * @param documentMetadata Restrict documents considered during search to those annotated with the
+ * given metadata.
+ * @return The same instance of this {@link FiltersInner} class
+ */
+ @Nonnull
+ public FiltersInner documentMetadata(
+ @Nullable final List documentMetadata) {
+ this.documentMetadata = documentMetadata;
+ return this;
+ }
+
+ /**
+ * Add one documentMetadata instance to this {@link FiltersInner}.
+ *
+ * @param documentMetadataItem The documentMetadata that should be added
+ * @return The same instance of type {@link FiltersInner}
+ */
+ @Nonnull
+ public FiltersInner addDocumentMetadataItem(
+ @Nonnull final RetrievalSearchDocumentKeyValueListPair documentMetadataItem) {
+ if (this.documentMetadata == null) {
+ this.documentMetadata = new ArrayList<>();
+ }
+ this.documentMetadata.add(documentMetadataItem);
+ return this;
+ }
+
+ /**
+ * Restrict documents considered during search to those annotated with the given metadata.
+ *
+ * @return documentMetadata The documentMetadata of this {@link FiltersInner} instance.
+ */
+ @Nonnull
+ public List getDocumentMetadata() {
+ return documentMetadata;
+ }
+
+ /**
+ * Set the documentMetadata of this {@link FiltersInner} instance.
+ *
+ * @param documentMetadata Restrict documents considered during search to those annotated with the
+ * given metadata.
+ */
+ public void setDocumentMetadata(
+ @Nullable final List documentMetadata) {
+ this.documentMetadata = documentMetadata;
+ }
+
+ /**
+ * Set the chunkMetadata of this {@link FiltersInner} instance and return the same instance.
+ *
+ * @param chunkMetadata Restrict chunks considered during search to those with the given metadata.
+ * @return The same instance of this {@link FiltersInner} class
+ */
+ @Nonnull
+ public FiltersInner chunkMetadata(@Nullable final List chunkMetadata) {
+ this.chunkMetadata = chunkMetadata;
+ return this;
+ }
+
+ /**
+ * Add one chunkMetadata instance to this {@link FiltersInner}.
+ *
+ * @param chunkMetadataItem The chunkMetadata that should be added
+ * @return The same instance of type {@link FiltersInner}
+ */
+ @Nonnull
+ public FiltersInner addChunkMetadataItem(
+ @Nonnull final RetrievalKeyValueListPair chunkMetadataItem) {
+ if (this.chunkMetadata == null) {
+ this.chunkMetadata = new ArrayList<>();
+ }
+ this.chunkMetadata.add(chunkMetadataItem);
+ return this;
+ }
+
+ /**
+ * Restrict chunks considered during search to those with the given metadata.
+ *
+ * @return chunkMetadata The chunkMetadata of this {@link FiltersInner} instance.
+ */
+ @Nonnull
+ public List getChunkMetadata() {
+ return chunkMetadata;
+ }
+
+ /**
+ * Set the chunkMetadata of this {@link FiltersInner} instance.
+ *
+ * @param chunkMetadata Restrict chunks considered during search to those with the given metadata.
+ */
+ public void setChunkMetadata(@Nullable final List chunkMetadata) {
+ this.chunkMetadata = chunkMetadata;
+ }
+
+ /**
+ * Set the filter of this {@link FiltersInner} instance and return the same instance.
+ *
+ * @param filter The filter of this {@link FiltersInner}
+ * @return The same instance of this {@link FiltersInner} class
+ */
+ @Nonnull
+ public FiltersInner filter(@Nullable final RetrievalVectorSearchFilterFilter filter) {
+ this.filter = filter;
+ return this;
+ }
+
+ /**
+ * Get filter
+ *
+ * @return filter The filter of this {@link FiltersInner} instance.
+ */
+ @Nullable
+ public RetrievalVectorSearchFilterFilter getFilter() {
+ return filter;
+ }
+
+ /**
+ * Set the filter of this {@link FiltersInner} instance.
+ *
+ * @param filter The filter of this {@link FiltersInner}
+ */
+ public void setFilter(@Nullable final RetrievalVectorSearchFilterFilter filter) {
+ this.filter = filter;
+ }
+
+ /**
+ * Set the scoringConfiguration of this {@link FiltersInner} instance and return the same
+ * instance.
+ *
+ * @param scoringConfiguration The scoringConfiguration of this {@link FiltersInner}
+ * @return The same instance of this {@link FiltersInner} class
+ */
+ @Nonnull
+ public FiltersInner scoringConfiguration(
+ @Nullable final VectorScoringConfiguration scoringConfiguration) {
+ this.scoringConfiguration = scoringConfiguration;
+ return this;
+ }
+
+ /**
+ * Get scoringConfiguration
+ *
+ * @return scoringConfiguration The scoringConfiguration of this {@link FiltersInner} instance.
+ */
+ @Nonnull
+ public VectorScoringConfiguration getScoringConfiguration() {
+ return scoringConfiguration;
+ }
+
+ /**
+ * Set the scoringConfiguration of this {@link FiltersInner} instance.
+ *
+ * @param scoringConfiguration The scoringConfiguration of this {@link FiltersInner}
+ */
+ public void setScoringConfiguration(
+ @Nullable final VectorScoringConfiguration scoringConfiguration) {
+ this.scoringConfiguration = scoringConfiguration;
+ }
+
+ /**
+ * Get the names of the unrecognizable properties of the {@link FiltersInner}.
+ *
+ * @return The set of properties names
+ */
+ @JsonIgnore
+ @Nonnull
+ public Set getCustomFieldNames() {
+ return cloudSdkCustomFields.keySet();
+ }
+
+ /**
+ * Get the value of an unrecognizable property of this {@link FiltersInner} instance.
+ *
+ * @deprecated Use {@link #toMap()} instead.
+ * @param name The name of the property
+ * @return The value of the property
+ * @throws NoSuchElementException If no property with the given name could be found.
+ */
+ @Nullable
+ @Deprecated
+ public Object getCustomField(@Nonnull final String name) throws NoSuchElementException {
+ if (!cloudSdkCustomFields.containsKey(name)) {
+ throw new NoSuchElementException("FiltersInner has no field with name '" + name + "'.");
+ }
+ return cloudSdkCustomFields.get(name);
+ }
+
+ /**
+ * Get the value of all properties of this {@link FiltersInner} instance including unrecognized
+ * properties.
+ *
+ * @return The map of all properties
+ */
+ @JsonIgnore
+ @Nonnull
+ public Map toMap() {
+ final Map declaredFields = new LinkedHashMap<>(cloudSdkCustomFields);
+ if (id != null) declaredFields.put("id", id);
+ if (searchConfiguration != null) declaredFields.put("searchConfiguration", searchConfiguration);
+ if (dataRepositories != null) declaredFields.put("dataRepositories", dataRepositories);
+ if (dataRepositoryType != null) declaredFields.put("dataRepositoryType", dataRepositoryType);
+ if (remoteName != null) declaredFields.put("remoteName", remoteName);
+ if (dataRepositoryMetadata != null)
+ declaredFields.put("dataRepositoryMetadata", dataRepositoryMetadata);
+ if (documentMetadata != null) declaredFields.put("documentMetadata", documentMetadata);
+ if (chunkMetadata != null) declaredFields.put("chunkMetadata", chunkMetadata);
+ if (filter != null) declaredFields.put("filter", filter);
+ if (scoringConfiguration != null)
+ declaredFields.put("scoringConfiguration", scoringConfiguration);
+ return declaredFields;
+ }
+
+ /**
+ * Set an unrecognizable property of this {@link FiltersInner} instance. If the map previously
+ * contained a mapping for the key, the old value is replaced by the specified value.
+ *
+ * @param customFieldName The name of the property
+ * @param customFieldValue The value of the property
+ */
+ @JsonIgnore
+ public void setCustomField(@Nonnull String customFieldName, @Nullable Object customFieldValue) {
+ cloudSdkCustomFields.put(customFieldName, customFieldValue);
+ }
+
+ @Override
+ public boolean equals(@Nullable final java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ final FiltersInner filtersInner = (FiltersInner) o;
+ return Objects.equals(this.cloudSdkCustomFields, filtersInner.cloudSdkCustomFields)
+ && Objects.equals(this.id, filtersInner.id)
+ && Objects.equals(this.searchConfiguration, filtersInner.searchConfiguration)
+ && Objects.equals(this.dataRepositories, filtersInner.dataRepositories)
+ && Objects.equals(this.dataRepositoryType, filtersInner.dataRepositoryType)
+ && Objects.equals(this.remoteName, filtersInner.remoteName)
+ && Objects.equals(this.dataRepositoryMetadata, filtersInner.dataRepositoryMetadata)
+ && Objects.equals(this.documentMetadata, filtersInner.documentMetadata)
+ && Objects.equals(this.chunkMetadata, filtersInner.chunkMetadata)
+ && Objects.equals(this.filter, filtersInner.filter)
+ && Objects.equals(this.scoringConfiguration, filtersInner.scoringConfiguration);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(
+ id,
+ searchConfiguration,
+ dataRepositories,
+ dataRepositoryType,
+ remoteName,
+ dataRepositoryMetadata,
+ documentMetadata,
+ chunkMetadata,
+ filter,
+ scoringConfiguration,
+ cloudSdkCustomFields);
+ }
+
+ @Override
+ @Nonnull
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("class FiltersInner {\n");
+ sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append(" searchConfiguration: ")
+ .append(toIndentedString(searchConfiguration))
+ .append("\n");
+ sb.append(" dataRepositories: ").append(toIndentedString(dataRepositories)).append("\n");
+ sb.append(" dataRepositoryType: ").append(toIndentedString(dataRepositoryType)).append("\n");
+ sb.append(" remoteName: ").append(toIndentedString(remoteName)).append("\n");
+ sb.append(" dataRepositoryMetadata: ")
+ .append(toIndentedString(dataRepositoryMetadata))
+ .append("\n");
+ sb.append(" documentMetadata: ").append(toIndentedString(documentMetadata)).append("\n");
+ sb.append(" chunkMetadata: ").append(toIndentedString(chunkMetadata)).append("\n");
+ sb.append(" filter: ").append(toIndentedString(filter)).append("\n");
+ sb.append(" scoringConfiguration: ")
+ .append(toIndentedString(scoringConfiguration))
+ .append("\n");
+ cloudSdkCustomFields.forEach(
+ (k, v) ->
+ sb.append(" ").append(k).append(": ").append(toIndentedString(v)).append("\n"));
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(final java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+ /**
+ * Create a type-safe, fluent-api builder object to construct a new {@link FiltersInner} instance
+ * with all required arguments.
+ */
+ public static Builder create() {
+ return (id) ->
+ (dataRepositoryType) -> new FiltersInner().id(id).dataRepositoryType(dataRepositoryType);
+ }
+
+ /** Builder helper class. */
+ public interface Builder {
+ /**
+ * Set the id of this {@link FiltersInner} instance.
+ *
+ * @param id Identifier of this RetrievalSearchFilter - unique per request.
+ * @return The FiltersInner builder.
+ */
+ Builder1 id(@Nonnull final String id);
+ }
+
+ /** Builder helper class. */
+ public interface Builder1 {
+ /**
+ * Set the dataRepositoryType of this {@link FiltersInner} instance.
+ *
+ * @param dataRepositoryType The dataRepositoryType of this {@link FiltersInner}
+ * @return The FiltersInner instance.
+ */
+ FiltersInner dataRepositoryType(@Nonnull final DataRepositoryType dataRepositoryType);
+ }
+}
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/KeyWordRetrievalScoringConfiguration.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/KeyWordRetrievalScoringConfiguration.java
new file mode 100644
index 000000000..b4d8edc88
--- /dev/null
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/KeyWordRetrievalScoringConfiguration.java
@@ -0,0 +1,262 @@
+/*
+ * Grounding
+ * Grounding is a service designed to handle data-related tasks, such as grounding and retrieval, using vector databases. It provides specialized data retrieval through these databases, grounding the retrieval process with your own external and context-relevant data. Grounding combines generative AI capabilities with the ability to use real-time, precise data to improve decision-making and business operations for specific AI-driven business solutions.
+ *
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.sap.ai.sdk.grounding.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.Objects;
+import java.util.Set;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+/** KeyWordRetrievalScoringConfiguration */
+// CHECKSTYLE:OFF
+public class KeyWordRetrievalScoringConfiguration
+// CHECKSTYLE:ON
+{
+ @JsonProperty("enabled")
+ private Boolean enabled = true;
+
+ @JsonProperty("weight")
+ private Integer weight = 1;
+
+ @JsonProperty("extractKeyWordsFromQuery")
+ private Boolean extractKeyWordsFromQuery = false;
+
+ @JsonAnySetter @JsonAnyGetter
+ private final Map cloudSdkCustomFields = new LinkedHashMap<>();
+
+ /** Default constructor for KeyWordRetrievalScoringConfiguration. */
+ protected KeyWordRetrievalScoringConfiguration() {}
+
+ /**
+ * Set the enabled of this {@link KeyWordRetrievalScoringConfiguration} instance and return the
+ * same instance.
+ *
+ * @param enabled Enable dense retrieval.
+ * @return The same instance of this {@link KeyWordRetrievalScoringConfiguration} class
+ */
+ @Nonnull
+ public KeyWordRetrievalScoringConfiguration enabled(@Nullable final Boolean enabled) {
+ this.enabled = enabled;
+ return this;
+ }
+
+ /**
+ * Enable dense retrieval.
+ *
+ * @return enabled The enabled of this {@link KeyWordRetrievalScoringConfiguration} instance.
+ */
+ @Nullable
+ public Boolean isEnabled() {
+ return enabled;
+ }
+
+ /**
+ * Set the enabled of this {@link KeyWordRetrievalScoringConfiguration} instance.
+ *
+ * @param enabled Enable dense retrieval.
+ */
+ public void setEnabled(@Nullable final Boolean enabled) {
+ this.enabled = enabled;
+ }
+
+ /**
+ * Set the weight of this {@link KeyWordRetrievalScoringConfiguration} instance and return the
+ * same instance.
+ *
+ * @param weight Contribution to final score.
+ * @return The same instance of this {@link KeyWordRetrievalScoringConfiguration} class
+ */
+ @Nonnull
+ public KeyWordRetrievalScoringConfiguration weight(@Nullable final Integer weight) {
+ this.weight = weight;
+ return this;
+ }
+
+ /**
+ * Contribution to final score.
+ *
+ * @return weight The weight of this {@link KeyWordRetrievalScoringConfiguration} instance.
+ */
+ @Nullable
+ public Integer getWeight() {
+ return weight;
+ }
+
+ /**
+ * Set the weight of this {@link KeyWordRetrievalScoringConfiguration} instance.
+ *
+ * @param weight Contribution to final score.
+ */
+ public void setWeight(@Nullable final Integer weight) {
+ this.weight = weight;
+ }
+
+ /**
+ * Set the extractKeyWordsFromQuery of this {@link KeyWordRetrievalScoringConfiguration} instance
+ * and return the same instance.
+ *
+ * @param extractKeyWordsFromQuery Extract Keywords from Query.
+ * @return The same instance of this {@link KeyWordRetrievalScoringConfiguration} class
+ */
+ @Nonnull
+ public KeyWordRetrievalScoringConfiguration extractKeyWordsFromQuery(
+ @Nullable final Boolean extractKeyWordsFromQuery) {
+ this.extractKeyWordsFromQuery = extractKeyWordsFromQuery;
+ return this;
+ }
+
+ /**
+ * Extract Keywords from Query.
+ *
+ * @return extractKeyWordsFromQuery The extractKeyWordsFromQuery of this {@link
+ * KeyWordRetrievalScoringConfiguration} instance.
+ */
+ @Nullable
+ public Boolean isExtractKeyWordsFromQuery() {
+ return extractKeyWordsFromQuery;
+ }
+
+ /**
+ * Set the extractKeyWordsFromQuery of this {@link KeyWordRetrievalScoringConfiguration} instance.
+ *
+ * @param extractKeyWordsFromQuery Extract Keywords from Query.
+ */
+ public void setExtractKeyWordsFromQuery(@Nullable final Boolean extractKeyWordsFromQuery) {
+ this.extractKeyWordsFromQuery = extractKeyWordsFromQuery;
+ }
+
+ /**
+ * Get the names of the unrecognizable properties of the {@link
+ * KeyWordRetrievalScoringConfiguration}.
+ *
+ * @return The set of properties names
+ */
+ @JsonIgnore
+ @Nonnull
+ public Set getCustomFieldNames() {
+ return cloudSdkCustomFields.keySet();
+ }
+
+ /**
+ * Get the value of an unrecognizable property of this {@link
+ * KeyWordRetrievalScoringConfiguration} instance.
+ *
+ * @deprecated Use {@link #toMap()} instead.
+ * @param name The name of the property
+ * @return The value of the property
+ * @throws NoSuchElementException If no property with the given name could be found.
+ */
+ @Nullable
+ @Deprecated
+ public Object getCustomField(@Nonnull final String name) throws NoSuchElementException {
+ if (!cloudSdkCustomFields.containsKey(name)) {
+ throw new NoSuchElementException(
+ "KeyWordRetrievalScoringConfiguration has no field with name '" + name + "'.");
+ }
+ return cloudSdkCustomFields.get(name);
+ }
+
+ /**
+ * Get the value of all properties of this {@link KeyWordRetrievalScoringConfiguration} instance
+ * including unrecognized properties.
+ *
+ * @return The map of all properties
+ */
+ @JsonIgnore
+ @Nonnull
+ public Map toMap() {
+ final Map declaredFields = new LinkedHashMap<>(cloudSdkCustomFields);
+ if (enabled != null) declaredFields.put("enabled", enabled);
+ if (weight != null) declaredFields.put("weight", weight);
+ if (extractKeyWordsFromQuery != null)
+ declaredFields.put("extractKeyWordsFromQuery", extractKeyWordsFromQuery);
+ return declaredFields;
+ }
+
+ /**
+ * Set an unrecognizable property of this {@link KeyWordRetrievalScoringConfiguration} instance.
+ * If the map previously contained a mapping for the key, the old value is replaced by the
+ * specified value.
+ *
+ * @param customFieldName The name of the property
+ * @param customFieldValue The value of the property
+ */
+ @JsonIgnore
+ public void setCustomField(@Nonnull String customFieldName, @Nullable Object customFieldValue) {
+ cloudSdkCustomFields.put(customFieldName, customFieldValue);
+ }
+
+ @Override
+ public boolean equals(@Nullable final java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ final KeyWordRetrievalScoringConfiguration keyWordRetrievalScoringConfiguration =
+ (KeyWordRetrievalScoringConfiguration) o;
+ return Objects.equals(
+ this.cloudSdkCustomFields, keyWordRetrievalScoringConfiguration.cloudSdkCustomFields)
+ && Objects.equals(this.enabled, keyWordRetrievalScoringConfiguration.enabled)
+ && Objects.equals(this.weight, keyWordRetrievalScoringConfiguration.weight)
+ && Objects.equals(
+ this.extractKeyWordsFromQuery,
+ keyWordRetrievalScoringConfiguration.extractKeyWordsFromQuery);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(enabled, weight, extractKeyWordsFromQuery, cloudSdkCustomFields);
+ }
+
+ @Override
+ @Nonnull
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("class KeyWordRetrievalScoringConfiguration {\n");
+ sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n");
+ sb.append(" weight: ").append(toIndentedString(weight)).append("\n");
+ sb.append(" extractKeyWordsFromQuery: ")
+ .append(toIndentedString(extractKeyWordsFromQuery))
+ .append("\n");
+ cloudSdkCustomFields.forEach(
+ (k, v) ->
+ sb.append(" ").append(k).append(": ").append(toIndentedString(v)).append("\n"));
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(final java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+ /**
+ * Create a new {@link KeyWordRetrievalScoringConfiguration} instance. No arguments are required.
+ */
+ public static KeyWordRetrievalScoringConfiguration create() {
+ return new KeyWordRetrievalScoringConfiguration();
+ }
+}
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/Left.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/Left.java
new file mode 100644
index 000000000..99c43cbcb
--- /dev/null
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/Left.java
@@ -0,0 +1,565 @@
+/*
+ * Grounding
+ * Grounding is a service designed to handle data-related tasks, such as grounding and retrieval, using vector databases. It provides specialized data retrieval through these databases, grounding the retrieval process with your own external and context-relevant data. Grounding combines generative AI capabilities with the ability to use real-time, precise data to improve decision-making and business operations for specific AI-driven business solutions.
+ *
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.sap.ai.sdk.grounding.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonValue;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.Objects;
+import java.util.Set;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+/** Left */
+// CHECKSTYLE:OFF
+public class Left
+// CHECKSTYLE:ON
+{
+ /** Gets or Sets operator */
+ public enum OperatorEnum {
+ /** The AND option of this Left */
+ AND("and"),
+
+ /** The OR option of this Left */
+ OR("or"),
+
+ /** The UNKNOWN_DEFAULT_OPEN_API option of this Left */
+ UNKNOWN_DEFAULT_OPEN_API("unknown_default_open_api");
+
+ private String value;
+
+ OperatorEnum(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Get the value of the enum
+ *
+ * @return The enum value
+ */
+ @JsonValue
+ @Nonnull
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * Get the String value of the enum value.
+ *
+ * @return The enum value as String
+ */
+ @Override
+ @Nonnull
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ /**
+ * Get the enum value from a String value
+ *
+ * @param value The String value
+ * @return The enum value of type Left
+ */
+ @JsonCreator
+ @Nonnull
+ public static OperatorEnum fromValue(@Nonnull final String value) {
+ for (OperatorEnum b : OperatorEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ return UNKNOWN_DEFAULT_OPEN_API;
+ }
+ }
+
+ @JsonProperty("operator")
+ private OperatorEnum operator;
+
+ @JsonProperty("left")
+ private Left left;
+
+ @JsonProperty("right")
+ private Right right;
+
+ @JsonProperty("key")
+ private String key;
+
+ @JsonProperty("value")
+ private List value = new ArrayList<>();
+
+ /** Gets or Sets scope */
+ public enum ScopeEnum {
+ /** The REPOSITORY option of this Left */
+ REPOSITORY("repository"),
+
+ /** The DOCUMENT option of this Left */
+ DOCUMENT("document"),
+
+ /** The CHUNK option of this Left */
+ CHUNK("chunk"),
+
+ /** The UNKNOWN_DEFAULT_OPEN_API option of this Left */
+ UNKNOWN_DEFAULT_OPEN_API("unknown_default_open_api");
+
+ private String value;
+
+ ScopeEnum(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Get the value of the enum
+ *
+ * @return The enum value
+ */
+ @JsonValue
+ @Nonnull
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * Get the String value of the enum value.
+ *
+ * @return The enum value as String
+ */
+ @Override
+ @Nonnull
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ /**
+ * Get the enum value from a String value
+ *
+ * @param value The String value
+ * @return The enum value of type Left
+ */
+ @JsonCreator
+ @Nonnull
+ public static ScopeEnum fromValue(@Nonnull final String value) {
+ for (ScopeEnum b : ScopeEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ return UNKNOWN_DEFAULT_OPEN_API;
+ }
+ }
+
+ @JsonProperty("scope")
+ private ScopeEnum scope = ScopeEnum.DOCUMENT;
+
+ @JsonAnySetter @JsonAnyGetter
+ private final Map cloudSdkCustomFields = new LinkedHashMap<>();
+
+ /** Default constructor for Left. */
+ protected Left() {}
+
+ /**
+ * Set the operator of this {@link Left} instance and return the same instance.
+ *
+ * @param operator The operator of this {@link Left}
+ * @return The same instance of this {@link Left} class
+ */
+ @Nonnull
+ public Left operator(@Nonnull final OperatorEnum operator) {
+ this.operator = operator;
+ return this;
+ }
+
+ /**
+ * Get operator
+ *
+ * @return operator The operator of this {@link Left} instance.
+ */
+ @Nonnull
+ public OperatorEnum getOperator() {
+ return operator;
+ }
+
+ /**
+ * Set the operator of this {@link Left} instance.
+ *
+ * @param operator The operator of this {@link Left}
+ */
+ public void setOperator(@Nonnull final OperatorEnum operator) {
+ this.operator = operator;
+ }
+
+ /**
+ * Set the left of this {@link Left} instance and return the same instance.
+ *
+ * @param left The left of this {@link Left}
+ * @return The same instance of this {@link Left} class
+ */
+ @Nonnull
+ public Left left(@Nonnull final Left left) {
+ this.left = left;
+ return this;
+ }
+
+ /**
+ * Get left
+ *
+ * @return left The left of this {@link Left} instance.
+ */
+ @Nonnull
+ public Left getLeft() {
+ return left;
+ }
+
+ /**
+ * Set the left of this {@link Left} instance.
+ *
+ * @param left The left of this {@link Left}
+ */
+ public void setLeft(@Nonnull final Left left) {
+ this.left = left;
+ }
+
+ /**
+ * Set the right of this {@link Left} instance and return the same instance.
+ *
+ * @param right The right of this {@link Left}
+ * @return The same instance of this {@link Left} class
+ */
+ @Nonnull
+ public Left right(@Nonnull final Right right) {
+ this.right = right;
+ return this;
+ }
+
+ /**
+ * Get right
+ *
+ * @return right The right of this {@link Left} instance.
+ */
+ @Nonnull
+ public Right getRight() {
+ return right;
+ }
+
+ /**
+ * Set the right of this {@link Left} instance.
+ *
+ * @param right The right of this {@link Left}
+ */
+ public void setRight(@Nonnull final Right right) {
+ this.right = right;
+ }
+
+ /**
+ * Set the key of this {@link Left} instance and return the same instance.
+ *
+ * @param key The key of this {@link Left}
+ * @return The same instance of this {@link Left} class
+ */
+ @Nonnull
+ public Left key(@Nonnull final String key) {
+ this.key = key;
+ return this;
+ }
+
+ /**
+ * Get key
+ *
+ * @return key The key of this {@link Left} instance.
+ */
+ @Nonnull
+ public String getKey() {
+ return key;
+ }
+
+ /**
+ * Set the key of this {@link Left} instance.
+ *
+ * @param key The key of this {@link Left}
+ */
+ public void setKey(@Nonnull final String key) {
+ this.key = key;
+ }
+
+ /**
+ * Set the value of this {@link Left} instance and return the same instance.
+ *
+ * @param value The value of this {@link Left}
+ * @return The same instance of this {@link Left} class
+ */
+ @Nonnull
+ public Left value(@Nonnull final List value) {
+ this.value = value;
+ return this;
+ }
+
+ /**
+ * Add one value instance to this {@link Left}.
+ *
+ * @param valueItem The value that should be added
+ * @return The same instance of type {@link Left}
+ */
+ @Nonnull
+ public Left addValueItem(@Nonnull final String valueItem) {
+ if (this.value == null) {
+ this.value = new ArrayList<>();
+ }
+ this.value.add(valueItem);
+ return this;
+ }
+
+ /**
+ * Get value
+ *
+ * @return value The value of this {@link Left} instance.
+ */
+ @Nonnull
+ public List getValue() {
+ return value;
+ }
+
+ /**
+ * Set the value of this {@link Left} instance.
+ *
+ * @param value The value of this {@link Left}
+ */
+ public void setValue(@Nonnull final List value) {
+ this.value = value;
+ }
+
+ /**
+ * Set the scope of this {@link Left} instance and return the same instance.
+ *
+ * @param scope The scope of this {@link Left}
+ * @return The same instance of this {@link Left} class
+ */
+ @Nonnull
+ public Left scope(@Nullable final ScopeEnum scope) {
+ this.scope = scope;
+ return this;
+ }
+
+ /**
+ * Get scope
+ *
+ * @return scope The scope of this {@link Left} instance.
+ */
+ @Nonnull
+ public ScopeEnum getScope() {
+ return scope;
+ }
+
+ /**
+ * Set the scope of this {@link Left} instance.
+ *
+ * @param scope The scope of this {@link Left}
+ */
+ public void setScope(@Nullable final ScopeEnum scope) {
+ this.scope = scope;
+ }
+
+ /**
+ * Get the names of the unrecognizable properties of the {@link Left}.
+ *
+ * @return The set of properties names
+ */
+ @JsonIgnore
+ @Nonnull
+ public Set getCustomFieldNames() {
+ return cloudSdkCustomFields.keySet();
+ }
+
+ /**
+ * Get the value of an unrecognizable property of this {@link Left} instance.
+ *
+ * @deprecated Use {@link #toMap()} instead.
+ * @param name The name of the property
+ * @return The value of the property
+ * @throws NoSuchElementException If no property with the given name could be found.
+ */
+ @Nullable
+ @Deprecated
+ public Object getCustomField(@Nonnull final String name) throws NoSuchElementException {
+ if (!cloudSdkCustomFields.containsKey(name)) {
+ throw new NoSuchElementException("Left has no field with name '" + name + "'.");
+ }
+ return cloudSdkCustomFields.get(name);
+ }
+
+ /**
+ * Get the value of all properties of this {@link Left} instance including unrecognized
+ * properties.
+ *
+ * @return The map of all properties
+ */
+ @JsonIgnore
+ @Nonnull
+ public Map toMap() {
+ final Map declaredFields = new LinkedHashMap<>(cloudSdkCustomFields);
+ if (operator != null) declaredFields.put("operator", operator);
+ if (left != null) declaredFields.put("left", left);
+ if (right != null) declaredFields.put("right", right);
+ if (key != null) declaredFields.put("key", key);
+ if (value != null) declaredFields.put("value", value);
+ if (scope != null) declaredFields.put("scope", scope);
+ return declaredFields;
+ }
+
+ /**
+ * Set an unrecognizable property of this {@link Left} instance. If the map previously contained a
+ * mapping for the key, the old value is replaced by the specified value.
+ *
+ * @param customFieldName The name of the property
+ * @param customFieldValue The value of the property
+ */
+ @JsonIgnore
+ public void setCustomField(@Nonnull String customFieldName, @Nullable Object customFieldValue) {
+ cloudSdkCustomFields.put(customFieldName, customFieldValue);
+ }
+
+ @Override
+ public boolean equals(@Nullable final java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ final Left left = (Left) o;
+ return Objects.equals(this.cloudSdkCustomFields, left.cloudSdkCustomFields)
+ && Objects.equals(this.operator, left.operator)
+ && Objects.equals(this.left, left.left)
+ && Objects.equals(this.right, left.right)
+ && Objects.equals(this.key, left.key)
+ && Objects.equals(this.value, left.value)
+ && Objects.equals(this.scope, left.scope);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(operator, left, right, key, value, scope, cloudSdkCustomFields);
+ }
+
+ @Override
+ @Nonnull
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("class Left {\n");
+ sb.append(" operator: ").append(toIndentedString(operator)).append("\n");
+ sb.append(" left: ").append(toIndentedString(left)).append("\n");
+ sb.append(" right: ").append(toIndentedString(right)).append("\n");
+ sb.append(" key: ").append(toIndentedString(key)).append("\n");
+ sb.append(" value: ").append(toIndentedString(value)).append("\n");
+ sb.append(" scope: ").append(toIndentedString(scope)).append("\n");
+ cloudSdkCustomFields.forEach(
+ (k, v) ->
+ sb.append(" ").append(k).append(": ").append(toIndentedString(v)).append("\n"));
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(final java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+ /**
+ * Create a type-safe, fluent-api builder object to construct a new {@link Left} instance with all
+ * required arguments.
+ */
+ public static Builder create() {
+ return (operator) ->
+ (left) ->
+ (right) ->
+ (key) ->
+ (value) ->
+ new Left().operator(operator).left(left).right(right).key(key).value(value);
+ }
+
+ /** Builder helper class. */
+ public interface Builder {
+ /**
+ * Set the operator of this {@link Left} instance.
+ *
+ * @param operator The operator of this {@link Left}
+ * @return The Left builder.
+ */
+ Builder1 operator(@Nonnull final OperatorEnum operator);
+ }
+
+ /** Builder helper class. */
+ public interface Builder1 {
+ /**
+ * Set the left of this {@link Left} instance.
+ *
+ * @param left The left of this {@link Left}
+ * @return The Left builder.
+ */
+ Builder2 left(@Nonnull final Left left);
+ }
+
+ /** Builder helper class. */
+ public interface Builder2 {
+ /**
+ * Set the right of this {@link Left} instance.
+ *
+ * @param right The right of this {@link Left}
+ * @return The Left builder.
+ */
+ Builder3 right(@Nonnull final Right right);
+ }
+
+ /** Builder helper class. */
+ public interface Builder3 {
+ /**
+ * Set the key of this {@link Left} instance.
+ *
+ * @param key The key of this {@link Left}
+ * @return The Left builder.
+ */
+ Builder4 key(@Nonnull final String key);
+ }
+
+ /** Builder helper class. */
+ public interface Builder4 {
+ /**
+ * Set the value of this {@link Left} instance.
+ *
+ * @param value The value of this {@link Left}
+ * @return The Left instance.
+ */
+ Left value(@Nonnull final List value);
+
+ /**
+ * Set the value of this {@link Left} instance.
+ *
+ * @param value The value of this {@link Left}
+ * @return The Left instance.
+ */
+ default Left value(@Nonnull final String... value) {
+ return value(Arrays.asList(value));
+ }
+ }
+}
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/Left1.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/Left1.java
new file mode 100644
index 000000000..568fc2dc7
--- /dev/null
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/Left1.java
@@ -0,0 +1,570 @@
+/*
+ * Grounding
+ * Grounding is a service designed to handle data-related tasks, such as grounding and retrieval, using vector databases. It provides specialized data retrieval through these databases, grounding the retrieval process with your own external and context-relevant data. Grounding combines generative AI capabilities with the ability to use real-time, precise data to improve decision-making and business operations for specific AI-driven business solutions.
+ *
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.sap.ai.sdk.grounding.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonValue;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.Objects;
+import java.util.Set;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+/** Left operand of the boolean expression */
+// CHECKSTYLE:OFF
+public class Left1
+// CHECKSTYLE:ON
+{
+ /** Boolean operator for combining filter conditions */
+ public enum OperatorEnum {
+ /** The AND option of this Left1 */
+ AND("and"),
+
+ /** The OR option of this Left1 */
+ OR("or"),
+
+ /** The UNKNOWN_DEFAULT_OPEN_API option of this Left1 */
+ UNKNOWN_DEFAULT_OPEN_API("unknown_default_open_api");
+
+ private String value;
+
+ OperatorEnum(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Get the value of the enum
+ *
+ * @return The enum value
+ */
+ @JsonValue
+ @Nonnull
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * Get the String value of the enum value.
+ *
+ * @return The enum value as String
+ */
+ @Override
+ @Nonnull
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ /**
+ * Get the enum value from a String value
+ *
+ * @param value The String value
+ * @return The enum value of type Left1
+ */
+ @JsonCreator
+ @Nonnull
+ public static OperatorEnum fromValue(@Nonnull final String value) {
+ for (OperatorEnum b : OperatorEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ return UNKNOWN_DEFAULT_OPEN_API;
+ }
+ }
+
+ @JsonProperty("operator")
+ private OperatorEnum operator;
+
+ @JsonProperty("left")
+ private Left1 left;
+
+ @JsonProperty("right")
+ private Right1 right;
+
+ @JsonProperty("key")
+ private String key;
+
+ @JsonProperty("value")
+ private List value = new ArrayList<>();
+
+ /** Scope of the metadata filter (e.g., collection, document, chunk) */
+ public enum ScopeEnum {
+ /** The COLLECTION option of this Left1 */
+ COLLECTION("collection"),
+
+ /** The DOCUMENT option of this Left1 */
+ DOCUMENT("document"),
+
+ /** The CHUNK option of this Left1 */
+ CHUNK("chunk"),
+
+ /** The UNKNOWN_DEFAULT_OPEN_API option of this Left1 */
+ UNKNOWN_DEFAULT_OPEN_API("unknown_default_open_api");
+
+ private String value;
+
+ ScopeEnum(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Get the value of the enum
+ *
+ * @return The enum value
+ */
+ @JsonValue
+ @Nonnull
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * Get the String value of the enum value.
+ *
+ * @return The enum value as String
+ */
+ @Override
+ @Nonnull
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ /**
+ * Get the enum value from a String value
+ *
+ * @param value The String value
+ * @return The enum value of type Left1
+ */
+ @JsonCreator
+ @Nonnull
+ public static ScopeEnum fromValue(@Nonnull final String value) {
+ for (ScopeEnum b : ScopeEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ return UNKNOWN_DEFAULT_OPEN_API;
+ }
+ }
+
+ @JsonProperty("scope")
+ private ScopeEnum scope = ScopeEnum.DOCUMENT;
+
+ @JsonAnySetter @JsonAnyGetter
+ private final Map cloudSdkCustomFields = new LinkedHashMap<>();
+
+ /** Default constructor for Left1. */
+ protected Left1() {}
+
+ /**
+ * Set the operator of this {@link Left1} instance and return the same instance.
+ *
+ * @param operator Boolean operator for combining filter conditions
+ * @return The same instance of this {@link Left1} class
+ */
+ @Nonnull
+ public Left1 operator(@Nonnull final OperatorEnum operator) {
+ this.operator = operator;
+ return this;
+ }
+
+ /**
+ * Boolean operator for combining filter conditions
+ *
+ * @return operator The operator of this {@link Left1} instance.
+ */
+ @Nonnull
+ public OperatorEnum getOperator() {
+ return operator;
+ }
+
+ /**
+ * Set the operator of this {@link Left1} instance.
+ *
+ * @param operator Boolean operator for combining filter conditions
+ */
+ public void setOperator(@Nonnull final OperatorEnum operator) {
+ this.operator = operator;
+ }
+
+ /**
+ * Set the left of this {@link Left1} instance and return the same instance.
+ *
+ * @param left The left of this {@link Left1}
+ * @return The same instance of this {@link Left1} class
+ */
+ @Nonnull
+ public Left1 left(@Nonnull final Left1 left) {
+ this.left = left;
+ return this;
+ }
+
+ /**
+ * Get left
+ *
+ * @return left The left of this {@link Left1} instance.
+ */
+ @Nonnull
+ public Left1 getLeft() {
+ return left;
+ }
+
+ /**
+ * Set the left of this {@link Left1} instance.
+ *
+ * @param left The left of this {@link Left1}
+ */
+ public void setLeft(@Nonnull final Left1 left) {
+ this.left = left;
+ }
+
+ /**
+ * Set the right of this {@link Left1} instance and return the same instance.
+ *
+ * @param right The right of this {@link Left1}
+ * @return The same instance of this {@link Left1} class
+ */
+ @Nonnull
+ public Left1 right(@Nonnull final Right1 right) {
+ this.right = right;
+ return this;
+ }
+
+ /**
+ * Get right
+ *
+ * @return right The right of this {@link Left1} instance.
+ */
+ @Nonnull
+ public Right1 getRight() {
+ return right;
+ }
+
+ /**
+ * Set the right of this {@link Left1} instance.
+ *
+ * @param right The right of this {@link Left1}
+ */
+ public void setRight(@Nonnull final Right1 right) {
+ this.right = right;
+ }
+
+ /**
+ * Set the key of this {@link Left1} instance and return the same instance.
+ *
+ * @param key The key of this {@link Left1}
+ * @return The same instance of this {@link Left1} class
+ */
+ @Nonnull
+ public Left1 key(@Nonnull final String key) {
+ this.key = key;
+ return this;
+ }
+
+ /**
+ * Get key
+ *
+ * @return key The key of this {@link Left1} instance.
+ */
+ @Nonnull
+ public String getKey() {
+ return key;
+ }
+
+ /**
+ * Set the key of this {@link Left1} instance.
+ *
+ * @param key The key of this {@link Left1}
+ */
+ public void setKey(@Nonnull final String key) {
+ this.key = key;
+ }
+
+ /**
+ * Set the value of this {@link Left1} instance and return the same instance.
+ *
+ * @param value The value of this {@link Left1}
+ * @return The same instance of this {@link Left1} class
+ */
+ @Nonnull
+ public Left1 value(@Nonnull final List value) {
+ this.value = value;
+ return this;
+ }
+
+ /**
+ * Add one value instance to this {@link Left1}.
+ *
+ * @param valueItem The value that should be added
+ * @return The same instance of type {@link Left1}
+ */
+ @Nonnull
+ public Left1 addValueItem(@Nonnull final String valueItem) {
+ if (this.value == null) {
+ this.value = new ArrayList<>();
+ }
+ this.value.add(valueItem);
+ return this;
+ }
+
+ /**
+ * Get value
+ *
+ * @return value The value of this {@link Left1} instance.
+ */
+ @Nonnull
+ public List getValue() {
+ return value;
+ }
+
+ /**
+ * Set the value of this {@link Left1} instance.
+ *
+ * @param value The value of this {@link Left1}
+ */
+ public void setValue(@Nonnull final List value) {
+ this.value = value;
+ }
+
+ /**
+ * Set the scope of this {@link Left1} instance and return the same instance.
+ *
+ * @param scope Scope of the metadata filter (e.g., collection, document, chunk)
+ * @return The same instance of this {@link Left1} class
+ */
+ @Nonnull
+ public Left1 scope(@Nullable final ScopeEnum scope) {
+ this.scope = scope;
+ return this;
+ }
+
+ /**
+ * Scope of the metadata filter (e.g., collection, document, chunk)
+ *
+ * @return scope The scope of this {@link Left1} instance.
+ */
+ @Nonnull
+ public ScopeEnum getScope() {
+ return scope;
+ }
+
+ /**
+ * Set the scope of this {@link Left1} instance.
+ *
+ * @param scope Scope of the metadata filter (e.g., collection, document, chunk)
+ */
+ public void setScope(@Nullable final ScopeEnum scope) {
+ this.scope = scope;
+ }
+
+ /**
+ * Get the names of the unrecognizable properties of the {@link Left1}.
+ *
+ * @return The set of properties names
+ */
+ @JsonIgnore
+ @Nonnull
+ public Set getCustomFieldNames() {
+ return cloudSdkCustomFields.keySet();
+ }
+
+ /**
+ * Get the value of an unrecognizable property of this {@link Left1} instance.
+ *
+ * @deprecated Use {@link #toMap()} instead.
+ * @param name The name of the property
+ * @return The value of the property
+ * @throws NoSuchElementException If no property with the given name could be found.
+ */
+ @Nullable
+ @Deprecated
+ public Object getCustomField(@Nonnull final String name) throws NoSuchElementException {
+ if (!cloudSdkCustomFields.containsKey(name)) {
+ throw new NoSuchElementException("Left1 has no field with name '" + name + "'.");
+ }
+ return cloudSdkCustomFields.get(name);
+ }
+
+ /**
+ * Get the value of all properties of this {@link Left1} instance including unrecognized
+ * properties.
+ *
+ * @return The map of all properties
+ */
+ @JsonIgnore
+ @Nonnull
+ public Map toMap() {
+ final Map declaredFields = new LinkedHashMap<>(cloudSdkCustomFields);
+ if (operator != null) declaredFields.put("operator", operator);
+ if (left != null) declaredFields.put("left", left);
+ if (right != null) declaredFields.put("right", right);
+ if (key != null) declaredFields.put("key", key);
+ if (value != null) declaredFields.put("value", value);
+ if (scope != null) declaredFields.put("scope", scope);
+ return declaredFields;
+ }
+
+ /**
+ * Set an unrecognizable property of this {@link Left1} instance. If the map previously contained
+ * a mapping for the key, the old value is replaced by the specified value.
+ *
+ * @param customFieldName The name of the property
+ * @param customFieldValue The value of the property
+ */
+ @JsonIgnore
+ public void setCustomField(@Nonnull String customFieldName, @Nullable Object customFieldValue) {
+ cloudSdkCustomFields.put(customFieldName, customFieldValue);
+ }
+
+ @Override
+ public boolean equals(@Nullable final java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ final Left1 left1 = (Left1) o;
+ return Objects.equals(this.cloudSdkCustomFields, left1.cloudSdkCustomFields)
+ && Objects.equals(this.operator, left1.operator)
+ && Objects.equals(this.left, left1.left)
+ && Objects.equals(this.right, left1.right)
+ && Objects.equals(this.key, left1.key)
+ && Objects.equals(this.value, left1.value)
+ && Objects.equals(this.scope, left1.scope);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(operator, left, right, key, value, scope, cloudSdkCustomFields);
+ }
+
+ @Override
+ @Nonnull
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("class Left1 {\n");
+ sb.append(" operator: ").append(toIndentedString(operator)).append("\n");
+ sb.append(" left: ").append(toIndentedString(left)).append("\n");
+ sb.append(" right: ").append(toIndentedString(right)).append("\n");
+ sb.append(" key: ").append(toIndentedString(key)).append("\n");
+ sb.append(" value: ").append(toIndentedString(value)).append("\n");
+ sb.append(" scope: ").append(toIndentedString(scope)).append("\n");
+ cloudSdkCustomFields.forEach(
+ (k, v) ->
+ sb.append(" ").append(k).append(": ").append(toIndentedString(v)).append("\n"));
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(final java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+ /**
+ * Create a type-safe, fluent-api builder object to construct a new {@link Left1} instance with
+ * all required arguments.
+ */
+ public static Builder create() {
+ return (operator) ->
+ (left) ->
+ (right) ->
+ (key) ->
+ (value) ->
+ new Left1()
+ .operator(operator)
+ .left(left)
+ .right(right)
+ .key(key)
+ .value(value);
+ }
+
+ /** Builder helper class. */
+ public interface Builder {
+ /**
+ * Set the operator of this {@link Left1} instance.
+ *
+ * @param operator Boolean operator for combining filter conditions
+ * @return The Left1 builder.
+ */
+ Builder1 operator(@Nonnull final OperatorEnum operator);
+ }
+
+ /** Builder helper class. */
+ public interface Builder1 {
+ /**
+ * Set the left of this {@link Left1} instance.
+ *
+ * @param left The left of this {@link Left1}
+ * @return The Left1 builder.
+ */
+ Builder2 left(@Nonnull final Left1 left);
+ }
+
+ /** Builder helper class. */
+ public interface Builder2 {
+ /**
+ * Set the right of this {@link Left1} instance.
+ *
+ * @param right The right of this {@link Left1}
+ * @return The Left1 builder.
+ */
+ Builder3 right(@Nonnull final Right1 right);
+ }
+
+ /** Builder helper class. */
+ public interface Builder3 {
+ /**
+ * Set the key of this {@link Left1} instance.
+ *
+ * @param key The key of this {@link Left1}
+ * @return The Left1 builder.
+ */
+ Builder4 key(@Nonnull final String key);
+ }
+
+ /** Builder helper class. */
+ public interface Builder4 {
+ /**
+ * Set the value of this {@link Left1} instance.
+ *
+ * @param value The value of this {@link Left1}
+ * @return The Left1 instance.
+ */
+ Left1 value(@Nonnull final List value);
+
+ /**
+ * Set the value of this {@link Left1} instance.
+ *
+ * @param value The value of this {@link Left1}
+ * @return The Left1 instance.
+ */
+ default Left1 value(@Nonnull final String... value) {
+ return value(Arrays.asList(value));
+ }
+ }
+}
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/LocationInner.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/LocationInner.java
new file mode 100644
index 000000000..1f72e5aa3
--- /dev/null
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/LocationInner.java
@@ -0,0 +1,49 @@
+/*
+ * Grounding
+ * Grounding is a service designed to handle data-related tasks, such as grounding and retrieval, using vector databases. It provides specialized data retrieval through these databases, grounding the retrieval process with your own external and context-relevant data. Grounding combines generative AI capabilities with the ability to use real-time, precise data to improve decision-making and business operations for specific AI-driven business solutions.
+ *
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.sap.ai.sdk.grounding.model;
+
+import javax.annotation.Nonnull;
+
+/** LocationInner */
+public interface LocationInner {
+ /** Helper class to create {@code String } that implements {@link LocationInner}. */
+ record InnerString(@com.fasterxml.jackson.annotation.JsonValue @Nonnull String value)
+ implements LocationInner {}
+
+ /**
+ * Creator to enable deserialization of {@code String }.
+ *
+ * @param val the value to use
+ * @return a new instance of {@link InnerString}.
+ */
+ @com.fasterxml.jackson.annotation.JsonCreator
+ @Nonnull
+ static InnerString create(@Nonnull final String val) {
+ return new InnerString(val);
+ }
+
+ /** Helper class to create {@code Integer } that implements {@link LocationInner}. */
+ record InnerInteger(@com.fasterxml.jackson.annotation.JsonValue @Nonnull Integer value)
+ implements LocationInner {}
+
+ /**
+ * Creator to enable deserialization of {@code Integer }.
+ *
+ * @param val the value to use
+ * @return a new instance of {@link InnerInteger}.
+ */
+ @com.fasterxml.jackson.annotation.JsonCreator
+ @Nonnull
+ static InnerInteger create(@Nonnull final Integer val) {
+ return new InnerInteger(val);
+ }
+}
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/MergeStrategyReranker.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/MergeStrategyReranker.java
new file mode 100644
index 000000000..960d24c33
--- /dev/null
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/MergeStrategyReranker.java
@@ -0,0 +1,369 @@
+/*
+ * Grounding
+ * Grounding is a service designed to handle data-related tasks, such as grounding and retrieval, using vector databases. It provides specialized data retrieval through these databases, grounding the retrieval process with your own external and context-relevant data. Grounding combines generative AI capabilities with the ability to use real-time, precise data to improve decision-making and business operations for specific AI-driven business solutions.
+ *
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.sap.ai.sdk.grounding.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonValue;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.Objects;
+import java.util.Set;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+/**
+ * The MergeStrategyReranker will call a reranker LLM to merge the given PerFilterSearchResult
+ * instances. This strategy adds latency, but yields good results.
+ */
+// CHECKSTYLE:OFF
+public class MergeStrategyReranker
+ implements RetrievalSearchInputPostProcessingInnerStrategy, Strategy
+// CHECKSTYLE:ON
+{
+ @JsonProperty("type")
+ private MergeStrategyType type;
+
+ /** The RerankerModel to use. */
+ public enum ModelEnum {
+ /** The COHERE_3_5 option of this MergeStrategyReranker */
+ COHERE_3_5("cohere-3.5"),
+
+ /** The UNKNOWN_DEFAULT_OPEN_API option of this MergeStrategyReranker */
+ UNKNOWN_DEFAULT_OPEN_API("unknown_default_open_api");
+
+ private String value;
+
+ ModelEnum(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Get the value of the enum
+ *
+ * @return The enum value
+ */
+ @JsonValue
+ @Nonnull
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * Get the String value of the enum value.
+ *
+ * @return The enum value as String
+ */
+ @Override
+ @Nonnull
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ /**
+ * Get the enum value from a String value
+ *
+ * @param value The String value
+ * @return The enum value of type MergeStrategyReranker
+ */
+ @JsonCreator
+ @Nullable
+ public static ModelEnum fromValue(@Nonnull final String value) {
+ for (ModelEnum b : ModelEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ return null;
+ }
+ }
+
+ @JsonProperty("model")
+ private ModelEnum model = ModelEnum.COHERE_3_5;
+
+ @JsonProperty("boosting")
+ private List boosting;
+
+ @JsonProperty("includeAllMetaData")
+ private Boolean includeAllMetaData = false;
+
+ @JsonAnySetter @JsonAnyGetter
+ private final Map cloudSdkCustomFields = new LinkedHashMap<>();
+
+ /** Default constructor for MergeStrategyReranker. */
+ protected MergeStrategyReranker() {}
+
+ /**
+ * Set the type of this {@link MergeStrategyReranker} instance and return the same instance.
+ *
+ * @param type The type of this {@link MergeStrategyReranker}
+ * @return The same instance of this {@link MergeStrategyReranker} class
+ */
+ @Nonnull
+ public MergeStrategyReranker type(@Nullable final MergeStrategyType type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get type
+ *
+ * @return type The type of this {@link MergeStrategyReranker} instance.
+ */
+ @Nonnull
+ public MergeStrategyType getType() {
+ return type;
+ }
+
+ /**
+ * Set the type of this {@link MergeStrategyReranker} instance.
+ *
+ * @param type The type of this {@link MergeStrategyReranker}
+ */
+ public void setType(@Nullable final MergeStrategyType type) {
+ this.type = type;
+ }
+
+ /**
+ * Set the model of this {@link MergeStrategyReranker} instance and return the same instance.
+ *
+ * @param model The RerankerModel to use.
+ * @return The same instance of this {@link MergeStrategyReranker} class
+ */
+ @Nonnull
+ public MergeStrategyReranker model(@Nullable final ModelEnum model) {
+ this.model = model;
+ return this;
+ }
+
+ /**
+ * The RerankerModel to use.
+ *
+ * @return model The model of this {@link MergeStrategyReranker} instance.
+ */
+ @Nullable
+ public ModelEnum getModel() {
+ return model;
+ }
+
+ /**
+ * Set the model of this {@link MergeStrategyReranker} instance.
+ *
+ * @param model The RerankerModel to use.
+ */
+ public void setModel(@Nullable final ModelEnum model) {
+ this.model = model;
+ }
+
+ /**
+ * Set the boosting of this {@link MergeStrategyReranker} instance and return the same instance.
+ *
+ * @param boosting Key-value pairs to be included in the ranking process, to boost related chunks
+ * according to chunk content and metadata, if includeMetaData is true.
+ * @return The same instance of this {@link MergeStrategyReranker} class
+ */
+ @Nonnull
+ public MergeStrategyReranker boosting(
+ @Nullable final List boosting) {
+ this.boosting = boosting;
+ return this;
+ }
+
+ /**
+ * Add one boosting instance to this {@link MergeStrategyReranker}.
+ *
+ * @param boostingItem The boosting that should be added
+ * @return The same instance of type {@link MergeStrategyReranker}
+ */
+ @Nonnull
+ public MergeStrategyReranker addBoostingItem(
+ @Nonnull final MergeStrategyRerankerBoostingInner boostingItem) {
+ if (this.boosting == null) {
+ this.boosting = new ArrayList<>();
+ }
+ this.boosting.add(boostingItem);
+ return this;
+ }
+
+ /**
+ * Key-value pairs to be included in the ranking process, to boost related chunks according to
+ * chunk content and metadata, if includeMetaData is true.
+ *
+ * @return boosting The boosting of this {@link MergeStrategyReranker} instance.
+ */
+ @Nullable
+ public List getBoosting() {
+ return boosting;
+ }
+
+ /**
+ * Set the boosting of this {@link MergeStrategyReranker} instance.
+ *
+ * @param boosting Key-value pairs to be included in the ranking process, to boost related chunks
+ * according to chunk content and metadata, if includeMetaData is true.
+ */
+ public void setBoosting(@Nullable final List boosting) {
+ this.boosting = boosting;
+ }
+
+ /**
+ * Set the includeAllMetaData of this {@link MergeStrategyReranker} instance and return the same
+ * instance.
+ *
+ * @param includeAllMetaData If true, document and chunk metadata are sent to the reranker LLM
+ * along with the text content of the chunk.
+ * @return The same instance of this {@link MergeStrategyReranker} class
+ */
+ @Nonnull
+ public MergeStrategyReranker includeAllMetaData(@Nullable final Boolean includeAllMetaData) {
+ this.includeAllMetaData = includeAllMetaData;
+ return this;
+ }
+
+ /**
+ * If true, document and chunk metadata are sent to the reranker LLM along with the text content
+ * of the chunk.
+ *
+ * @return includeAllMetaData The includeAllMetaData of this {@link MergeStrategyReranker}
+ * instance.
+ */
+ @Nullable
+ public Boolean isIncludeAllMetaData() {
+ return includeAllMetaData;
+ }
+
+ /**
+ * Set the includeAllMetaData of this {@link MergeStrategyReranker} instance.
+ *
+ * @param includeAllMetaData If true, document and chunk metadata are sent to the reranker LLM
+ * along with the text content of the chunk.
+ */
+ public void setIncludeAllMetaData(@Nullable final Boolean includeAllMetaData) {
+ this.includeAllMetaData = includeAllMetaData;
+ }
+
+ /**
+ * Get the names of the unrecognizable properties of the {@link MergeStrategyReranker}.
+ *
+ * @return The set of properties names
+ */
+ @JsonIgnore
+ @Nonnull
+ public Set getCustomFieldNames() {
+ return cloudSdkCustomFields.keySet();
+ }
+
+ /**
+ * Get the value of an unrecognizable property of this {@link MergeStrategyReranker} instance.
+ *
+ * @deprecated Use {@link #toMap()} instead.
+ * @param name The name of the property
+ * @return The value of the property
+ * @throws NoSuchElementException If no property with the given name could be found.
+ */
+ @Nullable
+ @Deprecated
+ public Object getCustomField(@Nonnull final String name) throws NoSuchElementException {
+ if (!cloudSdkCustomFields.containsKey(name)) {
+ throw new NoSuchElementException(
+ "MergeStrategyReranker has no field with name '" + name + "'.");
+ }
+ return cloudSdkCustomFields.get(name);
+ }
+
+ /**
+ * Get the value of all properties of this {@link MergeStrategyReranker} instance including
+ * unrecognized properties.
+ *
+ * @return The map of all properties
+ */
+ @JsonIgnore
+ @Nonnull
+ public Map toMap() {
+ final Map declaredFields = new LinkedHashMap<>(cloudSdkCustomFields);
+ if (type != null) declaredFields.put("type", type);
+ if (model != null) declaredFields.put("model", model);
+ if (boosting != null) declaredFields.put("boosting", boosting);
+ if (includeAllMetaData != null) declaredFields.put("includeAllMetaData", includeAllMetaData);
+ return declaredFields;
+ }
+
+ /**
+ * Set an unrecognizable property of this {@link MergeStrategyReranker} instance. If the map
+ * previously contained a mapping for the key, the old value is replaced by the specified value.
+ *
+ * @param customFieldName The name of the property
+ * @param customFieldValue The value of the property
+ */
+ @JsonIgnore
+ public void setCustomField(@Nonnull String customFieldName, @Nullable Object customFieldValue) {
+ cloudSdkCustomFields.put(customFieldName, customFieldValue);
+ }
+
+ @Override
+ public boolean equals(@Nullable final java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ final MergeStrategyReranker mergeStrategyReranker = (MergeStrategyReranker) o;
+ return Objects.equals(this.cloudSdkCustomFields, mergeStrategyReranker.cloudSdkCustomFields)
+ && Objects.equals(this.type, mergeStrategyReranker.type)
+ && Objects.equals(this.model, mergeStrategyReranker.model)
+ && Objects.equals(this.boosting, mergeStrategyReranker.boosting)
+ && Objects.equals(this.includeAllMetaData, mergeStrategyReranker.includeAllMetaData);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(type, model, boosting, includeAllMetaData, cloudSdkCustomFields);
+ }
+
+ @Override
+ @Nonnull
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("class MergeStrategyReranker {\n");
+ sb.append(" type: ").append(toIndentedString(type)).append("\n");
+ sb.append(" model: ").append(toIndentedString(model)).append("\n");
+ sb.append(" boosting: ").append(toIndentedString(boosting)).append("\n");
+ sb.append(" includeAllMetaData: ").append(toIndentedString(includeAllMetaData)).append("\n");
+ cloudSdkCustomFields.forEach(
+ (k, v) ->
+ sb.append(" ").append(k).append(": ").append(toIndentedString(v)).append("\n"));
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(final java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+ /** Create a new {@link MergeStrategyReranker} instance. No arguments are required. */
+ public static MergeStrategyReranker create() {
+ return new MergeStrategyReranker();
+ }
+}
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/MergeStrategyRerankerBoostingInner.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/MergeStrategyRerankerBoostingInner.java
new file mode 100644
index 000000000..43f5815cb
--- /dev/null
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/MergeStrategyRerankerBoostingInner.java
@@ -0,0 +1,344 @@
+/*
+ * Grounding
+ * Grounding is a service designed to handle data-related tasks, such as grounding and retrieval, using vector databases. It provides specialized data retrieval through these databases, grounding the retrieval process with your own external and context-relevant data. Grounding combines generative AI capabilities with the ability to use real-time, precise data to improve decision-making and business operations for specific AI-driven business solutions.
+ *
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.sap.ai.sdk.grounding.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.Objects;
+import java.util.Set;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+/** MergeStrategyRerankerBoostingInner */
+// CHECKSTYLE:OFF
+public class MergeStrategyRerankerBoostingInner
+// CHECKSTYLE:ON
+{
+ @JsonProperty("key")
+ private String key;
+
+ @JsonProperty("value")
+ private List value = new ArrayList<>();
+
+ @JsonProperty("scope")
+ private List scope = new ArrayList<>();
+
+ @JsonAnySetter @JsonAnyGetter
+ private final Map cloudSdkCustomFields = new LinkedHashMap<>();
+
+ /** Default constructor for MergeStrategyRerankerBoostingInner. */
+ protected MergeStrategyRerankerBoostingInner() {}
+
+ /**
+ * Set the key of this {@link MergeStrategyRerankerBoostingInner} instance and return the same
+ * instance.
+ *
+ * @param key The key of this {@link MergeStrategyRerankerBoostingInner}
+ * @return The same instance of this {@link MergeStrategyRerankerBoostingInner} class
+ */
+ @Nonnull
+ public MergeStrategyRerankerBoostingInner key(@Nonnull final String key) {
+ this.key = key;
+ return this;
+ }
+
+ /**
+ * Get key
+ *
+ * @return key The key of this {@link MergeStrategyRerankerBoostingInner} instance.
+ */
+ @Nonnull
+ public String getKey() {
+ return key;
+ }
+
+ /**
+ * Set the key of this {@link MergeStrategyRerankerBoostingInner} instance.
+ *
+ * @param key The key of this {@link MergeStrategyRerankerBoostingInner}
+ */
+ public void setKey(@Nonnull final String key) {
+ this.key = key;
+ }
+
+ /**
+ * Set the value of this {@link MergeStrategyRerankerBoostingInner} instance and return the same
+ * instance.
+ *
+ * @param value The value of this {@link MergeStrategyRerankerBoostingInner}
+ * @return The same instance of this {@link MergeStrategyRerankerBoostingInner} class
+ */
+ @Nonnull
+ public MergeStrategyRerankerBoostingInner value(@Nonnull final List value) {
+ this.value = value;
+ return this;
+ }
+
+ /**
+ * Add one value instance to this {@link MergeStrategyRerankerBoostingInner}.
+ *
+ * @param valueItem The value that should be added
+ * @return The same instance of type {@link MergeStrategyRerankerBoostingInner}
+ */
+ @Nonnull
+ public MergeStrategyRerankerBoostingInner addValueItem(@Nonnull final String valueItem) {
+ if (this.value == null) {
+ this.value = new ArrayList<>();
+ }
+ this.value.add(valueItem);
+ return this;
+ }
+
+ /**
+ * Get value
+ *
+ * @return value The value of this {@link MergeStrategyRerankerBoostingInner} instance.
+ */
+ @Nonnull
+ public List getValue() {
+ return value;
+ }
+
+ /**
+ * Set the value of this {@link MergeStrategyRerankerBoostingInner} instance.
+ *
+ * @param value The value of this {@link MergeStrategyRerankerBoostingInner}
+ */
+ public void setValue(@Nonnull final List value) {
+ this.value = value;
+ }
+
+ /**
+ * Set the scope of this {@link MergeStrategyRerankerBoostingInner} instance and return the same
+ * instance.
+ *
+ * @param scope PerFilterSearchResult ID or a new ID for each PostProcessingOperation.
+ * @return The same instance of this {@link MergeStrategyRerankerBoostingInner} class
+ */
+ @Nonnull
+ public MergeStrategyRerankerBoostingInner scope(@Nonnull final List scope) {
+ this.scope = scope;
+ return this;
+ }
+
+ /**
+ * Add one scope instance to this {@link MergeStrategyRerankerBoostingInner}.
+ *
+ * @param scopeItem The scope that should be added
+ * @return The same instance of type {@link MergeStrategyRerankerBoostingInner}
+ */
+ @Nonnull
+ public MergeStrategyRerankerBoostingInner addScopeItem(@Nonnull final String scopeItem) {
+ if (this.scope == null) {
+ this.scope = new ArrayList<>();
+ }
+ this.scope.add(scopeItem);
+ return this;
+ }
+
+ /**
+ * PerFilterSearchResult ID or a new ID for each PostProcessingOperation.
+ *
+ * @return scope The scope of this {@link MergeStrategyRerankerBoostingInner} instance.
+ */
+ @Nonnull
+ public List getScope() {
+ return scope;
+ }
+
+ /**
+ * Set the scope of this {@link MergeStrategyRerankerBoostingInner} instance.
+ *
+ * @param scope PerFilterSearchResult ID or a new ID for each PostProcessingOperation.
+ */
+ public void setScope(@Nonnull final List scope) {
+ this.scope = scope;
+ }
+
+ /**
+ * Get the names of the unrecognizable properties of the {@link
+ * MergeStrategyRerankerBoostingInner}.
+ *
+ * @return The set of properties names
+ */
+ @JsonIgnore
+ @Nonnull
+ public Set getCustomFieldNames() {
+ return cloudSdkCustomFields.keySet();
+ }
+
+ /**
+ * Get the value of an unrecognizable property of this {@link MergeStrategyRerankerBoostingInner}
+ * instance.
+ *
+ * @deprecated Use {@link #toMap()} instead.
+ * @param name The name of the property
+ * @return The value of the property
+ * @throws NoSuchElementException If no property with the given name could be found.
+ */
+ @Nullable
+ @Deprecated
+ public Object getCustomField(@Nonnull final String name) throws NoSuchElementException {
+ if (!cloudSdkCustomFields.containsKey(name)) {
+ throw new NoSuchElementException(
+ "MergeStrategyRerankerBoostingInner has no field with name '" + name + "'.");
+ }
+ return cloudSdkCustomFields.get(name);
+ }
+
+ /**
+ * Get the value of all properties of this {@link MergeStrategyRerankerBoostingInner} instance
+ * including unrecognized properties.
+ *
+ * @return The map of all properties
+ */
+ @JsonIgnore
+ @Nonnull
+ public Map toMap() {
+ final Map declaredFields = new LinkedHashMap<>(cloudSdkCustomFields);
+ if (key != null) declaredFields.put("key", key);
+ if (value != null) declaredFields.put("value", value);
+ if (scope != null) declaredFields.put("scope", scope);
+ return declaredFields;
+ }
+
+ /**
+ * Set an unrecognizable property of this {@link MergeStrategyRerankerBoostingInner} instance. If
+ * the map previously contained a mapping for the key, the old value is replaced by the specified
+ * value.
+ *
+ * @param customFieldName The name of the property
+ * @param customFieldValue The value of the property
+ */
+ @JsonIgnore
+ public void setCustomField(@Nonnull String customFieldName, @Nullable Object customFieldValue) {
+ cloudSdkCustomFields.put(customFieldName, customFieldValue);
+ }
+
+ @Override
+ public boolean equals(@Nullable final java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ final MergeStrategyRerankerBoostingInner mergeStrategyRerankerBoostingInner =
+ (MergeStrategyRerankerBoostingInner) o;
+ return Objects.equals(
+ this.cloudSdkCustomFields, mergeStrategyRerankerBoostingInner.cloudSdkCustomFields)
+ && Objects.equals(this.key, mergeStrategyRerankerBoostingInner.key)
+ && Objects.equals(this.value, mergeStrategyRerankerBoostingInner.value)
+ && Objects.equals(this.scope, mergeStrategyRerankerBoostingInner.scope);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(key, value, scope, cloudSdkCustomFields);
+ }
+
+ @Override
+ @Nonnull
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("class MergeStrategyRerankerBoostingInner {\n");
+ sb.append(" key: ").append(toIndentedString(key)).append("\n");
+ sb.append(" value: ").append(toIndentedString(value)).append("\n");
+ sb.append(" scope: ").append(toIndentedString(scope)).append("\n");
+ cloudSdkCustomFields.forEach(
+ (k, v) ->
+ sb.append(" ").append(k).append(": ").append(toIndentedString(v)).append("\n"));
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(final java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+ /**
+ * Create a type-safe, fluent-api builder object to construct a new {@link
+ * MergeStrategyRerankerBoostingInner} instance with all required arguments.
+ */
+ public static Builder create() {
+ return (key) ->
+ (value) ->
+ (scope) -> new MergeStrategyRerankerBoostingInner().key(key).value(value).scope(scope);
+ }
+
+ /** Builder helper class. */
+ public interface Builder {
+ /**
+ * Set the key of this {@link MergeStrategyRerankerBoostingInner} instance.
+ *
+ * @param key The key of this {@link MergeStrategyRerankerBoostingInner}
+ * @return The MergeStrategyRerankerBoostingInner builder.
+ */
+ Builder1 key(@Nonnull final String key);
+ }
+
+ /** Builder helper class. */
+ public interface Builder1 {
+ /**
+ * Set the value of this {@link MergeStrategyRerankerBoostingInner} instance.
+ *
+ * @param value The value of this {@link MergeStrategyRerankerBoostingInner}
+ * @return The MergeStrategyRerankerBoostingInner builder.
+ */
+ Builder2 value(@Nonnull final List value);
+
+ /**
+ * Set the value of this {@link MergeStrategyRerankerBoostingInner} instance.
+ *
+ * @param value The value of this {@link MergeStrategyRerankerBoostingInner}
+ * @return The MergeStrategyRerankerBoostingInner builder.
+ */
+ default Builder2 value(@Nonnull final String... value) {
+ return value(Arrays.asList(value));
+ }
+ }
+
+ /** Builder helper class. */
+ public interface Builder2 {
+ /**
+ * Set the scope of this {@link MergeStrategyRerankerBoostingInner} instance.
+ *
+ * @param scope PerFilterSearchResult ID or a new ID for each PostProcessingOperation.
+ * @return The MergeStrategyRerankerBoostingInner instance.
+ */
+ MergeStrategyRerankerBoostingInner scope(@Nonnull final List scope);
+
+ /**
+ * Set the scope of this {@link MergeStrategyRerankerBoostingInner} instance.
+ *
+ * @param scope PerFilterSearchResult ID or a new ID for each PostProcessingOperation.
+ * @return The MergeStrategyRerankerBoostingInner instance.
+ */
+ default MergeStrategyRerankerBoostingInner scope(@Nonnull final String... scope) {
+ return scope(Arrays.asList(scope));
+ }
+ }
+}
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/MergeStrategyScoreReuse.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/MergeStrategyScoreReuse.java
new file mode 100644
index 000000000..415b53969
--- /dev/null
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/MergeStrategyScoreReuse.java
@@ -0,0 +1,176 @@
+/*
+ * Grounding
+ * Grounding is a service designed to handle data-related tasks, such as grounding and retrieval, using vector databases. It provides specialized data retrieval through these databases, grounding the retrieval process with your own external and context-relevant data. Grounding combines generative AI capabilities with the ability to use real-time, precise data to improve decision-making and business operations for specific AI-driven business solutions.
+ *
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.sap.ai.sdk.grounding.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.Objects;
+import java.util.Set;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+/**
+ * The MergeStrategyScoreReuse merges the given PerFilterSearchResult instances according to the
+ * scores returned by the downstream retrieval process. It is important that the scores are
+ * comparable, meaning they should come from the same embedding model or reranker model.
+ */
+// CHECKSTYLE:OFF
+public class MergeStrategyScoreReuse
+ implements RetrievalSearchInputPostProcessingInnerStrategy, Strategy
+// CHECKSTYLE:ON
+{
+ @JsonProperty("type")
+ private MergeStrategyType type;
+
+ @JsonAnySetter @JsonAnyGetter
+ private final Map cloudSdkCustomFields = new LinkedHashMap<>();
+
+ /** Default constructor for MergeStrategyScoreReuse. */
+ protected MergeStrategyScoreReuse() {}
+
+ /**
+ * Set the type of this {@link MergeStrategyScoreReuse} instance and return the same instance.
+ *
+ * @param type The type of this {@link MergeStrategyScoreReuse}
+ * @return The same instance of this {@link MergeStrategyScoreReuse} class
+ */
+ @Nonnull
+ public MergeStrategyScoreReuse type(@Nullable final MergeStrategyType type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get type
+ *
+ * @return type The type of this {@link MergeStrategyScoreReuse} instance.
+ */
+ @Nonnull
+ public MergeStrategyType getType() {
+ return type;
+ }
+
+ /**
+ * Set the type of this {@link MergeStrategyScoreReuse} instance.
+ *
+ * @param type The type of this {@link MergeStrategyScoreReuse}
+ */
+ public void setType(@Nullable final MergeStrategyType type) {
+ this.type = type;
+ }
+
+ /**
+ * Get the names of the unrecognizable properties of the {@link MergeStrategyScoreReuse}.
+ *
+ * @return The set of properties names
+ */
+ @JsonIgnore
+ @Nonnull
+ public Set getCustomFieldNames() {
+ return cloudSdkCustomFields.keySet();
+ }
+
+ /**
+ * Get the value of an unrecognizable property of this {@link MergeStrategyScoreReuse} instance.
+ *
+ * @deprecated Use {@link #toMap()} instead.
+ * @param name The name of the property
+ * @return The value of the property
+ * @throws NoSuchElementException If no property with the given name could be found.
+ */
+ @Nullable
+ @Deprecated
+ public Object getCustomField(@Nonnull final String name) throws NoSuchElementException {
+ if (!cloudSdkCustomFields.containsKey(name)) {
+ throw new NoSuchElementException(
+ "MergeStrategyScoreReuse has no field with name '" + name + "'.");
+ }
+ return cloudSdkCustomFields.get(name);
+ }
+
+ /**
+ * Get the value of all properties of this {@link MergeStrategyScoreReuse} instance including
+ * unrecognized properties.
+ *
+ * @return The map of all properties
+ */
+ @JsonIgnore
+ @Nonnull
+ public Map toMap() {
+ final Map declaredFields = new LinkedHashMap<>(cloudSdkCustomFields);
+ if (type != null) declaredFields.put("type", type);
+ return declaredFields;
+ }
+
+ /**
+ * Set an unrecognizable property of this {@link MergeStrategyScoreReuse} instance. If the map
+ * previously contained a mapping for the key, the old value is replaced by the specified value.
+ *
+ * @param customFieldName The name of the property
+ * @param customFieldValue The value of the property
+ */
+ @JsonIgnore
+ public void setCustomField(@Nonnull String customFieldName, @Nullable Object customFieldValue) {
+ cloudSdkCustomFields.put(customFieldName, customFieldValue);
+ }
+
+ @Override
+ public boolean equals(@Nullable final java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ final MergeStrategyScoreReuse mergeStrategyScoreReuse = (MergeStrategyScoreReuse) o;
+ return Objects.equals(this.cloudSdkCustomFields, mergeStrategyScoreReuse.cloudSdkCustomFields)
+ && Objects.equals(this.type, mergeStrategyScoreReuse.type);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(type, cloudSdkCustomFields);
+ }
+
+ @Override
+ @Nonnull
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("class MergeStrategyScoreReuse {\n");
+ sb.append(" type: ").append(toIndentedString(type)).append("\n");
+ cloudSdkCustomFields.forEach(
+ (k, v) ->
+ sb.append(" ").append(k).append(": ").append(toIndentedString(v)).append("\n"));
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(final java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+ /** Create a new {@link MergeStrategyScoreReuse} instance. No arguments are required. */
+ public static MergeStrategyScoreReuse create() {
+ return new MergeStrategyScoreReuse();
+ }
+}
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/MergeStrategyType.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/MergeStrategyType.java
new file mode 100644
index 000000000..07139de76
--- /dev/null
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/MergeStrategyType.java
@@ -0,0 +1,68 @@
+/*
+ * Grounding
+ * Grounding is a service designed to handle data-related tasks, such as grounding and retrieval, using vector databases. It provides specialized data retrieval through these databases, grounding the retrieval process with your own external and context-relevant data. Grounding combines generative AI capabilities with the ability to use real-time, precise data to improve decision-making and business operations for specific AI-driven business solutions.
+ *
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.sap.ai.sdk.grounding.model;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import javax.annotation.Nonnull;
+
+/** Gets or Sets MergeStrategyType */
+public enum MergeStrategyType {
+ RERANKER("reranker"),
+
+ SCORE_REUSE("scoreReuse"),
+
+ RECIPROCAL_RANK_FUSION("reciprocalRankFusion"),
+
+ RANDOM("random"),
+
+ UNKNOWN_DEFAULT_OPEN_API("unknown_default_open_api");
+
+ private final String value;
+
+ MergeStrategyType(String value) {
+ this.value = value;
+ }
+
+ /**
+ * @return The enum value.
+ */
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * @return The String representation of the enum value.
+ */
+ @Override
+ @Nonnull
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ /**
+ * Converts the given value to its enum representation.
+ *
+ * @param value The input value.
+ * @return The enum representation of the given value.
+ */
+ @JsonCreator
+ public static MergeStrategyType fromValue(@Nonnull final String value) {
+ for (final MergeStrategyType b : MergeStrategyType.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ return UNKNOWN_DEFAULT_OPEN_API;
+ }
+}
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/MetadataItem.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/MetadataItem.java
new file mode 100644
index 000000000..6d11d6dc5
--- /dev/null
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/MetadataItem.java
@@ -0,0 +1,239 @@
+/*
+ * Grounding
+ * Grounding is a service designed to handle data-related tasks, such as grounding and retrieval, using vector databases. It provides specialized data retrieval through these databases, grounding the retrieval process with your own external and context-relevant data. Grounding combines generative AI capabilities with the ability to use real-time, precise data to improve decision-making and business operations for specific AI-driven business solutions.
+ *
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.sap.ai.sdk.grounding.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.Objects;
+import java.util.Set;
+import java.util.UUID;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+/** MetadataItem */
+// CHECKSTYLE:OFF
+public class MetadataItem
+// CHECKSTYLE:ON
+{
+ @JsonProperty("id")
+ private UUID id;
+
+ @JsonProperty("metadata")
+ private List metadata = new ArrayList<>();
+
+ @JsonAnySetter @JsonAnyGetter
+ private final Map cloudSdkCustomFields = new LinkedHashMap<>();
+
+ /** Default constructor for MetadataItem. */
+ protected MetadataItem() {}
+
+ /**
+ * Set the id of this {@link MetadataItem} instance and return the same instance.
+ *
+ * @param id ID of collection
+ * @return The same instance of this {@link MetadataItem} class
+ */
+ @Nonnull
+ public MetadataItem id(@Nonnull final UUID id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * ID of collection
+ *
+ * @return id The id of this {@link MetadataItem} instance.
+ */
+ @Nonnull
+ public UUID getId() {
+ return id;
+ }
+
+ /**
+ * Set the id of this {@link MetadataItem} instance.
+ *
+ * @param id ID of collection
+ */
+ public void setId(@Nonnull final UUID id) {
+ this.id = id;
+ }
+
+ /**
+ * Set the metadata of this {@link MetadataItem} instance and return the same instance.
+ *
+ * @param metadata List of metadata of the collections or documents or chunks
+ * @return The same instance of this {@link MetadataItem} class
+ */
+ @Nonnull
+ public MetadataItem metadata(@Nullable final List metadata) {
+ this.metadata = metadata;
+ return this;
+ }
+
+ /**
+ * Add one metadata instance to this {@link MetadataItem}.
+ *
+ * @param metadataItem The metadata that should be added
+ * @return The same instance of type {@link MetadataItem}
+ */
+ @Nonnull
+ public MetadataItem addMetadataItem(@Nonnull final VectorKeyValueListPair metadataItem) {
+ if (this.metadata == null) {
+ this.metadata = new ArrayList<>();
+ }
+ this.metadata.add(metadataItem);
+ return this;
+ }
+
+ /**
+ * List of metadata of the collections or documents or chunks
+ *
+ * @return metadata The metadata of this {@link MetadataItem} instance.
+ */
+ @Nullable
+ public List getMetadata() {
+ return metadata;
+ }
+
+ /**
+ * Set the metadata of this {@link MetadataItem} instance.
+ *
+ * @param metadata List of metadata of the collections or documents or chunks
+ */
+ public void setMetadata(@Nullable final List metadata) {
+ this.metadata = metadata;
+ }
+
+ /**
+ * Get the names of the unrecognizable properties of the {@link MetadataItem}.
+ *
+ * @return The set of properties names
+ */
+ @JsonIgnore
+ @Nonnull
+ public Set getCustomFieldNames() {
+ return cloudSdkCustomFields.keySet();
+ }
+
+ /**
+ * Get the value of an unrecognizable property of this {@link MetadataItem} instance.
+ *
+ * @deprecated Use {@link #toMap()} instead.
+ * @param name The name of the property
+ * @return The value of the property
+ * @throws NoSuchElementException If no property with the given name could be found.
+ */
+ @Nullable
+ @Deprecated
+ public Object getCustomField(@Nonnull final String name) throws NoSuchElementException {
+ if (!cloudSdkCustomFields.containsKey(name)) {
+ throw new NoSuchElementException("MetadataItem has no field with name '" + name + "'.");
+ }
+ return cloudSdkCustomFields.get(name);
+ }
+
+ /**
+ * Get the value of all properties of this {@link MetadataItem} instance including unrecognized
+ * properties.
+ *
+ * @return The map of all properties
+ */
+ @JsonIgnore
+ @Nonnull
+ public Map toMap() {
+ final Map declaredFields = new LinkedHashMap<>(cloudSdkCustomFields);
+ if (id != null) declaredFields.put("id", id);
+ if (metadata != null) declaredFields.put("metadata", metadata);
+ return declaredFields;
+ }
+
+ /**
+ * Set an unrecognizable property of this {@link MetadataItem} instance. If the map previously
+ * contained a mapping for the key, the old value is replaced by the specified value.
+ *
+ * @param customFieldName The name of the property
+ * @param customFieldValue The value of the property
+ */
+ @JsonIgnore
+ public void setCustomField(@Nonnull String customFieldName, @Nullable Object customFieldValue) {
+ cloudSdkCustomFields.put(customFieldName, customFieldValue);
+ }
+
+ @Override
+ public boolean equals(@Nullable final java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ final MetadataItem metadataItem = (MetadataItem) o;
+ return Objects.equals(this.cloudSdkCustomFields, metadataItem.cloudSdkCustomFields)
+ && Objects.equals(this.id, metadataItem.id)
+ && Objects.equals(this.metadata, metadataItem.metadata);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id, metadata, cloudSdkCustomFields);
+ }
+
+ @Override
+ @Nonnull
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("class MetadataItem {\n");
+ sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append(" metadata: ").append(toIndentedString(metadata)).append("\n");
+ cloudSdkCustomFields.forEach(
+ (k, v) ->
+ sb.append(" ").append(k).append(": ").append(toIndentedString(v)).append("\n"));
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(final java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+ /**
+ * Create a type-safe, fluent-api builder object to construct a new {@link MetadataItem} instance
+ * with all required arguments.
+ */
+ public static Builder create() {
+ return (id) -> new MetadataItem().id(id);
+ }
+
+ /** Builder helper class. */
+ public interface Builder {
+ /**
+ * Set the id of this {@link MetadataItem} instance.
+ *
+ * @param id ID of collection
+ * @return The MetadataItem instance.
+ */
+ MetadataItem id(@Nonnull final UUID id);
+ }
+}
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/MetadataKeyUpdate.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/MetadataKeyUpdate.java
new file mode 100644
index 000000000..3298bb0ce
--- /dev/null
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/MetadataKeyUpdate.java
@@ -0,0 +1,238 @@
+/*
+ * Grounding
+ * Grounding is a service designed to handle data-related tasks, such as grounding and retrieval, using vector databases. It provides specialized data retrieval through these databases, grounding the retrieval process with your own external and context-relevant data. Grounding combines generative AI capabilities with the ability to use real-time, precise data to improve decision-making and business operations for specific AI-driven business solutions.
+ *
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.sap.ai.sdk.grounding.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.Objects;
+import java.util.Set;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+/** MetadataKeyUpdate */
+// CHECKSTYLE:OFF
+public class MetadataKeyUpdate
+// CHECKSTYLE:ON
+{
+ @JsonProperty("key")
+ private String key;
+
+ @JsonProperty("operations")
+ private List operations;
+
+ @JsonAnySetter @JsonAnyGetter
+ private final Map cloudSdkCustomFields = new LinkedHashMap<>();
+
+ /** Default constructor for MetadataKeyUpdate. */
+ protected MetadataKeyUpdate() {}
+
+ /**
+ * Set the key of this {@link MetadataKeyUpdate} instance and return the same instance.
+ *
+ * @param key Key to update
+ * @return The same instance of this {@link MetadataKeyUpdate} class
+ */
+ @Nonnull
+ public MetadataKeyUpdate key(@Nonnull final String key) {
+ this.key = key;
+ return this;
+ }
+
+ /**
+ * Key to update
+ *
+ * @return key The key of this {@link MetadataKeyUpdate} instance.
+ */
+ @Nonnull
+ public String getKey() {
+ return key;
+ }
+
+ /**
+ * Set the key of this {@link MetadataKeyUpdate} instance.
+ *
+ * @param key Key to update
+ */
+ public void setKey(@Nonnull final String key) {
+ this.key = key;
+ }
+
+ /**
+ * Set the operations of this {@link MetadataKeyUpdate} instance and return the same instance.
+ *
+ * @param operations Update operation executed for the key
+ * @return The same instance of this {@link MetadataKeyUpdate} class
+ */
+ @Nonnull
+ public MetadataKeyUpdate operations(@Nullable final List operations) {
+ this.operations = operations;
+ return this;
+ }
+
+ /**
+ * Add one operations instance to this {@link MetadataKeyUpdate}.
+ *
+ * @param operationsItem The operations that should be added
+ * @return The same instance of type {@link MetadataKeyUpdate}
+ */
+ @Nonnull
+ public MetadataKeyUpdate addOperationsItem(@Nonnull final MetadataOperation operationsItem) {
+ if (this.operations == null) {
+ this.operations = new ArrayList<>();
+ }
+ this.operations.add(operationsItem);
+ return this;
+ }
+
+ /**
+ * Update operation executed for the key
+ *
+ * @return operations The operations of this {@link MetadataKeyUpdate} instance.
+ */
+ @Nullable
+ public List getOperations() {
+ return operations;
+ }
+
+ /**
+ * Set the operations of this {@link MetadataKeyUpdate} instance.
+ *
+ * @param operations Update operation executed for the key
+ */
+ public void setOperations(@Nullable final List operations) {
+ this.operations = operations;
+ }
+
+ /**
+ * Get the names of the unrecognizable properties of the {@link MetadataKeyUpdate}.
+ *
+ * @return The set of properties names
+ */
+ @JsonIgnore
+ @Nonnull
+ public Set getCustomFieldNames() {
+ return cloudSdkCustomFields.keySet();
+ }
+
+ /**
+ * Get the value of an unrecognizable property of this {@link MetadataKeyUpdate} instance.
+ *
+ * @deprecated Use {@link #toMap()} instead.
+ * @param name The name of the property
+ * @return The value of the property
+ * @throws NoSuchElementException If no property with the given name could be found.
+ */
+ @Nullable
+ @Deprecated
+ public Object getCustomField(@Nonnull final String name) throws NoSuchElementException {
+ if (!cloudSdkCustomFields.containsKey(name)) {
+ throw new NoSuchElementException("MetadataKeyUpdate has no field with name '" + name + "'.");
+ }
+ return cloudSdkCustomFields.get(name);
+ }
+
+ /**
+ * Get the value of all properties of this {@link MetadataKeyUpdate} instance including
+ * unrecognized properties.
+ *
+ * @return The map of all properties
+ */
+ @JsonIgnore
+ @Nonnull
+ public Map toMap() {
+ final Map declaredFields = new LinkedHashMap<>(cloudSdkCustomFields);
+ if (key != null) declaredFields.put("key", key);
+ if (operations != null) declaredFields.put("operations", operations);
+ return declaredFields;
+ }
+
+ /**
+ * Set an unrecognizable property of this {@link MetadataKeyUpdate} instance. If the map
+ * previously contained a mapping for the key, the old value is replaced by the specified value.
+ *
+ * @param customFieldName The name of the property
+ * @param customFieldValue The value of the property
+ */
+ @JsonIgnore
+ public void setCustomField(@Nonnull String customFieldName, @Nullable Object customFieldValue) {
+ cloudSdkCustomFields.put(customFieldName, customFieldValue);
+ }
+
+ @Override
+ public boolean equals(@Nullable final java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ final MetadataKeyUpdate metadataKeyUpdate = (MetadataKeyUpdate) o;
+ return Objects.equals(this.cloudSdkCustomFields, metadataKeyUpdate.cloudSdkCustomFields)
+ && Objects.equals(this.key, metadataKeyUpdate.key)
+ && Objects.equals(this.operations, metadataKeyUpdate.operations);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(key, operations, cloudSdkCustomFields);
+ }
+
+ @Override
+ @Nonnull
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("class MetadataKeyUpdate {\n");
+ sb.append(" key: ").append(toIndentedString(key)).append("\n");
+ sb.append(" operations: ").append(toIndentedString(operations)).append("\n");
+ cloudSdkCustomFields.forEach(
+ (k, v) ->
+ sb.append(" ").append(k).append(": ").append(toIndentedString(v)).append("\n"));
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(final java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+ /**
+ * Create a type-safe, fluent-api builder object to construct a new {@link MetadataKeyUpdate}
+ * instance with all required arguments.
+ */
+ public static Builder create() {
+ return (key) -> new MetadataKeyUpdate().key(key);
+ }
+
+ /** Builder helper class. */
+ public interface Builder {
+ /**
+ * Set the key of this {@link MetadataKeyUpdate} instance.
+ *
+ * @param key Key to update
+ * @return The MetadataKeyUpdate instance.
+ */
+ MetadataKeyUpdate key(@Nonnull final String key);
+ }
+}
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/MetadataOperation.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/MetadataOperation.java
new file mode 100644
index 000000000..1fc9fa1a7
--- /dev/null
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/MetadataOperation.java
@@ -0,0 +1,238 @@
+/*
+ * Grounding
+ * Grounding is a service designed to handle data-related tasks, such as grounding and retrieval, using vector databases. It provides specialized data retrieval through these databases, grounding the retrieval process with your own external and context-relevant data. Grounding combines generative AI capabilities with the ability to use real-time, precise data to improve decision-making and business operations for specific AI-driven business solutions.
+ *
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.sap.ai.sdk.grounding.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.Objects;
+import java.util.Set;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+/** MetadataOperation */
+// CHECKSTYLE:OFF
+public class MetadataOperation
+// CHECKSTYLE:ON
+{
+ @JsonProperty("op")
+ private MetadataOperationEnum op;
+
+ @JsonProperty("values")
+ private List values;
+
+ @JsonAnySetter @JsonAnyGetter
+ private final Map cloudSdkCustomFields = new LinkedHashMap<>();
+
+ /** Default constructor for MetadataOperation. */
+ protected MetadataOperation() {}
+
+ /**
+ * Set the op of this {@link MetadataOperation} instance and return the same instance.
+ *
+ * @param op The op of this {@link MetadataOperation}
+ * @return The same instance of this {@link MetadataOperation} class
+ */
+ @Nonnull
+ public MetadataOperation op(@Nonnull final MetadataOperationEnum op) {
+ this.op = op;
+ return this;
+ }
+
+ /**
+ * Get op
+ *
+ * @return op The op of this {@link MetadataOperation} instance.
+ */
+ @Nonnull
+ public MetadataOperationEnum getOp() {
+ return op;
+ }
+
+ /**
+ * Set the op of this {@link MetadataOperation} instance.
+ *
+ * @param op The op of this {@link MetadataOperation}
+ */
+ public void setOp(@Nonnull final MetadataOperationEnum op) {
+ this.op = op;
+ }
+
+ /**
+ * Set the values of this {@link MetadataOperation} instance and return the same instance.
+ *
+ * @param values List of values to update.
+ * @return The same instance of this {@link MetadataOperation} class
+ */
+ @Nonnull
+ public MetadataOperation values(@Nullable final List values) {
+ this.values = values;
+ return this;
+ }
+
+ /**
+ * Add one values instance to this {@link MetadataOperation}.
+ *
+ * @param valuesItem The values that should be added
+ * @return The same instance of type {@link MetadataOperation}
+ */
+ @Nonnull
+ public MetadataOperation addValuesItem(@Nonnull final String valuesItem) {
+ if (this.values == null) {
+ this.values = new ArrayList<>();
+ }
+ this.values.add(valuesItem);
+ return this;
+ }
+
+ /**
+ * List of values to update.
+ *
+ * @return values The values of this {@link MetadataOperation} instance.
+ */
+ @Nullable
+ public List getValues() {
+ return values;
+ }
+
+ /**
+ * Set the values of this {@link MetadataOperation} instance.
+ *
+ * @param values List of values to update.
+ */
+ public void setValues(@Nullable final List values) {
+ this.values = values;
+ }
+
+ /**
+ * Get the names of the unrecognizable properties of the {@link MetadataOperation}.
+ *
+ * @return The set of properties names
+ */
+ @JsonIgnore
+ @Nonnull
+ public Set getCustomFieldNames() {
+ return cloudSdkCustomFields.keySet();
+ }
+
+ /**
+ * Get the value of an unrecognizable property of this {@link MetadataOperation} instance.
+ *
+ * @deprecated Use {@link #toMap()} instead.
+ * @param name The name of the property
+ * @return The value of the property
+ * @throws NoSuchElementException If no property with the given name could be found.
+ */
+ @Nullable
+ @Deprecated
+ public Object getCustomField(@Nonnull final String name) throws NoSuchElementException {
+ if (!cloudSdkCustomFields.containsKey(name)) {
+ throw new NoSuchElementException("MetadataOperation has no field with name '" + name + "'.");
+ }
+ return cloudSdkCustomFields.get(name);
+ }
+
+ /**
+ * Get the value of all properties of this {@link MetadataOperation} instance including
+ * unrecognized properties.
+ *
+ * @return The map of all properties
+ */
+ @JsonIgnore
+ @Nonnull
+ public Map toMap() {
+ final Map declaredFields = new LinkedHashMap<>(cloudSdkCustomFields);
+ if (op != null) declaredFields.put("op", op);
+ if (values != null) declaredFields.put("values", values);
+ return declaredFields;
+ }
+
+ /**
+ * Set an unrecognizable property of this {@link MetadataOperation} instance. If the map
+ * previously contained a mapping for the key, the old value is replaced by the specified value.
+ *
+ * @param customFieldName The name of the property
+ * @param customFieldValue The value of the property
+ */
+ @JsonIgnore
+ public void setCustomField(@Nonnull String customFieldName, @Nullable Object customFieldValue) {
+ cloudSdkCustomFields.put(customFieldName, customFieldValue);
+ }
+
+ @Override
+ public boolean equals(@Nullable final java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ final MetadataOperation metadataOperation = (MetadataOperation) o;
+ return Objects.equals(this.cloudSdkCustomFields, metadataOperation.cloudSdkCustomFields)
+ && Objects.equals(this.op, metadataOperation.op)
+ && Objects.equals(this.values, metadataOperation.values);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(op, values, cloudSdkCustomFields);
+ }
+
+ @Override
+ @Nonnull
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("class MetadataOperation {\n");
+ sb.append(" op: ").append(toIndentedString(op)).append("\n");
+ sb.append(" values: ").append(toIndentedString(values)).append("\n");
+ cloudSdkCustomFields.forEach(
+ (k, v) ->
+ sb.append(" ").append(k).append(": ").append(toIndentedString(v)).append("\n"));
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(final java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+ /**
+ * Create a type-safe, fluent-api builder object to construct a new {@link MetadataOperation}
+ * instance with all required arguments.
+ */
+ public static Builder create() {
+ return (op) -> new MetadataOperation().op(op);
+ }
+
+ /** Builder helper class. */
+ public interface Builder {
+ /**
+ * Set the op of this {@link MetadataOperation} instance.
+ *
+ * @param op The op of this {@link MetadataOperation}
+ * @return The MetadataOperation instance.
+ */
+ MetadataOperation op(@Nonnull final MetadataOperationEnum op);
+ }
+}
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/MetadataOperationEnum.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/MetadataOperationEnum.java
new file mode 100644
index 000000000..81e0a6478
--- /dev/null
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/MetadataOperationEnum.java
@@ -0,0 +1,68 @@
+/*
+ * Grounding
+ * Grounding is a service designed to handle data-related tasks, such as grounding and retrieval, using vector databases. It provides specialized data retrieval through these databases, grounding the retrieval process with your own external and context-relevant data. Grounding combines generative AI capabilities with the ability to use real-time, precise data to improve decision-making and business operations for specific AI-driven business solutions.
+ *
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.sap.ai.sdk.grounding.model;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import javax.annotation.Nonnull;
+
+/** Gets or Sets MetadataOperationEnum */
+public enum MetadataOperationEnum {
+ ADD("add"),
+
+ REMOVE("remove"),
+
+ REPLACE("replace"),
+
+ DELETE_KEY("delete_key"),
+
+ UNKNOWN_DEFAULT_OPEN_API("unknown_default_open_api");
+
+ private final String value;
+
+ MetadataOperationEnum(String value) {
+ this.value = value;
+ }
+
+ /**
+ * @return The enum value.
+ */
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * @return The String representation of the enum value.
+ */
+ @Override
+ @Nonnull
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ /**
+ * Converts the given value to its enum representation.
+ *
+ * @param value The input value.
+ * @return The enum representation of the given value.
+ */
+ @JsonCreator
+ public static MetadataOperationEnum fromValue(@Nonnull final String value) {
+ for (final MetadataOperationEnum b : MetadataOperationEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ return UNKNOWN_DEFAULT_OPEN_API;
+ }
+}
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/MetadataResponse.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/MetadataResponse.java
new file mode 100644
index 000000000..6b1efcb32
--- /dev/null
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/MetadataResponse.java
@@ -0,0 +1,187 @@
+/*
+ * Grounding
+ * Grounding is a service designed to handle data-related tasks, such as grounding and retrieval, using vector databases. It provides specialized data retrieval through these databases, grounding the retrieval process with your own external and context-relevant data. Grounding combines generative AI capabilities with the ability to use real-time, precise data to improve decision-making and business operations for specific AI-driven business solutions.
+ *
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.sap.ai.sdk.grounding.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.Objects;
+import java.util.Set;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+/** MetadataResponse */
+// CHECKSTYLE:OFF
+public class MetadataResponse
+// CHECKSTYLE:ON
+{
+ @JsonProperty("current_metadata")
+ private List currentMetadata = new ArrayList<>();
+
+ @JsonAnySetter @JsonAnyGetter
+ private final Map cloudSdkCustomFields = new LinkedHashMap<>();
+
+ /** Default constructor for MetadataResponse. */
+ protected MetadataResponse() {}
+
+ /**
+ * Set the currentMetadata of this {@link MetadataResponse} instance and return the same instance.
+ *
+ * @param currentMetadata List of metadata after updates.
+ * @return The same instance of this {@link MetadataResponse} class
+ */
+ @Nonnull
+ public MetadataResponse currentMetadata(@Nullable final List currentMetadata) {
+ this.currentMetadata = currentMetadata;
+ return this;
+ }
+
+ /**
+ * Add one currentMetadata instance to this {@link MetadataResponse}.
+ *
+ * @param currentMetadataItem The currentMetadata that should be added
+ * @return The same instance of type {@link MetadataResponse}
+ */
+ @Nonnull
+ public MetadataResponse addCurrentMetadataItem(@Nonnull final MetadataItem currentMetadataItem) {
+ if (this.currentMetadata == null) {
+ this.currentMetadata = new ArrayList<>();
+ }
+ this.currentMetadata.add(currentMetadataItem);
+ return this;
+ }
+
+ /**
+ * List of metadata after updates.
+ *
+ * @return currentMetadata The currentMetadata of this {@link MetadataResponse} instance.
+ */
+ @Nullable
+ public List getCurrentMetadata() {
+ return currentMetadata;
+ }
+
+ /**
+ * Set the currentMetadata of this {@link MetadataResponse} instance.
+ *
+ * @param currentMetadata List of metadata after updates.
+ */
+ public void setCurrentMetadata(@Nullable final List currentMetadata) {
+ this.currentMetadata = currentMetadata;
+ }
+
+ /**
+ * Get the names of the unrecognizable properties of the {@link MetadataResponse}.
+ *
+ * @return The set of properties names
+ */
+ @JsonIgnore
+ @Nonnull
+ public Set getCustomFieldNames() {
+ return cloudSdkCustomFields.keySet();
+ }
+
+ /**
+ * Get the value of an unrecognizable property of this {@link MetadataResponse} instance.
+ *
+ * @deprecated Use {@link #toMap()} instead.
+ * @param name The name of the property
+ * @return The value of the property
+ * @throws NoSuchElementException If no property with the given name could be found.
+ */
+ @Nullable
+ @Deprecated
+ public Object getCustomField(@Nonnull final String name) throws NoSuchElementException {
+ if (!cloudSdkCustomFields.containsKey(name)) {
+ throw new NoSuchElementException("MetadataResponse has no field with name '" + name + "'.");
+ }
+ return cloudSdkCustomFields.get(name);
+ }
+
+ /**
+ * Get the value of all properties of this {@link MetadataResponse} instance including
+ * unrecognized properties.
+ *
+ * @return The map of all properties
+ */
+ @JsonIgnore
+ @Nonnull
+ public Map toMap() {
+ final Map declaredFields = new LinkedHashMap<>(cloudSdkCustomFields);
+ if (currentMetadata != null) declaredFields.put("currentMetadata", currentMetadata);
+ return declaredFields;
+ }
+
+ /**
+ * Set an unrecognizable property of this {@link MetadataResponse} instance. If the map previously
+ * contained a mapping for the key, the old value is replaced by the specified value.
+ *
+ * @param customFieldName The name of the property
+ * @param customFieldValue The value of the property
+ */
+ @JsonIgnore
+ public void setCustomField(@Nonnull String customFieldName, @Nullable Object customFieldValue) {
+ cloudSdkCustomFields.put(customFieldName, customFieldValue);
+ }
+
+ @Override
+ public boolean equals(@Nullable final java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ final MetadataResponse metadataResponse = (MetadataResponse) o;
+ return Objects.equals(this.cloudSdkCustomFields, metadataResponse.cloudSdkCustomFields)
+ && Objects.equals(this.currentMetadata, metadataResponse.currentMetadata);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(currentMetadata, cloudSdkCustomFields);
+ }
+
+ @Override
+ @Nonnull
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("class MetadataResponse {\n");
+ sb.append(" currentMetadata: ").append(toIndentedString(currentMetadata)).append("\n");
+ cloudSdkCustomFields.forEach(
+ (k, v) ->
+ sb.append(" ").append(k).append(": ").append(toIndentedString(v)).append("\n"));
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(final java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+ /** Create a new {@link MetadataResponse} instance. No arguments are required. */
+ public static MetadataResponse create() {
+ return new MetadataResponse();
+ }
+}
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/MetadataUpdateItem.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/MetadataUpdateItem.java
new file mode 100644
index 000000000..f2142d55a
--- /dev/null
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/MetadataUpdateItem.java
@@ -0,0 +1,293 @@
+/*
+ * Grounding
+ * Grounding is a service designed to handle data-related tasks, such as grounding and retrieval, using vector databases. It provides specialized data retrieval through these databases, grounding the retrieval process with your own external and context-relevant data. Grounding combines generative AI capabilities with the ability to use real-time, precise data to improve decision-making and business operations for specific AI-driven business solutions.
+ *
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.sap.ai.sdk.grounding.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.Objects;
+import java.util.Set;
+import java.util.UUID;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+/** MetadataUpdateItem */
+// CHECKSTYLE:OFF
+public class MetadataUpdateItem
+// CHECKSTYLE:ON
+{
+ @JsonProperty("ids")
+ private List ids = new ArrayList<>();
+
+ @JsonProperty("metadataUpdates")
+ private List metadataUpdates = new ArrayList<>();
+
+ @JsonAnySetter @JsonAnyGetter
+ private final Map cloudSdkCustomFields = new LinkedHashMap<>();
+
+ /** Default constructor for MetadataUpdateItem. */
+ protected MetadataUpdateItem() {}
+
+ /**
+ * Set the ids of this {@link MetadataUpdateItem} instance and return the same instance.
+ *
+ * @param ids List of collection or document or chunk ids for which the metadata should be updated
+ * @return The same instance of this {@link MetadataUpdateItem} class
+ */
+ @Nonnull
+ public MetadataUpdateItem ids(@Nonnull final List ids) {
+ this.ids = ids;
+ return this;
+ }
+
+ /**
+ * Add one ids instance to this {@link MetadataUpdateItem}.
+ *
+ * @param idsItem The ids that should be added
+ * @return The same instance of type {@link MetadataUpdateItem}
+ */
+ @Nonnull
+ public MetadataUpdateItem addIdsItem(@Nonnull final UUID idsItem) {
+ if (this.ids == null) {
+ this.ids = new ArrayList<>();
+ }
+ this.ids.add(idsItem);
+ return this;
+ }
+
+ /**
+ * List of collection or document or chunk ids for which the metadata should be updated
+ *
+ * @return ids The ids of this {@link MetadataUpdateItem} instance.
+ */
+ @Nonnull
+ public List getIds() {
+ return ids;
+ }
+
+ /**
+ * Set the ids of this {@link MetadataUpdateItem} instance.
+ *
+ * @param ids List of collection or document or chunk ids for which the metadata should be updated
+ */
+ public void setIds(@Nonnull final List ids) {
+ this.ids = ids;
+ }
+
+ /**
+ * Set the metadataUpdates of this {@link MetadataUpdateItem} instance and return the same
+ * instance.
+ *
+ * @param metadataUpdates List of metadata updates for the given resource ids
+ * @return The same instance of this {@link MetadataUpdateItem} class
+ */
+ @Nonnull
+ public MetadataUpdateItem metadataUpdates(
+ @Nonnull final List metadataUpdates) {
+ this.metadataUpdates = metadataUpdates;
+ return this;
+ }
+
+ /**
+ * Add one metadataUpdates instance to this {@link MetadataUpdateItem}.
+ *
+ * @param metadataUpdatesItem The metadataUpdates that should be added
+ * @return The same instance of type {@link MetadataUpdateItem}
+ */
+ @Nonnull
+ public MetadataUpdateItem addMetadataUpdatesItem(
+ @Nonnull final MetadataKeyUpdate metadataUpdatesItem) {
+ if (this.metadataUpdates == null) {
+ this.metadataUpdates = new ArrayList<>();
+ }
+ this.metadataUpdates.add(metadataUpdatesItem);
+ return this;
+ }
+
+ /**
+ * List of metadata updates for the given resource ids
+ *
+ * @return metadataUpdates The metadataUpdates of this {@link MetadataUpdateItem} instance.
+ */
+ @Nonnull
+ public List getMetadataUpdates() {
+ return metadataUpdates;
+ }
+
+ /**
+ * Set the metadataUpdates of this {@link MetadataUpdateItem} instance.
+ *
+ * @param metadataUpdates List of metadata updates for the given resource ids
+ */
+ public void setMetadataUpdates(@Nonnull final List metadataUpdates) {
+ this.metadataUpdates = metadataUpdates;
+ }
+
+ /**
+ * Get the names of the unrecognizable properties of the {@link MetadataUpdateItem}.
+ *
+ * @return The set of properties names
+ */
+ @JsonIgnore
+ @Nonnull
+ public Set getCustomFieldNames() {
+ return cloudSdkCustomFields.keySet();
+ }
+
+ /**
+ * Get the value of an unrecognizable property of this {@link MetadataUpdateItem} instance.
+ *
+ * @deprecated Use {@link #toMap()} instead.
+ * @param name The name of the property
+ * @return The value of the property
+ * @throws NoSuchElementException If no property with the given name could be found.
+ */
+ @Nullable
+ @Deprecated
+ public Object getCustomField(@Nonnull final String name) throws NoSuchElementException {
+ if (!cloudSdkCustomFields.containsKey(name)) {
+ throw new NoSuchElementException("MetadataUpdateItem has no field with name '" + name + "'.");
+ }
+ return cloudSdkCustomFields.get(name);
+ }
+
+ /**
+ * Get the value of all properties of this {@link MetadataUpdateItem} instance including
+ * unrecognized properties.
+ *
+ * @return The map of all properties
+ */
+ @JsonIgnore
+ @Nonnull
+ public Map toMap() {
+ final Map declaredFields = new LinkedHashMap<>(cloudSdkCustomFields);
+ if (ids != null) declaredFields.put("ids", ids);
+ if (metadataUpdates != null) declaredFields.put("metadataUpdates", metadataUpdates);
+ return declaredFields;
+ }
+
+ /**
+ * Set an unrecognizable property of this {@link MetadataUpdateItem} instance. If the map
+ * previously contained a mapping for the key, the old value is replaced by the specified value.
+ *
+ * @param customFieldName The name of the property
+ * @param customFieldValue The value of the property
+ */
+ @JsonIgnore
+ public void setCustomField(@Nonnull String customFieldName, @Nullable Object customFieldValue) {
+ cloudSdkCustomFields.put(customFieldName, customFieldValue);
+ }
+
+ @Override
+ public boolean equals(@Nullable final java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ final MetadataUpdateItem metadataUpdateItem = (MetadataUpdateItem) o;
+ return Objects.equals(this.cloudSdkCustomFields, metadataUpdateItem.cloudSdkCustomFields)
+ && Objects.equals(this.ids, metadataUpdateItem.ids)
+ && Objects.equals(this.metadataUpdates, metadataUpdateItem.metadataUpdates);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(ids, metadataUpdates, cloudSdkCustomFields);
+ }
+
+ @Override
+ @Nonnull
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("class MetadataUpdateItem {\n");
+ sb.append(" ids: ").append(toIndentedString(ids)).append("\n");
+ sb.append(" metadataUpdates: ").append(toIndentedString(metadataUpdates)).append("\n");
+ cloudSdkCustomFields.forEach(
+ (k, v) ->
+ sb.append(" ").append(k).append(": ").append(toIndentedString(v)).append("\n"));
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(final java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+ /**
+ * Create a type-safe, fluent-api builder object to construct a new {@link MetadataUpdateItem}
+ * instance with all required arguments.
+ */
+ public static Builder create() {
+ return (ids) ->
+ (metadataUpdates) -> new MetadataUpdateItem().ids(ids).metadataUpdates(metadataUpdates);
+ }
+
+ /** Builder helper class. */
+ public interface Builder {
+ /**
+ * Set the ids of this {@link MetadataUpdateItem} instance.
+ *
+ * @param ids List of collection or document or chunk ids for which the metadata should be
+ * updated
+ * @return The MetadataUpdateItem builder.
+ */
+ Builder1 ids(@Nonnull final List ids);
+
+ /**
+ * Set the ids of this {@link MetadataUpdateItem} instance.
+ *
+ * @param ids List of collection or document or chunk ids for which the metadata should be
+ * updated
+ * @return The MetadataUpdateItem builder.
+ */
+ default Builder1 ids(@Nonnull final UUID... ids) {
+ return ids(Arrays.asList(ids));
+ }
+ }
+
+ /** Builder helper class. */
+ public interface Builder1 {
+ /**
+ * Set the metadataUpdates of this {@link MetadataUpdateItem} instance.
+ *
+ * @param metadataUpdates List of metadata updates for the given resource ids
+ * @return The MetadataUpdateItem instance.
+ */
+ MetadataUpdateItem metadataUpdates(@Nonnull final List metadataUpdates);
+
+ /**
+ * Set the metadataUpdates of this {@link MetadataUpdateItem} instance.
+ *
+ * @param metadataUpdates List of metadata updates for the given resource ids
+ * @return The MetadataUpdateItem instance.
+ */
+ default MetadataUpdateItem metadataUpdates(
+ @Nonnull final MetadataKeyUpdate... metadataUpdates) {
+ return metadataUpdates(Arrays.asList(metadataUpdates));
+ }
+ }
+}
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/MetadataUpdates.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/MetadataUpdates.java
new file mode 100644
index 000000000..a8a0d89c1
--- /dev/null
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/MetadataUpdates.java
@@ -0,0 +1,212 @@
+/*
+ * Grounding
+ * Grounding is a service designed to handle data-related tasks, such as grounding and retrieval, using vector databases. It provides specialized data retrieval through these databases, grounding the retrieval process with your own external and context-relevant data. Grounding combines generative AI capabilities with the ability to use real-time, precise data to improve decision-making and business operations for specific AI-driven business solutions.
+ *
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.sap.ai.sdk.grounding.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.Objects;
+import java.util.Set;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+/** MetadataUpdates */
+// CHECKSTYLE:OFF
+public class MetadataUpdates
+// CHECKSTYLE:ON
+{
+ @JsonProperty("updates")
+ private List updates = new ArrayList<>();
+
+ @JsonAnySetter @JsonAnyGetter
+ private final Map cloudSdkCustomFields = new LinkedHashMap<>();
+
+ /** Default constructor for MetadataUpdates. */
+ protected MetadataUpdates() {}
+
+ /**
+ * Set the updates of this {@link MetadataUpdates} instance and return the same instance.
+ *
+ * @param updates List of metadata updates.
+ * @return The same instance of this {@link MetadataUpdates} class
+ */
+ @Nonnull
+ public MetadataUpdates updates(@Nonnull final List updates) {
+ this.updates = updates;
+ return this;
+ }
+
+ /**
+ * Add one updates instance to this {@link MetadataUpdates}.
+ *
+ * @param updatesItem The updates that should be added
+ * @return The same instance of type {@link MetadataUpdates}
+ */
+ @Nonnull
+ public MetadataUpdates addUpdatesItem(@Nonnull final MetadataUpdateItem updatesItem) {
+ if (this.updates == null) {
+ this.updates = new ArrayList<>();
+ }
+ this.updates.add(updatesItem);
+ return this;
+ }
+
+ /**
+ * List of metadata updates.
+ *
+ * @return updates The updates of this {@link MetadataUpdates} instance.
+ */
+ @Nonnull
+ public List getUpdates() {
+ return updates;
+ }
+
+ /**
+ * Set the updates of this {@link MetadataUpdates} instance.
+ *
+ * @param updates List of metadata updates.
+ */
+ public void setUpdates(@Nonnull final List updates) {
+ this.updates = updates;
+ }
+
+ /**
+ * Get the names of the unrecognizable properties of the {@link MetadataUpdates}.
+ *
+ * @return The set of properties names
+ */
+ @JsonIgnore
+ @Nonnull
+ public Set getCustomFieldNames() {
+ return cloudSdkCustomFields.keySet();
+ }
+
+ /**
+ * Get the value of an unrecognizable property of this {@link MetadataUpdates} instance.
+ *
+ * @deprecated Use {@link #toMap()} instead.
+ * @param name The name of the property
+ * @return The value of the property
+ * @throws NoSuchElementException If no property with the given name could be found.
+ */
+ @Nullable
+ @Deprecated
+ public Object getCustomField(@Nonnull final String name) throws NoSuchElementException {
+ if (!cloudSdkCustomFields.containsKey(name)) {
+ throw new NoSuchElementException("MetadataUpdates has no field with name '" + name + "'.");
+ }
+ return cloudSdkCustomFields.get(name);
+ }
+
+ /**
+ * Get the value of all properties of this {@link MetadataUpdates} instance including unrecognized
+ * properties.
+ *
+ * @return The map of all properties
+ */
+ @JsonIgnore
+ @Nonnull
+ public Map