Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions common/src/main/java/com/skyflow/errors/ErrorMessage.java
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,12 @@ public enum ErrorMessage {
EmptyTokenInDetokenizeData("%s0 Validation error. Invalid data tokens. Specify a valid data token."),
TokensSizeExceedError("%s0 Maximum number of tokens exceeded. The limit is 10000."),

// Delete Tokens
DeleteTokensRequestNull("%s0 Validation error. DeleteTokensRequest object is null. Specify a valid DeleteTokensRequest object."),
EmptyDeleteTokensData("%s0 Validation error. Tokens list is empty. Specify at least one token to delete."),
EmptyTokenInDeleteTokensData("%s0 Validation error. Invalid token in delete tokens request. Specify a valid token."),
DeleteTokensSizeExceedError("%s0 Maximum number of tokens exceeded. The limit is 10000."),

// Get
IdsKeyError("%s0 Validation error. 'ids' key is missing from the payload. Specify an 'ids' key."),
EmptyIds("%s0 Validation error. 'ids' can't be empty. Specify at least one id."),
Expand Down Expand Up @@ -128,6 +134,13 @@ public enum ErrorMessage {
// Tokenize
ColumnValuesKeyErrorTokenize("%s0 Validation error. 'columnValues' key is missing from the payload. Specify a 'columnValues' key."),
EmptyColumnGroupInColumnValue("%s0 Validation error. Invalid column group in column value. Specify a valid column group."),
TokenizeRequestNull("%s0 Validation error. TokenizeRequest object is null. Specify a valid TokenizeRequest object."),
EmptyTokenizeData("%s0 Validation error. Tokenize data is empty. Specify at least one tokenize record."),
TokenizeRecordNull("%s0 Validation error. TokenizeRecord in the list is null. Specify a valid TokenizeRecord object."),
EmptyValueInTokenizeRecord("%s0 Validation error. Value in TokenizeRecord is null or empty. Specify a valid value."),
EmptyTokenGroupNamesInTokenizeRecord("%s0 Validation error. TokenGroupNames in TokenizeRecord is null or empty. Specify at least one token group name."),
EmptyTokenGroupNameInTokenizeRecord("%s0 Validation error. Token group name in TokenizeRecord is null or empty. Specify a valid token group name."),
TokenizeDataSizeExceedError("%s0 Maximum number of tokenize records exceeded. The limit is 10000."),

// Connection
InvalidRequestHeaders("%s0 Validation error. Request headers aren't valid. Specify valid request headers."),
Expand Down
11 changes: 11 additions & 0 deletions common/src/main/java/com/skyflow/logs/ErrorLogs.java
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,18 @@ public enum ErrorLogs {
COLUMN_VALUES_IS_REQUIRED_TOKENIZE("Invalid %s1 request. ColumnValues are required."),
EMPTY_OR_NULL_COLUMN_GROUP_IN_COLUMN_VALUES("Invalid %s1 request. Column group can not be null or empty in column values at index %s2."),
TOKENIZE_REQUEST_REJECTED("Tokenize request resulted in failure."),
TOKENIZE_REQUEST_NULL("Invalid %s1 request. Tokenize request can not be null."),
EMPTY_TOKENIZE_DATA("Invalid %s1 request. Tokenize data can not be empty."),
TOKENIZE_RECORD_NULL("Invalid %s1 request. TokenizeRecord in list can not be null."),
EMPTY_VALUE_IN_TOKENIZE_RECORD("Invalid %s1 request. Value in TokenizeRecord can not be null or empty."),
EMPTY_TOKEN_GROUP_NAMES_IN_TOKENIZE_RECORD("Invalid %s1 request. TokenGroupNames in TokenizeRecord can not be null or empty."),
EMPTY_TOKEN_GROUP_NAME_IN_TOKENIZE_RECORD("Invalid %s1 request. Token group name in TokenizeRecord can not be null or empty at index %s2."),
TOKENIZE_DATA_SIZE_EXCEED("Maximum number of tokenize records exceeded. The limit is 10000."),
DELETE_REQUEST_REJECTED("Delete request resulted in failure."),
DELETE_TOKENS_REQUEST_NULL("Invalid %s1 request. DeleteTokens request can not be null."),
EMPTY_DELETE_TOKENS_DATA("Invalid %s1 request. Delete tokens data can not be empty."),
EMPTY_OR_NULL_TOKEN_IN_DELETE_TOKENS_DATA("Invalid %s1 request. Token can not be null or empty in delete tokens data at index %s2."),
DELETE_TOKENS_SIZE_EXCEED("Maximum number of tokens exceeded. The limit is 10000."),

// invoke connection interface
INVOKE_CONNECTION_INVALID_CONNECTION_URL("Invalid %s1 request. Connection URL is not a valid URL."),
Expand Down
6 changes: 6 additions & 0 deletions common/src/main/java/com/skyflow/logs/InfoLogs.java
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,12 @@ public enum InfoLogs {
DELETE_REQUEST_RESOLVED("Delete request resolved."),
DELETE_SUCCESS("Data deleted."),

// Delete Tokens interface
DELETE_TOKENS_TRIGGERED("DeleteTokens method triggered."),
VALIDATE_DELETE_TOKENS_REQUEST("Validating delete tokens request."),
DELETE_TOKENS_REQUEST_RESOLVED("DeleteTokens request resolved."),
DELETE_TOKENS_SUCCESS("Tokens deleted."),

// Query interface
QUERY_TRIGGERED("Query method triggered."),
VALIDATING_QUERY_REQUEST("Validating query request."),
Expand Down
80 changes: 53 additions & 27 deletions v3/src/main/java/com/skyflow/VaultClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@
import com.skyflow.errors.SkyflowException;
import com.skyflow.generated.rest.ApiClient;
import com.skyflow.generated.rest.ApiClientBuilder;
import com.skyflow.generated.rest.resources.recordservice.RecordserviceClient;
import com.skyflow.generated.rest.resources.recordservice.requests.InsertRequest;
import com.skyflow.generated.rest.types.EnumUpdateType;
import com.skyflow.generated.rest.types.InsertRecordData;
import com.skyflow.generated.rest.types.Upsert;
import com.skyflow.generated.rest.resources.flowservice.FlowserviceClient;
import com.skyflow.generated.rest.resources.flowservice.requests.V1InsertRequest;
import com.skyflow.generated.rest.types.FlowEnumUpdateType;
import com.skyflow.generated.rest.types.V1InsertRecordData;
import com.skyflow.generated.rest.types.V1Upsert;
import com.skyflow.logs.InfoLogs;
import com.skyflow.serviceaccount.util.Token;
import com.skyflow.utils.Constants;
Expand All @@ -21,6 +21,9 @@
import com.skyflow.utils.validations.Validations;
import com.skyflow.vault.data.DetokenizeRequest;
import com.skyflow.vault.data.InsertRecord;
import com.skyflow.vault.data.DeleteTokensRequest;
import com.skyflow.vault.data.TokenizeRequest;
import com.skyflow.vault.data.TokenizeRecord;
import io.github.cdimascio.dotenv.Dotenv;
import io.github.cdimascio.dotenv.DotenvException;
import okhttp3.OkHttpClient;
Expand Down Expand Up @@ -48,8 +51,8 @@ protected VaultClient(VaultConfig vaultConfig, Credentials credentials) throws S
updateVaultURL();
}

protected RecordserviceClient getRecordsApi() {
return this.apiClient.recordservice();
protected FlowserviceClient getRecordsApi() {
return this.apiClient.flowservice();
}

protected VaultConfig getVaultConfig() {
Expand Down Expand Up @@ -141,34 +144,34 @@ protected void updateExecutorInHTTP() {
apiClientBuilder.httpClient(httpClient);
}

protected InsertRequest getBulkInsertRequestBody(com.skyflow.vault.data.InsertRequest request, VaultConfig config) {
protected V1InsertRequest getBulkInsertRequestBody(com.skyflow.vault.data.InsertRequest request, VaultConfig config) {
ArrayList<InsertRecord> records = request.getRecords();
List<InsertRecordData> insertRecordDataList = new ArrayList<>();
List<V1InsertRecordData> insertRecordDataList = new ArrayList<>();
for (InsertRecord record : records) {
InsertRecordData.Builder data = InsertRecordData.builder();
V1InsertRecordData.Builder data = V1InsertRecordData.builder();
data.data(record.getData());
if (record.getTable() != null && !record.getTable().isEmpty()) {
data.tableName(record.getTable());
}
if (record.getUpsert() != null && !record.getUpsert().isEmpty()) {
if (record.getUpsertType() != null) {
EnumUpdateType updateType = null;
FlowEnumUpdateType updateType = null;
if (record.getUpsertType() == UpsertType.REPLACE) {
updateType = EnumUpdateType.REPLACE;
updateType = FlowEnumUpdateType.REPLACE;
} else if (record.getUpsertType() == UpsertType.UPDATE) {
updateType = EnumUpdateType.UPDATE;
updateType = FlowEnumUpdateType.UPDATE;
}
Upsert upsert = Upsert.builder().uniqueColumns(record.getUpsert()).updateType(updateType).build();
V1Upsert upsert = V1Upsert.builder().uniqueColumns(record.getUpsert()).updateType(updateType).build();
data.upsert(upsert);
} else {
Upsert upsert = Upsert.builder().uniqueColumns(record.getUpsert()).build();
V1Upsert upsert = V1Upsert.builder().uniqueColumns(record.getUpsert()).build();
data.upsert(upsert);
}
}
insertRecordDataList.add(data.build());
}

InsertRequest.Builder builder = InsertRequest.builder()
V1InsertRequest.Builder builder = V1InsertRequest.builder()
.vaultId(config.getVaultId())
.records(insertRecordDataList);

Expand All @@ -178,34 +181,34 @@ protected InsertRequest getBulkInsertRequestBody(com.skyflow.vault.data.InsertRe

if (request.getUpsert() != null && !request.getUpsert().isEmpty()) {
if (request.getUpsertType() != null) {
EnumUpdateType updateType = null;
FlowEnumUpdateType updateType = null;
if (request.getUpsertType() == UpsertType.REPLACE) {
updateType = EnumUpdateType.REPLACE;
updateType = FlowEnumUpdateType.REPLACE;
} else if (request.getUpsertType() == UpsertType.UPDATE) {
updateType = EnumUpdateType.UPDATE;
updateType = FlowEnumUpdateType.UPDATE;
}
Upsert upsert = Upsert.builder().uniqueColumns(request.getUpsert()).updateType(updateType).build();
V1Upsert upsert = V1Upsert.builder().uniqueColumns(request.getUpsert()).updateType(updateType).build();
builder.upsert(upsert);
} else {
Upsert upsert = Upsert.builder().uniqueColumns(request.getUpsert()).build();
V1Upsert upsert = V1Upsert.builder().uniqueColumns(request.getUpsert()).build();
builder.upsert(upsert);
}
}
return builder.build();

}

protected com.skyflow.generated.rest.resources.recordservice.requests.DetokenizeRequest getDetokenizeRequestBody(DetokenizeRequest request) {
protected com.skyflow.generated.rest.resources.flowservice.requests.V1FlowDetokenizeRequest getDetokenizeRequestBody(DetokenizeRequest request) {
List<String> tokens = request.getTokens();
com.skyflow.generated.rest.resources.recordservice.requests.DetokenizeRequest.Builder builder =
com.skyflow.generated.rest.resources.recordservice.requests.DetokenizeRequest.builder()
com.skyflow.generated.rest.resources.flowservice.requests.V1FlowDetokenizeRequest.Builder builder =
com.skyflow.generated.rest.resources.flowservice.requests.V1FlowDetokenizeRequest.builder()
.vaultId(this.vaultConfig.getVaultId())
.tokens(tokens);
if (request.getTokenGroupRedactions() != null) {
List<com.skyflow.generated.rest.types.TokenGroupRedactions> tokenGroupRedactionsList = new ArrayList<>();
List<com.skyflow.generated.rest.types.V1TokenGroupRedactions> tokenGroupRedactionsList = new ArrayList<>();
for (com.skyflow.vault.data.TokenGroupRedactions tokenGroupRedactions : request.getTokenGroupRedactions()) {
com.skyflow.generated.rest.types.TokenGroupRedactions redactions =
com.skyflow.generated.rest.types.TokenGroupRedactions.builder()
com.skyflow.generated.rest.types.V1TokenGroupRedactions redactions =
com.skyflow.generated.rest.types.V1TokenGroupRedactions.builder()
.tokenGroupName(tokenGroupRedactions.getTokenGroupName())
.redaction(tokenGroupRedactions.getRedaction())
.build();
Expand All @@ -216,4 +219,27 @@ protected com.skyflow.generated.rest.resources.recordservice.requests.Detokenize
}
return builder.build();
}

protected com.skyflow.generated.rest.resources.flowservice.requests.V1FlowDeleteTokenRequest getDeleteTokensRequestBody(DeleteTokensRequest request) {
return com.skyflow.generated.rest.resources.flowservice.requests.V1FlowDeleteTokenRequest.builder()
.vaultId(this.vaultConfig.getVaultId())
.tokens(request.getTokens())
.build();
}

protected com.skyflow.generated.rest.resources.flowservice.requests.V1FlowTokenizeRequest getTokenizeRequestBody(TokenizeRequest request) {
List<com.skyflow.generated.rest.types.V1FlowTokenizeRequestObject> dataList = new ArrayList<>();
for (TokenizeRecord record : request.getData()) {
com.skyflow.generated.rest.types.V1FlowTokenizeRequestObject obj =
com.skyflow.generated.rest.types.V1FlowTokenizeRequestObject.builder()
.value(record.getValue())
.tokenGroupNames(record.getTokenGroupNames())
.build();
dataList.add(obj);
}
return com.skyflow.generated.rest.resources.flowservice.requests.V1FlowTokenizeRequest.builder()
.vaultId(this.vaultConfig.getVaultId())
.data(dataList)
.build();
}
}
10 changes: 5 additions & 5 deletions v3/src/main/java/com/skyflow/generated/rest/ApiClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,29 +5,29 @@

import com.skyflow.generated.rest.core.ClientOptions;
import com.skyflow.generated.rest.core.Suppliers;
import com.skyflow.generated.rest.resources.flowservice.FlowserviceClient;
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> recordsClient;

protected final Supplier<RecordserviceClient> recordserviceClient;
protected final Supplier<FlowserviceClient> flowserviceClient;

public ApiClient(ClientOptions clientOptions) {
this.clientOptions = clientOptions;
this.recordsClient = Suppliers.memoize(() -> new RecordsClient(clientOptions));
this.recordserviceClient = Suppliers.memoize(() -> new RecordserviceClient(clientOptions));
this.flowserviceClient = Suppliers.memoize(() -> new FlowserviceClient(clientOptions));
}

public RecordsClient records() {
return this.recordsClient.get();
}

public RecordserviceClient recordservice() {
return this.recordserviceClient.get();
public FlowserviceClient flowservice() {
return this.flowserviceClient.get();
}

public static ApiClientBuilder builder() {
Expand Down
10 changes: 5 additions & 5 deletions v3/src/main/java/com/skyflow/generated/rest/AsyncApiClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,29 +5,29 @@

import com.skyflow.generated.rest.core.ClientOptions;
import com.skyflow.generated.rest.core.Suppliers;
import com.skyflow.generated.rest.resources.flowservice.AsyncFlowserviceClient;
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<AsyncRecordsClient> recordsClient;

protected final Supplier<AsyncRecordserviceClient> recordserviceClient;
protected final Supplier<AsyncFlowserviceClient> flowserviceClient;

public AsyncApiClient(ClientOptions clientOptions) {
this.clientOptions = clientOptions;
this.recordsClient = Suppliers.memoize(() -> new AsyncRecordsClient(clientOptions));
this.recordserviceClient = Suppliers.memoize(() -> new AsyncRecordserviceClient(clientOptions));
this.flowserviceClient = Suppliers.memoize(() -> new AsyncFlowserviceClient(clientOptions));
}

public AsyncRecordsClient records() {
return this.recordsClient.get();
}

public AsyncRecordserviceClient recordservice() {
return this.recordserviceClient.get();
public AsyncFlowserviceClient flowservice() {
return this.flowserviceClient.get();
}

public static AsyncApiClientBuilder builder() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,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.352");
put("X-Fern-SDK-Version", "0.0.98");
}
});
this.headerSuppliers = headerSuppliers;
Expand Down
Loading
Loading