From 10d960f906883b8aa01d33885aa83103a4b692fb Mon Sep 17 00:00:00 2001 From: skyflow-bharti Date: Fri, 19 Sep 2025 12:13:28 +0530 Subject: [PATCH] SK-2302 add multi table insert support --- .../java/com/skyflow/errors/ErrorMessage.java | 6 +- .../main/java/com/skyflow/logs/ErrorLogs.java | 7 +- .../skyflow/vault/data/BaseInsertRequest.java | 11 - .../com/skyflow/vault/data/InsertRequest.java | 9 +- v3/src/main/java/com/skyflow/VaultClient.java | 41 +++- .../com/skyflow/generated/rest/ApiClient.java | 9 +- .../generated/rest/AsyncApiClient.java | 9 +- .../rest/core/ApiClientApiException.java | 5 +- .../rest/core/ApiClientHttpResponse.java | 3 +- .../generated/rest/core/ClientOptions.java | 5 +- .../rest/core/DateTimeDeserializer.java | 1 - .../generated/rest/core/FileStream.java | 5 +- .../rest/core/InputStreamRequestBody.java | 7 +- .../generated/rest/core/ObjectMappers.java | 1 - .../rest/core/QueryStringMapper.java | 7 +- .../rest/core/ResponseBodyInputStream.java | 3 +- .../rest/core/ResponseBodyReader.java | 3 +- .../generated/rest/core/RetryInterceptor.java | 5 +- .../records/AsyncRawRecordsClient.java | 109 +++++++++ .../resources/records/AsyncRecordsClient.java | 50 ++++ .../resources/records/RawRecordsClient.java | 90 +++++++ .../rest/resources/records/RecordsClient.java | 49 ++++ .../requests/ExecuteQueryRequest.java | 19 +- .../AsyncRawRecordserviceClient.java | 109 +++------ .../AsyncRecordserviceClient.java | 42 ++-- .../recordservice/RawRecordserviceClient.java | 98 +++----- .../recordservice/RecordserviceClient.java | 37 ++- .../recordservice/requests/DeleteRequest.java | 21 +- .../requests/DeleteTokenRequest.java | 21 +- .../requests/DetokenizeRequest.java | 21 +- .../recordservice/requests/GetRequest.java | 100 +++++++- .../recordservice/requests/InsertRequest.java | 21 +- .../requests/TokenizeRequest.java | 21 +- .../recordservice/requests/UpdateRequest.java | 21 +- .../rest/types/ColumnRedactions.java | 15 +- .../generated/rest/types/DeleteResponse.java | 21 +- .../rest/types/DeleteResponseObject.java | 15 +- .../rest/types/DeleteTokenResponse.java | 21 +- .../rest/types/DeleteTokenResponseObject.java | 15 +- .../rest/types/DetokenizeResponse.java | 21 +- .../rest/types/DetokenizeResponseObject.java | 15 +- .../generated/rest/types/EnumDataType.java | 2 +- .../generated/rest/types/EnumUpdateType.java | 2 +- .../types/ExecuteQueryRecordResponse.java | 15 +- .../rest/types/ExecuteQueryResponse.java | 53 ++++- .../types/ExecuteQueryResponseMetadata.java | 102 ++++++++ .../generated/rest/types/GetRequestData.java | 225 ++++++++++++++++++ .../generated/rest/types/GetResponse.java | 21 +- .../rest/types/GoogleprotobufAny.java | 151 ++++++++++++ .../rest/types/InsertRecordData.java | 80 ++++++- .../generated/rest/types/InsertResponse.java | 21 +- .../generated/rest/types/ProtobufAny.java | 90 ------- .../rest/types/RecordResponseObject.java | 53 ++++- .../generated/rest/types/RpcStatus.java | 33 ++- .../rest/types/TokenGroupRedactions.java | 15 +- .../rest/types/TokenizeRequestObject.java | 21 +- .../rest/types/TokenizeResponse.java | 21 +- .../rest/types/TokenizeResponseObject.java | 21 +- .../types/TokenizeResponseObjectToken.java | 15 +- .../generated/rest/types/UniqueValue.java | 101 ++++++++ .../rest/types/UpdateRecordData.java | 57 ++++- .../generated/rest/types/UpdateResponse.java | 21 +- .../skyflow/generated/rest/types/Upsert.java | 21 +- v3/src/main/java/com/skyflow/utils/Utils.java | 2 +- .../utils/validations/Validations.java | 114 ++++++--- .../vault/controller/VaultController.java | 25 +- .../com/skyflow/vault/data/InsertRecord.java | 66 +++++ .../com/skyflow/vault/data/InsertRequest.java | 18 +- .../skyflow/vault/data/InsertResponse.java | 8 +- .../java/com/skyflow/vault/data/Success.java | 14 +- .../java/com/skyflow/utils/UtilsTests.java | 19 +- .../controller/VaultControllerTests.java | 55 ++--- .../com/skyflow/vault/data/InsertTests.java | 37 +-- 73 files changed, 1943 insertions(+), 645 deletions(-) create mode 100644 v3/src/main/java/com/skyflow/generated/rest/resources/records/AsyncRawRecordsClient.java create mode 100644 v3/src/main/java/com/skyflow/generated/rest/resources/records/AsyncRecordsClient.java create mode 100644 v3/src/main/java/com/skyflow/generated/rest/resources/records/RawRecordsClient.java create mode 100644 v3/src/main/java/com/skyflow/generated/rest/resources/records/RecordsClient.java rename v3/src/main/java/com/skyflow/generated/rest/resources/{recordservice => records}/requests/ExecuteQueryRequest.java (86%) create mode 100644 v3/src/main/java/com/skyflow/generated/rest/types/ExecuteQueryResponseMetadata.java create mode 100644 v3/src/main/java/com/skyflow/generated/rest/types/GetRequestData.java create mode 100644 v3/src/main/java/com/skyflow/generated/rest/types/GoogleprotobufAny.java delete mode 100644 v3/src/main/java/com/skyflow/generated/rest/types/ProtobufAny.java create mode 100644 v3/src/main/java/com/skyflow/generated/rest/types/UniqueValue.java create mode 100644 v3/src/main/java/com/skyflow/vault/data/InsertRecord.java diff --git a/common/src/main/java/com/skyflow/errors/ErrorMessage.java b/common/src/main/java/com/skyflow/errors/ErrorMessage.java index 459998ab..52d38bfe 100644 --- a/common/src/main/java/com/skyflow/errors/ErrorMessage.java +++ b/common/src/main/java/com/skyflow/errors/ErrorMessage.java @@ -10,7 +10,11 @@ public enum ErrorMessage { ConnectionIdAlreadyInConfigList("%s0 Validation error. ConnectionId is present in an existing config. Specify a connectionId in config."), ConnectionIdNotInConfigList("%s0 Validation error. ConnectionId is missing from the config. Specify the connectionIds from configs."), EmptyCredentials("%s0 Validation error. Invalid credentials. Credentials must not be empty."), - + TableSpecifiedInRequestAndRecordObject("%s0 Validation error. Table name cannot be specified at both the request and record levels. Please specify the table name in only one place."), + UpsertAtRecordLevel("%s0 Validation error. Upsert specify "), + UpsertTableRequestAtRecordLevel("%s0 Validation error. Table name should be present at each record level when upsert is present at record level."), + UpsertTableRequestAtRequestLevel("%S0 Validation error. Upsert should be present at each record level when table name is present at record level."), + TableNotSpecifiedInRequestAndRecordObject("%s0 Validation error. Table name is missing. Table name should be specified at one place either at the request level or record level. Please specify the table name at one place."), // Vault config InvalidVaultId("%s0 Initialization failed. Invalid vault ID. Specify a valid vault ID."), EmptyVaultId("%s0 Initialization failed. Invalid vault ID. Vault ID must not be empty."), diff --git a/common/src/main/java/com/skyflow/logs/ErrorLogs.java b/common/src/main/java/com/skyflow/logs/ErrorLogs.java index fa7bd5dd..dc242850 100644 --- a/common/src/main/java/com/skyflow/logs/ErrorLogs.java +++ b/common/src/main/java/com/skyflow/logs/ErrorLogs.java @@ -143,8 +143,11 @@ public enum ErrorLogs { UNEXPECTED_ERROR_DURING_BATCH_PROCESSING("Unexpected error occurred during batch processing. Error: %s1"), - PROCESSING_ERROR_RESPONSE("Processing error response."); - + PROCESSING_ERROR_RESPONSE("Processing error response."), + TABLE_SPECIFIED_AT_BOTH_PLACE("Invalid %s1 request. Table name cannot be specified at both the request and record levels. Please specify the table name at only one place."), + TABLE_NOT_SPECIFIED_AT_BOTH_PLACE("Invalid %s1 request. Table name is missing. Table name should be specified at one place either at the request level or record level. Please specify the table name at one place."), + UPSERT_TABLE_REQUEST_AT_RECORD_LEVEL("Invalid %s1 request. Table name should be present at each record level when upsert is present at record level."), + UPSERT_TABLE_REQUEST_AT_REQUEST_LEVEL("Invalid %s1 request. Upsert should be present at each record level when table name is present at record level."); private final String log; ErrorLogs(String log) { diff --git a/common/src/main/java/com/skyflow/vault/data/BaseInsertRequest.java b/common/src/main/java/com/skyflow/vault/data/BaseInsertRequest.java index b856492d..8c9efebf 100644 --- a/common/src/main/java/com/skyflow/vault/data/BaseInsertRequest.java +++ b/common/src/main/java/com/skyflow/vault/data/BaseInsertRequest.java @@ -14,15 +14,9 @@ public String getTable() { return this.builder.table; } - public ArrayList> getValues() { - return this.builder.values; - } - static class BaseInsertRequestBuilder { protected String table; - protected ArrayList> values; protected String upsert; - protected BaseInsertRequestBuilder() { } @@ -31,11 +25,6 @@ public BaseInsertRequestBuilder table(String table) { return this; } - public BaseInsertRequestBuilder values(ArrayList> values) { - this.values = values; - return this; - } - } } diff --git a/v2/src/main/java/com/skyflow/vault/data/InsertRequest.java b/v2/src/main/java/com/skyflow/vault/data/InsertRequest.java index 9758e98f..75c5832d 100644 --- a/v2/src/main/java/com/skyflow/vault/data/InsertRequest.java +++ b/v2/src/main/java/com/skyflow/vault/data/InsertRequest.java @@ -34,7 +34,10 @@ public String getUpsert() { public Boolean getReturnTokens() { return this.builder.returnTokens; } - + public ArrayList> getValues() { + return this.builder.values; + } + public ArrayList> getTokens() { return this.builder.tokens; } @@ -43,6 +46,7 @@ public static final class InsertRequestBuilder extends BaseInsertRequestBuilder private Boolean homogeneous; private Boolean continueOnError; private TokenMode tokenMode; + private ArrayList> values; private ArrayList> tokens; private Boolean returnTokens; @@ -60,9 +64,8 @@ public InsertRequestBuilder table(String table) { return this; } - @Override public InsertRequestBuilder values(ArrayList> values) { - super.values(values); + this.values = values; return this; } diff --git a/v3/src/main/java/com/skyflow/VaultClient.java b/v3/src/main/java/com/skyflow/VaultClient.java index 41d65e37..54730b02 100644 --- a/v3/src/main/java/com/skyflow/VaultClient.java +++ b/v3/src/main/java/com/skyflow/VaultClient.java @@ -20,13 +20,14 @@ import com.skyflow.utils.logger.LogUtil; import com.skyflow.utils.validations.Validations; import com.skyflow.vault.data.DetokenizeRequest; +import com.skyflow.vault.data.InsertRecord; + import io.github.cdimascio.dotenv.Dotenv; import io.github.cdimascio.dotenv.DotenvException; import okhttp3.OkHttpClient; import okhttp3.Request; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; @@ -132,17 +133,41 @@ protected void updateExecutorInHTTP() { apiClientBuilder.httpClient(httpClient); } - protected InsertRequest getBulkInsertRequestBody(com.skyflow.vault.data.InsertRequest request, VaultConfig config) throws SkyflowException { - List> values = request.getValues(); + protected InsertRequest getBulkInsertRequestBody(com.skyflow.vault.data.InsertRequest request, VaultConfig config) { + ArrayList values = request.getRecords(); List insertRecordDataList = new ArrayList<>(); - for (HashMap value : values) { - InsertRecordData data = InsertRecordData.builder().data(value).build(); - insertRecordDataList.add(data); + for (InsertRecord value : values) { + InsertRecordData.Builder data = InsertRecordData.builder(); + data.data(value.getData()); + if (value.getTable() != null && !value.getTable().isEmpty()){ + data.tableName(value.getTable()); + } + if (value.getUpsert() != null && !value.getUpsert().isEmpty()){ + if (value.getUpsertType() != null) { + EnumUpdateType updateType = null; + if (request.getUpsertType() == UpdateType.REPLACE) { + updateType = EnumUpdateType.REPLACE; + } else if (request.getUpsertType() == UpdateType.UPDATE) { + updateType = EnumUpdateType.UPDATE; + } + Upsert upsert = Upsert.builder().uniqueColumns(value.getUpsert()).updateType(updateType).build(); + data.upsert(upsert); + } else { + Upsert upsert = Upsert.builder().uniqueColumns(value.getUpsert()).build(); + data.upsert(upsert); + } + } + insertRecordDataList.add(data.build()); } + InsertRequest.Builder builder = InsertRequest.builder() .vaultId(config.getVaultId()) - .records(insertRecordDataList) - .tableName(request.getTable()); + .records(insertRecordDataList); + + if (request.getTable() != null && !request.getTable().isEmpty()){ + builder.tableName(request.getTable()); + } + if (request.getUpsert() != null && !request.getUpsert().isEmpty()) { if (request.getUpsertType() != null) { EnumUpdateType updateType = null; diff --git a/v3/src/main/java/com/skyflow/generated/rest/ApiClient.java b/v3/src/main/java/com/skyflow/generated/rest/ApiClient.java index 3bf1a6e7..e23953a4 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/ApiClient.java +++ b/v3/src/main/java/com/skyflow/generated/rest/ApiClient.java @@ -5,20 +5,27 @@ import com.skyflow.generated.rest.core.ClientOptions; import com.skyflow.generated.rest.core.Suppliers; +import com.skyflow.generated.rest.resources.records.RecordsClient; import com.skyflow.generated.rest.resources.recordservice.RecordserviceClient; - import java.util.function.Supplier; public class ApiClient { protected final ClientOptions clientOptions; + protected final Supplier recordsClient; + protected final Supplier recordserviceClient; public ApiClient(ClientOptions clientOptions) { this.clientOptions = clientOptions; + this.recordsClient = Suppliers.memoize(() -> new RecordsClient(clientOptions)); this.recordserviceClient = Suppliers.memoize(() -> new RecordserviceClient(clientOptions)); } + public RecordsClient records() { + return this.recordsClient.get(); + } + public RecordserviceClient recordservice() { return this.recordserviceClient.get(); } diff --git a/v3/src/main/java/com/skyflow/generated/rest/AsyncApiClient.java b/v3/src/main/java/com/skyflow/generated/rest/AsyncApiClient.java index 6edb11d9..6bebc2ab 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/AsyncApiClient.java +++ b/v3/src/main/java/com/skyflow/generated/rest/AsyncApiClient.java @@ -5,20 +5,27 @@ import com.skyflow.generated.rest.core.ClientOptions; import com.skyflow.generated.rest.core.Suppliers; +import com.skyflow.generated.rest.resources.records.AsyncRecordsClient; import com.skyflow.generated.rest.resources.recordservice.AsyncRecordserviceClient; - import java.util.function.Supplier; public class AsyncApiClient { protected final ClientOptions clientOptions; + protected final Supplier recordsClient; + protected final Supplier recordserviceClient; public AsyncApiClient(ClientOptions clientOptions) { this.clientOptions = clientOptions; + this.recordsClient = Suppliers.memoize(() -> new AsyncRecordsClient(clientOptions)); this.recordserviceClient = Suppliers.memoize(() -> new AsyncRecordserviceClient(clientOptions)); } + public AsyncRecordsClient records() { + return this.recordsClient.get(); + } + public AsyncRecordserviceClient recordservice() { return this.recordserviceClient.get(); } diff --git a/v3/src/main/java/com/skyflow/generated/rest/core/ApiClientApiException.java b/v3/src/main/java/com/skyflow/generated/rest/core/ApiClientApiException.java index be5247eb..a4487b1e 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/core/ApiClientApiException.java +++ b/v3/src/main/java/com/skyflow/generated/rest/core/ApiClientApiException.java @@ -3,12 +3,11 @@ */ package com.skyflow.generated.rest.core; -import okhttp3.Response; - import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import okhttp3.Response; /** * This exception type will be thrown for any non-2XX API responses. @@ -66,7 +65,7 @@ public Map> headers() { return this.headers; } - @Override + @java.lang.Override public String toString() { return "ApiClientApiException{" + "message: " + getMessage() + ", statusCode: " + statusCode + ", body: " + body + "}"; diff --git a/v3/src/main/java/com/skyflow/generated/rest/core/ApiClientHttpResponse.java b/v3/src/main/java/com/skyflow/generated/rest/core/ApiClientHttpResponse.java index c743352c..9c81f1f5 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/core/ApiClientHttpResponse.java +++ b/v3/src/main/java/com/skyflow/generated/rest/core/ApiClientHttpResponse.java @@ -3,12 +3,11 @@ */ package com.skyflow.generated.rest.core; -import okhttp3.Response; - import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import okhttp3.Response; public final class ApiClientHttpResponse { diff --git a/v3/src/main/java/com/skyflow/generated/rest/core/ClientOptions.java b/v3/src/main/java/com/skyflow/generated/rest/core/ClientOptions.java index 39235d01..0fb0f237 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/core/ClientOptions.java +++ b/v3/src/main/java/com/skyflow/generated/rest/core/ClientOptions.java @@ -3,13 +3,12 @@ */ package com.skyflow.generated.rest.core; -import okhttp3.OkHttpClient; - import java.util.HashMap; import java.util.Map; import java.util.Optional; import java.util.concurrent.TimeUnit; import java.util.function.Supplier; +import okhttp3.OkHttpClient; public final class ClientOptions { private final Environment environment; @@ -35,7 +34,7 @@ private ClientOptions( { put("X-Fern-Language", "JAVA"); put("X-Fern-SDK-Name", "com.skyflow.fern:api-sdk"); - put("X-Fern-SDK-Version", "0.0.275"); + put("X-Fern-SDK-Version", "0.0.352"); } }); this.headerSuppliers = headerSuppliers; diff --git a/v3/src/main/java/com/skyflow/generated/rest/core/DateTimeDeserializer.java b/v3/src/main/java/com/skyflow/generated/rest/core/DateTimeDeserializer.java index a0a6d7c4..6be10979 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/core/DateTimeDeserializer.java +++ b/v3/src/main/java/com/skyflow/generated/rest/core/DateTimeDeserializer.java @@ -8,7 +8,6 @@ import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; import com.fasterxml.jackson.databind.module.SimpleModule; - import java.io.IOException; import java.time.Instant; import java.time.LocalDateTime; diff --git a/v3/src/main/java/com/skyflow/generated/rest/core/FileStream.java b/v3/src/main/java/com/skyflow/generated/rest/core/FileStream.java index 2131b0a4..6b459431 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/core/FileStream.java +++ b/v3/src/main/java/com/skyflow/generated/rest/core/FileStream.java @@ -3,13 +3,12 @@ */ package com.skyflow.generated.rest.core; +import java.io.InputStream; +import java.util.Objects; import okhttp3.MediaType; import okhttp3.RequestBody; import org.jetbrains.annotations.Nullable; -import java.io.InputStream; -import java.util.Objects; - /** * Represents a file stream with associated metadata for file uploads. */ diff --git a/v3/src/main/java/com/skyflow/generated/rest/core/InputStreamRequestBody.java b/v3/src/main/java/com/skyflow/generated/rest/core/InputStreamRequestBody.java index 55c3c971..545f6088 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/core/InputStreamRequestBody.java +++ b/v3/src/main/java/com/skyflow/generated/rest/core/InputStreamRequestBody.java @@ -3,6 +3,9 @@ */ package com.skyflow.generated.rest.core; +import java.io.IOException; +import java.io.InputStream; +import java.util.Objects; import okhttp3.MediaType; import okhttp3.RequestBody; import okhttp3.internal.Util; @@ -11,10 +14,6 @@ import okio.Source; import org.jetbrains.annotations.Nullable; -import java.io.IOException; -import java.io.InputStream; -import java.util.Objects; - /** * A custom implementation of OkHttp's RequestBody that wraps an InputStream. * This class allows streaming of data from an InputStream directly to an HTTP request body, diff --git a/v3/src/main/java/com/skyflow/generated/rest/core/ObjectMappers.java b/v3/src/main/java/com/skyflow/generated/rest/core/ObjectMappers.java index acec32b4..3b7894e0 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/core/ObjectMappers.java +++ b/v3/src/main/java/com/skyflow/generated/rest/core/ObjectMappers.java @@ -10,7 +10,6 @@ import com.fasterxml.jackson.databind.json.JsonMapper; import com.fasterxml.jackson.datatype.jdk8.Jdk8Module; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; - import java.io.IOException; public final class ObjectMappers { diff --git a/v3/src/main/java/com/skyflow/generated/rest/core/QueryStringMapper.java b/v3/src/main/java/com/skyflow/generated/rest/core/QueryStringMapper.java index c0687736..e9e18fb9 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/core/QueryStringMapper.java +++ b/v3/src/main/java/com/skyflow/generated/rest/core/QueryStringMapper.java @@ -7,11 +7,14 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ArrayNode; import com.fasterxml.jackson.databind.node.ObjectNode; +import java.util.AbstractMap; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Map; import okhttp3.HttpUrl; import okhttp3.MultipartBody; -import java.util.*; - public class QueryStringMapper { private static final ObjectMapper MAPPER = ObjectMappers.JSON_MAPPER; diff --git a/v3/src/main/java/com/skyflow/generated/rest/core/ResponseBodyInputStream.java b/v3/src/main/java/com/skyflow/generated/rest/core/ResponseBodyInputStream.java index 1bb0b5dc..d8df7715 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/core/ResponseBodyInputStream.java +++ b/v3/src/main/java/com/skyflow/generated/rest/core/ResponseBodyInputStream.java @@ -3,10 +3,9 @@ */ package com.skyflow.generated.rest.core; -import okhttp3.Response; - import java.io.FilterInputStream; import java.io.IOException; +import okhttp3.Response; /** * A custom InputStream that wraps the InputStream from the OkHttp Response and ensures that the diff --git a/v3/src/main/java/com/skyflow/generated/rest/core/ResponseBodyReader.java b/v3/src/main/java/com/skyflow/generated/rest/core/ResponseBodyReader.java index e6c1a525..ed894407 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/core/ResponseBodyReader.java +++ b/v3/src/main/java/com/skyflow/generated/rest/core/ResponseBodyReader.java @@ -3,10 +3,9 @@ */ package com.skyflow.generated.rest.core; -import okhttp3.Response; - import java.io.FilterReader; import java.io.IOException; +import okhttp3.Response; /** * A custom Reader that wraps the Reader from the OkHttp Response and ensures that the diff --git a/v3/src/main/java/com/skyflow/generated/rest/core/RetryInterceptor.java b/v3/src/main/java/com/skyflow/generated/rest/core/RetryInterceptor.java index 7a28c3c9..eda7d265 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/core/RetryInterceptor.java +++ b/v3/src/main/java/com/skyflow/generated/rest/core/RetryInterceptor.java @@ -3,13 +3,12 @@ */ package com.skyflow.generated.rest.core; -import okhttp3.Interceptor; -import okhttp3.Response; - import java.io.IOException; import java.time.Duration; import java.util.Optional; import java.util.Random; +import okhttp3.Interceptor; +import okhttp3.Response; public class RetryInterceptor implements Interceptor { diff --git a/v3/src/main/java/com/skyflow/generated/rest/resources/records/AsyncRawRecordsClient.java b/v3/src/main/java/com/skyflow/generated/rest/resources/records/AsyncRawRecordsClient.java new file mode 100644 index 00000000..7506c9be --- /dev/null +++ b/v3/src/main/java/com/skyflow/generated/rest/resources/records/AsyncRawRecordsClient.java @@ -0,0 +1,109 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.skyflow.generated.rest.resources.records; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.skyflow.generated.rest.core.ApiClientApiException; +import com.skyflow.generated.rest.core.ApiClientException; +import com.skyflow.generated.rest.core.ApiClientHttpResponse; +import com.skyflow.generated.rest.core.ClientOptions; +import com.skyflow.generated.rest.core.MediaTypes; +import com.skyflow.generated.rest.core.ObjectMappers; +import com.skyflow.generated.rest.core.RequestOptions; +import com.skyflow.generated.rest.resources.records.requests.ExecuteQueryRequest; +import com.skyflow.generated.rest.types.ExecuteQueryResponse; +import java.io.IOException; +import java.util.concurrent.CompletableFuture; +import okhttp3.Call; +import okhttp3.Callback; +import okhttp3.Headers; +import okhttp3.HttpUrl; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; +import okhttp3.ResponseBody; +import org.jetbrains.annotations.NotNull; + +public class AsyncRawRecordsClient { + protected final ClientOptions clientOptions; + + public AsyncRawRecordsClient(ClientOptions clientOptions) { + this.clientOptions = clientOptions; + } + + /** + * Executes a query on the specified vault. + */ + public CompletableFuture> recordServiceExecuteQuery() { + return recordServiceExecuteQuery(ExecuteQueryRequest.builder().build()); + } + + /** + * Executes a query on the specified vault. + */ + public CompletableFuture> recordServiceExecuteQuery( + ExecuteQueryRequest request) { + return recordServiceExecuteQuery(request, null); + } + + /** + * Executes a query on the specified vault. + */ + public CompletableFuture> recordServiceExecuteQuery( + ExecuteQueryRequest request, RequestOptions requestOptions) { + HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + .newBuilder() + .addPathSegments("v2/query") + .build(); + RequestBody body; + try { + body = RequestBody.create( + ObjectMappers.JSON_MAPPER.writeValueAsBytes(request), MediaTypes.APPLICATION_JSON); + } catch (JsonProcessingException e) { + throw new ApiClientException("Failed to serialize request", e); + } + Request okhttpRequest = new Request.Builder() + .url(httpUrl) + .method("POST", body) + .headers(Headers.of(clientOptions.headers(requestOptions))) + .addHeader("Content-Type", "application/json") + .addHeader("Accept", "application/json") + .build(); + OkHttpClient client = clientOptions.httpClient(); + if (requestOptions != null && requestOptions.getTimeout().isPresent()) { + client = clientOptions.httpClientWithTimeout(requestOptions); + } + CompletableFuture> future = new CompletableFuture<>(); + client.newCall(okhttpRequest).enqueue(new Callback() { + @Override + public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException { + try (ResponseBody responseBody = response.body()) { + if (response.isSuccessful()) { + future.complete(new ApiClientHttpResponse<>( + ObjectMappers.JSON_MAPPER.readValue( + responseBody.string(), ExecuteQueryResponse.class), + response)); + return; + } + String responseBodyString = responseBody != null ? responseBody.string() : "{}"; + future.completeExceptionally(new ApiClientApiException( + "Error with status code " + response.code(), + response.code(), + ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class), + response)); + return; + } catch (IOException e) { + future.completeExceptionally(new ApiClientException("Network error executing HTTP request", e)); + } + } + + @Override + public void onFailure(@NotNull Call call, @NotNull IOException e) { + future.completeExceptionally(new ApiClientException("Network error executing HTTP request", e)); + } + }); + return future; + } +} diff --git a/v3/src/main/java/com/skyflow/generated/rest/resources/records/AsyncRecordsClient.java b/v3/src/main/java/com/skyflow/generated/rest/resources/records/AsyncRecordsClient.java new file mode 100644 index 00000000..d0d22507 --- /dev/null +++ b/v3/src/main/java/com/skyflow/generated/rest/resources/records/AsyncRecordsClient.java @@ -0,0 +1,50 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.skyflow.generated.rest.resources.records; + +import com.skyflow.generated.rest.core.ClientOptions; +import com.skyflow.generated.rest.core.RequestOptions; +import com.skyflow.generated.rest.resources.records.requests.ExecuteQueryRequest; +import com.skyflow.generated.rest.types.ExecuteQueryResponse; +import java.util.concurrent.CompletableFuture; + +public class AsyncRecordsClient { + protected final ClientOptions clientOptions; + + private final AsyncRawRecordsClient rawClient; + + public AsyncRecordsClient(ClientOptions clientOptions) { + this.clientOptions = clientOptions; + this.rawClient = new AsyncRawRecordsClient(clientOptions); + } + + /** + * Get responses with HTTP metadata like headers + */ + public AsyncRawRecordsClient withRawResponse() { + return this.rawClient; + } + + /** + * Executes a query on the specified vault. + */ + public CompletableFuture recordServiceExecuteQuery() { + return this.rawClient.recordServiceExecuteQuery().thenApply(response -> response.body()); + } + + /** + * Executes a query on the specified vault. + */ + public CompletableFuture recordServiceExecuteQuery(ExecuteQueryRequest request) { + return this.rawClient.recordServiceExecuteQuery(request).thenApply(response -> response.body()); + } + + /** + * Executes a query on the specified vault. + */ + public CompletableFuture recordServiceExecuteQuery( + ExecuteQueryRequest request, RequestOptions requestOptions) { + return this.rawClient.recordServiceExecuteQuery(request, requestOptions).thenApply(response -> response.body()); + } +} diff --git a/v3/src/main/java/com/skyflow/generated/rest/resources/records/RawRecordsClient.java b/v3/src/main/java/com/skyflow/generated/rest/resources/records/RawRecordsClient.java new file mode 100644 index 00000000..605ae73f --- /dev/null +++ b/v3/src/main/java/com/skyflow/generated/rest/resources/records/RawRecordsClient.java @@ -0,0 +1,90 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.skyflow.generated.rest.resources.records; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.skyflow.generated.rest.core.ApiClientApiException; +import com.skyflow.generated.rest.core.ApiClientException; +import com.skyflow.generated.rest.core.ApiClientHttpResponse; +import com.skyflow.generated.rest.core.ClientOptions; +import com.skyflow.generated.rest.core.MediaTypes; +import com.skyflow.generated.rest.core.ObjectMappers; +import com.skyflow.generated.rest.core.RequestOptions; +import com.skyflow.generated.rest.resources.records.requests.ExecuteQueryRequest; +import com.skyflow.generated.rest.types.ExecuteQueryResponse; +import java.io.IOException; +import okhttp3.Headers; +import okhttp3.HttpUrl; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; +import okhttp3.ResponseBody; + +public class RawRecordsClient { + protected final ClientOptions clientOptions; + + public RawRecordsClient(ClientOptions clientOptions) { + this.clientOptions = clientOptions; + } + + /** + * Executes a query on the specified vault. + */ + public ApiClientHttpResponse recordServiceExecuteQuery() { + return recordServiceExecuteQuery(ExecuteQueryRequest.builder().build()); + } + + /** + * Executes a query on the specified vault. + */ + public ApiClientHttpResponse recordServiceExecuteQuery(ExecuteQueryRequest request) { + return recordServiceExecuteQuery(request, null); + } + + /** + * Executes a query on the specified vault. + */ + public ApiClientHttpResponse recordServiceExecuteQuery( + ExecuteQueryRequest request, RequestOptions requestOptions) { + HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + .newBuilder() + .addPathSegments("v2/query") + .build(); + RequestBody body; + try { + body = RequestBody.create( + ObjectMappers.JSON_MAPPER.writeValueAsBytes(request), MediaTypes.APPLICATION_JSON); + } catch (JsonProcessingException e) { + throw new ApiClientException("Failed to serialize request", e); + } + Request okhttpRequest = new Request.Builder() + .url(httpUrl) + .method("POST", body) + .headers(Headers.of(clientOptions.headers(requestOptions))) + .addHeader("Content-Type", "application/json") + .addHeader("Accept", "application/json") + .build(); + OkHttpClient client = clientOptions.httpClient(); + if (requestOptions != null && requestOptions.getTimeout().isPresent()) { + client = clientOptions.httpClientWithTimeout(requestOptions); + } + try (Response response = client.newCall(okhttpRequest).execute()) { + ResponseBody responseBody = response.body(); + if (response.isSuccessful()) { + return new ApiClientHttpResponse<>( + ObjectMappers.JSON_MAPPER.readValue(responseBody.string(), ExecuteQueryResponse.class), + response); + } + String responseBodyString = responseBody != null ? responseBody.string() : "{}"; + throw new ApiClientApiException( + "Error with status code " + response.code(), + response.code(), + ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class), + response); + } catch (IOException e) { + throw new ApiClientException("Network error executing HTTP request", e); + } + } +} diff --git a/v3/src/main/java/com/skyflow/generated/rest/resources/records/RecordsClient.java b/v3/src/main/java/com/skyflow/generated/rest/resources/records/RecordsClient.java new file mode 100644 index 00000000..20c273b7 --- /dev/null +++ b/v3/src/main/java/com/skyflow/generated/rest/resources/records/RecordsClient.java @@ -0,0 +1,49 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.skyflow.generated.rest.resources.records; + +import com.skyflow.generated.rest.core.ClientOptions; +import com.skyflow.generated.rest.core.RequestOptions; +import com.skyflow.generated.rest.resources.records.requests.ExecuteQueryRequest; +import com.skyflow.generated.rest.types.ExecuteQueryResponse; + +public class RecordsClient { + protected final ClientOptions clientOptions; + + private final RawRecordsClient rawClient; + + public RecordsClient(ClientOptions clientOptions) { + this.clientOptions = clientOptions; + this.rawClient = new RawRecordsClient(clientOptions); + } + + /** + * Get responses with HTTP metadata like headers + */ + public RawRecordsClient withRawResponse() { + return this.rawClient; + } + + /** + * Executes a query on the specified vault. + */ + public ExecuteQueryResponse recordServiceExecuteQuery() { + return this.rawClient.recordServiceExecuteQuery().body(); + } + + /** + * Executes a query on the specified vault. + */ + public ExecuteQueryResponse recordServiceExecuteQuery(ExecuteQueryRequest request) { + return this.rawClient.recordServiceExecuteQuery(request).body(); + } + + /** + * Executes a query on the specified vault. + */ + public ExecuteQueryResponse recordServiceExecuteQuery( + ExecuteQueryRequest request, RequestOptions requestOptions) { + return this.rawClient.recordServiceExecuteQuery(request, requestOptions).body(); + } +} diff --git a/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/requests/ExecuteQueryRequest.java b/v3/src/main/java/com/skyflow/generated/rest/resources/records/requests/ExecuteQueryRequest.java similarity index 86% rename from v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/requests/ExecuteQueryRequest.java rename to v3/src/main/java/com/skyflow/generated/rest/resources/records/requests/ExecuteQueryRequest.java index 9f4a4914..855c2a56 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/requests/ExecuteQueryRequest.java +++ b/v3/src/main/java/com/skyflow/generated/rest/resources/records/requests/ExecuteQueryRequest.java @@ -1,12 +1,17 @@ /** * This file was auto-generated by Fern from our API Definition. */ -package com.skyflow.generated.rest.resources.recordservice.requests; - -import com.fasterxml.jackson.annotation.*; +package com.skyflow.generated.rest.resources.records.requests; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.skyflow.generated.rest.core.ObjectMappers; - import java.util.HashMap; import java.util.Map; import java.util.Objects; @@ -44,7 +49,7 @@ public Optional getQuery() { return query; } - @Override + @java.lang.Override public boolean equals(Object other) { if (this == other) return true; return other instanceof ExecuteQueryRequest && equalTo((ExecuteQueryRequest) other); @@ -59,12 +64,12 @@ private boolean equalTo(ExecuteQueryRequest other) { return vaultId.equals(other.vaultId) && query.equals(other.query); } - @Override + @java.lang.Override public int hashCode() { return Objects.hash(this.vaultId, this.query); } - @Override + @java.lang.Override public String toString() { return ObjectMappers.stringify(this); } diff --git a/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/AsyncRawRecordserviceClient.java b/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/AsyncRawRecordserviceClient.java index dcc988a3..bfa4666c 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/AsyncRawRecordserviceClient.java +++ b/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/AsyncRawRecordserviceClient.java @@ -4,14 +4,39 @@ package com.skyflow.generated.rest.resources.recordservice; import com.fasterxml.jackson.core.JsonProcessingException; -import com.skyflow.generated.rest.core.*; -import com.skyflow.generated.rest.resources.recordservice.requests.*; -import com.skyflow.generated.rest.types.*; -import okhttp3.*; -import org.jetbrains.annotations.NotNull; - +import com.skyflow.generated.rest.core.ApiClientApiException; +import com.skyflow.generated.rest.core.ApiClientException; +import com.skyflow.generated.rest.core.ApiClientHttpResponse; +import com.skyflow.generated.rest.core.ClientOptions; +import com.skyflow.generated.rest.core.MediaTypes; +import com.skyflow.generated.rest.core.ObjectMappers; +import com.skyflow.generated.rest.core.RequestOptions; +import com.skyflow.generated.rest.resources.recordservice.requests.DeleteRequest; +import com.skyflow.generated.rest.resources.recordservice.requests.DeleteTokenRequest; +import com.skyflow.generated.rest.resources.recordservice.requests.DetokenizeRequest; +import com.skyflow.generated.rest.resources.recordservice.requests.GetRequest; +import com.skyflow.generated.rest.resources.recordservice.requests.InsertRequest; +import com.skyflow.generated.rest.resources.recordservice.requests.TokenizeRequest; +import com.skyflow.generated.rest.resources.recordservice.requests.UpdateRequest; +import com.skyflow.generated.rest.types.DeleteResponse; +import com.skyflow.generated.rest.types.DeleteTokenResponse; +import com.skyflow.generated.rest.types.DetokenizeResponse; +import com.skyflow.generated.rest.types.GetResponse; +import com.skyflow.generated.rest.types.InsertResponse; +import com.skyflow.generated.rest.types.TokenizeResponse; +import com.skyflow.generated.rest.types.UpdateResponse; import java.io.IOException; import java.util.concurrent.CompletableFuture; +import okhttp3.Call; +import okhttp3.Callback; +import okhttp3.Headers; +import okhttp3.HttpUrl; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; +import okhttp3.ResponseBody; +import org.jetbrains.annotations.NotNull; public class AsyncRawRecordserviceClient { protected final ClientOptions clientOptions; @@ -20,78 +45,6 @@ public AsyncRawRecordserviceClient(ClientOptions clientOptions) { this.clientOptions = clientOptions; } - /** - * Executes a query on the specified vault. - */ - public CompletableFuture> executequery() { - return executequery(ExecuteQueryRequest.builder().build()); - } - - /** - * Executes a query on the specified vault. - */ - public CompletableFuture> executequery(ExecuteQueryRequest request) { - return executequery(request, null); - } - - /** - * Executes a query on the specified vault. - */ - public CompletableFuture> executequery( - ExecuteQueryRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) - .newBuilder() - .addPathSegments("v2/query") - .build(); - RequestBody body; - try { - body = RequestBody.create( - ObjectMappers.JSON_MAPPER.writeValueAsBytes(request), MediaTypes.APPLICATION_JSON); - } catch (JsonProcessingException e) { - throw new ApiClientException("Failed to serialize request", e); - } - Request okhttpRequest = new Request.Builder() - .url(httpUrl) - .method("POST", body) - .headers(Headers.of(clientOptions.headers(requestOptions))) - .addHeader("Content-Type", "application/json") - .addHeader("Accept", "application/json") - .build(); - OkHttpClient client = clientOptions.httpClient(); - if (requestOptions != null && requestOptions.getTimeout().isPresent()) { - client = clientOptions.httpClientWithTimeout(requestOptions); - } - CompletableFuture> future = new CompletableFuture<>(); - client.newCall(okhttpRequest).enqueue(new Callback() { - @Override - public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException { - try (ResponseBody responseBody = response.body()) { - if (response.isSuccessful()) { - future.complete(new ApiClientHttpResponse<>( - ObjectMappers.JSON_MAPPER.readValue(responseBody.string(), ExecuteQueryResponse.class), - response)); - return; - } - String responseBodyString = responseBody != null ? responseBody.string() : "{}"; - future.completeExceptionally(new ApiClientApiException( - "Error with status code " + response.code(), - response.code(), - ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class), - response)); - return; - } catch (IOException e) { - future.completeExceptionally(new ApiClientException("Network error executing HTTP request", e)); - } - } - - @Override - public void onFailure(@NotNull Call call, @NotNull IOException e) { - future.completeExceptionally(new ApiClientException("Network error executing HTTP request", e)); - } - }); - return future; - } - public CompletableFuture> delete() { return delete(DeleteRequest.builder().build()); } diff --git a/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/AsyncRecordserviceClient.java b/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/AsyncRecordserviceClient.java index 78746a94..d583d6d4 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/AsyncRecordserviceClient.java +++ b/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/AsyncRecordserviceClient.java @@ -5,9 +5,20 @@ import com.skyflow.generated.rest.core.ClientOptions; import com.skyflow.generated.rest.core.RequestOptions; -import com.skyflow.generated.rest.resources.recordservice.requests.*; -import com.skyflow.generated.rest.types.*; - +import com.skyflow.generated.rest.resources.recordservice.requests.DeleteRequest; +import com.skyflow.generated.rest.resources.recordservice.requests.DeleteTokenRequest; +import com.skyflow.generated.rest.resources.recordservice.requests.DetokenizeRequest; +import com.skyflow.generated.rest.resources.recordservice.requests.GetRequest; +import com.skyflow.generated.rest.resources.recordservice.requests.InsertRequest; +import com.skyflow.generated.rest.resources.recordservice.requests.TokenizeRequest; +import com.skyflow.generated.rest.resources.recordservice.requests.UpdateRequest; +import com.skyflow.generated.rest.types.DeleteResponse; +import com.skyflow.generated.rest.types.DeleteTokenResponse; +import com.skyflow.generated.rest.types.DetokenizeResponse; +import com.skyflow.generated.rest.types.GetResponse; +import com.skyflow.generated.rest.types.InsertResponse; +import com.skyflow.generated.rest.types.TokenizeResponse; +import com.skyflow.generated.rest.types.UpdateResponse; import java.util.concurrent.CompletableFuture; public class AsyncRecordserviceClient { @@ -27,28 +38,6 @@ public AsyncRawRecordserviceClient withRawResponse() { return this.rawClient; } - /** - * Executes a query on the specified vault. - */ - public CompletableFuture executequery() { - return this.rawClient.executequery().thenApply(response -> response.body()); - } - - /** - * Executes a query on the specified vault. - */ - public CompletableFuture executequery(ExecuteQueryRequest request) { - return this.rawClient.executequery(request).thenApply(response -> response.body()); - } - - /** - * Executes a query on the specified vault. - */ - public CompletableFuture executequery( - ExecuteQueryRequest request, RequestOptions requestOptions) { - return this.rawClient.executequery(request, requestOptions).thenApply(response -> response.body()); - } - public CompletableFuture delete() { return this.rawClient.delete().thenApply(response -> response.body()); } @@ -118,7 +107,8 @@ public CompletableFuture detokenize(DetokenizeRequest reques return this.rawClient.detokenize(request).thenApply(response -> response.body()); } - public CompletableFuture detokenize(DetokenizeRequest request, RequestOptions requestOptions) { + public CompletableFuture detokenize( + DetokenizeRequest request, RequestOptions requestOptions) { return this.rawClient.detokenize(request, requestOptions).thenApply(response -> response.body()); } diff --git a/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/RawRecordserviceClient.java b/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/RawRecordserviceClient.java index f4ddaa10..0ea6e50c 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/RawRecordserviceClient.java +++ b/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/RawRecordserviceClient.java @@ -4,12 +4,35 @@ package com.skyflow.generated.rest.resources.recordservice; import com.fasterxml.jackson.core.JsonProcessingException; -import com.skyflow.generated.rest.core.*; -import com.skyflow.generated.rest.resources.recordservice.requests.*; -import com.skyflow.generated.rest.types.*; -import okhttp3.*; - +import com.skyflow.generated.rest.core.ApiClientApiException; +import com.skyflow.generated.rest.core.ApiClientException; +import com.skyflow.generated.rest.core.ApiClientHttpResponse; +import com.skyflow.generated.rest.core.ClientOptions; +import com.skyflow.generated.rest.core.MediaTypes; +import com.skyflow.generated.rest.core.ObjectMappers; +import com.skyflow.generated.rest.core.RequestOptions; +import com.skyflow.generated.rest.resources.recordservice.requests.DeleteRequest; +import com.skyflow.generated.rest.resources.recordservice.requests.DeleteTokenRequest; +import com.skyflow.generated.rest.resources.recordservice.requests.DetokenizeRequest; +import com.skyflow.generated.rest.resources.recordservice.requests.GetRequest; +import com.skyflow.generated.rest.resources.recordservice.requests.InsertRequest; +import com.skyflow.generated.rest.resources.recordservice.requests.TokenizeRequest; +import com.skyflow.generated.rest.resources.recordservice.requests.UpdateRequest; +import com.skyflow.generated.rest.types.DeleteResponse; +import com.skyflow.generated.rest.types.DeleteTokenResponse; +import com.skyflow.generated.rest.types.DetokenizeResponse; +import com.skyflow.generated.rest.types.GetResponse; +import com.skyflow.generated.rest.types.InsertResponse; +import com.skyflow.generated.rest.types.TokenizeResponse; +import com.skyflow.generated.rest.types.UpdateResponse; import java.io.IOException; +import okhttp3.Headers; +import okhttp3.HttpUrl; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; +import okhttp3.ResponseBody; public class RawRecordserviceClient { protected final ClientOptions clientOptions; @@ -18,65 +41,6 @@ public RawRecordserviceClient(ClientOptions clientOptions) { this.clientOptions = clientOptions; } - /** - * Executes a query on the specified vault. - */ - public ApiClientHttpResponse executequery() { - return executequery(ExecuteQueryRequest.builder().build()); - } - - /** - * Executes a query on the specified vault. - */ - public ApiClientHttpResponse executequery(ExecuteQueryRequest request) { - return executequery(request, null); - } - - /** - * Executes a query on the specified vault. - */ - public ApiClientHttpResponse executequery( - ExecuteQueryRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) - .newBuilder() - .addPathSegments("v2/query") - .build(); - RequestBody body; - try { - body = RequestBody.create( - ObjectMappers.JSON_MAPPER.writeValueAsBytes(request), MediaTypes.APPLICATION_JSON); - } catch (JsonProcessingException e) { - throw new ApiClientException("Failed to serialize request", e); - } - Request okhttpRequest = new Request.Builder() - .url(httpUrl) - .method("POST", body) - .headers(Headers.of(clientOptions.headers(requestOptions))) - .addHeader("Content-Type", "application/json") - .addHeader("Accept", "application/json") - .build(); - OkHttpClient client = clientOptions.httpClient(); - if (requestOptions != null && requestOptions.getTimeout().isPresent()) { - client = clientOptions.httpClientWithTimeout(requestOptions); - } - try (Response response = client.newCall(okhttpRequest).execute()) { - ResponseBody responseBody = response.body(); - if (response.isSuccessful()) { - return new ApiClientHttpResponse<>( - ObjectMappers.JSON_MAPPER.readValue(responseBody.string(), ExecuteQueryResponse.class), - response); - } - String responseBodyString = responseBody != null ? responseBody.string() : "{}"; - throw new ApiClientApiException( - "Error with status code " + response.code(), - response.code(), - ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class), - response); - } catch (IOException e) { - throw new ApiClientException("Network error executing HTTP request", e); - } - } - public ApiClientHttpResponse delete() { return delete(DeleteRequest.builder().build()); } @@ -355,7 +319,8 @@ public ApiClientHttpResponse detokenize( ResponseBody responseBody = response.body(); if (response.isSuccessful()) { return new ApiClientHttpResponse<>( - ObjectMappers.JSON_MAPPER.readValue(responseBody.string(), DetokenizeResponse.class), response); + ObjectMappers.JSON_MAPPER.readValue(responseBody.string(), DetokenizeResponse.class), + response); } String responseBodyString = responseBody != null ? responseBody.string() : "{}"; throw new ApiClientApiException( @@ -376,7 +341,8 @@ public ApiClientHttpResponse tokenize(TokenizeRequest request) return tokenize(request, null); } - public ApiClientHttpResponse tokenize(TokenizeRequest request, RequestOptions requestOptions) { + public ApiClientHttpResponse tokenize( + TokenizeRequest request, RequestOptions requestOptions) { HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/tokens/get") diff --git a/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/RecordserviceClient.java b/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/RecordserviceClient.java index 53e22f6e..e6ff7997 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/RecordserviceClient.java +++ b/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/RecordserviceClient.java @@ -5,8 +5,20 @@ import com.skyflow.generated.rest.core.ClientOptions; import com.skyflow.generated.rest.core.RequestOptions; -import com.skyflow.generated.rest.resources.recordservice.requests.*; -import com.skyflow.generated.rest.types.*; +import com.skyflow.generated.rest.resources.recordservice.requests.DeleteRequest; +import com.skyflow.generated.rest.resources.recordservice.requests.DeleteTokenRequest; +import com.skyflow.generated.rest.resources.recordservice.requests.DetokenizeRequest; +import com.skyflow.generated.rest.resources.recordservice.requests.GetRequest; +import com.skyflow.generated.rest.resources.recordservice.requests.InsertRequest; +import com.skyflow.generated.rest.resources.recordservice.requests.TokenizeRequest; +import com.skyflow.generated.rest.resources.recordservice.requests.UpdateRequest; +import com.skyflow.generated.rest.types.DeleteResponse; +import com.skyflow.generated.rest.types.DeleteTokenResponse; +import com.skyflow.generated.rest.types.DetokenizeResponse; +import com.skyflow.generated.rest.types.GetResponse; +import com.skyflow.generated.rest.types.InsertResponse; +import com.skyflow.generated.rest.types.TokenizeResponse; +import com.skyflow.generated.rest.types.UpdateResponse; public class RecordserviceClient { protected final ClientOptions clientOptions; @@ -25,27 +37,6 @@ public RawRecordserviceClient withRawResponse() { return this.rawClient; } - /** - * Executes a query on the specified vault. - */ - public ExecuteQueryResponse executequery() { - return this.rawClient.executequery().body(); - } - - /** - * Executes a query on the specified vault. - */ - public ExecuteQueryResponse executequery(ExecuteQueryRequest request) { - return this.rawClient.executequery(request).body(); - } - - /** - * Executes a query on the specified vault. - */ - public ExecuteQueryResponse executequery(ExecuteQueryRequest request, RequestOptions requestOptions) { - return this.rawClient.executequery(request, requestOptions).body(); - } - public DeleteResponse delete() { return this.rawClient.delete().body(); } diff --git a/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/requests/DeleteRequest.java b/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/requests/DeleteRequest.java index 073da6cb..6a52143e 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/requests/DeleteRequest.java +++ b/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/requests/DeleteRequest.java @@ -3,11 +3,20 @@ */ package com.skyflow.generated.rest.resources.recordservice.requests; -import com.fasterxml.jackson.annotation.*; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.skyflow.generated.rest.core.ObjectMappers; - -import java.util.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; @JsonInclude(JsonInclude.Include.NON_ABSENT) @JsonDeserialize(builder = DeleteRequest.Builder.class) @@ -55,7 +64,7 @@ public Optional> getSkyflowIDs() { return skyflowIDs; } - @Override + @java.lang.Override public boolean equals(Object other) { if (this == other) return true; return other instanceof DeleteRequest && equalTo((DeleteRequest) other); @@ -72,12 +81,12 @@ private boolean equalTo(DeleteRequest other) { && skyflowIDs.equals(other.skyflowIDs); } - @Override + @java.lang.Override public int hashCode() { return Objects.hash(this.vaultId, this.tableName, this.skyflowIDs); } - @Override + @java.lang.Override public String toString() { return ObjectMappers.stringify(this); } diff --git a/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/requests/DeleteTokenRequest.java b/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/requests/DeleteTokenRequest.java index 4d7039a8..d234eaad 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/requests/DeleteTokenRequest.java +++ b/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/requests/DeleteTokenRequest.java @@ -3,11 +3,20 @@ */ package com.skyflow.generated.rest.resources.recordservice.requests; -import com.fasterxml.jackson.annotation.*; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.skyflow.generated.rest.core.ObjectMappers; - -import java.util.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; @JsonInclude(JsonInclude.Include.NON_ABSENT) @JsonDeserialize(builder = DeleteTokenRequest.Builder.class) @@ -41,7 +50,7 @@ public Optional> getTokens() { return tokens; } - @Override + @java.lang.Override public boolean equals(Object other) { if (this == other) return true; return other instanceof DeleteTokenRequest && equalTo((DeleteTokenRequest) other); @@ -56,12 +65,12 @@ private boolean equalTo(DeleteTokenRequest other) { return vaultId.equals(other.vaultId) && tokens.equals(other.tokens); } - @Override + @java.lang.Override public int hashCode() { return Objects.hash(this.vaultId, this.tokens); } - @Override + @java.lang.Override public String toString() { return ObjectMappers.stringify(this); } diff --git a/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/requests/DetokenizeRequest.java b/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/requests/DetokenizeRequest.java index ae1c837c..7e806056 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/requests/DetokenizeRequest.java +++ b/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/requests/DetokenizeRequest.java @@ -3,12 +3,21 @@ */ package com.skyflow.generated.rest.resources.recordservice.requests; -import com.fasterxml.jackson.annotation.*; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.skyflow.generated.rest.core.ObjectMappers; import com.skyflow.generated.rest.types.TokenGroupRedactions; - -import java.util.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; @JsonInclude(JsonInclude.Include.NON_ABSENT) @JsonDeserialize(builder = DetokenizeRequest.Builder.class) @@ -56,7 +65,7 @@ public Optional> getTokenGroupRedactions() { return tokenGroupRedactions; } - @Override + @java.lang.Override public boolean equals(Object other) { if (this == other) return true; return other instanceof DetokenizeRequest && equalTo((DetokenizeRequest) other); @@ -73,12 +82,12 @@ private boolean equalTo(DetokenizeRequest other) { && tokenGroupRedactions.equals(other.tokenGroupRedactions); } - @Override + @java.lang.Override public int hashCode() { return Objects.hash(this.vaultId, this.tokens, this.tokenGroupRedactions); } - @Override + @java.lang.Override public String toString() { return ObjectMappers.stringify(this); } diff --git a/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/requests/GetRequest.java b/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/requests/GetRequest.java index d9367799..79d49ed2 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/requests/GetRequest.java +++ b/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/requests/GetRequest.java @@ -3,12 +3,23 @@ */ package com.skyflow.generated.rest.resources.recordservice.requests; -import com.fasterxml.jackson.annotation.*; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.skyflow.generated.rest.core.ObjectMappers; import com.skyflow.generated.rest.types.ColumnRedactions; - -import java.util.*; +import com.skyflow.generated.rest.types.GetRequestData; +import com.skyflow.generated.rest.types.UniqueValue; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; @JsonInclude(JsonInclude.Include.NON_ABSENT) @JsonDeserialize(builder = GetRequest.Builder.class) @@ -27,6 +38,10 @@ public final class GetRequest { private final Optional offset; + private final Optional> uniqueValues; + + private final Optional> records; + private final Map additionalProperties; private GetRequest( @@ -37,6 +52,8 @@ private GetRequest( Optional> columns, Optional limit, Optional offset, + Optional> uniqueValues, + Optional> records, Map additionalProperties) { this.vaultId = vaultId; this.tableName = tableName; @@ -45,6 +62,8 @@ private GetRequest( this.columns = columns; this.limit = limit; this.offset = offset; + this.uniqueValues = uniqueValues; + this.records = records; this.additionalProperties = additionalProperties; } @@ -104,7 +123,23 @@ public Optional getOffset() { return offset; } - @Override + /** + * @return List of unique constraint values to query records by data + */ + @JsonProperty("uniqueValues") + public Optional> getUniqueValues() { + return uniqueValues; + } + + /** + * @return List of records to be fetched. This field contains tableName and skyflowIDs belonging to the table. + */ + @JsonProperty("records") + public Optional> getRecords() { + return records; + } + + @java.lang.Override public boolean equals(Object other) { if (this == other) return true; return other instanceof GetRequest && equalTo((GetRequest) other); @@ -122,10 +157,12 @@ private boolean equalTo(GetRequest other) { && columnRedactions.equals(other.columnRedactions) && columns.equals(other.columns) && limit.equals(other.limit) - && offset.equals(other.offset); + && offset.equals(other.offset) + && uniqueValues.equals(other.uniqueValues) + && records.equals(other.records); } - @Override + @java.lang.Override public int hashCode() { return Objects.hash( this.vaultId, @@ -134,10 +171,12 @@ public int hashCode() { this.columnRedactions, this.columns, this.limit, - this.offset); + this.offset, + this.uniqueValues, + this.records); } - @Override + @java.lang.Override public String toString() { return ObjectMappers.stringify(this); } @@ -162,6 +201,10 @@ public static final class Builder { private Optional offset = Optional.empty(); + private Optional> uniqueValues = Optional.empty(); + + private Optional> records = Optional.empty(); + @JsonAnySetter private Map additionalProperties = new HashMap<>(); @@ -175,6 +218,8 @@ public Builder from(GetRequest other) { columns(other.getColumns()); limit(other.getLimit()); offset(other.getOffset()); + uniqueValues(other.getUniqueValues()); + records(other.getRecords()); return this; } @@ -276,9 +321,46 @@ public Builder offset(Integer offset) { return this; } + /** + *

List of unique constraint values to query records by data

+ */ + @JsonSetter(value = "uniqueValues", nulls = Nulls.SKIP) + public Builder uniqueValues(Optional> uniqueValues) { + this.uniqueValues = uniqueValues; + return this; + } + + public Builder uniqueValues(List uniqueValues) { + this.uniqueValues = Optional.ofNullable(uniqueValues); + return this; + } + + /** + *

List of records to be fetched. This field contains tableName and skyflowIDs belonging to the table.

+ */ + @JsonSetter(value = "records", nulls = Nulls.SKIP) + public Builder records(Optional> records) { + this.records = records; + return this; + } + + public Builder records(List records) { + this.records = Optional.ofNullable(records); + return this; + } + public GetRequest build() { return new GetRequest( - vaultId, tableName, skyflowIDs, columnRedactions, columns, limit, offset, additionalProperties); + vaultId, + tableName, + skyflowIDs, + columnRedactions, + columns, + limit, + offset, + uniqueValues, + records, + additionalProperties); } } } diff --git a/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/requests/InsertRequest.java b/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/requests/InsertRequest.java index 1ebb5dfb..0c1b2248 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/requests/InsertRequest.java +++ b/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/requests/InsertRequest.java @@ -3,13 +3,22 @@ */ package com.skyflow.generated.rest.resources.recordservice.requests; -import com.fasterxml.jackson.annotation.*; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.skyflow.generated.rest.core.ObjectMappers; import com.skyflow.generated.rest.types.InsertRecordData; import com.skyflow.generated.rest.types.Upsert; - -import java.util.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; @JsonInclude(JsonInclude.Include.NON_ABSENT) @JsonDeserialize(builder = InsertRequest.Builder.class) @@ -66,7 +75,7 @@ public Optional getUpsert() { return upsert; } - @Override + @java.lang.Override public boolean equals(Object other) { if (this == other) return true; return other instanceof InsertRequest && equalTo((InsertRequest) other); @@ -84,12 +93,12 @@ private boolean equalTo(InsertRequest other) { && upsert.equals(other.upsert); } - @Override + @java.lang.Override public int hashCode() { return Objects.hash(this.vaultId, this.tableName, this.records, this.upsert); } - @Override + @java.lang.Override public String toString() { return ObjectMappers.stringify(this); } diff --git a/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/requests/TokenizeRequest.java b/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/requests/TokenizeRequest.java index e1056b7e..d0f32e5b 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/requests/TokenizeRequest.java +++ b/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/requests/TokenizeRequest.java @@ -3,12 +3,21 @@ */ package com.skyflow.generated.rest.resources.recordservice.requests; -import com.fasterxml.jackson.annotation.*; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.skyflow.generated.rest.core.ObjectMappers; import com.skyflow.generated.rest.types.TokenizeRequestObject; - -import java.util.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; @JsonInclude(JsonInclude.Include.NON_ABSENT) @JsonDeserialize(builder = TokenizeRequest.Builder.class) @@ -44,7 +53,7 @@ public Optional> getData() { return data; } - @Override + @java.lang.Override public boolean equals(Object other) { if (this == other) return true; return other instanceof TokenizeRequest && equalTo((TokenizeRequest) other); @@ -59,12 +68,12 @@ private boolean equalTo(TokenizeRequest other) { return vaultId.equals(other.vaultId) && data.equals(other.data); } - @Override + @java.lang.Override public int hashCode() { return Objects.hash(this.vaultId, this.data); } - @Override + @java.lang.Override public String toString() { return ObjectMappers.stringify(this); } diff --git a/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/requests/UpdateRequest.java b/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/requests/UpdateRequest.java index aa859087..9473a492 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/requests/UpdateRequest.java +++ b/v3/src/main/java/com/skyflow/generated/rest/resources/recordservice/requests/UpdateRequest.java @@ -3,13 +3,22 @@ */ package com.skyflow.generated.rest.resources.recordservice.requests; -import com.fasterxml.jackson.annotation.*; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.skyflow.generated.rest.core.ObjectMappers; import com.skyflow.generated.rest.types.EnumUpdateType; import com.skyflow.generated.rest.types.UpdateRecordData; - -import java.util.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; @JsonInclude(JsonInclude.Include.NON_ABSENT) @JsonDeserialize(builder = UpdateRequest.Builder.class) @@ -66,7 +75,7 @@ public Optional getUpdateType() { return updateType; } - @Override + @java.lang.Override public boolean equals(Object other) { if (this == other) return true; return other instanceof UpdateRequest && equalTo((UpdateRequest) other); @@ -84,12 +93,12 @@ private boolean equalTo(UpdateRequest other) { && updateType.equals(other.updateType); } - @Override + @java.lang.Override public int hashCode() { return Objects.hash(this.vaultId, this.tableName, this.records, this.updateType); } - @Override + @java.lang.Override public String toString() { return ObjectMappers.stringify(this); } diff --git a/v3/src/main/java/com/skyflow/generated/rest/types/ColumnRedactions.java b/v3/src/main/java/com/skyflow/generated/rest/types/ColumnRedactions.java index bd0c6915..6e211ab1 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/types/ColumnRedactions.java +++ b/v3/src/main/java/com/skyflow/generated/rest/types/ColumnRedactions.java @@ -3,10 +3,15 @@ */ package com.skyflow.generated.rest.types; -import com.fasterxml.jackson.annotation.*; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.skyflow.generated.rest.core.ObjectMappers; - import java.util.HashMap; import java.util.Map; import java.util.Objects; @@ -44,7 +49,7 @@ public Optional getRedaction() { return redaction; } - @Override + @java.lang.Override public boolean equals(Object other) { if (this == other) return true; return other instanceof ColumnRedactions && equalTo((ColumnRedactions) other); @@ -59,12 +64,12 @@ private boolean equalTo(ColumnRedactions other) { return columnName.equals(other.columnName) && redaction.equals(other.redaction); } - @Override + @java.lang.Override public int hashCode() { return Objects.hash(this.columnName, this.redaction); } - @Override + @java.lang.Override public String toString() { return ObjectMappers.stringify(this); } diff --git a/v3/src/main/java/com/skyflow/generated/rest/types/DeleteResponse.java b/v3/src/main/java/com/skyflow/generated/rest/types/DeleteResponse.java index d3d825f0..2453f7d2 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/types/DeleteResponse.java +++ b/v3/src/main/java/com/skyflow/generated/rest/types/DeleteResponse.java @@ -3,11 +3,20 @@ */ package com.skyflow.generated.rest.types; -import com.fasterxml.jackson.annotation.*; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.skyflow.generated.rest.core.ObjectMappers; - -import java.util.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; @JsonInclude(JsonInclude.Include.NON_ABSENT) @JsonDeserialize(builder = DeleteResponse.Builder.class) @@ -29,7 +38,7 @@ public Optional> getRecords() { return records; } - @Override + @java.lang.Override public boolean equals(Object other) { if (this == other) return true; return other instanceof DeleteResponse && equalTo((DeleteResponse) other); @@ -44,12 +53,12 @@ private boolean equalTo(DeleteResponse other) { return records.equals(other.records); } - @Override + @java.lang.Override public int hashCode() { return Objects.hash(this.records); } - @Override + @java.lang.Override public String toString() { return ObjectMappers.stringify(this); } diff --git a/v3/src/main/java/com/skyflow/generated/rest/types/DeleteResponseObject.java b/v3/src/main/java/com/skyflow/generated/rest/types/DeleteResponseObject.java index 31d34920..bd7f38d7 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/types/DeleteResponseObject.java +++ b/v3/src/main/java/com/skyflow/generated/rest/types/DeleteResponseObject.java @@ -3,10 +3,15 @@ */ package com.skyflow.generated.rest.types; -import com.fasterxml.jackson.annotation.*; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.skyflow.generated.rest.core.ObjectMappers; - import java.util.HashMap; import java.util.Map; import java.util.Objects; @@ -58,7 +63,7 @@ public Optional getHttpCode() { return httpCode; } - @Override + @java.lang.Override public boolean equals(Object other) { if (this == other) return true; return other instanceof DeleteResponseObject && equalTo((DeleteResponseObject) other); @@ -73,12 +78,12 @@ private boolean equalTo(DeleteResponseObject other) { return skyflowId.equals(other.skyflowId) && error.equals(other.error) && httpCode.equals(other.httpCode); } - @Override + @java.lang.Override public int hashCode() { return Objects.hash(this.skyflowId, this.error, this.httpCode); } - @Override + @java.lang.Override public String toString() { return ObjectMappers.stringify(this); } diff --git a/v3/src/main/java/com/skyflow/generated/rest/types/DeleteTokenResponse.java b/v3/src/main/java/com/skyflow/generated/rest/types/DeleteTokenResponse.java index 728c1877..85d991e7 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/types/DeleteTokenResponse.java +++ b/v3/src/main/java/com/skyflow/generated/rest/types/DeleteTokenResponse.java @@ -3,11 +3,20 @@ */ package com.skyflow.generated.rest.types; -import com.fasterxml.jackson.annotation.*; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.skyflow.generated.rest.core.ObjectMappers; - -import java.util.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; @JsonInclude(JsonInclude.Include.NON_ABSENT) @JsonDeserialize(builder = DeleteTokenResponse.Builder.class) @@ -30,7 +39,7 @@ public Optional> getTokens() { return tokens; } - @Override + @java.lang.Override public boolean equals(Object other) { if (this == other) return true; return other instanceof DeleteTokenResponse && equalTo((DeleteTokenResponse) other); @@ -45,12 +54,12 @@ private boolean equalTo(DeleteTokenResponse other) { return tokens.equals(other.tokens); } - @Override + @java.lang.Override public int hashCode() { return Objects.hash(this.tokens); } - @Override + @java.lang.Override public String toString() { return ObjectMappers.stringify(this); } diff --git a/v3/src/main/java/com/skyflow/generated/rest/types/DeleteTokenResponseObject.java b/v3/src/main/java/com/skyflow/generated/rest/types/DeleteTokenResponseObject.java index 98e3620f..bdbaf489 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/types/DeleteTokenResponseObject.java +++ b/v3/src/main/java/com/skyflow/generated/rest/types/DeleteTokenResponseObject.java @@ -3,10 +3,15 @@ */ package com.skyflow.generated.rest.types; -import com.fasterxml.jackson.annotation.*; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.skyflow.generated.rest.core.ObjectMappers; - import java.util.HashMap; import java.util.Map; import java.util.Objects; @@ -58,7 +63,7 @@ public Optional getHttpCode() { return httpCode; } - @Override + @java.lang.Override public boolean equals(Object other) { if (this == other) return true; return other instanceof DeleteTokenResponseObject && equalTo((DeleteTokenResponseObject) other); @@ -73,12 +78,12 @@ private boolean equalTo(DeleteTokenResponseObject other) { return value.equals(other.value) && error.equals(other.error) && httpCode.equals(other.httpCode); } - @Override + @java.lang.Override public int hashCode() { return Objects.hash(this.value, this.error, this.httpCode); } - @Override + @java.lang.Override public String toString() { return ObjectMappers.stringify(this); } diff --git a/v3/src/main/java/com/skyflow/generated/rest/types/DetokenizeResponse.java b/v3/src/main/java/com/skyflow/generated/rest/types/DetokenizeResponse.java index 7e3fa23a..612da851 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/types/DetokenizeResponse.java +++ b/v3/src/main/java/com/skyflow/generated/rest/types/DetokenizeResponse.java @@ -3,11 +3,20 @@ */ package com.skyflow.generated.rest.types; -import com.fasterxml.jackson.annotation.*; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.skyflow.generated.rest.core.ObjectMappers; - -import java.util.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; @JsonInclude(JsonInclude.Include.NON_ABSENT) @JsonDeserialize(builder = DetokenizeResponse.Builder.class) @@ -30,7 +39,7 @@ public Optional> getResponse() { return response; } - @Override + @java.lang.Override public boolean equals(Object other) { if (this == other) return true; return other instanceof DetokenizeResponse && equalTo((DetokenizeResponse) other); @@ -45,12 +54,12 @@ private boolean equalTo(DetokenizeResponse other) { return response.equals(other.response); } - @Override + @java.lang.Override public int hashCode() { return Objects.hash(this.response); } - @Override + @java.lang.Override public String toString() { return ObjectMappers.stringify(this); } diff --git a/v3/src/main/java/com/skyflow/generated/rest/types/DetokenizeResponseObject.java b/v3/src/main/java/com/skyflow/generated/rest/types/DetokenizeResponseObject.java index ed7ed16d..4cdefb63 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/types/DetokenizeResponseObject.java +++ b/v3/src/main/java/com/skyflow/generated/rest/types/DetokenizeResponseObject.java @@ -3,10 +3,15 @@ */ package com.skyflow.generated.rest.types; -import com.fasterxml.jackson.annotation.*; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.skyflow.generated.rest.core.ObjectMappers; - import java.util.HashMap; import java.util.Map; import java.util.Objects; @@ -91,7 +96,7 @@ public Optional> getMetadata() { return metadata; } - @Override + @java.lang.Override public boolean equals(Object other) { if (this == other) return true; return other instanceof DetokenizeResponseObject && equalTo((DetokenizeResponseObject) other); @@ -111,12 +116,12 @@ private boolean equalTo(DetokenizeResponseObject other) { && metadata.equals(other.metadata); } - @Override + @java.lang.Override public int hashCode() { return Objects.hash(this.token, this.value, this.tokenGroupName, this.error, this.httpCode, this.metadata); } - @Override + @java.lang.Override public String toString() { return ObjectMappers.stringify(this); } diff --git a/v3/src/main/java/com/skyflow/generated/rest/types/EnumDataType.java b/v3/src/main/java/com/skyflow/generated/rest/types/EnumDataType.java index eda51d21..c3e45088 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/types/EnumDataType.java +++ b/v3/src/main/java/com/skyflow/generated/rest/types/EnumDataType.java @@ -23,7 +23,7 @@ public enum EnumDataType { } @JsonValue - @Override + @java.lang.Override public String toString() { return this.value; } diff --git a/v3/src/main/java/com/skyflow/generated/rest/types/EnumUpdateType.java b/v3/src/main/java/com/skyflow/generated/rest/types/EnumUpdateType.java index a435ac27..cb0d94e0 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/types/EnumUpdateType.java +++ b/v3/src/main/java/com/skyflow/generated/rest/types/EnumUpdateType.java @@ -17,7 +17,7 @@ public enum EnumUpdateType { } @JsonValue - @Override + @java.lang.Override public String toString() { return this.value; } diff --git a/v3/src/main/java/com/skyflow/generated/rest/types/ExecuteQueryRecordResponse.java b/v3/src/main/java/com/skyflow/generated/rest/types/ExecuteQueryRecordResponse.java index 5a670a73..54c87448 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/types/ExecuteQueryRecordResponse.java +++ b/v3/src/main/java/com/skyflow/generated/rest/types/ExecuteQueryRecordResponse.java @@ -3,10 +3,15 @@ */ package com.skyflow.generated.rest.types; -import com.fasterxml.jackson.annotation.*; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.skyflow.generated.rest.core.ObjectMappers; - import java.util.HashMap; import java.util.Map; import java.util.Objects; @@ -32,7 +37,7 @@ public Optional> getData() { return data; } - @Override + @java.lang.Override public boolean equals(Object other) { if (this == other) return true; return other instanceof ExecuteQueryRecordResponse && equalTo((ExecuteQueryRecordResponse) other); @@ -47,12 +52,12 @@ private boolean equalTo(ExecuteQueryRecordResponse other) { return data.equals(other.data); } - @Override + @java.lang.Override public int hashCode() { return Objects.hash(this.data); } - @Override + @java.lang.Override public String toString() { return ObjectMappers.stringify(this); } diff --git a/v3/src/main/java/com/skyflow/generated/rest/types/ExecuteQueryResponse.java b/v3/src/main/java/com/skyflow/generated/rest/types/ExecuteQueryResponse.java index e9eb635a..df9c4776 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/types/ExecuteQueryResponse.java +++ b/v3/src/main/java/com/skyflow/generated/rest/types/ExecuteQueryResponse.java @@ -3,22 +3,36 @@ */ package com.skyflow.generated.rest.types; -import com.fasterxml.jackson.annotation.*; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.skyflow.generated.rest.core.ObjectMappers; - -import java.util.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; @JsonInclude(JsonInclude.Include.NON_ABSENT) @JsonDeserialize(builder = ExecuteQueryResponse.Builder.class) public final class ExecuteQueryResponse { private final Optional> records; + private final Optional metadata; + private final Map additionalProperties; private ExecuteQueryResponse( - Optional> records, Map additionalProperties) { + Optional> records, + Optional metadata, + Map additionalProperties) { this.records = records; + this.metadata = metadata; this.additionalProperties = additionalProperties; } @@ -30,7 +44,12 @@ public Optional> getRecords() { return records; } - @Override + @JsonProperty("metadata") + public Optional getMetadata() { + return metadata; + } + + @java.lang.Override public boolean equals(Object other) { if (this == other) return true; return other instanceof ExecuteQueryResponse && equalTo((ExecuteQueryResponse) other); @@ -42,15 +61,15 @@ public Map getAdditionalProperties() { } private boolean equalTo(ExecuteQueryResponse other) { - return records.equals(other.records); + return records.equals(other.records) && metadata.equals(other.metadata); } - @Override + @java.lang.Override public int hashCode() { - return Objects.hash(this.records); + return Objects.hash(this.records, this.metadata); } - @Override + @java.lang.Override public String toString() { return ObjectMappers.stringify(this); } @@ -63,6 +82,8 @@ public static Builder builder() { public static final class Builder { private Optional> records = Optional.empty(); + private Optional metadata = Optional.empty(); + @JsonAnySetter private Map additionalProperties = new HashMap<>(); @@ -70,6 +91,7 @@ private Builder() {} public Builder from(ExecuteQueryResponse other) { records(other.getRecords()); + metadata(other.getMetadata()); return this; } @@ -87,8 +109,19 @@ public Builder records(List records) { return this; } + @JsonSetter(value = "metadata", nulls = Nulls.SKIP) + public Builder metadata(Optional metadata) { + this.metadata = metadata; + return this; + } + + public Builder metadata(ExecuteQueryResponseMetadata metadata) { + this.metadata = Optional.ofNullable(metadata); + return this; + } + public ExecuteQueryResponse build() { - return new ExecuteQueryResponse(records, additionalProperties); + return new ExecuteQueryResponse(records, metadata, additionalProperties); } } } diff --git a/v3/src/main/java/com/skyflow/generated/rest/types/ExecuteQueryResponseMetadata.java b/v3/src/main/java/com/skyflow/generated/rest/types/ExecuteQueryResponseMetadata.java new file mode 100644 index 00000000..57150649 --- /dev/null +++ b/v3/src/main/java/com/skyflow/generated/rest/types/ExecuteQueryResponseMetadata.java @@ -0,0 +1,102 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.skyflow.generated.rest.types; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.skyflow.generated.rest.core.ObjectMappers; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; + +@JsonInclude(JsonInclude.Include.NON_ABSENT) +@JsonDeserialize(builder = ExecuteQueryResponseMetadata.Builder.class) +public final class ExecuteQueryResponseMetadata { + private final Optional> columns; + + private final Map additionalProperties; + + private ExecuteQueryResponseMetadata(Optional> columns, Map additionalProperties) { + this.columns = columns; + this.additionalProperties = additionalProperties; + } + + /** + * @return Return columns for the query + */ + @JsonProperty("columns") + public Optional> getColumns() { + return columns; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof ExecuteQueryResponseMetadata && equalTo((ExecuteQueryResponseMetadata) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(ExecuteQueryResponseMetadata other) { + return columns.equals(other.columns); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.columns); + } + + @java.lang.Override + public String toString() { + return ObjectMappers.stringify(this); + } + + public static Builder builder() { + return new Builder(); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static final class Builder { + private Optional> columns = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(ExecuteQueryResponseMetadata other) { + columns(other.getColumns()); + return this; + } + + /** + *

Return columns for the query

+ */ + @JsonSetter(value = "columns", nulls = Nulls.SKIP) + public Builder columns(Optional> columns) { + this.columns = columns; + return this; + } + + public Builder columns(List columns) { + this.columns = Optional.ofNullable(columns); + return this; + } + + public ExecuteQueryResponseMetadata build() { + return new ExecuteQueryResponseMetadata(columns, additionalProperties); + } + } +} diff --git a/v3/src/main/java/com/skyflow/generated/rest/types/GetRequestData.java b/v3/src/main/java/com/skyflow/generated/rest/types/GetRequestData.java new file mode 100644 index 00000000..0d6319f0 --- /dev/null +++ b/v3/src/main/java/com/skyflow/generated/rest/types/GetRequestData.java @@ -0,0 +1,225 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.skyflow.generated.rest.types; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.skyflow.generated.rest.core.ObjectMappers; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; + +@JsonInclude(JsonInclude.Include.NON_ABSENT) +@JsonDeserialize(builder = GetRequestData.Builder.class) +public final class GetRequestData { + private final Optional tableName; + + private final Optional> skyflowIDs; + + private final Optional> columnRedactions; + + private final Optional> columns; + + private final Optional> uniqueValues; + + private final Map additionalProperties; + + private GetRequestData( + Optional tableName, + Optional> skyflowIDs, + Optional> columnRedactions, + Optional> columns, + Optional> uniqueValues, + Map additionalProperties) { + this.tableName = tableName; + this.skyflowIDs = skyflowIDs; + this.columnRedactions = columnRedactions; + this.columns = columns; + this.uniqueValues = uniqueValues; + this.additionalProperties = additionalProperties; + } + + /** + * @return Name of the table where data is being fetched + */ + @JsonProperty("tableName") + public Optional getTableName() { + return tableName; + } + + /** + * @return Skyflow ID for the record to be fetched + */ + @JsonProperty("skyflowIDs") + public Optional> getSkyflowIDs() { + return skyflowIDs; + } + + /** + * @return List of columns to be redacted. + */ + @JsonProperty("columnRedactions") + public Optional> getColumnRedactions() { + return columnRedactions; + } + + /** + * @return List of columns to be fetched. + */ + @JsonProperty("columns") + public Optional> getColumns() { + return columns; + } + + /** + * @return List of unique constraint values to query records by data + */ + @JsonProperty("uniqueValues") + public Optional> getUniqueValues() { + return uniqueValues; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof GetRequestData && equalTo((GetRequestData) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(GetRequestData other) { + return tableName.equals(other.tableName) + && skyflowIDs.equals(other.skyflowIDs) + && columnRedactions.equals(other.columnRedactions) + && columns.equals(other.columns) + && uniqueValues.equals(other.uniqueValues); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.tableName, this.skyflowIDs, this.columnRedactions, this.columns, this.uniqueValues); + } + + @java.lang.Override + public String toString() { + return ObjectMappers.stringify(this); + } + + public static Builder builder() { + return new Builder(); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static final class Builder { + private Optional tableName = Optional.empty(); + + private Optional> skyflowIDs = Optional.empty(); + + private Optional> columnRedactions = Optional.empty(); + + private Optional> columns = Optional.empty(); + + private Optional> uniqueValues = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(GetRequestData other) { + tableName(other.getTableName()); + skyflowIDs(other.getSkyflowIDs()); + columnRedactions(other.getColumnRedactions()); + columns(other.getColumns()); + uniqueValues(other.getUniqueValues()); + return this; + } + + /** + *

Name of the table where data is being fetched

+ */ + @JsonSetter(value = "tableName", nulls = Nulls.SKIP) + public Builder tableName(Optional tableName) { + this.tableName = tableName; + return this; + } + + public Builder tableName(String tableName) { + this.tableName = Optional.ofNullable(tableName); + return this; + } + + /** + *

Skyflow ID for the record to be fetched

+ */ + @JsonSetter(value = "skyflowIDs", nulls = Nulls.SKIP) + public Builder skyflowIDs(Optional> skyflowIDs) { + this.skyflowIDs = skyflowIDs; + return this; + } + + public Builder skyflowIDs(List skyflowIDs) { + this.skyflowIDs = Optional.ofNullable(skyflowIDs); + return this; + } + + /** + *

List of columns to be redacted.

+ */ + @JsonSetter(value = "columnRedactions", nulls = Nulls.SKIP) + public Builder columnRedactions(Optional> columnRedactions) { + this.columnRedactions = columnRedactions; + return this; + } + + public Builder columnRedactions(List columnRedactions) { + this.columnRedactions = Optional.ofNullable(columnRedactions); + return this; + } + + /** + *

List of columns to be fetched.

+ */ + @JsonSetter(value = "columns", nulls = Nulls.SKIP) + public Builder columns(Optional> columns) { + this.columns = columns; + return this; + } + + public Builder columns(List columns) { + this.columns = Optional.ofNullable(columns); + return this; + } + + /** + *

List of unique constraint values to query records by data

+ */ + @JsonSetter(value = "uniqueValues", nulls = Nulls.SKIP) + public Builder uniqueValues(Optional> uniqueValues) { + this.uniqueValues = uniqueValues; + return this; + } + + public Builder uniqueValues(List uniqueValues) { + this.uniqueValues = Optional.ofNullable(uniqueValues); + return this; + } + + public GetRequestData build() { + return new GetRequestData( + tableName, skyflowIDs, columnRedactions, columns, uniqueValues, additionalProperties); + } + } +} diff --git a/v3/src/main/java/com/skyflow/generated/rest/types/GetResponse.java b/v3/src/main/java/com/skyflow/generated/rest/types/GetResponse.java index 190ce169..d12316bd 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/types/GetResponse.java +++ b/v3/src/main/java/com/skyflow/generated/rest/types/GetResponse.java @@ -3,11 +3,20 @@ */ package com.skyflow.generated.rest.types; -import com.fasterxml.jackson.annotation.*; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.skyflow.generated.rest.core.ObjectMappers; - -import java.util.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; @JsonInclude(JsonInclude.Include.NON_ABSENT) @JsonDeserialize(builder = GetResponse.Builder.class) @@ -29,7 +38,7 @@ public Optional> getRecords() { return records; } - @Override + @java.lang.Override public boolean equals(Object other) { if (this == other) return true; return other instanceof GetResponse && equalTo((GetResponse) other); @@ -44,12 +53,12 @@ private boolean equalTo(GetResponse other) { return records.equals(other.records); } - @Override + @java.lang.Override public int hashCode() { return Objects.hash(this.records); } - @Override + @java.lang.Override public String toString() { return ObjectMappers.stringify(this); } diff --git a/v3/src/main/java/com/skyflow/generated/rest/types/GoogleprotobufAny.java b/v3/src/main/java/com/skyflow/generated/rest/types/GoogleprotobufAny.java new file mode 100644 index 00000000..3051270a --- /dev/null +++ b/v3/src/main/java/com/skyflow/generated/rest/types/GoogleprotobufAny.java @@ -0,0 +1,151 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.skyflow.generated.rest.types; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.skyflow.generated.rest.core.ObjectMappers; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; + +@JsonInclude(JsonInclude.Include.NON_ABSENT) +@JsonDeserialize(builder = GoogleprotobufAny.Builder.class) +public final class GoogleprotobufAny { + private final Optional type; + + private final Map additionalProperties; + + private GoogleprotobufAny(Optional type, Map additionalProperties) { + this.type = type; + this.additionalProperties = additionalProperties; + } + + /** + * @return A URL/resource name that uniquely identifies the type of the serialized + * protocol buffer message. This string must contain at least + * one "/" character. The last segment of the URL's path must represent + * the fully qualified name of the type (as in + * path/google.protobuf.Duration). The name should be in a canonical form + * (e.g., leading "." is not accepted). + *

In practice, teams usually precompile into the binary all types that they + * expect it to use in the context of Any. However, for URLs which use the + * scheme http, https, or no scheme, one can optionally set up a type + * server that maps type URLs to message definitions as follows:

+ *
    + *
  • If no scheme is provided, https is assumed.
  • + *
  • An HTTP GET on the URL must yield a [google.protobuf.Type][] + * value in binary format, or produce an error.
  • + *
  • Applications are allowed to cache lookup results based on the + * URL, or have them precompiled into a binary to avoid any + * lookup. Therefore, binary compatibility needs to be preserved + * on changes to types. (Use versioned type names to manage + * breaking changes.)
  • + *
+ *

Note: this functionality is not currently available in the official + * protobuf release, and it is not used for type URLs beginning with + * type.googleapis.com. As of May 2023, there are no widely used type server + * implementations and no plans to implement one.

+ *

Schemes other than http, https (or the empty scheme) might be + * used with implementation specific semantics.

+ */ + @JsonProperty("@type") + public Optional getType() { + return type; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof GoogleprotobufAny && equalTo((GoogleprotobufAny) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(GoogleprotobufAny other) { + return type.equals(other.type); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.type); + } + + @java.lang.Override + public String toString() { + return ObjectMappers.stringify(this); + } + + public static Builder builder() { + return new Builder(); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static final class Builder { + private Optional type = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(GoogleprotobufAny other) { + type(other.getType()); + return this; + } + + /** + *

A URL/resource name that uniquely identifies the type of the serialized + * protocol buffer message. This string must contain at least + * one "/" character. The last segment of the URL's path must represent + * the fully qualified name of the type (as in + * path/google.protobuf.Duration). The name should be in a canonical form + * (e.g., leading "." is not accepted).

+ *

In practice, teams usually precompile into the binary all types that they + * expect it to use in the context of Any. However, for URLs which use the + * scheme http, https, or no scheme, one can optionally set up a type + * server that maps type URLs to message definitions as follows:

+ *
    + *
  • If no scheme is provided, https is assumed.
  • + *
  • An HTTP GET on the URL must yield a [google.protobuf.Type][] + * value in binary format, or produce an error.
  • + *
  • Applications are allowed to cache lookup results based on the + * URL, or have them precompiled into a binary to avoid any + * lookup. Therefore, binary compatibility needs to be preserved + * on changes to types. (Use versioned type names to manage + * breaking changes.)
  • + *
+ *

Note: this functionality is not currently available in the official + * protobuf release, and it is not used for type URLs beginning with + * type.googleapis.com. As of May 2023, there are no widely used type server + * implementations and no plans to implement one.

+ *

Schemes other than http, https (or the empty scheme) might be + * used with implementation specific semantics.

+ */ + @JsonSetter(value = "@type", nulls = Nulls.SKIP) + public Builder type(Optional type) { + this.type = type; + return this; + } + + public Builder type(String type) { + this.type = Optional.ofNullable(type); + return this; + } + + public GoogleprotobufAny build() { + return new GoogleprotobufAny(type, additionalProperties); + } + } +} diff --git a/v3/src/main/java/com/skyflow/generated/rest/types/InsertRecordData.java b/v3/src/main/java/com/skyflow/generated/rest/types/InsertRecordData.java index 2738332b..6bf88902 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/types/InsertRecordData.java +++ b/v3/src/main/java/com/skyflow/generated/rest/types/InsertRecordData.java @@ -3,10 +3,15 @@ */ package com.skyflow.generated.rest.types; -import com.fasterxml.jackson.annotation.*; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.skyflow.generated.rest.core.ObjectMappers; - import java.util.HashMap; import java.util.Map; import java.util.Objects; @@ -19,14 +24,22 @@ public final class InsertRecordData { private final Optional> tokens; + private final Optional tableName; + + private final Optional upsert; + private final Map additionalProperties; private InsertRecordData( Optional> data, Optional> tokens, + Optional tableName, + Optional upsert, Map additionalProperties) { this.data = data; this.tokens = tokens; + this.tableName = tableName; + this.upsert = upsert; this.additionalProperties = additionalProperties; } @@ -39,14 +52,27 @@ public Optional> getData() { } /** - * @return Tokens data for the columns if any + * @return undocumented_field; Tokens data for the columns if any */ @JsonProperty("tokens") public Optional> getTokens() { return tokens; } - @Override + /** + * @return Table name for the record + */ + @JsonProperty("tableName") + public Optional getTableName() { + return tableName; + } + + @JsonProperty("upsert") + public Optional getUpsert() { + return upsert; + } + + @java.lang.Override public boolean equals(Object other) { if (this == other) return true; return other instanceof InsertRecordData && equalTo((InsertRecordData) other); @@ -58,15 +84,18 @@ public Map getAdditionalProperties() { } private boolean equalTo(InsertRecordData other) { - return data.equals(other.data) && tokens.equals(other.tokens); + return data.equals(other.data) + && tokens.equals(other.tokens) + && tableName.equals(other.tableName) + && upsert.equals(other.upsert); } - @Override + @java.lang.Override public int hashCode() { - return Objects.hash(this.data, this.tokens); + return Objects.hash(this.data, this.tokens, this.tableName, this.upsert); } - @Override + @java.lang.Override public String toString() { return ObjectMappers.stringify(this); } @@ -81,6 +110,10 @@ public static final class Builder { private Optional> tokens = Optional.empty(); + private Optional tableName = Optional.empty(); + + private Optional upsert = Optional.empty(); + @JsonAnySetter private Map additionalProperties = new HashMap<>(); @@ -89,6 +122,8 @@ private Builder() {} public Builder from(InsertRecordData other) { data(other.getData()); tokens(other.getTokens()); + tableName(other.getTableName()); + upsert(other.getUpsert()); return this; } @@ -107,7 +142,7 @@ public Builder data(Map data) { } /** - *

Tokens data for the columns if any

+ *

undocumented_field; Tokens data for the columns if any

*/ @JsonSetter(value = "tokens", nulls = Nulls.SKIP) public Builder tokens(Optional> tokens) { @@ -120,8 +155,33 @@ public Builder tokens(Map tokens) { return this; } + /** + *

Table name for the record

+ */ + @JsonSetter(value = "tableName", nulls = Nulls.SKIP) + public Builder tableName(Optional tableName) { + this.tableName = tableName; + return this; + } + + public Builder tableName(String tableName) { + this.tableName = Optional.ofNullable(tableName); + return this; + } + + @JsonSetter(value = "upsert", nulls = Nulls.SKIP) + public Builder upsert(Optional upsert) { + this.upsert = upsert; + return this; + } + + public Builder upsert(Upsert upsert) { + this.upsert = Optional.ofNullable(upsert); + return this; + } + public InsertRecordData build() { - return new InsertRecordData(data, tokens, additionalProperties); + return new InsertRecordData(data, tokens, tableName, upsert, additionalProperties); } } } diff --git a/v3/src/main/java/com/skyflow/generated/rest/types/InsertResponse.java b/v3/src/main/java/com/skyflow/generated/rest/types/InsertResponse.java index 9b577820..50f3dc20 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/types/InsertResponse.java +++ b/v3/src/main/java/com/skyflow/generated/rest/types/InsertResponse.java @@ -3,11 +3,20 @@ */ package com.skyflow.generated.rest.types; -import com.fasterxml.jackson.annotation.*; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.skyflow.generated.rest.core.ObjectMappers; - -import java.util.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; @JsonInclude(JsonInclude.Include.NON_ABSENT) @JsonDeserialize(builder = InsertResponse.Builder.class) @@ -29,7 +38,7 @@ public Optional> getRecords() { return records; } - @Override + @java.lang.Override public boolean equals(Object other) { if (this == other) return true; return other instanceof InsertResponse && equalTo((InsertResponse) other); @@ -44,12 +53,12 @@ private boolean equalTo(InsertResponse other) { return records.equals(other.records); } - @Override + @java.lang.Override public int hashCode() { return Objects.hash(this.records); } - @Override + @java.lang.Override public String toString() { return ObjectMappers.stringify(this); } diff --git a/v3/src/main/java/com/skyflow/generated/rest/types/ProtobufAny.java b/v3/src/main/java/com/skyflow/generated/rest/types/ProtobufAny.java deleted file mode 100644 index 40e73b99..00000000 --- a/v3/src/main/java/com/skyflow/generated/rest/types/ProtobufAny.java +++ /dev/null @@ -1,90 +0,0 @@ -/** - * This file was auto-generated by Fern from our API Definition. - */ -package com.skyflow.generated.rest.types; - -import com.fasterxml.jackson.annotation.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.skyflow.generated.rest.core.ObjectMappers; - -import java.util.HashMap; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; - -@JsonInclude(JsonInclude.Include.NON_ABSENT) -@JsonDeserialize(builder = ProtobufAny.Builder.class) -public final class ProtobufAny { - private final Optional type; - - private final Map additionalProperties; - - private ProtobufAny(Optional type, Map additionalProperties) { - this.type = type; - this.additionalProperties = additionalProperties; - } - - @JsonProperty("@type") - public Optional getType() { - return type; - } - - @Override - public boolean equals(Object other) { - if (this == other) return true; - return other instanceof ProtobufAny && equalTo((ProtobufAny) other); - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - private boolean equalTo(ProtobufAny other) { - return type.equals(other.type); - } - - @Override - public int hashCode() { - return Objects.hash(this.type); - } - - @Override - public String toString() { - return ObjectMappers.stringify(this); - } - - public static Builder builder() { - return new Builder(); - } - - @JsonIgnoreProperties(ignoreUnknown = true) - public static final class Builder { - private Optional type = Optional.empty(); - - @JsonAnySetter - private Map additionalProperties = new HashMap<>(); - - private Builder() {} - - public Builder from(ProtobufAny other) { - type(other.getType()); - return this; - } - - @JsonSetter(value = "@type", nulls = Nulls.SKIP) - public Builder type(Optional type) { - this.type = type; - return this; - } - - public Builder type(String type) { - this.type = Optional.ofNullable(type); - return this; - } - - public ProtobufAny build() { - return new ProtobufAny(type, additionalProperties); - } - } -} diff --git a/v3/src/main/java/com/skyflow/generated/rest/types/RecordResponseObject.java b/v3/src/main/java/com/skyflow/generated/rest/types/RecordResponseObject.java index 8e47bba0..def78ed2 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/types/RecordResponseObject.java +++ b/v3/src/main/java/com/skyflow/generated/rest/types/RecordResponseObject.java @@ -3,10 +3,15 @@ */ package com.skyflow.generated.rest.types; -import com.fasterxml.jackson.annotation.*; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.skyflow.generated.rest.core.ObjectMappers; - import java.util.HashMap; import java.util.Map; import java.util.Objects; @@ -27,6 +32,8 @@ public final class RecordResponseObject { private final Optional httpCode; + private final Optional tableName; + private final Map additionalProperties; private RecordResponseObject( @@ -36,6 +43,7 @@ private RecordResponseObject( Optional> hashedData, Optional error, Optional httpCode, + Optional tableName, Map additionalProperties) { this.skyflowId = skyflowId; this.tokens = tokens; @@ -43,6 +51,7 @@ private RecordResponseObject( this.hashedData = hashedData; this.error = error; this.httpCode = httpCode; + this.tableName = tableName; this.additionalProperties = additionalProperties; } @@ -94,7 +103,15 @@ public Optional getHttpCode() { return httpCode; } - @Override + /** + * @return Name of the table record belongs to + */ + @JsonProperty("tableName") + public Optional getTableName() { + return tableName; + } + + @java.lang.Override public boolean equals(Object other) { if (this == other) return true; return other instanceof RecordResponseObject && equalTo((RecordResponseObject) other); @@ -111,15 +128,17 @@ private boolean equalTo(RecordResponseObject other) { && data.equals(other.data) && hashedData.equals(other.hashedData) && error.equals(other.error) - && httpCode.equals(other.httpCode); + && httpCode.equals(other.httpCode) + && tableName.equals(other.tableName); } - @Override + @java.lang.Override public int hashCode() { - return Objects.hash(this.skyflowId, this.tokens, this.data, this.hashedData, this.error, this.httpCode); + return Objects.hash( + this.skyflowId, this.tokens, this.data, this.hashedData, this.error, this.httpCode, this.tableName); } - @Override + @java.lang.Override public String toString() { return ObjectMappers.stringify(this); } @@ -142,6 +161,8 @@ public static final class Builder { private Optional httpCode = Optional.empty(); + private Optional tableName = Optional.empty(); + @JsonAnySetter private Map additionalProperties = new HashMap<>(); @@ -154,6 +175,7 @@ public Builder from(RecordResponseObject other) { hashedData(other.getHashedData()); error(other.getError()); httpCode(other.getHttpCode()); + tableName(other.getTableName()); return this; } @@ -241,8 +263,23 @@ public Builder httpCode(Integer httpCode) { return this; } + /** + *

Name of the table record belongs to

+ */ + @JsonSetter(value = "tableName", nulls = Nulls.SKIP) + public Builder tableName(Optional tableName) { + this.tableName = tableName; + return this; + } + + public Builder tableName(String tableName) { + this.tableName = Optional.ofNullable(tableName); + return this; + } + public RecordResponseObject build() { - return new RecordResponseObject(skyflowId, tokens, data, hashedData, error, httpCode, additionalProperties); + return new RecordResponseObject( + skyflowId, tokens, data, hashedData, error, httpCode, tableName, additionalProperties); } } } diff --git a/v3/src/main/java/com/skyflow/generated/rest/types/RpcStatus.java b/v3/src/main/java/com/skyflow/generated/rest/types/RpcStatus.java index bce5f3e9..b0fc6c44 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/types/RpcStatus.java +++ b/v3/src/main/java/com/skyflow/generated/rest/types/RpcStatus.java @@ -3,11 +3,20 @@ */ package com.skyflow.generated.rest.types; -import com.fasterxml.jackson.annotation.*; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.skyflow.generated.rest.core.ObjectMappers; - -import java.util.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; @JsonInclude(JsonInclude.Include.NON_ABSENT) @JsonDeserialize(builder = RpcStatus.Builder.class) @@ -16,14 +25,14 @@ public final class RpcStatus { private final Optional message; - private final Optional> details; + private final Optional> details; private final Map additionalProperties; private RpcStatus( Optional code, Optional message, - Optional> details, + Optional> details, Map additionalProperties) { this.code = code; this.message = message; @@ -42,11 +51,11 @@ public Optional getMessage() { } @JsonProperty("details") - public Optional> getDetails() { + public Optional> getDetails() { return details; } - @Override + @java.lang.Override public boolean equals(Object other) { if (this == other) return true; return other instanceof RpcStatus && equalTo((RpcStatus) other); @@ -61,12 +70,12 @@ private boolean equalTo(RpcStatus other) { return code.equals(other.code) && message.equals(other.message) && details.equals(other.details); } - @Override + @java.lang.Override public int hashCode() { return Objects.hash(this.code, this.message, this.details); } - @Override + @java.lang.Override public String toString() { return ObjectMappers.stringify(this); } @@ -81,7 +90,7 @@ public static final class Builder { private Optional message = Optional.empty(); - private Optional> details = Optional.empty(); + private Optional> details = Optional.empty(); @JsonAnySetter private Map additionalProperties = new HashMap<>(); @@ -118,12 +127,12 @@ public Builder message(String message) { } @JsonSetter(value = "details", nulls = Nulls.SKIP) - public Builder details(Optional> details) { + public Builder details(Optional> details) { this.details = details; return this; } - public Builder details(List details) { + public Builder details(List details) { this.details = Optional.ofNullable(details); return this; } diff --git a/v3/src/main/java/com/skyflow/generated/rest/types/TokenGroupRedactions.java b/v3/src/main/java/com/skyflow/generated/rest/types/TokenGroupRedactions.java index cdf3e5e6..4a3235eb 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/types/TokenGroupRedactions.java +++ b/v3/src/main/java/com/skyflow/generated/rest/types/TokenGroupRedactions.java @@ -3,10 +3,15 @@ */ package com.skyflow.generated.rest.types; -import com.fasterxml.jackson.annotation.*; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.skyflow.generated.rest.core.ObjectMappers; - import java.util.HashMap; import java.util.Map; import java.util.Objects; @@ -44,7 +49,7 @@ public Optional getRedaction() { return redaction; } - @Override + @java.lang.Override public boolean equals(Object other) { if (this == other) return true; return other instanceof TokenGroupRedactions && equalTo((TokenGroupRedactions) other); @@ -59,12 +64,12 @@ private boolean equalTo(TokenGroupRedactions other) { return tokenGroupName.equals(other.tokenGroupName) && redaction.equals(other.redaction); } - @Override + @java.lang.Override public int hashCode() { return Objects.hash(this.tokenGroupName, this.redaction); } - @Override + @java.lang.Override public String toString() { return ObjectMappers.stringify(this); } diff --git a/v3/src/main/java/com/skyflow/generated/rest/types/TokenizeRequestObject.java b/v3/src/main/java/com/skyflow/generated/rest/types/TokenizeRequestObject.java index e467650e..6853c9f2 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/types/TokenizeRequestObject.java +++ b/v3/src/main/java/com/skyflow/generated/rest/types/TokenizeRequestObject.java @@ -3,11 +3,20 @@ */ package com.skyflow.generated.rest.types; -import com.fasterxml.jackson.annotation.*; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.skyflow.generated.rest.core.ObjectMappers; - -import java.util.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; @JsonInclude(JsonInclude.Include.NON_ABSENT) @JsonDeserialize(builder = TokenizeRequestObject.Builder.class) @@ -49,7 +58,7 @@ public Optional> getTokenGroupNames() { return tokenGroupNames; } - @Override + @java.lang.Override public boolean equals(Object other) { if (this == other) return true; return other instanceof TokenizeRequestObject && equalTo((TokenizeRequestObject) other); @@ -66,12 +75,12 @@ private boolean equalTo(TokenizeRequestObject other) { && tokenGroupNames.equals(other.tokenGroupNames); } - @Override + @java.lang.Override public int hashCode() { return Objects.hash(this.value, this.dataType, this.tokenGroupNames); } - @Override + @java.lang.Override public String toString() { return ObjectMappers.stringify(this); } diff --git a/v3/src/main/java/com/skyflow/generated/rest/types/TokenizeResponse.java b/v3/src/main/java/com/skyflow/generated/rest/types/TokenizeResponse.java index 9bd93527..af22ea4d 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/types/TokenizeResponse.java +++ b/v3/src/main/java/com/skyflow/generated/rest/types/TokenizeResponse.java @@ -3,11 +3,20 @@ */ package com.skyflow.generated.rest.types; -import com.fasterxml.jackson.annotation.*; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.skyflow.generated.rest.core.ObjectMappers; - -import java.util.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; @JsonInclude(JsonInclude.Include.NON_ABSENT) @JsonDeserialize(builder = TokenizeResponse.Builder.class) @@ -30,7 +39,7 @@ public Optional> getResponse() { return response; } - @Override + @java.lang.Override public boolean equals(Object other) { if (this == other) return true; return other instanceof TokenizeResponse && equalTo((TokenizeResponse) other); @@ -45,12 +54,12 @@ private boolean equalTo(TokenizeResponse other) { return response.equals(other.response); } - @Override + @java.lang.Override public int hashCode() { return Objects.hash(this.response); } - @Override + @java.lang.Override public String toString() { return ObjectMappers.stringify(this); } diff --git a/v3/src/main/java/com/skyflow/generated/rest/types/TokenizeResponseObject.java b/v3/src/main/java/com/skyflow/generated/rest/types/TokenizeResponseObject.java index 77b47099..9da3324b 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/types/TokenizeResponseObject.java +++ b/v3/src/main/java/com/skyflow/generated/rest/types/TokenizeResponseObject.java @@ -3,11 +3,20 @@ */ package com.skyflow.generated.rest.types; -import com.fasterxml.jackson.annotation.*; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.skyflow.generated.rest.core.ObjectMappers; - -import java.util.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; @JsonInclude(JsonInclude.Include.NON_ABSENT) @JsonDeserialize(builder = TokenizeResponseObject.Builder.class) @@ -40,7 +49,7 @@ public Optional> getTokens() { return tokens; } - @Override + @java.lang.Override public boolean equals(Object other) { if (this == other) return true; return other instanceof TokenizeResponseObject && equalTo((TokenizeResponseObject) other); @@ -55,12 +64,12 @@ private boolean equalTo(TokenizeResponseObject other) { return value.equals(other.value) && tokens.equals(other.tokens); } - @Override + @java.lang.Override public int hashCode() { return Objects.hash(this.value, this.tokens); } - @Override + @java.lang.Override public String toString() { return ObjectMappers.stringify(this); } diff --git a/v3/src/main/java/com/skyflow/generated/rest/types/TokenizeResponseObjectToken.java b/v3/src/main/java/com/skyflow/generated/rest/types/TokenizeResponseObjectToken.java index 62c8f32b..715a4173 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/types/TokenizeResponseObjectToken.java +++ b/v3/src/main/java/com/skyflow/generated/rest/types/TokenizeResponseObjectToken.java @@ -3,10 +3,15 @@ */ package com.skyflow.generated.rest.types; -import com.fasterxml.jackson.annotation.*; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.skyflow.generated.rest.core.ObjectMappers; - import java.util.HashMap; import java.util.Map; import java.util.Objects; @@ -70,7 +75,7 @@ public Optional getHttpCode() { return httpCode; } - @Override + @java.lang.Override public boolean equals(Object other) { if (this == other) return true; return other instanceof TokenizeResponseObjectToken && equalTo((TokenizeResponseObjectToken) other); @@ -88,12 +93,12 @@ private boolean equalTo(TokenizeResponseObjectToken other) { && httpCode.equals(other.httpCode); } - @Override + @java.lang.Override public int hashCode() { return Objects.hash(this.tokenGroupName, this.token, this.error, this.httpCode); } - @Override + @java.lang.Override public String toString() { return ObjectMappers.stringify(this); } diff --git a/v3/src/main/java/com/skyflow/generated/rest/types/UniqueValue.java b/v3/src/main/java/com/skyflow/generated/rest/types/UniqueValue.java new file mode 100644 index 00000000..a15f73bb --- /dev/null +++ b/v3/src/main/java/com/skyflow/generated/rest/types/UniqueValue.java @@ -0,0 +1,101 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.skyflow.generated.rest.types; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.skyflow.generated.rest.core.ObjectMappers; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; + +@JsonInclude(JsonInclude.Include.NON_ABSENT) +@JsonDeserialize(builder = UniqueValue.Builder.class) +public final class UniqueValue { + private final Optional> data; + + private final Map additionalProperties; + + private UniqueValue(Optional> data, Map additionalProperties) { + this.data = data; + this.additionalProperties = additionalProperties; + } + + /** + * @return Columns names and values for unique value entry + */ + @JsonProperty("data") + public Optional> getData() { + return data; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof UniqueValue && equalTo((UniqueValue) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(UniqueValue other) { + return data.equals(other.data); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.data); + } + + @java.lang.Override + public String toString() { + return ObjectMappers.stringify(this); + } + + public static Builder builder() { + return new Builder(); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static final class Builder { + private Optional> data = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(UniqueValue other) { + data(other.getData()); + return this; + } + + /** + *

Columns names and values for unique value entry

+ */ + @JsonSetter(value = "data", nulls = Nulls.SKIP) + public Builder data(Optional> data) { + this.data = data; + return this; + } + + public Builder data(Map data) { + this.data = Optional.ofNullable(data); + return this; + } + + public UniqueValue build() { + return new UniqueValue(data, additionalProperties); + } + } +} diff --git a/v3/src/main/java/com/skyflow/generated/rest/types/UpdateRecordData.java b/v3/src/main/java/com/skyflow/generated/rest/types/UpdateRecordData.java index f9c39572..6cc8c7ad 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/types/UpdateRecordData.java +++ b/v3/src/main/java/com/skyflow/generated/rest/types/UpdateRecordData.java @@ -3,10 +3,15 @@ */ package com.skyflow.generated.rest.types; -import com.fasterxml.jackson.annotation.*; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.skyflow.generated.rest.core.ObjectMappers; - import java.util.HashMap; import java.util.Map; import java.util.Objects; @@ -21,16 +26,20 @@ public final class UpdateRecordData { private final Optional> tokens; + private final Optional tableName; + private final Map additionalProperties; private UpdateRecordData( Optional skyflowId, Optional> data, Optional> tokens, + Optional tableName, Map additionalProperties) { this.skyflowId = skyflowId; this.data = data; this.tokens = tokens; + this.tableName = tableName; this.additionalProperties = additionalProperties; } @@ -51,14 +60,22 @@ public Optional> getData() { } /** - * @return Tokens data for the columns if any + * @return undocumented_field; Tokens data for the columns if any */ @JsonProperty("tokens") public Optional> getTokens() { return tokens; } - @Override + /** + * @return Table name for the record + */ + @JsonProperty("tableName") + public Optional getTableName() { + return tableName; + } + + @java.lang.Override public boolean equals(Object other) { if (this == other) return true; return other instanceof UpdateRecordData && equalTo((UpdateRecordData) other); @@ -70,15 +87,18 @@ public Map getAdditionalProperties() { } private boolean equalTo(UpdateRecordData other) { - return skyflowId.equals(other.skyflowId) && data.equals(other.data) && tokens.equals(other.tokens); + return skyflowId.equals(other.skyflowId) + && data.equals(other.data) + && tokens.equals(other.tokens) + && tableName.equals(other.tableName); } - @Override + @java.lang.Override public int hashCode() { - return Objects.hash(this.skyflowId, this.data, this.tokens); + return Objects.hash(this.skyflowId, this.data, this.tokens, this.tableName); } - @Override + @java.lang.Override public String toString() { return ObjectMappers.stringify(this); } @@ -95,6 +115,8 @@ public static final class Builder { private Optional> tokens = Optional.empty(); + private Optional tableName = Optional.empty(); + @JsonAnySetter private Map additionalProperties = new HashMap<>(); @@ -104,6 +126,7 @@ public Builder from(UpdateRecordData other) { skyflowId(other.getSkyflowId()); data(other.getData()); tokens(other.getTokens()); + tableName(other.getTableName()); return this; } @@ -136,7 +159,7 @@ public Builder data(Map data) { } /** - *

Tokens data for the columns if any

+ *

undocumented_field; Tokens data for the columns if any

*/ @JsonSetter(value = "tokens", nulls = Nulls.SKIP) public Builder tokens(Optional> tokens) { @@ -149,8 +172,22 @@ public Builder tokens(Map tokens) { return this; } + /** + *

Table name for the record

+ */ + @JsonSetter(value = "tableName", nulls = Nulls.SKIP) + public Builder tableName(Optional tableName) { + this.tableName = tableName; + return this; + } + + public Builder tableName(String tableName) { + this.tableName = Optional.ofNullable(tableName); + return this; + } + public UpdateRecordData build() { - return new UpdateRecordData(skyflowId, data, tokens, additionalProperties); + return new UpdateRecordData(skyflowId, data, tokens, tableName, additionalProperties); } } } diff --git a/v3/src/main/java/com/skyflow/generated/rest/types/UpdateResponse.java b/v3/src/main/java/com/skyflow/generated/rest/types/UpdateResponse.java index 71d49aa8..ac331eef 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/types/UpdateResponse.java +++ b/v3/src/main/java/com/skyflow/generated/rest/types/UpdateResponse.java @@ -3,11 +3,20 @@ */ package com.skyflow.generated.rest.types; -import com.fasterxml.jackson.annotation.*; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.skyflow.generated.rest.core.ObjectMappers; - -import java.util.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; @JsonInclude(JsonInclude.Include.NON_ABSENT) @JsonDeserialize(builder = UpdateResponse.Builder.class) @@ -29,7 +38,7 @@ public Optional> getRecords() { return records; } - @Override + @java.lang.Override public boolean equals(Object other) { if (this == other) return true; return other instanceof UpdateResponse && equalTo((UpdateResponse) other); @@ -44,12 +53,12 @@ private boolean equalTo(UpdateResponse other) { return records.equals(other.records); } - @Override + @java.lang.Override public int hashCode() { return Objects.hash(this.records); } - @Override + @java.lang.Override public String toString() { return ObjectMappers.stringify(this); } diff --git a/v3/src/main/java/com/skyflow/generated/rest/types/Upsert.java b/v3/src/main/java/com/skyflow/generated/rest/types/Upsert.java index 5bfe7b1b..52461939 100644 --- a/v3/src/main/java/com/skyflow/generated/rest/types/Upsert.java +++ b/v3/src/main/java/com/skyflow/generated/rest/types/Upsert.java @@ -3,11 +3,20 @@ */ package com.skyflow.generated.rest.types; -import com.fasterxml.jackson.annotation.*; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.skyflow.generated.rest.core.ObjectMappers; - -import java.util.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; @JsonInclude(JsonInclude.Include.NON_ABSENT) @JsonDeserialize(builder = Upsert.Builder.class) @@ -40,7 +49,7 @@ public Optional> getUniqueColumns() { return uniqueColumns; } - @Override + @java.lang.Override public boolean equals(Object other) { if (this == other) return true; return other instanceof Upsert && equalTo((Upsert) other); @@ -55,12 +64,12 @@ private boolean equalTo(Upsert other) { return updateType.equals(other.updateType) && uniqueColumns.equals(other.uniqueColumns); } - @Override + @java.lang.Override public int hashCode() { return Objects.hash(this.updateType, this.uniqueColumns); } - @Override + @java.lang.Override public String toString() { return ObjectMappers.stringify(this); } diff --git a/v3/src/main/java/com/skyflow/utils/Utils.java b/v3/src/main/java/com/skyflow/utils/Utils.java index 468f3ff6..83b40f9b 100644 --- a/v3/src/main/java/com/skyflow/utils/Utils.java +++ b/v3/src/main/java/com/skyflow/utils/Utils.java @@ -235,7 +235,7 @@ public static com.skyflow.vault.data.InsertResponse formatResponse(InsertRespons tokensMap.put(key, tokenList); } } - Success success = new Success(indexNumber, record.get(index).getSkyflowId().get(), tokensMap, record.get(index).getData().isPresent() ? record.get(index).getData().get() : null); + Success success = new Success(indexNumber, record.get(index).getSkyflowId().get(), tokensMap, record.get(index).getData().isPresent() ? record.get(index).getData().get() : null, record.get(index).getTableName().isPresent() ? record.get(index).getTableName().get() : null); successRecords.add(success); } indexNumber++; diff --git a/v3/src/main/java/com/skyflow/utils/validations/Validations.java b/v3/src/main/java/com/skyflow/utils/validations/Validations.java index 058a002e..00c2d4ff 100644 --- a/v3/src/main/java/com/skyflow/utils/validations/Validations.java +++ b/v3/src/main/java/com/skyflow/utils/validations/Validations.java @@ -10,6 +10,7 @@ import com.skyflow.utils.Utils; import com.skyflow.utils.logger.LogUtil; import com.skyflow.vault.data.DetokenizeRequest; +import com.skyflow.vault.data.InsertRecord; import com.skyflow.vault.data.InsertRequest; import com.skyflow.vault.data.TokenGroupRedactions; @@ -24,20 +25,8 @@ private Validations() { public static void validateInsertRequest(InsertRequest insertRequest) throws SkyflowException { String table = insertRequest.getTable(); - ArrayList> values = insertRequest.getValues(); - List upsert = insertRequest.getUpsert(); - - if (table == null) { - LogUtil.printErrorLog(Utils.parameterizedString( - ErrorLogs.TABLE_IS_REQUIRED.getLog(), InterfaceName.INSERT.getName() - )); - throw new SkyflowException(ErrorCode.INVALID_INPUT.getCode(), ErrorMessage.TableKeyError.getMessage()); - } else if (table.trim().isEmpty()) { - LogUtil.printErrorLog(Utils.parameterizedString( - ErrorLogs.EMPTY_TABLE_NAME.getLog(), InterfaceName.INSERT.getName() - )); - throw new SkyflowException(ErrorCode.INVALID_INPUT.getCode(), ErrorMessage.EmptyTable.getMessage()); - } else if (values == null) { + ArrayList values = insertRequest.getRecords(); + if (values == null) { LogUtil.printErrorLog(Utils.parameterizedString( ErrorLogs.VALUES_IS_REQUIRED.getLog(), InterfaceName.INSERT.getName() )); @@ -50,28 +39,87 @@ public static void validateInsertRequest(InsertRequest insertRequest) throws Sky } else if (values.size() > 10000) { LogUtil.printErrorLog(ErrorLogs.RECORD_SIZE_EXCEED.getLog()); throw new SkyflowException(ErrorCode.INVALID_INPUT.getCode(), ErrorMessage.RecordSizeExceedError.getMessage()); - } else if (upsert != null && upsert.isEmpty()) { - LogUtil.printErrorLog(Utils.parameterizedString( - ErrorLogs.EMPTY_UPSERT_VALUES.getLog(), InterfaceName.INSERT.getName() - )); - throw new SkyflowException(ErrorCode.INVALID_INPUT.getCode(), ErrorMessage.EmptyUpsertValues.getMessage()); } - - for (HashMap valuesMap : values) { - for (String key : valuesMap.keySet()) { - if (key == null || key.trim().isEmpty()) { +// if (table == null) { +// LogUtil.printErrorLog(Utils.parameterizedString( +// ErrorLogs.TABLE_IS_REQUIRED.getLog(), InterfaceName.INSERT.getName() +// )); +// throw new SkyflowException(ErrorCode.INVALID_INPUT.getCode(), ErrorMessage.TableKeyError.getMessage()); +// } else if (table.trim().isEmpty()) { +// LogUtil.printErrorLog(Utils.parameterizedString( +// ErrorLogs.EMPTY_TABLE_NAME.getLog(), InterfaceName.INSERT.getName() +// )); +// throw new SkyflowException(ErrorCode.INVALID_INPUT.getCode(), ErrorMessage.EmptyTable.getMessage()); +// } + // table check if specified for both + if (insertRequest.getTable() != null && !table.trim().isEmpty()){ // if table name specified at both place + for (InsertRecord valuesMap : values) { + if (valuesMap.getTable() != null || !valuesMap.getTable().trim().isEmpty()){ LogUtil.printErrorLog(Utils.parameterizedString( - ErrorLogs.EMPTY_OR_NULL_KEY_IN_VALUES.getLog(), InterfaceName.INSERT.getName() + ErrorLogs.TABLE_SPECIFIED_AT_BOTH_PLACE.getLog(), InterfaceName.INSERT.getName() )); - throw new SkyflowException(ErrorCode.INVALID_INPUT.getCode(), ErrorMessage.EmptyKeyInValues.getMessage()); - } else { - Object value = valuesMap.get(key); - if (value == null || value.toString().trim().isEmpty()) { - LogUtil.printErrorLog(Utils.parameterizedString( - ErrorLogs.EMPTY_OR_NULL_VALUE_IN_VALUES.getLog(), - InterfaceName.INSERT.getName(), key - )); - throw new SkyflowException(ErrorCode.INVALID_INPUT.getCode(), ErrorMessage.EmptyValueInValues.getMessage()); + throw new SkyflowException(ErrorCode.INVALID_INPUT.getCode(), ErrorMessage.TableSpecifiedInRequestAndRecordObject.getMessage()); + } + } + } + // table check if not specified for both or if missing in any object + if (insertRequest.getTable() == null || table.trim().isEmpty()){ // if table name specified at both place + for (InsertRecord valuesMap : values) { + if (valuesMap.getTable() == null || valuesMap.getTable().trim().isEmpty()){ + LogUtil.printErrorLog(Utils.parameterizedString( + ErrorLogs.TABLE_NOT_SPECIFIED_AT_BOTH_PLACE.getLog(), InterfaceName.INSERT.getName() + )); + throw new SkyflowException(ErrorCode.INVALID_INPUT.getCode(), ErrorMessage.TableNotSpecifiedInRequestAndRecordObject.getMessage()); + } + } + } + // upsert check 1 + if (insertRequest.getTable() != null && !table.trim().isEmpty()){ // if table name specified at both place + for (InsertRecord valuesMap : values) { + if (valuesMap.getUpsert() != null && !valuesMap.getUpsert().isEmpty()){ + LogUtil.printErrorLog(Utils.parameterizedString( + ErrorLogs.UPSERT_TABLE_REQUEST_AT_RECORD_LEVEL.getLog(), InterfaceName.INSERT.getName() + )); + throw new SkyflowException(ErrorCode.INVALID_INPUT.getCode(), ErrorMessage.UpsertTableRequestAtRecordLevel.getMessage()); + } + } + } + // upsert check 2 + if (insertRequest.getTable() == null || table.trim().isEmpty()){ + if (insertRequest.getUpsert() != null && !insertRequest.getUpsert().isEmpty()){ + LogUtil.printErrorLog(Utils.parameterizedString( + ErrorLogs.UPSERT_TABLE_REQUEST_AT_REQUEST_LEVEL.getLog(), InterfaceName.INSERT.getName() + )); + throw new SkyflowException(ErrorCode.INVALID_INPUT.getCode(), ErrorMessage.UpsertTableRequestAtRequestLevel.getMessage()); + } + } + +// else if (upsert != null && upsert.isEmpty()) { +// LogUtil.printErrorLog(Utils.parameterizedString( +// ErrorLogs.EMPTY_UPSERT_VALUES.getLog(), InterfaceName.INSERT.getName() +// )); +// throw new SkyflowException(ErrorCode.INVALID_INPUT.getCode(), ErrorMessage.EmptyUpsertValues.getMessage()); +// } + + for (InsertRecord valuesMap : values) { + if (valuesMap != null ) { + if (valuesMap.getData() != null){ + for (String key : valuesMap.getData().keySet()) { + if (key == null || key.trim().isEmpty()) { + LogUtil.printErrorLog(Utils.parameterizedString( + ErrorLogs.EMPTY_OR_NULL_KEY_IN_VALUES.getLog(), InterfaceName.INSERT.getName() + )); + throw new SkyflowException(ErrorCode.INVALID_INPUT.getCode(), ErrorMessage.EmptyKeyInValues.getMessage()); + } else { + Object value = valuesMap.getData().get(key); + if (value == null || value.toString().trim().isEmpty()) { + LogUtil.printErrorLog(Utils.parameterizedString( + ErrorLogs.EMPTY_OR_NULL_VALUE_IN_VALUES.getLog(), + InterfaceName.INSERT.getName(), key + )); + throw new SkyflowException(ErrorCode.INVALID_INPUT.getCode(), ErrorMessage.EmptyValueInValues.getMessage()); + } + } } } } diff --git a/v3/src/main/java/com/skyflow/vault/controller/VaultController.java b/v3/src/main/java/com/skyflow/vault/controller/VaultController.java index 6b5af623..21e0a8d6 100644 --- a/v3/src/main/java/com/skyflow/vault/controller/VaultController.java +++ b/v3/src/main/java/com/skyflow/vault/controller/VaultController.java @@ -52,12 +52,12 @@ public com.skyflow.vault.data.InsertResponse bulkInsert(InsertRequest insertRequ try { LogUtil.printInfoLog(InfoLogs.VALIDATE_INSERT_REQUEST.getLog()); Validations.validateInsertRequest(insertRequest); - configureInsertConcurrencyAndBatchSize(insertRequest.getValues().size()); + configureInsertConcurrencyAndBatchSize(insertRequest.getRecords().size()); setBearerToken(); com.skyflow.generated.rest.resources.recordservice.requests.InsertRequest request = super.getBulkInsertRequestBody(insertRequest, super.getVaultConfig()); - response = this.processSync(request, insertRequest.getValues()); + response = this.processSync(request, insertRequest.getRecords()); return response; } catch (ApiClientApiException e) { String bodyString = gson.toJson(e.body()); @@ -74,7 +74,7 @@ public CompletableFuture bulkInsertAsync( try { LogUtil.printInfoLog(InfoLogs.VALIDATE_INSERT_REQUEST.getLog()); Validations.validateInsertRequest(insertRequest); - configureInsertConcurrencyAndBatchSize(insertRequest.getValues().size()); + configureInsertConcurrencyAndBatchSize(insertRequest.getRecords().size()); setBearerToken(); com.skyflow.generated.rest.resources.recordservice.requests.InsertRequest request = super.getBulkInsertRequestBody(insertRequest, super.getVaultConfig()); @@ -98,7 +98,7 @@ public CompletableFuture bulkInsertAsync( } } - return new com.skyflow.vault.data.InsertResponse(successRecords, errorRecords, insertRequest.getValues()); + return new com.skyflow.vault.data.InsertResponse(successRecords, errorRecords, insertRequest.getRecords()); }); } catch (ApiClientApiException e) { String bodyString = gson.toJson(e.body()); @@ -175,7 +175,7 @@ public CompletableFuture bulkDetokenizeAsync(DetokenizeReque private com.skyflow.vault.data.InsertResponse processSync( com.skyflow.generated.rest.resources.recordservice.requests.InsertRequest insertRequest, - ArrayList> originalPayload + ArrayList originalPayload ) throws ExecutionException, InterruptedException { LogUtil.printInfoLog(InfoLogs.PROCESSING_BATCHES.getLog()); List successRecords = new ArrayList<>(); @@ -283,7 +283,7 @@ private com.skyflow.generated.rest.types.DetokenizeResponse processDetokenizeBat List batch = batches.get(batchIndex); int batchNumber = batchIndex; CompletableFuture future = CompletableFuture - .supplyAsync(() -> insertBatch(batch, insertRequest.getTableName().get(), upsert), executor) + .supplyAsync(() -> insertBatch(batch, insertRequest.getTableName().isPresent() ? insertRequest.getTableName().get() : null, upsert), executor) .thenApply(response -> formatResponse(response, batchNumber, insertBatchSize)) .exceptionally(ex -> { errorRecords.addAll(handleBatchException(ex, batch, batchNumber)); @@ -298,13 +298,16 @@ private com.skyflow.generated.rest.types.DetokenizeResponse processDetokenizeBat } private InsertResponse insertBatch(List batch, String tableName, Upsert upsert) { - com.skyflow.generated.rest.resources.recordservice.requests.InsertRequest req = com.skyflow.generated.rest.resources.recordservice.requests.InsertRequest.builder() + com.skyflow.generated.rest.resources.recordservice.requests.InsertRequest.Builder req = com.skyflow.generated.rest.resources.recordservice.requests.InsertRequest.builder() .vaultId(this.getVaultConfig().getVaultId()) - .tableName(tableName) .records(batch) - .upsert(upsert) - .build(); - return this.getRecordsApi().insert(req); + .upsert(upsert); +// .build(); + if(tableName != null && !tableName.isEmpty()){ + req.tableName(tableName); + } + com.skyflow.generated.rest.resources.recordservice.requests.InsertRequest request = req.build(); + return this.getRecordsApi().insert(request); } private void configureInsertConcurrencyAndBatchSize(int totalRequests) { diff --git a/v3/src/main/java/com/skyflow/vault/data/InsertRecord.java b/v3/src/main/java/com/skyflow/vault/data/InsertRecord.java new file mode 100644 index 00000000..c6da54d2 --- /dev/null +++ b/v3/src/main/java/com/skyflow/vault/data/InsertRecord.java @@ -0,0 +1,66 @@ +package com.skyflow.vault.data; + +import java.util.List; +import java.util.Map; + +public class InsertRecord { + private final InsertRecordBuilder builder; + + private InsertRecord(InsertRecordBuilder builder) { + this.builder = builder; + } + + // Getters + public String getTable() { + return this.builder.table; + } + + public Map getData() { + return this.builder.data; + } + + public List getUpsert() { + return this.builder.upsert; + } + + public String getUpsertType() { + return this.builder.upsertType; + } + + // Builder Class + public static final class InsertRecordBuilder { + private String table; + private Map data; + private List upsert; + private String upsertType; + + public InsertRecordBuilder table(String table) { + this.table = table; + return this; + } + + public InsertRecordBuilder data(Map data) { + this.data = data; + return this; + } + + public InsertRecordBuilder upsert(List upsert) { + this.upsert = upsert; + return this; + } + + public InsertRecordBuilder upsertType(String upsertType) { + this.upsertType = upsertType; + return this; + } + + public InsertRecord build() { + return new InsertRecord(this); + } + } + + // Static entry point for builder + public static InsertRecordBuilder builder() { + return new InsertRecordBuilder(); + } +} diff --git a/v3/src/main/java/com/skyflow/vault/data/InsertRequest.java b/v3/src/main/java/com/skyflow/vault/data/InsertRequest.java index 732df960..590a2077 100644 --- a/v3/src/main/java/com/skyflow/vault/data/InsertRequest.java +++ b/v3/src/main/java/com/skyflow/vault/data/InsertRequest.java @@ -14,6 +14,7 @@ private InsertRequest(InsertRequestBuilder builder) { this.builder = builder; } + public static InsertRequestBuilder builder() { return new InsertRequestBuilder(); } @@ -26,11 +27,17 @@ public UpdateType getUpsertType() { return this.builder.upsertType; } + public ArrayList getRecords(){ + return this.builder.records; + } + public static final class InsertRequestBuilder extends BaseInsertRequestBuilder { private List upsert; private UpdateType upsertType; + private ArrayList records; + private InsertRequestBuilder() { super(); } @@ -41,12 +48,6 @@ public InsertRequestBuilder table(String table) { return this; } - @Override - public InsertRequestBuilder values(ArrayList> values) { - super.values(values); - return this; - } - public InsertRequestBuilder upsert(List upsert) { this.upsert = upsert; return this; @@ -57,6 +58,11 @@ public InsertRequestBuilder upsertType(UpdateType upsertType) { return this; } + public InsertRequestBuilder records(ArrayList records){ + this.records = records; + return this; + } + public InsertRequest build() { return new InsertRequest(this); } diff --git a/v3/src/main/java/com/skyflow/vault/data/InsertResponse.java b/v3/src/main/java/com/skyflow/vault/data/InsertResponse.java index a84e121c..870f0d86 100644 --- a/v3/src/main/java/com/skyflow/vault/data/InsertResponse.java +++ b/v3/src/main/java/com/skyflow/vault/data/InsertResponse.java @@ -19,8 +19,8 @@ public class InsertResponse { private List errors; // Internal fields. Should not be included in toString() output - private ArrayList> originalPayload; - private ArrayList> recordsToRetry; + private ArrayList originalPayload; + private ArrayList recordsToRetry; public InsertResponse(List successRecords, List errorRecords) { this.success = successRecords; @@ -30,7 +30,7 @@ public InsertResponse(List successRecords, List errorRecor public InsertResponse( List successRecords, List errorRecords, - ArrayList> originalPayload + ArrayList originalPayload ) { this.success = successRecords; this.errors = errorRecords; @@ -50,7 +50,7 @@ public List getErrors() { return this.errors; } - public ArrayList> getRecordsToRetry() { + public ArrayList getRecordsToRetry() { if (recordsToRetry == null) { recordsToRetry = new ArrayList<>(); recordsToRetry = errors.stream() diff --git a/v3/src/main/java/com/skyflow/vault/data/Success.java b/v3/src/main/java/com/skyflow/vault/data/Success.java index db302e6c..94a3d62d 100644 --- a/v3/src/main/java/com/skyflow/vault/data/Success.java +++ b/v3/src/main/java/com/skyflow/vault/data/Success.java @@ -14,12 +14,14 @@ public class Success { private Map> tokens; @Expose(serialize = true) private Map data; + @Expose(serialize = true) + private String table; public int getIndex() { return index; } - public Success(int index, String skyflow_id, Map> tokens, Map data) { + public Success(int index, String skyflow_id, Map> tokens, Map data, String table) { this.index = index; this.skyflow_id = skyflow_id; this.tokens = tokens; @@ -27,15 +29,19 @@ public Success(int index, String skyflow_id, Map> tokens, Ma } public String getSkyflowId() { - return skyflow_id; + return this.skyflow_id; } public Map> getTokens() { - return tokens; + return this.tokens; } public Map getData() { - return data; + return this.data; + } + + public String getTable(){ + return this.table; } @Override diff --git a/v3/test/java/com/skyflow/utils/UtilsTests.java b/v3/test/java/com/skyflow/utils/UtilsTests.java index d3780e83..e7373115 100644 --- a/v3/test/java/com/skyflow/utils/UtilsTests.java +++ b/v3/test/java/com/skyflow/utils/UtilsTests.java @@ -666,14 +666,15 @@ public void testValidateDetokenizeRequestEmptyRedaction() { @Test public void testValidateInsertRequestNullTable() { - ArrayList> values = new ArrayList<>(); + ArrayList values = new ArrayList<>(); + HashMap valueMap = new HashMap<>(); valueMap.put("key1", "value1"); - values.add(valueMap); + values.add(InsertRecord.builder().data(valueMap).build()); InsertRequest request = InsertRequest.builder() .table(null) - .values(values) + .records(values) .build(); try { @@ -685,14 +686,16 @@ public void testValidateInsertRequestNullTable() { @Test public void testValidateInsertRequestEmptyTable() { - ArrayList> values = new ArrayList<>(); + ArrayList values = new ArrayList<>(); + HashMap valueMap = new HashMap<>(); valueMap.put("key1", "value1"); - values.add(valueMap); + values.add(InsertRecord.builder().data(valueMap).build()); + InsertRequest request = InsertRequest.builder() .table("") - .values(values) + .records(values) .build(); try { @@ -706,7 +709,7 @@ public void testValidateInsertRequestEmptyTable() { public void testValidateInsertRequestNullValues() { InsertRequest request = InsertRequest.builder() .table("testTable") - .values(null) + .records(null) .build(); try { @@ -720,7 +723,7 @@ public void testValidateInsertRequestNullValues() { public void testValidateInsertRequestEmptyValues() { InsertRequest request = InsertRequest.builder() .table("testTable") - .values(new ArrayList<>()) + .records(new ArrayList<>()) .build(); try { diff --git a/v3/test/java/com/skyflow/vault/controller/VaultControllerTests.java b/v3/test/java/com/skyflow/vault/controller/VaultControllerTests.java index 811a9891..c011a4c0 100644 --- a/v3/test/java/com/skyflow/vault/controller/VaultControllerTests.java +++ b/v3/test/java/com/skyflow/vault/controller/VaultControllerTests.java @@ -7,6 +7,7 @@ import com.skyflow.errors.SkyflowException; import com.skyflow.utils.Constants; import com.skyflow.utils.validations.Validations; +import com.skyflow.vault.data.InsertRecord; import com.skyflow.vault.data.InsertRequest; import org.junit.After; import org.junit.Assert; @@ -89,10 +90,10 @@ private void invokeConfigureInsertConcurrencyAndBatchSize(VaultController contro method.invoke(controller, totalRequests); } - private ArrayList> generateValues(int noOfRecords) { - ArrayList> values = new ArrayList<>(); + private ArrayList generateValues(int noOfRecords) { + ArrayList values = new ArrayList<>(); for (int i = 0; i < noOfRecords; i++) { - values.add(new HashMap<>()); + values.add(InsertRecord.builder().data(new HashMap<>()).build()); } return values; @@ -100,7 +101,7 @@ private ArrayList> generateValues(int noOfRecords) { @Test public void testValidation_tableIsNull() { - InsertRequest req = InsertRequest.builder().table(null).values(generateValues(1)).build(); + InsertRequest req = InsertRequest.builder().table(null).records(generateValues(1)).build(); try { Validations.validateInsertRequest(req); fail("Expected SkyflowException for null table"); @@ -111,7 +112,7 @@ public void testValidation_tableIsNull() { @Test public void testValidation_tableIsEmpty() { - InsertRequest req = InsertRequest.builder().table(" ").values(generateValues(1)).build(); + InsertRequest req = InsertRequest.builder().table(" ").records(generateValues(1)).build(); try { Validations.validateInsertRequest(req); fail("Expected SkyflowException for empty table"); @@ -122,7 +123,7 @@ public void testValidation_tableIsEmpty() { @Test public void testValidation_valuesIsNull() { - InsertRequest req = InsertRequest.builder().table("table1").values(null).build(); + InsertRequest req = InsertRequest.builder().table("table1").records(null).build(); try { Validations.validateInsertRequest(req); fail("Expected SkyflowException for null values"); @@ -133,7 +134,7 @@ public void testValidation_valuesIsNull() { @Test public void testValidation_valuesIsEmpty() { - InsertRequest req = InsertRequest.builder().table("table1").values(new ArrayList<>()).build(); + InsertRequest req = InsertRequest.builder().table("table1").records(new ArrayList<>()).build(); try { Validations.validateInsertRequest(req); fail("Expected SkyflowException for empty values"); @@ -147,7 +148,7 @@ public void testValidation_upsertIsEmpty() throws SkyflowException { try { InsertRequest req = InsertRequest.builder() .table("table1") - .values(generateValues(1)) + .records(generateValues(1)) .upsert(new ArrayList<>()) .build(); Validations.validateInsertRequest(req); @@ -162,11 +163,11 @@ public void testValidation_upsertIsEmpty() throws SkyflowException { @Test public void testValidation_keyIsNullOrEmpty() { - ArrayList> values = new ArrayList<>(); + ArrayList values = new ArrayList<>(); HashMap map = new HashMap<>(); map.put(null, "value"); - values.add(map); - InsertRequest req = InsertRequest.builder().table("table1").values(values).build(); + values.add(InsertRecord.builder().data(map).build()); + InsertRequest req = InsertRequest.builder().table("table1").records(values).build(); try { Validations.validateInsertRequest(req); fail("Expected SkyflowException for null key in values"); @@ -178,8 +179,8 @@ public void testValidation_keyIsNullOrEmpty() { values.clear(); map = new HashMap<>(); map.put(" ", "value"); - values.add(map); - req = InsertRequest.builder().table("table1").values(values).build(); + values.add(InsertRecord.builder().data(map).build()); + req = InsertRequest.builder().table("table1").records(values).build(); try { Validations.validateInsertRequest(req); fail("Expected SkyflowException for empty key in values"); @@ -190,11 +191,11 @@ public void testValidation_keyIsNullOrEmpty() { @Test public void testValidation_valueIsNullOrEmpty() { - ArrayList> values = new ArrayList<>(); + ArrayList values = new ArrayList<>(); HashMap map = new HashMap<>(); map.put("field1", null); - values.add(map); - InsertRequest req = InsertRequest.builder().table("table1").values(values).build(); + values.add(InsertRecord.builder().data(map).build()); + InsertRequest req = InsertRequest.builder().table("table1").records(values).build(); try { Validations.validateInsertRequest(req); fail("Expected SkyflowException for null value in values"); @@ -206,8 +207,8 @@ public void testValidation_valueIsNullOrEmpty() { values.clear(); map = new HashMap<>(); map.put("field1", " "); - values.add(map); - req = InsertRequest.builder().table("table1").values(values).build(); + values.add(InsertRecord.builder().data(map).build()); + req = InsertRequest.builder().table("table1").records(values).build(); try { Validations.validateInsertRequest(req); fail("Expected SkyflowException for empty value in values"); @@ -233,7 +234,7 @@ public void testCustomValidBatchAndConcurrency() throws Exception { writeEnv("INSERT_BATCH_SIZE=5\nINSERT_CONCURRENCY_LIMIT=3"); VaultController controller = createController(); - InsertRequest insertRequest = InsertRequest.builder().table("table1").values(generateValues(20)).build(); + InsertRequest insertRequest = InsertRequest.builder().table("table1").records(generateValues(20)).build(); try { controller.bulkInsert(insertRequest); @@ -250,7 +251,7 @@ public void testBatchSizeExceedsMax() throws Exception { writeEnv("INSERT_BATCH_SIZE=1100\nINSERT_CONCURRENCY_LIMIT=3"); VaultController controller = createController(); - InsertRequest insertRequest = InsertRequest.builder().table("table1").values(generateValues(50)).build(); + InsertRequest insertRequest = InsertRequest.builder().table("table1").records(generateValues(50)).build(); try { controller.bulkInsert(insertRequest); @@ -265,7 +266,7 @@ public void testBatchSizeExceedsMax() throws Exception { public void testConcurrencyExceedsMax() throws Exception { writeEnv("INSERT_CONCURRENCY_LIMIT=110"); VaultController controller = createController(); - InsertRequest insertRequest = InsertRequest.builder().table("table1").values(generateValues(50)).build(); + InsertRequest insertRequest = InsertRequest.builder().table("table1").records(generateValues(50)).build(); try { @@ -281,7 +282,7 @@ public void testConcurrencyExceedsMax() throws Exception { public void testBatchSizeZeroOrNegative() throws Exception { writeEnv("INSERT_BATCH_SIZE=0"); VaultController controller = createController(); - InsertRequest insertRequest = InsertRequest.builder().table("table1").values(generateValues(10)).build(); + InsertRequest insertRequest = InsertRequest.builder().table("table1").records(generateValues(10)).build(); try { controller.bulkInsert(insertRequest); @@ -306,7 +307,7 @@ public void testBatchSizeZeroOrNegative() throws Exception { public void testConcurrencyZeroOrNegative() throws Exception { writeEnv("INSERT_CONCURRENCY_LIMIT=0"); VaultController controller = createController(); - InsertRequest insertRequest = InsertRequest.builder().table("table1").values(generateValues(10)).build(); + InsertRequest insertRequest = InsertRequest.builder().table("table1").records(generateValues(10)).build(); try { controller.bulkInsert(insertRequest); @@ -335,7 +336,7 @@ public void testConcurrencyZeroOrNegative() throws Exception { public void testTotalRequestsLessThanBatchSize() throws Exception { writeEnv("INSERT_BATCH_SIZE=100\nINSERT_CONCURRENCY_LIMIT=10"); VaultController controller = createController(); - InsertRequest insertRequest = InsertRequest.builder().table("table1").values(generateValues(10)).build(); + InsertRequest insertRequest = InsertRequest.builder().table("table1").records(generateValues(10)).build(); try { @@ -351,7 +352,7 @@ public void testTotalRequestsLessThanBatchSize() throws Exception { @Test public void testTotalRequestsZero() throws Exception { VaultController controller = createController(); - InsertRequest insertRequest = InsertRequest.builder().table("table1").values(generateValues(0)).build(); + InsertRequest insertRequest = InsertRequest.builder().table("table1").records(generateValues(0)).build(); boolean exceptionThrown = false; @@ -369,7 +370,7 @@ public void testTotalRequestsZero() throws Exception { public void testHighConcurrencyForLowRecords() throws Exception { writeEnv("INSERT_BATCH_SIZE=1000\nINSERT_CONCURRENCY_LIMIT=100"); VaultController controller = createController(); - InsertRequest insertRequest = InsertRequest.builder().table("table1").values(generateValues(10000)).build(); + InsertRequest insertRequest = InsertRequest.builder().table("table1").records(generateValues(10000)).build(); try { controller.bulkInsert(insertRequest); @@ -386,7 +387,7 @@ public void testHighConcurrencyForLowRecords() throws Exception { public void testFractionalLastBatch() throws Exception { writeEnv("INSERT_BATCH_SIZE=100"); VaultController controller = createController(); - InsertRequest insertRequest = InsertRequest.builder().table("table1").values(generateValues(9050)).build(); + InsertRequest insertRequest = InsertRequest.builder().table("table1").records(generateValues(9050)).build(); try { controller.bulkInsert(insertRequest); diff --git a/v3/test/java/com/skyflow/vault/data/InsertTests.java b/v3/test/java/com/skyflow/vault/data/InsertTests.java index ff71fa19..be59a4cd 100644 --- a/v3/test/java/com/skyflow/vault/data/InsertTests.java +++ b/v3/test/java/com/skyflow/vault/data/InsertTests.java @@ -28,7 +28,7 @@ public class InsertTests { private static String vaultID = null; private static String clusterID = null; private static String table = null; - private static ArrayList> values = null; + private static ArrayList values = null; private static ArrayList> tokens = null; private static HashMap valueMap = null; private static HashMap tokenMap = null; @@ -73,19 +73,20 @@ public void setupTest() { @Test public void testValidInputInInsertRequestValidations() { try { - values.add(valueMap); + InsertRecord record = InsertRecord.builder().data(valueMap).build(); + values.add(record); tokens.add(tokenMap); InsertRequest request = InsertRequest.builder() .table(table) .upsert(upsert) - .values(values) + .records(values) .build(); Validations.validateInsertRequest(request); Assert.assertEquals(table, request.getTable()); Assert.assertEquals(upsert, request.getUpsert()); - Assert.assertEquals(1, request.getValues().size()); + Assert.assertEquals(1, request.getRecords().size()); } catch (SkyflowException e) { Assert.fail(INVALID_EXCEPTION_THROWN); } @@ -94,18 +95,19 @@ public void testValidInputInInsertRequestValidations() { @Test public void testValidInputInInsertRequestValidationsWithTokenModeDisable() { try { - values.add(valueMap); + InsertRecord record = InsertRecord.builder().data(valueMap).build(); + values.add(record); tokens.add(tokenMap); InsertRequest request = InsertRequest.builder() .table(table) .upsert(upsert) - .values(values) + .records(values) .build(); Validations.validateInsertRequest(request); Assert.assertEquals(table, request.getTable()); Assert.assertEquals(upsert, request.getUpsert()); - Assert.assertEquals(1, request.getValues().size()); + Assert.assertEquals(1, request.getRecords().size()); } catch (SkyflowException e) { Assert.fail(INVALID_EXCEPTION_THROWN); } @@ -158,7 +160,7 @@ public void testNoValuesInInsertRequestValidations() { @Test public void testEmptyValuesInInsertRequestValidations() { - InsertRequest request = InsertRequest.builder().table(table).values(values).build(); + InsertRequest request = InsertRequest.builder().table(table).records(values).build(); try { Validations.validateInsertRequest(request); Assert.fail(EXCEPTION_NOT_THROWN); @@ -174,8 +176,9 @@ public void testEmptyValuesInInsertRequestValidations() { @Test public void testEmptyKeyInValuesInInsertRequestValidations() { valueMap.put("", "test_value_3"); - values.add(valueMap); - InsertRequest request = InsertRequest.builder().table(table).values(values).build(); + InsertRecord record = InsertRecord.builder().data(valueMap).build(); + values.add(record); + InsertRequest request = InsertRequest.builder().table(table).records(values).build(); try { Validations.validateInsertRequest(request); Assert.fail(EXCEPTION_NOT_THROWN); @@ -191,8 +194,9 @@ public void testEmptyKeyInValuesInInsertRequestValidations() { @Test public void testEmptyValueInValuesInInsertRequestValidations() { valueMap.put("test_column_3", ""); - values.add(valueMap); - InsertRequest request = InsertRequest.builder().table(table).values(values).build(); + InsertRecord record = InsertRecord.builder().data(valueMap).build(); + values.add(record); + InsertRequest request = InsertRequest.builder().table(table).records(values).build(); try { Validations.validateInsertRequest(request); Assert.fail(EXCEPTION_NOT_THROWN); @@ -207,8 +211,9 @@ public void testEmptyValueInValuesInInsertRequestValidations() { @Test public void testEmptyUpsertInInsertRequestValidations() { - values.add(valueMap); - InsertRequest request = InsertRequest.builder().table(table).values(values).upsert(new ArrayList<>()).build(); + InsertRecord record = InsertRecord.builder().data(valueMap).build(); + values.add(record); + InsertRequest request = InsertRequest.builder().table(table).records(values).upsert(new ArrayList<>()).build(); try { Validations.validateInsertRequest(request); Assert.fail(EXCEPTION_NOT_THROWN); @@ -226,7 +231,7 @@ public void testInsertResponse() { try { Map value = new HashMap<>(); value.put("test_column_1", "test_value_1"); - Success success = new Success(0, "id", null, null); + Success success = new Success(0, "id", null, null, "table"); List successList = new ArrayList<>(); successList.add(success); @@ -245,7 +250,7 @@ public void testInsertErrorResponse() { try { HashMap value = new HashMap<>(); value.put("test_column_1", "test_value_1"); - Success success = new Success(0, "id", null, value); + Success success = new Success(0, "id", null, value, "table"); List successList = new ArrayList<>(); successList.add(success);