();
+ 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/CreatePipeline.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/CreatePipeline.java
index 4f00d0757..d71ab205a 100644
--- a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/CreatePipeline.java
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/CreatePipeline.java
@@ -17,11 +17,14 @@
/** CreatePipeline */
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "type", visible = true)
@JsonSubTypes({
+ @JsonSubTypes.Type(value = GoogleDrivePipelineCreateRequest.class, name = "GoogleDrive"),
@JsonSubTypes.Type(value = MSSharePointPipelineCreateRequest.class, name = "MSSharePoint"),
@JsonSubTypes.Type(value = S3PipelineCreateRequest.class, name = "S3"),
@JsonSubTypes.Type(value = SDMPipelineCreateRequest.class, name = "SDM"),
@JsonSubTypes.Type(value = SFTPPipelineCreateRequest.class, name = "SFTP"),
+ @JsonSubTypes.Type(value = ServiceNowPipelineCreateRequest.class, name = "ServiceNow"),
@JsonSubTypes.Type(value = WorkZonePipelineCreateRequest.class, name = "WorkZone"),
+ @JsonSubTypes.Type(value = MetadataConfiguration.class, name = "metadata"),
})
public interface CreatePipeline {
Object getType();
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/GetPipeline.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/GetPipeline.java
index 4e50c2a43..9dd6a2adc 100644
--- a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/GetPipeline.java
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/GetPipeline.java
@@ -17,10 +17,12 @@
/** GetPipeline */
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "type", visible = true)
@JsonSubTypes({
+ @JsonSubTypes.Type(value = GoogleDrivePipelineGetResponse.class, name = "GoogleDrive"),
@JsonSubTypes.Type(value = MSSharePointPipelineGetResponse.class, name = "MSSharePoint"),
@JsonSubTypes.Type(value = S3PipelineGetResponse.class, name = "S3"),
@JsonSubTypes.Type(value = SDMPipelineGetResponse.class, name = "SDM"),
@JsonSubTypes.Type(value = SFTPPipelineGetResponse.class, name = "SFTP"),
+ @JsonSubTypes.Type(value = ServiceNowPipelineGetResponse.class, name = "ServiceNow"),
@JsonSubTypes.Type(value = WorkZonePipelineGetResponse.class, name = "WorkZone"),
})
public interface GetPipeline {
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/GoogleDriveConfig.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/GoogleDriveConfig.java
new file mode 100644
index 000000000..79aa8a1b2
--- /dev/null
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/GoogleDriveConfig.java
@@ -0,0 +1,184 @@
+/*
+ * 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;
+
+/** GoogleDriveConfig */
+// CHECKSTYLE:OFF
+public class GoogleDriveConfig
+// CHECKSTYLE:ON
+{
+ @JsonProperty("folder")
+ private GoogleDriveFolder folder;
+
+ @JsonAnySetter @JsonAnyGetter
+ private final Map cloudSdkCustomFields = new LinkedHashMap<>();
+
+ /** Default constructor for GoogleDriveConfig. */
+ protected GoogleDriveConfig() {}
+
+ /**
+ * Set the folder of this {@link GoogleDriveConfig} instance and return the same instance.
+ *
+ * @param folder The folder of this {@link GoogleDriveConfig}
+ * @return The same instance of this {@link GoogleDriveConfig} class
+ */
+ @Nonnull
+ public GoogleDriveConfig folder(@Nonnull final GoogleDriveFolder folder) {
+ this.folder = folder;
+ return this;
+ }
+
+ /**
+ * Get folder
+ *
+ * @return folder The folder of this {@link GoogleDriveConfig} instance.
+ */
+ @Nonnull
+ public GoogleDriveFolder getFolder() {
+ return folder;
+ }
+
+ /**
+ * Set the folder of this {@link GoogleDriveConfig} instance.
+ *
+ * @param folder The folder of this {@link GoogleDriveConfig}
+ */
+ public void setFolder(@Nonnull final GoogleDriveFolder folder) {
+ this.folder = folder;
+ }
+
+ /**
+ * Get the names of the unrecognizable properties of the {@link GoogleDriveConfig}.
+ *
+ * @return The set of properties names
+ */
+ @JsonIgnore
+ @Nonnull
+ public Set getCustomFieldNames() {
+ return cloudSdkCustomFields.keySet();
+ }
+
+ /**
+ * Get the value of an unrecognizable property of this {@link GoogleDriveConfig} 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("GoogleDriveConfig has no field with name '" + name + "'.");
+ }
+ return cloudSdkCustomFields.get(name);
+ }
+
+ /**
+ * Get the value of all properties of this {@link GoogleDriveConfig} instance including
+ * unrecognized properties.
+ *
+ * @return The map of all properties
+ */
+ @JsonIgnore
+ @Nonnull
+ public Map toMap() {
+ final Map declaredFields = new LinkedHashMap<>(cloudSdkCustomFields);
+ if (folder != null) declaredFields.put("folder", folder);
+ return declaredFields;
+ }
+
+ /**
+ * Set an unrecognizable property of this {@link GoogleDriveConfig} 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 GoogleDriveConfig googleDriveConfig = (GoogleDriveConfig) o;
+ return Objects.equals(this.cloudSdkCustomFields, googleDriveConfig.cloudSdkCustomFields)
+ && Objects.equals(this.folder, googleDriveConfig.folder);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(folder, cloudSdkCustomFields);
+ }
+
+ @Override
+ @Nonnull
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("class GoogleDriveConfig {\n");
+ sb.append(" folder: ").append(toIndentedString(folder)).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 GoogleDriveConfig}
+ * instance with all required arguments.
+ */
+ public static Builder create() {
+ return (folder) -> new GoogleDriveConfig().folder(folder);
+ }
+
+ /** Builder helper class. */
+ public interface Builder {
+ /**
+ * Set the folder of this {@link GoogleDriveConfig} instance.
+ *
+ * @param folder The folder of this {@link GoogleDriveConfig}
+ * @return The GoogleDriveConfig instance.
+ */
+ GoogleDriveConfig folder(@Nonnull final GoogleDriveFolder folder);
+ }
+}
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/GoogleDriveConfigurationMinimal.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/GoogleDriveConfigurationMinimal.java
new file mode 100644
index 000000000..44188a6ff
--- /dev/null
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/GoogleDriveConfigurationMinimal.java
@@ -0,0 +1,191 @@
+/*
+ * 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;
+
+/** GoogleDriveConfigurationMinimal */
+// CHECKSTYLE:OFF
+public class GoogleDriveConfigurationMinimal
+// CHECKSTYLE:ON
+{
+ @JsonProperty("googleDrive")
+ private GoogleDriveFolderDetail googleDrive;
+
+ @JsonAnySetter @JsonAnyGetter
+ private final Map cloudSdkCustomFields = new LinkedHashMap<>();
+
+ /** Default constructor for GoogleDriveConfigurationMinimal. */
+ protected GoogleDriveConfigurationMinimal() {}
+
+ /**
+ * Set the googleDrive of this {@link GoogleDriveConfigurationMinimal} instance and return the
+ * same instance.
+ *
+ * @param googleDrive The googleDrive of this {@link GoogleDriveConfigurationMinimal}
+ * @return The same instance of this {@link GoogleDriveConfigurationMinimal} class
+ */
+ @Nonnull
+ public GoogleDriveConfigurationMinimal googleDrive(
+ @Nonnull final GoogleDriveFolderDetail googleDrive) {
+ this.googleDrive = googleDrive;
+ return this;
+ }
+
+ /**
+ * Get googleDrive
+ *
+ * @return googleDrive The googleDrive of this {@link GoogleDriveConfigurationMinimal} instance.
+ */
+ @Nonnull
+ public GoogleDriveFolderDetail getGoogleDrive() {
+ return googleDrive;
+ }
+
+ /**
+ * Set the googleDrive of this {@link GoogleDriveConfigurationMinimal} instance.
+ *
+ * @param googleDrive The googleDrive of this {@link GoogleDriveConfigurationMinimal}
+ */
+ public void setGoogleDrive(@Nonnull final GoogleDriveFolderDetail googleDrive) {
+ this.googleDrive = googleDrive;
+ }
+
+ /**
+ * Get the names of the unrecognizable properties of the {@link GoogleDriveConfigurationMinimal}.
+ *
+ * @return The set of properties names
+ */
+ @JsonIgnore
+ @Nonnull
+ public Set getCustomFieldNames() {
+ return cloudSdkCustomFields.keySet();
+ }
+
+ /**
+ * Get the value of an unrecognizable property of this {@link GoogleDriveConfigurationMinimal}
+ * 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(
+ "GoogleDriveConfigurationMinimal has no field with name '" + name + "'.");
+ }
+ return cloudSdkCustomFields.get(name);
+ }
+
+ /**
+ * Get the value of all properties of this {@link GoogleDriveConfigurationMinimal} instance
+ * including unrecognized properties.
+ *
+ * @return The map of all properties
+ */
+ @JsonIgnore
+ @Nonnull
+ public Map toMap() {
+ final Map declaredFields = new LinkedHashMap<>(cloudSdkCustomFields);
+ if (googleDrive != null) declaredFields.put("googleDrive", googleDrive);
+ return declaredFields;
+ }
+
+ /**
+ * Set an unrecognizable property of this {@link GoogleDriveConfigurationMinimal} 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 GoogleDriveConfigurationMinimal googleDriveConfigurationMinimal =
+ (GoogleDriveConfigurationMinimal) o;
+ return Objects.equals(
+ this.cloudSdkCustomFields, googleDriveConfigurationMinimal.cloudSdkCustomFields)
+ && Objects.equals(this.googleDrive, googleDriveConfigurationMinimal.googleDrive);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(googleDrive, cloudSdkCustomFields);
+ }
+
+ @Override
+ @Nonnull
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("class GoogleDriveConfigurationMinimal {\n");
+ sb.append(" googleDrive: ").append(toIndentedString(googleDrive)).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
+ * GoogleDriveConfigurationMinimal} instance with all required arguments.
+ */
+ public static Builder create() {
+ return (googleDrive) -> new GoogleDriveConfigurationMinimal().googleDrive(googleDrive);
+ }
+
+ /** Builder helper class. */
+ public interface Builder {
+ /**
+ * Set the googleDrive of this {@link GoogleDriveConfigurationMinimal} instance.
+ *
+ * @param googleDrive The googleDrive of this {@link GoogleDriveConfigurationMinimal}
+ * @return The GoogleDriveConfigurationMinimal instance.
+ */
+ GoogleDriveConfigurationMinimal googleDrive(@Nonnull final GoogleDriveFolderDetail googleDrive);
+ }
+}
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/GoogleDriveConfigurationStruct.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/GoogleDriveConfigurationStruct.java
new file mode 100644
index 000000000..38f730a3f
--- /dev/null
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/GoogleDriveConfigurationStruct.java
@@ -0,0 +1,323 @@
+/*
+ * 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;
+
+/** GoogleDriveConfigurationStruct */
+// CHECKSTYLE:OFF
+public class GoogleDriveConfigurationStruct
+// CHECKSTYLE:ON
+{
+ @JsonProperty("destination")
+ private String destination;
+
+ @JsonProperty("googleDrive")
+ private GoogleDriveConfig googleDrive;
+
+ @JsonProperty("cronExpression")
+ private String cronExpression;
+
+ @JsonProperty("metadataConfigId")
+ private String metadataConfigId;
+
+ @JsonAnySetter @JsonAnyGetter
+ private final Map cloudSdkCustomFields = new LinkedHashMap<>();
+
+ /** Default constructor for GoogleDriveConfigurationStruct. */
+ protected GoogleDriveConfigurationStruct() {}
+
+ /**
+ * Set the destination of this {@link GoogleDriveConfigurationStruct} instance and return the same
+ * instance.
+ *
+ * @param destination The destination of this {@link GoogleDriveConfigurationStruct}
+ * @return The same instance of this {@link GoogleDriveConfigurationStruct} class
+ */
+ @Nonnull
+ public GoogleDriveConfigurationStruct destination(@Nonnull final String destination) {
+ this.destination = destination;
+ return this;
+ }
+
+ /**
+ * Get destination
+ *
+ * @return destination The destination of this {@link GoogleDriveConfigurationStruct} instance.
+ */
+ @Nonnull
+ public String getDestination() {
+ return destination;
+ }
+
+ /**
+ * Set the destination of this {@link GoogleDriveConfigurationStruct} instance.
+ *
+ * @param destination The destination of this {@link GoogleDriveConfigurationStruct}
+ */
+ public void setDestination(@Nonnull final String destination) {
+ this.destination = destination;
+ }
+
+ /**
+ * Set the googleDrive of this {@link GoogleDriveConfigurationStruct} instance and return the same
+ * instance.
+ *
+ * @param googleDrive The googleDrive of this {@link GoogleDriveConfigurationStruct}
+ * @return The same instance of this {@link GoogleDriveConfigurationStruct} class
+ */
+ @Nonnull
+ public GoogleDriveConfigurationStruct googleDrive(@Nonnull final GoogleDriveConfig googleDrive) {
+ this.googleDrive = googleDrive;
+ return this;
+ }
+
+ /**
+ * Get googleDrive
+ *
+ * @return googleDrive The googleDrive of this {@link GoogleDriveConfigurationStruct} instance.
+ */
+ @Nonnull
+ public GoogleDriveConfig getGoogleDrive() {
+ return googleDrive;
+ }
+
+ /**
+ * Set the googleDrive of this {@link GoogleDriveConfigurationStruct} instance.
+ *
+ * @param googleDrive The googleDrive of this {@link GoogleDriveConfigurationStruct}
+ */
+ public void setGoogleDrive(@Nonnull final GoogleDriveConfig googleDrive) {
+ this.googleDrive = googleDrive;
+ }
+
+ /**
+ * Set the cronExpression of this {@link GoogleDriveConfigurationStruct} instance and return the
+ * same instance.
+ *
+ * @param cronExpression Optional cron expression for scheduling pipeline execution. Must
+ * represent an interval greater than 1 hour.
+ * @return The same instance of this {@link GoogleDriveConfigurationStruct} class
+ */
+ @Nonnull
+ public GoogleDriveConfigurationStruct cronExpression(@Nullable final String cronExpression) {
+ this.cronExpression = cronExpression;
+ return this;
+ }
+
+ /**
+ * Optional cron expression for scheduling pipeline execution. Must represent an interval greater
+ * than 1 hour.
+ *
+ * @return cronExpression The cronExpression of this {@link GoogleDriveConfigurationStruct}
+ * instance.
+ */
+ @Nonnull
+ public String getCronExpression() {
+ return cronExpression;
+ }
+
+ /**
+ * Set the cronExpression of this {@link GoogleDriveConfigurationStruct} instance.
+ *
+ * @param cronExpression Optional cron expression for scheduling pipeline execution. Must
+ * represent an interval greater than 1 hour.
+ */
+ public void setCronExpression(@Nullable final String cronExpression) {
+ this.cronExpression = cronExpression;
+ }
+
+ /**
+ * Set the metadataConfigId of this {@link GoogleDriveConfigurationStruct} instance and return the
+ * same instance.
+ *
+ * @param metadataConfigId The metadataConfigId of this {@link GoogleDriveConfigurationStruct}
+ * @return The same instance of this {@link GoogleDriveConfigurationStruct} class
+ */
+ @Nonnull
+ public GoogleDriveConfigurationStruct metadataConfigId(@Nullable final String metadataConfigId) {
+ this.metadataConfigId = metadataConfigId;
+ return this;
+ }
+
+ /**
+ * Get metadataConfigId
+ *
+ * @return metadataConfigId The metadataConfigId of this {@link GoogleDriveConfigurationStruct}
+ * instance.
+ */
+ @Nonnull
+ public String getMetadataConfigId() {
+ return metadataConfigId;
+ }
+
+ /**
+ * Set the metadataConfigId of this {@link GoogleDriveConfigurationStruct} instance.
+ *
+ * @param metadataConfigId The metadataConfigId of this {@link GoogleDriveConfigurationStruct}
+ */
+ public void setMetadataConfigId(@Nullable final String metadataConfigId) {
+ this.metadataConfigId = metadataConfigId;
+ }
+
+ /**
+ * Get the names of the unrecognizable properties of the {@link GoogleDriveConfigurationStruct}.
+ *
+ * @return The set of properties names
+ */
+ @JsonIgnore
+ @Nonnull
+ public Set getCustomFieldNames() {
+ return cloudSdkCustomFields.keySet();
+ }
+
+ /**
+ * Get the value of an unrecognizable property of this {@link GoogleDriveConfigurationStruct}
+ * 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(
+ "GoogleDriveConfigurationStruct has no field with name '" + name + "'.");
+ }
+ return cloudSdkCustomFields.get(name);
+ }
+
+ /**
+ * Get the value of all properties of this {@link GoogleDriveConfigurationStruct} instance
+ * including unrecognized properties.
+ *
+ * @return The map of all properties
+ */
+ @JsonIgnore
+ @Nonnull
+ public Map toMap() {
+ final Map declaredFields = new LinkedHashMap<>(cloudSdkCustomFields);
+ if (destination != null) declaredFields.put("destination", destination);
+ if (googleDrive != null) declaredFields.put("googleDrive", googleDrive);
+ if (cronExpression != null) declaredFields.put("cronExpression", cronExpression);
+ if (metadataConfigId != null) declaredFields.put("metadataConfigId", metadataConfigId);
+ return declaredFields;
+ }
+
+ /**
+ * Set an unrecognizable property of this {@link GoogleDriveConfigurationStruct} 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 GoogleDriveConfigurationStruct googleDriveConfigurationStruct =
+ (GoogleDriveConfigurationStruct) o;
+ return Objects.equals(
+ this.cloudSdkCustomFields, googleDriveConfigurationStruct.cloudSdkCustomFields)
+ && Objects.equals(this.destination, googleDriveConfigurationStruct.destination)
+ && Objects.equals(this.googleDrive, googleDriveConfigurationStruct.googleDrive)
+ && Objects.equals(this.cronExpression, googleDriveConfigurationStruct.cronExpression)
+ && Objects.equals(this.metadataConfigId, googleDriveConfigurationStruct.metadataConfigId);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(
+ destination, googleDrive, cronExpression, metadataConfigId, cloudSdkCustomFields);
+ }
+
+ @Override
+ @Nonnull
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("class GoogleDriveConfigurationStruct {\n");
+ sb.append(" destination: ").append(toIndentedString(destination)).append("\n");
+ sb.append(" googleDrive: ").append(toIndentedString(googleDrive)).append("\n");
+ sb.append(" cronExpression: ").append(toIndentedString(cronExpression)).append("\n");
+ sb.append(" metadataConfigId: ").append(toIndentedString(metadataConfigId)).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
+ * GoogleDriveConfigurationStruct} instance with all required arguments.
+ */
+ public static Builder create() {
+ return (destination) ->
+ (googleDrive) ->
+ new GoogleDriveConfigurationStruct().destination(destination).googleDrive(googleDrive);
+ }
+
+ /** Builder helper class. */
+ public interface Builder {
+ /**
+ * Set the destination of this {@link GoogleDriveConfigurationStruct} instance.
+ *
+ * @param destination The destination of this {@link GoogleDriveConfigurationStruct}
+ * @return The GoogleDriveConfigurationStruct builder.
+ */
+ Builder1 destination(@Nonnull final String destination);
+ }
+
+ /** Builder helper class. */
+ public interface Builder1 {
+ /**
+ * Set the googleDrive of this {@link GoogleDriveConfigurationStruct} instance.
+ *
+ * @param googleDrive The googleDrive of this {@link GoogleDriveConfigurationStruct}
+ * @return The GoogleDriveConfigurationStruct instance.
+ */
+ GoogleDriveConfigurationStruct googleDrive(@Nonnull final GoogleDriveConfig googleDrive);
+ }
+}
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/GoogleDriveFolder.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/GoogleDriveFolder.java
new file mode 100644
index 000000000..adf8a255c
--- /dev/null
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/GoogleDriveFolder.java
@@ -0,0 +1,371 @@
+/*
+ * 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;
+
+/** GoogleDriveFolder */
+// CHECKSTYLE:OFF
+public class GoogleDriveFolder
+// CHECKSTYLE:ON
+{
+ @JsonProperty("id")
+ private String id;
+
+ @JsonProperty("driveId")
+ private String driveId;
+
+ /** Gets or Sets driverType */
+ public enum DriverTypeEnum {
+ /** The SHARED_FOLDER option of this GoogleDriveFolder */
+ SHARED_FOLDER("SHARED_FOLDER"),
+
+ /** The SHARED_DRIVE option of this GoogleDriveFolder */
+ SHARED_DRIVE("SHARED_DRIVE"),
+
+ /** The UNKNOWN_DEFAULT_OPEN_API option of this GoogleDriveFolder */
+ UNKNOWN_DEFAULT_OPEN_API("unknown_default_open_api");
+
+ private String value;
+
+ DriverTypeEnum(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 GoogleDriveFolder
+ */
+ @JsonCreator
+ @Nonnull
+ public static DriverTypeEnum fromValue(@Nonnull final String value) {
+ for (DriverTypeEnum b : DriverTypeEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ return UNKNOWN_DEFAULT_OPEN_API;
+ }
+ }
+
+ @JsonProperty("driverType")
+ private DriverTypeEnum driverType;
+
+ @JsonProperty("includePaths")
+ private List includePaths = new ArrayList<>();
+
+ @JsonAnySetter @JsonAnyGetter
+ private final Map cloudSdkCustomFields = new LinkedHashMap<>();
+
+ /** Default constructor for GoogleDriveFolder. */
+ protected GoogleDriveFolder() {}
+
+ /**
+ * Set the id of this {@link GoogleDriveFolder} instance and return the same instance.
+ *
+ * @param id The id of this {@link GoogleDriveFolder}
+ * @return The same instance of this {@link GoogleDriveFolder} class
+ */
+ @Nonnull
+ public GoogleDriveFolder id(@Nullable final String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get id
+ *
+ * @return id The id of this {@link GoogleDriveFolder} instance.
+ */
+ @Nonnull
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * Set the id of this {@link GoogleDriveFolder} instance.
+ *
+ * @param id The id of this {@link GoogleDriveFolder}
+ */
+ public void setId(@Nullable final String id) {
+ this.id = id;
+ }
+
+ /**
+ * Set the driveId of this {@link GoogleDriveFolder} instance and return the same instance.
+ *
+ * @param driveId The driveId of this {@link GoogleDriveFolder}
+ * @return The same instance of this {@link GoogleDriveFolder} class
+ */
+ @Nonnull
+ public GoogleDriveFolder driveId(@Nullable final String driveId) {
+ this.driveId = driveId;
+ return this;
+ }
+
+ /**
+ * Get driveId
+ *
+ * @return driveId The driveId of this {@link GoogleDriveFolder} instance.
+ */
+ @Nonnull
+ public String getDriveId() {
+ return driveId;
+ }
+
+ /**
+ * Set the driveId of this {@link GoogleDriveFolder} instance.
+ *
+ * @param driveId The driveId of this {@link GoogleDriveFolder}
+ */
+ public void setDriveId(@Nullable final String driveId) {
+ this.driveId = driveId;
+ }
+
+ /**
+ * Set the driverType of this {@link GoogleDriveFolder} instance and return the same instance.
+ *
+ * @param driverType The driverType of this {@link GoogleDriveFolder}
+ * @return The same instance of this {@link GoogleDriveFolder} class
+ */
+ @Nonnull
+ public GoogleDriveFolder driverType(@Nonnull final DriverTypeEnum driverType) {
+ this.driverType = driverType;
+ return this;
+ }
+
+ /**
+ * Get driverType
+ *
+ * @return driverType The driverType of this {@link GoogleDriveFolder} instance.
+ */
+ @Nonnull
+ public DriverTypeEnum getDriverType() {
+ return driverType;
+ }
+
+ /**
+ * Set the driverType of this {@link GoogleDriveFolder} instance.
+ *
+ * @param driverType The driverType of this {@link GoogleDriveFolder}
+ */
+ public void setDriverType(@Nonnull final DriverTypeEnum driverType) {
+ this.driverType = driverType;
+ }
+
+ /**
+ * Set the includePaths of this {@link GoogleDriveFolder} instance and return the same instance.
+ *
+ * @param includePaths The includePaths of this {@link GoogleDriveFolder}
+ * @return The same instance of this {@link GoogleDriveFolder} class
+ */
+ @Nonnull
+ public GoogleDriveFolder includePaths(@Nullable final List includePaths) {
+ this.includePaths = includePaths;
+ return this;
+ }
+
+ /**
+ * Add one includePaths instance to this {@link GoogleDriveFolder}.
+ *
+ * @param includePathsItem The includePaths that should be added
+ * @return The same instance of type {@link GoogleDriveFolder}
+ */
+ @Nonnull
+ public GoogleDriveFolder addIncludePathsItem(@Nonnull final String includePathsItem) {
+ if (this.includePaths == null) {
+ this.includePaths = new ArrayList<>();
+ }
+ this.includePaths.add(includePathsItem);
+ return this;
+ }
+
+ /**
+ * Get includePaths
+ *
+ * @return includePaths The includePaths of this {@link GoogleDriveFolder} instance.
+ */
+ @Nonnull
+ public List getIncludePaths() {
+ return includePaths;
+ }
+
+ /**
+ * Set the includePaths of this {@link GoogleDriveFolder} instance.
+ *
+ * @param includePaths The includePaths of this {@link GoogleDriveFolder}
+ */
+ public void setIncludePaths(@Nullable final List includePaths) {
+ this.includePaths = includePaths;
+ }
+
+ /**
+ * Get the names of the unrecognizable properties of the {@link GoogleDriveFolder}.
+ *
+ * @return The set of properties names
+ */
+ @JsonIgnore
+ @Nonnull
+ public Set getCustomFieldNames() {
+ return cloudSdkCustomFields.keySet();
+ }
+
+ /**
+ * Get the value of an unrecognizable property of this {@link GoogleDriveFolder} 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("GoogleDriveFolder has no field with name '" + name + "'.");
+ }
+ return cloudSdkCustomFields.get(name);
+ }
+
+ /**
+ * Get the value of all properties of this {@link GoogleDriveFolder} 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 (driveId != null) declaredFields.put("driveId", driveId);
+ if (driverType != null) declaredFields.put("driverType", driverType);
+ if (includePaths != null) declaredFields.put("includePaths", includePaths);
+ return declaredFields;
+ }
+
+ /**
+ * Set an unrecognizable property of this {@link GoogleDriveFolder} 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 GoogleDriveFolder googleDriveFolder = (GoogleDriveFolder) o;
+ return Objects.equals(this.cloudSdkCustomFields, googleDriveFolder.cloudSdkCustomFields)
+ && Objects.equals(this.id, googleDriveFolder.id)
+ && Objects.equals(this.driveId, googleDriveFolder.driveId)
+ && Objects.equals(this.driverType, googleDriveFolder.driverType)
+ && Objects.equals(this.includePaths, googleDriveFolder.includePaths);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id, driveId, driverType, includePaths, cloudSdkCustomFields);
+ }
+
+ @Override
+ @Nonnull
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("class GoogleDriveFolder {\n");
+ sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append(" driveId: ").append(toIndentedString(driveId)).append("\n");
+ sb.append(" driverType: ").append(toIndentedString(driverType)).append("\n");
+ sb.append(" includePaths: ").append(toIndentedString(includePaths)).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 GoogleDriveFolder}
+ * instance with all required arguments.
+ */
+ public static Builder create() {
+ return (driverType) -> new GoogleDriveFolder().driverType(driverType);
+ }
+
+ /** Builder helper class. */
+ public interface Builder {
+ /**
+ * Set the driverType of this {@link GoogleDriveFolder} instance.
+ *
+ * @param driverType The driverType of this {@link GoogleDriveFolder}
+ * @return The GoogleDriveFolder instance.
+ */
+ GoogleDriveFolder driverType(@Nonnull final DriverTypeEnum driverType);
+ }
+}
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/GoogleDriveFolderDetail.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/GoogleDriveFolderDetail.java
new file mode 100644
index 000000000..5b5b25b34
--- /dev/null
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/GoogleDriveFolderDetail.java
@@ -0,0 +1,360 @@
+/*
+ * 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;
+
+/** GoogleDriveFolderDetail */
+// CHECKSTYLE:OFF
+public class GoogleDriveFolderDetail
+// CHECKSTYLE:ON
+{
+ @JsonProperty("id")
+ private String id;
+
+ @JsonProperty("driveId")
+ private String driveId;
+
+ /** Gets or Sets driverType */
+ public enum DriverTypeEnum {
+ /** The SHARED_FOLDER option of this GoogleDriveFolderDetail */
+ SHARED_FOLDER("SHARED_FOLDER"),
+
+ /** The SHARED_DRIVE option of this GoogleDriveFolderDetail */
+ SHARED_DRIVE("SHARED_DRIVE"),
+
+ /** The UNKNOWN_DEFAULT_OPEN_API option of this GoogleDriveFolderDetail */
+ UNKNOWN_DEFAULT_OPEN_API("unknown_default_open_api");
+
+ private String value;
+
+ DriverTypeEnum(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 GoogleDriveFolderDetail
+ */
+ @JsonCreator
+ @Nonnull
+ public static DriverTypeEnum fromValue(@Nonnull final String value) {
+ for (DriverTypeEnum b : DriverTypeEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ return UNKNOWN_DEFAULT_OPEN_API;
+ }
+ }
+
+ @JsonProperty("driverType")
+ private DriverTypeEnum driverType;
+
+ @JsonProperty("includePaths")
+ private List includePaths = new ArrayList<>();
+
+ @JsonAnySetter @JsonAnyGetter
+ private final Map cloudSdkCustomFields = new LinkedHashMap<>();
+
+ /** Default constructor for GoogleDriveFolderDetail. */
+ protected GoogleDriveFolderDetail() {}
+
+ /**
+ * Set the id of this {@link GoogleDriveFolderDetail} instance and return the same instance.
+ *
+ * @param id The id of this {@link GoogleDriveFolderDetail}
+ * @return The same instance of this {@link GoogleDriveFolderDetail} class
+ */
+ @Nonnull
+ public GoogleDriveFolderDetail id(@Nullable final String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get id
+ *
+ * @return id The id of this {@link GoogleDriveFolderDetail} instance.
+ */
+ @Nonnull
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * Set the id of this {@link GoogleDriveFolderDetail} instance.
+ *
+ * @param id The id of this {@link GoogleDriveFolderDetail}
+ */
+ public void setId(@Nullable final String id) {
+ this.id = id;
+ }
+
+ /**
+ * Set the driveId of this {@link GoogleDriveFolderDetail} instance and return the same instance.
+ *
+ * @param driveId The driveId of this {@link GoogleDriveFolderDetail}
+ * @return The same instance of this {@link GoogleDriveFolderDetail} class
+ */
+ @Nonnull
+ public GoogleDriveFolderDetail driveId(@Nullable final String driveId) {
+ this.driveId = driveId;
+ return this;
+ }
+
+ /**
+ * Get driveId
+ *
+ * @return driveId The driveId of this {@link GoogleDriveFolderDetail} instance.
+ */
+ @Nonnull
+ public String getDriveId() {
+ return driveId;
+ }
+
+ /**
+ * Set the driveId of this {@link GoogleDriveFolderDetail} instance.
+ *
+ * @param driveId The driveId of this {@link GoogleDriveFolderDetail}
+ */
+ public void setDriveId(@Nullable final String driveId) {
+ this.driveId = driveId;
+ }
+
+ /**
+ * Set the driverType of this {@link GoogleDriveFolderDetail} instance and return the same
+ * instance.
+ *
+ * @param driverType The driverType of this {@link GoogleDriveFolderDetail}
+ * @return The same instance of this {@link GoogleDriveFolderDetail} class
+ */
+ @Nonnull
+ public GoogleDriveFolderDetail driverType(@Nullable final DriverTypeEnum driverType) {
+ this.driverType = driverType;
+ return this;
+ }
+
+ /**
+ * Get driverType
+ *
+ * @return driverType The driverType of this {@link GoogleDriveFolderDetail} instance.
+ */
+ @Nonnull
+ public DriverTypeEnum getDriverType() {
+ return driverType;
+ }
+
+ /**
+ * Set the driverType of this {@link GoogleDriveFolderDetail} instance.
+ *
+ * @param driverType The driverType of this {@link GoogleDriveFolderDetail}
+ */
+ public void setDriverType(@Nullable final DriverTypeEnum driverType) {
+ this.driverType = driverType;
+ }
+
+ /**
+ * Set the includePaths of this {@link GoogleDriveFolderDetail} instance and return the same
+ * instance.
+ *
+ * @param includePaths The includePaths of this {@link GoogleDriveFolderDetail}
+ * @return The same instance of this {@link GoogleDriveFolderDetail} class
+ */
+ @Nonnull
+ public GoogleDriveFolderDetail includePaths(@Nullable final List includePaths) {
+ this.includePaths = includePaths;
+ return this;
+ }
+
+ /**
+ * Add one includePaths instance to this {@link GoogleDriveFolderDetail}.
+ *
+ * @param includePathsItem The includePaths that should be added
+ * @return The same instance of type {@link GoogleDriveFolderDetail}
+ */
+ @Nonnull
+ public GoogleDriveFolderDetail addIncludePathsItem(@Nonnull final String includePathsItem) {
+ if (this.includePaths == null) {
+ this.includePaths = new ArrayList<>();
+ }
+ this.includePaths.add(includePathsItem);
+ return this;
+ }
+
+ /**
+ * Get includePaths
+ *
+ * @return includePaths The includePaths of this {@link GoogleDriveFolderDetail} instance.
+ */
+ @Nonnull
+ public List getIncludePaths() {
+ return includePaths;
+ }
+
+ /**
+ * Set the includePaths of this {@link GoogleDriveFolderDetail} instance.
+ *
+ * @param includePaths The includePaths of this {@link GoogleDriveFolderDetail}
+ */
+ public void setIncludePaths(@Nullable final List includePaths) {
+ this.includePaths = includePaths;
+ }
+
+ /**
+ * Get the names of the unrecognizable properties of the {@link GoogleDriveFolderDetail}.
+ *
+ * @return The set of properties names
+ */
+ @JsonIgnore
+ @Nonnull
+ public Set getCustomFieldNames() {
+ return cloudSdkCustomFields.keySet();
+ }
+
+ /**
+ * Get the value of an unrecognizable property of this {@link GoogleDriveFolderDetail} 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(
+ "GoogleDriveFolderDetail has no field with name '" + name + "'.");
+ }
+ return cloudSdkCustomFields.get(name);
+ }
+
+ /**
+ * Get the value of all properties of this {@link GoogleDriveFolderDetail} 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 (driveId != null) declaredFields.put("driveId", driveId);
+ if (driverType != null) declaredFields.put("driverType", driverType);
+ if (includePaths != null) declaredFields.put("includePaths", includePaths);
+ return declaredFields;
+ }
+
+ /**
+ * Set an unrecognizable property of this {@link GoogleDriveFolderDetail} 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 GoogleDriveFolderDetail googleDriveFolderDetail = (GoogleDriveFolderDetail) o;
+ return Objects.equals(this.cloudSdkCustomFields, googleDriveFolderDetail.cloudSdkCustomFields)
+ && Objects.equals(this.id, googleDriveFolderDetail.id)
+ && Objects.equals(this.driveId, googleDriveFolderDetail.driveId)
+ && Objects.equals(this.driverType, googleDriveFolderDetail.driverType)
+ && Objects.equals(this.includePaths, googleDriveFolderDetail.includePaths);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id, driveId, driverType, includePaths, cloudSdkCustomFields);
+ }
+
+ @Override
+ @Nonnull
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("class GoogleDriveFolderDetail {\n");
+ sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append(" driveId: ").append(toIndentedString(driveId)).append("\n");
+ sb.append(" driverType: ").append(toIndentedString(driverType)).append("\n");
+ sb.append(" includePaths: ").append(toIndentedString(includePaths)).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 GoogleDriveFolderDetail} instance. No arguments are required. */
+ public static GoogleDriveFolderDetail create() {
+ return new GoogleDriveFolderDetail();
+ }
+}
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/GoogleDrivePipelineCreateRequest.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/GoogleDrivePipelineCreateRequest.java
new file mode 100644
index 000000000..1bbbc757d
--- /dev/null
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/GoogleDrivePipelineCreateRequest.java
@@ -0,0 +1,324 @@
+/*
+ * 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;
+
+/** GoogleDrivePipelineCreateRequest */
+// CHECKSTYLE:OFF
+public class GoogleDrivePipelineCreateRequest implements CreatePipeline
+// CHECKSTYLE:ON
+{
+ /** Gets or Sets type */
+ public enum TypeEnum {
+ /** The GOOGLE_DRIVE option of this GoogleDrivePipelineCreateRequest */
+ GOOGLE_DRIVE("GoogleDrive"),
+
+ /** The UNKNOWN_DEFAULT_OPEN_API option of this GoogleDrivePipelineCreateRequest */
+ UNKNOWN_DEFAULT_OPEN_API("unknown_default_open_api");
+
+ private String value;
+
+ TypeEnum(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 GoogleDrivePipelineCreateRequest
+ */
+ @JsonCreator
+ @Nonnull
+ public static TypeEnum fromValue(@Nonnull final String value) {
+ for (TypeEnum b : TypeEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ return UNKNOWN_DEFAULT_OPEN_API;
+ }
+ }
+
+ @JsonProperty("type")
+ private TypeEnum type;
+
+ @JsonProperty("metadata")
+ private MetaData metadata;
+
+ @JsonProperty("configuration")
+ private GoogleDriveConfigurationStruct _configuration;
+
+ @JsonAnySetter @JsonAnyGetter
+ private final Map cloudSdkCustomFields = new LinkedHashMap<>();
+
+ /** Default constructor for GoogleDrivePipelineCreateRequest. */
+ protected GoogleDrivePipelineCreateRequest() {}
+
+ /**
+ * Set the type of this {@link GoogleDrivePipelineCreateRequest} instance and return the same
+ * instance.
+ *
+ * @param type The type of this {@link GoogleDrivePipelineCreateRequest}
+ * @return The same instance of this {@link GoogleDrivePipelineCreateRequest} class
+ */
+ @Nonnull
+ public GoogleDrivePipelineCreateRequest type(@Nonnull final TypeEnum type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get type
+ *
+ * @return type The type of this {@link GoogleDrivePipelineCreateRequest} instance.
+ */
+ @Nonnull
+ public TypeEnum getType() {
+ return type;
+ }
+
+ /**
+ * Set the type of this {@link GoogleDrivePipelineCreateRequest} instance.
+ *
+ * @param type The type of this {@link GoogleDrivePipelineCreateRequest}
+ */
+ public void setType(@Nonnull final TypeEnum type) {
+ this.type = type;
+ }
+
+ /**
+ * Set the metadata of this {@link GoogleDrivePipelineCreateRequest} instance and return the same
+ * instance.
+ *
+ * @param metadata The metadata of this {@link GoogleDrivePipelineCreateRequest}
+ * @return The same instance of this {@link GoogleDrivePipelineCreateRequest} class
+ */
+ @Nonnull
+ public GoogleDrivePipelineCreateRequest metadata(@Nullable final MetaData metadata) {
+ this.metadata = metadata;
+ return this;
+ }
+
+ /**
+ * Get metadata
+ *
+ * @return metadata The metadata of this {@link GoogleDrivePipelineCreateRequest} instance.
+ */
+ @Nonnull
+ public MetaData getMetadata() {
+ return metadata;
+ }
+
+ /**
+ * Set the metadata of this {@link GoogleDrivePipelineCreateRequest} instance.
+ *
+ * @param metadata The metadata of this {@link GoogleDrivePipelineCreateRequest}
+ */
+ public void setMetadata(@Nullable final MetaData metadata) {
+ this.metadata = metadata;
+ }
+
+ /**
+ * Set the _configuration of this {@link GoogleDrivePipelineCreateRequest} instance and return the
+ * same instance.
+ *
+ * @param _configuration The _configuration of this {@link GoogleDrivePipelineCreateRequest}
+ * @return The same instance of this {@link GoogleDrivePipelineCreateRequest} class
+ */
+ @Nonnull
+ public GoogleDrivePipelineCreateRequest _configuration(
+ @Nullable final GoogleDriveConfigurationStruct _configuration) {
+ this._configuration = _configuration;
+ return this;
+ }
+
+ /**
+ * Get _configuration
+ *
+ * @return _configuration The _configuration of this {@link GoogleDrivePipelineCreateRequest}
+ * instance.
+ */
+ @Nonnull
+ public GoogleDriveConfigurationStruct getConfiguration() {
+ return _configuration;
+ }
+
+ /**
+ * Set the _configuration of this {@link GoogleDrivePipelineCreateRequest} instance.
+ *
+ * @param _configuration The _configuration of this {@link GoogleDrivePipelineCreateRequest}
+ */
+ public void setConfiguration(@Nullable final GoogleDriveConfigurationStruct _configuration) {
+ this._configuration = _configuration;
+ }
+
+ /**
+ * Get the names of the unrecognizable properties of the {@link GoogleDrivePipelineCreateRequest}.
+ *
+ * @return The set of properties names
+ */
+ @JsonIgnore
+ @Nonnull
+ public Set getCustomFieldNames() {
+ return cloudSdkCustomFields.keySet();
+ }
+
+ /**
+ * Get the value of an unrecognizable property of this {@link GoogleDrivePipelineCreateRequest}
+ * 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(
+ "GoogleDrivePipelineCreateRequest has no field with name '" + name + "'.");
+ }
+ return cloudSdkCustomFields.get(name);
+ }
+
+ /**
+ * Get the value of all properties of this {@link GoogleDrivePipelineCreateRequest} 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 (metadata != null) declaredFields.put("metadata", metadata);
+ if (_configuration != null) declaredFields.put("_configuration", _configuration);
+ return declaredFields;
+ }
+
+ /**
+ * Set an unrecognizable property of this {@link GoogleDrivePipelineCreateRequest} 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 GoogleDrivePipelineCreateRequest googleDrivePipelineCreateRequest =
+ (GoogleDrivePipelineCreateRequest) o;
+ return Objects.equals(
+ this.cloudSdkCustomFields, googleDrivePipelineCreateRequest.cloudSdkCustomFields)
+ && Objects.equals(this.type, googleDrivePipelineCreateRequest.type)
+ && Objects.equals(this.metadata, googleDrivePipelineCreateRequest.metadata)
+ && Objects.equals(this._configuration, googleDrivePipelineCreateRequest._configuration);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(type, metadata, _configuration, cloudSdkCustomFields);
+ }
+
+ @Override
+ @Nonnull
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("class GoogleDrivePipelineCreateRequest {\n");
+ sb.append(" type: ").append(toIndentedString(type)).append("\n");
+ sb.append(" metadata: ").append(toIndentedString(metadata)).append("\n");
+ sb.append(" _configuration: ").append(toIndentedString(_configuration)).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
+ * GoogleDrivePipelineCreateRequest} instance with all required arguments.
+ */
+ public static Builder create() {
+ return (type) -> new GoogleDrivePipelineCreateRequest().type(type);
+ }
+
+ /** Builder helper class. */
+ public interface Builder {
+ /**
+ * Set the type of this {@link GoogleDrivePipelineCreateRequest} instance.
+ *
+ * @param type The type of this {@link GoogleDrivePipelineCreateRequest}
+ * @return The GoogleDrivePipelineCreateRequest instance.
+ */
+ GoogleDrivePipelineCreateRequest type(@Nonnull final TypeEnum type);
+ }
+}
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/GoogleDrivePipelineGetResponse.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/GoogleDrivePipelineGetResponse.java
new file mode 100644
index 000000000..2cd6e924e
--- /dev/null
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/GoogleDrivePipelineGetResponse.java
@@ -0,0 +1,391 @@
+/*
+ * 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;
+
+/** GoogleDrivePipelineGetResponse */
+// CHECKSTYLE:OFF
+public class GoogleDrivePipelineGetResponse implements GetPipeline
+// CHECKSTYLE:ON
+{
+ @JsonProperty("id")
+ private String id;
+
+ /** Gets or Sets type */
+ public enum TypeEnum {
+ /** The GOOGLE_DRIVE option of this GoogleDrivePipelineGetResponse */
+ GOOGLE_DRIVE("GoogleDrive"),
+
+ /** The UNKNOWN_DEFAULT_OPEN_API option of this GoogleDrivePipelineGetResponse */
+ UNKNOWN_DEFAULT_OPEN_API("unknown_default_open_api");
+
+ private String value;
+
+ TypeEnum(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 GoogleDrivePipelineGetResponse
+ */
+ @JsonCreator
+ @Nonnull
+ public static TypeEnum fromValue(@Nonnull final String value) {
+ for (TypeEnum b : TypeEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ return UNKNOWN_DEFAULT_OPEN_API;
+ }
+ }
+
+ @JsonProperty("type")
+ private TypeEnum type;
+
+ @JsonProperty("metadata")
+ private MetaData metadata;
+
+ @JsonProperty("configuration")
+ private GoogleDriveConfigurationMinimal _configuration;
+
+ @JsonAnySetter @JsonAnyGetter
+ private final Map cloudSdkCustomFields = new LinkedHashMap<>();
+
+ /** Default constructor for GoogleDrivePipelineGetResponse. */
+ protected GoogleDrivePipelineGetResponse() {}
+
+ /**
+ * Set the id of this {@link GoogleDrivePipelineGetResponse} instance and return the same
+ * instance.
+ *
+ * @param id The id of this {@link GoogleDrivePipelineGetResponse}
+ * @return The same instance of this {@link GoogleDrivePipelineGetResponse} class
+ */
+ @Nonnull
+ public GoogleDrivePipelineGetResponse id(@Nonnull final String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get id
+ *
+ * @return id The id of this {@link GoogleDrivePipelineGetResponse} instance.
+ */
+ @Nonnull
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * Set the id of this {@link GoogleDrivePipelineGetResponse} instance.
+ *
+ * @param id The id of this {@link GoogleDrivePipelineGetResponse}
+ */
+ public void setId(@Nonnull final String id) {
+ this.id = id;
+ }
+
+ /**
+ * Set the type of this {@link GoogleDrivePipelineGetResponse} instance and return the same
+ * instance.
+ *
+ * @param type The type of this {@link GoogleDrivePipelineGetResponse}
+ * @return The same instance of this {@link GoogleDrivePipelineGetResponse} class
+ */
+ @Nonnull
+ public GoogleDrivePipelineGetResponse type(@Nonnull final TypeEnum type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get type
+ *
+ * @return type The type of this {@link GoogleDrivePipelineGetResponse} instance.
+ */
+ @Nonnull
+ public TypeEnum getType() {
+ return type;
+ }
+
+ /**
+ * Set the type of this {@link GoogleDrivePipelineGetResponse} instance.
+ *
+ * @param type The type of this {@link GoogleDrivePipelineGetResponse}
+ */
+ public void setType(@Nonnull final TypeEnum type) {
+ this.type = type;
+ }
+
+ /**
+ * Set the metadata of this {@link GoogleDrivePipelineGetResponse} instance and return the same
+ * instance.
+ *
+ * @param metadata The metadata of this {@link GoogleDrivePipelineGetResponse}
+ * @return The same instance of this {@link GoogleDrivePipelineGetResponse} class
+ */
+ @Nonnull
+ public GoogleDrivePipelineGetResponse metadata(@Nullable final MetaData metadata) {
+ this.metadata = metadata;
+ return this;
+ }
+
+ /**
+ * Get metadata
+ *
+ * @return metadata The metadata of this {@link GoogleDrivePipelineGetResponse} instance.
+ */
+ @Nonnull
+ public MetaData getMetadata() {
+ return metadata;
+ }
+
+ /**
+ * Set the metadata of this {@link GoogleDrivePipelineGetResponse} instance.
+ *
+ * @param metadata The metadata of this {@link GoogleDrivePipelineGetResponse}
+ */
+ public void setMetadata(@Nullable final MetaData metadata) {
+ this.metadata = metadata;
+ }
+
+ /**
+ * Set the _configuration of this {@link GoogleDrivePipelineGetResponse} instance and return the
+ * same instance.
+ *
+ * @param _configuration The _configuration of this {@link GoogleDrivePipelineGetResponse}
+ * @return The same instance of this {@link GoogleDrivePipelineGetResponse} class
+ */
+ @Nonnull
+ public GoogleDrivePipelineGetResponse _configuration(
+ @Nonnull final GoogleDriveConfigurationMinimal _configuration) {
+ this._configuration = _configuration;
+ return this;
+ }
+
+ /**
+ * Get _configuration
+ *
+ * @return _configuration The _configuration of this {@link GoogleDrivePipelineGetResponse}
+ * instance.
+ */
+ @Nonnull
+ public GoogleDriveConfigurationMinimal getConfiguration() {
+ return _configuration;
+ }
+
+ /**
+ * Set the _configuration of this {@link GoogleDrivePipelineGetResponse} instance.
+ *
+ * @param _configuration The _configuration of this {@link GoogleDrivePipelineGetResponse}
+ */
+ public void setConfiguration(@Nonnull final GoogleDriveConfigurationMinimal _configuration) {
+ this._configuration = _configuration;
+ }
+
+ /**
+ * Get the names of the unrecognizable properties of the {@link GoogleDrivePipelineGetResponse}.
+ *
+ * @return The set of properties names
+ */
+ @JsonIgnore
+ @Nonnull
+ public Set getCustomFieldNames() {
+ return cloudSdkCustomFields.keySet();
+ }
+
+ /**
+ * Get the value of an unrecognizable property of this {@link GoogleDrivePipelineGetResponse}
+ * 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(
+ "GoogleDrivePipelineGetResponse has no field with name '" + name + "'.");
+ }
+ return cloudSdkCustomFields.get(name);
+ }
+
+ /**
+ * Get the value of all properties of this {@link GoogleDrivePipelineGetResponse} 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 (type != null) declaredFields.put("type", type);
+ if (metadata != null) declaredFields.put("metadata", metadata);
+ if (_configuration != null) declaredFields.put("_configuration", _configuration);
+ return declaredFields;
+ }
+
+ /**
+ * Set an unrecognizable property of this {@link GoogleDrivePipelineGetResponse} 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 GoogleDrivePipelineGetResponse googleDrivePipelineGetResponse =
+ (GoogleDrivePipelineGetResponse) o;
+ return Objects.equals(
+ this.cloudSdkCustomFields, googleDrivePipelineGetResponse.cloudSdkCustomFields)
+ && Objects.equals(this.id, googleDrivePipelineGetResponse.id)
+ && Objects.equals(this.type, googleDrivePipelineGetResponse.type)
+ && Objects.equals(this.metadata, googleDrivePipelineGetResponse.metadata)
+ && Objects.equals(this._configuration, googleDrivePipelineGetResponse._configuration);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id, type, metadata, _configuration, cloudSdkCustomFields);
+ }
+
+ @Override
+ @Nonnull
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("class GoogleDrivePipelineGetResponse {\n");
+ sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append(" type: ").append(toIndentedString(type)).append("\n");
+ sb.append(" metadata: ").append(toIndentedString(metadata)).append("\n");
+ sb.append(" _configuration: ").append(toIndentedString(_configuration)).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
+ * GoogleDrivePipelineGetResponse} instance with all required arguments.
+ */
+ public static Builder create() {
+ return (id) ->
+ (type) ->
+ (_configuration) ->
+ new GoogleDrivePipelineGetResponse()
+ .id(id)
+ .type(type)
+ ._configuration(_configuration);
+ }
+
+ /** Builder helper class. */
+ public interface Builder {
+ /**
+ * Set the id of this {@link GoogleDrivePipelineGetResponse} instance.
+ *
+ * @param id The id of this {@link GoogleDrivePipelineGetResponse}
+ * @return The GoogleDrivePipelineGetResponse builder.
+ */
+ Builder1 id(@Nonnull final String id);
+ }
+
+ /** Builder helper class. */
+ public interface Builder1 {
+ /**
+ * Set the type of this {@link GoogleDrivePipelineGetResponse} instance.
+ *
+ * @param type The type of this {@link GoogleDrivePipelineGetResponse}
+ * @return The GoogleDrivePipelineGetResponse builder.
+ */
+ Builder2 type(@Nonnull final TypeEnum type);
+ }
+
+ /** Builder helper class. */
+ public interface Builder2 {
+ /**
+ * Set the _configuration of this {@link GoogleDrivePipelineGetResponse} instance.
+ *
+ * @param _configuration The _configuration of this {@link GoogleDrivePipelineGetResponse}
+ * @return The GoogleDrivePipelineGetResponse instance.
+ */
+ GoogleDrivePipelineGetResponse _configuration(
+ @Nonnull final GoogleDriveConfigurationMinimal _configuration);
+ }
+}
diff --git a/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/GoogleDrivePipelineMinimalResponse.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/GoogleDrivePipelineMinimalResponse.java
new file mode 100644
index 000000000..e7a94e2ab
--- /dev/null
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/GoogleDrivePipelineMinimalResponse.java
@@ -0,0 +1,425 @@
+/*
+ * 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;
+
+/** GoogleDrivePipelineMinimalResponse */
+// CHECKSTYLE:OFF
+public class GoogleDrivePipelineMinimalResponse implements PipelineMinimalResponse
+// CHECKSTYLE:ON
+{
+ @JsonProperty("id")
+ private String id;
+
+ @JsonProperty("status")
+ private PipelineExecutionStatus status;
+
+ /** Gets or Sets type */
+ public enum TypeEnum {
+ /** The GOOGLE_DRIVE option of this GoogleDrivePipelineMinimalResponse */
+ GOOGLE_DRIVE("GoogleDrive"),
+
+ /** The UNKNOWN_DEFAULT_OPEN_API option of this GoogleDrivePipelineMinimalResponse */
+ UNKNOWN_DEFAULT_OPEN_API("unknown_default_open_api");
+
+ private String value;
+
+ TypeEnum(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 GoogleDrivePipelineMinimalResponse
+ */
+ @JsonCreator
+ @Nonnull
+ public static TypeEnum fromValue(@Nonnull final String value) {
+ for (TypeEnum b : TypeEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ return UNKNOWN_DEFAULT_OPEN_API;
+ }
+ }
+
+ @JsonProperty("type")
+ private TypeEnum type;
+
+ @JsonProperty("configuration")
+ private GoogleDriveConfigurationMinimal _configuration;
+
+ @JsonProperty("metadata")
+ private Boolean metadata;
+
+ @JsonAnySetter @JsonAnyGetter
+ private final Map cloudSdkCustomFields = new LinkedHashMap<>();
+
+ /** Default constructor for GoogleDrivePipelineMinimalResponse. */
+ protected GoogleDrivePipelineMinimalResponse() {}
+
+ /**
+ * Set the id of this {@link GoogleDrivePipelineMinimalResponse} instance and return the same
+ * instance.
+ *
+ * @param id The id of this {@link GoogleDrivePipelineMinimalResponse}
+ * @return The same instance of this {@link GoogleDrivePipelineMinimalResponse} class
+ */
+ @Nonnull
+ public GoogleDrivePipelineMinimalResponse id(@Nonnull final String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get id
+ *
+ * @return id The id of this {@link GoogleDrivePipelineMinimalResponse} instance.
+ */
+ @Nonnull
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * Set the id of this {@link GoogleDrivePipelineMinimalResponse} instance.
+ *
+ * @param id The id of this {@link GoogleDrivePipelineMinimalResponse}
+ */
+ public void setId(@Nonnull final String id) {
+ this.id = id;
+ }
+
+ /**
+ * Set the status of this {@link GoogleDrivePipelineMinimalResponse} instance and return the same
+ * instance.
+ *
+ * @param status The status of this {@link GoogleDrivePipelineMinimalResponse}
+ * @return The same instance of this {@link GoogleDrivePipelineMinimalResponse} class
+ */
+ @Nonnull
+ public GoogleDrivePipelineMinimalResponse status(@Nullable final PipelineExecutionStatus status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get status
+ *
+ * @return status The status of this {@link GoogleDrivePipelineMinimalResponse} instance.
+ */
+ @Nullable
+ public PipelineExecutionStatus getStatus() {
+ return status;
+ }
+
+ /**
+ * Set the status of this {@link GoogleDrivePipelineMinimalResponse} instance.
+ *
+ * @param status The status of this {@link GoogleDrivePipelineMinimalResponse}
+ */
+ public void setStatus(@Nullable final PipelineExecutionStatus status) {
+ this.status = status;
+ }
+
+ /**
+ * Set the type of this {@link GoogleDrivePipelineMinimalResponse} instance and return the same
+ * instance.
+ *
+ * @param type The type of this {@link GoogleDrivePipelineMinimalResponse}
+ * @return The same instance of this {@link GoogleDrivePipelineMinimalResponse} class
+ */
+ @Nonnull
+ public GoogleDrivePipelineMinimalResponse type(@Nonnull final TypeEnum type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get type
+ *
+ * @return type The type of this {@link GoogleDrivePipelineMinimalResponse} instance.
+ */
+ @Nonnull
+ public TypeEnum getType() {
+ return type;
+ }
+
+ /**
+ * Set the type of this {@link GoogleDrivePipelineMinimalResponse} instance.
+ *
+ * @param type The type of this {@link GoogleDrivePipelineMinimalResponse}
+ */
+ public void setType(@Nonnull final TypeEnum type) {
+ this.type = type;
+ }
+
+ /**
+ * Set the _configuration of this {@link GoogleDrivePipelineMinimalResponse} instance and return
+ * the same instance.
+ *
+ * @param _configuration The _configuration of this {@link GoogleDrivePipelineMinimalResponse}
+ * @return The same instance of this {@link GoogleDrivePipelineMinimalResponse} class
+ */
+ @Nonnull
+ public GoogleDrivePipelineMinimalResponse _configuration(
+ @Nullable final GoogleDriveConfigurationMinimal _configuration) {
+ this._configuration = _configuration;
+ return this;
+ }
+
+ /**
+ * Get _configuration
+ *
+ * @return _configuration The _configuration of this {@link GoogleDrivePipelineMinimalResponse}
+ * instance.
+ */
+ @Nonnull
+ public GoogleDriveConfigurationMinimal getConfiguration() {
+ return _configuration;
+ }
+
+ /**
+ * Set the _configuration of this {@link GoogleDrivePipelineMinimalResponse} instance.
+ *
+ * @param _configuration The _configuration of this {@link GoogleDrivePipelineMinimalResponse}
+ */
+ public void setConfiguration(@Nullable final GoogleDriveConfigurationMinimal _configuration) {
+ this._configuration = _configuration;
+ }
+
+ /**
+ * Set the metadata of this {@link GoogleDrivePipelineMinimalResponse} instance and return the
+ * same instance.
+ *
+ * @param metadata The metadata of this {@link GoogleDrivePipelineMinimalResponse}
+ * @return The same instance of this {@link GoogleDrivePipelineMinimalResponse} class
+ */
+ @Nonnull
+ public GoogleDrivePipelineMinimalResponse metadata(@Nullable final Boolean metadata) {
+ this.metadata = metadata;
+ return this;
+ }
+
+ /**
+ * Get metadata
+ *
+ * @return metadata The metadata of this {@link GoogleDrivePipelineMinimalResponse} instance.
+ */
+ @Nonnull
+ public Boolean isMetadata() {
+ return metadata;
+ }
+
+ /**
+ * Set the metadata of this {@link GoogleDrivePipelineMinimalResponse} instance.
+ *
+ * @param metadata The metadata of this {@link GoogleDrivePipelineMinimalResponse}
+ */
+ public void setMetadata(@Nullable final Boolean metadata) {
+ this.metadata = metadata;
+ }
+
+ /**
+ * Get the names of the unrecognizable properties of the {@link
+ * GoogleDrivePipelineMinimalResponse}.
+ *
+ * @return The set of properties names
+ */
+ @JsonIgnore
+ @Nonnull
+ public Set getCustomFieldNames() {
+ return cloudSdkCustomFields.keySet();
+ }
+
+ /**
+ * Get the value of an unrecognizable property of this {@link GoogleDrivePipelineMinimalResponse}
+ * 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(
+ "GoogleDrivePipelineMinimalResponse has no field with name '" + name + "'.");
+ }
+ return cloudSdkCustomFields.get(name);
+ }
+
+ /**
+ * Get the value of all properties of this {@link GoogleDrivePipelineMinimalResponse} 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 (status != null) declaredFields.put("status", status);
+ if (type != null) declaredFields.put("type", type);
+ if (_configuration != null) declaredFields.put("_configuration", _configuration);
+ if (metadata != null) declaredFields.put("metadata", metadata);
+ return declaredFields;
+ }
+
+ /**
+ * Set an unrecognizable property of this {@link GoogleDrivePipelineMinimalResponse} 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 GoogleDrivePipelineMinimalResponse googleDrivePipelineMinimalResponse =
+ (GoogleDrivePipelineMinimalResponse) o;
+ return Objects.equals(
+ this.cloudSdkCustomFields, googleDrivePipelineMinimalResponse.cloudSdkCustomFields)
+ && Objects.equals(this.id, googleDrivePipelineMinimalResponse.id)
+ && Objects.equals(this.status, googleDrivePipelineMinimalResponse.status)
+ && Objects.equals(this.type, googleDrivePipelineMinimalResponse.type)
+ && Objects.equals(this._configuration, googleDrivePipelineMinimalResponse._configuration)
+ && Objects.equals(this.metadata, googleDrivePipelineMinimalResponse.metadata);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id, status, type, _configuration, metadata, cloudSdkCustomFields);
+ }
+
+ @Override
+ @Nonnull
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("class GoogleDrivePipelineMinimalResponse {\n");
+ sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append(" status: ").append(toIndentedString(status)).append("\n");
+ sb.append(" type: ").append(toIndentedString(type)).append("\n");
+ sb.append(" _configuration: ").append(toIndentedString(_configuration)).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
+ * GoogleDrivePipelineMinimalResponse} instance with all required arguments.
+ */
+ public static Builder create() {
+ return (id) ->
+ (status) ->
+ (type) -> new GoogleDrivePipelineMinimalResponse().id(id).status(status).type(type);
+ }
+
+ /** Builder helper class. */
+ public interface Builder {
+ /**
+ * Set the id of this {@link GoogleDrivePipelineMinimalResponse} instance.
+ *
+ * @param id The id of this {@link GoogleDrivePipelineMinimalResponse}
+ * @return The GoogleDrivePipelineMinimalResponse builder.
+ */
+ Builder1 id(@Nonnull final String id);
+ }
+
+ /** Builder helper class. */
+ public interface Builder1 {
+ /**
+ * Set the status of this {@link GoogleDrivePipelineMinimalResponse} instance.
+ *
+ * @param status The status of this {@link GoogleDrivePipelineMinimalResponse}
+ * @return The GoogleDrivePipelineMinimalResponse builder.
+ */
+ Builder2 status(@Nullable final PipelineExecutionStatus status);
+ }
+
+ /** Builder helper class. */
+ public interface Builder2 {
+ /**
+ * Set the type of this {@link GoogleDrivePipelineMinimalResponse} instance.
+ *
+ * @param type The type of this {@link GoogleDrivePipelineMinimalResponse}
+ * @return The GoogleDrivePipelineMinimalResponse instance.
+ */
+ GoogleDrivePipelineMinimalResponse type(@Nonnull final TypeEnum type);
+ }
+}
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/MetaDataKeyValuePairStrict.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/MetaDataKeyValuePairStrict.java
new file mode 100644
index 000000000..a06de47d2
--- /dev/null
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/MetaDataKeyValuePairStrict.java
@@ -0,0 +1,263 @@
+/*
+ * 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;
+
+/** MetaDataKeyValuePairStrict */
+// CHECKSTYLE:OFF
+public class MetaDataKeyValuePairStrict
+// CHECKSTYLE:ON
+{
+ @JsonProperty("key")
+ private String key;
+
+ @JsonProperty("value")
+ private List value = new ArrayList<>();
+
+ @JsonAnySetter @JsonAnyGetter
+ private final Map cloudSdkCustomFields = new LinkedHashMap<>();
+
+ /** Default constructor for MetaDataKeyValuePairStrict. */
+ protected MetaDataKeyValuePairStrict() {}
+
+ /**
+ * Set the key of this {@link MetaDataKeyValuePairStrict} instance and return the same instance.
+ *
+ * @param key The key of this {@link MetaDataKeyValuePairStrict}
+ * @return The same instance of this {@link MetaDataKeyValuePairStrict} class
+ */
+ @Nonnull
+ public MetaDataKeyValuePairStrict key(@Nonnull final String key) {
+ this.key = key;
+ return this;
+ }
+
+ /**
+ * Get key
+ *
+ * @return key The key of this {@link MetaDataKeyValuePairStrict} instance.
+ */
+ @Nonnull
+ public String getKey() {
+ return key;
+ }
+
+ /**
+ * Set the key of this {@link MetaDataKeyValuePairStrict} instance.
+ *
+ * @param key The key of this {@link MetaDataKeyValuePairStrict}
+ */
+ public void setKey(@Nonnull final String key) {
+ this.key = key;
+ }
+
+ /**
+ * Set the value of this {@link MetaDataKeyValuePairStrict} instance and return the same instance.
+ *
+ * @param value The value of this {@link MetaDataKeyValuePairStrict}
+ * @return The same instance of this {@link MetaDataKeyValuePairStrict} class
+ */
+ @Nonnull
+ public MetaDataKeyValuePairStrict value(@Nonnull final List value) {
+ this.value = value;
+ return this;
+ }
+
+ /**
+ * Add one value instance to this {@link MetaDataKeyValuePairStrict}.
+ *
+ * @param valueItem The value that should be added
+ * @return The same instance of type {@link MetaDataKeyValuePairStrict}
+ */
+ @Nonnull
+ public MetaDataKeyValuePairStrict 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 MetaDataKeyValuePairStrict} instance.
+ */
+ @Nonnull
+ public List getValue() {
+ return value;
+ }
+
+ /**
+ * Set the value of this {@link MetaDataKeyValuePairStrict} instance.
+ *
+ * @param value The value of this {@link MetaDataKeyValuePairStrict}
+ */
+ public void setValue(@Nonnull final List value) {
+ this.value = value;
+ }
+
+ /**
+ * Get the names of the unrecognizable properties of the {@link MetaDataKeyValuePairStrict}.
+ *
+ * @return The set of properties names
+ */
+ @JsonIgnore
+ @Nonnull
+ public Set getCustomFieldNames() {
+ return cloudSdkCustomFields.keySet();
+ }
+
+ /**
+ * Get the value of an unrecognizable property of this {@link MetaDataKeyValuePairStrict}
+ * 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(
+ "MetaDataKeyValuePairStrict has no field with name '" + name + "'.");
+ }
+ return cloudSdkCustomFields.get(name);
+ }
+
+ /**
+ * Get the value of all properties of this {@link MetaDataKeyValuePairStrict} 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);
+ return declaredFields;
+ }
+
+ /**
+ * Set an unrecognizable property of this {@link MetaDataKeyValuePairStrict} 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 MetaDataKeyValuePairStrict metaDataKeyValuePairStrict = (MetaDataKeyValuePairStrict) o;
+ return Objects.equals(
+ this.cloudSdkCustomFields, metaDataKeyValuePairStrict.cloudSdkCustomFields)
+ && Objects.equals(this.key, metaDataKeyValuePairStrict.key)
+ && Objects.equals(this.value, metaDataKeyValuePairStrict.value);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(key, value, cloudSdkCustomFields);
+ }
+
+ @Override
+ @Nonnull
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("class MetaDataKeyValuePairStrict {\n");
+ sb.append(" key: ").append(toIndentedString(key)).append("\n");
+ sb.append(" value: ").append(toIndentedString(value)).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
+ * MetaDataKeyValuePairStrict} instance with all required arguments.
+ */
+ public static Builder create() {
+ return (key) -> (value) -> new MetaDataKeyValuePairStrict().key(key).value(value);
+ }
+
+ /** Builder helper class. */
+ public interface Builder {
+ /**
+ * Set the key of this {@link MetaDataKeyValuePairStrict} instance.
+ *
+ * @param key The key of this {@link MetaDataKeyValuePairStrict}
+ * @return The MetaDataKeyValuePairStrict builder.
+ */
+ Builder1 key(@Nonnull final String key);
+ }
+
+ /** Builder helper class. */
+ public interface Builder1 {
+ /**
+ * Set the value of this {@link MetaDataKeyValuePairStrict} instance.
+ *
+ * @param value The value of this {@link MetaDataKeyValuePairStrict}
+ * @return The MetaDataKeyValuePairStrict instance.
+ */
+ MetaDataKeyValuePairStrict value(@Nonnull final List value);
+
+ /**
+ * Set the value of this {@link MetaDataKeyValuePairStrict} instance.
+ *
+ * @param value The value of this {@link MetaDataKeyValuePairStrict}
+ * @return The MetaDataKeyValuePairStrict instance.
+ */
+ default MetaDataKeyValuePairStrict 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/MetadataConfiguration.java b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/MetadataConfiguration.java
new file mode 100644
index 000000000..475bb962c
--- /dev/null
+++ b/core-services/document-grounding/src/main/java/com/sap/ai/sdk/grounding/model/MetadataConfiguration.java
@@ -0,0 +1,329 @@
+/*
+ * 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;
+
+/** MetadataConfiguration */
+// CHECKSTYLE:OFF
+public class MetadataConfiguration implements CreatePipeline
+// CHECKSTYLE:ON
+{
+ /** Gets or Sets type */
+ public enum TypeEnum {
+ /** The METADATA option of this MetadataConfiguration */
+ METADATA("metadata"),
+
+ /** The UNKNOWN_DEFAULT_OPEN_API option of this MetadataConfiguration */
+ UNKNOWN_DEFAULT_OPEN_API("unknown_default_open_api");
+
+ private String value;
+
+ TypeEnum(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 MetadataConfiguration
+ */
+ @JsonCreator
+ @Nonnull
+ public static TypeEnum fromValue(@Nonnull final String value) {
+ for (TypeEnum b : TypeEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ return UNKNOWN_DEFAULT_OPEN_API;
+ }
+ }
+
+ @JsonProperty("type")
+ private TypeEnum type;
+
+ @JsonProperty("configuration")
+ private MetadataConfigurationStruct _configuration;
+
+ @JsonProperty("metadata")
+ private MetadataConfigurationMetadata metadata;
+
+ @JsonAnySetter @JsonAnyGetter
+ private final Map cloudSdkCustomFields = new LinkedHashMap<>();
+
+ /** Default constructor for MetadataConfiguration. */
+ protected MetadataConfiguration() {}
+
+ /**
+ * Set the type of this {@link MetadataConfiguration} instance and return the same instance.
+ *
+ * @param type The type of this {@link MetadataConfiguration}
+ * @return The same instance of this {@link MetadataConfiguration} class
+ */
+ @Nonnull
+ public MetadataConfiguration type(@Nonnull final TypeEnum type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get type
+ *
+ * @return type The type of this {@link MetadataConfiguration} instance.
+ */
+ @Nonnull
+ public TypeEnum getType() {
+ return type;
+ }
+
+ /**
+ * Set the type of this {@link MetadataConfiguration} instance.
+ *
+ * @param type The type of this {@link MetadataConfiguration}
+ */
+ public void setType(@Nonnull final TypeEnum type) {
+ this.type = type;
+ }
+
+ /**
+ * Set the _configuration of this {@link MetadataConfiguration} instance and return the same
+ * instance.
+ *
+ * @param _configuration The _configuration of this {@link MetadataConfiguration}
+ * @return The same instance of this {@link MetadataConfiguration} class
+ */
+ @Nonnull
+ public MetadataConfiguration _configuration(
+ @Nonnull final MetadataConfigurationStruct _configuration) {
+ this._configuration = _configuration;
+ return this;
+ }
+
+ /**
+ * Get _configuration
+ *
+ * @return _configuration The _configuration of this {@link MetadataConfiguration} instance.
+ */
+ @Nonnull
+ public MetadataConfigurationStruct getConfiguration() {
+ return _configuration;
+ }
+
+ /**
+ * Set the _configuration of this {@link MetadataConfiguration} instance.
+ *
+ * @param _configuration The _configuration of this {@link MetadataConfiguration}
+ */
+ public void setConfiguration(@Nonnull final MetadataConfigurationStruct _configuration) {
+ this._configuration = _configuration;
+ }
+
+ /**
+ * Set the metadata of this {@link MetadataConfiguration} instance and return the same instance.
+ *
+ * @param metadata The metadata of this {@link MetadataConfiguration}
+ * @return The same instance of this {@link MetadataConfiguration} class
+ */
+ @Nonnull
+ public MetadataConfiguration metadata(@Nullable final MetadataConfigurationMetadata metadata) {
+ this.metadata = metadata;
+ return this;
+ }
+
+ /**
+ * Get metadata
+ *
+ * @return metadata The metadata of this {@link MetadataConfiguration} instance.
+ */
+ @Nonnull
+ public MetadataConfigurationMetadata getMetadata() {
+ return metadata;
+ }
+
+ /**
+ * Set the metadata of this {@link MetadataConfiguration} instance.
+ *
+ * @param metadata The metadata of this {@link MetadataConfiguration}
+ */
+ public void setMetadata(@Nullable final MetadataConfigurationMetadata metadata) {
+ this.metadata = metadata;
+ }
+
+ /**
+ * Get the names of the unrecognizable properties of the {@link MetadataConfiguration}.
+ *
+ * @return The set of properties names
+ */
+ @JsonIgnore
+ @Nonnull
+ public Set getCustomFieldNames() {
+ return cloudSdkCustomFields.keySet();
+ }
+
+ /**
+ * Get the value of an unrecognizable property of this {@link MetadataConfiguration} 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(
+ "MetadataConfiguration has no field with name '" + name + "'.");
+ }
+ return cloudSdkCustomFields.get(name);
+ }
+
+ /**
+ * Get the value of all properties of this {@link MetadataConfiguration} instance including
+ * unrecognized properties.
+ *
+ * @return The map of all properties
+ */
+ @JsonIgnore
+ @Nonnull
+ public Map toMap() {
+ final Map