defaultHeaders) {
+ final var api = new DataDestinationsApi(apiClient);
+ api.defaultHeaders.putAll(this.defaultHeaders);
+ api.defaultHeaders.putAll(defaultHeaders);
+ return api;
+ }
+
+ /**
+ * Async Data Destination Creation
+ *
+ * Create a data destination asynchronously. Schema validation happens synchronously;
+ * credential validation and secret storage run in a background task. Poll GET
+ * /dataDestinations/{name} to track progress via status and errorMessage. Returns 202 (not exists
+ * or ERROR retry), 409 (ACTIVE or DELETING), 422 (retry exhausted).
+ *
+ *
202 - Accepted - background task launched
+ *
+ *
400 - The specification of the resource was incorrect
+ *
+ *
409 - The resource conflicts with existing resources or has dependencies
+ *
+ *
422 - The request is valid but cannot be processed due to semantic errors
+ *
+ *
500 - Server error
+ *
+ * @param aiResourceGroup Resource Group ID
+ * @param dataDestinationName Unique identifier for the data destination
+ * @param createDataDestination The value for the parameter createDataDestination
+ * @return AsyncCreateDataDestinationResponse
+ * @throws OpenApiRequestException if an error occurs while attempting to invoke the API
+ */
+ @Nonnull
+ public AsyncCreateDataDestinationResponse createUpdateDataDestination(
+ @Nonnull final String aiResourceGroup,
+ @Nonnull final String dataDestinationName,
+ @Nonnull final CreateDataDestination createDataDestination)
+ throws OpenApiRequestException {
+
+ // verify the required parameter 'aiResourceGroup' is set
+ if (aiResourceGroup == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'aiResourceGroup' when calling createUpdateDataDestination")
+ .statusCode(400);
+ }
+
+ // verify the required parameter 'dataDestinationName' is set
+ if (dataDestinationName == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'dataDestinationName' when calling createUpdateDataDestination")
+ .statusCode(400);
+ }
+
+ // verify the required parameter 'createDataDestination' is set
+ if (createDataDestination == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'createDataDestination' when calling createUpdateDataDestination")
+ .statusCode(400);
+ }
+
+ // create path and map variables
+ final String localVarPath =
+ "/dataDestinations/{dataDestinationName}"
+ .replaceAll(
+ "\\{" + "dataDestinationName" + "\\}",
+ ApiClient.escapeString(ApiClient.parameterToString(dataDestinationName)));
+
+ final StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
+ final List localVarQueryParams = new ArrayList();
+ final List localVarCollectionQueryParams = new ArrayList();
+ final Map localVarHeaderParams = new HashMap(defaultHeaders);
+ final Map localVarFormParams = new HashMap();
+
+ if (aiResourceGroup != null)
+ localVarHeaderParams.put("AI-Resource-Group", ApiClient.parameterToString(aiResourceGroup));
+
+ final String[] localVarAccepts = {"application/json"};
+ final String localVarAccept = ApiClient.selectHeaderAccept(localVarAccepts);
+ final String[] localVarContentTypes = {"application/json"};
+ final String localVarContentType = ApiClient.selectHeaderContentType(localVarContentTypes);
+
+ final TypeReference localVarReturnType =
+ new TypeReference() {};
+
+ return apiClient.invokeAPI(
+ localVarPath,
+ "PUT",
+ localVarQueryParams,
+ localVarCollectionQueryParams,
+ localVarQueryStringJoiner.toString(),
+ createDataDestination,
+ localVarHeaderParams,
+ localVarFormParams,
+ localVarAccept,
+ localVarContentType,
+ localVarReturnType);
+ }
+
+ /**
+ * Delete Data Destination
+ *
+ * Mark the data destination for deletion. Synchronously checks for dependent TabularArtifacts;
+ * returns 202 immediately after marking DELETING. The cron reaper handles secret deletion and
+ * hard delete.
+ *
+ *
202 - Accepted — data destination marked DELETING; cron handles cleanup
+ *
+ *
400 - The specification of the resource was incorrect
+ *
+ *
404 - The specified resource was not found
+ *
+ *
409 - The resource conflicts with existing resources or has dependencies
+ *
+ *
500 - Server error
+ *
+ * @param aiResourceGroup Resource Group ID
+ * @param dataDestinationName The ID of the data destination to delete
+ * @return An OpenApiResponse containing the status code of the HttpResponse.
+ * @throws OpenApiRequestException if an error occurs while attempting to invoke the API
+ */
+ @Nonnull
+ public OpenApiResponse deleteDataDestinationByName(
+ @Nonnull final String aiResourceGroup, @Nonnull final String dataDestinationName)
+ throws OpenApiRequestException {
+
+ // verify the required parameter 'aiResourceGroup' is set
+ if (aiResourceGroup == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'aiResourceGroup' when calling deleteDataDestinationByName")
+ .statusCode(400);
+ }
+
+ // verify the required parameter 'dataDestinationName' is set
+ if (dataDestinationName == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'dataDestinationName' when calling deleteDataDestinationByName")
+ .statusCode(400);
+ }
+
+ // create path and map variables
+ final String localVarPath =
+ "/dataDestinations/{dataDestinationName}"
+ .replaceAll(
+ "\\{" + "dataDestinationName" + "\\}",
+ ApiClient.escapeString(ApiClient.parameterToString(dataDestinationName)));
+
+ final StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
+ final List localVarQueryParams = new ArrayList();
+ final List localVarCollectionQueryParams = new ArrayList();
+ final Map localVarHeaderParams = new HashMap(defaultHeaders);
+ final Map localVarFormParams = new HashMap();
+
+ if (aiResourceGroup != null)
+ localVarHeaderParams.put("AI-Resource-Group", ApiClient.parameterToString(aiResourceGroup));
+
+ final String[] localVarAccepts = {"application/json"};
+ final String localVarAccept = ApiClient.selectHeaderAccept(localVarAccepts);
+ final String[] localVarContentTypes = {};
+
+ final String localVarContentType = ApiClient.selectHeaderContentType(localVarContentTypes);
+
+ final TypeReference localVarReturnType =
+ new TypeReference() {};
+
+ return apiClient.invokeAPI(
+ localVarPath,
+ "DELETE",
+ localVarQueryParams,
+ localVarCollectionQueryParams,
+ localVarQueryStringJoiner.toString(),
+ null,
+ localVarHeaderParams,
+ localVarFormParams,
+ localVarAccept,
+ localVarContentType,
+ localVarReturnType);
+ }
+
+ /**
+ * Get Data Destination Details
+ *
+ * Get metadata of a specific data destination (excluding credentials)
+ *
+ *
200 - Returns the data destination for the given ID
+ *
+ *
400 - The specification of the resource was incorrect
+ *
+ *
404 - The specified resource was not found
+ *
+ *
500 - Server error
+ *
+ * @param aiResourceGroup Resource Group ID
+ * @param dataDestinationName The ID of the data destination to get
+ * @return GetDataDestination
+ * @throws OpenApiRequestException if an error occurs while attempting to invoke the API
+ */
+ @Nonnull
+ public GetDataDestination getDataDestinationByName(
+ @Nonnull final String aiResourceGroup, @Nonnull final String dataDestinationName)
+ throws OpenApiRequestException {
+
+ // verify the required parameter 'aiResourceGroup' is set
+ if (aiResourceGroup == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'aiResourceGroup' when calling getDataDestinationByName")
+ .statusCode(400);
+ }
+
+ // verify the required parameter 'dataDestinationName' is set
+ if (dataDestinationName == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'dataDestinationName' when calling getDataDestinationByName")
+ .statusCode(400);
+ }
+
+ // create path and map variables
+ final String localVarPath =
+ "/dataDestinations/{dataDestinationName}"
+ .replaceAll(
+ "\\{" + "dataDestinationName" + "\\}",
+ ApiClient.escapeString(ApiClient.parameterToString(dataDestinationName)));
+
+ final StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
+ final List localVarQueryParams = new ArrayList();
+ final List localVarCollectionQueryParams = new ArrayList();
+ final Map localVarHeaderParams = new HashMap(defaultHeaders);
+ final Map localVarFormParams = new HashMap();
+
+ if (aiResourceGroup != null)
+ localVarHeaderParams.put("AI-Resource-Group", ApiClient.parameterToString(aiResourceGroup));
+
+ final String[] localVarAccepts = {"application/json"};
+ final String localVarAccept = ApiClient.selectHeaderAccept(localVarAccepts);
+ final String[] localVarContentTypes = {};
+
+ final String localVarContentType = ApiClient.selectHeaderContentType(localVarContentTypes);
+
+ final TypeReference localVarReturnType =
+ new TypeReference() {};
+
+ return apiClient.invokeAPI(
+ localVarPath,
+ "GET",
+ localVarQueryParams,
+ localVarCollectionQueryParams,
+ localVarQueryStringJoiner.toString(),
+ null,
+ localVarHeaderParams,
+ localVarFormParams,
+ localVarAccept,
+ localVarContentType,
+ localVarReturnType);
+ }
+
+ /**
+ * Get Data Destinations
+ *
+ * Get all data destinations in the tenant (resource group)
+ *
+ *
200 - Returns all data destinations for the tenant
+ *
+ *
400 - The specification of the resource was incorrect
+ *
+ *
500 - Server error
+ *
+ * @param aiResourceGroup (required) Resource Group ID
+ * @param $top (optional) Number of results to display
+ * @param $skip (optional) Number of results to be skipped from the ordered list of results
+ * @param $count (optional) When the $count field is set to false, the response contains a count
+ * of the items present in the response. When the $count field is set to true, the response
+ * contains a count of all the items present on the server, and not just the ones in the
+ * response. When the $count field is not passed, it is false by default.
+ * @return GetDataDestinations
+ * @throws OpenApiRequestException if an error occurs while attempting to invoke the API
+ */
+ @Nonnull
+ public GetDataDestinations getAllDataDestinations(
+ @Nonnull final String aiResourceGroup,
+ @Nullable final Integer $top,
+ @Nullable final Integer $skip,
+ @Nullable final Boolean $count)
+ throws OpenApiRequestException {
+
+ // verify the required parameter 'aiResourceGroup' is set
+ if (aiResourceGroup == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'aiResourceGroup' when calling getAllDataDestinations")
+ .statusCode(400);
+ }
+
+ // create path and map variables
+ final String localVarPath = "/dataDestinations";
+
+ final StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
+ final List localVarQueryParams = new ArrayList();
+ final List localVarCollectionQueryParams = new ArrayList();
+ final Map localVarHeaderParams = new HashMap(defaultHeaders);
+ final Map localVarFormParams = new HashMap();
+
+ localVarQueryParams.addAll(ApiClient.parameterToPair("$top", $top));
+ localVarQueryParams.addAll(ApiClient.parameterToPair("$skip", $skip));
+ localVarQueryParams.addAll(ApiClient.parameterToPair("$count", $count));
+ if (aiResourceGroup != null)
+ localVarHeaderParams.put("AI-Resource-Group", ApiClient.parameterToString(aiResourceGroup));
+
+ final String[] localVarAccepts = {"application/json"};
+ final String localVarAccept = ApiClient.selectHeaderAccept(localVarAccepts);
+ final String[] localVarContentTypes = {};
+
+ final String localVarContentType = ApiClient.selectHeaderContentType(localVarContentTypes);
+
+ final TypeReference localVarReturnType =
+ new TypeReference() {};
+
+ return apiClient.invokeAPI(
+ localVarPath,
+ "GET",
+ localVarQueryParams,
+ localVarCollectionQueryParams,
+ localVarQueryStringJoiner.toString(),
+ null,
+ localVarHeaderParams,
+ localVarFormParams,
+ localVarAccept,
+ localVarContentType,
+ localVarReturnType);
+ }
+
+ /**
+ * Get Data Destinations
+ *
+ * Get all data destinations in the tenant (resource group)
+ *
+ *
200 - Returns all data destinations for the tenant
+ *
+ *
400 - The specification of the resource was incorrect
+ *
+ *
500 - Server error
+ *
+ * @param aiResourceGroup Resource Group ID
+ * @return GetDataDestinations
+ * @throws OpenApiRequestException if an error occurs while attempting to invoke the API
+ */
+ @Nonnull
+ public GetDataDestinations getAllDataDestinations(@Nonnull final String aiResourceGroup)
+ throws OpenApiRequestException {
+ return getAllDataDestinations(aiResourceGroup, null, null, null);
+ }
+
+ /**
+ * Update Data Destination
+ *
+ *
Update a data destination (excluding name and type)
+ *
+ *
204 - No Content
+ *
+ *
400 - The specification of the resource was incorrect
+ *
+ *
404 - The specified resource was not found
+ *
+ *
409 - The resource conflicts with existing resources or has dependencies
+ *
+ *
500 - Server error
+ *
+ * @param aiResourceGroup Resource Group ID
+ * @param dataDestinationName The ID of the data destination to update
+ * @param patchDataDestination The value for the parameter patchDataDestination
+ * @return An OpenApiResponse containing the status code of the HttpResponse.
+ * @throws OpenApiRequestException if an error occurs while attempting to invoke the API
+ */
+ @Nonnull
+ public OpenApiResponse patchDataDestinationByName(
+ @Nonnull final String aiResourceGroup,
+ @Nonnull final String dataDestinationName,
+ @Nonnull final PatchDataDestination patchDataDestination)
+ throws OpenApiRequestException {
+
+ // verify the required parameter 'aiResourceGroup' is set
+ if (aiResourceGroup == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'aiResourceGroup' when calling patchDataDestinationByName")
+ .statusCode(400);
+ }
+
+ // verify the required parameter 'dataDestinationName' is set
+ if (dataDestinationName == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'dataDestinationName' when calling patchDataDestinationByName")
+ .statusCode(400);
+ }
+
+ // verify the required parameter 'patchDataDestination' is set
+ if (patchDataDestination == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'patchDataDestination' when calling patchDataDestinationByName")
+ .statusCode(400);
+ }
+
+ // create path and map variables
+ final String localVarPath =
+ "/dataDestinations/{dataDestinationName}"
+ .replaceAll(
+ "\\{" + "dataDestinationName" + "\\}",
+ ApiClient.escapeString(ApiClient.parameterToString(dataDestinationName)));
+
+ final StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
+ final List localVarQueryParams = new ArrayList();
+ final List localVarCollectionQueryParams = new ArrayList();
+ final Map localVarHeaderParams = new HashMap(defaultHeaders);
+ final Map localVarFormParams = new HashMap();
+
+ if (aiResourceGroup != null)
+ localVarHeaderParams.put("AI-Resource-Group", ApiClient.parameterToString(aiResourceGroup));
+
+ final String[] localVarAccepts = {"application/json"};
+ final String localVarAccept = ApiClient.selectHeaderAccept(localVarAccepts);
+ final String[] localVarContentTypes = {"application/json"};
+ final String localVarContentType = ApiClient.selectHeaderContentType(localVarContentTypes);
+
+ final TypeReference localVarReturnType =
+ new TypeReference() {};
+
+ return apiClient.invokeAPI(
+ localVarPath,
+ "PATCH",
+ localVarQueryParams,
+ localVarCollectionQueryParams,
+ localVarQueryStringJoiner.toString(),
+ patchDataDestination,
+ localVarHeaderParams,
+ localVarFormParams,
+ localVarAccept,
+ localVarContentType,
+ localVarReturnType);
+ }
+
+ /**
+ * Search Data Destinations
+ *
+ * Search data destinations by label key-value pairs
+ *
+ *
200 - Returns data destinations matching the label selector
+ *
+ *
400 - The specification of the resource was incorrect
+ *
+ *
500 - Server error
+ *
+ * @param aiResourceGroup (required) Resource Group ID
+ * @param controllersDataDestinationV1EndpointsSearchDataDestinationsRequest (required) The value
+ * for the parameter controllersDataDestinationV1EndpointsSearchDataDestinationsRequest
+ * @param $top (optional) Number of results to display
+ * @param $skip (optional) Number of results to be skipped from the ordered list of results
+ * @param $count (optional) When the $count field is set to false, the response contains a count
+ * of the items present in the response. When the $count field is set to true, the response
+ * contains a count of all the items present on the server, and not just the ones in the
+ * response. When the $count field is not passed, it is false by default.
+ * @return GetDataDestinations
+ * @throws OpenApiRequestException if an error occurs while attempting to invoke the API
+ */
+ @Nonnull
+ public GetDataDestinations searchDestinations(
+ @Nonnull final String aiResourceGroup,
+ @Nonnull
+ final ControllersDataDestinationV1EndpointsSearchDataDestinationsRequest
+ controllersDataDestinationV1EndpointsSearchDataDestinationsRequest,
+ @Nullable final Integer $top,
+ @Nullable final Integer $skip,
+ @Nullable final Boolean $count)
+ throws OpenApiRequestException {
+
+ // verify the required parameter 'aiResourceGroup' is set
+ if (aiResourceGroup == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'aiResourceGroup' when calling searchDestinations")
+ .statusCode(400);
+ }
+
+ // verify the required parameter
+ // 'controllersDataDestinationV1EndpointsSearchDataDestinationsRequest' is set
+ if (controllersDataDestinationV1EndpointsSearchDataDestinationsRequest == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'controllersDataDestinationV1EndpointsSearchDataDestinationsRequest' when calling searchDataDestinations")
+ .statusCode(400);
+ }
+
+ // create path and map variables
+ final String localVarPath = "/dataDestinations/search";
+
+ final StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
+ final List localVarQueryParams = new ArrayList();
+ final List localVarCollectionQueryParams = new ArrayList();
+ final Map localVarHeaderParams = new HashMap(defaultHeaders);
+ final Map localVarFormParams = new HashMap();
+
+ localVarQueryParams.addAll(ApiClient.parameterToPair("$top", $top));
+ localVarQueryParams.addAll(ApiClient.parameterToPair("$skip", $skip));
+ localVarQueryParams.addAll(ApiClient.parameterToPair("$count", $count));
+ if (aiResourceGroup != null)
+ localVarHeaderParams.put("AI-Resource-Group", ApiClient.parameterToString(aiResourceGroup));
+
+ final String[] localVarAccepts = {"application/json"};
+ final String localVarAccept = ApiClient.selectHeaderAccept(localVarAccepts);
+ final String[] localVarContentTypes = {"application/json"};
+ final String localVarContentType = ApiClient.selectHeaderContentType(localVarContentTypes);
+
+ final TypeReference localVarReturnType =
+ new TypeReference() {};
+
+ return apiClient.invokeAPI(
+ localVarPath,
+ "POST",
+ localVarQueryParams,
+ localVarCollectionQueryParams,
+ localVarQueryStringJoiner.toString(),
+ controllersDataDestinationV1EndpointsSearchDataDestinationsRequest,
+ localVarHeaderParams,
+ localVarFormParams,
+ localVarAccept,
+ localVarContentType,
+ localVarReturnType);
+ }
+
+ /**
+ * Search Data Destinations
+ *
+ * Search data destinations by label key-value pairs
+ *
+ *
200 - Returns data destinations matching the label selector
+ *
+ *
400 - The specification of the resource was incorrect
+ *
+ *
500 - Server error
+ *
+ * @param aiResourceGroup Resource Group ID
+ * @param controllersDataDestinationV1EndpointsSearchDataDestinationsRequest The value for the
+ * parameter controllersDataDestinationV1EndpointsSearchDataDestinationsRequest
+ * @return GetDataDestinations
+ * @throws OpenApiRequestException if an error occurs while attempting to invoke the API
+ */
+ @Nonnull
+ public GetDataDestinations searchDestinations(
+ @Nonnull final String aiResourceGroup,
+ @Nonnull
+ final ControllersDataDestinationV1EndpointsSearchDataDestinationsRequest
+ controllersDataDestinationV1EndpointsSearchDataDestinationsRequest)
+ throws OpenApiRequestException {
+ return searchDestinations(
+ aiResourceGroup,
+ controllersDataDestinationV1EndpointsSearchDataDestinationsRequest,
+ null,
+ null,
+ null);
+ }
+
+ /**
+ * Validate Data Destination (pre-creation)
+ *
+ *
Test provider connectivity before saving. Nothing is persisted.
+ *
+ *
200 - Validation result
+ *
+ *
400 - The specification of the resource was incorrect
+ *
+ *
500 - Server error
+ *
+ * @param aiResourceGroup Resource Group ID
+ * @param validateDataDestinationRequest The value for the parameter
+ * validateDataDestinationRequest
+ * @return ValidateDataDestinationResponse
+ * @throws OpenApiRequestException if an error occurs while attempting to invoke the API
+ */
+ @Nonnull
+ public ValidateDataDestinationResponse validateDataDestination(
+ @Nonnull final String aiResourceGroup,
+ @Nonnull final ValidateDataDestinationRequest validateDataDestinationRequest)
+ throws OpenApiRequestException {
+
+ // verify the required parameter 'aiResourceGroup' is set
+ if (aiResourceGroup == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'aiResourceGroup' when calling validateDataDestination")
+ .statusCode(400);
+ }
+
+ // verify the required parameter 'validateDataDestinationRequest' is set
+ if (validateDataDestinationRequest == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'validateDataDestinationRequest' when calling validateDataDestination")
+ .statusCode(400);
+ }
+
+ // create path and map variables
+ final String localVarPath = "/dataDestinations/validate";
+
+ final StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
+ final List localVarQueryParams = new ArrayList();
+ final List localVarCollectionQueryParams = new ArrayList();
+ final Map localVarHeaderParams = new HashMap(defaultHeaders);
+ final Map localVarFormParams = new HashMap();
+
+ if (aiResourceGroup != null)
+ localVarHeaderParams.put("AI-Resource-Group", ApiClient.parameterToString(aiResourceGroup));
+
+ final String[] localVarAccepts = {"application/json"};
+ final String localVarAccept = ApiClient.selectHeaderAccept(localVarAccepts);
+ final String[] localVarContentTypes = {"application/json"};
+ final String localVarContentType = ApiClient.selectHeaderContentType(localVarContentTypes);
+
+ final TypeReference localVarReturnType =
+ new TypeReference() {};
+
+ return apiClient.invokeAPI(
+ localVarPath,
+ "POST",
+ localVarQueryParams,
+ localVarCollectionQueryParams,
+ localVarQueryStringJoiner.toString(),
+ validateDataDestinationRequest,
+ localVarHeaderParams,
+ localVarFormParams,
+ localVarAccept,
+ localVarContentType,
+ localVarReturnType);
+ }
+
+ /**
+ * Validate Data Destination (post-creation)
+ *
+ * Re-verify an already-saved destination using stored credentials.
+ *
+ *
200 - Validation result
+ *
+ *
400 - The specification of the resource was incorrect
+ *
+ *
404 - The specified resource was not found
+ *
+ *
500 - Server error
+ *
+ * @param aiResourceGroup Resource Group ID
+ * @param dataDestinationName The name of the data destination to validate
+ * @return ValidateDataDestinationResponse
+ * @throws OpenApiRequestException if an error occurs while attempting to invoke the API
+ */
+ @Nonnull
+ public ValidateDataDestinationResponse validateDataDestinationByName(
+ @Nonnull final String aiResourceGroup, @Nonnull final String dataDestinationName)
+ throws OpenApiRequestException {
+
+ // verify the required parameter 'aiResourceGroup' is set
+ if (aiResourceGroup == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'aiResourceGroup' when calling validateDataDestinationByName")
+ .statusCode(400);
+ }
+
+ // verify the required parameter 'dataDestinationName' is set
+ if (dataDestinationName == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'dataDestinationName' when calling validateDataDestinationByName")
+ .statusCode(400);
+ }
+
+ // create path and map variables
+ final String localVarPath =
+ "/dataDestinations/{dataDestinationName}/validate"
+ .replaceAll(
+ "\\{" + "dataDestinationName" + "\\}",
+ ApiClient.escapeString(ApiClient.parameterToString(dataDestinationName)));
+
+ final StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
+ final List localVarQueryParams = new ArrayList();
+ final List localVarCollectionQueryParams = new ArrayList();
+ final Map localVarHeaderParams = new HashMap(defaultHeaders);
+ final Map localVarFormParams = new HashMap();
+
+ if (aiResourceGroup != null)
+ localVarHeaderParams.put("AI-Resource-Group", ApiClient.parameterToString(aiResourceGroup));
+
+ final String[] localVarAccepts = {"application/json"};
+ final String localVarAccept = ApiClient.selectHeaderAccept(localVarAccepts);
+ final String[] localVarContentTypes = {};
+
+ final String localVarContentType = ApiClient.selectHeaderContentType(localVarContentTypes);
+
+ final TypeReference localVarReturnType =
+ new TypeReference() {};
+
+ return apiClient.invokeAPI(
+ localVarPath,
+ "POST",
+ localVarQueryParams,
+ localVarCollectionQueryParams,
+ localVarQueryStringJoiner.toString(),
+ null,
+ localVarHeaderParams,
+ localVarFormParams,
+ localVarAccept,
+ localVarContentType,
+ localVarReturnType);
+ }
+}
diff --git a/core-services/tabular-orchestration/src/main/java/com/sap/ai/sdk/tabular/generated/orchestration/client/ScenarioConfigurationManagerApi.java b/core-services/tabular-orchestration/src/main/java/com/sap/ai/sdk/tabular/generated/orchestration/client/ScenarioConfigurationManagerApi.java
new file mode 100644
index 000000000..2c32d3c33
--- /dev/null
+++ b/core-services/tabular-orchestration/src/main/java/com/sap/ai/sdk/tabular/generated/orchestration/client/ScenarioConfigurationManagerApi.java
@@ -0,0 +1,596 @@
+package com.sap.ai.sdk.tabular.generated.orchestration.client;
+
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.sap.ai.sdk.tabular.generated.orchestration.model.CreateScenarioConfiguration;
+import com.sap.ai.sdk.tabular.generated.orchestration.model.GetScenarioConfigurations;
+import com.sap.ai.sdk.tabular.generated.orchestration.model.PatchScenarioConfiguration;
+import com.sap.ai.sdk.tabular.generated.orchestration.model.ScenarioConfigurationNameObject;
+import com.sap.ai.sdk.tabular.generated.orchestration.model.ScenarioConfigurationObject;
+import com.sap.ai.sdk.tabular.generated.orchestration.model.SearchScenarioConfiguration;
+import com.sap.cloud.sdk.cloudplatform.connectivity.Destination;
+import com.sap.cloud.sdk.services.openapi.apache.apiclient.ApiClient;
+import com.sap.cloud.sdk.services.openapi.apache.apiclient.BaseApi;
+import com.sap.cloud.sdk.services.openapi.apache.apiclient.Pair;
+import com.sap.cloud.sdk.services.openapi.apache.core.OpenApiRequestException;
+import com.sap.cloud.sdk.services.openapi.apache.core.OpenApiResponse;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.StringJoiner;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+/**
+ * Context Registry in version 1.0.0.
+ *
+ * Context Registry is a service for managing tabular data contexts for AI applications. It
+ * provides capabilities to register data destinations (object stores and data sharing platforms),
+ * create tabular artifacts from various file formats (CSV, Parquet, Delta), and configure scenarios
+ * for context selection in AI-driven business solutions.
+ */
+public class ScenarioConfigurationManagerApi extends BaseApi {
+
+ /**
+ * Instantiates this API class to invoke operations on the Context Registry.
+ *
+ * @param httpDestination The destination that API should be used with
+ */
+ public ScenarioConfigurationManagerApi(@Nonnull final Destination httpDestination) {
+ super(httpDestination);
+ }
+
+ /**
+ * Instantiates this API class to invoke operations on the Context Registry based on a given
+ * {@link ApiClient}.
+ *
+ * @param apiClient ApiClient to invoke the API on
+ */
+ public ScenarioConfigurationManagerApi(@Nonnull final ApiClient apiClient) {
+ super(apiClient);
+ }
+
+ /**
+ * Creates a new API instance with additional default headers.
+ *
+ * @param defaultHeaders Additional headers to include in all requests
+ * @return A new API instance with the combined headers
+ */
+ public ScenarioConfigurationManagerApi withDefaultHeaders(
+ @Nonnull final Map defaultHeaders) {
+ final var api = new ScenarioConfigurationManagerApi(apiClient);
+ api.defaultHeaders.putAll(this.defaultHeaders);
+ api.defaultHeaders.putAll(defaultHeaders);
+ return api;
+ }
+
+ /**
+ * Async Scenario Configuration Creation
+ *
+ * Create a scenario configuration asynchronously. Schema validation happens synchronously;
+ * background processing runs asynchronously. Poll GET /scenarioConfigurations/{name} to track
+ * progress via status and errorMessage. Returns 202 (not exists or ERROR retry), 409 (ACTIVE or
+ * DELETING), 422 (retry exhausted).
+ *
+ *
202 - Accepted - background task launched
+ *
+ *
400 - The specification of the resource was incorrect
+ *
+ *
409 - The resource conflicts with existing resources or has dependencies
+ *
+ *
422 - The request is valid but cannot be processed due to semantic errors
+ *
+ *
500 - Server error
+ *
+ * @param aiResourceGroup Resource Group ID
+ * @param scenarioConfigurationName Name of the scenario configuration
+ * @param createScenarioConfiguration The value for the parameter createScenarioConfiguration
+ * @return ScenarioConfigurationNameObject
+ * @throws OpenApiRequestException if an error occurs while attempting to invoke the API
+ */
+ @Nonnull
+ public ScenarioConfigurationNameObject createScenarioConfiguration(
+ @Nonnull final String aiResourceGroup,
+ @Nonnull final String scenarioConfigurationName,
+ @Nonnull final CreateScenarioConfiguration createScenarioConfiguration)
+ throws OpenApiRequestException {
+
+ // verify the required parameter 'aiResourceGroup' is set
+ if (aiResourceGroup == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'aiResourceGroup' when calling createScenarioConfiguration")
+ .statusCode(400);
+ }
+
+ // verify the required parameter 'scenarioConfigurationName' is set
+ if (scenarioConfigurationName == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'scenarioConfigurationName' when calling createScenarioConfiguration")
+ .statusCode(400);
+ }
+
+ // verify the required parameter 'createScenarioConfiguration' is set
+ if (createScenarioConfiguration == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'createScenarioConfiguration' when calling createScenarioConfiguration")
+ .statusCode(400);
+ }
+
+ // create path and map variables
+ final String localVarPath =
+ "/scenarioConfigurations/{scenarioConfigurationName}"
+ .replaceAll(
+ "\\{" + "scenarioConfigurationName" + "\\}",
+ ApiClient.escapeString(ApiClient.parameterToString(scenarioConfigurationName)));
+
+ final StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
+ final List localVarQueryParams = new ArrayList();
+ final List localVarCollectionQueryParams = new ArrayList();
+ final Map localVarHeaderParams = new HashMap(defaultHeaders);
+ final Map localVarFormParams = new HashMap();
+
+ if (aiResourceGroup != null)
+ localVarHeaderParams.put("AI-Resource-Group", ApiClient.parameterToString(aiResourceGroup));
+
+ final String[] localVarAccepts = {"application/json"};
+ final String localVarAccept = ApiClient.selectHeaderAccept(localVarAccepts);
+ final String[] localVarContentTypes = {"application/json"};
+ final String localVarContentType = ApiClient.selectHeaderContentType(localVarContentTypes);
+
+ final TypeReference localVarReturnType =
+ new TypeReference() {};
+
+ return apiClient.invokeAPI(
+ localVarPath,
+ "PUT",
+ localVarQueryParams,
+ localVarCollectionQueryParams,
+ localVarQueryStringJoiner.toString(),
+ createScenarioConfiguration,
+ localVarHeaderParams,
+ localVarFormParams,
+ localVarAccept,
+ localVarContentType,
+ localVarReturnType);
+ }
+
+ /**
+ * Delete Scenario Configuration
+ *
+ * Delete a scenario configuration by name
+ *
+ *
204 - No Content
+ *
+ *
400 - The specification of the resource was incorrect
+ *
+ *
404 - The specified resource was not found
+ *
+ *
500 - Server error
+ *
+ * @param aiResourceGroup Resource Group ID
+ * @param scenarioConfigurationName The name of the scenario configuration to delete
+ * @return An OpenApiResponse containing the status code of the HttpResponse.
+ * @throws OpenApiRequestException if an error occurs while attempting to invoke the API
+ */
+ @Nonnull
+ public OpenApiResponse deleteScenarioConfigurationByName(
+ @Nonnull final String aiResourceGroup, @Nonnull final String scenarioConfigurationName)
+ throws OpenApiRequestException {
+
+ // verify the required parameter 'aiResourceGroup' is set
+ if (aiResourceGroup == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'aiResourceGroup' when calling deleteScenarioConfigurationByName")
+ .statusCode(400);
+ }
+
+ // verify the required parameter 'scenarioConfigurationName' is set
+ if (scenarioConfigurationName == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'scenarioConfigurationName' when calling deleteScenarioConfigurationByName")
+ .statusCode(400);
+ }
+
+ // create path and map variables
+ final String localVarPath =
+ "/scenarioConfigurations/{scenarioConfigurationName}"
+ .replaceAll(
+ "\\{" + "scenarioConfigurationName" + "\\}",
+ ApiClient.escapeString(ApiClient.parameterToString(scenarioConfigurationName)));
+
+ final StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
+ final List localVarQueryParams = new ArrayList();
+ final List localVarCollectionQueryParams = new ArrayList();
+ final Map localVarHeaderParams = new HashMap(defaultHeaders);
+ final Map localVarFormParams = new HashMap();
+
+ if (aiResourceGroup != null)
+ localVarHeaderParams.put("AI-Resource-Group", ApiClient.parameterToString(aiResourceGroup));
+
+ final String[] localVarAccepts = {"application/json"};
+ final String localVarAccept = ApiClient.selectHeaderAccept(localVarAccepts);
+ final String[] localVarContentTypes = {};
+
+ final String localVarContentType = ApiClient.selectHeaderContentType(localVarContentTypes);
+
+ final TypeReference localVarReturnType =
+ new TypeReference() {};
+
+ return apiClient.invokeAPI(
+ localVarPath,
+ "DELETE",
+ localVarQueryParams,
+ localVarCollectionQueryParams,
+ localVarQueryStringJoiner.toString(),
+ null,
+ localVarHeaderParams,
+ localVarFormParams,
+ localVarAccept,
+ localVarContentType,
+ localVarReturnType);
+ }
+
+ /**
+ * Get All Scenario Configurations
+ *
+ * Get all scenario configurations in the tenant (resource group)
+ *
+ *
200 - Returns all scenario configurations for the tenant
+ *
+ *
400 - The specification of the resource was incorrect
+ *
+ *
500 - Server error
+ *
+ * @param aiResourceGroup (required) Resource Group ID
+ * @param $top (optional) Number of results to display
+ * @param $skip (optional) Number of results to be skipped from the ordered list of results
+ * @param $count (optional) When the $count field is set to false, the response contains a count
+ * of the items present in the response. When the $count field is set to true, the response
+ * contains a count of all the items present on the server, and not just the ones in the
+ * response. When the $count field is not passed, it is false by default.
+ * @return GetScenarioConfigurations
+ * @throws OpenApiRequestException if an error occurs while attempting to invoke the API
+ */
+ @Nonnull
+ public GetScenarioConfigurations getAllScenarioConfigurations(
+ @Nonnull final String aiResourceGroup,
+ @Nullable final Integer $top,
+ @Nullable final Integer $skip,
+ @Nullable final Boolean $count)
+ throws OpenApiRequestException {
+
+ // verify the required parameter 'aiResourceGroup' is set
+ if (aiResourceGroup == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'aiResourceGroup' when calling getAllScenarioConfigurations")
+ .statusCode(400);
+ }
+
+ // create path and map variables
+ final String localVarPath = "/scenarioConfigurations";
+
+ final StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
+ final List localVarQueryParams = new ArrayList();
+ final List localVarCollectionQueryParams = new ArrayList();
+ final Map localVarHeaderParams = new HashMap(defaultHeaders);
+ final Map localVarFormParams = new HashMap();
+
+ localVarQueryParams.addAll(ApiClient.parameterToPair("$top", $top));
+ localVarQueryParams.addAll(ApiClient.parameterToPair("$skip", $skip));
+ localVarQueryParams.addAll(ApiClient.parameterToPair("$count", $count));
+ if (aiResourceGroup != null)
+ localVarHeaderParams.put("AI-Resource-Group", ApiClient.parameterToString(aiResourceGroup));
+
+ final String[] localVarAccepts = {"application/json"};
+ final String localVarAccept = ApiClient.selectHeaderAccept(localVarAccepts);
+ final String[] localVarContentTypes = {};
+
+ final String localVarContentType = ApiClient.selectHeaderContentType(localVarContentTypes);
+
+ final TypeReference localVarReturnType =
+ new TypeReference() {};
+
+ return apiClient.invokeAPI(
+ localVarPath,
+ "GET",
+ localVarQueryParams,
+ localVarCollectionQueryParams,
+ localVarQueryStringJoiner.toString(),
+ null,
+ localVarHeaderParams,
+ localVarFormParams,
+ localVarAccept,
+ localVarContentType,
+ localVarReturnType);
+ }
+
+ /**
+ * Get All Scenario Configurations
+ *
+ * Get all scenario configurations in the tenant (resource group)
+ *
+ *
200 - Returns all scenario configurations for the tenant
+ *
+ *
400 - The specification of the resource was incorrect
+ *
+ *
500 - Server error
+ *
+ * @param aiResourceGroup Resource Group ID
+ * @return GetScenarioConfigurations
+ * @throws OpenApiRequestException if an error occurs while attempting to invoke the API
+ */
+ @Nonnull
+ public GetScenarioConfigurations getAllScenarioConfigurations(
+ @Nonnull final String aiResourceGroup) throws OpenApiRequestException {
+ return getAllScenarioConfigurations(aiResourceGroup, null, null, null);
+ }
+
+ /**
+ * Get Scenario Configuration By Name
+ *
+ *
Get a scenario configuration by its name
+ *
+ *
200 - Returns the scenario configuration object
+ *
+ *
400 - The specification of the resource was incorrect
+ *
+ *
404 - The specified resource was not found
+ *
+ *
500 - Server error
+ *
+ * @param aiResourceGroup Resource Group ID
+ * @param scenarioConfigurationName The name of the scenario configuration to retrieve
+ * @return ScenarioConfigurationObject
+ * @throws OpenApiRequestException if an error occurs while attempting to invoke the API
+ */
+ @Nonnull
+ public ScenarioConfigurationObject getScenarioConfigurationByName(
+ @Nonnull final String aiResourceGroup, @Nonnull final String scenarioConfigurationName)
+ throws OpenApiRequestException {
+
+ // verify the required parameter 'aiResourceGroup' is set
+ if (aiResourceGroup == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'aiResourceGroup' when calling getScenarioConfigurationByName")
+ .statusCode(400);
+ }
+
+ // verify the required parameter 'scenarioConfigurationName' is set
+ if (scenarioConfigurationName == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'scenarioConfigurationName' when calling getScenarioConfigurationByName")
+ .statusCode(400);
+ }
+
+ // create path and map variables
+ final String localVarPath =
+ "/scenarioConfigurations/{scenarioConfigurationName}"
+ .replaceAll(
+ "\\{" + "scenarioConfigurationName" + "\\}",
+ ApiClient.escapeString(ApiClient.parameterToString(scenarioConfigurationName)));
+
+ final StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
+ final List localVarQueryParams = new ArrayList();
+ final List localVarCollectionQueryParams = new ArrayList();
+ final Map localVarHeaderParams = new HashMap(defaultHeaders);
+ final Map localVarFormParams = new HashMap();
+
+ if (aiResourceGroup != null)
+ localVarHeaderParams.put("AI-Resource-Group", ApiClient.parameterToString(aiResourceGroup));
+
+ final String[] localVarAccepts = {"application/json"};
+ final String localVarAccept = ApiClient.selectHeaderAccept(localVarAccepts);
+ final String[] localVarContentTypes = {};
+
+ final String localVarContentType = ApiClient.selectHeaderContentType(localVarContentTypes);
+
+ final TypeReference localVarReturnType =
+ new TypeReference() {};
+
+ return apiClient.invokeAPI(
+ localVarPath,
+ "GET",
+ localVarQueryParams,
+ localVarCollectionQueryParams,
+ localVarQueryStringJoiner.toString(),
+ null,
+ localVarHeaderParams,
+ localVarFormParams,
+ localVarAccept,
+ localVarContentType,
+ localVarReturnType);
+ }
+
+ /**
+ * Update Scenario Configuration
+ *
+ * Update a scenario configuration (excluding name)
+ *
+ *
204 - No Content
+ *
+ *
400 - The specification of the resource was incorrect
+ *
+ *
404 - The specified resource was not found
+ *
+ *
500 - Server error
+ *
+ * @param aiResourceGroup Resource Group ID
+ * @param scenarioConfigurationName The name of the scenario configuration to update
+ * @param patchScenarioConfiguration The value for the parameter patchScenarioConfiguration
+ * @return An OpenApiResponse containing the status code of the HttpResponse.
+ * @throws OpenApiRequestException if an error occurs while attempting to invoke the API
+ */
+ @Nonnull
+ public OpenApiResponse patchScenarioConfigurationByName(
+ @Nonnull final String aiResourceGroup,
+ @Nonnull final String scenarioConfigurationName,
+ @Nonnull final PatchScenarioConfiguration patchScenarioConfiguration)
+ throws OpenApiRequestException {
+
+ // verify the required parameter 'aiResourceGroup' is set
+ if (aiResourceGroup == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'aiResourceGroup' when calling patchScenarioConfigurationByName")
+ .statusCode(400);
+ }
+
+ // verify the required parameter 'scenarioConfigurationName' is set
+ if (scenarioConfigurationName == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'scenarioConfigurationName' when calling patchScenarioConfigurationByName")
+ .statusCode(400);
+ }
+
+ // verify the required parameter 'patchScenarioConfiguration' is set
+ if (patchScenarioConfiguration == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'patchScenarioConfiguration' when calling patchScenarioConfigurationByName")
+ .statusCode(400);
+ }
+
+ // create path and map variables
+ final String localVarPath =
+ "/scenarioConfigurations/{scenarioConfigurationName}"
+ .replaceAll(
+ "\\{" + "scenarioConfigurationName" + "\\}",
+ ApiClient.escapeString(ApiClient.parameterToString(scenarioConfigurationName)));
+
+ final StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
+ final List localVarQueryParams = new ArrayList();
+ final List localVarCollectionQueryParams = new ArrayList();
+ final Map localVarHeaderParams = new HashMap(defaultHeaders);
+ final Map localVarFormParams = new HashMap();
+
+ if (aiResourceGroup != null)
+ localVarHeaderParams.put("AI-Resource-Group", ApiClient.parameterToString(aiResourceGroup));
+
+ final String[] localVarAccepts = {"application/json"};
+ final String localVarAccept = ApiClient.selectHeaderAccept(localVarAccepts);
+ final String[] localVarContentTypes = {"application/json"};
+ final String localVarContentType = ApiClient.selectHeaderContentType(localVarContentTypes);
+
+ final TypeReference localVarReturnType =
+ new TypeReference() {};
+
+ return apiClient.invokeAPI(
+ localVarPath,
+ "PATCH",
+ localVarQueryParams,
+ localVarCollectionQueryParams,
+ localVarQueryStringJoiner.toString(),
+ patchScenarioConfiguration,
+ localVarHeaderParams,
+ localVarFormParams,
+ localVarAccept,
+ localVarContentType,
+ localVarReturnType);
+ }
+
+ /**
+ * Search Scenario Configurations by Labels
+ *
+ * Search for scenario configurations that match ALL specified labels (AND logic)
+ *
+ *
200 - Returns scenario configurations matching all specified labels
+ *
+ *
400 - The specification of the resource was incorrect
+ *
+ *
500 - Server error
+ *
+ * @param aiResourceGroup (required) Resource Group ID
+ * @param searchScenarioConfiguration (required) The value for the parameter
+ * searchScenarioConfiguration
+ * @param $top (optional) Number of results to display
+ * @param $skip (optional) Number of results to be skipped from the ordered list of results
+ * @param $count (optional) When the $count field is set to false, the response contains a count
+ * of the items present in the response. When the $count field is set to true, the response
+ * contains a count of all the items present on the server, and not just the ones in the
+ * response. When the $count field is not passed, it is false by default.
+ * @return GetScenarioConfigurations
+ * @throws OpenApiRequestException if an error occurs while attempting to invoke the API
+ */
+ @Nonnull
+ public GetScenarioConfigurations searchScenarioConfigurationsByLabel(
+ @Nonnull final String aiResourceGroup,
+ @Nonnull final SearchScenarioConfiguration searchScenarioConfiguration,
+ @Nullable final Integer $top,
+ @Nullable final Integer $skip,
+ @Nullable final Boolean $count)
+ throws OpenApiRequestException {
+
+ // verify the required parameter 'aiResourceGroup' is set
+ if (aiResourceGroup == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'aiResourceGroup' when calling searchScenarioConfigurationsByLabel")
+ .statusCode(400);
+ }
+
+ // verify the required parameter 'searchScenarioConfiguration' is set
+ if (searchScenarioConfiguration == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'searchScenarioConfiguration' when calling searchScenarioConfigurationsByLabel")
+ .statusCode(400);
+ }
+
+ // create path and map variables
+ final String localVarPath = "/scenarioConfigurations/search";
+
+ final StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
+ final List localVarQueryParams = new ArrayList();
+ final List localVarCollectionQueryParams = new ArrayList();
+ final Map localVarHeaderParams = new HashMap(defaultHeaders);
+ final Map localVarFormParams = new HashMap();
+
+ localVarQueryParams.addAll(ApiClient.parameterToPair("$top", $top));
+ localVarQueryParams.addAll(ApiClient.parameterToPair("$skip", $skip));
+ localVarQueryParams.addAll(ApiClient.parameterToPair("$count", $count));
+ if (aiResourceGroup != null)
+ localVarHeaderParams.put("AI-Resource-Group", ApiClient.parameterToString(aiResourceGroup));
+
+ final String[] localVarAccepts = {"application/json"};
+ final String localVarAccept = ApiClient.selectHeaderAccept(localVarAccepts);
+ final String[] localVarContentTypes = {"application/json"};
+ final String localVarContentType = ApiClient.selectHeaderContentType(localVarContentTypes);
+
+ final TypeReference localVarReturnType =
+ new TypeReference() {};
+
+ return apiClient.invokeAPI(
+ localVarPath,
+ "POST",
+ localVarQueryParams,
+ localVarCollectionQueryParams,
+ localVarQueryStringJoiner.toString(),
+ searchScenarioConfiguration,
+ localVarHeaderParams,
+ localVarFormParams,
+ localVarAccept,
+ localVarContentType,
+ localVarReturnType);
+ }
+
+ /**
+ * Search Scenario Configurations by Labels
+ *
+ * Search for scenario configurations that match ALL specified labels (AND logic)
+ *
+ *
200 - Returns scenario configurations matching all specified labels
+ *
+ *
400 - The specification of the resource was incorrect
+ *
+ *
500 - Server error
+ *
+ * @param aiResourceGroup Resource Group ID
+ * @param searchScenarioConfiguration The value for the parameter searchScenarioConfiguration
+ * @return GetScenarioConfigurations
+ * @throws OpenApiRequestException if an error occurs while attempting to invoke the API
+ */
+ @Nonnull
+ public GetScenarioConfigurations searchScenarioConfigurationsByLabel(
+ @Nonnull final String aiResourceGroup,
+ @Nonnull final SearchScenarioConfiguration searchScenarioConfiguration)
+ throws OpenApiRequestException {
+ return searchScenarioConfigurationsByLabel(
+ aiResourceGroup, searchScenarioConfiguration, null, null, null);
+ }
+}
diff --git a/core-services/tabular-orchestration/src/main/java/com/sap/ai/sdk/tabular/generated/orchestration/client/TabularArtifactsApi.java b/core-services/tabular-orchestration/src/main/java/com/sap/ai/sdk/tabular/generated/orchestration/client/TabularArtifactsApi.java
new file mode 100644
index 000000000..a284649e9
--- /dev/null
+++ b/core-services/tabular-orchestration/src/main/java/com/sap/ai/sdk/tabular/generated/orchestration/client/TabularArtifactsApi.java
@@ -0,0 +1,480 @@
+package com.sap.ai.sdk.tabular.generated.orchestration.client;
+
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.sap.ai.sdk.tabular.generated.orchestration.model.ControllersTabularArtifactV1EndpointsCreateTabularArtifact202Response;
+import com.sap.ai.sdk.tabular.generated.orchestration.model.CreateTARequest;
+import com.sap.ai.sdk.tabular.generated.orchestration.model.TabularArtifactDataPreview;
+import com.sap.ai.sdk.tabular.generated.orchestration.model.TabularArtifactDetails;
+import com.sap.ai.sdk.tabular.generated.orchestration.model.TabularArtifactListResponse;
+import com.sap.cloud.sdk.cloudplatform.connectivity.Destination;
+import com.sap.cloud.sdk.services.openapi.apache.apiclient.ApiClient;
+import com.sap.cloud.sdk.services.openapi.apache.apiclient.BaseApi;
+import com.sap.cloud.sdk.services.openapi.apache.apiclient.Pair;
+import com.sap.cloud.sdk.services.openapi.apache.core.OpenApiRequestException;
+import com.sap.cloud.sdk.services.openapi.apache.core.OpenApiResponse;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.StringJoiner;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+/**
+ * Context Registry in version 1.0.0.
+ *
+ *
Context Registry is a service for managing tabular data contexts for AI applications. It
+ * provides capabilities to register data destinations (object stores and data sharing platforms),
+ * create tabular artifacts from various file formats (CSV, Parquet, Delta), and configure scenarios
+ * for context selection in AI-driven business solutions.
+ */
+public class TabularArtifactsApi extends BaseApi {
+
+ /**
+ * Instantiates this API class to invoke operations on the Context Registry.
+ *
+ * @param httpDestination The destination that API should be used with
+ */
+ public TabularArtifactsApi(@Nonnull final Destination httpDestination) {
+ super(httpDestination);
+ }
+
+ /**
+ * Instantiates this API class to invoke operations on the Context Registry based on a given
+ * {@link ApiClient}.
+ *
+ * @param apiClient ApiClient to invoke the API on
+ */
+ public TabularArtifactsApi(@Nonnull final ApiClient apiClient) {
+ super(apiClient);
+ }
+
+ /**
+ * Creates a new API instance with additional default headers.
+ *
+ * @param defaultHeaders Additional headers to include in all requests
+ * @return A new API instance with the combined headers
+ */
+ public TabularArtifactsApi withDefaultHeaders(@Nonnull final Map defaultHeaders) {
+ final var api = new TabularArtifactsApi(apiClient);
+ api.defaultHeaders.putAll(this.defaultHeaders);
+ api.defaultHeaders.putAll(defaultHeaders);
+ return api;
+ }
+
+ /**
+ * Async Tabular Artifact Creation
+ *
+ * Create a Tabular Artifact asynchronously. Schema validation happens synchronously; resource
+ * creation runs in a background task. Poll GET /tabularArtifacts/{name} to track progress via
+ * status and errorMessage. Returns 202 (not exists or ERROR retry), 409 (ACTIVE or DELETING), 422
+ * (retry exhausted).
+ *
+ *
202 - Accepted - Tabular Artifact creation request accepted
+ *
+ *
400 - The specification of the resource was incorrect
+ *
+ *
409 - The resource conflicts with existing resources or has dependencies
+ *
+ *
422 - The request is valid but cannot be processed due to semantic errors
+ *
+ *
500 - Server error
+ *
+ * @param aiResourceGroup Resource Group ID
+ * @param tabularArtifactName Unique name of the Tabular Artifact
+ * @param createTARequest The value for the parameter createTARequest
+ * @return ControllersTabularArtifactV1EndpointsCreateTabularArtifact202Response
+ * @throws OpenApiRequestException if an error occurs while attempting to invoke the API
+ */
+ @Nonnull
+ public ControllersTabularArtifactV1EndpointsCreateTabularArtifact202Response
+ createTabularArtifact(
+ @Nonnull final String aiResourceGroup,
+ @Nonnull final String tabularArtifactName,
+ @Nonnull final CreateTARequest createTARequest)
+ throws OpenApiRequestException {
+
+ // verify the required parameter 'aiResourceGroup' is set
+ if (aiResourceGroup == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'aiResourceGroup' when calling createTabularArtifact")
+ .statusCode(400);
+ }
+
+ // verify the required parameter 'tabularArtifactName' is set
+ if (tabularArtifactName == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'tabularArtifactName' when calling createTabularArtifact")
+ .statusCode(400);
+ }
+
+ // verify the required parameter 'createTARequest' is set
+ if (createTARequest == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'createTARequest' when calling createTabularArtifact")
+ .statusCode(400);
+ }
+
+ // create path and map variables
+ final String localVarPath =
+ "/tabularArtifacts/{tabularArtifactName}"
+ .replaceAll(
+ "\\{" + "tabularArtifactName" + "\\}",
+ ApiClient.escapeString(ApiClient.parameterToString(tabularArtifactName)));
+
+ final StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
+ final List localVarQueryParams = new ArrayList();
+ final List localVarCollectionQueryParams = new ArrayList();
+ final Map localVarHeaderParams = new HashMap(defaultHeaders);
+ final Map localVarFormParams = new HashMap();
+
+ if (aiResourceGroup != null)
+ localVarHeaderParams.put("AI-Resource-Group", ApiClient.parameterToString(aiResourceGroup));
+
+ final String[] localVarAccepts = {"application/json"};
+ final String localVarAccept = ApiClient.selectHeaderAccept(localVarAccepts);
+ final String[] localVarContentTypes = {"application/json"};
+ final String localVarContentType = ApiClient.selectHeaderContentType(localVarContentTypes);
+
+ final TypeReference
+ localVarReturnType =
+ new TypeReference<
+ ControllersTabularArtifactV1EndpointsCreateTabularArtifact202Response>() {};
+
+ return apiClient.invokeAPI(
+ localVarPath,
+ "PUT",
+ localVarQueryParams,
+ localVarCollectionQueryParams,
+ localVarQueryStringJoiner.toString(),
+ createTARequest,
+ localVarHeaderParams,
+ localVarFormParams,
+ localVarAccept,
+ localVarContentType,
+ localVarReturnType);
+ }
+
+ /**
+ * Delete Tabular Artifact
+ *
+ * Delete a specific Tabular Artifact by name
+ *
+ *
202 - Accepted — the Tabular Artifact has been marked for deletion and will be
+ * removed asynchronously
+ *
+ *
404 - The specified resource was not found
+ *
+ *
409 - The resource conflicts with existing resources or has dependencies
+ *
+ *
500 - Server error
+ *
+ * @param aiResourceGroup Resource Group ID
+ * @param tabularArtifactName Unique name of the Tabular Artifact. Must match allowed pattern and
+ * length constraints.
+ * @return An OpenApiResponse containing the status code of the HttpResponse.
+ * @throws OpenApiRequestException if an error occurs while attempting to invoke the API
+ */
+ @Nonnull
+ public OpenApiResponse deleteTabularArtifact(
+ @Nonnull final String aiResourceGroup, @Nonnull final String tabularArtifactName)
+ throws OpenApiRequestException {
+
+ // verify the required parameter 'aiResourceGroup' is set
+ if (aiResourceGroup == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'aiResourceGroup' when calling deleteTabularArtifact")
+ .statusCode(400);
+ }
+
+ // verify the required parameter 'tabularArtifactName' is set
+ if (tabularArtifactName == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'tabularArtifactName' when calling deleteTabularArtifact")
+ .statusCode(400);
+ }
+
+ // create path and map variables
+ final String localVarPath =
+ "/tabularArtifacts/{tabularArtifactName}"
+ .replaceAll(
+ "\\{" + "tabularArtifactName" + "\\}",
+ ApiClient.escapeString(ApiClient.parameterToString(tabularArtifactName)));
+
+ final StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
+ final List localVarQueryParams = new ArrayList();
+ final List localVarCollectionQueryParams = new ArrayList();
+ final Map localVarHeaderParams = new HashMap(defaultHeaders);
+ final Map localVarFormParams = new HashMap();
+
+ if (aiResourceGroup != null)
+ localVarHeaderParams.put("AI-Resource-Group", ApiClient.parameterToString(aiResourceGroup));
+
+ final String[] localVarAccepts = {"application/json"};
+ final String localVarAccept = ApiClient.selectHeaderAccept(localVarAccepts);
+ final String[] localVarContentTypes = {};
+
+ final String localVarContentType = ApiClient.selectHeaderContentType(localVarContentTypes);
+
+ final TypeReference localVarReturnType =
+ new TypeReference() {};
+
+ return apiClient.invokeAPI(
+ localVarPath,
+ "DELETE",
+ localVarQueryParams,
+ localVarCollectionQueryParams,
+ localVarQueryStringJoiner.toString(),
+ null,
+ localVarHeaderParams,
+ localVarFormParams,
+ localVarAccept,
+ localVarContentType,
+ localVarReturnType);
+ }
+
+ /**
+ * Get all Tabular Artifacts
+ *
+ * Retrieve list of Tabular Artifacts with pagination
+ *
+ *
200 - Tabular Artifacts retrieved successfully
+ *
+ *
500 - Server error
+ *
+ *
400 - The specification of the resource was incorrect
+ *
+ * @param aiResourceGroup (required) Resource Group ID
+ * @param $top (optional) Number of results to display
+ * @param $skip (optional) Number of results to be skipped from the ordered list of results
+ * @param $count (optional) When the $count field is set to false, the response contains a count
+ * of the items present in the response. When the $count field is set to true, the response
+ * contains a count of all the items present on the server, and not just the ones in the
+ * response. When the $count field is not passed, it is false by default.
+ * @return TabularArtifactListResponse
+ * @throws OpenApiRequestException if an error occurs while attempting to invoke the API
+ */
+ @Nonnull
+ public TabularArtifactListResponse getAllTabularArtifacts(
+ @Nonnull final String aiResourceGroup,
+ @Nullable final Integer $top,
+ @Nullable final Integer $skip,
+ @Nullable final Boolean $count)
+ throws OpenApiRequestException {
+
+ // verify the required parameter 'aiResourceGroup' is set
+ if (aiResourceGroup == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'aiResourceGroup' when calling getAllTabularArtifacts")
+ .statusCode(400);
+ }
+
+ // create path and map variables
+ final String localVarPath = "/tabularArtifacts";
+
+ final StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
+ final List localVarQueryParams = new ArrayList();
+ final List localVarCollectionQueryParams = new ArrayList();
+ final Map localVarHeaderParams = new HashMap(defaultHeaders);
+ final Map localVarFormParams = new HashMap();
+
+ localVarQueryParams.addAll(ApiClient.parameterToPair("$top", $top));
+ localVarQueryParams.addAll(ApiClient.parameterToPair("$skip", $skip));
+ localVarQueryParams.addAll(ApiClient.parameterToPair("$count", $count));
+ if (aiResourceGroup != null)
+ localVarHeaderParams.put("AI-Resource-Group", ApiClient.parameterToString(aiResourceGroup));
+
+ final String[] localVarAccepts = {"application/json"};
+ final String localVarAccept = ApiClient.selectHeaderAccept(localVarAccepts);
+ final String[] localVarContentTypes = {};
+
+ final String localVarContentType = ApiClient.selectHeaderContentType(localVarContentTypes);
+
+ final TypeReference localVarReturnType =
+ new TypeReference() {};
+
+ return apiClient.invokeAPI(
+ localVarPath,
+ "GET",
+ localVarQueryParams,
+ localVarCollectionQueryParams,
+ localVarQueryStringJoiner.toString(),
+ null,
+ localVarHeaderParams,
+ localVarFormParams,
+ localVarAccept,
+ localVarContentType,
+ localVarReturnType);
+ }
+
+ /**
+ * Get all Tabular Artifacts
+ *
+ * Retrieve list of Tabular Artifacts with pagination
+ *
+ *
200 - Tabular Artifacts retrieved successfully
+ *
+ *
500 - Server error
+ *
+ *
400 - The specification of the resource was incorrect
+ *
+ * @param aiResourceGroup Resource Group ID
+ * @return TabularArtifactListResponse
+ * @throws OpenApiRequestException if an error occurs while attempting to invoke the API
+ */
+ @Nonnull
+ public TabularArtifactListResponse getAllTabularArtifacts(@Nonnull final String aiResourceGroup)
+ throws OpenApiRequestException {
+ return getAllTabularArtifacts(aiResourceGroup, null, null, null);
+ }
+
+ /**
+ * Get Tabular Artifact Details with Metadata
+ *
+ *
Retrieve details of a specific Tabular Artifact by name including schema metadata.
+ *
+ *
200 - Tabular Artifact details retrieved successfully
+ *
+ *
404 - The specified resource was not found
+ *
+ *
500 - Server error
+ *
+ * @param aiResourceGroup Resource Group ID
+ * @param tabularArtifactName Unique name of the Tabular Artifact. Must match allowed pattern and
+ * length constraints.
+ * @return TabularArtifactDetails
+ * @throws OpenApiRequestException if an error occurs while attempting to invoke the API
+ */
+ @Nonnull
+ public TabularArtifactDetails getTabularArtifactByName(
+ @Nonnull final String aiResourceGroup, @Nonnull final String tabularArtifactName)
+ throws OpenApiRequestException {
+
+ // verify the required parameter 'aiResourceGroup' is set
+ if (aiResourceGroup == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'aiResourceGroup' when calling getTabularArtifactByName")
+ .statusCode(400);
+ }
+
+ // verify the required parameter 'tabularArtifactName' is set
+ if (tabularArtifactName == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'tabularArtifactName' when calling getTabularArtifactByName")
+ .statusCode(400);
+ }
+
+ // create path and map variables
+ final String localVarPath =
+ "/tabularArtifacts/{tabularArtifactName}"
+ .replaceAll(
+ "\\{" + "tabularArtifactName" + "\\}",
+ ApiClient.escapeString(ApiClient.parameterToString(tabularArtifactName)));
+
+ final StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
+ final List localVarQueryParams = new ArrayList();
+ final List localVarCollectionQueryParams = new ArrayList();
+ final Map localVarHeaderParams = new HashMap(defaultHeaders);
+ final Map localVarFormParams = new HashMap();
+
+ if (aiResourceGroup != null)
+ localVarHeaderParams.put("AI-Resource-Group", ApiClient.parameterToString(aiResourceGroup));
+
+ final String[] localVarAccepts = {"application/json"};
+ final String localVarAccept = ApiClient.selectHeaderAccept(localVarAccepts);
+ final String[] localVarContentTypes = {};
+
+ final String localVarContentType = ApiClient.selectHeaderContentType(localVarContentTypes);
+
+ final TypeReference localVarReturnType =
+ new TypeReference() {};
+
+ return apiClient.invokeAPI(
+ localVarPath,
+ "GET",
+ localVarQueryParams,
+ localVarCollectionQueryParams,
+ localVarQueryStringJoiner.toString(),
+ null,
+ localVarHeaderParams,
+ localVarFormParams,
+ localVarAccept,
+ localVarContentType,
+ localVarReturnType);
+ }
+
+ /**
+ * Get Tabular Artifact Data Preview
+ *
+ * Retrieve a preview of data rows from the Virtual Table (first 10 records)
+ *
+ *
200 - Tabular Artifact data preview retrieved successfully
+ *
+ *
404 - The specified resource was not found
+ *
+ *
500 - Server error
+ *
+ * @param aiResourceGroup Resource Group ID
+ * @param tabularArtifactName Unique name of the Tabular Artifact. Must match allowed pattern and
+ * length constraints.
+ * @return TabularArtifactDataPreview
+ * @throws OpenApiRequestException if an error occurs while attempting to invoke the API
+ */
+ @Nonnull
+ public TabularArtifactDataPreview getTabularArtifactData(
+ @Nonnull final String aiResourceGroup, @Nonnull final String tabularArtifactName)
+ throws OpenApiRequestException {
+
+ // verify the required parameter 'aiResourceGroup' is set
+ if (aiResourceGroup == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'aiResourceGroup' when calling getTabularArtifactData")
+ .statusCode(400);
+ }
+
+ // verify the required parameter 'tabularArtifactName' is set
+ if (tabularArtifactName == null) {
+ throw new OpenApiRequestException(
+ "Missing the required parameter 'tabularArtifactName' when calling getTabularArtifactData")
+ .statusCode(400);
+ }
+
+ // create path and map variables
+ final String localVarPath =
+ "/tabularArtifacts/{tabularArtifactName}/data"
+ .replaceAll(
+ "\\{" + "tabularArtifactName" + "\\}",
+ ApiClient.escapeString(ApiClient.parameterToString(tabularArtifactName)));
+
+ final StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
+ final List localVarQueryParams = new ArrayList();
+ final List localVarCollectionQueryParams = new ArrayList();
+ final Map localVarHeaderParams = new HashMap(defaultHeaders);
+ final Map localVarFormParams = new HashMap();
+
+ if (aiResourceGroup != null)
+ localVarHeaderParams.put("AI-Resource-Group", ApiClient.parameterToString(aiResourceGroup));
+
+ final String[] localVarAccepts = {"application/json"};
+ final String localVarAccept = ApiClient.selectHeaderAccept(localVarAccepts);
+ final String[] localVarContentTypes = {};
+
+ final String localVarContentType = ApiClient.selectHeaderContentType(localVarContentTypes);
+
+ final TypeReference localVarReturnType =
+ new TypeReference() {};
+
+ return apiClient.invokeAPI(
+ localVarPath,
+ "GET",
+ localVarQueryParams,
+ localVarCollectionQueryParams,
+ localVarQueryStringJoiner.toString(),
+ null,
+ localVarHeaderParams,
+ localVarFormParams,
+ localVarAccept,
+ localVarContentType,
+ localVarReturnType);
+ }
+}
diff --git a/core-services/tabular-orchestration/src/main/java/com/sap/ai/sdk/tabular/generated/orchestration/model/ApiError.java b/core-services/tabular-orchestration/src/main/java/com/sap/ai/sdk/tabular/generated/orchestration/model/ApiError.java
new file mode 100644
index 000000000..be492f43a
--- /dev/null
+++ b/core-services/tabular-orchestration/src/main/java/com/sap/ai/sdk/tabular/generated/orchestration/model/ApiError.java
@@ -0,0 +1,360 @@
+/*
+ * Context Registry
+ * Context Registry is a service for managing tabular data contexts for AI applications. It provides capabilities to register data destinations (object stores and data sharing platforms), create tabular artifacts from various file formats (CSV, Parquet, Delta), and configure scenarios for context selection in 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.tabular.generated.orchestration.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;
+
+/** ApiError */
+// CHECKSTYLE:OFF
+public class ApiError
+// CHECKSTYLE:ON
+{
+ @JsonProperty("code")
+ private String code;
+
+ @JsonProperty("message")
+ private String message;
+
+ @JsonProperty("requestId")
+ private String requestId;
+
+ @JsonProperty("target")
+ private String target;
+
+ @JsonProperty("details")
+ private List details = new ArrayList<>();
+
+ @JsonAnySetter @JsonAnyGetter
+ private final Map cloudSdkCustomFields = new LinkedHashMap<>();
+
+ /** Default constructor for ApiError. */
+ protected ApiError() {}
+
+ /**
+ * Set the code of this {@link ApiError} instance and return the same instance.
+ *
+ * @param code Descriptive error code (not http status code)
+ * @return The same instance of this {@link ApiError} class
+ */
+ @Nonnull
+ public ApiError code(@Nonnull final String code) {
+ this.code = code;
+ return this;
+ }
+
+ /**
+ * Descriptive error code (not http status code)
+ *
+ * @return code The code of this {@link ApiError} instance.
+ */
+ @Nonnull
+ public String getCode() {
+ return code;
+ }
+
+ /**
+ * Set the code of this {@link ApiError} instance.
+ *
+ * @param code Descriptive error code (not http status code)
+ */
+ public void setCode(@Nonnull final String code) {
+ this.code = code;
+ }
+
+ /**
+ * Set the message of this {@link ApiError} instance and return the same instance.
+ *
+ * @param message plaintext error description
+ * @return The same instance of this {@link ApiError} class
+ */
+ @Nonnull
+ public ApiError message(@Nonnull final String message) {
+ this.message = message;
+ return this;
+ }
+
+ /**
+ * plaintext error description
+ *
+ * @return message The message of this {@link ApiError} instance.
+ */
+ @Nonnull
+ public String getMessage() {
+ return message;
+ }
+
+ /**
+ * Set the message of this {@link ApiError} instance.
+ *
+ * @param message plaintext error description
+ */
+ public void setMessage(@Nonnull final String message) {
+ this.message = message;
+ }
+
+ /**
+ * Set the requestId of this {@link ApiError} instance and return the same instance.
+ *
+ * @param requestId id of individual request
+ * @return The same instance of this {@link ApiError} class
+ */
+ @Nonnull
+ public ApiError requestId(@Nullable final String requestId) {
+ this.requestId = requestId;
+ return this;
+ }
+
+ /**
+ * id of individual request
+ *
+ * @return requestId The requestId of this {@link ApiError} instance.
+ */
+ @Nonnull
+ public String getRequestId() {
+ return requestId;
+ }
+
+ /**
+ * Set the requestId of this {@link ApiError} instance.
+ *
+ * @param requestId id of individual request
+ */
+ public void setRequestId(@Nullable final String requestId) {
+ this.requestId = requestId;
+ }
+
+ /**
+ * Set the target of this {@link ApiError} instance and return the same instance.
+ *
+ * @param target url that has been called
+ * @return The same instance of this {@link ApiError} class
+ */
+ @Nonnull
+ public ApiError target(@Nullable final String target) {
+ this.target = target;
+ return this;
+ }
+
+ /**
+ * url that has been called
+ *
+ * @return target The target of this {@link ApiError} instance.
+ */
+ @Nonnull
+ public String getTarget() {
+ return target;
+ }
+
+ /**
+ * Set the target of this {@link ApiError} instance.
+ *
+ * @param target url that has been called
+ */
+ public void setTarget(@Nullable final String target) {
+ this.target = target;
+ }
+
+ /**
+ * Set the details of this {@link ApiError} instance and return the same instance.
+ *
+ * @param details The details of this {@link ApiError}
+ * @return The same instance of this {@link ApiError} class
+ */
+ @Nonnull
+ public ApiError details(@Nullable final List details) {
+ this.details = details;
+ return this;
+ }
+
+ /**
+ * Add one details instance to this {@link ApiError}.
+ *
+ * @param detailsItem The details that should be added
+ * @return The same instance of type {@link ApiError}
+ */
+ @Nonnull
+ public ApiError addDetailsItem(@Nonnull final DetailsErrorResponse detailsItem) {
+ if (this.details == null) {
+ this.details = new ArrayList<>();
+ }
+ this.details.add(detailsItem);
+ return this;
+ }
+
+ /**
+ * Get details
+ *
+ * @return details The details of this {@link ApiError} instance.
+ */
+ @Nonnull
+ public List getDetails() {
+ return details;
+ }
+
+ /**
+ * Set the details of this {@link ApiError} instance.
+ *
+ * @param details The details of this {@link ApiError}
+ */
+ public void setDetails(@Nullable final List details) {
+ this.details = details;
+ }
+
+ /**
+ * Get the names of the unrecognizable properties of the {@link ApiError}.
+ *
+ * @return The set of properties names
+ */
+ @JsonIgnore
+ @Nonnull
+ public Set getCustomFieldNames() {
+ return cloudSdkCustomFields.keySet();
+ }
+
+ /**
+ * Get the value of an unrecognizable property of this {@link ApiError} 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("ApiError has no field with name '" + name + "'.");
+ }
+ return cloudSdkCustomFields.get(name);
+ }
+
+ /**
+ * Get the value of all properties of this {@link ApiError} instance including unrecognized
+ * properties.
+ *
+ * @return The map of all properties
+ */
+ @JsonIgnore
+ @Nonnull
+ public Map toMap() {
+ final Map declaredFields = new LinkedHashMap<>(cloudSdkCustomFields);
+ if (code != null) declaredFields.put("code", code);
+ if (message != null) declaredFields.put("message", message);
+ if (requestId != null) declaredFields.put("requestId", requestId);
+ if (target != null) declaredFields.put("target", target);
+ if (details != null) declaredFields.put("details", details);
+ return declaredFields;
+ }
+
+ /**
+ * Set an unrecognizable property of this {@link ApiError} 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 ApiError apiError = (ApiError) o;
+ return Objects.equals(this.cloudSdkCustomFields, apiError.cloudSdkCustomFields)
+ && Objects.equals(this.code, apiError.code)
+ && Objects.equals(this.message, apiError.message)
+ && Objects.equals(this.requestId, apiError.requestId)
+ && Objects.equals(this.target, apiError.target)
+ && Objects.equals(this.details, apiError.details);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(code, message, requestId, target, details, cloudSdkCustomFields);
+ }
+
+ @Override
+ @Nonnull
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("class ApiError {\n");
+ sb.append(" code: ").append(toIndentedString(code)).append("\n");
+ sb.append(" message: ").append(toIndentedString(message)).append("\n");
+ sb.append(" requestId: ").append(toIndentedString(requestId)).append("\n");
+ sb.append(" target: ").append(toIndentedString(target)).append("\n");
+ sb.append(" details: ").append(toIndentedString(details)).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 ApiError} instance with
+ * all required arguments.
+ */
+ public static Builder create() {
+ return (code) -> (message) -> new ApiError().code(code).message(message);
+ }
+
+ /** Builder helper class. */
+ public interface Builder {
+ /**
+ * Set the code of this {@link ApiError} instance.
+ *
+ * @param code Descriptive error code (not http status code)
+ * @return The ApiError builder.
+ */
+ Builder1 code(@Nonnull final String code);
+ }
+
+ /** Builder helper class. */
+ public interface Builder1 {
+ /**
+ * Set the message of this {@link ApiError} instance.
+ *
+ * @param message plaintext error description
+ * @return The ApiError instance.
+ */
+ ApiError message(@Nonnull final String message);
+ }
+}
diff --git a/core-services/tabular-orchestration/src/main/java/com/sap/ai/sdk/tabular/generated/orchestration/model/AsyncCreateDataDestinationResponse.java b/core-services/tabular-orchestration/src/main/java/com/sap/ai/sdk/tabular/generated/orchestration/model/AsyncCreateDataDestinationResponse.java
new file mode 100644
index 000000000..3491180b0
--- /dev/null
+++ b/core-services/tabular-orchestration/src/main/java/com/sap/ai/sdk/tabular/generated/orchestration/model/AsyncCreateDataDestinationResponse.java
@@ -0,0 +1,249 @@
+/*
+ * Context Registry
+ * Context Registry is a service for managing tabular data contexts for AI applications. It provides capabilities to register data destinations (object stores and data sharing platforms), create tabular artifacts from various file formats (CSV, Parquet, Delta), and configure scenarios for context selection in 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.tabular.generated.orchestration.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;
+
+/** AsyncCreateDataDestinationResponse */
+// CHECKSTYLE:OFF
+public class AsyncCreateDataDestinationResponse
+// CHECKSTYLE:ON
+{
+ @JsonProperty("name")
+ private String name;
+
+ @JsonProperty("subjectPatterns")
+ private List subjectPatterns = new ArrayList<>();
+
+ @JsonAnySetter @JsonAnyGetter
+ private final Map cloudSdkCustomFields = new LinkedHashMap<>();
+
+ /** Default constructor for AsyncCreateDataDestinationResponse. */
+ protected AsyncCreateDataDestinationResponse() {}
+
+ /**
+ * Set the name of this {@link AsyncCreateDataDestinationResponse} instance and return the same
+ * instance.
+ *
+ * @param name Name of the data destination being created
+ * @return The same instance of this {@link AsyncCreateDataDestinationResponse} class
+ */
+ @Nonnull
+ public AsyncCreateDataDestinationResponse name(@Nonnull final String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Name of the data destination being created
+ *
+ * @return name The name of this {@link AsyncCreateDataDestinationResponse} instance.
+ */
+ @Nonnull
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * Set the name of this {@link AsyncCreateDataDestinationResponse} instance.
+ *
+ * @param name Name of the data destination being created
+ */
+ public void setName(@Nonnull final String name) {
+ this.name = name;
+ }
+
+ /**
+ * Set the subjectPatterns of this {@link AsyncCreateDataDestinationResponse} instance and return
+ * the same instance.
+ *
+ * @param subjectPatterns Subject pattern for HDL authentication and btp cred store
+ * @return The same instance of this {@link AsyncCreateDataDestinationResponse} class
+ */
+ @Nonnull
+ public AsyncCreateDataDestinationResponse subjectPatterns(
+ @Nullable final List subjectPatterns) {
+ this.subjectPatterns = subjectPatterns;
+ return this;
+ }
+
+ /**
+ * Add one subjectPatterns instance to this {@link AsyncCreateDataDestinationResponse}.
+ *
+ * @param subjectPatternsItem The subjectPatterns that should be added
+ * @return The same instance of type {@link AsyncCreateDataDestinationResponse}
+ */
+ @Nonnull
+ public AsyncCreateDataDestinationResponse addSubjectPatternsItem(
+ @Nonnull final String subjectPatternsItem) {
+ if (this.subjectPatterns == null) {
+ this.subjectPatterns = new ArrayList<>();
+ }
+ this.subjectPatterns.add(subjectPatternsItem);
+ return this;
+ }
+
+ /**
+ * Subject pattern for HDL authentication and btp cred store
+ *
+ * @return subjectPatterns The subjectPatterns of this {@link AsyncCreateDataDestinationResponse}
+ * instance.
+ */
+ @Nonnull
+ public List getSubjectPatterns() {
+ return subjectPatterns;
+ }
+
+ /**
+ * Set the subjectPatterns of this {@link AsyncCreateDataDestinationResponse} instance.
+ *
+ * @param subjectPatterns Subject pattern for HDL authentication and btp cred store
+ */
+ public void setSubjectPatterns(@Nullable final List subjectPatterns) {
+ this.subjectPatterns = subjectPatterns;
+ }
+
+ /**
+ * Get the names of the unrecognizable properties of the {@link
+ * AsyncCreateDataDestinationResponse}.
+ *
+ * @return The set of properties names
+ */
+ @JsonIgnore
+ @Nonnull
+ public Set getCustomFieldNames() {
+ return cloudSdkCustomFields.keySet();
+ }
+
+ /**
+ * Get the value of an unrecognizable property of this {@link AsyncCreateDataDestinationResponse}
+ * 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(
+ "AsyncCreateDataDestinationResponse has no field with name '" + name + "'.");
+ }
+ return cloudSdkCustomFields.get(name);
+ }
+
+ /**
+ * Get the value of all properties of this {@link AsyncCreateDataDestinationResponse} instance
+ * including unrecognized properties.
+ *
+ * @return The map of all properties
+ */
+ @JsonIgnore
+ @Nonnull
+ public Map toMap() {
+ final Map declaredFields = new LinkedHashMap<>(cloudSdkCustomFields);
+ if (name != null) declaredFields.put("name", name);
+ if (subjectPatterns != null) declaredFields.put("subjectPatterns", subjectPatterns);
+ return declaredFields;
+ }
+
+ /**
+ * Set an unrecognizable property of this {@link AsyncCreateDataDestinationResponse} 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 AsyncCreateDataDestinationResponse asyncCreateDataDestinationResponse =
+ (AsyncCreateDataDestinationResponse) o;
+ return Objects.equals(
+ this.cloudSdkCustomFields, asyncCreateDataDestinationResponse.cloudSdkCustomFields)
+ && Objects.equals(this.name, asyncCreateDataDestinationResponse.name)
+ && Objects.equals(this.subjectPatterns, asyncCreateDataDestinationResponse.subjectPatterns);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(name, subjectPatterns, cloudSdkCustomFields);
+ }
+
+ @Override
+ @Nonnull
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("class AsyncCreateDataDestinationResponse {\n");
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" subjectPatterns: ").append(toIndentedString(subjectPatterns)).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
+ * AsyncCreateDataDestinationResponse} instance with all required arguments.
+ */
+ public static Builder create() {
+ return (name) -> new AsyncCreateDataDestinationResponse().name(name);
+ }
+
+ /** Builder helper class. */
+ public interface Builder {
+ /**
+ * Set the name of this {@link AsyncCreateDataDestinationResponse} instance.
+ *
+ * @param name Name of the data destination being created
+ * @return The AsyncCreateDataDestinationResponse instance.
+ */
+ AsyncCreateDataDestinationResponse name(@Nonnull final String name);
+ }
+}
diff --git a/core-services/tabular-orchestration/src/main/java/com/sap/ai/sdk/tabular/generated/orchestration/model/AutoDefinition.java b/core-services/tabular-orchestration/src/main/java/com/sap/ai/sdk/tabular/generated/orchestration/model/AutoDefinition.java
new file mode 100644
index 000000000..3d4a6163c
--- /dev/null
+++ b/core-services/tabular-orchestration/src/main/java/com/sap/ai/sdk/tabular/generated/orchestration/model/AutoDefinition.java
@@ -0,0 +1,221 @@
+/*
+ * Context Registry
+ * Context Registry is a service for managing tabular data contexts for AI applications. It provides capabilities to register data destinations (object stores and data sharing platforms), create tabular artifacts from various file formats (CSV, Parquet, Delta), and configure scenarios for context selection in 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.tabular.generated.orchestration.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;
+
+/** AutoDefinition */
+// CHECKSTYLE:OFF
+public class AutoDefinition implements CSNDefinition
+// CHECKSTYLE:ON
+{
+ @JsonProperty("definitionType")
+ private DefinitionType definitionType;
+
+ @JsonProperty("autoConfig")
+ private AutoDefinitionAutoConfig autoConfig;
+
+ @JsonAnySetter @JsonAnyGetter
+ private final Map cloudSdkCustomFields = new LinkedHashMap<>();
+
+ /** Default constructor for AutoDefinition. */
+ protected AutoDefinition() {}
+
+ /**
+ * Set the definitionType of this {@link AutoDefinition} instance and return the same instance.
+ *
+ * @param definitionType The definitionType of this {@link AutoDefinition}
+ * @return The same instance of this {@link AutoDefinition} class
+ */
+ @Nonnull
+ public AutoDefinition definitionType(@Nonnull final DefinitionType definitionType) {
+ this.definitionType = definitionType;
+ return this;
+ }
+
+ /**
+ * Get definitionType
+ *
+ * @return definitionType The definitionType of this {@link AutoDefinition} instance.
+ */
+ @Nonnull
+ public DefinitionType getDefinitionType() {
+ return definitionType;
+ }
+
+ /**
+ * Set the definitionType of this {@link AutoDefinition} instance.
+ *
+ * @param definitionType The definitionType of this {@link AutoDefinition}
+ */
+ public void setDefinitionType(@Nonnull final DefinitionType definitionType) {
+ this.definitionType = definitionType;
+ }
+
+ /**
+ * Set the autoConfig of this {@link AutoDefinition} instance and return the same instance.
+ *
+ * @param autoConfig The autoConfig of this {@link AutoDefinition}
+ * @return The same instance of this {@link AutoDefinition} class
+ */
+ @Nonnull
+ public AutoDefinition autoConfig(@Nullable final AutoDefinitionAutoConfig autoConfig) {
+ this.autoConfig = autoConfig;
+ return this;
+ }
+
+ /**
+ * Get autoConfig
+ *
+ * @return autoConfig The autoConfig of this {@link AutoDefinition} instance.
+ */
+ @Nonnull
+ public AutoDefinitionAutoConfig getAutoConfig() {
+ return autoConfig;
+ }
+
+ /**
+ * Set the autoConfig of this {@link AutoDefinition} instance.
+ *
+ * @param autoConfig The autoConfig of this {@link AutoDefinition}
+ */
+ public void setAutoConfig(@Nullable final AutoDefinitionAutoConfig autoConfig) {
+ this.autoConfig = autoConfig;
+ }
+
+ /**
+ * Get the names of the unrecognizable properties of the {@link AutoDefinition}.
+ *
+ * @return The set of properties names
+ */
+ @JsonIgnore
+ @Nonnull
+ public Set getCustomFieldNames() {
+ return cloudSdkCustomFields.keySet();
+ }
+
+ /**
+ * Get the value of an unrecognizable property of this {@link AutoDefinition} 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("AutoDefinition has no field with name '" + name + "'.");
+ }
+ return cloudSdkCustomFields.get(name);
+ }
+
+ /**
+ * Get the value of all properties of this {@link AutoDefinition} instance including unrecognized
+ * properties.
+ *
+ * @return The map of all properties
+ */
+ @JsonIgnore
+ @Nonnull
+ public Map toMap() {
+ final Map declaredFields = new LinkedHashMap<>(cloudSdkCustomFields);
+ if (definitionType != null) declaredFields.put("definitionType", definitionType);
+ if (autoConfig != null) declaredFields.put("autoConfig", autoConfig);
+ return declaredFields;
+ }
+
+ /**
+ * Set an unrecognizable property of this {@link AutoDefinition} 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 AutoDefinition autoDefinition = (AutoDefinition) o;
+ return Objects.equals(this.cloudSdkCustomFields, autoDefinition.cloudSdkCustomFields)
+ && Objects.equals(this.definitionType, autoDefinition.definitionType)
+ && Objects.equals(this.autoConfig, autoDefinition.autoConfig);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(definitionType, autoConfig, cloudSdkCustomFields);
+ }
+
+ @Override
+ @Nonnull
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("class AutoDefinition {\n");
+ sb.append(" definitionType: ").append(toIndentedString(definitionType)).append("\n");
+ sb.append(" autoConfig: ").append(toIndentedString(autoConfig)).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 AutoDefinition}
+ * instance with all required arguments.
+ */
+ public static Builder create() {
+ return (definitionType) -> new AutoDefinition().definitionType(definitionType);
+ }
+
+ /** Builder helper class. */
+ public interface Builder {
+ /**
+ * Set the definitionType of this {@link AutoDefinition} instance.
+ *
+ * @param definitionType The definitionType of this {@link AutoDefinition}
+ * @return The AutoDefinition instance.
+ */
+ AutoDefinition definitionType(@Nonnull final DefinitionType definitionType);
+ }
+}
diff --git a/core-services/tabular-orchestration/src/main/java/com/sap/ai/sdk/tabular/generated/orchestration/model/AutoDefinitionAutoConfig.java b/core-services/tabular-orchestration/src/main/java/com/sap/ai/sdk/tabular/generated/orchestration/model/AutoDefinitionAutoConfig.java
new file mode 100644
index 000000000..a20a3502a
--- /dev/null
+++ b/core-services/tabular-orchestration/src/main/java/com/sap/ai/sdk/tabular/generated/orchestration/model/AutoDefinitionAutoConfig.java
@@ -0,0 +1,173 @@
+/*
+ * Context Registry
+ * Context Registry is a service for managing tabular data contexts for AI applications. It provides capabilities to register data destinations (object stores and data sharing platforms), create tabular artifacts from various file formats (CSV, Parquet, Delta), and configure scenarios for context selection in 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.tabular.generated.orchestration.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;
+
+/** Optional configuration for AUTO schema derivation */
+// CHECKSTYLE:OFF
+public class AutoDefinitionAutoConfig
+// CHECKSTYLE:ON
+{
+ @JsonProperty("csvOptions")
+ private AutoDefinitionAutoConfigCsvOptions csvOptions;
+
+ @JsonAnySetter @JsonAnyGetter
+ private final Map cloudSdkCustomFields = new LinkedHashMap<>();
+
+ /** Default constructor for AutoDefinitionAutoConfig. */
+ protected AutoDefinitionAutoConfig() {}
+
+ /**
+ * Set the csvOptions of this {@link AutoDefinitionAutoConfig} instance and return the same
+ * instance.
+ *
+ * @param csvOptions The csvOptions of this {@link AutoDefinitionAutoConfig}
+ * @return The same instance of this {@link AutoDefinitionAutoConfig} class
+ */
+ @Nonnull
+ public AutoDefinitionAutoConfig csvOptions(
+ @Nullable final AutoDefinitionAutoConfigCsvOptions csvOptions) {
+ this.csvOptions = csvOptions;
+ return this;
+ }
+
+ /**
+ * Get csvOptions
+ *
+ * @return csvOptions The csvOptions of this {@link AutoDefinitionAutoConfig} instance.
+ */
+ @Nonnull
+ public AutoDefinitionAutoConfigCsvOptions getCsvOptions() {
+ return csvOptions;
+ }
+
+ /**
+ * Set the csvOptions of this {@link AutoDefinitionAutoConfig} instance.
+ *
+ * @param csvOptions The csvOptions of this {@link AutoDefinitionAutoConfig}
+ */
+ public void setCsvOptions(@Nullable final AutoDefinitionAutoConfigCsvOptions csvOptions) {
+ this.csvOptions = csvOptions;
+ }
+
+ /**
+ * Get the names of the unrecognizable properties of the {@link AutoDefinitionAutoConfig}.
+ *
+ * @return The set of properties names
+ */
+ @JsonIgnore
+ @Nonnull
+ public Set getCustomFieldNames() {
+ return cloudSdkCustomFields.keySet();
+ }
+
+ /**
+ * Get the value of an unrecognizable property of this {@link AutoDefinitionAutoConfig} 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(
+ "AutoDefinitionAutoConfig has no field with name '" + name + "'.");
+ }
+ return cloudSdkCustomFields.get(name);
+ }
+
+ /**
+ * Get the value of all properties of this {@link AutoDefinitionAutoConfig} instance including
+ * unrecognized properties.
+ *
+ * @return The map of all properties
+ */
+ @JsonIgnore
+ @Nonnull
+ public Map toMap() {
+ final Map declaredFields = new LinkedHashMap<>(cloudSdkCustomFields);
+ if (csvOptions != null) declaredFields.put("csvOptions", csvOptions);
+ return declaredFields;
+ }
+
+ /**
+ * Set an unrecognizable property of this {@link AutoDefinitionAutoConfig} 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 AutoDefinitionAutoConfig autoDefinitionAutoConfig = (AutoDefinitionAutoConfig) o;
+ return Objects.equals(this.cloudSdkCustomFields, autoDefinitionAutoConfig.cloudSdkCustomFields)
+ && Objects.equals(this.csvOptions, autoDefinitionAutoConfig.csvOptions);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(csvOptions, cloudSdkCustomFields);
+ }
+
+ @Override
+ @Nonnull
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("class AutoDefinitionAutoConfig {\n");
+ sb.append(" csvOptions: ").append(toIndentedString(csvOptions)).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 AutoDefinitionAutoConfig} instance. No arguments are required. */
+ public static AutoDefinitionAutoConfig create() {
+ return new AutoDefinitionAutoConfig();
+ }
+}
diff --git a/core-services/tabular-orchestration/src/main/java/com/sap/ai/sdk/tabular/generated/orchestration/model/AutoDefinitionAutoConfigCsvOptions.java b/core-services/tabular-orchestration/src/main/java/com/sap/ai/sdk/tabular/generated/orchestration/model/AutoDefinitionAutoConfigCsvOptions.java
new file mode 100644
index 000000000..af7e8de59
--- /dev/null
+++ b/core-services/tabular-orchestration/src/main/java/com/sap/ai/sdk/tabular/generated/orchestration/model/AutoDefinitionAutoConfigCsvOptions.java
@@ -0,0 +1,223 @@
+/*
+ * Context Registry
+ * Context Registry is a service for managing tabular data contexts for AI applications. It provides capabilities to register data destinations (object stores and data sharing platforms), create tabular artifacts from various file formats (CSV, Parquet, Delta), and configure scenarios for context selection in 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.tabular.generated.orchestration.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;
+
+/** Optional CSV-specific options (only for CSV type files) */
+// CHECKSTYLE:OFF
+public class AutoDefinitionAutoConfigCsvOptions
+// CHECKSTYLE:ON
+{
+ @JsonProperty("columnListInFirstRow")
+ private Boolean columnListInFirstRow = true;
+
+ @JsonProperty("delimiter")
+ private String delimiter = ",";
+
+ @JsonAnySetter @JsonAnyGetter
+ private final Map cloudSdkCustomFields = new LinkedHashMap<>();
+
+ /** Default constructor for AutoDefinitionAutoConfigCsvOptions. */
+ protected AutoDefinitionAutoConfigCsvOptions() {}
+
+ /**
+ * Set the columnListInFirstRow of this {@link AutoDefinitionAutoConfigCsvOptions} instance and
+ * return the same instance.
+ *
+ * @param columnListInFirstRow Whether CSV has column names in first row
+ * @return The same instance of this {@link AutoDefinitionAutoConfigCsvOptions} class
+ */
+ @Nonnull
+ public AutoDefinitionAutoConfigCsvOptions columnListInFirstRow(
+ @Nullable final Boolean columnListInFirstRow) {
+ this.columnListInFirstRow = columnListInFirstRow;
+ return this;
+ }
+
+ /**
+ * Whether CSV has column names in first row
+ *
+ * @return columnListInFirstRow The columnListInFirstRow of this {@link
+ * AutoDefinitionAutoConfigCsvOptions} instance.
+ */
+ @Nonnull
+ public Boolean isColumnListInFirstRow() {
+ return columnListInFirstRow;
+ }
+
+ /**
+ * Set the columnListInFirstRow of this {@link AutoDefinitionAutoConfigCsvOptions} instance.
+ *
+ * @param columnListInFirstRow Whether CSV has column names in first row
+ */
+ public void setColumnListInFirstRow(@Nullable final Boolean columnListInFirstRow) {
+ this.columnListInFirstRow = columnListInFirstRow;
+ }
+
+ /**
+ * Set the delimiter of this {@link AutoDefinitionAutoConfigCsvOptions} instance and return the
+ * same instance.
+ *
+ * @param delimiter CSV delimiter character
+ * @return The same instance of this {@link AutoDefinitionAutoConfigCsvOptions} class
+ */
+ @Nonnull
+ public AutoDefinitionAutoConfigCsvOptions delimiter(@Nullable final String delimiter) {
+ this.delimiter = delimiter;
+ return this;
+ }
+
+ /**
+ * CSV delimiter character
+ *
+ * @return delimiter The delimiter of this {@link AutoDefinitionAutoConfigCsvOptions} instance.
+ */
+ @Nonnull
+ public String getDelimiter() {
+ return delimiter;
+ }
+
+ /**
+ * Set the delimiter of this {@link AutoDefinitionAutoConfigCsvOptions} instance.
+ *
+ * @param delimiter CSV delimiter character
+ */
+ public void setDelimiter(@Nullable final String delimiter) {
+ this.delimiter = delimiter;
+ }
+
+ /**
+ * Get the names of the unrecognizable properties of the {@link
+ * AutoDefinitionAutoConfigCsvOptions}.
+ *
+ * @return The set of properties names
+ */
+ @JsonIgnore
+ @Nonnull
+ public Set getCustomFieldNames() {
+ return cloudSdkCustomFields.keySet();
+ }
+
+ /**
+ * Get the value of an unrecognizable property of this {@link AutoDefinitionAutoConfigCsvOptions}
+ * 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(
+ "AutoDefinitionAutoConfigCsvOptions has no field with name '" + name + "'.");
+ }
+ return cloudSdkCustomFields.get(name);
+ }
+
+ /**
+ * Get the value of all properties of this {@link AutoDefinitionAutoConfigCsvOptions} instance
+ * including unrecognized properties.
+ *
+ * @return The map of all properties
+ */
+ @JsonIgnore
+ @Nonnull
+ public Map toMap() {
+ final Map declaredFields = new LinkedHashMap<>(cloudSdkCustomFields);
+ if (columnListInFirstRow != null)
+ declaredFields.put("columnListInFirstRow", columnListInFirstRow);
+ if (delimiter != null) declaredFields.put("delimiter", delimiter);
+ return declaredFields;
+ }
+
+ /**
+ * Set an unrecognizable property of this {@link AutoDefinitionAutoConfigCsvOptions} 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 AutoDefinitionAutoConfigCsvOptions autoDefinitionAutoConfigCsvOptions =
+ (AutoDefinitionAutoConfigCsvOptions) o;
+ return Objects.equals(
+ this.cloudSdkCustomFields, autoDefinitionAutoConfigCsvOptions.cloudSdkCustomFields)
+ && Objects.equals(
+ this.columnListInFirstRow, autoDefinitionAutoConfigCsvOptions.columnListInFirstRow)
+ && Objects.equals(this.delimiter, autoDefinitionAutoConfigCsvOptions.delimiter);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(columnListInFirstRow, delimiter, cloudSdkCustomFields);
+ }
+
+ @Override
+ @Nonnull
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("class AutoDefinitionAutoConfigCsvOptions {\n");
+ sb.append(" columnListInFirstRow: ")
+ .append(toIndentedString(columnListInFirstRow))
+ .append("\n");
+ sb.append(" delimiter: ").append(toIndentedString(delimiter)).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 AutoDefinitionAutoConfigCsvOptions} instance. No arguments are required.
+ */
+ public static AutoDefinitionAutoConfigCsvOptions create() {
+ return new AutoDefinitionAutoConfigCsvOptions();
+ }
+}
diff --git a/core-services/tabular-orchestration/src/main/java/com/sap/ai/sdk/tabular/generated/orchestration/model/AzureConnectionConfig.java b/core-services/tabular-orchestration/src/main/java/com/sap/ai/sdk/tabular/generated/orchestration/model/AzureConnectionConfig.java
new file mode 100644
index 000000000..dc68f18c2
--- /dev/null
+++ b/core-services/tabular-orchestration/src/main/java/com/sap/ai/sdk/tabular/generated/orchestration/model/AzureConnectionConfig.java
@@ -0,0 +1,301 @@
+/*
+ * Context Registry
+ * Context Registry is a service for managing tabular data contexts for AI applications. It provides capabilities to register data destinations (object stores and data sharing platforms), create tabular artifacts from various file formats (CSV, Parquet, Delta), and configure scenarios for context selection in 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.tabular.generated.orchestration.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;
+
+/** AzureConnectionConfig */
+// CHECKSTYLE:OFF
+public class AzureConnectionConfig
+// CHECKSTYLE:ON
+{
+ @JsonProperty("account_name")
+ private String accountName;
+
+ @JsonProperty("container_uri")
+ private String containerUri;
+
+ @JsonProperty("sas_token")
+ private String sasToken;
+
+ @JsonAnySetter @JsonAnyGetter
+ private final Map cloudSdkCustomFields = new LinkedHashMap<>();
+
+ /** Default constructor for AzureConnectionConfig. */
+ protected AzureConnectionConfig() {}
+
+ /**
+ * Set the accountName of this {@link AzureConnectionConfig} instance and return the same
+ * instance.
+ *
+ * @param accountName Azure storage account name (maps to user= in HANA credential)
+ * @return The same instance of this {@link AzureConnectionConfig} class
+ */
+ @Nonnull
+ public AzureConnectionConfig accountName(@Nonnull final String accountName) {
+ this.accountName = accountName;
+ return this;
+ }
+
+ /**
+ * Azure storage account name (maps to user= in HANA credential)
+ *
+ * @return accountName The accountName of this {@link AzureConnectionConfig} instance.
+ */
+ @Nonnull
+ public String getAccountName() {
+ return accountName;
+ }
+
+ /**
+ * Set the accountName of this {@link AzureConnectionConfig} instance.
+ *
+ * @param accountName Azure storage account name (maps to user= in HANA credential)
+ */
+ public void setAccountName(@Nonnull final String accountName) {
+ this.accountName = accountName;
+ }
+
+ /**
+ * Set the containerUri of this {@link AzureConnectionConfig} instance and return the same
+ * instance.
+ *
+ * @param containerUri Full container URI from the BTP Object Store service key (e.g.
+ * https://account.z2.blob.storage.azure.net/container). TCR strips the https:// prefix to
+ * derive the HANA adls endpoint.
+ * @return The same instance of this {@link AzureConnectionConfig} class
+ */
+ @Nonnull
+ public AzureConnectionConfig containerUri(@Nonnull final String containerUri) {
+ this.containerUri = containerUri;
+ return this;
+ }
+
+ /**
+ * Full container URI from the BTP Object Store service key (e.g.
+ * https://account.z2.blob.storage.azure.net/container). TCR strips the https:// prefix to derive
+ * the HANA adls endpoint.
+ *
+ * @return containerUri The containerUri of this {@link AzureConnectionConfig} instance.
+ */
+ @Nonnull
+ public String getContainerUri() {
+ return containerUri;
+ }
+
+ /**
+ * Set the containerUri of this {@link AzureConnectionConfig} instance.
+ *
+ * @param containerUri Full container URI from the BTP Object Store service key (e.g.
+ * https://account.z2.blob.storage.azure.net/container). TCR strips the https:// prefix to
+ * derive the HANA adls endpoint.
+ */
+ public void setContainerUri(@Nonnull final String containerUri) {
+ this.containerUri = containerUri;
+ }
+
+ /**
+ * Set the sasToken of this {@link AzureConnectionConfig} instance and return the same instance.
+ *
+ * @param sasToken SAS token (raw, percent-encoded characters stored as-is). Must grant read +
+ * list (r + l) on the container.
+ * @return The same instance of this {@link AzureConnectionConfig} class
+ */
+ @Nonnull
+ public AzureConnectionConfig sasToken(@Nonnull final String sasToken) {
+ this.sasToken = sasToken;
+ return this;
+ }
+
+ /**
+ * SAS token (raw, percent-encoded characters stored as-is). Must grant read + list (r + l) on the
+ * container.
+ *
+ * @return sasToken The sasToken of this {@link AzureConnectionConfig} instance.
+ */
+ @Nonnull
+ public String getSasToken() {
+ return sasToken;
+ }
+
+ /**
+ * Set the sasToken of this {@link AzureConnectionConfig} instance.
+ *
+ * @param sasToken SAS token (raw, percent-encoded characters stored as-is). Must grant read +
+ * list (r + l) on the container.
+ */
+ public void setSasToken(@Nonnull final String sasToken) {
+ this.sasToken = sasToken;
+ }
+
+ /**
+ * Get the names of the unrecognizable properties of the {@link AzureConnectionConfig}.
+ *
+ * @return The set of properties names
+ */
+ @JsonIgnore
+ @Nonnull
+ public Set getCustomFieldNames() {
+ return cloudSdkCustomFields.keySet();
+ }
+
+ /**
+ * Get the value of an unrecognizable property of this {@link AzureConnectionConfig} 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(
+ "AzureConnectionConfig has no field with name '" + name + "'.");
+ }
+ return cloudSdkCustomFields.get(name);
+ }
+
+ /**
+ * Get the value of all properties of this {@link AzureConnectionConfig} instance including
+ * unrecognized properties.
+ *
+ * @return The map of all properties
+ */
+ @JsonIgnore
+ @Nonnull
+ public Map toMap() {
+ final Map declaredFields = new LinkedHashMap<>(cloudSdkCustomFields);
+ if (accountName != null) declaredFields.put("accountName", accountName);
+ if (containerUri != null) declaredFields.put("containerUri", containerUri);
+ if (sasToken != null) declaredFields.put("sasToken", sasToken);
+ return declaredFields;
+ }
+
+ /**
+ * Set an unrecognizable property of this {@link AzureConnectionConfig} 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 AzureConnectionConfig azureConnectionConfig = (AzureConnectionConfig) o;
+ return Objects.equals(this.cloudSdkCustomFields, azureConnectionConfig.cloudSdkCustomFields)
+ && Objects.equals(this.accountName, azureConnectionConfig.accountName)
+ && Objects.equals(this.containerUri, azureConnectionConfig.containerUri)
+ && Objects.equals(this.sasToken, azureConnectionConfig.sasToken);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(accountName, containerUri, sasToken, cloudSdkCustomFields);
+ }
+
+ @Override
+ @Nonnull
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("class AzureConnectionConfig {\n");
+ sb.append(" accountName: ").append(toIndentedString(accountName)).append("\n");
+ sb.append(" containerUri: ").append(toIndentedString(containerUri)).append("\n");
+ sb.append(" sasToken: ").append(toIndentedString(sasToken)).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 AzureConnectionConfig}
+ * instance with all required arguments.
+ */
+ public static Builder create() {
+ return (accountName) ->
+ (containerUri) ->
+ (sasToken) ->
+ new AzureConnectionConfig()
+ .accountName(accountName)
+ .containerUri(containerUri)
+ .sasToken(sasToken);
+ }
+
+ /** Builder helper class. */
+ public interface Builder {
+ /**
+ * Set the accountName of this {@link AzureConnectionConfig} instance.
+ *
+ * @param accountName Azure storage account name (maps to user= in HANA credential)
+ * @return The AzureConnectionConfig builder.
+ */
+ Builder1 accountName(@Nonnull final String accountName);
+ }
+
+ /** Builder helper class. */
+ public interface Builder1 {
+ /**
+ * Set the containerUri of this {@link AzureConnectionConfig} instance.
+ *
+ * @param containerUri Full container URI from the BTP Object Store service key (e.g.
+ * https://account.z2.blob.storage.azure.net/container). TCR strips the https:// prefix to
+ * derive the HANA adls endpoint.
+ * @return The AzureConnectionConfig builder.
+ */
+ Builder2 containerUri(@Nonnull final String containerUri);
+ }
+
+ /** Builder helper class. */
+ public interface Builder2 {
+ /**
+ * Set the sasToken of this {@link AzureConnectionConfig} instance.
+ *
+ * @param sasToken SAS token (raw, percent-encoded characters stored as-is). Must grant read +
+ * list (r + l) on the container.
+ * @return The AzureConnectionConfig instance.
+ */
+ AzureConnectionConfig sasToken(@Nonnull final String sasToken);
+ }
+}
diff --git a/core-services/tabular-orchestration/src/main/java/com/sap/ai/sdk/tabular/generated/orchestration/model/AzureConnectionConfigBase.java b/core-services/tabular-orchestration/src/main/java/com/sap/ai/sdk/tabular/generated/orchestration/model/AzureConnectionConfigBase.java
new file mode 100644
index 000000000..ffb61306b
--- /dev/null
+++ b/core-services/tabular-orchestration/src/main/java/com/sap/ai/sdk/tabular/generated/orchestration/model/AzureConnectionConfigBase.java
@@ -0,0 +1,257 @@
+/*
+ * Context Registry
+ * Context Registry is a service for managing tabular data contexts for AI applications. It provides capabilities to register data destinations (object stores and data sharing platforms), create tabular artifacts from various file formats (CSV, Parquet, Delta), and configure scenarios for context selection in 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.tabular.generated.orchestration.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;
+
+/** AzureConnectionConfigBase */
+// CHECKSTYLE:OFF
+public class AzureConnectionConfigBase
+// CHECKSTYLE:ON
+{
+ @JsonProperty("account_name")
+ private String accountName;
+
+ @JsonProperty("container_uri")
+ private String containerUri;
+
+ @JsonProperty("sas_token")
+ private String sasToken;
+
+ @JsonAnySetter @JsonAnyGetter
+ private final Map cloudSdkCustomFields = new LinkedHashMap<>();
+
+ /** Default constructor for AzureConnectionConfigBase. */
+ protected AzureConnectionConfigBase() {}
+
+ /**
+ * Set the accountName of this {@link AzureConnectionConfigBase} instance and return the same
+ * instance.
+ *
+ * @param accountName Azure storage account name (maps to user= in HANA credential)
+ * @return The same instance of this {@link AzureConnectionConfigBase} class
+ */
+ @Nonnull
+ public AzureConnectionConfigBase accountName(@Nullable final String accountName) {
+ this.accountName = accountName;
+ return this;
+ }
+
+ /**
+ * Azure storage account name (maps to user= in HANA credential)
+ *
+ * @return accountName The accountName of this {@link AzureConnectionConfigBase} instance.
+ */
+ @Nonnull
+ public String getAccountName() {
+ return accountName;
+ }
+
+ /**
+ * Set the accountName of this {@link AzureConnectionConfigBase} instance.
+ *
+ * @param accountName Azure storage account name (maps to user= in HANA credential)
+ */
+ public void setAccountName(@Nullable final String accountName) {
+ this.accountName = accountName;
+ }
+
+ /**
+ * Set the containerUri of this {@link AzureConnectionConfigBase} instance and return the same
+ * instance.
+ *
+ * @param containerUri Full container URI from the BTP Object Store service key (e.g.
+ * https://account.z2.blob.storage.azure.net/container). TCR strips the https:// prefix to
+ * derive the HANA adls endpoint.
+ * @return The same instance of this {@link AzureConnectionConfigBase} class
+ */
+ @Nonnull
+ public AzureConnectionConfigBase containerUri(@Nullable final String containerUri) {
+ this.containerUri = containerUri;
+ return this;
+ }
+
+ /**
+ * Full container URI from the BTP Object Store service key (e.g.
+ * https://account.z2.blob.storage.azure.net/container). TCR strips the https:// prefix to derive
+ * the HANA adls endpoint.
+ *
+ * @return containerUri The containerUri of this {@link AzureConnectionConfigBase} instance.
+ */
+ @Nonnull
+ public String getContainerUri() {
+ return containerUri;
+ }
+
+ /**
+ * Set the containerUri of this {@link AzureConnectionConfigBase} instance.
+ *
+ * @param containerUri Full container URI from the BTP Object Store service key (e.g.
+ * https://account.z2.blob.storage.azure.net/container). TCR strips the https:// prefix to
+ * derive the HANA adls endpoint.
+ */
+ public void setContainerUri(@Nullable final String containerUri) {
+ this.containerUri = containerUri;
+ }
+
+ /**
+ * Set the sasToken of this {@link AzureConnectionConfigBase} instance and return the same
+ * instance.
+ *
+ * @param sasToken SAS token (raw, percent-encoded characters stored as-is). Must grant read +
+ * list (r + l) on the container.
+ * @return The same instance of this {@link AzureConnectionConfigBase} class
+ */
+ @Nonnull
+ public AzureConnectionConfigBase sasToken(@Nullable final String sasToken) {
+ this.sasToken = sasToken;
+ return this;
+ }
+
+ /**
+ * SAS token (raw, percent-encoded characters stored as-is). Must grant read + list (r + l) on the
+ * container.
+ *
+ * @return sasToken The sasToken of this {@link AzureConnectionConfigBase} instance.
+ */
+ @Nonnull
+ public String getSasToken() {
+ return sasToken;
+ }
+
+ /**
+ * Set the sasToken of this {@link AzureConnectionConfigBase} instance.
+ *
+ * @param sasToken SAS token (raw, percent-encoded characters stored as-is). Must grant read +
+ * list (r + l) on the container.
+ */
+ public void setSasToken(@Nullable final String sasToken) {
+ this.sasToken = sasToken;
+ }
+
+ /**
+ * Get the names of the unrecognizable properties of the {@link AzureConnectionConfigBase}.
+ *
+ * @return The set of properties names
+ */
+ @JsonIgnore
+ @Nonnull
+ public Set getCustomFieldNames() {
+ return cloudSdkCustomFields.keySet();
+ }
+
+ /**
+ * Get the value of an unrecognizable property of this {@link AzureConnectionConfigBase} 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(
+ "AzureConnectionConfigBase has no field with name '" + name + "'.");
+ }
+ return cloudSdkCustomFields.get(name);
+ }
+
+ /**
+ * Get the value of all properties of this {@link AzureConnectionConfigBase} instance including
+ * unrecognized properties.
+ *
+ * @return The map of all properties
+ */
+ @JsonIgnore
+ @Nonnull
+ public Map toMap() {
+ final Map declaredFields = new LinkedHashMap<>(cloudSdkCustomFields);
+ if (accountName != null) declaredFields.put("accountName", accountName);
+ if (containerUri != null) declaredFields.put("containerUri", containerUri);
+ if (sasToken != null) declaredFields.put("sasToken", sasToken);
+ return declaredFields;
+ }
+
+ /**
+ * Set an unrecognizable property of this {@link AzureConnectionConfigBase} 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 AzureConnectionConfigBase azureConnectionConfigBase = (AzureConnectionConfigBase) o;
+ return Objects.equals(this.cloudSdkCustomFields, azureConnectionConfigBase.cloudSdkCustomFields)
+ && Objects.equals(this.accountName, azureConnectionConfigBase.accountName)
+ && Objects.equals(this.containerUri, azureConnectionConfigBase.containerUri)
+ && Objects.equals(this.sasToken, azureConnectionConfigBase.sasToken);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(accountName, containerUri, sasToken, cloudSdkCustomFields);
+ }
+
+ @Override
+ @Nonnull
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("class AzureConnectionConfigBase {\n");
+ sb.append(" accountName: ").append(toIndentedString(accountName)).append("\n");
+ sb.append(" containerUri: ").append(toIndentedString(containerUri)).append("\n");
+ sb.append(" sasToken: ").append(toIndentedString(sasToken)).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 AzureConnectionConfigBase} instance. No arguments are required. */
+ public static AzureConnectionConfigBase create() {
+ return new AzureConnectionConfigBase();
+ }
+}
diff --git a/core-services/tabular-orchestration/src/main/java/com/sap/ai/sdk/tabular/generated/orchestration/model/AzureDataDestinationCreateRequest.java b/core-services/tabular-orchestration/src/main/java/com/sap/ai/sdk/tabular/generated/orchestration/model/AzureDataDestinationCreateRequest.java
new file mode 100644
index 000000000..4bf73f5c2
--- /dev/null
+++ b/core-services/tabular-orchestration/src/main/java/com/sap/ai/sdk/tabular/generated/orchestration/model/AzureDataDestinationCreateRequest.java
@@ -0,0 +1,486 @@
+/*
+ * Context Registry
+ * Context Registry is a service for managing tabular data contexts for AI applications. It provides capabilities to register data destinations (object stores and data sharing platforms), create tabular artifacts from various file formats (CSV, Parquet, Delta), and configure scenarios for context selection in 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.tabular.generated.orchestration.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;
+
+/** AzureDataDestinationCreateRequest */
+// CHECKSTYLE:OFF
+public class AzureDataDestinationCreateRequest implements CreateDataDestination
+// CHECKSTYLE:ON
+{
+ @JsonProperty("description")
+ private String description;
+
+ /** Adapter type for data access. */
+ public enum AdapterTypeEnum {
+ /** The FILE option of this AzureDataDestinationCreateRequest */
+ FILE("File"),
+
+ /** The DELTA_SHARE option of this AzureDataDestinationCreateRequest */
+ DELTA_SHARE("DeltaShare"),
+
+ /** The UNKNOWN_DEFAULT_OPEN_API option of this AzureDataDestinationCreateRequest */
+ UNKNOWN_DEFAULT_OPEN_API("unknown_default_open_api");
+
+ private String value;
+
+ AdapterTypeEnum(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 AzureDataDestinationCreateRequest
+ */
+ @JsonCreator
+ @Nonnull
+ public static AdapterTypeEnum fromValue(@Nonnull final String value) {
+ for (AdapterTypeEnum b : AdapterTypeEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ return UNKNOWN_DEFAULT_OPEN_API;
+ }
+ }
+
+ @JsonProperty("adapterType")
+ private AdapterTypeEnum adapterType = AdapterTypeEnum.FILE;
+
+ @JsonProperty("labels")
+ private List labels = new ArrayList<>();
+
+ /** Gets or Sets type */
+ public enum TypeEnum {
+ /** The AZURE option of this AzureDataDestinationCreateRequest */
+ AZURE("AZURE"),
+
+ /** The UNKNOWN_DEFAULT_OPEN_API option of this AzureDataDestinationCreateRequest */
+ 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 AzureDataDestinationCreateRequest
+ */
+ @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("config")
+ private AzureConnectionConfig config;
+
+ @JsonAnySetter @JsonAnyGetter
+ private final Map cloudSdkCustomFields = new LinkedHashMap<>();
+
+ /** Default constructor for AzureDataDestinationCreateRequest. */
+ protected AzureDataDestinationCreateRequest() {}
+
+ /**
+ * Set the description of this {@link AzureDataDestinationCreateRequest} instance and return the
+ * same instance.
+ *
+ * @param description Optional description of the data destination
+ * @return The same instance of this {@link AzureDataDestinationCreateRequest} class
+ */
+ @Nonnull
+ public AzureDataDestinationCreateRequest description(@Nullable final String description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * Optional description of the data destination
+ *
+ * @return description The description of this {@link AzureDataDestinationCreateRequest} instance.
+ */
+ @Nonnull
+ public String getDescription() {
+ return description;
+ }
+
+ /**
+ * Set the description of this {@link AzureDataDestinationCreateRequest} instance.
+ *
+ * @param description Optional description of the data destination
+ */
+ public void setDescription(@Nullable final String description) {
+ this.description = description;
+ }
+
+ /**
+ * Set the adapterType of this {@link AzureDataDestinationCreateRequest} instance and return the
+ * same instance.
+ *
+ * @param adapterType Adapter type for data access.
+ * @return The same instance of this {@link AzureDataDestinationCreateRequest} class
+ */
+ @Nonnull
+ public AzureDataDestinationCreateRequest adapterType(
+ @Nullable final AdapterTypeEnum adapterType) {
+ this.adapterType = adapterType;
+ return this;
+ }
+
+ /**
+ * Adapter type for data access.
+ *
+ * @return adapterType The adapterType of this {@link AzureDataDestinationCreateRequest} instance.
+ */
+ @Nonnull
+ public AdapterTypeEnum getAdapterType() {
+ return adapterType;
+ }
+
+ /**
+ * Set the adapterType of this {@link AzureDataDestinationCreateRequest} instance.
+ *
+ * @param adapterType Adapter type for data access.
+ */
+ public void setAdapterType(@Nullable final AdapterTypeEnum adapterType) {
+ this.adapterType = adapterType;
+ }
+
+ /**
+ * Set the labels of this {@link AzureDataDestinationCreateRequest} instance and return the same
+ * instance.
+ *
+ * @param labels The labels of this {@link AzureDataDestinationCreateRequest}
+ * @return The same instance of this {@link AzureDataDestinationCreateRequest} class
+ */
+ @Nonnull
+ public AzureDataDestinationCreateRequest labels(@Nullable final List