response) {
+ String message =
+ formatExceptionMessage(operationId, response.statusCode(), response.body());
+ return new ApiException(
+ response.statusCode(), message, response.headers(), response.body());
+ }
+
+ /**
+ * Normalizes any failure raised while performing the call into the single failure type callers
+ * are told to expect. Transport-level errors surfaced by {@code HttpClient.sendAsync} -
+ * connection refused, DNS failures, TLS errors, timeouts - would otherwise reach the caller as
+ * a raw {@link java.io.IOException}, which makes the documented {@code (ApiException)
+ * e.getCause()} throw {@link ClassCastException}.
+ *
+ * {@link CancellationException} is passed through unchanged: a cancelled call is not an API
+ * failure.
+ */
+ private static Throwable toApiFailure(Throwable throwable) {
+ Throwable cause = throwable;
+ while ((cause instanceof CompletionException || cause instanceof ExecutionException)
+ && cause.getCause() != null) {
+ cause = cause.getCause();
+ }
+ if (cause instanceof ApiException || cause instanceof CancellationException) {
+ return cause;
+ }
+ return new ApiException(cause);
+ }
+
+ private String formatExceptionMessage(String operationId, int statusCode, String body) {
+ if (body == null || body.isEmpty()) {
+ body = "[no body]";
+ }
+ return operationId + " call failed with: " + statusCode + " - " + body;
+ }
+
+ /**
+ * Get a Compliance Orchestrator screening's result Returns the result of a screening
+ * started by `POST /v1/compliance/orchestrator/screenings`, with a result per
+ * workflow step and an audit log. Safe to poll: a screening still in flight reports
+ * `PENDING` or `RUNNING`. Only screenings owned by the requesting tenant
+ * are returned.
+ *
+ * @param screeningId The screening's identifier, returned by `POST
+ * /v1/compliance/orchestrator/screenings`. (required)
+ * @return CompletableFuture<ApiResponse<GetScreeningResultResponse>>, which
+ * completes exceptionally with an {@link ApiException} if the API call fails
+ */
+ public CompletableFuture> getScreeningResult(
+ String screeningId) {
+ try {
+ HttpRequest.Builder localVarRequestBuilder =
+ getScreeningResultRequestBuilder(screeningId);
+ return memberVarHttpClient
+ .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
+ .thenComposeAsync(
+ localVarResponse -> {
+ if (memberVarAsyncResponseInterceptor != null) {
+ memberVarAsyncResponseInterceptor.accept(localVarResponse);
+ }
+ if (localVarResponse.statusCode() / 100 != 2) {
+ return CompletableFuture.failedFuture(
+ getApiException(
+ "getScreeningResult", localVarResponse));
+ }
+ try {
+ String responseBody = localVarResponse.body();
+ return CompletableFuture.completedFuture(
+ new ApiResponse(
+ localVarResponse.statusCode(),
+ localVarResponse.headers().map(),
+ responseBody == null || responseBody.isBlank()
+ ? null
+ : memberVarObjectMapper.readValue(
+ responseBody,
+ new TypeReference<
+ GetScreeningResultResponse>() {})));
+ } catch (IOException e) {
+ return CompletableFuture.failedFuture(new ApiException(e));
+ }
+ })
+ .handle(
+ (localVarApiResponse, localVarThrowable) ->
+ localVarThrowable == null
+ ? CompletableFuture.completedFuture(localVarApiResponse)
+ : CompletableFuture
+ .>
+ failedFuture(
+ toApiFailure(
+ localVarThrowable)))
+ .thenCompose(localVarNormalized -> localVarNormalized);
+ } catch (ApiException e) {
+ return CompletableFuture.failedFuture(e);
+ }
+ }
+
+ private HttpRequest.Builder getScreeningResultRequestBuilder(String screeningId)
+ throws ApiException {
+ ValidationUtils.assertParamExistsAndNotEmpty(
+ "getScreeningResult", "screeningId", screeningId);
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath =
+ "/compliance/orchestrator/screenings/{screeningId}"
+ .replace("{screeningId}", ApiClient.urlEncode(screeningId.toString()));
+
+ localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+
+ localVarRequestBuilder.header("Accept", "application/json");
+
+ localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
+ if (memberVarReadTimeout != null) {
+ localVarRequestBuilder.timeout(memberVarReadTimeout);
+ }
+ if (memberVarInterceptor != null) {
+ memberVarInterceptor.accept(localVarRequestBuilder);
+ }
+ return localVarRequestBuilder;
+ }
+ /**
+ * Get a Compliance Orchestrator workflow Returns a workflow's status and its steps in
+ * execution order. Read it to see what a given `workflowId` will screen, and which
+ * fields its rules may reference.
+ *
+ * @param workflowId The workflow's identifier. (required)
+ * @return CompletableFuture<ApiResponse<GetWorkflowResponse>>, which completes
+ * exceptionally with an {@link ApiException} if the API call fails
+ */
+ public CompletableFuture> getWorkflow(String workflowId) {
+ try {
+ HttpRequest.Builder localVarRequestBuilder = getWorkflowRequestBuilder(workflowId);
+ return memberVarHttpClient
+ .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
+ .thenComposeAsync(
+ localVarResponse -> {
+ if (memberVarAsyncResponseInterceptor != null) {
+ memberVarAsyncResponseInterceptor.accept(localVarResponse);
+ }
+ if (localVarResponse.statusCode() / 100 != 2) {
+ return CompletableFuture.failedFuture(
+ getApiException("getWorkflow", localVarResponse));
+ }
+ try {
+ String responseBody = localVarResponse.body();
+ return CompletableFuture.completedFuture(
+ new ApiResponse(
+ localVarResponse.statusCode(),
+ localVarResponse.headers().map(),
+ responseBody == null || responseBody.isBlank()
+ ? null
+ : memberVarObjectMapper.readValue(
+ responseBody,
+ new TypeReference<
+ GetWorkflowResponse>() {})));
+ } catch (IOException e) {
+ return CompletableFuture.failedFuture(new ApiException(e));
+ }
+ })
+ .handle(
+ (localVarApiResponse, localVarThrowable) ->
+ localVarThrowable == null
+ ? CompletableFuture.completedFuture(localVarApiResponse)
+ : CompletableFuture
+ .>failedFuture(
+ toApiFailure(localVarThrowable)))
+ .thenCompose(localVarNormalized -> localVarNormalized);
+ } catch (ApiException e) {
+ return CompletableFuture.failedFuture(e);
+ }
+ }
+
+ private HttpRequest.Builder getWorkflowRequestBuilder(String workflowId) throws ApiException {
+ ValidationUtils.assertParamExistsAndNotEmpty("getWorkflow", "workflowId", workflowId);
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath =
+ "/compliance/orchestrator/workflows/{workflowId}"
+ .replace("{workflowId}", ApiClient.urlEncode(workflowId.toString()));
+
+ localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+
+ localVarRequestBuilder.header("Accept", "application/json");
+
+ localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
+ if (memberVarReadTimeout != null) {
+ localVarRequestBuilder.timeout(memberVarReadTimeout);
+ }
+ if (memberVarInterceptor != null) {
+ memberVarInterceptor.accept(localVarRequestBuilder);
+ }
+ return localVarRequestBuilder;
+ }
+ /**
+ * Trigger a Compliance Orchestrator screening Starts a compliance screening against an active
+ * workflow and returns a `screeningId`. The screening runs asynchronously — poll
+ * `GET /v1/compliance/orchestrator/screenings/{screeningId}` for the result. Unlike
+ * the screening that applies automatically to submitted transactions under
+ * `/v1/screening`, this is called on demand, before anything exists on-chain.
+ *
+ * @param triggerScreeningRequest (required)
+ * @param idempotencyKey A unique identifier for the request. If the request is sent multiple
+ * times with the same idempotency key, the server will return the same response as the
+ * first request. The idempotency key is valid for 24 hours. (optional)
+ * @return CompletableFuture<ApiResponse<TriggerScreeningResponse>>, which completes
+ * exceptionally with an {@link ApiException} if the API call fails
+ */
+ public CompletableFuture> triggerScreening(
+ TriggerScreeningRequest triggerScreeningRequest, String idempotencyKey) {
+ try {
+ HttpRequest.Builder localVarRequestBuilder =
+ triggerScreeningRequestBuilder(triggerScreeningRequest, idempotencyKey);
+ return memberVarHttpClient
+ .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
+ .thenComposeAsync(
+ localVarResponse -> {
+ if (memberVarAsyncResponseInterceptor != null) {
+ memberVarAsyncResponseInterceptor.accept(localVarResponse);
+ }
+ if (localVarResponse.statusCode() / 100 != 2) {
+ return CompletableFuture.failedFuture(
+ getApiException("triggerScreening", localVarResponse));
+ }
+ try {
+ String responseBody = localVarResponse.body();
+ return CompletableFuture.completedFuture(
+ new ApiResponse(
+ localVarResponse.statusCode(),
+ localVarResponse.headers().map(),
+ responseBody == null || responseBody.isBlank()
+ ? null
+ : memberVarObjectMapper.readValue(
+ responseBody,
+ new TypeReference<
+ TriggerScreeningResponse>() {})));
+ } catch (IOException e) {
+ return CompletableFuture.failedFuture(new ApiException(e));
+ }
+ })
+ .handle(
+ (localVarApiResponse, localVarThrowable) ->
+ localVarThrowable == null
+ ? CompletableFuture.completedFuture(localVarApiResponse)
+ : CompletableFuture
+ .>
+ failedFuture(
+ toApiFailure(
+ localVarThrowable)))
+ .thenCompose(localVarNormalized -> localVarNormalized);
+ } catch (ApiException e) {
+ return CompletableFuture.failedFuture(e);
+ }
+ }
+
+ private HttpRequest.Builder triggerScreeningRequestBuilder(
+ TriggerScreeningRequest triggerScreeningRequest, String idempotencyKey)
+ throws ApiException {
+ ValidationUtils.assertParamExists(
+ "triggerScreening", "triggerScreeningRequest", triggerScreeningRequest);
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath = "/compliance/orchestrator/screenings";
+
+ localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+
+ if (idempotencyKey != null) {
+ localVarRequestBuilder.header("Idempotency-Key", idempotencyKey.toString());
+ }
+ localVarRequestBuilder.header("Content-Type", "application/json");
+ localVarRequestBuilder.header("Accept", "application/json");
+
+ try {
+ byte[] localVarPostBody =
+ memberVarObjectMapper.writeValueAsBytes(triggerScreeningRequest);
+ localVarRequestBuilder.method(
+ "POST", HttpRequest.BodyPublishers.ofByteArray(localVarPostBody));
+ } catch (IOException e) {
+ throw new ApiException(e);
+ }
+ if (memberVarReadTimeout != null) {
+ localVarRequestBuilder.timeout(memberVarReadTimeout);
+ }
+ if (memberVarInterceptor != null) {
+ memberVarInterceptor.accept(localVarRequestBuilder);
+ }
+ return localVarRequestBuilder;
+ }
+ /**
+ * Update a Compliance Orchestrator workflow's status Moves a workflow between
+ * `DRAFT` and `ACTIVE`. A workflow must be `ACTIVE` before
+ * `POST /v1/compliance/orchestrator/screenings` will accept a screening against it.
+ * Returns the workflow's id and new status, not its full configuration.
+ *
+ * @param updateWorkflowStatusRequest (required)
+ * @param workflowId The workflow's identifier. (required)
+ * @param idempotencyKey A unique identifier for the request. If the request is sent multiple
+ * times with the same idempotency key, the server will return the same response as the
+ * first request. The idempotency key is valid for 24 hours. (optional)
+ * @return CompletableFuture<ApiResponse<UpdateWorkflowStatusResponse>>, which
+ * completes exceptionally with an {@link ApiException} if the API call fails
+ */
+ public CompletableFuture> updateWorkflowStatus(
+ UpdateWorkflowStatusRequest updateWorkflowStatusRequest,
+ String workflowId,
+ String idempotencyKey) {
+ try {
+ HttpRequest.Builder localVarRequestBuilder =
+ updateWorkflowStatusRequestBuilder(
+ updateWorkflowStatusRequest, workflowId, idempotencyKey);
+ return memberVarHttpClient
+ .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
+ .thenComposeAsync(
+ localVarResponse -> {
+ if (memberVarAsyncResponseInterceptor != null) {
+ memberVarAsyncResponseInterceptor.accept(localVarResponse);
+ }
+ if (localVarResponse.statusCode() / 100 != 2) {
+ return CompletableFuture.failedFuture(
+ getApiException(
+ "updateWorkflowStatus", localVarResponse));
+ }
+ try {
+ String responseBody = localVarResponse.body();
+ return CompletableFuture.completedFuture(
+ new ApiResponse(
+ localVarResponse.statusCode(),
+ localVarResponse.headers().map(),
+ responseBody == null || responseBody.isBlank()
+ ? null
+ : memberVarObjectMapper.readValue(
+ responseBody,
+ new TypeReference<
+ UpdateWorkflowStatusResponse>() {})));
+ } catch (IOException e) {
+ return CompletableFuture.failedFuture(new ApiException(e));
+ }
+ })
+ .handle(
+ (localVarApiResponse, localVarThrowable) ->
+ localVarThrowable == null
+ ? CompletableFuture.completedFuture(localVarApiResponse)
+ : CompletableFuture
+ .>
+ failedFuture(
+ toApiFailure(
+ localVarThrowable)))
+ .thenCompose(localVarNormalized -> localVarNormalized);
+ } catch (ApiException e) {
+ return CompletableFuture.failedFuture(e);
+ }
+ }
+
+ private HttpRequest.Builder updateWorkflowStatusRequestBuilder(
+ UpdateWorkflowStatusRequest updateWorkflowStatusRequest,
+ String workflowId,
+ String idempotencyKey)
+ throws ApiException {
+ ValidationUtils.assertParamExists(
+ "updateWorkflowStatus", "updateWorkflowStatusRequest", updateWorkflowStatusRequest);
+ ValidationUtils.assertParamExistsAndNotEmpty(
+ "updateWorkflowStatus", "workflowId", workflowId);
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath =
+ "/compliance/orchestrator/workflows/{workflowId}/status"
+ .replace("{workflowId}", ApiClient.urlEncode(workflowId.toString()));
+
+ localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+
+ if (idempotencyKey != null) {
+ localVarRequestBuilder.header("Idempotency-Key", idempotencyKey.toString());
+ }
+ localVarRequestBuilder.header("Content-Type", "application/json");
+ localVarRequestBuilder.header("Accept", "application/json");
+
+ try {
+ byte[] localVarPostBody =
+ memberVarObjectMapper.writeValueAsBytes(updateWorkflowStatusRequest);
+ localVarRequestBuilder.method(
+ "PATCH", HttpRequest.BodyPublishers.ofByteArray(localVarPostBody));
+ } catch (IOException e) {
+ throw new ApiException(e);
+ }
+ if (memberVarReadTimeout != null) {
+ localVarRequestBuilder.timeout(memberVarReadTimeout);
+ }
+ if (memberVarInterceptor != null) {
+ memberVarInterceptor.accept(localVarRequestBuilder);
+ }
+ return localVarRequestBuilder;
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/api/WebhooksV2Api.java b/src/main/java/com/fireblocks/sdk/api/WebhooksV2Api.java
index f80211dd..dadbdfc6 100644
--- a/src/main/java/com/fireblocks/sdk/api/WebhooksV2Api.java
+++ b/src/main/java/com/fireblocks/sdk/api/WebhooksV2Api.java
@@ -569,15 +569,23 @@ private HttpRequest.Builder getMetricsRequestBuilder(UUID webhookId, String metr
return localVarRequestBuilder;
}
/**
- * Get mTLS CSR Returns the Fireblocks Certificate Signing Request (CSR) PEM that customers use
- * to generate their signed client certificate.
+ * Get mTLS CSR Returns the Certificate Signing Request (CSR) PEM that customers use to generate
+ * their signed client certificate. The private key the CSR is built from is held by Fireblocks
+ * and is specific to this workspace. It is created on the first request for a given key type,
+ * and the same CSR is returned on subsequent requests for that type. Pass
+ * `keyAlgorithm` to choose RSA or ECDSA. A workspace may hold one key of each: the
+ * CSR returned is always the one for the type requested, so a certificate signed against it
+ * matches the key used at delivery time.
*
+ * @param keyAlgorithm Algorithm of the private key the CSR is generated for. ECDSA keys are
+ * smaller and quicker to issue, but the certificate authority signing the request has to
+ * accept an EC subject key, which some do not by default. (optional, default to RSA)
* @return CompletableFuture<ApiResponse<WebhookMtlsCsrResponse>>, which completes
* exceptionally with an {@link ApiException} if the API call fails
*/
- public CompletableFuture> getMtlsCsr() {
+ public CompletableFuture> getMtlsCsr(String keyAlgorithm) {
try {
- HttpRequest.Builder localVarRequestBuilder = getMtlsCsrRequestBuilder();
+ HttpRequest.Builder localVarRequestBuilder = getMtlsCsrRequestBuilder(keyAlgorithm);
return memberVarHttpClient
.sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
.thenComposeAsync(
@@ -620,13 +628,29 @@ public CompletableFuture> getMtlsCsr() {
}
}
- private HttpRequest.Builder getMtlsCsrRequestBuilder() throws ApiException {
+ private HttpRequest.Builder getMtlsCsrRequestBuilder(String keyAlgorithm) throws ApiException {
HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
- String localVarPath = "/webhooks/mtls/csr";
+ String localVarPath = "/webhooks_settings/mtls_csr";
- localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+ List localVarQueryParams = new ArrayList<>();
+ StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
+ String localVarQueryParameterBaseName;
+ localVarQueryParameterBaseName = "keyAlgorithm";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("keyAlgorithm", keyAlgorithm));
+
+ if (!localVarQueryParams.isEmpty() || localVarQueryStringJoiner.length() != 0) {
+ StringJoiner queryJoiner = new StringJoiner("&");
+ localVarQueryParams.forEach(p -> queryJoiner.add(p.getName() + '=' + p.getValue()));
+ if (localVarQueryStringJoiner.length() != 0) {
+ queryJoiner.add(localVarQueryStringJoiner.toString());
+ }
+ localVarRequestBuilder.uri(
+ URI.create(memberVarBaseUri + localVarPath + '?' + queryJoiner.toString()));
+ } else {
+ localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+ }
localVarRequestBuilder.header("Accept", "application/json");
@@ -1959,14 +1983,13 @@ private HttpRequest.Builder updateWebhookRequestBuilder(
* and `customHeaders` are all merged key by key rather than replaced, the same way a
* webhook's own `customHeaders` behaves: a key sent with a value is added or
* overwritten, a key sent with a `null` value is deleted, and a key you omit is left
- * alone. Since a `null` inside a map is the delete mechanism, none of the three
- * accepts `null` for the whole field — `customJwtClaims: null`,
- * `customBodyParams: null` or `customHeaders: null` is rejected with a
- * `400` rather than ignored. Clear a map by listing each of its keys with a
- * `null` value. Because `null` is spent on deletion, a claim cannot be set
- * to JSON `null` either, on this endpoint or on create.
- * `mtlsClientSignedCert` is a scalar rather than a map, so `null` there
- * does remove it. **Endpoint Permissions:** Owner, Admin, Non-Signing Admin.
+ * alone. Setting one of the three to `null` as a whole clears that map, which is the
+ * quick way to empty it without naming every key. There is no ambiguity between the two uses of
+ * `null` — one names an entry to delete, the other names the field. A claim cannot be
+ * set to JSON `null`, though, on this endpoint or on create, because `null`
+ * is spent on deletion. `mtlsClientSignedCert` is a scalar rather than a map, so
+ * `null` there does remove it. **Endpoint Permissions:** Owner, Admin, Non-Signing
+ * Admin.
*
* @param updateWebhookOauthRequest (required)
* @param webhookOauthId The unique identifier of the OAuth credentials (required)
diff --git a/src/main/java/com/fireblocks/sdk/model/ApprovalApiKey.java b/src/main/java/com/fireblocks/sdk/model/ApprovalApiKey.java
new file mode 100644
index 00000000..d22eed8c
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/ApprovalApiKey.java
@@ -0,0 +1,353 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import com.fireblocks.sdk.ApiClient;
+import java.util.Objects;
+import java.util.StringJoiner;
+
+/** A registered approval API key for an API user. */
+@JsonPropertyOrder({
+ ApprovalApiKey.JSON_PROPERTY_ID,
+ ApprovalApiKey.JSON_PROPERTY_NAME,
+ ApprovalApiKey.JSON_PROPERTY_CREATED_AT,
+ ApprovalApiKey.JSON_PROPERTY_LAST_USED_AT,
+ ApprovalApiKey.JSON_PROPERTY_APPROVAL_API_PUBLIC_KEY,
+ ApprovalApiKey.JSON_PROPERTY_USER_ID
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class ApprovalApiKey {
+ public static final String JSON_PROPERTY_ID = "id";
+ @jakarta.annotation.Nonnull private String id;
+
+ public static final String JSON_PROPERTY_NAME = "name";
+ @jakarta.annotation.Nonnull private String name;
+
+ public static final String JSON_PROPERTY_CREATED_AT = "createdAt";
+ @jakarta.annotation.Nonnull private String createdAt;
+
+ public static final String JSON_PROPERTY_LAST_USED_AT = "lastUsedAt";
+ @jakarta.annotation.Nonnull private String lastUsedAt;
+
+ public static final String JSON_PROPERTY_APPROVAL_API_PUBLIC_KEY = "approvalApiPublicKey";
+ @jakarta.annotation.Nonnull private ApprovalApiPublicKey approvalApiPublicKey;
+
+ public static final String JSON_PROPERTY_USER_ID = "userId";
+ @jakarta.annotation.Nonnull private String userId;
+
+ public ApprovalApiKey() {}
+
+ @JsonCreator
+ public ApprovalApiKey(
+ @JsonProperty(value = JSON_PROPERTY_ID, required = true) String id,
+ @JsonProperty(value = JSON_PROPERTY_NAME, required = true) String name,
+ @JsonProperty(value = JSON_PROPERTY_CREATED_AT, required = true) String createdAt,
+ @JsonProperty(value = JSON_PROPERTY_LAST_USED_AT, required = true) String lastUsedAt,
+ @JsonProperty(value = JSON_PROPERTY_APPROVAL_API_PUBLIC_KEY, required = true)
+ ApprovalApiPublicKey approvalApiPublicKey,
+ @JsonProperty(value = JSON_PROPERTY_USER_ID, required = true) String userId) {
+ this.id = id;
+ this.name = name;
+ this.createdAt = createdAt;
+ this.lastUsedAt = lastUsedAt;
+ this.approvalApiPublicKey = approvalApiPublicKey;
+ this.userId = userId;
+ }
+
+ public ApprovalApiKey id(@jakarta.annotation.Nonnull String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * The unique key ID, used to delete the key.
+ *
+ * @return id
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getId() {
+ return id;
+ }
+
+ @JsonProperty(JSON_PROPERTY_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setId(@jakarta.annotation.Nonnull String id) {
+ this.id = id;
+ }
+
+ public ApprovalApiKey name(@jakarta.annotation.Nonnull String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * A human-readable label for the key.
+ *
+ * @return name
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_NAME)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getName() {
+ return name;
+ }
+
+ @JsonProperty(JSON_PROPERTY_NAME)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setName(@jakarta.annotation.Nonnull String name) {
+ this.name = name;
+ }
+
+ public ApprovalApiKey createdAt(@jakarta.annotation.Nonnull String createdAt) {
+ this.createdAt = createdAt;
+ return this;
+ }
+
+ /**
+ * Creation time as epoch time in seconds.
+ *
+ * @return createdAt
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_CREATED_AT)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getCreatedAt() {
+ return createdAt;
+ }
+
+ @JsonProperty(JSON_PROPERTY_CREATED_AT)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setCreatedAt(@jakarta.annotation.Nonnull String createdAt) {
+ this.createdAt = createdAt;
+ }
+
+ public ApprovalApiKey lastUsedAt(@jakarta.annotation.Nonnull String lastUsedAt) {
+ this.lastUsedAt = lastUsedAt;
+ return this;
+ }
+
+ /**
+ * Last time the key was used to sign, as epoch time in seconds (0 if never used).
+ *
+ * @return lastUsedAt
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_LAST_USED_AT)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getLastUsedAt() {
+ return lastUsedAt;
+ }
+
+ @JsonProperty(JSON_PROPERTY_LAST_USED_AT)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setLastUsedAt(@jakarta.annotation.Nonnull String lastUsedAt) {
+ this.lastUsedAt = lastUsedAt;
+ }
+
+ public ApprovalApiKey approvalApiPublicKey(
+ @jakarta.annotation.Nonnull ApprovalApiPublicKey approvalApiPublicKey) {
+ this.approvalApiPublicKey = approvalApiPublicKey;
+ return this;
+ }
+
+ /**
+ * Get approvalApiPublicKey
+ *
+ * @return approvalApiPublicKey
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_APPROVAL_API_PUBLIC_KEY)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public ApprovalApiPublicKey getApprovalApiPublicKey() {
+ return approvalApiPublicKey;
+ }
+
+ @JsonProperty(JSON_PROPERTY_APPROVAL_API_PUBLIC_KEY)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setApprovalApiPublicKey(
+ @jakarta.annotation.Nonnull ApprovalApiPublicKey approvalApiPublicKey) {
+ this.approvalApiPublicKey = approvalApiPublicKey;
+ }
+
+ public ApprovalApiKey userId(@jakarta.annotation.Nonnull String userId) {
+ this.userId = userId;
+ return this;
+ }
+
+ /**
+ * The ID of the API user who owns this key.
+ *
+ * @return userId
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_USER_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getUserId() {
+ return userId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_USER_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setUserId(@jakarta.annotation.Nonnull String userId) {
+ this.userId = userId;
+ }
+
+ /** Return true if this ApprovalApiKey object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ApprovalApiKey approvalApiKey = (ApprovalApiKey) o;
+ return Objects.equals(this.id, approvalApiKey.id)
+ && Objects.equals(this.name, approvalApiKey.name)
+ && Objects.equals(this.createdAt, approvalApiKey.createdAt)
+ && Objects.equals(this.lastUsedAt, approvalApiKey.lastUsedAt)
+ && Objects.equals(this.approvalApiPublicKey, approvalApiKey.approvalApiPublicKey)
+ && Objects.equals(this.userId, approvalApiKey.userId);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id, name, createdAt, lastUsedAt, approvalApiPublicKey, userId);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ApprovalApiKey {\n");
+ sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n");
+ sb.append(" lastUsedAt: ").append(toIndentedString(lastUsedAt)).append("\n");
+ sb.append(" approvalApiPublicKey: ")
+ .append(toIndentedString(approvalApiPublicKey))
+ .append("\n");
+ sb.append(" userId: ").append(toIndentedString(userId)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first
+ * line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @return URL query string
+ */
+ public String toUrlQueryString() {
+ return toUrlQueryString(null);
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @param prefix prefix of the query string
+ * @return URL query string
+ */
+ public String toUrlQueryString(String prefix) {
+ String suffix = "";
+ String containerSuffix = "";
+ String containerPrefix = "";
+ if (prefix == null) {
+ // style=form, explode=true, e.g. /pet?name=cat&type=manx
+ prefix = "";
+ } else {
+ // deepObject style e.g. /pet?id[name]=cat&id[type]=manx
+ prefix = prefix + "[";
+ suffix = "]";
+ containerSuffix = "]";
+ containerPrefix = "[";
+ }
+
+ StringJoiner joiner = new StringJoiner("&");
+
+ // add `id` to the URL query string
+ if (getId() != null) {
+ joiner.add(
+ String.format(
+ "%sid%s=%s",
+ prefix, suffix, ApiClient.urlEncode(ApiClient.valueToString(getId()))));
+ }
+
+ // add `name` to the URL query string
+ if (getName() != null) {
+ joiner.add(
+ String.format(
+ "%sname%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getName()))));
+ }
+
+ // add `createdAt` to the URL query string
+ if (getCreatedAt() != null) {
+ joiner.add(
+ String.format(
+ "%screatedAt%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getCreatedAt()))));
+ }
+
+ // add `lastUsedAt` to the URL query string
+ if (getLastUsedAt() != null) {
+ joiner.add(
+ String.format(
+ "%slastUsedAt%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getLastUsedAt()))));
+ }
+
+ // add `approvalApiPublicKey` to the URL query string
+ if (getApprovalApiPublicKey() != null) {
+ joiner.add(
+ getApprovalApiPublicKey()
+ .toUrlQueryString(prefix + "approvalApiPublicKey" + suffix));
+ }
+
+ // add `userId` to the URL query string
+ if (getUserId() != null) {
+ joiner.add(
+ String.format(
+ "%suserId%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getUserId()))));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/ApprovalApiPublicKey.java b/src/main/java/com/fireblocks/sdk/model/ApprovalApiPublicKey.java
new file mode 100644
index 00000000..eb199062
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/ApprovalApiPublicKey.java
@@ -0,0 +1,228 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fireblocks.sdk.ApiClient;
+import java.util.Objects;
+import java.util.StringJoiner;
+
+/** The public key material and its signing algorithm. */
+@JsonPropertyOrder({
+ ApprovalApiPublicKey.JSON_PROPERTY_ALGORITHM,
+ ApprovalApiPublicKey.JSON_PROPERTY_PUBLIC_KEY_PEM
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class ApprovalApiPublicKey {
+ /** The signature algorithm of the public key. */
+ public enum AlgorithmEnum {
+ RSA_PS256(String.valueOf("RSA_PS256")),
+
+ ECDSA_SECP256_R1(String.valueOf("ECDSA_SECP256R1")),
+
+ ECDSA_SECP384_R1(String.valueOf("ECDSA_SECP384R1")),
+
+ EDDSA_ED25519(String.valueOf("EDDSA_ED25519"));
+
+ private String value;
+
+ AlgorithmEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static AlgorithmEnum fromValue(String value) {
+ for (AlgorithmEnum b : AlgorithmEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_ALGORITHM = "algorithm";
+ @jakarta.annotation.Nonnull private AlgorithmEnum algorithm;
+
+ public static final String JSON_PROPERTY_PUBLIC_KEY_PEM = "publicKeyPem";
+ @jakarta.annotation.Nonnull private String publicKeyPem;
+
+ public ApprovalApiPublicKey() {}
+
+ @JsonCreator
+ public ApprovalApiPublicKey(
+ @JsonProperty(value = JSON_PROPERTY_ALGORITHM, required = true) AlgorithmEnum algorithm,
+ @JsonProperty(value = JSON_PROPERTY_PUBLIC_KEY_PEM, required = true)
+ String publicKeyPem) {
+ this.algorithm = algorithm;
+ this.publicKeyPem = publicKeyPem;
+ }
+
+ public ApprovalApiPublicKey algorithm(@jakarta.annotation.Nonnull AlgorithmEnum algorithm) {
+ this.algorithm = algorithm;
+ return this;
+ }
+
+ /**
+ * The signature algorithm of the public key.
+ *
+ * @return algorithm
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_ALGORITHM)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public AlgorithmEnum getAlgorithm() {
+ return algorithm;
+ }
+
+ @JsonProperty(JSON_PROPERTY_ALGORITHM)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setAlgorithm(@jakarta.annotation.Nonnull AlgorithmEnum algorithm) {
+ this.algorithm = algorithm;
+ }
+
+ public ApprovalApiPublicKey publicKeyPem(@jakarta.annotation.Nonnull String publicKeyPem) {
+ this.publicKeyPem = publicKeyPem;
+ return this;
+ }
+
+ /**
+ * The PEM-encoded public key.
+ *
+ * @return publicKeyPem
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_PUBLIC_KEY_PEM)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getPublicKeyPem() {
+ return publicKeyPem;
+ }
+
+ @JsonProperty(JSON_PROPERTY_PUBLIC_KEY_PEM)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setPublicKeyPem(@jakarta.annotation.Nonnull String publicKeyPem) {
+ this.publicKeyPem = publicKeyPem;
+ }
+
+ /** Return true if this ApprovalApiPublicKey object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ApprovalApiPublicKey approvalApiPublicKey = (ApprovalApiPublicKey) o;
+ return Objects.equals(this.algorithm, approvalApiPublicKey.algorithm)
+ && Objects.equals(this.publicKeyPem, approvalApiPublicKey.publicKeyPem);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(algorithm, publicKeyPem);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ApprovalApiPublicKey {\n");
+ sb.append(" algorithm: ").append(toIndentedString(algorithm)).append("\n");
+ sb.append(" publicKeyPem: ").append(toIndentedString(publicKeyPem)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first
+ * line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @return URL query string
+ */
+ public String toUrlQueryString() {
+ return toUrlQueryString(null);
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @param prefix prefix of the query string
+ * @return URL query string
+ */
+ public String toUrlQueryString(String prefix) {
+ String suffix = "";
+ String containerSuffix = "";
+ String containerPrefix = "";
+ if (prefix == null) {
+ // style=form, explode=true, e.g. /pet?name=cat&type=manx
+ prefix = "";
+ } else {
+ // deepObject style e.g. /pet?id[name]=cat&id[type]=manx
+ prefix = prefix + "[";
+ suffix = "]";
+ containerSuffix = "]";
+ containerPrefix = "[";
+ }
+
+ StringJoiner joiner = new StringJoiner("&");
+
+ // add `algorithm` to the URL query string
+ if (getAlgorithm() != null) {
+ joiner.add(
+ String.format(
+ "%salgorithm%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getAlgorithm()))));
+ }
+
+ // add `publicKeyPem` to the URL query string
+ if (getPublicKeyPem() != null) {
+ joiner.add(
+ String.format(
+ "%spublicKeyPem%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getPublicKeyPem()))));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/ApproveApprovalRequest.java b/src/main/java/com/fireblocks/sdk/model/ApproveApprovalRequest.java
new file mode 100644
index 00000000..29993b2c
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/ApproveApprovalRequest.java
@@ -0,0 +1,190 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import com.fireblocks.sdk.ApiClient;
+import java.util.Objects;
+import java.util.StringJoiner;
+
+/** The signed approval of a pending request. */
+@JsonPropertyOrder({
+ ApproveApprovalRequest.JSON_PROPERTY_KEY_ID,
+ ApproveApprovalRequest.JSON_PROPERTY_SIGNATURE
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class ApproveApprovalRequest {
+ public static final String JSON_PROPERTY_KEY_ID = "keyId";
+ @jakarta.annotation.Nullable private String keyId;
+
+ public static final String JSON_PROPERTY_SIGNATURE = "signature";
+ @jakarta.annotation.Nonnull private String signature;
+
+ public ApproveApprovalRequest() {}
+
+ @JsonCreator
+ public ApproveApprovalRequest(
+ @JsonProperty(value = JSON_PROPERTY_SIGNATURE, required = true) String signature) {
+ this.signature = signature;
+ }
+
+ public ApproveApprovalRequest keyId(@jakarta.annotation.Nullable String keyId) {
+ this.keyId = keyId;
+ return this;
+ }
+
+ /**
+ * The ID of the approval API key used to sign the request. Optional — if omitted, the signature
+ * is verified against all of the user's registered approval API keys.
+ *
+ * @return keyId
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_KEY_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getKeyId() {
+ return keyId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_KEY_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setKeyId(@jakarta.annotation.Nullable String keyId) {
+ this.keyId = keyId;
+ }
+
+ public ApproveApprovalRequest signature(@jakarta.annotation.Nonnull String signature) {
+ this.signature = signature;
+ return this;
+ }
+
+ /**
+ * Base64url-encoded signature over the request's signable data, produced with the private
+ * key of a registered approval API key. If keyId is provided the signature must match that key;
+ * otherwise it is matched against all of the user's registered keys.
+ *
+ * @return signature
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_SIGNATURE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getSignature() {
+ return signature;
+ }
+
+ @JsonProperty(JSON_PROPERTY_SIGNATURE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setSignature(@jakarta.annotation.Nonnull String signature) {
+ this.signature = signature;
+ }
+
+ /** Return true if this ApproveApprovalRequest object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ApproveApprovalRequest approveApprovalRequest = (ApproveApprovalRequest) o;
+ return Objects.equals(this.keyId, approveApprovalRequest.keyId)
+ && Objects.equals(this.signature, approveApprovalRequest.signature);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(keyId, signature);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ApproveApprovalRequest {\n");
+ sb.append(" keyId: ").append(toIndentedString(keyId)).append("\n");
+ sb.append(" signature: ").append(toIndentedString(signature)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first
+ * line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @return URL query string
+ */
+ public String toUrlQueryString() {
+ return toUrlQueryString(null);
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @param prefix prefix of the query string
+ * @return URL query string
+ */
+ public String toUrlQueryString(String prefix) {
+ String suffix = "";
+ String containerSuffix = "";
+ String containerPrefix = "";
+ if (prefix == null) {
+ // style=form, explode=true, e.g. /pet?name=cat&type=manx
+ prefix = "";
+ } else {
+ // deepObject style e.g. /pet?id[name]=cat&id[type]=manx
+ prefix = prefix + "[";
+ suffix = "]";
+ containerSuffix = "]";
+ containerPrefix = "[";
+ }
+
+ StringJoiner joiner = new StringJoiner("&");
+
+ // add `keyId` to the URL query string
+ if (getKeyId() != null) {
+ joiner.add(
+ String.format(
+ "%skeyId%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getKeyId()))));
+ }
+
+ // add `signature` to the URL query string
+ if (getSignature() != null) {
+ joiner.add(
+ String.format(
+ "%ssignature%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getSignature()))));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/AuditEventTypeEnum.java b/src/main/java/com/fireblocks/sdk/model/AuditEventTypeEnum.java
new file mode 100644
index 00000000..277e60cd
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/AuditEventTypeEnum.java
@@ -0,0 +1,80 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * The kind of event an audit entry records. - `STATUS_TRANSITION` — the screening moved
+ * between statuses - `STEP_TRIGGER_RULE_EVALUATED` — a step's trigger rules were
+ * evaluated - `CONNECTOR_CALL` — a connector was called; `data.phase`
+ * distinguishes the request from its terminal result - `STEP_OUTCOME_RULE_EVALUATED` — a
+ * step's outcome rules read the response - `STEP_METADATA_RECORDED` — connector
+ * metadata was attached to a step - `WORKFLOW_OUTCOME` — the workflow outcome was derived
+ * from its steps.
+ */
+public enum AuditEventTypeEnum {
+ STATUS_TRANSITION("STATUS_TRANSITION"),
+
+ STEP_TRIGGER_RULE_EVALUATED("STEP_TRIGGER_RULE_EVALUATED"),
+
+ CONNECTOR_CALL("CONNECTOR_CALL"),
+
+ STEP_OUTCOME_RULE_EVALUATED("STEP_OUTCOME_RULE_EVALUATED"),
+
+ STEP_METADATA_RECORDED("STEP_METADATA_RECORDED"),
+
+ WORKFLOW_OUTCOME("WORKFLOW_OUTCOME");
+
+ private String value;
+
+ AuditEventTypeEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static AuditEventTypeEnum fromValue(String value) {
+ for (AuditEventTypeEnum b : AuditEventTypeEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @param prefix prefix of the query string
+ * @return URL query string
+ */
+ public String toUrlQueryString(String prefix) {
+ if (prefix == null) {
+ prefix = "";
+ }
+
+ return String.format("%s=%s", prefix, this.toString());
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/AuditLogEntry.java b/src/main/java/com/fireblocks/sdk/model/AuditLogEntry.java
new file mode 100644
index 00000000..7ddee6dd
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/AuditLogEntry.java
@@ -0,0 +1,233 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import com.fireblocks.sdk.ApiClient;
+import java.util.Arrays;
+import java.util.Objects;
+import java.util.StringJoiner;
+
+/** One entry in a screening's append-only audit trail. */
+@JsonPropertyOrder({
+ AuditLogEntry.JSON_PROPERTY_TIMESTAMP,
+ AuditLogEntry.JSON_PROPERTY_EVENT_TYPE,
+ AuditLogEntry.JSON_PROPERTY_DATA
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class AuditLogEntry {
+ public static final String JSON_PROPERTY_TIMESTAMP = "timestamp";
+ @jakarta.annotation.Nonnull private String timestamp;
+
+ public static final String JSON_PROPERTY_EVENT_TYPE = "eventType";
+ @jakarta.annotation.Nonnull private AuditEventTypeEnum eventType;
+
+ public static final String JSON_PROPERTY_DATA = "data";
+ @jakarta.annotation.Nonnull private byte[] data;
+
+ public AuditLogEntry() {}
+
+ @JsonCreator
+ public AuditLogEntry(
+ @JsonProperty(value = JSON_PROPERTY_TIMESTAMP, required = true) String timestamp,
+ @JsonProperty(value = JSON_PROPERTY_EVENT_TYPE, required = true)
+ AuditEventTypeEnum eventType,
+ @JsonProperty(value = JSON_PROPERTY_DATA, required = true) byte[] data) {
+ this.timestamp = timestamp;
+ this.eventType = eventType;
+ this.data = data;
+ }
+
+ public AuditLogEntry timestamp(@jakarta.annotation.Nonnull String timestamp) {
+ this.timestamp = timestamp;
+ return this;
+ }
+
+ /**
+ * Unix timestamp in seconds when the event occurred, encoded as a string.
+ *
+ * @return timestamp
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_TIMESTAMP)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getTimestamp() {
+ return timestamp;
+ }
+
+ @JsonProperty(JSON_PROPERTY_TIMESTAMP)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setTimestamp(@jakarta.annotation.Nonnull String timestamp) {
+ this.timestamp = timestamp;
+ }
+
+ public AuditLogEntry eventType(@jakarta.annotation.Nonnull AuditEventTypeEnum eventType) {
+ this.eventType = eventType;
+ return this;
+ }
+
+ /**
+ * Get eventType
+ *
+ * @return eventType
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_EVENT_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public AuditEventTypeEnum getEventType() {
+ return eventType;
+ }
+
+ @JsonProperty(JSON_PROPERTY_EVENT_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setEventType(@jakarta.annotation.Nonnull AuditEventTypeEnum eventType) {
+ this.eventType = eventType;
+ }
+
+ public AuditLogEntry data(@jakarta.annotation.Nonnull byte[] data) {
+ this.data = data;
+ return this;
+ }
+
+ /**
+ * The event payload, JSON serialised and then base64 encoded. Its shape depends on
+ * `eventType` — decode it to read the event.
+ *
+ * @return data
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_DATA)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public byte[] getData() {
+ return data;
+ }
+
+ @JsonProperty(JSON_PROPERTY_DATA)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setData(@jakarta.annotation.Nonnull byte[] data) {
+ this.data = data;
+ }
+
+ /** Return true if this AuditLogEntry object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AuditLogEntry auditLogEntry = (AuditLogEntry) o;
+ return Objects.equals(this.timestamp, auditLogEntry.timestamp)
+ && Objects.equals(this.eventType, auditLogEntry.eventType)
+ && Arrays.equals(this.data, auditLogEntry.data);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(timestamp, eventType, Arrays.hashCode(data));
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class AuditLogEntry {\n");
+ sb.append(" timestamp: ").append(toIndentedString(timestamp)).append("\n");
+ sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n");
+ sb.append(" data: ").append(toIndentedString(data)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first
+ * line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @return URL query string
+ */
+ public String toUrlQueryString() {
+ return toUrlQueryString(null);
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @param prefix prefix of the query string
+ * @return URL query string
+ */
+ public String toUrlQueryString(String prefix) {
+ String suffix = "";
+ String containerSuffix = "";
+ String containerPrefix = "";
+ if (prefix == null) {
+ // style=form, explode=true, e.g. /pet?name=cat&type=manx
+ prefix = "";
+ } else {
+ // deepObject style e.g. /pet?id[name]=cat&id[type]=manx
+ prefix = prefix + "[";
+ suffix = "]";
+ containerSuffix = "]";
+ containerPrefix = "[";
+ }
+
+ StringJoiner joiner = new StringJoiner("&");
+
+ // add `timestamp` to the URL query string
+ if (getTimestamp() != null) {
+ joiner.add(
+ String.format(
+ "%stimestamp%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getTimestamp()))));
+ }
+
+ // add `eventType` to the URL query string
+ if (getEventType() != null) {
+ joiner.add(
+ String.format(
+ "%seventType%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getEventType()))));
+ }
+
+ // add `data` to the URL query string
+ if (getData() != null) {
+ joiner.add(
+ String.format(
+ "%sdata%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getData()))));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/BypassReasonEnum.java b/src/main/java/com/fireblocks/sdk/model/BypassReasonEnum.java
new file mode 100644
index 00000000..3646ceff
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/BypassReasonEnum.java
@@ -0,0 +1,95 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Why a step's screening did not run. A verbatim mirror of the platform's
+ * `BypassReason` vocabulary, shared with the rest of Fireblocks screening. Only
+ * `PASSED_BY_POLICY` is an approval — the policy deliberately let the subject through.
+ * Every other value means the check could not be performed, and the step is rejected rather than
+ * passed. A bypass is not a pass. - `MANUAL` — a person bypassed it -
+ * `UNSUPPORTED_ASSET` — the provider does not screen this asset or chain -
+ * `UNSUPPORTED_ROUTE` — the provider does not screen this route -
+ * `PASSED_BY_POLICY` — a policy rule let it through without screening -
+ * `BYPASSED_FAILURE` — screening failed and policy allowed a bypass -
+ * `TIMED_OUT` — the provider did not answer within the deadline -
+ * `BAD_CREDENTIALS` — the tenant's provider credentials were rejected -
+ * `CONFIGURATION_ERROR` — the connector is misconfigured for this tenant -
+ * `DROPPED_BY_BLOCKCHAIN` — the transaction never confirmed -
+ * `PROCESS_DISMISSED` — the surrounding process was cancelled
+ */
+public enum BypassReasonEnum {
+ MANUAL("MANUAL"),
+
+ UNSUPPORTED_ASSET("UNSUPPORTED_ASSET"),
+
+ UNSUPPORTED_ROUTE("UNSUPPORTED_ROUTE"),
+
+ PASSED_BY_POLICY("PASSED_BY_POLICY"),
+
+ BYPASSED_FAILURE("BYPASSED_FAILURE"),
+
+ TIMED_OUT("TIMED_OUT"),
+
+ BAD_CREDENTIALS("BAD_CREDENTIALS"),
+
+ CONFIGURATION_ERROR("CONFIGURATION_ERROR"),
+
+ DROPPED_BY_BLOCKCHAIN("DROPPED_BY_BLOCKCHAIN"),
+
+ PROCESS_DISMISSED("PROCESS_DISMISSED");
+
+ private String value;
+
+ BypassReasonEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static BypassReasonEnum fromValue(String value) {
+ for (BypassReasonEnum b : BypassReasonEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @param prefix prefix of the query string
+ * @return URL query string
+ */
+ public String toUrlQueryString(String prefix) {
+ if (prefix == null) {
+ prefix = "";
+ }
+
+ return String.format("%s=%s", prefix, this.toString());
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/ComplianceScreeningStatusEnum.java b/src/main/java/com/fireblocks/sdk/model/ComplianceScreeningStatusEnum.java
new file mode 100644
index 00000000..86009115
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/ComplianceScreeningStatusEnum.java
@@ -0,0 +1,72 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * A screening's lifecycle status. - `PENDING` — accepted, not started -
+ * `RUNNING` — one or more steps in flight - `COMPLETED` — every step finished
+ * and the workflow outcome is set - `FAILED` — the screening could not be completed
+ */
+public enum ComplianceScreeningStatusEnum {
+ PENDING("PENDING"),
+
+ RUNNING("RUNNING"),
+
+ COMPLETED("COMPLETED"),
+
+ FAILED("FAILED");
+
+ private String value;
+
+ ComplianceScreeningStatusEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static ComplianceScreeningStatusEnum fromValue(String value) {
+ for (ComplianceScreeningStatusEnum b : ComplianceScreeningStatusEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @param prefix prefix of the query string
+ * @return URL query string
+ */
+ public String toUrlQueryString(String prefix) {
+ if (prefix == null) {
+ prefix = "";
+ }
+
+ return String.format("%s=%s", prefix, this.toString());
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/ConnectorStatusEnum.java b/src/main/java/com/fireblocks/sdk/model/ConnectorStatusEnum.java
new file mode 100644
index 00000000..e017cd6a
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/ConnectorStatusEnum.java
@@ -0,0 +1,73 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * The connector's own processing status for a step. - `COMPLETED` — the provider
+ * answered - `BYPASSED` — no provider call was made; see `bypassReason` -
+ * `FAILED` — the provider call did not succeed - `FROZEN` — the step is held
+ * pending manual action
+ */
+public enum ConnectorStatusEnum {
+ COMPLETED("COMPLETED"),
+
+ BYPASSED("BYPASSED"),
+
+ FAILED("FAILED"),
+
+ FROZEN("FROZEN");
+
+ private String value;
+
+ ConnectorStatusEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static ConnectorStatusEnum fromValue(String value) {
+ for (ConnectorStatusEnum b : ConnectorStatusEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @param prefix prefix of the query string
+ * @return URL query string
+ */
+ public String toUrlQueryString(String prefix) {
+ if (prefix == null) {
+ prefix = "";
+ }
+
+ return String.format("%s=%s", prefix, this.toString());
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/ConnectorVerdictEnum.java b/src/main/java/com/fireblocks/sdk/model/ConnectorVerdictEnum.java
new file mode 100644
index 00000000..984a6861
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/ConnectorVerdictEnum.java
@@ -0,0 +1,69 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * The connector's own verdict for a step, before the step's outcome rules are applied.
+ * `null` on a step that did not reach the provider.
+ */
+public enum ConnectorVerdictEnum {
+ ACCEPT("ACCEPT"),
+
+ REJECT("REJECT"),
+
+ ALERT("ALERT");
+
+ private String value;
+
+ ConnectorVerdictEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static ConnectorVerdictEnum fromValue(String value) {
+ for (ConnectorVerdictEnum b : ConnectorVerdictEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @param prefix prefix of the query string
+ * @return URL query string
+ */
+ public String toUrlQueryString(String prefix) {
+ if (prefix == null) {
+ prefix = "";
+ }
+
+ return String.format("%s=%s", prefix, this.toString());
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/CreateWebhookOauthRequest.java b/src/main/java/com/fireblocks/sdk/model/CreateWebhookOauthRequest.java
index 05915809..5ddcdd0f 100644
--- a/src/main/java/com/fireblocks/sdk/model/CreateWebhookOauthRequest.java
+++ b/src/main/java/com/fireblocks/sdk/model/CreateWebhookOauthRequest.java
@@ -304,12 +304,14 @@ public CreateWebhookOauthRequest putCustomHeadersItem(String key, String customH
/**
* Extra HTTP headers for **the token request to your authorization server** — not for the
* webhook delivery, which has its own separate `customHeaders`. A gateway API key is
- * the usual case. Applies to every authentication method. Values must be strings; an empty
- * string is allowed. Names are matched case-insensitively, so two names differing only in case
- * are a duplicate. Names are stored and returned lowercased, so `X-Api-Key` comes
- * back as `x-api-key`. `Content-Type`, `Content-Length` and
- * `Host` are set by Fireblocks and cannot be overridden. `Authorization` is
- * not sent when `authMethod` is `client_secret_basic`. Values have no
+ * the usual case. Values must be strings; an empty string is allowed. Names are matched
+ * case-insensitively, so two names differing only in case are a duplicate. Names are stored and
+ * returned lowercased, so `X-Api-Key` comes back as `x-api-key`.
+ * `Content-Type`, `Content-Length` and `Host` are set by
+ * Fireblocks and cannot be overridden. `Authorization` can be set with
+ * `client_secret_post` or `client_secret_jwt`, which send the credentials
+ * in the body — useful when your token endpoint sits behind a gateway. It is rejected with
+ * `client_secret_basic`, which sends the credentials in that header. Values have no
* length limit of their own; the whole object must be under 16 KB when serialized as UTF-8.
* Values are write-only; responses return only the header names. On update this merges name by
* name rather than replacing — see `WebhookOauthCustomHeadersUpdate`.
diff --git a/src/main/java/com/fireblocks/sdk/model/CreateWebhookRequest.java b/src/main/java/com/fireblocks/sdk/model/CreateWebhookRequest.java
index 54f7ae7d..2fec4969 100644
--- a/src/main/java/com/fireblocks/sdk/model/CreateWebhookRequest.java
+++ b/src/main/java/com/fireblocks/sdk/model/CreateWebhookRequest.java
@@ -204,7 +204,8 @@ public CreateWebhookRequest webhookOauthId(@jakarta.annotation.Nullable UUID web
* The id of the OAuth credentials this webhook authenticates with, from
* `/v1/webhooks_settings/oauth`. Several webhooks may share one credential set, so
* rotating its client secret covers all of them at once. Send `null` to stop using
- * OAuth for this webhook.
+ * OAuth for this webhook. Cannot be combined with an `authorization` custom header on
+ * the same webhook; a request that would leave both set is rejected.
*
* @return webhookOauthId
*/
@@ -238,18 +239,19 @@ public CreateWebhookRequest putCustomHeadersItem(String key, Object customHeader
/**
* Custom HTTP headers attached to every notification delivered by this webhook. A value is a
* string, sent as one header line, or an array of strings, sent as one header line per element
- * under the same name. `Cookie` accepts only a string. An empty array is rejected —
- * leave the name out instead. At most 10 header lines in total, counted per array element
- * rather than per name. Names must be valid HTTP header tokens, are case-insensitive, and are
- * at most 128 characters. A value may be empty and has no length limit of its own; the whole
- * object must be under 16 KB when serialized as UTF-8. A value that large may still be refused
- * by your own endpoint, since web servers commonly cap the whole request header block at around
- * 8 KB. Reserved names: `Host`, `Content-Type`, `Content-Length`,
- * `Transfer-Encoding`, `Connection`, `User-Agent`,
- * `Accept`, `Accept-Encoding`, `Fireblocks-Signature`,
- * `Fireblocks-Webhook-Signature`. When this webhook has OAuth credentials attached,
- * an `Authorization` value you set and the bearer token are both sent as separate
- * header lines. Values are write-only; responses return only the header names.
+ * under the same name. `Cookie` and `Authorization` accept only a string.
+ * An empty array is rejected — leave the name out instead. At most 10 headers, counted by name
+ * — an array value counts once, however many lines it sends. Names must be valid HTTP header
+ * tokens, are case-insensitive, and are at most 128 characters. A value may be empty and has no
+ * length limit of its own; the whole object must be under 16 KB when serialized as UTF-8. A
+ * value that large may still be refused by your own endpoint, since web servers commonly cap
+ * the whole request header block at around 8 KB. Reserved names: `Host`,
+ * `Content-Type`, `Content-Length`, `Transfer-Encoding`,
+ * `Connection`, `User-Agent`, `Accept`,
+ * `Accept-Encoding`, `Fireblocks-Signature`,
+ * `Fireblocks-Webhook-Signature`. `Authorization` may be set, but not
+ * together with `webhookOauthId`; a request that would leave both set is rejected.
+ * Values are write-only; responses return only the header names.
*
* @return customHeaders
*/
diff --git a/src/main/java/com/fireblocks/sdk/model/GetScreeningResultResponse.java b/src/main/java/com/fireblocks/sdk/model/GetScreeningResultResponse.java
new file mode 100644
index 00000000..bdd88871
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/GetScreeningResultResponse.java
@@ -0,0 +1,401 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import com.fireblocks.sdk.ApiClient;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.StringJoiner;
+
+/** The current status, outcome, per-step results, and audit log for a screening. */
+@JsonPropertyOrder({
+ GetScreeningResultResponse.JSON_PROPERTY_SCREENING_ID,
+ GetScreeningResultResponse.JSON_PROPERTY_WORKFLOW_ID,
+ GetScreeningResultResponse.JSON_PROPERTY_SCREENING_STATUS,
+ GetScreeningResultResponse.JSON_PROPERTY_OUTCOME,
+ GetScreeningResultResponse.JSON_PROPERTY_STEPS,
+ GetScreeningResultResponse.JSON_PROPERTY_AUDIT_LOG
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class GetScreeningResultResponse {
+ public static final String JSON_PROPERTY_SCREENING_ID = "screeningId";
+ @jakarta.annotation.Nonnull private String screeningId;
+
+ public static final String JSON_PROPERTY_WORKFLOW_ID = "workflowId";
+ @jakarta.annotation.Nonnull private String workflowId;
+
+ public static final String JSON_PROPERTY_SCREENING_STATUS = "screeningStatus";
+ @jakarta.annotation.Nonnull private ComplianceScreeningStatusEnum screeningStatus;
+
+ public static final String JSON_PROPERTY_OUTCOME = "outcome";
+ @jakarta.annotation.Nullable private ScreeningOutcomeEnum outcome;
+
+ public static final String JSON_PROPERTY_STEPS = "steps";
+ @jakarta.annotation.Nonnull private List steps;
+
+ public static final String JSON_PROPERTY_AUDIT_LOG = "auditLog";
+ @jakarta.annotation.Nonnull private List auditLog;
+
+ public GetScreeningResultResponse() {}
+
+ @JsonCreator
+ public GetScreeningResultResponse(
+ @JsonProperty(value = JSON_PROPERTY_SCREENING_ID, required = true) String screeningId,
+ @JsonProperty(value = JSON_PROPERTY_WORKFLOW_ID, required = true) String workflowId,
+ @JsonProperty(value = JSON_PROPERTY_SCREENING_STATUS, required = true)
+ ComplianceScreeningStatusEnum screeningStatus,
+ @JsonProperty(value = JSON_PROPERTY_STEPS, required = true) List steps,
+ @JsonProperty(value = JSON_PROPERTY_AUDIT_LOG, required = true)
+ List auditLog) {
+ this.screeningId = screeningId;
+ this.workflowId = workflowId;
+ this.screeningStatus = screeningStatus;
+ this.steps = steps;
+ this.auditLog = auditLog;
+ }
+
+ public GetScreeningResultResponse screeningId(@jakarta.annotation.Nonnull String screeningId) {
+ this.screeningId = screeningId;
+ return this;
+ }
+
+ /**
+ * Identifier of the screening being queried.
+ *
+ * @return screeningId
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_SCREENING_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getScreeningId() {
+ return screeningId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_SCREENING_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setScreeningId(@jakarta.annotation.Nonnull String screeningId) {
+ this.screeningId = screeningId;
+ }
+
+ public GetScreeningResultResponse workflowId(@jakarta.annotation.Nonnull String workflowId) {
+ this.workflowId = workflowId;
+ return this;
+ }
+
+ /**
+ * Identifier of the workflow that produced this screening.
+ *
+ * @return workflowId
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_WORKFLOW_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getWorkflowId() {
+ return workflowId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_WORKFLOW_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setWorkflowId(@jakarta.annotation.Nonnull String workflowId) {
+ this.workflowId = workflowId;
+ }
+
+ public GetScreeningResultResponse screeningStatus(
+ @jakarta.annotation.Nonnull ComplianceScreeningStatusEnum screeningStatus) {
+ this.screeningStatus = screeningStatus;
+ return this;
+ }
+
+ /**
+ * Get screeningStatus
+ *
+ * @return screeningStatus
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_SCREENING_STATUS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public ComplianceScreeningStatusEnum getScreeningStatus() {
+ return screeningStatus;
+ }
+
+ @JsonProperty(JSON_PROPERTY_SCREENING_STATUS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setScreeningStatus(
+ @jakarta.annotation.Nonnull ComplianceScreeningStatusEnum screeningStatus) {
+ this.screeningStatus = screeningStatus;
+ }
+
+ public GetScreeningResultResponse outcome(
+ @jakarta.annotation.Nullable ScreeningOutcomeEnum outcome) {
+ this.outcome = outcome;
+ return this;
+ }
+
+ /**
+ * Get outcome
+ *
+ * @return outcome
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_OUTCOME)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public ScreeningOutcomeEnum getOutcome() {
+ return outcome;
+ }
+
+ @JsonProperty(JSON_PROPERTY_OUTCOME)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setOutcome(@jakarta.annotation.Nullable ScreeningOutcomeEnum outcome) {
+ this.outcome = outcome;
+ }
+
+ public GetScreeningResultResponse steps(@jakarta.annotation.Nonnull List steps) {
+ this.steps = steps;
+ return this;
+ }
+
+ public GetScreeningResultResponse addStepsItem(StepResult stepsItem) {
+ if (this.steps == null) {
+ this.steps = new ArrayList<>();
+ }
+ this.steps.add(stepsItem);
+ return this;
+ }
+
+ /**
+ * Flat step list.
+ *
+ * @return steps
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_STEPS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public List getSteps() {
+ return steps;
+ }
+
+ @JsonProperty(JSON_PROPERTY_STEPS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setSteps(@jakarta.annotation.Nonnull List steps) {
+ this.steps = steps;
+ }
+
+ public GetScreeningResultResponse auditLog(
+ @jakarta.annotation.Nonnull List auditLog) {
+ this.auditLog = auditLog;
+ return this;
+ }
+
+ public GetScreeningResultResponse addAuditLogItem(AuditLogEntry auditLogItem) {
+ if (this.auditLog == null) {
+ this.auditLog = new ArrayList<>();
+ }
+ this.auditLog.add(auditLogItem);
+ return this;
+ }
+
+ /**
+ * Append-only audit trail for this screening.
+ *
+ * @return auditLog
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_AUDIT_LOG)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public List getAuditLog() {
+ return auditLog;
+ }
+
+ @JsonProperty(JSON_PROPERTY_AUDIT_LOG)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setAuditLog(@jakarta.annotation.Nonnull List auditLog) {
+ this.auditLog = auditLog;
+ }
+
+ /** Return true if this GetScreeningResultResponse object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ GetScreeningResultResponse getScreeningResultResponse = (GetScreeningResultResponse) o;
+ return Objects.equals(this.screeningId, getScreeningResultResponse.screeningId)
+ && Objects.equals(this.workflowId, getScreeningResultResponse.workflowId)
+ && Objects.equals(this.screeningStatus, getScreeningResultResponse.screeningStatus)
+ && Objects.equals(this.outcome, getScreeningResultResponse.outcome)
+ && Objects.equals(this.steps, getScreeningResultResponse.steps)
+ && Objects.equals(this.auditLog, getScreeningResultResponse.auditLog);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(screeningId, workflowId, screeningStatus, outcome, steps, auditLog);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class GetScreeningResultResponse {\n");
+ sb.append(" screeningId: ").append(toIndentedString(screeningId)).append("\n");
+ sb.append(" workflowId: ").append(toIndentedString(workflowId)).append("\n");
+ sb.append(" screeningStatus: ").append(toIndentedString(screeningStatus)).append("\n");
+ sb.append(" outcome: ").append(toIndentedString(outcome)).append("\n");
+ sb.append(" steps: ").append(toIndentedString(steps)).append("\n");
+ sb.append(" auditLog: ").append(toIndentedString(auditLog)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first
+ * line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @return URL query string
+ */
+ public String toUrlQueryString() {
+ return toUrlQueryString(null);
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @param prefix prefix of the query string
+ * @return URL query string
+ */
+ public String toUrlQueryString(String prefix) {
+ String suffix = "";
+ String containerSuffix = "";
+ String containerPrefix = "";
+ if (prefix == null) {
+ // style=form, explode=true, e.g. /pet?name=cat&type=manx
+ prefix = "";
+ } else {
+ // deepObject style e.g. /pet?id[name]=cat&id[type]=manx
+ prefix = prefix + "[";
+ suffix = "]";
+ containerSuffix = "]";
+ containerPrefix = "[";
+ }
+
+ StringJoiner joiner = new StringJoiner("&");
+
+ // add `screeningId` to the URL query string
+ if (getScreeningId() != null) {
+ joiner.add(
+ String.format(
+ "%sscreeningId%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getScreeningId()))));
+ }
+
+ // add `workflowId` to the URL query string
+ if (getWorkflowId() != null) {
+ joiner.add(
+ String.format(
+ "%sworkflowId%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getWorkflowId()))));
+ }
+
+ // add `screeningStatus` to the URL query string
+ if (getScreeningStatus() != null) {
+ joiner.add(
+ String.format(
+ "%sscreeningStatus%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getScreeningStatus()))));
+ }
+
+ // add `outcome` to the URL query string
+ if (getOutcome() != null) {
+ joiner.add(
+ String.format(
+ "%soutcome%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getOutcome()))));
+ }
+
+ // add `steps` to the URL query string
+ if (getSteps() != null) {
+ for (int i = 0; i < getSteps().size(); i++) {
+ if (getSteps().get(i) != null) {
+ joiner.add(
+ getSteps()
+ .get(i)
+ .toUrlQueryString(
+ String.format(
+ "%ssteps%s%s",
+ prefix,
+ suffix,
+ "".equals(suffix)
+ ? ""
+ : String.format(
+ "%s%d%s",
+ containerPrefix,
+ i,
+ containerSuffix))));
+ }
+ }
+ }
+
+ // add `auditLog` to the URL query string
+ if (getAuditLog() != null) {
+ for (int i = 0; i < getAuditLog().size(); i++) {
+ if (getAuditLog().get(i) != null) {
+ joiner.add(
+ getAuditLog()
+ .get(i)
+ .toUrlQueryString(
+ String.format(
+ "%sauditLog%s%s",
+ prefix,
+ suffix,
+ "".equals(suffix)
+ ? ""
+ : String.format(
+ "%s%d%s",
+ containerPrefix,
+ i,
+ containerSuffix))));
+ }
+ }
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/GetWorkflowResponse.java b/src/main/java/com/fireblocks/sdk/model/GetWorkflowResponse.java
new file mode 100644
index 00000000..3c2c8f58
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/GetWorkflowResponse.java
@@ -0,0 +1,419 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import com.fireblocks.sdk.ApiClient;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.StringJoiner;
+
+/**
+ * A workflow's current definition, including its steps and each step's rule sets. A
+ * workflow is the configuration a screening runs against: an ordered list of steps, each backed by
+ * one connector. It must be `ACTIVE` before a screening will accept it —
+ * `DRAFT` is the editing state, so a screening never runs against a half-finished
+ * configuration.
+ */
+@JsonPropertyOrder({
+ GetWorkflowResponse.JSON_PROPERTY_WORKFLOW_ID,
+ GetWorkflowResponse.JSON_PROPERTY_TEMPLATE_ID,
+ GetWorkflowResponse.JSON_PROPERTY_STATUS,
+ GetWorkflowResponse.JSON_PROPERTY_TITLE,
+ GetWorkflowResponse.JSON_PROPERTY_DESCRIPTION,
+ GetWorkflowResponse.JSON_PROPERTY_CREATED_AT,
+ GetWorkflowResponse.JSON_PROPERTY_STEPS
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class GetWorkflowResponse {
+ public static final String JSON_PROPERTY_WORKFLOW_ID = "workflowId";
+ @jakarta.annotation.Nonnull private String workflowId;
+
+ public static final String JSON_PROPERTY_TEMPLATE_ID = "templateId";
+ @jakarta.annotation.Nullable private String templateId;
+
+ public static final String JSON_PROPERTY_STATUS = "status";
+ @jakarta.annotation.Nonnull private WorkflowStatusEnum status;
+
+ public static final String JSON_PROPERTY_TITLE = "title";
+ @jakarta.annotation.Nonnull private String title;
+
+ public static final String JSON_PROPERTY_DESCRIPTION = "description";
+ @jakarta.annotation.Nullable private String description;
+
+ public static final String JSON_PROPERTY_CREATED_AT = "createdAt";
+ @jakarta.annotation.Nonnull private String createdAt;
+
+ public static final String JSON_PROPERTY_STEPS = "steps";
+ @jakarta.annotation.Nonnull private List steps;
+
+ public GetWorkflowResponse() {}
+
+ @JsonCreator
+ public GetWorkflowResponse(
+ @JsonProperty(value = JSON_PROPERTY_WORKFLOW_ID, required = true) String workflowId,
+ @JsonProperty(value = JSON_PROPERTY_STATUS, required = true) WorkflowStatusEnum status,
+ @JsonProperty(value = JSON_PROPERTY_TITLE, required = true) String title,
+ @JsonProperty(value = JSON_PROPERTY_CREATED_AT, required = true) String createdAt,
+ @JsonProperty(value = JSON_PROPERTY_STEPS, required = true) List steps) {
+ this.workflowId = workflowId;
+ this.status = status;
+ this.title = title;
+ this.createdAt = createdAt;
+ this.steps = steps;
+ }
+
+ public GetWorkflowResponse workflowId(@jakarta.annotation.Nonnull String workflowId) {
+ this.workflowId = workflowId;
+ return this;
+ }
+
+ /**
+ * Unique identifier of the workflow.
+ *
+ * @return workflowId
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_WORKFLOW_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getWorkflowId() {
+ return workflowId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_WORKFLOW_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setWorkflowId(@jakarta.annotation.Nonnull String workflowId) {
+ this.workflowId = workflowId;
+ }
+
+ public GetWorkflowResponse templateId(@jakarta.annotation.Nullable String templateId) {
+ this.templateId = templateId;
+ return this;
+ }
+
+ /**
+ * The template this workflow was provisioned from, if any.
+ *
+ * @return templateId
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_TEMPLATE_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getTemplateId() {
+ return templateId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_TEMPLATE_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setTemplateId(@jakarta.annotation.Nullable String templateId) {
+ this.templateId = templateId;
+ }
+
+ public GetWorkflowResponse status(@jakarta.annotation.Nonnull WorkflowStatusEnum status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get status
+ *
+ * @return status
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_STATUS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public WorkflowStatusEnum getStatus() {
+ return status;
+ }
+
+ @JsonProperty(JSON_PROPERTY_STATUS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setStatus(@jakarta.annotation.Nonnull WorkflowStatusEnum status) {
+ this.status = status;
+ }
+
+ public GetWorkflowResponse title(@jakarta.annotation.Nonnull String title) {
+ this.title = title;
+ return this;
+ }
+
+ /**
+ * User-facing display name for the workflow.
+ *
+ * @return title
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_TITLE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getTitle() {
+ return title;
+ }
+
+ @JsonProperty(JSON_PROPERTY_TITLE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setTitle(@jakarta.annotation.Nonnull String title) {
+ this.title = title;
+ }
+
+ public GetWorkflowResponse description(@jakarta.annotation.Nullable String description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * User-facing free-text description of the workflow's purpose.
+ *
+ * @return description
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_DESCRIPTION)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getDescription() {
+ return description;
+ }
+
+ @JsonProperty(JSON_PROPERTY_DESCRIPTION)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setDescription(@jakarta.annotation.Nullable String description) {
+ this.description = description;
+ }
+
+ public GetWorkflowResponse createdAt(@jakarta.annotation.Nonnull String createdAt) {
+ this.createdAt = createdAt;
+ return this;
+ }
+
+ /**
+ * Unix timestamp in seconds when the workflow was provisioned, encoded as a string.
+ *
+ * @return createdAt
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_CREATED_AT)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getCreatedAt() {
+ return createdAt;
+ }
+
+ @JsonProperty(JSON_PROPERTY_CREATED_AT)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setCreatedAt(@jakarta.annotation.Nonnull String createdAt) {
+ this.createdAt = createdAt;
+ }
+
+ public GetWorkflowResponse steps(@jakarta.annotation.Nonnull List steps) {
+ this.steps = steps;
+ return this;
+ }
+
+ public GetWorkflowResponse addStepsItem(StepConfig stepsItem) {
+ if (this.steps == null) {
+ this.steps = new ArrayList<>();
+ }
+ this.steps.add(stepsItem);
+ return this;
+ }
+
+ /**
+ * Flat list — one step per connector.
+ *
+ * @return steps
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_STEPS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public List getSteps() {
+ return steps;
+ }
+
+ @JsonProperty(JSON_PROPERTY_STEPS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setSteps(@jakarta.annotation.Nonnull List steps) {
+ this.steps = steps;
+ }
+
+ /** Return true if this GetWorkflowResponse object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ GetWorkflowResponse getWorkflowResponse = (GetWorkflowResponse) o;
+ return Objects.equals(this.workflowId, getWorkflowResponse.workflowId)
+ && Objects.equals(this.templateId, getWorkflowResponse.templateId)
+ && Objects.equals(this.status, getWorkflowResponse.status)
+ && Objects.equals(this.title, getWorkflowResponse.title)
+ && Objects.equals(this.description, getWorkflowResponse.description)
+ && Objects.equals(this.createdAt, getWorkflowResponse.createdAt)
+ && Objects.equals(this.steps, getWorkflowResponse.steps);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(workflowId, templateId, status, title, description, createdAt, steps);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class GetWorkflowResponse {\n");
+ sb.append(" workflowId: ").append(toIndentedString(workflowId)).append("\n");
+ sb.append(" templateId: ").append(toIndentedString(templateId)).append("\n");
+ sb.append(" status: ").append(toIndentedString(status)).append("\n");
+ sb.append(" title: ").append(toIndentedString(title)).append("\n");
+ sb.append(" description: ").append(toIndentedString(description)).append("\n");
+ sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n");
+ sb.append(" steps: ").append(toIndentedString(steps)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first
+ * line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @return URL query string
+ */
+ public String toUrlQueryString() {
+ return toUrlQueryString(null);
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @param prefix prefix of the query string
+ * @return URL query string
+ */
+ public String toUrlQueryString(String prefix) {
+ String suffix = "";
+ String containerSuffix = "";
+ String containerPrefix = "";
+ if (prefix == null) {
+ // style=form, explode=true, e.g. /pet?name=cat&type=manx
+ prefix = "";
+ } else {
+ // deepObject style e.g. /pet?id[name]=cat&id[type]=manx
+ prefix = prefix + "[";
+ suffix = "]";
+ containerSuffix = "]";
+ containerPrefix = "[";
+ }
+
+ StringJoiner joiner = new StringJoiner("&");
+
+ // add `workflowId` to the URL query string
+ if (getWorkflowId() != null) {
+ joiner.add(
+ String.format(
+ "%sworkflowId%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getWorkflowId()))));
+ }
+
+ // add `templateId` to the URL query string
+ if (getTemplateId() != null) {
+ joiner.add(
+ String.format(
+ "%stemplateId%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getTemplateId()))));
+ }
+
+ // add `status` to the URL query string
+ if (getStatus() != null) {
+ joiner.add(
+ String.format(
+ "%sstatus%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getStatus()))));
+ }
+
+ // add `title` to the URL query string
+ if (getTitle() != null) {
+ joiner.add(
+ String.format(
+ "%stitle%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getTitle()))));
+ }
+
+ // add `description` to the URL query string
+ if (getDescription() != null) {
+ joiner.add(
+ String.format(
+ "%sdescription%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getDescription()))));
+ }
+
+ // add `createdAt` to the URL query string
+ if (getCreatedAt() != null) {
+ joiner.add(
+ String.format(
+ "%screatedAt%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getCreatedAt()))));
+ }
+
+ // add `steps` to the URL query string
+ if (getSteps() != null) {
+ for (int i = 0; i < getSteps().size(); i++) {
+ if (getSteps().get(i) != null) {
+ joiner.add(
+ getSteps()
+ .get(i)
+ .toUrlQueryString(
+ String.format(
+ "%ssteps%s%s",
+ prefix,
+ suffix,
+ "".equals(suffix)
+ ? ""
+ : String.format(
+ "%s%d%s",
+ containerPrefix,
+ i,
+ containerSuffix))));
+ }
+ }
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/InternalTransferResponse.java b/src/main/java/com/fireblocks/sdk/model/InternalTransferResponse.java
index 858a9f04..a943e125 100644
--- a/src/main/java/com/fireblocks/sdk/model/InternalTransferResponse.java
+++ b/src/main/java/com/fireblocks/sdk/model/InternalTransferResponse.java
@@ -18,13 +18,17 @@
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.fireblocks.sdk.ApiClient;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Objects;
import java.util.StringJoiner;
/** InternalTransferResponse */
@JsonPropertyOrder({
InternalTransferResponse.JSON_PROPERTY_SUCCESS,
- InternalTransferResponse.JSON_PROPERTY_ID
+ InternalTransferResponse.JSON_PROPERTY_ID,
+ InternalTransferResponse.JSON_PROPERTY_STATUS,
+ InternalTransferResponse.JSON_PROPERTY_SYSTEM_MESSAGES
})
@jakarta.annotation.Generated(
value = "org.openapitools.codegen.languages.JavaClientCodegen",
@@ -36,6 +40,12 @@ public class InternalTransferResponse {
public static final String JSON_PROPERTY_ID = "id";
@jakarta.annotation.Nullable private String id;
+ public static final String JSON_PROPERTY_STATUS = "status";
+ @jakarta.annotation.Nullable private String status;
+
+ public static final String JSON_PROPERTY_SYSTEM_MESSAGES = "systemMessages";
+ @jakarta.annotation.Nullable private List systemMessages;
+
public InternalTransferResponse() {}
@JsonCreator
@@ -90,6 +100,64 @@ public void setId(@jakarta.annotation.Nullable String id) {
this.id = id;
}
+ public InternalTransferResponse status(@jakarta.annotation.Nullable String status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * The transfer status returned by the transaction manager. Only present when the transfer was
+ * processed via the transaction manager flow.
+ *
+ * @return status
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_STATUS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getStatus() {
+ return status;
+ }
+
+ @JsonProperty(JSON_PROPERTY_STATUS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setStatus(@jakarta.annotation.Nullable String status) {
+ this.status = status;
+ }
+
+ public InternalTransferResponse systemMessages(
+ @jakarta.annotation.Nullable List systemMessages) {
+ this.systemMessages = systemMessages;
+ return this;
+ }
+
+ public InternalTransferResponse addSystemMessagesItem(SystemMessageInfo systemMessagesItem) {
+ if (this.systemMessages == null) {
+ this.systemMessages = new ArrayList<>();
+ }
+ this.systemMessages.add(systemMessagesItem);
+ return this;
+ }
+
+ /**
+ * System messages returned by the transaction manager about the health of the transfer being
+ * performed. Only present when the transfer was processed via the transaction manager flow.
+ *
+ * @return systemMessages
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_SYSTEM_MESSAGES)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getSystemMessages() {
+ return systemMessages;
+ }
+
+ @JsonProperty(JSON_PROPERTY_SYSTEM_MESSAGES)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setSystemMessages(
+ @jakarta.annotation.Nullable List systemMessages) {
+ this.systemMessages = systemMessages;
+ }
+
/** Return true if this InternalTransferResponse object is equal to o. */
@Override
public boolean equals(Object o) {
@@ -101,12 +169,14 @@ public boolean equals(Object o) {
}
InternalTransferResponse internalTransferResponse = (InternalTransferResponse) o;
return Objects.equals(this.success, internalTransferResponse.success)
- && Objects.equals(this.id, internalTransferResponse.id);
+ && Objects.equals(this.id, internalTransferResponse.id)
+ && Objects.equals(this.status, internalTransferResponse.status)
+ && Objects.equals(this.systemMessages, internalTransferResponse.systemMessages);
}
@Override
public int hashCode() {
- return Objects.hash(success, id);
+ return Objects.hash(success, id, status, systemMessages);
}
@Override
@@ -115,6 +185,8 @@ public String toString() {
sb.append("class InternalTransferResponse {\n");
sb.append(" success: ").append(toIndentedString(success)).append("\n");
sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append(" status: ").append(toIndentedString(status)).append("\n");
+ sb.append(" systemMessages: ").append(toIndentedString(systemMessages)).append("\n");
sb.append("}");
return sb.toString();
}
@@ -180,6 +252,39 @@ public String toUrlQueryString(String prefix) {
prefix, suffix, ApiClient.urlEncode(ApiClient.valueToString(getId()))));
}
+ // add `status` to the URL query string
+ if (getStatus() != null) {
+ joiner.add(
+ String.format(
+ "%sstatus%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getStatus()))));
+ }
+
+ // add `systemMessages` to the URL query string
+ if (getSystemMessages() != null) {
+ for (int i = 0; i < getSystemMessages().size(); i++) {
+ if (getSystemMessages().get(i) != null) {
+ joiner.add(
+ getSystemMessages()
+ .get(i)
+ .toUrlQueryString(
+ String.format(
+ "%ssystemMessages%s%s",
+ prefix,
+ suffix,
+ "".equals(suffix)
+ ? ""
+ : String.format(
+ "%s%d%s",
+ containerPrefix,
+ i,
+ containerSuffix))));
+ }
+ }
+ }
+
return joiner.toString();
}
}
diff --git a/src/main/java/com/fireblocks/sdk/model/ListApprovalApiKeysResponse.java b/src/main/java/com/fireblocks/sdk/model/ListApprovalApiKeysResponse.java
new file mode 100644
index 00000000..255615ac
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/ListApprovalApiKeysResponse.java
@@ -0,0 +1,211 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import com.fireblocks.sdk.ApiClient;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.StringJoiner;
+
+/** The approval API keys registered for the API user. */
+@JsonPropertyOrder({
+ ListApprovalApiKeysResponse.JSON_PROPERTY_DATA,
+ ListApprovalApiKeysResponse.JSON_PROPERTY_NEXT
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class ListApprovalApiKeysResponse {
+ public static final String JSON_PROPERTY_DATA = "data";
+ @jakarta.annotation.Nonnull private List data;
+
+ public static final String JSON_PROPERTY_NEXT = "next";
+ @jakarta.annotation.Nullable private String next;
+
+ public ListApprovalApiKeysResponse() {}
+
+ @JsonCreator
+ public ListApprovalApiKeysResponse(
+ @JsonProperty(value = JSON_PROPERTY_DATA, required = true) List data) {
+ this.data = data;
+ }
+
+ public ListApprovalApiKeysResponse data(@jakarta.annotation.Nonnull List data) {
+ this.data = data;
+ return this;
+ }
+
+ public ListApprovalApiKeysResponse addDataItem(ApprovalApiKey dataItem) {
+ if (this.data == null) {
+ this.data = new ArrayList<>();
+ }
+ this.data.add(dataItem);
+ return this;
+ }
+
+ /**
+ * The registered approval API keys.
+ *
+ * @return data
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_DATA)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public List getData() {
+ return data;
+ }
+
+ @JsonProperty(JSON_PROPERTY_DATA)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setData(@jakarta.annotation.Nonnull List data) {
+ this.data = data;
+ }
+
+ public ListApprovalApiKeysResponse next(@jakarta.annotation.Nullable String next) {
+ this.next = next;
+ return this;
+ }
+
+ /**
+ * Cursor for the next page of results. Pass it back as the `pageCursor` query param
+ * to fetch the next page. Empty or absent when this is the last page.
+ *
+ * @return next
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_NEXT)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getNext() {
+ return next;
+ }
+
+ @JsonProperty(JSON_PROPERTY_NEXT)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setNext(@jakarta.annotation.Nullable String next) {
+ this.next = next;
+ }
+
+ /** Return true if this ListApprovalApiKeysResponse object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ListApprovalApiKeysResponse listApprovalApiKeysResponse = (ListApprovalApiKeysResponse) o;
+ return Objects.equals(this.data, listApprovalApiKeysResponse.data)
+ && Objects.equals(this.next, listApprovalApiKeysResponse.next);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(data, next);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ListApprovalApiKeysResponse {\n");
+ sb.append(" data: ").append(toIndentedString(data)).append("\n");
+ sb.append(" next: ").append(toIndentedString(next)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first
+ * line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @return URL query string
+ */
+ public String toUrlQueryString() {
+ return toUrlQueryString(null);
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @param prefix prefix of the query string
+ * @return URL query string
+ */
+ public String toUrlQueryString(String prefix) {
+ String suffix = "";
+ String containerSuffix = "";
+ String containerPrefix = "";
+ if (prefix == null) {
+ // style=form, explode=true, e.g. /pet?name=cat&type=manx
+ prefix = "";
+ } else {
+ // deepObject style e.g. /pet?id[name]=cat&id[type]=manx
+ prefix = prefix + "[";
+ suffix = "]";
+ containerSuffix = "]";
+ containerPrefix = "[";
+ }
+
+ StringJoiner joiner = new StringJoiner("&");
+
+ // add `data` to the URL query string
+ if (getData() != null) {
+ for (int i = 0; i < getData().size(); i++) {
+ if (getData().get(i) != null) {
+ joiner.add(
+ getData()
+ .get(i)
+ .toUrlQueryString(
+ String.format(
+ "%sdata%s%s",
+ prefix,
+ suffix,
+ "".equals(suffix)
+ ? ""
+ : String.format(
+ "%s%d%s",
+ containerPrefix,
+ i,
+ containerSuffix))));
+ }
+ }
+ }
+
+ // add `next` to the URL query string
+ if (getNext() != null) {
+ joiner.add(
+ String.format(
+ "%snext%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getNext()))));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/ParameterWithValue.java b/src/main/java/com/fireblocks/sdk/model/ParameterWithValue.java
index 975fe574..5cdcd3a1 100644
--- a/src/main/java/com/fireblocks/sdk/model/ParameterWithValue.java
+++ b/src/main/java/com/fireblocks/sdk/model/ParameterWithValue.java
@@ -53,7 +53,7 @@ public class ParameterWithValue {
@jakarta.annotation.Nullable private List components;
public static final String JSON_PROPERTY_VALUE = "value";
- @jakarta.annotation.Nullable private String value;
+ @jakarta.annotation.Nullable private Object value = null;
public static final String JSON_PROPERTY_FUNCTION_VALUE = "functionValue";
@jakarta.annotation.Nullable private LeanAbiFunction functionValue;
@@ -191,26 +191,30 @@ public void setComponents(@jakarta.annotation.Nullable List component
this.components = components;
}
- public ParameterWithValue value(@jakarta.annotation.Nullable String value) {
+ public ParameterWithValue value(@jakarta.annotation.Nullable Object value) {
this.value = value;
return this;
}
/**
- * The value of the parameter. can also be ParameterWithValue
+ * The value of the parameter. The shape follows the ABI `type`: a string for
+ * `string`/`address`/`bytes*`, a number for
+ * `uint*`/`int*`, a boolean for `bool`, an array for
+ * `T[]`, and for `tuple` an array of nested ParameterWithValue objects (one
+ * per entry in `components`, in ABI order).
*
* @return value
*/
@jakarta.annotation.Nullable
@JsonProperty(JSON_PROPERTY_VALUE)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
- public String getValue() {
+ public Object getValue() {
return value;
}
@JsonProperty(JSON_PROPERTY_VALUE)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
- public void setValue(@jakarta.annotation.Nullable String value) {
+ public void setValue(@jakarta.annotation.Nullable Object value) {
this.value = value;
}
diff --git a/src/main/java/com/fireblocks/sdk/model/RegisterApprovalApiKeyRequest.java b/src/main/java/com/fireblocks/sdk/model/RegisterApprovalApiKeyRequest.java
new file mode 100644
index 00000000..e6c4dda9
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/RegisterApprovalApiKeyRequest.java
@@ -0,0 +1,194 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import com.fireblocks.sdk.ApiClient;
+import java.util.Objects;
+import java.util.StringJoiner;
+
+/** The approval API key to register. */
+@JsonPropertyOrder({
+ RegisterApprovalApiKeyRequest.JSON_PROPERTY_NAME,
+ RegisterApprovalApiKeyRequest.JSON_PROPERTY_APPROVAL_API_PUBLIC_KEY
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class RegisterApprovalApiKeyRequest {
+ public static final String JSON_PROPERTY_NAME = "name";
+ @jakarta.annotation.Nonnull private String name;
+
+ public static final String JSON_PROPERTY_APPROVAL_API_PUBLIC_KEY = "approvalApiPublicKey";
+ @jakarta.annotation.Nonnull private ApprovalApiPublicKey approvalApiPublicKey;
+
+ public RegisterApprovalApiKeyRequest() {}
+
+ @JsonCreator
+ public RegisterApprovalApiKeyRequest(
+ @JsonProperty(value = JSON_PROPERTY_NAME, required = true) String name,
+ @JsonProperty(value = JSON_PROPERTY_APPROVAL_API_PUBLIC_KEY, required = true)
+ ApprovalApiPublicKey approvalApiPublicKey) {
+ this.name = name;
+ this.approvalApiPublicKey = approvalApiPublicKey;
+ }
+
+ public RegisterApprovalApiKeyRequest name(@jakarta.annotation.Nonnull String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * A human-readable label for the key.
+ *
+ * @return name
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_NAME)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getName() {
+ return name;
+ }
+
+ @JsonProperty(JSON_PROPERTY_NAME)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setName(@jakarta.annotation.Nonnull String name) {
+ this.name = name;
+ }
+
+ public RegisterApprovalApiKeyRequest approvalApiPublicKey(
+ @jakarta.annotation.Nonnull ApprovalApiPublicKey approvalApiPublicKey) {
+ this.approvalApiPublicKey = approvalApiPublicKey;
+ return this;
+ }
+
+ /**
+ * Get approvalApiPublicKey
+ *
+ * @return approvalApiPublicKey
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_APPROVAL_API_PUBLIC_KEY)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public ApprovalApiPublicKey getApprovalApiPublicKey() {
+ return approvalApiPublicKey;
+ }
+
+ @JsonProperty(JSON_PROPERTY_APPROVAL_API_PUBLIC_KEY)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setApprovalApiPublicKey(
+ @jakarta.annotation.Nonnull ApprovalApiPublicKey approvalApiPublicKey) {
+ this.approvalApiPublicKey = approvalApiPublicKey;
+ }
+
+ /** Return true if this RegisterApprovalApiKeyRequest object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ RegisterApprovalApiKeyRequest registerApprovalApiKeyRequest =
+ (RegisterApprovalApiKeyRequest) o;
+ return Objects.equals(this.name, registerApprovalApiKeyRequest.name)
+ && Objects.equals(
+ this.approvalApiPublicKey,
+ registerApprovalApiKeyRequest.approvalApiPublicKey);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(name, approvalApiPublicKey);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class RegisterApprovalApiKeyRequest {\n");
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" approvalApiPublicKey: ")
+ .append(toIndentedString(approvalApiPublicKey))
+ .append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first
+ * line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @return URL query string
+ */
+ public String toUrlQueryString() {
+ return toUrlQueryString(null);
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @param prefix prefix of the query string
+ * @return URL query string
+ */
+ public String toUrlQueryString(String prefix) {
+ String suffix = "";
+ String containerSuffix = "";
+ String containerPrefix = "";
+ if (prefix == null) {
+ // style=form, explode=true, e.g. /pet?name=cat&type=manx
+ prefix = "";
+ } else {
+ // deepObject style e.g. /pet?id[name]=cat&id[type]=manx
+ prefix = prefix + "[";
+ suffix = "]";
+ containerSuffix = "]";
+ containerPrefix = "[";
+ }
+
+ StringJoiner joiner = new StringJoiner("&");
+
+ // add `name` to the URL query string
+ if (getName() != null) {
+ joiner.add(
+ String.format(
+ "%sname%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getName()))));
+ }
+
+ // add `approvalApiPublicKey` to the URL query string
+ if (getApprovalApiPublicKey() != null) {
+ joiner.add(
+ getApprovalApiPublicKey()
+ .toUrlQueryString(prefix + "approvalApiPublicKey" + suffix));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/RegisterApprovalApiKeyResponse.java b/src/main/java/com/fireblocks/sdk/model/RegisterApprovalApiKeyResponse.java
new file mode 100644
index 00000000..807460d4
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/RegisterApprovalApiKeyResponse.java
@@ -0,0 +1,147 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import com.fireblocks.sdk.ApiClient;
+import java.util.Objects;
+import java.util.StringJoiner;
+
+/** The result of registering an approval API key. */
+@JsonPropertyOrder({RegisterApprovalApiKeyResponse.JSON_PROPERTY_KEY_ID})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class RegisterApprovalApiKeyResponse {
+ public static final String JSON_PROPERTY_KEY_ID = "keyId";
+ @jakarta.annotation.Nonnull private String keyId;
+
+ public RegisterApprovalApiKeyResponse() {}
+
+ @JsonCreator
+ public RegisterApprovalApiKeyResponse(
+ @JsonProperty(value = JSON_PROPERTY_KEY_ID, required = true) String keyId) {
+ this.keyId = keyId;
+ }
+
+ public RegisterApprovalApiKeyResponse keyId(@jakarta.annotation.Nonnull String keyId) {
+ this.keyId = keyId;
+ return this;
+ }
+
+ /**
+ * The server-generated ID of the registered key, used for deletion.
+ *
+ * @return keyId
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_KEY_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getKeyId() {
+ return keyId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_KEY_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setKeyId(@jakarta.annotation.Nonnull String keyId) {
+ this.keyId = keyId;
+ }
+
+ /** Return true if this RegisterApprovalApiKeyResponse object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ RegisterApprovalApiKeyResponse registerApprovalApiKeyResponse =
+ (RegisterApprovalApiKeyResponse) o;
+ return Objects.equals(this.keyId, registerApprovalApiKeyResponse.keyId);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(keyId);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class RegisterApprovalApiKeyResponse {\n");
+ sb.append(" keyId: ").append(toIndentedString(keyId)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first
+ * line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @return URL query string
+ */
+ public String toUrlQueryString() {
+ return toUrlQueryString(null);
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @param prefix prefix of the query string
+ * @return URL query string
+ */
+ public String toUrlQueryString(String prefix) {
+ String suffix = "";
+ String containerSuffix = "";
+ String containerPrefix = "";
+ if (prefix == null) {
+ // style=form, explode=true, e.g. /pet?name=cat&type=manx
+ prefix = "";
+ } else {
+ // deepObject style e.g. /pet?id[name]=cat&id[type]=manx
+ prefix = prefix + "[";
+ suffix = "]";
+ containerSuffix = "]";
+ containerPrefix = "[";
+ }
+
+ StringJoiner joiner = new StringJoiner("&");
+
+ // add `keyId` to the URL query string
+ if (getKeyId() != null) {
+ joiner.add(
+ String.format(
+ "%skeyId%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getKeyId()))));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/RiskLevelEnum.java b/src/main/java/com/fireblocks/sdk/model/RiskLevelEnum.java
new file mode 100644
index 00000000..029d979e
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/RiskLevelEnum.java
@@ -0,0 +1,73 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * The provider's risk assessment for a step, normalised across connectors. `null` on
+ * a step that did not reach the provider — the absence of a risk level is not the same as low risk.
+ */
+public enum RiskLevelEnum {
+ SEVERE("SEVERE"),
+
+ HIGH("HIGH"),
+
+ MEDIUM("MEDIUM"),
+
+ LOW("LOW"),
+
+ UNKNOWN("UNKNOWN");
+
+ private String value;
+
+ RiskLevelEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static RiskLevelEnum fromValue(String value) {
+ for (RiskLevelEnum b : RiskLevelEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @param prefix prefix of the query string
+ * @return URL query string
+ */
+ public String toUrlQueryString(String prefix) {
+ if (prefix == null) {
+ prefix = "";
+ }
+
+ return String.format("%s=%s", prefix, this.toString());
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/Rule.java b/src/main/java/com/fireblocks/sdk/model/Rule.java
new file mode 100644
index 00000000..67ffa195
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/Rule.java
@@ -0,0 +1,323 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import com.fireblocks.sdk.ApiClient;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.StringJoiner;
+
+/**
+ * A single rule within a rule set. The first rule whose conditions match wins, and its
+ * `ruleAction` is applied.
+ */
+@JsonPropertyOrder({
+ Rule.JSON_PROPERTY_RULE_ID,
+ Rule.JSON_PROPERTY_CONDITIONS,
+ Rule.JSON_PROPERTY_RULE_ACTION,
+ Rule.JSON_PROPERTY_ORDER,
+ Rule.JSON_PROPERTY_TITLE
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class Rule {
+ public static final String JSON_PROPERTY_RULE_ID = "ruleId";
+ @jakarta.annotation.Nullable private String ruleId;
+
+ public static final String JSON_PROPERTY_CONDITIONS = "conditions";
+ @jakarta.annotation.Nullable private List conditions;
+
+ public static final String JSON_PROPERTY_RULE_ACTION = "ruleAction";
+ @jakarta.annotation.Nullable private RuleActionEnum ruleAction;
+
+ public static final String JSON_PROPERTY_ORDER = "order";
+ @jakarta.annotation.Nullable private Integer order;
+
+ public static final String JSON_PROPERTY_TITLE = "title";
+ @jakarta.annotation.Nullable private String title;
+
+ public Rule() {}
+
+ public Rule ruleId(@jakarta.annotation.Nullable String ruleId) {
+ this.ruleId = ruleId;
+ return this;
+ }
+
+ /**
+ * UUID, unique within the rule set.
+ *
+ * @return ruleId
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_RULE_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getRuleId() {
+ return ruleId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_RULE_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setRuleId(@jakarta.annotation.Nullable String ruleId) {
+ this.ruleId = ruleId;
+ }
+
+ public Rule conditions(@jakarta.annotation.Nullable List conditions) {
+ this.conditions = conditions;
+ return this;
+ }
+
+ public Rule addConditionsItem(RuleCondition conditionsItem) {
+ if (this.conditions == null) {
+ this.conditions = new ArrayList<>();
+ }
+ this.conditions.add(conditionsItem);
+ return this;
+ }
+
+ /**
+ * Conditions AND-ed together within this rule.
+ *
+ * @return conditions
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_CONDITIONS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getConditions() {
+ return conditions;
+ }
+
+ @JsonProperty(JSON_PROPERTY_CONDITIONS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setConditions(@jakarta.annotation.Nullable List conditions) {
+ this.conditions = conditions;
+ }
+
+ public Rule ruleAction(@jakarta.annotation.Nullable RuleActionEnum ruleAction) {
+ this.ruleAction = ruleAction;
+ return this;
+ }
+
+ /**
+ * Get ruleAction
+ *
+ * @return ruleAction
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_RULE_ACTION)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public RuleActionEnum getRuleAction() {
+ return ruleAction;
+ }
+
+ @JsonProperty(JSON_PROPERTY_RULE_ACTION)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setRuleAction(@jakarta.annotation.Nullable RuleActionEnum ruleAction) {
+ this.ruleAction = ruleAction;
+ }
+
+ public Rule order(@jakarta.annotation.Nullable Integer order) {
+ this.order = order;
+ return this;
+ }
+
+ /**
+ * Zero-based evaluation order among the rule set's rules, lowest first.
+ *
+ * @return order
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ORDER)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Integer getOrder() {
+ return order;
+ }
+
+ @JsonProperty(JSON_PROPERTY_ORDER)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setOrder(@jakarta.annotation.Nullable Integer order) {
+ this.order = order;
+ }
+
+ public Rule title(@jakarta.annotation.Nullable String title) {
+ this.title = title;
+ return this;
+ }
+
+ /**
+ * User-facing label for the rule. Cosmetic only — not read by rule evaluation.
+ *
+ * @return title
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_TITLE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getTitle() {
+ return title;
+ }
+
+ @JsonProperty(JSON_PROPERTY_TITLE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setTitle(@jakarta.annotation.Nullable String title) {
+ this.title = title;
+ }
+
+ /** Return true if this Rule object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ Rule rule = (Rule) o;
+ return Objects.equals(this.ruleId, rule.ruleId)
+ && Objects.equals(this.conditions, rule.conditions)
+ && Objects.equals(this.ruleAction, rule.ruleAction)
+ && Objects.equals(this.order, rule.order)
+ && Objects.equals(this.title, rule.title);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(ruleId, conditions, ruleAction, order, title);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class Rule {\n");
+ sb.append(" ruleId: ").append(toIndentedString(ruleId)).append("\n");
+ sb.append(" conditions: ").append(toIndentedString(conditions)).append("\n");
+ sb.append(" ruleAction: ").append(toIndentedString(ruleAction)).append("\n");
+ sb.append(" order: ").append(toIndentedString(order)).append("\n");
+ sb.append(" title: ").append(toIndentedString(title)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first
+ * line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @return URL query string
+ */
+ public String toUrlQueryString() {
+ return toUrlQueryString(null);
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @param prefix prefix of the query string
+ * @return URL query string
+ */
+ public String toUrlQueryString(String prefix) {
+ String suffix = "";
+ String containerSuffix = "";
+ String containerPrefix = "";
+ if (prefix == null) {
+ // style=form, explode=true, e.g. /pet?name=cat&type=manx
+ prefix = "";
+ } else {
+ // deepObject style e.g. /pet?id[name]=cat&id[type]=manx
+ prefix = prefix + "[";
+ suffix = "]";
+ containerSuffix = "]";
+ containerPrefix = "[";
+ }
+
+ StringJoiner joiner = new StringJoiner("&");
+
+ // add `ruleId` to the URL query string
+ if (getRuleId() != null) {
+ joiner.add(
+ String.format(
+ "%sruleId%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getRuleId()))));
+ }
+
+ // add `conditions` to the URL query string
+ if (getConditions() != null) {
+ for (int i = 0; i < getConditions().size(); i++) {
+ if (getConditions().get(i) != null) {
+ joiner.add(
+ getConditions()
+ .get(i)
+ .toUrlQueryString(
+ String.format(
+ "%sconditions%s%s",
+ prefix,
+ suffix,
+ "".equals(suffix)
+ ? ""
+ : String.format(
+ "%s%d%s",
+ containerPrefix,
+ i,
+ containerSuffix))));
+ }
+ }
+ }
+
+ // add `ruleAction` to the URL query string
+ if (getRuleAction() != null) {
+ joiner.add(
+ String.format(
+ "%sruleAction%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getRuleAction()))));
+ }
+
+ // add `order` to the URL query string
+ if (getOrder() != null) {
+ joiner.add(
+ String.format(
+ "%sorder%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getOrder()))));
+ }
+
+ // add `title` to the URL query string
+ if (getTitle() != null) {
+ joiner.add(
+ String.format(
+ "%stitle%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getTitle()))));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/RuleActionEnum.java b/src/main/java/com/fireblocks/sdk/model/RuleActionEnum.java
new file mode 100644
index 00000000..36bf705f
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/RuleActionEnum.java
@@ -0,0 +1,84 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * What happens when a rule matches. Which values are legal depends on the rule set the rule belongs
+ * to — a trigger rule decides whether to screen, an outcome rule decides what the answer means. The
+ * enum is the union of both sets, so neither set accepts all of its values: `FREEZE` is
+ * the one value shared by the two, and every other value belongs to exactly one of them. Trigger
+ * rules: - `SCREEN` — call the connector - `PASS` — let the subject through
+ * without screening - `FREEZE` — hold for manual action Outcome rules: -
+ * `ACCEPT` — the step passes - `REJECT` — the step fails - `ALERT` —
+ * the step passes but is flagged for review - `FREEZE` — hold for manual action -
+ * `WAIT` — come back later; refused once the deadline has passed
+ */
+public enum RuleActionEnum {
+ SCREEN("SCREEN"),
+
+ PASS("PASS"),
+
+ FREEZE("FREEZE"),
+
+ ACCEPT("ACCEPT"),
+
+ REJECT("REJECT"),
+
+ ALERT("ALERT"),
+
+ WAIT("WAIT");
+
+ private String value;
+
+ RuleActionEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static RuleActionEnum fromValue(String value) {
+ for (RuleActionEnum b : RuleActionEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @param prefix prefix of the query string
+ * @return URL query string
+ */
+ public String toUrlQueryString(String prefix) {
+ if (prefix == null) {
+ prefix = "";
+ }
+
+ return String.format("%s=%s", prefix, this.toString());
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/RuleCondition.java b/src/main/java/com/fireblocks/sdk/model/RuleCondition.java
new file mode 100644
index 00000000..7eac2720
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/RuleCondition.java
@@ -0,0 +1,232 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import com.fireblocks.sdk.ApiClient;
+import java.util.Objects;
+import java.util.StringJoiner;
+
+/** A single condition within a rule. Conditions within a rule are AND-ed together. */
+@JsonPropertyOrder({
+ RuleCondition.JSON_PROPERTY_FIELD,
+ RuleCondition.JSON_PROPERTY_OPERATOR,
+ RuleCondition.JSON_PROPERTY_VALUE
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class RuleCondition {
+ public static final String JSON_PROPERTY_FIELD = "field";
+ @jakarta.annotation.Nonnull private String field;
+
+ public static final String JSON_PROPERTY_OPERATOR = "operator";
+ @jakarta.annotation.Nonnull private RuleConditionOperatorEnum operator;
+
+ public static final String JSON_PROPERTY_VALUE = "value";
+ @jakarta.annotation.Nonnull private String value;
+
+ public RuleCondition() {}
+
+ @JsonCreator
+ public RuleCondition(
+ @JsonProperty(value = JSON_PROPERTY_FIELD, required = true) String field,
+ @JsonProperty(value = JSON_PROPERTY_OPERATOR, required = true)
+ RuleConditionOperatorEnum operator,
+ @JsonProperty(value = JSON_PROPERTY_VALUE, required = true) String value) {
+ this.field = field;
+ this.operator = operator;
+ this.value = value;
+ }
+
+ public RuleCondition field(@jakarta.annotation.Nonnull String field) {
+ this.field = field;
+ return this;
+ }
+
+ /**
+ * The input context field this condition tests. Allowed values depend on the rule set type
+ * (trigger vs. outcome) and the step's connector/operation.
+ *
+ * @return field
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_FIELD)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getField() {
+ return field;
+ }
+
+ @JsonProperty(JSON_PROPERTY_FIELD)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setField(@jakarta.annotation.Nonnull String field) {
+ this.field = field;
+ }
+
+ public RuleCondition operator(@jakarta.annotation.Nonnull RuleConditionOperatorEnum operator) {
+ this.operator = operator;
+ return this;
+ }
+
+ /**
+ * Get operator
+ *
+ * @return operator
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_OPERATOR)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public RuleConditionOperatorEnum getOperator() {
+ return operator;
+ }
+
+ @JsonProperty(JSON_PROPERTY_OPERATOR)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setOperator(@jakarta.annotation.Nonnull RuleConditionOperatorEnum operator) {
+ this.operator = operator;
+ }
+
+ public RuleCondition value(@jakarta.annotation.Nonnull String value) {
+ this.value = value;
+ return this;
+ }
+
+ /**
+ * The value `field` is compared against, using `operator`.
+ *
+ * @return value
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_VALUE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getValue() {
+ return value;
+ }
+
+ @JsonProperty(JSON_PROPERTY_VALUE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setValue(@jakarta.annotation.Nonnull String value) {
+ this.value = value;
+ }
+
+ /** Return true if this RuleCondition object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ RuleCondition ruleCondition = (RuleCondition) o;
+ return Objects.equals(this.field, ruleCondition.field)
+ && Objects.equals(this.operator, ruleCondition.operator)
+ && Objects.equals(this.value, ruleCondition.value);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(field, operator, value);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class RuleCondition {\n");
+ sb.append(" field: ").append(toIndentedString(field)).append("\n");
+ sb.append(" operator: ").append(toIndentedString(operator)).append("\n");
+ sb.append(" value: ").append(toIndentedString(value)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first
+ * line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @return URL query string
+ */
+ public String toUrlQueryString() {
+ return toUrlQueryString(null);
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @param prefix prefix of the query string
+ * @return URL query string
+ */
+ public String toUrlQueryString(String prefix) {
+ String suffix = "";
+ String containerSuffix = "";
+ String containerPrefix = "";
+ if (prefix == null) {
+ // style=form, explode=true, e.g. /pet?name=cat&type=manx
+ prefix = "";
+ } else {
+ // deepObject style e.g. /pet?id[name]=cat&id[type]=manx
+ prefix = prefix + "[";
+ suffix = "]";
+ containerSuffix = "]";
+ containerPrefix = "[";
+ }
+
+ StringJoiner joiner = new StringJoiner("&");
+
+ // add `field` to the URL query string
+ if (getField() != null) {
+ joiner.add(
+ String.format(
+ "%sfield%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getField()))));
+ }
+
+ // add `operator` to the URL query string
+ if (getOperator() != null) {
+ joiner.add(
+ String.format(
+ "%soperator%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getOperator()))));
+ }
+
+ // add `value` to the URL query string
+ if (getValue() != null) {
+ joiner.add(
+ String.format(
+ "%svalue%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getValue()))));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/RuleConditionOperatorEnum.java b/src/main/java/com/fireblocks/sdk/model/RuleConditionOperatorEnum.java
new file mode 100644
index 00000000..471f03e0
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/RuleConditionOperatorEnum.java
@@ -0,0 +1,75 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * The comparison applied between a rule condition's `field` and its
+ * `value`.
+ */
+public enum RuleConditionOperatorEnum {
+ EQUALS("EQUALS"),
+
+ NOT_EQUALS("NOT_EQUALS"),
+
+ GT("GT"),
+
+ GTE("GTE"),
+
+ LT("LT"),
+
+ LTE("LTE");
+
+ private String value;
+
+ RuleConditionOperatorEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static RuleConditionOperatorEnum fromValue(String value) {
+ for (RuleConditionOperatorEnum b : RuleConditionOperatorEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @param prefix prefix of the query string
+ * @return URL query string
+ */
+ public String toUrlQueryString(String prefix) {
+ if (prefix == null) {
+ prefix = "";
+ }
+
+ return String.format("%s=%s", prefix, this.toString());
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/RuleSet.java b/src/main/java/com/fireblocks/sdk/model/RuleSet.java
new file mode 100644
index 00000000..da8c5425
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/RuleSet.java
@@ -0,0 +1,163 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.StringJoiner;
+
+/**
+ * An ordered set of rules. Rules are evaluated top to bottom, and the first one that matches wins.
+ */
+@JsonPropertyOrder({RuleSet.JSON_PROPERTY_RULES})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class RuleSet {
+ public static final String JSON_PROPERTY_RULES = "rules";
+ @jakarta.annotation.Nullable private List rules;
+
+ public RuleSet() {}
+
+ public RuleSet rules(@jakarta.annotation.Nullable List rules) {
+ this.rules = rules;
+ return this;
+ }
+
+ public RuleSet addRulesItem(Rule rulesItem) {
+ if (this.rules == null) {
+ this.rules = new ArrayList<>();
+ }
+ this.rules.add(rulesItem);
+ return this;
+ }
+
+ /**
+ * Ordered rule list, evaluated top to bottom; the first match wins.
+ *
+ * @return rules
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_RULES)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getRules() {
+ return rules;
+ }
+
+ @JsonProperty(JSON_PROPERTY_RULES)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setRules(@jakarta.annotation.Nullable List rules) {
+ this.rules = rules;
+ }
+
+ /** Return true if this RuleSet object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ RuleSet ruleSet = (RuleSet) o;
+ return Objects.equals(this.rules, ruleSet.rules);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(rules);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class RuleSet {\n");
+ sb.append(" rules: ").append(toIndentedString(rules)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first
+ * line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @return URL query string
+ */
+ public String toUrlQueryString() {
+ return toUrlQueryString(null);
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @param prefix prefix of the query string
+ * @return URL query string
+ */
+ public String toUrlQueryString(String prefix) {
+ String suffix = "";
+ String containerSuffix = "";
+ String containerPrefix = "";
+ if (prefix == null) {
+ // style=form, explode=true, e.g. /pet?name=cat&type=manx
+ prefix = "";
+ } else {
+ // deepObject style e.g. /pet?id[name]=cat&id[type]=manx
+ prefix = prefix + "[";
+ suffix = "]";
+ containerSuffix = "]";
+ containerPrefix = "[";
+ }
+
+ StringJoiner joiner = new StringJoiner("&");
+
+ // add `rules` to the URL query string
+ if (getRules() != null) {
+ for (int i = 0; i < getRules().size(); i++) {
+ if (getRules().get(i) != null) {
+ joiner.add(
+ getRules()
+ .get(i)
+ .toUrlQueryString(
+ String.format(
+ "%srules%s%s",
+ prefix,
+ suffix,
+ "".equals(suffix)
+ ? ""
+ : String.format(
+ "%s%d%s",
+ containerPrefix,
+ i,
+ containerSuffix))));
+ }
+ }
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/ScreeningInput.java b/src/main/java/com/fireblocks/sdk/model/ScreeningInput.java
new file mode 100644
index 00000000..b4eb399f
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/ScreeningInput.java
@@ -0,0 +1,212 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import com.fireblocks.sdk.ApiClient;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.StringJoiner;
+
+/** What the caller wants screened, and how. */
+@JsonPropertyOrder({ScreeningInput.JSON_PROPERTY_OPERATION, ScreeningInput.JSON_PROPERTY_PAYLOAD})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class ScreeningInput {
+ public static final String JSON_PROPERTY_OPERATION = "operation";
+ @jakarta.annotation.Nonnull private ScreeningOperationEnum operation;
+
+ public static final String JSON_PROPERTY_PAYLOAD = "payload";
+ @jakarta.annotation.Nonnull private List payload;
+
+ public ScreeningInput() {}
+
+ @JsonCreator
+ public ScreeningInput(
+ @JsonProperty(value = JSON_PROPERTY_OPERATION, required = true)
+ ScreeningOperationEnum operation,
+ @JsonProperty(value = JSON_PROPERTY_PAYLOAD, required = true)
+ List payload) {
+ this.operation = operation;
+ this.payload = payload;
+ }
+
+ public ScreeningInput operation(@jakarta.annotation.Nonnull ScreeningOperationEnum operation) {
+ this.operation = operation;
+ return this;
+ }
+
+ /**
+ * Get operation
+ *
+ * @return operation
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_OPERATION)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public ScreeningOperationEnum getOperation() {
+ return operation;
+ }
+
+ @JsonProperty(JSON_PROPERTY_OPERATION)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setOperation(@jakarta.annotation.Nonnull ScreeningOperationEnum operation) {
+ this.operation = operation;
+ }
+
+ public ScreeningInput payload(@jakarta.annotation.Nonnull List payload) {
+ this.payload = payload;
+ return this;
+ }
+
+ public ScreeningInput addPayloadItem(ScreeningPayload payloadItem) {
+ if (this.payload == null) {
+ this.payload = new ArrayList<>();
+ }
+ this.payload.add(payloadItem);
+ return this;
+ }
+
+ /**
+ * The screening subjects. Up to 100 per request — the provider's own batch limit for
+ * address screening — so a bulk check does not need one call per address.
+ *
+ * @return payload
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_PAYLOAD)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public List getPayload() {
+ return payload;
+ }
+
+ @JsonProperty(JSON_PROPERTY_PAYLOAD)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setPayload(@jakarta.annotation.Nonnull List payload) {
+ this.payload = payload;
+ }
+
+ /** Return true if this ScreeningInput object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ScreeningInput screeningInput = (ScreeningInput) o;
+ return Objects.equals(this.operation, screeningInput.operation)
+ && Objects.equals(this.payload, screeningInput.payload);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(operation, payload);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ScreeningInput {\n");
+ sb.append(" operation: ").append(toIndentedString(operation)).append("\n");
+ sb.append(" payload: ").append(toIndentedString(payload)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first
+ * line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @return URL query string
+ */
+ public String toUrlQueryString() {
+ return toUrlQueryString(null);
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @param prefix prefix of the query string
+ * @return URL query string
+ */
+ public String toUrlQueryString(String prefix) {
+ String suffix = "";
+ String containerSuffix = "";
+ String containerPrefix = "";
+ if (prefix == null) {
+ // style=form, explode=true, e.g. /pet?name=cat&type=manx
+ prefix = "";
+ } else {
+ // deepObject style e.g. /pet?id[name]=cat&id[type]=manx
+ prefix = prefix + "[";
+ suffix = "]";
+ containerSuffix = "]";
+ containerPrefix = "[";
+ }
+
+ StringJoiner joiner = new StringJoiner("&");
+
+ // add `operation` to the URL query string
+ if (getOperation() != null) {
+ joiner.add(
+ String.format(
+ "%soperation%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getOperation()))));
+ }
+
+ // add `payload` to the URL query string
+ if (getPayload() != null) {
+ for (int i = 0; i < getPayload().size(); i++) {
+ if (getPayload().get(i) != null) {
+ joiner.add(
+ getPayload()
+ .get(i)
+ .toUrlQueryString(
+ String.format(
+ "%spayload%s%s",
+ prefix,
+ suffix,
+ "".equals(suffix)
+ ? ""
+ : String.format(
+ "%s%d%s",
+ containerPrefix,
+ i,
+ containerSuffix))));
+ }
+ }
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/ScreeningOperationEnum.java b/src/main/java/com/fireblocks/sdk/model/ScreeningOperationEnum.java
new file mode 100644
index 00000000..9f95ebda
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/ScreeningOperationEnum.java
@@ -0,0 +1,75 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * What the caller wants Compliance Orchestrator to do. The target workflow must have a step
+ * configured for the operation; the error names the supported set when it does not. -
+ * `ADDRESS_SCREENING` — screen an address on its own, before anything exists on-chain.
+ * Answers whether the address itself carries risk. - `TRANSACTION_SCREENING` — screen a
+ * whole transfer: source and destination, amount and direction, not the destination alone. -
+ * `REGISTER_TRANSACTION` — record a confirmed transfer with the provider for ongoing
+ * monitoring. Not a gate: it files the transfer so the provider's own rules can raise alerts
+ * later, which is what feeds its AML model.
+ */
+public enum ScreeningOperationEnum {
+ ADDRESS_SCREENING("ADDRESS_SCREENING"),
+
+ TRANSACTION_SCREENING("TRANSACTION_SCREENING"),
+
+ REGISTER_TRANSACTION("REGISTER_TRANSACTION");
+
+ private String value;
+
+ ScreeningOperationEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static ScreeningOperationEnum fromValue(String value) {
+ for (ScreeningOperationEnum b : ScreeningOperationEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @param prefix prefix of the query string
+ * @return URL query string
+ */
+ public String toUrlQueryString(String prefix) {
+ if (prefix == null) {
+ prefix = "";
+ }
+
+ return String.format("%s=%s", prefix, this.toString());
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/ScreeningOutcomeEnum.java b/src/main/java/com/fireblocks/sdk/model/ScreeningOutcomeEnum.java
new file mode 100644
index 00000000..1fb3d36c
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/ScreeningOutcomeEnum.java
@@ -0,0 +1,68 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * An `ACCEPT`/`REJECT` decision — the workflow's own outcome, a step's
+ * outcome, or the result of evaluating a step's outcome rules. `null` on a workflow
+ * outcome that is not decided yet.
+ */
+public enum ScreeningOutcomeEnum {
+ ACCEPT("ACCEPT"),
+
+ REJECT("REJECT");
+
+ private String value;
+
+ ScreeningOutcomeEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static ScreeningOutcomeEnum fromValue(String value) {
+ for (ScreeningOutcomeEnum b : ScreeningOutcomeEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @param prefix prefix of the query string
+ * @return URL query string
+ */
+ public String toUrlQueryString(String prefix) {
+ if (prefix == null) {
+ prefix = "";
+ }
+
+ return String.format("%s=%s", prefix, this.toString());
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/ScreeningPayload.java b/src/main/java/com/fireblocks/sdk/model/ScreeningPayload.java
new file mode 100644
index 00000000..130a14ac
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/ScreeningPayload.java
@@ -0,0 +1,582 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import com.fireblocks.sdk.ApiClient;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.StringJoiner;
+
+/**
+ * The subject of the screening. Which fields are required depends on the operation and on the
+ * connectors configured on the workflow's step.
+ */
+@JsonPropertyOrder({
+ ScreeningPayload.JSON_PROPERTY_BLOCKCHAIN,
+ ScreeningPayload.JSON_PROPERTY_ASSET,
+ ScreeningPayload.JSON_PROPERTY_ASSET_AMOUNT,
+ ScreeningPayload.JSON_PROPERTY_USD_VALUE,
+ ScreeningPayload.JSON_PROPERTY_CUSTOMER_REF_ID,
+ ScreeningPayload.JSON_PROPERTY_EXTERNAL_ID,
+ ScreeningPayload.JSON_PROPERTY_ADDRESS,
+ ScreeningPayload.JSON_PROPERTY_DIRECTION,
+ ScreeningPayload.JSON_PROPERTY_SOURCE_ADDRESS,
+ ScreeningPayload.JSON_PROPERTY_DESTINATION_ADDRESS,
+ ScreeningPayload.JSON_PROPERTY_TX_HASH
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class ScreeningPayload {
+ public static final String JSON_PROPERTY_BLOCKCHAIN = "blockchain";
+ @jakarta.annotation.Nullable private String blockchain;
+
+ public static final String JSON_PROPERTY_ASSET = "asset";
+ @jakarta.annotation.Nullable private String asset;
+
+ public static final String JSON_PROPERTY_ASSET_AMOUNT = "assetAmount";
+ @jakarta.annotation.Nullable private String assetAmount;
+
+ public static final String JSON_PROPERTY_USD_VALUE = "usdValue";
+ @jakarta.annotation.Nullable private String usdValue;
+
+ public static final String JSON_PROPERTY_CUSTOMER_REF_ID = "customerRefId";
+ @jakarta.annotation.Nullable private String customerRefId;
+
+ public static final String JSON_PROPERTY_EXTERNAL_ID = "externalId";
+ @jakarta.annotation.Nullable private String externalId;
+
+ public static final String JSON_PROPERTY_ADDRESS = "address";
+ @jakarta.annotation.Nullable private String address;
+
+ public static final String JSON_PROPERTY_DIRECTION = "direction";
+ @jakarta.annotation.Nullable private TransferDirectionEnum direction;
+
+ public static final String JSON_PROPERTY_SOURCE_ADDRESS = "sourceAddress";
+ @jakarta.annotation.Nullable private List sourceAddress;
+
+ public static final String JSON_PROPERTY_DESTINATION_ADDRESS = "destinationAddress";
+ @jakarta.annotation.Nullable private List destinationAddress;
+
+ public static final String JSON_PROPERTY_TX_HASH = "txHash";
+ @jakarta.annotation.Nullable private String txHash;
+
+ public ScreeningPayload() {}
+
+ public ScreeningPayload blockchain(@jakarta.annotation.Nullable String blockchain) {
+ this.blockchain = blockchain;
+ return this;
+ }
+
+ /**
+ * The blockchain network of the asset being screened.
+ *
+ * @return blockchain
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_BLOCKCHAIN)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getBlockchain() {
+ return blockchain;
+ }
+
+ @JsonProperty(JSON_PROPERTY_BLOCKCHAIN)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setBlockchain(@jakarta.annotation.Nullable String blockchain) {
+ this.blockchain = blockchain;
+ }
+
+ public ScreeningPayload asset(@jakarta.annotation.Nullable String asset) {
+ this.asset = asset;
+ return this;
+ }
+
+ /**
+ * The asset identifier being screened.
+ *
+ * @return asset
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ASSET)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getAsset() {
+ return asset;
+ }
+
+ @JsonProperty(JSON_PROPERTY_ASSET)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setAsset(@jakarta.annotation.Nullable String asset) {
+ this.asset = asset;
+ }
+
+ public ScreeningPayload assetAmount(@jakarta.annotation.Nullable String assetAmount) {
+ this.assetAmount = assetAmount;
+ return this;
+ }
+
+ /**
+ * The amount of the asset involved in the transaction, as a string.
+ *
+ * @return assetAmount
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ASSET_AMOUNT)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getAssetAmount() {
+ return assetAmount;
+ }
+
+ @JsonProperty(JSON_PROPERTY_ASSET_AMOUNT)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setAssetAmount(@jakarta.annotation.Nullable String assetAmount) {
+ this.assetAmount = assetAmount;
+ }
+
+ public ScreeningPayload usdValue(@jakarta.annotation.Nullable String usdValue) {
+ this.usdValue = usdValue;
+ return this;
+ }
+
+ /**
+ * The USD value of the transaction amount, as a string.
+ *
+ * @return usdValue
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_USD_VALUE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getUsdValue() {
+ return usdValue;
+ }
+
+ @JsonProperty(JSON_PROPERTY_USD_VALUE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setUsdValue(@jakarta.annotation.Nullable String usdValue) {
+ this.usdValue = usdValue;
+ }
+
+ public ScreeningPayload customerRefId(@jakarta.annotation.Nullable String customerRefId) {
+ this.customerRefId = customerRefId;
+ return this;
+ }
+
+ /**
+ * Customer-provided reference identifier for tracking.
+ *
+ * @return customerRefId
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_CUSTOMER_REF_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getCustomerRefId() {
+ return customerRefId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_CUSTOMER_REF_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setCustomerRefId(@jakarta.annotation.Nullable String customerRefId) {
+ this.customerRefId = customerRefId;
+ }
+
+ public ScreeningPayload externalId(@jakarta.annotation.Nullable String externalId) {
+ this.externalId = externalId;
+ return this;
+ }
+
+ /**
+ * External identifier for the screening (provider-specific).
+ *
+ * @return externalId
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_EXTERNAL_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getExternalId() {
+ return externalId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_EXTERNAL_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setExternalId(@jakarta.annotation.Nullable String externalId) {
+ this.externalId = externalId;
+ }
+
+ public ScreeningPayload address(@jakarta.annotation.Nullable String address) {
+ this.address = address;
+ return this;
+ }
+
+ /**
+ * The blockchain address to screen. Used for the `ADDRESS_SCREENING` operation.
+ *
+ * @return address
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ADDRESS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getAddress() {
+ return address;
+ }
+
+ @JsonProperty(JSON_PROPERTY_ADDRESS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setAddress(@jakarta.annotation.Nullable String address) {
+ this.address = address;
+ }
+
+ public ScreeningPayload direction(
+ @jakarta.annotation.Nullable TransferDirectionEnum direction) {
+ this.direction = direction;
+ return this;
+ }
+
+ /**
+ * Get direction
+ *
+ * @return direction
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_DIRECTION)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public TransferDirectionEnum getDirection() {
+ return direction;
+ }
+
+ @JsonProperty(JSON_PROPERTY_DIRECTION)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setDirection(@jakarta.annotation.Nullable TransferDirectionEnum direction) {
+ this.direction = direction;
+ }
+
+ public ScreeningPayload sourceAddress(@jakarta.annotation.Nullable List sourceAddress) {
+ this.sourceAddress = sourceAddress;
+ return this;
+ }
+
+ public ScreeningPayload addSourceAddressItem(String sourceAddressItem) {
+ if (this.sourceAddress == null) {
+ this.sourceAddress = new ArrayList<>();
+ }
+ this.sourceAddress.add(sourceAddressItem);
+ return this;
+ }
+
+ /**
+ * The source blockchain address(es) of the transaction.
+ *
+ * @return sourceAddress
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_SOURCE_ADDRESS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getSourceAddress() {
+ return sourceAddress;
+ }
+
+ @JsonProperty(JSON_PROPERTY_SOURCE_ADDRESS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setSourceAddress(@jakarta.annotation.Nullable List sourceAddress) {
+ this.sourceAddress = sourceAddress;
+ }
+
+ public ScreeningPayload destinationAddress(
+ @jakarta.annotation.Nullable List destinationAddress) {
+ this.destinationAddress = destinationAddress;
+ return this;
+ }
+
+ public ScreeningPayload addDestinationAddressItem(String destinationAddressItem) {
+ if (this.destinationAddress == null) {
+ this.destinationAddress = new ArrayList<>();
+ }
+ this.destinationAddress.add(destinationAddressItem);
+ return this;
+ }
+
+ /**
+ * The destination blockchain address(es) of the transaction.
+ *
+ * @return destinationAddress
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_DESTINATION_ADDRESS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getDestinationAddress() {
+ return destinationAddress;
+ }
+
+ @JsonProperty(JSON_PROPERTY_DESTINATION_ADDRESS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setDestinationAddress(
+ @jakarta.annotation.Nullable List destinationAddress) {
+ this.destinationAddress = destinationAddress;
+ }
+
+ public ScreeningPayload txHash(@jakarta.annotation.Nullable String txHash) {
+ this.txHash = txHash;
+ return this;
+ }
+
+ /**
+ * The transaction hash on the blockchain.
+ *
+ * @return txHash
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_TX_HASH)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getTxHash() {
+ return txHash;
+ }
+
+ @JsonProperty(JSON_PROPERTY_TX_HASH)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setTxHash(@jakarta.annotation.Nullable String txHash) {
+ this.txHash = txHash;
+ }
+
+ /** Return true if this ScreeningPayload object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ScreeningPayload screeningPayload = (ScreeningPayload) o;
+ return Objects.equals(this.blockchain, screeningPayload.blockchain)
+ && Objects.equals(this.asset, screeningPayload.asset)
+ && Objects.equals(this.assetAmount, screeningPayload.assetAmount)
+ && Objects.equals(this.usdValue, screeningPayload.usdValue)
+ && Objects.equals(this.customerRefId, screeningPayload.customerRefId)
+ && Objects.equals(this.externalId, screeningPayload.externalId)
+ && Objects.equals(this.address, screeningPayload.address)
+ && Objects.equals(this.direction, screeningPayload.direction)
+ && Objects.equals(this.sourceAddress, screeningPayload.sourceAddress)
+ && Objects.equals(this.destinationAddress, screeningPayload.destinationAddress)
+ && Objects.equals(this.txHash, screeningPayload.txHash);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(
+ blockchain,
+ asset,
+ assetAmount,
+ usdValue,
+ customerRefId,
+ externalId,
+ address,
+ direction,
+ sourceAddress,
+ destinationAddress,
+ txHash);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ScreeningPayload {\n");
+ sb.append(" blockchain: ").append(toIndentedString(blockchain)).append("\n");
+ sb.append(" asset: ").append(toIndentedString(asset)).append("\n");
+ sb.append(" assetAmount: ").append(toIndentedString(assetAmount)).append("\n");
+ sb.append(" usdValue: ").append(toIndentedString(usdValue)).append("\n");
+ sb.append(" customerRefId: ").append(toIndentedString(customerRefId)).append("\n");
+ sb.append(" externalId: ").append(toIndentedString(externalId)).append("\n");
+ sb.append(" address: ").append(toIndentedString(address)).append("\n");
+ sb.append(" direction: ").append(toIndentedString(direction)).append("\n");
+ sb.append(" sourceAddress: ").append(toIndentedString(sourceAddress)).append("\n");
+ sb.append(" destinationAddress: ")
+ .append(toIndentedString(destinationAddress))
+ .append("\n");
+ sb.append(" txHash: ").append(toIndentedString(txHash)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first
+ * line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @return URL query string
+ */
+ public String toUrlQueryString() {
+ return toUrlQueryString(null);
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @param prefix prefix of the query string
+ * @return URL query string
+ */
+ public String toUrlQueryString(String prefix) {
+ String suffix = "";
+ String containerSuffix = "";
+ String containerPrefix = "";
+ if (prefix == null) {
+ // style=form, explode=true, e.g. /pet?name=cat&type=manx
+ prefix = "";
+ } else {
+ // deepObject style e.g. /pet?id[name]=cat&id[type]=manx
+ prefix = prefix + "[";
+ suffix = "]";
+ containerSuffix = "]";
+ containerPrefix = "[";
+ }
+
+ StringJoiner joiner = new StringJoiner("&");
+
+ // add `blockchain` to the URL query string
+ if (getBlockchain() != null) {
+ joiner.add(
+ String.format(
+ "%sblockchain%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getBlockchain()))));
+ }
+
+ // add `asset` to the URL query string
+ if (getAsset() != null) {
+ joiner.add(
+ String.format(
+ "%sasset%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getAsset()))));
+ }
+
+ // add `assetAmount` to the URL query string
+ if (getAssetAmount() != null) {
+ joiner.add(
+ String.format(
+ "%sassetAmount%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getAssetAmount()))));
+ }
+
+ // add `usdValue` to the URL query string
+ if (getUsdValue() != null) {
+ joiner.add(
+ String.format(
+ "%susdValue%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getUsdValue()))));
+ }
+
+ // add `customerRefId` to the URL query string
+ if (getCustomerRefId() != null) {
+ joiner.add(
+ String.format(
+ "%scustomerRefId%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getCustomerRefId()))));
+ }
+
+ // add `externalId` to the URL query string
+ if (getExternalId() != null) {
+ joiner.add(
+ String.format(
+ "%sexternalId%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getExternalId()))));
+ }
+
+ // add `address` to the URL query string
+ if (getAddress() != null) {
+ joiner.add(
+ String.format(
+ "%saddress%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getAddress()))));
+ }
+
+ // add `direction` to the URL query string
+ if (getDirection() != null) {
+ joiner.add(
+ String.format(
+ "%sdirection%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getDirection()))));
+ }
+
+ // add `sourceAddress` to the URL query string
+ if (getSourceAddress() != null) {
+ for (int i = 0; i < getSourceAddress().size(); i++) {
+ joiner.add(
+ String.format(
+ "%ssourceAddress%s%s=%s",
+ prefix,
+ suffix,
+ "".equals(suffix)
+ ? ""
+ : String.format(
+ "%s%d%s", containerPrefix, i, containerSuffix),
+ ApiClient.urlEncode(
+ ApiClient.valueToString(getSourceAddress().get(i)))));
+ }
+ }
+
+ // add `destinationAddress` to the URL query string
+ if (getDestinationAddress() != null) {
+ for (int i = 0; i < getDestinationAddress().size(); i++) {
+ joiner.add(
+ String.format(
+ "%sdestinationAddress%s%s=%s",
+ prefix,
+ suffix,
+ "".equals(suffix)
+ ? ""
+ : String.format(
+ "%s%d%s", containerPrefix, i, containerSuffix),
+ ApiClient.urlEncode(
+ ApiClient.valueToString(getDestinationAddress().get(i)))));
+ }
+ }
+
+ // add `txHash` to the URL query string
+ if (getTxHash() != null) {
+ joiner.add(
+ String.format(
+ "%stxHash%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getTxHash()))));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/StepConfig.java b/src/main/java/com/fireblocks/sdk/model/StepConfig.java
new file mode 100644
index 00000000..897f04e0
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/StepConfig.java
@@ -0,0 +1,300 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import com.fireblocks.sdk.ApiClient;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.StringJoiner;
+
+/**
+ * One step in a workflow, backed by a single connector. A connector is the compliance provider
+ * integration that does the work — `kyt_trmlabs` is TRM Labs. The step declares which
+ * operations that connector handles; a screening naming an operation no step is configured for is
+ * refused, and the error reports the supported set.
+ */
+@JsonPropertyOrder({
+ StepConfig.JSON_PROPERTY_STEP_ID,
+ StepConfig.JSON_PROPERTY_CONNECTOR_ID,
+ StepConfig.JSON_PROPERTY_OPERATIONS,
+ StepConfig.JSON_PROPERTY_ORDER
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class StepConfig {
+ public static final String JSON_PROPERTY_STEP_ID = "stepId";
+ @jakarta.annotation.Nonnull private String stepId;
+
+ public static final String JSON_PROPERTY_CONNECTOR_ID = "connectorId";
+ @jakarta.annotation.Nonnull private String connectorId;
+
+ public static final String JSON_PROPERTY_OPERATIONS = "operations";
+ @jakarta.annotation.Nonnull private List operations;
+
+ public static final String JSON_PROPERTY_ORDER = "order";
+ @jakarta.annotation.Nonnull private Integer order;
+
+ public StepConfig() {}
+
+ @JsonCreator
+ public StepConfig(
+ @JsonProperty(value = JSON_PROPERTY_STEP_ID, required = true) String stepId,
+ @JsonProperty(value = JSON_PROPERTY_CONNECTOR_ID, required = true) String connectorId,
+ @JsonProperty(value = JSON_PROPERTY_OPERATIONS, required = true)
+ List operations,
+ @JsonProperty(value = JSON_PROPERTY_ORDER, required = true) Integer order) {
+ this.stepId = stepId;
+ this.connectorId = connectorId;
+ this.operations = operations;
+ this.order = order;
+ }
+
+ public StepConfig stepId(@jakarta.annotation.Nonnull String stepId) {
+ this.stepId = stepId;
+ return this;
+ }
+
+ /**
+ * Unique within the workflow.
+ *
+ * @return stepId
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_STEP_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getStepId() {
+ return stepId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_STEP_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setStepId(@jakarta.annotation.Nonnull String stepId) {
+ this.stepId = stepId;
+ }
+
+ public StepConfig connectorId(@jakarta.annotation.Nonnull String connectorId) {
+ this.connectorId = connectorId;
+ return this;
+ }
+
+ /**
+ * Identifies which connector this step invokes.
+ *
+ * @return connectorId
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_CONNECTOR_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getConnectorId() {
+ return connectorId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_CONNECTOR_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setConnectorId(@jakarta.annotation.Nonnull String connectorId) {
+ this.connectorId = connectorId;
+ }
+
+ public StepConfig operations(@jakarta.annotation.Nonnull List operations) {
+ this.operations = operations;
+ return this;
+ }
+
+ public StepConfig addOperationsItem(StepOperationConfig operationsItem) {
+ if (this.operations == null) {
+ this.operations = new ArrayList<>();
+ }
+ this.operations.add(operationsItem);
+ return this;
+ }
+
+ /**
+ * One entry per operation the step's connector handles.
+ *
+ * @return operations
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_OPERATIONS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public List getOperations() {
+ return operations;
+ }
+
+ @JsonProperty(JSON_PROPERTY_OPERATIONS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setOperations(@jakarta.annotation.Nonnull List operations) {
+ this.operations = operations;
+ }
+
+ public StepConfig order(@jakarta.annotation.Nonnull Integer order) {
+ this.order = order;
+ return this;
+ }
+
+ /**
+ * Execution order among the workflow's steps, lowest first.
+ *
+ * @return order
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_ORDER)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public Integer getOrder() {
+ return order;
+ }
+
+ @JsonProperty(JSON_PROPERTY_ORDER)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setOrder(@jakarta.annotation.Nonnull Integer order) {
+ this.order = order;
+ }
+
+ /** Return true if this StepConfig object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ StepConfig stepConfig = (StepConfig) o;
+ return Objects.equals(this.stepId, stepConfig.stepId)
+ && Objects.equals(this.connectorId, stepConfig.connectorId)
+ && Objects.equals(this.operations, stepConfig.operations)
+ && Objects.equals(this.order, stepConfig.order);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(stepId, connectorId, operations, order);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class StepConfig {\n");
+ sb.append(" stepId: ").append(toIndentedString(stepId)).append("\n");
+ sb.append(" connectorId: ").append(toIndentedString(connectorId)).append("\n");
+ sb.append(" operations: ").append(toIndentedString(operations)).append("\n");
+ sb.append(" order: ").append(toIndentedString(order)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first
+ * line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @return URL query string
+ */
+ public String toUrlQueryString() {
+ return toUrlQueryString(null);
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @param prefix prefix of the query string
+ * @return URL query string
+ */
+ public String toUrlQueryString(String prefix) {
+ String suffix = "";
+ String containerSuffix = "";
+ String containerPrefix = "";
+ if (prefix == null) {
+ // style=form, explode=true, e.g. /pet?name=cat&type=manx
+ prefix = "";
+ } else {
+ // deepObject style e.g. /pet?id[name]=cat&id[type]=manx
+ prefix = prefix + "[";
+ suffix = "]";
+ containerSuffix = "]";
+ containerPrefix = "[";
+ }
+
+ StringJoiner joiner = new StringJoiner("&");
+
+ // add `stepId` to the URL query string
+ if (getStepId() != null) {
+ joiner.add(
+ String.format(
+ "%sstepId%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getStepId()))));
+ }
+
+ // add `connectorId` to the URL query string
+ if (getConnectorId() != null) {
+ joiner.add(
+ String.format(
+ "%sconnectorId%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getConnectorId()))));
+ }
+
+ // add `operations` to the URL query string
+ if (getOperations() != null) {
+ for (int i = 0; i < getOperations().size(); i++) {
+ if (getOperations().get(i) != null) {
+ joiner.add(
+ getOperations()
+ .get(i)
+ .toUrlQueryString(
+ String.format(
+ "%soperations%s%s",
+ prefix,
+ suffix,
+ "".equals(suffix)
+ ? ""
+ : String.format(
+ "%s%d%s",
+ containerPrefix,
+ i,
+ containerSuffix))));
+ }
+ }
+ }
+
+ // add `order` to the URL query string
+ if (getOrder() != null) {
+ joiner.add(
+ String.format(
+ "%sorder%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getOrder()))));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/StepOperationConfig.java b/src/main/java/com/fireblocks/sdk/model/StepOperationConfig.java
new file mode 100644
index 00000000..ddb86344
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/StepOperationConfig.java
@@ -0,0 +1,634 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import com.fireblocks.sdk.ApiClient;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.StringJoiner;
+
+/**
+ * Configuration for one operation the step's connector handles. The operation arrives on the
+ * screening request; the connector decides how to handle it. Two rule sets govern the step, and
+ * both are configured here rather than sent per request, so the same call behaves differently
+ * across workflows. Trigger rules decide whether the connector runs at all; outcome rules turn the
+ * provider's response into the step's verdict. With neither configured the step runs under
+ * the connector's own defaults, which for `kyt_trmlabs` are permissive: the screening
+ * completes without consulting the provider. The four parameter lists are the contract for writing
+ * those rules: a rule naming a field outside `triggerRuleParameters` or
+ * `outcomeEvaluationParameters` is rejected. They are derived from the connector registry
+ * rather than stored, so a connector gaining a field is reflected here without a migration.
+ */
+@JsonPropertyOrder({
+ StepOperationConfig.JSON_PROPERTY_OPERATION,
+ StepOperationConfig.JSON_PROPERTY_REQUIRED_PARAMETERS,
+ StepOperationConfig.JSON_PROPERTY_OPTIONAL_PARAMETERS,
+ StepOperationConfig.JSON_PROPERTY_TRIGGER_RULE_PARAMETERS,
+ StepOperationConfig.JSON_PROPERTY_OUTCOME_EVALUATION_PARAMETERS,
+ StepOperationConfig.JSON_PROPERTY_OUTCOME_META_PARAMETERS,
+ StepOperationConfig.JSON_PROPERTY_TRIGGER_RULE_SET_STRUCT,
+ StepOperationConfig.JSON_PROPERTY_TRIGGER_RULE_SET_JSON,
+ StepOperationConfig.JSON_PROPERTY_OUTCOME_RULE_SET_STRUCT,
+ StepOperationConfig.JSON_PROPERTY_OUTCOME_RULE_SET_JSON
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class StepOperationConfig {
+ public static final String JSON_PROPERTY_OPERATION = "operation";
+ @jakarta.annotation.Nullable private ScreeningOperationEnum operation;
+
+ public static final String JSON_PROPERTY_REQUIRED_PARAMETERS = "requiredParameters";
+ @jakarta.annotation.Nullable private List requiredParameters;
+
+ public static final String JSON_PROPERTY_OPTIONAL_PARAMETERS = "optionalParameters";
+ @jakarta.annotation.Nullable private List optionalParameters;
+
+ public static final String JSON_PROPERTY_TRIGGER_RULE_PARAMETERS = "triggerRuleParameters";
+ @jakarta.annotation.Nullable private List triggerRuleParameters;
+
+ public static final String JSON_PROPERTY_OUTCOME_EVALUATION_PARAMETERS =
+ "outcomeEvaluationParameters";
+ @jakarta.annotation.Nullable private List outcomeEvaluationParameters;
+
+ public static final String JSON_PROPERTY_OUTCOME_META_PARAMETERS = "outcomeMetaParameters";
+ @jakarta.annotation.Nullable private List outcomeMetaParameters;
+
+ public static final String JSON_PROPERTY_TRIGGER_RULE_SET_STRUCT = "triggerRuleSetStruct";
+ @jakarta.annotation.Nullable private RuleSet triggerRuleSetStruct;
+
+ public static final String JSON_PROPERTY_TRIGGER_RULE_SET_JSON = "triggerRuleSetJson";
+ @jakarta.annotation.Nullable private String triggerRuleSetJson;
+
+ public static final String JSON_PROPERTY_OUTCOME_RULE_SET_STRUCT = "outcomeRuleSetStruct";
+ @jakarta.annotation.Nullable private RuleSet outcomeRuleSetStruct;
+
+ public static final String JSON_PROPERTY_OUTCOME_RULE_SET_JSON = "outcomeRuleSetJson";
+ @jakarta.annotation.Nullable private String outcomeRuleSetJson;
+
+ public StepOperationConfig() {}
+
+ public StepOperationConfig operation(
+ @jakarta.annotation.Nullable ScreeningOperationEnum operation) {
+ this.operation = operation;
+ return this;
+ }
+
+ /**
+ * Get operation
+ *
+ * @return operation
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_OPERATION)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public ScreeningOperationEnum getOperation() {
+ return operation;
+ }
+
+ @JsonProperty(JSON_PROPERTY_OPERATION)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setOperation(@jakarta.annotation.Nullable ScreeningOperationEnum operation) {
+ this.operation = operation;
+ }
+
+ public StepOperationConfig requiredParameters(
+ @jakarta.annotation.Nullable List requiredParameters) {
+ this.requiredParameters = requiredParameters;
+ return this;
+ }
+
+ public StepOperationConfig addRequiredParametersItem(String requiredParametersItem) {
+ if (this.requiredParameters == null) {
+ this.requiredParameters = new ArrayList<>();
+ }
+ this.requiredParameters.add(requiredParametersItem);
+ return this;
+ }
+
+ /**
+ * Resolved server-side on every `GetWorkflow` call from the step's connector
+ * definition for this operation. Read-only: ignored on write.
+ *
+ * @return requiredParameters
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_REQUIRED_PARAMETERS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getRequiredParameters() {
+ return requiredParameters;
+ }
+
+ @JsonProperty(JSON_PROPERTY_REQUIRED_PARAMETERS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setRequiredParameters(
+ @jakarta.annotation.Nullable List requiredParameters) {
+ this.requiredParameters = requiredParameters;
+ }
+
+ public StepOperationConfig optionalParameters(
+ @jakarta.annotation.Nullable List optionalParameters) {
+ this.optionalParameters = optionalParameters;
+ return this;
+ }
+
+ public StepOperationConfig addOptionalParametersItem(String optionalParametersItem) {
+ if (this.optionalParameters == null) {
+ this.optionalParameters = new ArrayList<>();
+ }
+ this.optionalParameters.add(optionalParametersItem);
+ return this;
+ }
+
+ /**
+ * Like `requiredParameters`, but optional inputs to the operation.
+ *
+ * @return optionalParameters
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_OPTIONAL_PARAMETERS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getOptionalParameters() {
+ return optionalParameters;
+ }
+
+ @JsonProperty(JSON_PROPERTY_OPTIONAL_PARAMETERS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setOptionalParameters(
+ @jakarta.annotation.Nullable List optionalParameters) {
+ this.optionalParameters = optionalParameters;
+ }
+
+ public StepOperationConfig triggerRuleParameters(
+ @jakarta.annotation.Nullable List triggerRuleParameters) {
+ this.triggerRuleParameters = triggerRuleParameters;
+ return this;
+ }
+
+ public StepOperationConfig addTriggerRuleParametersItem(String triggerRuleParametersItem) {
+ if (this.triggerRuleParameters == null) {
+ this.triggerRuleParameters = new ArrayList<>();
+ }
+ this.triggerRuleParameters.add(triggerRuleParametersItem);
+ return this;
+ }
+
+ /**
+ * Fields a condition in `triggerRuleSetStruct` may reference.
+ *
+ * @return triggerRuleParameters
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_TRIGGER_RULE_PARAMETERS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getTriggerRuleParameters() {
+ return triggerRuleParameters;
+ }
+
+ @JsonProperty(JSON_PROPERTY_TRIGGER_RULE_PARAMETERS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setTriggerRuleParameters(
+ @jakarta.annotation.Nullable List triggerRuleParameters) {
+ this.triggerRuleParameters = triggerRuleParameters;
+ }
+
+ public StepOperationConfig outcomeEvaluationParameters(
+ @jakarta.annotation.Nullable List outcomeEvaluationParameters) {
+ this.outcomeEvaluationParameters = outcomeEvaluationParameters;
+ return this;
+ }
+
+ public StepOperationConfig addOutcomeEvaluationParametersItem(
+ String outcomeEvaluationParametersItem) {
+ if (this.outcomeEvaluationParameters == null) {
+ this.outcomeEvaluationParameters = new ArrayList<>();
+ }
+ this.outcomeEvaluationParameters.add(outcomeEvaluationParametersItem);
+ return this;
+ }
+
+ /**
+ * Provider response fields a condition in `outcomeRuleSetStruct` may reference.
+ *
+ * @return outcomeEvaluationParameters
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_OUTCOME_EVALUATION_PARAMETERS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getOutcomeEvaluationParameters() {
+ return outcomeEvaluationParameters;
+ }
+
+ @JsonProperty(JSON_PROPERTY_OUTCOME_EVALUATION_PARAMETERS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setOutcomeEvaluationParameters(
+ @jakarta.annotation.Nullable List outcomeEvaluationParameters) {
+ this.outcomeEvaluationParameters = outcomeEvaluationParameters;
+ }
+
+ public StepOperationConfig outcomeMetaParameters(
+ @jakarta.annotation.Nullable List outcomeMetaParameters) {
+ this.outcomeMetaParameters = outcomeMetaParameters;
+ return this;
+ }
+
+ public StepOperationConfig addOutcomeMetaParametersItem(String outcomeMetaParametersItem) {
+ if (this.outcomeMetaParameters == null) {
+ this.outcomeMetaParameters = new ArrayList<>();
+ }
+ this.outcomeMetaParameters.add(outcomeMetaParametersItem);
+ return this;
+ }
+
+ /**
+ * Additional provider response fields returned with the result; not usable in
+ * `outcomeRuleSetStruct` conditions.
+ *
+ * @return outcomeMetaParameters
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_OUTCOME_META_PARAMETERS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getOutcomeMetaParameters() {
+ return outcomeMetaParameters;
+ }
+
+ @JsonProperty(JSON_PROPERTY_OUTCOME_META_PARAMETERS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setOutcomeMetaParameters(
+ @jakarta.annotation.Nullable List outcomeMetaParameters) {
+ this.outcomeMetaParameters = outcomeMetaParameters;
+ }
+
+ public StepOperationConfig triggerRuleSetStruct(
+ @jakarta.annotation.Nullable RuleSet triggerRuleSetStruct) {
+ this.triggerRuleSetStruct = triggerRuleSetStruct;
+ return this;
+ }
+
+ /**
+ * Get triggerRuleSetStruct
+ *
+ * @return triggerRuleSetStruct
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_TRIGGER_RULE_SET_STRUCT)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public RuleSet getTriggerRuleSetStruct() {
+ return triggerRuleSetStruct;
+ }
+
+ @JsonProperty(JSON_PROPERTY_TRIGGER_RULE_SET_STRUCT)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setTriggerRuleSetStruct(@jakarta.annotation.Nullable RuleSet triggerRuleSetStruct) {
+ this.triggerRuleSetStruct = triggerRuleSetStruct;
+ }
+
+ public StepOperationConfig triggerRuleSetJson(
+ @jakarta.annotation.Nullable String triggerRuleSetJson) {
+ this.triggerRuleSetJson = triggerRuleSetJson;
+ return this;
+ }
+
+ /**
+ * The tenant's trigger rules, as a JSON-encoded string. Set for steps whose rules are still
+ * defined as a legacy screening policy rather than natively in Compliance Orchestrator, and
+ * refreshed on every read. Mutually exclusive with `triggerRuleSetStruct`.
+ *
+ * @return triggerRuleSetJson
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_TRIGGER_RULE_SET_JSON)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getTriggerRuleSetJson() {
+ return triggerRuleSetJson;
+ }
+
+ @JsonProperty(JSON_PROPERTY_TRIGGER_RULE_SET_JSON)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setTriggerRuleSetJson(@jakarta.annotation.Nullable String triggerRuleSetJson) {
+ this.triggerRuleSetJson = triggerRuleSetJson;
+ }
+
+ public StepOperationConfig outcomeRuleSetStruct(
+ @jakarta.annotation.Nullable RuleSet outcomeRuleSetStruct) {
+ this.outcomeRuleSetStruct = outcomeRuleSetStruct;
+ return this;
+ }
+
+ /**
+ * Get outcomeRuleSetStruct
+ *
+ * @return outcomeRuleSetStruct
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_OUTCOME_RULE_SET_STRUCT)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public RuleSet getOutcomeRuleSetStruct() {
+ return outcomeRuleSetStruct;
+ }
+
+ @JsonProperty(JSON_PROPERTY_OUTCOME_RULE_SET_STRUCT)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setOutcomeRuleSetStruct(@jakarta.annotation.Nullable RuleSet outcomeRuleSetStruct) {
+ this.outcomeRuleSetStruct = outcomeRuleSetStruct;
+ }
+
+ public StepOperationConfig outcomeRuleSetJson(
+ @jakarta.annotation.Nullable String outcomeRuleSetJson) {
+ this.outcomeRuleSetJson = outcomeRuleSetJson;
+ return this;
+ }
+
+ /**
+ * The tenant's outcome rules, as a JSON-encoded string. Set for steps whose rules are still
+ * defined as a legacy screening policy rather than natively in Compliance Orchestrator, and
+ * refreshed on every read. Mutually exclusive with `outcomeRuleSetStruct`.
+ *
+ * @return outcomeRuleSetJson
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_OUTCOME_RULE_SET_JSON)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getOutcomeRuleSetJson() {
+ return outcomeRuleSetJson;
+ }
+
+ @JsonProperty(JSON_PROPERTY_OUTCOME_RULE_SET_JSON)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setOutcomeRuleSetJson(@jakarta.annotation.Nullable String outcomeRuleSetJson) {
+ this.outcomeRuleSetJson = outcomeRuleSetJson;
+ }
+
+ /** Return true if this StepOperationConfig object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ StepOperationConfig stepOperationConfig = (StepOperationConfig) o;
+ return Objects.equals(this.operation, stepOperationConfig.operation)
+ && Objects.equals(this.requiredParameters, stepOperationConfig.requiredParameters)
+ && Objects.equals(this.optionalParameters, stepOperationConfig.optionalParameters)
+ && Objects.equals(
+ this.triggerRuleParameters, stepOperationConfig.triggerRuleParameters)
+ && Objects.equals(
+ this.outcomeEvaluationParameters,
+ stepOperationConfig.outcomeEvaluationParameters)
+ && Objects.equals(
+ this.outcomeMetaParameters, stepOperationConfig.outcomeMetaParameters)
+ && Objects.equals(
+ this.triggerRuleSetStruct, stepOperationConfig.triggerRuleSetStruct)
+ && Objects.equals(this.triggerRuleSetJson, stepOperationConfig.triggerRuleSetJson)
+ && Objects.equals(
+ this.outcomeRuleSetStruct, stepOperationConfig.outcomeRuleSetStruct)
+ && Objects.equals(this.outcomeRuleSetJson, stepOperationConfig.outcomeRuleSetJson);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(
+ operation,
+ requiredParameters,
+ optionalParameters,
+ triggerRuleParameters,
+ outcomeEvaluationParameters,
+ outcomeMetaParameters,
+ triggerRuleSetStruct,
+ triggerRuleSetJson,
+ outcomeRuleSetStruct,
+ outcomeRuleSetJson);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class StepOperationConfig {\n");
+ sb.append(" operation: ").append(toIndentedString(operation)).append("\n");
+ sb.append(" requiredParameters: ")
+ .append(toIndentedString(requiredParameters))
+ .append("\n");
+ sb.append(" optionalParameters: ")
+ .append(toIndentedString(optionalParameters))
+ .append("\n");
+ sb.append(" triggerRuleParameters: ")
+ .append(toIndentedString(triggerRuleParameters))
+ .append("\n");
+ sb.append(" outcomeEvaluationParameters: ")
+ .append(toIndentedString(outcomeEvaluationParameters))
+ .append("\n");
+ sb.append(" outcomeMetaParameters: ")
+ .append(toIndentedString(outcomeMetaParameters))
+ .append("\n");
+ sb.append(" triggerRuleSetStruct: ")
+ .append(toIndentedString(triggerRuleSetStruct))
+ .append("\n");
+ sb.append(" triggerRuleSetJson: ")
+ .append(toIndentedString(triggerRuleSetJson))
+ .append("\n");
+ sb.append(" outcomeRuleSetStruct: ")
+ .append(toIndentedString(outcomeRuleSetStruct))
+ .append("\n");
+ sb.append(" outcomeRuleSetJson: ")
+ .append(toIndentedString(outcomeRuleSetJson))
+ .append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first
+ * line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @return URL query string
+ */
+ public String toUrlQueryString() {
+ return toUrlQueryString(null);
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @param prefix prefix of the query string
+ * @return URL query string
+ */
+ public String toUrlQueryString(String prefix) {
+ String suffix = "";
+ String containerSuffix = "";
+ String containerPrefix = "";
+ if (prefix == null) {
+ // style=form, explode=true, e.g. /pet?name=cat&type=manx
+ prefix = "";
+ } else {
+ // deepObject style e.g. /pet?id[name]=cat&id[type]=manx
+ prefix = prefix + "[";
+ suffix = "]";
+ containerSuffix = "]";
+ containerPrefix = "[";
+ }
+
+ StringJoiner joiner = new StringJoiner("&");
+
+ // add `operation` to the URL query string
+ if (getOperation() != null) {
+ joiner.add(
+ String.format(
+ "%soperation%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getOperation()))));
+ }
+
+ // add `requiredParameters` to the URL query string
+ if (getRequiredParameters() != null) {
+ for (int i = 0; i < getRequiredParameters().size(); i++) {
+ joiner.add(
+ String.format(
+ "%srequiredParameters%s%s=%s",
+ prefix,
+ suffix,
+ "".equals(suffix)
+ ? ""
+ : String.format(
+ "%s%d%s", containerPrefix, i, containerSuffix),
+ ApiClient.urlEncode(
+ ApiClient.valueToString(getRequiredParameters().get(i)))));
+ }
+ }
+
+ // add `optionalParameters` to the URL query string
+ if (getOptionalParameters() != null) {
+ for (int i = 0; i < getOptionalParameters().size(); i++) {
+ joiner.add(
+ String.format(
+ "%soptionalParameters%s%s=%s",
+ prefix,
+ suffix,
+ "".equals(suffix)
+ ? ""
+ : String.format(
+ "%s%d%s", containerPrefix, i, containerSuffix),
+ ApiClient.urlEncode(
+ ApiClient.valueToString(getOptionalParameters().get(i)))));
+ }
+ }
+
+ // add `triggerRuleParameters` to the URL query string
+ if (getTriggerRuleParameters() != null) {
+ for (int i = 0; i < getTriggerRuleParameters().size(); i++) {
+ joiner.add(
+ String.format(
+ "%striggerRuleParameters%s%s=%s",
+ prefix,
+ suffix,
+ "".equals(suffix)
+ ? ""
+ : String.format(
+ "%s%d%s", containerPrefix, i, containerSuffix),
+ ApiClient.urlEncode(
+ ApiClient.valueToString(
+ getTriggerRuleParameters().get(i)))));
+ }
+ }
+
+ // add `outcomeEvaluationParameters` to the URL query string
+ if (getOutcomeEvaluationParameters() != null) {
+ for (int i = 0; i < getOutcomeEvaluationParameters().size(); i++) {
+ joiner.add(
+ String.format(
+ "%soutcomeEvaluationParameters%s%s=%s",
+ prefix,
+ suffix,
+ "".equals(suffix)
+ ? ""
+ : String.format(
+ "%s%d%s", containerPrefix, i, containerSuffix),
+ ApiClient.urlEncode(
+ ApiClient.valueToString(
+ getOutcomeEvaluationParameters().get(i)))));
+ }
+ }
+
+ // add `outcomeMetaParameters` to the URL query string
+ if (getOutcomeMetaParameters() != null) {
+ for (int i = 0; i < getOutcomeMetaParameters().size(); i++) {
+ joiner.add(
+ String.format(
+ "%soutcomeMetaParameters%s%s=%s",
+ prefix,
+ suffix,
+ "".equals(suffix)
+ ? ""
+ : String.format(
+ "%s%d%s", containerPrefix, i, containerSuffix),
+ ApiClient.urlEncode(
+ ApiClient.valueToString(
+ getOutcomeMetaParameters().get(i)))));
+ }
+ }
+
+ // add `triggerRuleSetStruct` to the URL query string
+ if (getTriggerRuleSetStruct() != null) {
+ joiner.add(
+ getTriggerRuleSetStruct()
+ .toUrlQueryString(prefix + "triggerRuleSetStruct" + suffix));
+ }
+
+ // add `triggerRuleSetJson` to the URL query string
+ if (getTriggerRuleSetJson() != null) {
+ joiner.add(
+ String.format(
+ "%striggerRuleSetJson%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getTriggerRuleSetJson()))));
+ }
+
+ // add `outcomeRuleSetStruct` to the URL query string
+ if (getOutcomeRuleSetStruct() != null) {
+ joiner.add(
+ getOutcomeRuleSetStruct()
+ .toUrlQueryString(prefix + "outcomeRuleSetStruct" + suffix));
+ }
+
+ // add `outcomeRuleSetJson` to the URL query string
+ if (getOutcomeRuleSetJson() != null) {
+ joiner.add(
+ String.format(
+ "%soutcomeRuleSetJson%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getOutcomeRuleSetJson()))));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/StepResult.java b/src/main/java/com/fireblocks/sdk/model/StepResult.java
new file mode 100644
index 00000000..856b157a
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/StepResult.java
@@ -0,0 +1,718 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import com.fireblocks.sdk.ApiClient;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+import java.util.StringJoiner;
+
+/**
+ * The result of one workflow step's execution during a screening. Carries the step's
+ * outcome next to the two rule evaluations that produced it — which trigger rule decided the
+ * connector should run, and which outcome rule read the response — plus the provider's own
+ * verdict and risk level. A step that did not screen carries a `bypassReason` instead of
+ * a risk level. Only `PASSED_BY_POLICY` means the policy deliberately let it through;
+ * every other reason means the check could not be performed, and the step is rejected rather than
+ * passed. A bypass is not an approval.
+ */
+@JsonPropertyOrder({
+ StepResult.JSON_PROPERTY_STEP_ID,
+ StepResult.JSON_PROPERTY_CONNECTOR_ID,
+ StepResult.JSON_PROPERTY_OPERATION,
+ StepResult.JSON_PROPERTY_TRIGGER_RULE_OUTCOME,
+ StepResult.JSON_PROPERTY_MATCHED_TRIGGER_RULE,
+ StepResult.JSON_PROPERTY_OUTCOME_RULE_OUTCOME,
+ StepResult.JSON_PROPERTY_MATCHED_OUTCOME_RULE,
+ StepResult.JSON_PROPERTY_OUTCOME,
+ StepResult.JSON_PROPERTY_METADATA,
+ StepResult.JSON_PROPERTY_TICKET_ID,
+ StepResult.JSON_PROPERTY_VERDICT,
+ StepResult.JSON_PROPERTY_CONNECTOR_STATUS,
+ StepResult.JSON_PROPERTY_BYPASS_REASON,
+ StepResult.JSON_PROPERTY_RISK
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class StepResult {
+ public static final String JSON_PROPERTY_STEP_ID = "stepId";
+ @jakarta.annotation.Nonnull private String stepId;
+
+ public static final String JSON_PROPERTY_CONNECTOR_ID = "connectorId";
+ @jakarta.annotation.Nonnull private String connectorId;
+
+ public static final String JSON_PROPERTY_OPERATION = "operation";
+ @jakarta.annotation.Nonnull private ScreeningOperationEnum operation;
+
+ public static final String JSON_PROPERTY_TRIGGER_RULE_OUTCOME = "triggerRuleOutcome";
+ @jakarta.annotation.Nonnull private TriggerRuleOutcomeEnum triggerRuleOutcome;
+
+ public static final String JSON_PROPERTY_MATCHED_TRIGGER_RULE = "matchedTriggerRule";
+ @jakarta.annotation.Nullable private Rule matchedTriggerRule;
+
+ public static final String JSON_PROPERTY_OUTCOME_RULE_OUTCOME = "outcomeRuleOutcome";
+ @jakarta.annotation.Nullable private ScreeningOutcomeEnum outcomeRuleOutcome;
+
+ public static final String JSON_PROPERTY_MATCHED_OUTCOME_RULE = "matchedOutcomeRule";
+ @jakarta.annotation.Nullable private Rule matchedOutcomeRule;
+
+ public static final String JSON_PROPERTY_OUTCOME = "outcome";
+ @jakarta.annotation.Nullable private ScreeningOutcomeEnum outcome;
+
+ public static final String JSON_PROPERTY_METADATA = "metadata";
+ @jakarta.annotation.Nullable private Map metadata;
+
+ public static final String JSON_PROPERTY_TICKET_ID = "ticketId";
+ @jakarta.annotation.Nullable private String ticketId;
+
+ public static final String JSON_PROPERTY_VERDICT = "verdict";
+ @jakarta.annotation.Nullable private ConnectorVerdictEnum verdict;
+
+ public static final String JSON_PROPERTY_CONNECTOR_STATUS = "connectorStatus";
+ @jakarta.annotation.Nullable private ConnectorStatusEnum connectorStatus;
+
+ public static final String JSON_PROPERTY_BYPASS_REASON = "bypassReason";
+ @jakarta.annotation.Nullable private BypassReasonEnum bypassReason;
+
+ public static final String JSON_PROPERTY_RISK = "risk";
+ @jakarta.annotation.Nullable private RiskLevelEnum risk;
+
+ public StepResult() {}
+
+ @JsonCreator
+ public StepResult(
+ @JsonProperty(value = JSON_PROPERTY_STEP_ID, required = true) String stepId,
+ @JsonProperty(value = JSON_PROPERTY_CONNECTOR_ID, required = true) String connectorId,
+ @JsonProperty(value = JSON_PROPERTY_OPERATION, required = true)
+ ScreeningOperationEnum operation,
+ @JsonProperty(value = JSON_PROPERTY_TRIGGER_RULE_OUTCOME, required = true)
+ TriggerRuleOutcomeEnum triggerRuleOutcome,
+ @JsonProperty(value = JSON_PROPERTY_OUTCOME_RULE_OUTCOME, required = true)
+ ScreeningOutcomeEnum outcomeRuleOutcome,
+ @JsonProperty(value = JSON_PROPERTY_OUTCOME, required = true)
+ ScreeningOutcomeEnum outcome) {
+ this.stepId = stepId;
+ this.connectorId = connectorId;
+ this.operation = operation;
+ this.triggerRuleOutcome = triggerRuleOutcome;
+ this.outcomeRuleOutcome = outcomeRuleOutcome;
+ this.outcome = outcome;
+ }
+
+ public StepResult stepId(@jakarta.annotation.Nonnull String stepId) {
+ this.stepId = stepId;
+ return this;
+ }
+
+ /**
+ * Identifier of this step within the workflow.
+ *
+ * @return stepId
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_STEP_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getStepId() {
+ return stepId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_STEP_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setStepId(@jakarta.annotation.Nonnull String stepId) {
+ this.stepId = stepId;
+ }
+
+ public StepResult connectorId(@jakarta.annotation.Nonnull String connectorId) {
+ this.connectorId = connectorId;
+ return this;
+ }
+
+ /**
+ * Identifier of the connector that executed this step.
+ *
+ * @return connectorId
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_CONNECTOR_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getConnectorId() {
+ return connectorId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_CONNECTOR_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setConnectorId(@jakarta.annotation.Nonnull String connectorId) {
+ this.connectorId = connectorId;
+ }
+
+ public StepResult operation(@jakarta.annotation.Nonnull ScreeningOperationEnum operation) {
+ this.operation = operation;
+ return this;
+ }
+
+ /**
+ * Get operation
+ *
+ * @return operation
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_OPERATION)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public ScreeningOperationEnum getOperation() {
+ return operation;
+ }
+
+ @JsonProperty(JSON_PROPERTY_OPERATION)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setOperation(@jakarta.annotation.Nonnull ScreeningOperationEnum operation) {
+ this.operation = operation;
+ }
+
+ public StepResult triggerRuleOutcome(
+ @jakarta.annotation.Nonnull TriggerRuleOutcomeEnum triggerRuleOutcome) {
+ this.triggerRuleOutcome = triggerRuleOutcome;
+ return this;
+ }
+
+ /**
+ * Get triggerRuleOutcome
+ *
+ * @return triggerRuleOutcome
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_TRIGGER_RULE_OUTCOME)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public TriggerRuleOutcomeEnum getTriggerRuleOutcome() {
+ return triggerRuleOutcome;
+ }
+
+ @JsonProperty(JSON_PROPERTY_TRIGGER_RULE_OUTCOME)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setTriggerRuleOutcome(
+ @jakarta.annotation.Nonnull TriggerRuleOutcomeEnum triggerRuleOutcome) {
+ this.triggerRuleOutcome = triggerRuleOutcome;
+ }
+
+ public StepResult matchedTriggerRule(@jakarta.annotation.Nullable Rule matchedTriggerRule) {
+ this.matchedTriggerRule = matchedTriggerRule;
+ return this;
+ }
+
+ /**
+ * Get matchedTriggerRule
+ *
+ * @return matchedTriggerRule
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_MATCHED_TRIGGER_RULE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Rule getMatchedTriggerRule() {
+ return matchedTriggerRule;
+ }
+
+ @JsonProperty(JSON_PROPERTY_MATCHED_TRIGGER_RULE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setMatchedTriggerRule(@jakarta.annotation.Nullable Rule matchedTriggerRule) {
+ this.matchedTriggerRule = matchedTriggerRule;
+ }
+
+ public StepResult outcomeRuleOutcome(
+ @jakarta.annotation.Nullable ScreeningOutcomeEnum outcomeRuleOutcome) {
+ this.outcomeRuleOutcome = outcomeRuleOutcome;
+ return this;
+ }
+
+ /**
+ * Get outcomeRuleOutcome
+ *
+ * @return outcomeRuleOutcome
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_OUTCOME_RULE_OUTCOME)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public ScreeningOutcomeEnum getOutcomeRuleOutcome() {
+ return outcomeRuleOutcome;
+ }
+
+ @JsonProperty(JSON_PROPERTY_OUTCOME_RULE_OUTCOME)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setOutcomeRuleOutcome(
+ @jakarta.annotation.Nullable ScreeningOutcomeEnum outcomeRuleOutcome) {
+ this.outcomeRuleOutcome = outcomeRuleOutcome;
+ }
+
+ public StepResult matchedOutcomeRule(@jakarta.annotation.Nullable Rule matchedOutcomeRule) {
+ this.matchedOutcomeRule = matchedOutcomeRule;
+ return this;
+ }
+
+ /**
+ * Get matchedOutcomeRule
+ *
+ * @return matchedOutcomeRule
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_MATCHED_OUTCOME_RULE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Rule getMatchedOutcomeRule() {
+ return matchedOutcomeRule;
+ }
+
+ @JsonProperty(JSON_PROPERTY_MATCHED_OUTCOME_RULE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setMatchedOutcomeRule(@jakarta.annotation.Nullable Rule matchedOutcomeRule) {
+ this.matchedOutcomeRule = matchedOutcomeRule;
+ }
+
+ public StepResult outcome(@jakarta.annotation.Nullable ScreeningOutcomeEnum outcome) {
+ this.outcome = outcome;
+ return this;
+ }
+
+ /**
+ * Get outcome
+ *
+ * @return outcome
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_OUTCOME)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public ScreeningOutcomeEnum getOutcome() {
+ return outcome;
+ }
+
+ @JsonProperty(JSON_PROPERTY_OUTCOME)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setOutcome(@jakarta.annotation.Nullable ScreeningOutcomeEnum outcome) {
+ this.outcome = outcome;
+ }
+
+ public StepResult metadata(@jakarta.annotation.Nullable Map metadata) {
+ this.metadata = metadata;
+ return this;
+ }
+
+ public StepResult putMetadataItem(String key, Object metadataItem) {
+ if (this.metadata == null) {
+ this.metadata = new HashMap<>();
+ }
+ this.metadata.put(key, metadataItem);
+ return this;
+ }
+
+ /**
+ * Connector-specific data, keyed by the connector's configured outcomeMetaParameters for
+ * this operation.
+ *
+ * @return metadata
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_METADATA)
+ @JsonInclude(content = JsonInclude.Include.ALWAYS, value = JsonInclude.Include.USE_DEFAULTS)
+ public Map getMetadata() {
+ return metadata;
+ }
+
+ @JsonProperty(JSON_PROPERTY_METADATA)
+ @JsonInclude(content = JsonInclude.Include.ALWAYS, value = JsonInclude.Include.USE_DEFAULTS)
+ public void setMetadata(@jakarta.annotation.Nullable Map metadata) {
+ this.metadata = metadata;
+ }
+
+ public StepResult ticketId(@jakarta.annotation.Nullable String ticketId) {
+ this.ticketId = ticketId;
+ return this;
+ }
+
+ /**
+ * The connector-side screening ticket identifier.
+ *
+ * @return ticketId
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_TICKET_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getTicketId() {
+ return ticketId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_TICKET_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setTicketId(@jakarta.annotation.Nullable String ticketId) {
+ this.ticketId = ticketId;
+ }
+
+ public StepResult verdict(@jakarta.annotation.Nullable ConnectorVerdictEnum verdict) {
+ this.verdict = verdict;
+ return this;
+ }
+
+ /**
+ * Get verdict
+ *
+ * @return verdict
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_VERDICT)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public ConnectorVerdictEnum getVerdict() {
+ return verdict;
+ }
+
+ @JsonProperty(JSON_PROPERTY_VERDICT)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setVerdict(@jakarta.annotation.Nullable ConnectorVerdictEnum verdict) {
+ this.verdict = verdict;
+ }
+
+ public StepResult connectorStatus(
+ @jakarta.annotation.Nullable ConnectorStatusEnum connectorStatus) {
+ this.connectorStatus = connectorStatus;
+ return this;
+ }
+
+ /**
+ * Get connectorStatus
+ *
+ * @return connectorStatus
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_CONNECTOR_STATUS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public ConnectorStatusEnum getConnectorStatus() {
+ return connectorStatus;
+ }
+
+ @JsonProperty(JSON_PROPERTY_CONNECTOR_STATUS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setConnectorStatus(
+ @jakarta.annotation.Nullable ConnectorStatusEnum connectorStatus) {
+ this.connectorStatus = connectorStatus;
+ }
+
+ public StepResult bypassReason(@jakarta.annotation.Nullable BypassReasonEnum bypassReason) {
+ this.bypassReason = bypassReason;
+ return this;
+ }
+
+ /**
+ * Get bypassReason
+ *
+ * @return bypassReason
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_BYPASS_REASON)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public BypassReasonEnum getBypassReason() {
+ return bypassReason;
+ }
+
+ @JsonProperty(JSON_PROPERTY_BYPASS_REASON)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setBypassReason(@jakarta.annotation.Nullable BypassReasonEnum bypassReason) {
+ this.bypassReason = bypassReason;
+ }
+
+ public StepResult risk(@jakarta.annotation.Nullable RiskLevelEnum risk) {
+ this.risk = risk;
+ return this;
+ }
+
+ /**
+ * Get risk
+ *
+ * @return risk
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_RISK)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public RiskLevelEnum getRisk() {
+ return risk;
+ }
+
+ @JsonProperty(JSON_PROPERTY_RISK)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setRisk(@jakarta.annotation.Nullable RiskLevelEnum risk) {
+ this.risk = risk;
+ }
+
+ /** Return true if this StepResult object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ StepResult stepResult = (StepResult) o;
+ return Objects.equals(this.stepId, stepResult.stepId)
+ && Objects.equals(this.connectorId, stepResult.connectorId)
+ && Objects.equals(this.operation, stepResult.operation)
+ && Objects.equals(this.triggerRuleOutcome, stepResult.triggerRuleOutcome)
+ && Objects.equals(this.matchedTriggerRule, stepResult.matchedTriggerRule)
+ && Objects.equals(this.outcomeRuleOutcome, stepResult.outcomeRuleOutcome)
+ && Objects.equals(this.matchedOutcomeRule, stepResult.matchedOutcomeRule)
+ && Objects.equals(this.outcome, stepResult.outcome)
+ && Objects.equals(this.metadata, stepResult.metadata)
+ && Objects.equals(this.ticketId, stepResult.ticketId)
+ && Objects.equals(this.verdict, stepResult.verdict)
+ && Objects.equals(this.connectorStatus, stepResult.connectorStatus)
+ && Objects.equals(this.bypassReason, stepResult.bypassReason)
+ && Objects.equals(this.risk, stepResult.risk);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(
+ stepId,
+ connectorId,
+ operation,
+ triggerRuleOutcome,
+ matchedTriggerRule,
+ outcomeRuleOutcome,
+ matchedOutcomeRule,
+ outcome,
+ metadata,
+ ticketId,
+ verdict,
+ connectorStatus,
+ bypassReason,
+ risk);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class StepResult {\n");
+ sb.append(" stepId: ").append(toIndentedString(stepId)).append("\n");
+ sb.append(" connectorId: ").append(toIndentedString(connectorId)).append("\n");
+ sb.append(" operation: ").append(toIndentedString(operation)).append("\n");
+ sb.append(" triggerRuleOutcome: ")
+ .append(toIndentedString(triggerRuleOutcome))
+ .append("\n");
+ sb.append(" matchedTriggerRule: ")
+ .append(toIndentedString(matchedTriggerRule))
+ .append("\n");
+ sb.append(" outcomeRuleOutcome: ")
+ .append(toIndentedString(outcomeRuleOutcome))
+ .append("\n");
+ sb.append(" matchedOutcomeRule: ")
+ .append(toIndentedString(matchedOutcomeRule))
+ .append("\n");
+ sb.append(" outcome: ").append(toIndentedString(outcome)).append("\n");
+ sb.append(" metadata: ").append(toIndentedString(metadata)).append("\n");
+ sb.append(" ticketId: ").append(toIndentedString(ticketId)).append("\n");
+ sb.append(" verdict: ").append(toIndentedString(verdict)).append("\n");
+ sb.append(" connectorStatus: ").append(toIndentedString(connectorStatus)).append("\n");
+ sb.append(" bypassReason: ").append(toIndentedString(bypassReason)).append("\n");
+ sb.append(" risk: ").append(toIndentedString(risk)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first
+ * line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @return URL query string
+ */
+ public String toUrlQueryString() {
+ return toUrlQueryString(null);
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @param prefix prefix of the query string
+ * @return URL query string
+ */
+ public String toUrlQueryString(String prefix) {
+ String suffix = "";
+ String containerSuffix = "";
+ String containerPrefix = "";
+ if (prefix == null) {
+ // style=form, explode=true, e.g. /pet?name=cat&type=manx
+ prefix = "";
+ } else {
+ // deepObject style e.g. /pet?id[name]=cat&id[type]=manx
+ prefix = prefix + "[";
+ suffix = "]";
+ containerSuffix = "]";
+ containerPrefix = "[";
+ }
+
+ StringJoiner joiner = new StringJoiner("&");
+
+ // add `stepId` to the URL query string
+ if (getStepId() != null) {
+ joiner.add(
+ String.format(
+ "%sstepId%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getStepId()))));
+ }
+
+ // add `connectorId` to the URL query string
+ if (getConnectorId() != null) {
+ joiner.add(
+ String.format(
+ "%sconnectorId%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getConnectorId()))));
+ }
+
+ // add `operation` to the URL query string
+ if (getOperation() != null) {
+ joiner.add(
+ String.format(
+ "%soperation%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getOperation()))));
+ }
+
+ // add `triggerRuleOutcome` to the URL query string
+ if (getTriggerRuleOutcome() != null) {
+ joiner.add(
+ String.format(
+ "%striggerRuleOutcome%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getTriggerRuleOutcome()))));
+ }
+
+ // add `matchedTriggerRule` to the URL query string
+ if (getMatchedTriggerRule() != null) {
+ joiner.add(
+ getMatchedTriggerRule()
+ .toUrlQueryString(prefix + "matchedTriggerRule" + suffix));
+ }
+
+ // add `outcomeRuleOutcome` to the URL query string
+ if (getOutcomeRuleOutcome() != null) {
+ joiner.add(
+ String.format(
+ "%soutcomeRuleOutcome%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getOutcomeRuleOutcome()))));
+ }
+
+ // add `matchedOutcomeRule` to the URL query string
+ if (getMatchedOutcomeRule() != null) {
+ joiner.add(
+ getMatchedOutcomeRule()
+ .toUrlQueryString(prefix + "matchedOutcomeRule" + suffix));
+ }
+
+ // add `outcome` to the URL query string
+ if (getOutcome() != null) {
+ joiner.add(
+ String.format(
+ "%soutcome%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getOutcome()))));
+ }
+
+ // add `metadata` to the URL query string
+ if (getMetadata() != null) {
+ for (String _key : getMetadata().keySet()) {
+ joiner.add(
+ String.format(
+ "%smetadata%s%s=%s",
+ prefix,
+ suffix,
+ "".equals(suffix)
+ ? ""
+ : String.format(
+ "%s%d%s", containerPrefix, _key, containerSuffix),
+ getMetadata().get(_key),
+ ApiClient.urlEncode(
+ ApiClient.valueToString(getMetadata().get(_key)))));
+ }
+ }
+
+ // add `ticketId` to the URL query string
+ if (getTicketId() != null) {
+ joiner.add(
+ String.format(
+ "%sticketId%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getTicketId()))));
+ }
+
+ // add `verdict` to the URL query string
+ if (getVerdict() != null) {
+ joiner.add(
+ String.format(
+ "%sverdict%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getVerdict()))));
+ }
+
+ // add `connectorStatus` to the URL query string
+ if (getConnectorStatus() != null) {
+ joiner.add(
+ String.format(
+ "%sconnectorStatus%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getConnectorStatus()))));
+ }
+
+ // add `bypassReason` to the URL query string
+ if (getBypassReason() != null) {
+ joiner.add(
+ String.format(
+ "%sbypassReason%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getBypassReason()))));
+ }
+
+ // add `risk` to the URL query string
+ if (getRisk() != null) {
+ joiner.add(
+ String.format(
+ "%srisk%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getRisk()))));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/TransactionReceiptResponse.java b/src/main/java/com/fireblocks/sdk/model/TransactionReceiptResponse.java
index aa961179..ccc6ecd5 100644
--- a/src/main/java/com/fireblocks/sdk/model/TransactionReceiptResponse.java
+++ b/src/main/java/com/fireblocks/sdk/model/TransactionReceiptResponse.java
@@ -54,16 +54,16 @@ public class TransactionReceiptResponse {
@jakarta.annotation.Nullable private String contractAddress;
public static final String JSON_PROPERTY_CUMULATIVE_GAS_USED = "cumulativeGasUsed";
- @jakarta.annotation.Nonnull private Integer cumulativeGasUsed;
+ @jakarta.annotation.Nonnull private Long cumulativeGasUsed;
public static final String JSON_PROPERTY_EFFECTIVE_GAS_PRICE = "effectiveGasPrice";
- @jakarta.annotation.Nonnull private Integer effectiveGasPrice;
+ @jakarta.annotation.Nonnull private Long effectiveGasPrice;
public static final String JSON_PROPERTY_FROM = "from";
@jakarta.annotation.Nonnull private String from;
public static final String JSON_PROPERTY_GAS_USED = "gasUsed";
- @jakarta.annotation.Nonnull private Integer gasUsed;
+ @jakarta.annotation.Nonnull private Long gasUsed;
public static final String JSON_PROPERTY_LOGS = "logs";
@jakarta.annotation.Nonnull private List logs;
@@ -93,11 +93,11 @@ public TransactionReceiptResponse(
@JsonProperty(value = JSON_PROPERTY_BLOCK_HASH, required = true) String blockHash,
@JsonProperty(value = JSON_PROPERTY_BLOCK_NUMBER, required = true) Integer blockNumber,
@JsonProperty(value = JSON_PROPERTY_CUMULATIVE_GAS_USED, required = true)
- Integer cumulativeGasUsed,
+ Long cumulativeGasUsed,
@JsonProperty(value = JSON_PROPERTY_EFFECTIVE_GAS_PRICE, required = true)
- Integer effectiveGasPrice,
+ Long effectiveGasPrice,
@JsonProperty(value = JSON_PROPERTY_FROM, required = true) String from,
- @JsonProperty(value = JSON_PROPERTY_GAS_USED, required = true) Integer gasUsed,
+ @JsonProperty(value = JSON_PROPERTY_GAS_USED, required = true) Long gasUsed,
@JsonProperty(value = JSON_PROPERTY_LOGS, required = true) List logs,
@JsonProperty(value = JSON_PROPERTY_LOGS_BLOOM, required = true) String logsBloom,
@JsonProperty(value = JSON_PROPERTY_STATUS, required = true) Integer status,
@@ -191,7 +191,7 @@ public void setContractAddress(@jakarta.annotation.Nullable String contractAddre
}
public TransactionReceiptResponse cumulativeGasUsed(
- @jakarta.annotation.Nonnull Integer cumulativeGasUsed) {
+ @jakarta.annotation.Nonnull Long cumulativeGasUsed) {
this.cumulativeGasUsed = cumulativeGasUsed;
return this;
}
@@ -204,18 +204,18 @@ public TransactionReceiptResponse cumulativeGasUsed(
@jakarta.annotation.Nonnull
@JsonProperty(JSON_PROPERTY_CUMULATIVE_GAS_USED)
@JsonInclude(value = JsonInclude.Include.ALWAYS)
- public Integer getCumulativeGasUsed() {
+ public Long getCumulativeGasUsed() {
return cumulativeGasUsed;
}
@JsonProperty(JSON_PROPERTY_CUMULATIVE_GAS_USED)
@JsonInclude(value = JsonInclude.Include.ALWAYS)
- public void setCumulativeGasUsed(@jakarta.annotation.Nonnull Integer cumulativeGasUsed) {
+ public void setCumulativeGasUsed(@jakarta.annotation.Nonnull Long cumulativeGasUsed) {
this.cumulativeGasUsed = cumulativeGasUsed;
}
public TransactionReceiptResponse effectiveGasPrice(
- @jakarta.annotation.Nonnull Integer effectiveGasPrice) {
+ @jakarta.annotation.Nonnull Long effectiveGasPrice) {
this.effectiveGasPrice = effectiveGasPrice;
return this;
}
@@ -228,13 +228,13 @@ public TransactionReceiptResponse effectiveGasPrice(
@jakarta.annotation.Nonnull
@JsonProperty(JSON_PROPERTY_EFFECTIVE_GAS_PRICE)
@JsonInclude(value = JsonInclude.Include.ALWAYS)
- public Integer getEffectiveGasPrice() {
+ public Long getEffectiveGasPrice() {
return effectiveGasPrice;
}
@JsonProperty(JSON_PROPERTY_EFFECTIVE_GAS_PRICE)
@JsonInclude(value = JsonInclude.Include.ALWAYS)
- public void setEffectiveGasPrice(@jakarta.annotation.Nonnull Integer effectiveGasPrice) {
+ public void setEffectiveGasPrice(@jakarta.annotation.Nonnull Long effectiveGasPrice) {
this.effectiveGasPrice = effectiveGasPrice;
}
@@ -261,7 +261,7 @@ public void setFrom(@jakarta.annotation.Nonnull String from) {
this.from = from;
}
- public TransactionReceiptResponse gasUsed(@jakarta.annotation.Nonnull Integer gasUsed) {
+ public TransactionReceiptResponse gasUsed(@jakarta.annotation.Nonnull Long gasUsed) {
this.gasUsed = gasUsed;
return this;
}
@@ -274,13 +274,13 @@ public TransactionReceiptResponse gasUsed(@jakarta.annotation.Nonnull Integer ga
@jakarta.annotation.Nonnull
@JsonProperty(JSON_PROPERTY_GAS_USED)
@JsonInclude(value = JsonInclude.Include.ALWAYS)
- public Integer getGasUsed() {
+ public Long getGasUsed() {
return gasUsed;
}
@JsonProperty(JSON_PROPERTY_GAS_USED)
@JsonInclude(value = JsonInclude.Include.ALWAYS)
- public void setGasUsed(@jakarta.annotation.Nonnull Integer gasUsed) {
+ public void setGasUsed(@jakarta.annotation.Nonnull Long gasUsed) {
this.gasUsed = gasUsed;
}
diff --git a/src/main/java/com/fireblocks/sdk/model/TransferDirectionEnum.java b/src/main/java/com/fireblocks/sdk/model/TransferDirectionEnum.java
new file mode 100644
index 00000000..426cfb1f
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/TransferDirectionEnum.java
@@ -0,0 +1,68 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * A transfer's direction relative to the workspace. Set for `TRANSACTION_SCREENING`
+ * and `REGISTER_TRANSACTION`; it has no meaning for `ADDRESS_SCREENING`, which
+ * screens an address on its own.
+ */
+public enum TransferDirectionEnum {
+ INBOUND("INBOUND"),
+
+ OUTBOUND("OUTBOUND");
+
+ private String value;
+
+ TransferDirectionEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static TransferDirectionEnum fromValue(String value) {
+ for (TransferDirectionEnum b : TransferDirectionEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @param prefix prefix of the query string
+ * @return URL query string
+ */
+ public String toUrlQueryString(String prefix) {
+ if (prefix == null) {
+ prefix = "";
+ }
+
+ return String.format("%s=%s", prefix, this.toString());
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/TriggerRuleOutcomeEnum.java b/src/main/java/com/fireblocks/sdk/model/TriggerRuleOutcomeEnum.java
new file mode 100644
index 00000000..f07f1f7d
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/TriggerRuleOutcomeEnum.java
@@ -0,0 +1,72 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Whether the step's trigger rules caused its connector to run. This is a decision about
+ * running, not about risk — `ACCEPT`/`REJECT` belong to the outcome fields. -
+ * `EXECUTE` — a rule called for screening, so the connector ran - `PASS` — a
+ * rule let the subject through without screening - `FAIL` — the step could not run; see
+ * `bypassReason`
+ */
+public enum TriggerRuleOutcomeEnum {
+ EXECUTE("EXECUTE"),
+
+ PASS("PASS"),
+
+ FAIL("FAIL");
+
+ private String value;
+
+ TriggerRuleOutcomeEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static TriggerRuleOutcomeEnum fromValue(String value) {
+ for (TriggerRuleOutcomeEnum b : TriggerRuleOutcomeEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @param prefix prefix of the query string
+ * @return URL query string
+ */
+ public String toUrlQueryString(String prefix) {
+ if (prefix == null) {
+ prefix = "";
+ }
+
+ return String.format("%s=%s", prefix, this.toString());
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/TriggerScreeningRequest.java b/src/main/java/com/fireblocks/sdk/model/TriggerScreeningRequest.java
new file mode 100644
index 00000000..a09928cf
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/TriggerScreeningRequest.java
@@ -0,0 +1,184 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import com.fireblocks.sdk.ApiClient;
+import java.util.Objects;
+import java.util.StringJoiner;
+
+/** Request to trigger a screening against an active workflow. */
+@JsonPropertyOrder({
+ TriggerScreeningRequest.JSON_PROPERTY_WORKFLOW_ID,
+ TriggerScreeningRequest.JSON_PROPERTY_INPUT
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class TriggerScreeningRequest {
+ public static final String JSON_PROPERTY_WORKFLOW_ID = "workflowId";
+ @jakarta.annotation.Nonnull private String workflowId;
+
+ public static final String JSON_PROPERTY_INPUT = "input";
+ @jakarta.annotation.Nonnull private ScreeningInput input;
+
+ public TriggerScreeningRequest() {}
+
+ @JsonCreator
+ public TriggerScreeningRequest(
+ @JsonProperty(value = JSON_PROPERTY_WORKFLOW_ID, required = true) String workflowId,
+ @JsonProperty(value = JSON_PROPERTY_INPUT, required = true) ScreeningInput input) {
+ this.workflowId = workflowId;
+ this.input = input;
+ }
+
+ public TriggerScreeningRequest workflowId(@jakarta.annotation.Nonnull String workflowId) {
+ this.workflowId = workflowId;
+ return this;
+ }
+
+ /**
+ * The workflow to screen against. Must be in `ACTIVE` status.
+ *
+ * @return workflowId
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_WORKFLOW_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getWorkflowId() {
+ return workflowId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_WORKFLOW_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setWorkflowId(@jakarta.annotation.Nonnull String workflowId) {
+ this.workflowId = workflowId;
+ }
+
+ public TriggerScreeningRequest input(@jakarta.annotation.Nonnull ScreeningInput input) {
+ this.input = input;
+ return this;
+ }
+
+ /**
+ * Get input
+ *
+ * @return input
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_INPUT)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public ScreeningInput getInput() {
+ return input;
+ }
+
+ @JsonProperty(JSON_PROPERTY_INPUT)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setInput(@jakarta.annotation.Nonnull ScreeningInput input) {
+ this.input = input;
+ }
+
+ /** Return true if this TriggerScreeningRequest object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ TriggerScreeningRequest triggerScreeningRequest = (TriggerScreeningRequest) o;
+ return Objects.equals(this.workflowId, triggerScreeningRequest.workflowId)
+ && Objects.equals(this.input, triggerScreeningRequest.input);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(workflowId, input);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class TriggerScreeningRequest {\n");
+ sb.append(" workflowId: ").append(toIndentedString(workflowId)).append("\n");
+ sb.append(" input: ").append(toIndentedString(input)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first
+ * line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @return URL query string
+ */
+ public String toUrlQueryString() {
+ return toUrlQueryString(null);
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @param prefix prefix of the query string
+ * @return URL query string
+ */
+ public String toUrlQueryString(String prefix) {
+ String suffix = "";
+ String containerSuffix = "";
+ String containerPrefix = "";
+ if (prefix == null) {
+ // style=form, explode=true, e.g. /pet?name=cat&type=manx
+ prefix = "";
+ } else {
+ // deepObject style e.g. /pet?id[name]=cat&id[type]=manx
+ prefix = prefix + "[";
+ suffix = "]";
+ containerSuffix = "]";
+ containerPrefix = "[";
+ }
+
+ StringJoiner joiner = new StringJoiner("&");
+
+ // add `workflowId` to the URL query string
+ if (getWorkflowId() != null) {
+ joiner.add(
+ String.format(
+ "%sworkflowId%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getWorkflowId()))));
+ }
+
+ // add `input` to the URL query string
+ if (getInput() != null) {
+ joiner.add(getInput().toUrlQueryString(prefix + "input" + suffix));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/TriggerScreeningResponse.java b/src/main/java/com/fireblocks/sdk/model/TriggerScreeningResponse.java
new file mode 100644
index 00000000..9f8c2500
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/TriggerScreeningResponse.java
@@ -0,0 +1,193 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import com.fireblocks.sdk.ApiClient;
+import java.util.Objects;
+import java.util.StringJoiner;
+
+/** Acknowledgement that a screening was accepted and is now running. */
+@JsonPropertyOrder({
+ TriggerScreeningResponse.JSON_PROPERTY_SCREENING_ID,
+ TriggerScreeningResponse.JSON_PROPERTY_SCREENING_STATUS
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class TriggerScreeningResponse {
+ public static final String JSON_PROPERTY_SCREENING_ID = "screeningId";
+ @jakarta.annotation.Nonnull private String screeningId;
+
+ public static final String JSON_PROPERTY_SCREENING_STATUS = "screeningStatus";
+ @jakarta.annotation.Nonnull private ComplianceScreeningStatusEnum screeningStatus;
+
+ public TriggerScreeningResponse() {}
+
+ @JsonCreator
+ public TriggerScreeningResponse(
+ @JsonProperty(value = JSON_PROPERTY_SCREENING_ID, required = true) String screeningId,
+ @JsonProperty(value = JSON_PROPERTY_SCREENING_STATUS, required = true)
+ ComplianceScreeningStatusEnum screeningStatus) {
+ this.screeningId = screeningId;
+ this.screeningStatus = screeningStatus;
+ }
+
+ public TriggerScreeningResponse screeningId(@jakarta.annotation.Nonnull String screeningId) {
+ this.screeningId = screeningId;
+ return this;
+ }
+
+ /**
+ * Identifier of the screening that was created. Poll `GET
+ * /v1/compliance/orchestrator/screenings/{screeningId}` with it for the verdict.
+ *
+ * @return screeningId
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_SCREENING_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getScreeningId() {
+ return screeningId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_SCREENING_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setScreeningId(@jakarta.annotation.Nonnull String screeningId) {
+ this.screeningId = screeningId;
+ }
+
+ public TriggerScreeningResponse screeningStatus(
+ @jakarta.annotation.Nonnull ComplianceScreeningStatusEnum screeningStatus) {
+ this.screeningStatus = screeningStatus;
+ return this;
+ }
+
+ /**
+ * Get screeningStatus
+ *
+ * @return screeningStatus
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_SCREENING_STATUS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public ComplianceScreeningStatusEnum getScreeningStatus() {
+ return screeningStatus;
+ }
+
+ @JsonProperty(JSON_PROPERTY_SCREENING_STATUS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setScreeningStatus(
+ @jakarta.annotation.Nonnull ComplianceScreeningStatusEnum screeningStatus) {
+ this.screeningStatus = screeningStatus;
+ }
+
+ /** Return true if this TriggerScreeningResponse object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ TriggerScreeningResponse triggerScreeningResponse = (TriggerScreeningResponse) o;
+ return Objects.equals(this.screeningId, triggerScreeningResponse.screeningId)
+ && Objects.equals(this.screeningStatus, triggerScreeningResponse.screeningStatus);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(screeningId, screeningStatus);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class TriggerScreeningResponse {\n");
+ sb.append(" screeningId: ").append(toIndentedString(screeningId)).append("\n");
+ sb.append(" screeningStatus: ").append(toIndentedString(screeningStatus)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first
+ * line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @return URL query string
+ */
+ public String toUrlQueryString() {
+ return toUrlQueryString(null);
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @param prefix prefix of the query string
+ * @return URL query string
+ */
+ public String toUrlQueryString(String prefix) {
+ String suffix = "";
+ String containerSuffix = "";
+ String containerPrefix = "";
+ if (prefix == null) {
+ // style=form, explode=true, e.g. /pet?name=cat&type=manx
+ prefix = "";
+ } else {
+ // deepObject style e.g. /pet?id[name]=cat&id[type]=manx
+ prefix = prefix + "[";
+ suffix = "]";
+ containerSuffix = "]";
+ containerPrefix = "[";
+ }
+
+ StringJoiner joiner = new StringJoiner("&");
+
+ // add `screeningId` to the URL query string
+ if (getScreeningId() != null) {
+ joiner.add(
+ String.format(
+ "%sscreeningId%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getScreeningId()))));
+ }
+
+ // add `screeningStatus` to the URL query string
+ if (getScreeningStatus() != null) {
+ joiner.add(
+ String.format(
+ "%sscreeningStatus%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getScreeningStatus()))));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/UpdateWebhookOauthRequest.java b/src/main/java/com/fireblocks/sdk/model/UpdateWebhookOauthRequest.java
index 8fc10a4e..d581a264 100644
--- a/src/main/java/com/fireblocks/sdk/model/UpdateWebhookOauthRequest.java
+++ b/src/main/java/com/fireblocks/sdk/model/UpdateWebhookOauthRequest.java
@@ -26,11 +26,10 @@
* A partial update. Every field is optional and an omitted field is left as it is, so `{
* \"clientSecret\": \"new-secret\" }` rotates the secret and changes
* nothing else. A rotation applies to every webhook referencing these credentials. The three custom
- * maps merge: a key with a value is upserted, a key with `null` is deleted, a key you
- * leave out is untouched. Because `null` inside a map means delete, none of the three is
- * nullable as a whole — `customJwtClaims: null` and friends are rejected with a
- * `400`. Clear a map by naming each key with a `null` value.
- * `mtlsClientSignedCert` is a scalar, so `null` there does remove it.
+ * maps merge. A key with a value is upserted, a key with `null` is deleted, a key you
+ * leave out is untouched, and the whole field set to `null` clears the map. There is no
+ * ambiguity between the two uses of `null` — one names an entry, the other names the
+ * field. `mtlsClientSignedCert` is a scalar, so `null` there removes it.
*/
@JsonPropertyOrder({
UpdateWebhookOauthRequest.JSON_PROPERTY_NAME,
@@ -307,8 +306,9 @@ public UpdateWebhookOauthRequest putCustomHeadersItem(String key, String customH
* names the header to delete, the other names the whole field. Names are case-insensitive, so a
* `null` under one casing deletes a header stored under another, and names are stored
* and returned lowercased. Same rules as on create: string values only,
- * `Content-Type`/`Content-Length`/`Host` reserved, resulting set
- * under 16 KB, values write-only.
+ * `Content-Type`, `Content-Length` and `Host` reserved,
+ * `Authorization` only with `client_secret_post` or
+ * `client_secret_jwt`, resulting set under 16 KB, values write-only.
*
* @return customHeaders
*/
diff --git a/src/main/java/com/fireblocks/sdk/model/UpdateWebhookRequest.java b/src/main/java/com/fireblocks/sdk/model/UpdateWebhookRequest.java
index 5046a639..a3a80b8f 100644
--- a/src/main/java/com/fireblocks/sdk/model/UpdateWebhookRequest.java
+++ b/src/main/java/com/fireblocks/sdk/model/UpdateWebhookRequest.java
@@ -194,7 +194,8 @@ public UpdateWebhookRequest webhookOauthId(@jakarta.annotation.Nullable UUID web
* The id of the OAuth credentials this webhook authenticates with, from
* `/v1/webhooks_settings/oauth`. Several webhooks may share one credential set, so
* rotating its client secret covers all of them at once. Send `null` to stop using
- * OAuth for this webhook.
+ * OAuth for this webhook. Cannot be combined with an `authorization` custom header on
+ * the same webhook; a request that would leave both set is rejected.
*
* @return webhookOauthId
*/
@@ -233,9 +234,11 @@ public UpdateWebhookRequest putCustomHeadersItem(String key, Object customHeader
* call. That does not collide with a `null` value on a name: one names the header to
* delete, the other names the whole field. Names are case-insensitive, so a `null`
* under one casing deletes a header stored under another. Same rules as on create: string or
- * non-empty array, `Cookie` string-only, 10 lines total and under 16 KB in the
- * resulting set, the same reserved names, and values write-only. Entries set to
- * `null` do not count towards the limit.
+ * non-empty array, `Cookie` and `Authorization` string-only, 10 headers and
+ * under 16 KB in the resulting set, the same reserved names, and values write-only. Entries set
+ * to `null` do not count towards the limit. `Authorization` cannot be
+ * combined with `webhookOauthId`, though one request may add it and detach the
+ * credentials together.
*
* @return customHeaders
*/
diff --git a/src/main/java/com/fireblocks/sdk/model/UpdateWorkflowStatusRequest.java b/src/main/java/com/fireblocks/sdk/model/UpdateWorkflowStatusRequest.java
new file mode 100644
index 00000000..65a2ce24
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/UpdateWorkflowStatusRequest.java
@@ -0,0 +1,148 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import com.fireblocks.sdk.ApiClient;
+import java.util.Objects;
+import java.util.StringJoiner;
+
+/** Request to change a workflow's status. */
+@JsonPropertyOrder({UpdateWorkflowStatusRequest.JSON_PROPERTY_STATUS})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class UpdateWorkflowStatusRequest {
+ public static final String JSON_PROPERTY_STATUS = "status";
+ @jakarta.annotation.Nonnull private WorkflowStatusEnum status;
+
+ public UpdateWorkflowStatusRequest() {}
+
+ @JsonCreator
+ public UpdateWorkflowStatusRequest(
+ @JsonProperty(value = JSON_PROPERTY_STATUS, required = true)
+ WorkflowStatusEnum status) {
+ this.status = status;
+ }
+
+ public UpdateWorkflowStatusRequest status(
+ @jakarta.annotation.Nonnull WorkflowStatusEnum status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get status
+ *
+ * @return status
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_STATUS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public WorkflowStatusEnum getStatus() {
+ return status;
+ }
+
+ @JsonProperty(JSON_PROPERTY_STATUS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setStatus(@jakarta.annotation.Nonnull WorkflowStatusEnum status) {
+ this.status = status;
+ }
+
+ /** Return true if this UpdateWorkflowStatusRequest object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ UpdateWorkflowStatusRequest updateWorkflowStatusRequest = (UpdateWorkflowStatusRequest) o;
+ return Objects.equals(this.status, updateWorkflowStatusRequest.status);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(status);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class UpdateWorkflowStatusRequest {\n");
+ sb.append(" status: ").append(toIndentedString(status)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first
+ * line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @return URL query string
+ */
+ public String toUrlQueryString() {
+ return toUrlQueryString(null);
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @param prefix prefix of the query string
+ * @return URL query string
+ */
+ public String toUrlQueryString(String prefix) {
+ String suffix = "";
+ String containerSuffix = "";
+ String containerPrefix = "";
+ if (prefix == null) {
+ // style=form, explode=true, e.g. /pet?name=cat&type=manx
+ prefix = "";
+ } else {
+ // deepObject style e.g. /pet?id[name]=cat&id[type]=manx
+ prefix = prefix + "[";
+ suffix = "]";
+ containerSuffix = "]";
+ containerPrefix = "[";
+ }
+
+ StringJoiner joiner = new StringJoiner("&");
+
+ // add `status` to the URL query string
+ if (getStatus() != null) {
+ joiner.add(
+ String.format(
+ "%sstatus%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getStatus()))));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/UpdateWorkflowStatusResponse.java b/src/main/java/com/fireblocks/sdk/model/UpdateWorkflowStatusResponse.java
new file mode 100644
index 00000000..da9c2eb6
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/UpdateWorkflowStatusResponse.java
@@ -0,0 +1,192 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import com.fireblocks.sdk.ApiClient;
+import java.util.Objects;
+import java.util.StringJoiner;
+
+/** The workflow's status after the update. */
+@JsonPropertyOrder({
+ UpdateWorkflowStatusResponse.JSON_PROPERTY_WORKFLOW_ID,
+ UpdateWorkflowStatusResponse.JSON_PROPERTY_STATUS
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class UpdateWorkflowStatusResponse {
+ public static final String JSON_PROPERTY_WORKFLOW_ID = "workflowId";
+ @jakarta.annotation.Nonnull private String workflowId;
+
+ public static final String JSON_PROPERTY_STATUS = "status";
+ @jakarta.annotation.Nonnull private WorkflowStatusEnum status;
+
+ public UpdateWorkflowStatusResponse() {}
+
+ @JsonCreator
+ public UpdateWorkflowStatusResponse(
+ @JsonProperty(value = JSON_PROPERTY_WORKFLOW_ID, required = true) String workflowId,
+ @JsonProperty(value = JSON_PROPERTY_STATUS, required = true)
+ WorkflowStatusEnum status) {
+ this.workflowId = workflowId;
+ this.status = status;
+ }
+
+ public UpdateWorkflowStatusResponse workflowId(@jakarta.annotation.Nonnull String workflowId) {
+ this.workflowId = workflowId;
+ return this;
+ }
+
+ /**
+ * Unique identifier of the workflow.
+ *
+ * @return workflowId
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_WORKFLOW_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getWorkflowId() {
+ return workflowId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_WORKFLOW_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setWorkflowId(@jakarta.annotation.Nonnull String workflowId) {
+ this.workflowId = workflowId;
+ }
+
+ public UpdateWorkflowStatusResponse status(
+ @jakarta.annotation.Nonnull WorkflowStatusEnum status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get status
+ *
+ * @return status
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_STATUS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public WorkflowStatusEnum getStatus() {
+ return status;
+ }
+
+ @JsonProperty(JSON_PROPERTY_STATUS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setStatus(@jakarta.annotation.Nonnull WorkflowStatusEnum status) {
+ this.status = status;
+ }
+
+ /** Return true if this UpdateWorkflowStatusResponse object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ UpdateWorkflowStatusResponse updateWorkflowStatusResponse =
+ (UpdateWorkflowStatusResponse) o;
+ return Objects.equals(this.workflowId, updateWorkflowStatusResponse.workflowId)
+ && Objects.equals(this.status, updateWorkflowStatusResponse.status);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(workflowId, status);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class UpdateWorkflowStatusResponse {\n");
+ sb.append(" workflowId: ").append(toIndentedString(workflowId)).append("\n");
+ sb.append(" status: ").append(toIndentedString(status)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first
+ * line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @return URL query string
+ */
+ public String toUrlQueryString() {
+ return toUrlQueryString(null);
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @param prefix prefix of the query string
+ * @return URL query string
+ */
+ public String toUrlQueryString(String prefix) {
+ String suffix = "";
+ String containerSuffix = "";
+ String containerPrefix = "";
+ if (prefix == null) {
+ // style=form, explode=true, e.g. /pet?name=cat&type=manx
+ prefix = "";
+ } else {
+ // deepObject style e.g. /pet?id[name]=cat&id[type]=manx
+ prefix = prefix + "[";
+ suffix = "]";
+ containerSuffix = "]";
+ containerPrefix = "[";
+ }
+
+ StringJoiner joiner = new StringJoiner("&");
+
+ // add `workflowId` to the URL query string
+ if (getWorkflowId() != null) {
+ joiner.add(
+ String.format(
+ "%sworkflowId%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getWorkflowId()))));
+ }
+
+ // add `status` to the URL query string
+ if (getStatus() != null) {
+ joiner.add(
+ String.format(
+ "%sstatus%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getStatus()))));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/WebhookMtlsCsrResponse.java b/src/main/java/com/fireblocks/sdk/model/WebhookMtlsCsrResponse.java
index cb0ffdc6..6c1a97e8 100644
--- a/src/main/java/com/fireblocks/sdk/model/WebhookMtlsCsrResponse.java
+++ b/src/main/java/com/fireblocks/sdk/model/WebhookMtlsCsrResponse.java
@@ -22,7 +22,10 @@
import java.util.StringJoiner;
/** mTLS Certificate Signing Request response */
-@JsonPropertyOrder({WebhookMtlsCsrResponse.JSON_PROPERTY_CSR})
+@JsonPropertyOrder({
+ WebhookMtlsCsrResponse.JSON_PROPERTY_CSR,
+ WebhookMtlsCsrResponse.JSON_PROPERTY_KEY_ALGORITHM
+})
@jakarta.annotation.Generated(
value = "org.openapitools.codegen.languages.JavaClientCodegen",
comments = "Generator version: 7.14.0")
@@ -30,12 +33,18 @@ public class WebhookMtlsCsrResponse {
public static final String JSON_PROPERTY_CSR = "csr";
@jakarta.annotation.Nonnull private String csr;
+ public static final String JSON_PROPERTY_KEY_ALGORITHM = "keyAlgorithm";
+ @jakarta.annotation.Nonnull private WebhookMtlsKeyAlgorithm keyAlgorithm;
+
public WebhookMtlsCsrResponse() {}
@JsonCreator
public WebhookMtlsCsrResponse(
- @JsonProperty(value = JSON_PROPERTY_CSR, required = true) String csr) {
+ @JsonProperty(value = JSON_PROPERTY_CSR, required = true) String csr,
+ @JsonProperty(value = JSON_PROPERTY_KEY_ALGORITHM, required = true)
+ WebhookMtlsKeyAlgorithm keyAlgorithm) {
this.csr = csr;
+ this.keyAlgorithm = keyAlgorithm;
}
public WebhookMtlsCsrResponse csr(@jakarta.annotation.Nonnull String csr) {
@@ -61,6 +70,30 @@ public void setCsr(@jakarta.annotation.Nonnull String csr) {
this.csr = csr;
}
+ public WebhookMtlsCsrResponse keyAlgorithm(
+ @jakarta.annotation.Nonnull WebhookMtlsKeyAlgorithm keyAlgorithm) {
+ this.keyAlgorithm = keyAlgorithm;
+ return this;
+ }
+
+ /**
+ * Get keyAlgorithm
+ *
+ * @return keyAlgorithm
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_KEY_ALGORITHM)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public WebhookMtlsKeyAlgorithm getKeyAlgorithm() {
+ return keyAlgorithm;
+ }
+
+ @JsonProperty(JSON_PROPERTY_KEY_ALGORITHM)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setKeyAlgorithm(@jakarta.annotation.Nonnull WebhookMtlsKeyAlgorithm keyAlgorithm) {
+ this.keyAlgorithm = keyAlgorithm;
+ }
+
/** Return true if this WebhookMtlsCsrResponse object is equal to o. */
@Override
public boolean equals(Object o) {
@@ -71,12 +104,13 @@ public boolean equals(Object o) {
return false;
}
WebhookMtlsCsrResponse webhookMtlsCsrResponse = (WebhookMtlsCsrResponse) o;
- return Objects.equals(this.csr, webhookMtlsCsrResponse.csr);
+ return Objects.equals(this.csr, webhookMtlsCsrResponse.csr)
+ && Objects.equals(this.keyAlgorithm, webhookMtlsCsrResponse.keyAlgorithm);
}
@Override
public int hashCode() {
- return Objects.hash(csr);
+ return Objects.hash(csr, keyAlgorithm);
}
@Override
@@ -84,6 +118,7 @@ public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("class WebhookMtlsCsrResponse {\n");
sb.append(" csr: ").append(toIndentedString(csr)).append("\n");
+ sb.append(" keyAlgorithm: ").append(toIndentedString(keyAlgorithm)).append("\n");
sb.append("}");
return sb.toString();
}
@@ -141,6 +176,16 @@ public String toUrlQueryString(String prefix) {
ApiClient.urlEncode(ApiClient.valueToString(getCsr()))));
}
+ // add `keyAlgorithm` to the URL query string
+ if (getKeyAlgorithm() != null) {
+ joiner.add(
+ String.format(
+ "%skeyAlgorithm%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getKeyAlgorithm()))));
+ }
+
return joiner.toString();
}
}
diff --git a/src/main/java/com/fireblocks/sdk/model/WebhookMtlsKeyAlgorithm.java b/src/main/java/com/fireblocks/sdk/model/WebhookMtlsKeyAlgorithm.java
new file mode 100644
index 00000000..00f6c54c
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/WebhookMtlsKeyAlgorithm.java
@@ -0,0 +1,69 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Algorithm of the Fireblocks-held mTLS private key. A workspace may hold one key of each type, so
+ * a CSR is always returned for the type requested, and the type is echoed back on the response.
+ * ECDSA keys are smaller and quicker to issue, but the certificate authority signing the request
+ * has to accept an EC subject key, which some do not by default.
+ */
+public enum WebhookMtlsKeyAlgorithm {
+ RSA("RSA"),
+
+ ECDSA("ECDSA");
+
+ private String value;
+
+ WebhookMtlsKeyAlgorithm(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static WebhookMtlsKeyAlgorithm fromValue(String value) {
+ for (WebhookMtlsKeyAlgorithm b : WebhookMtlsKeyAlgorithm.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @param prefix prefix of the query string
+ * @return URL query string
+ */
+ public String toUrlQueryString(String prefix) {
+ if (prefix == null) {
+ prefix = "";
+ }
+
+ return String.format("%s=%s", prefix, this.toString());
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/WebhookOauthCredentials.java b/src/main/java/com/fireblocks/sdk/model/WebhookOauthCredentials.java
index 9bb882ec..9ead7874 100644
--- a/src/main/java/com/fireblocks/sdk/model/WebhookOauthCredentials.java
+++ b/src/main/java/com/fireblocks/sdk/model/WebhookOauthCredentials.java
@@ -26,11 +26,12 @@
/**
* A stored OAuth 2.0 client credential set, referenced by webhooks through their
- * `webhookOauthId`. When a webhook references one, the dispatcher fetches a bearer token
- * from `url` before each delivery and attaches it as `Authorization: Bearer
- * {token}`. Secret material is never returned: `clientSecret` is absent from this
- * schema entirely, and the `customJwtClaims`, `customBodyParams` and
- * `customHeaders` fields are reduced to their names, without the configured values.
+ * `webhookOauthId`. Deliveries for a webhook that references one carry
+ * `Authorization: Bearer {token}`, using a token fetched from `url` and cached
+ * until it expires, so your authorization server sees far fewer token requests than deliveries.
+ * Secret material is never returned: `clientSecret` is absent from this schema entirely,
+ * and the `customJwtClaims`, `customBodyParams` and `customHeaders`
+ * fields are reduced to their names, without the configured values.
*/
@JsonPropertyOrder({
WebhookOauthCredentials.JSON_PROPERTY_ID,
diff --git a/src/main/java/com/fireblocks/sdk/model/WorkflowStatusEnum.java b/src/main/java/com/fireblocks/sdk/model/WorkflowStatusEnum.java
new file mode 100644
index 00000000..3fb0f030
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/WorkflowStatusEnum.java
@@ -0,0 +1,69 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * A workflow's status, which controls whether it can be screened against. - `DRAFT` —
+ * the editing state. Rules can be changed while nothing is screening against them, so a screening
+ * never runs against a half-finished configuration. - `ACTIVE` — `POST
+ * /v1/compliance/orchestrator/screenings` accepts screenings against this workflow.
+ */
+public enum WorkflowStatusEnum {
+ ACTIVE("ACTIVE"),
+
+ DRAFT("DRAFT");
+
+ private String value;
+
+ WorkflowStatusEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static WorkflowStatusEnum fromValue(String value) {
+ for (WorkflowStatusEnum b : WorkflowStatusEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+
+ /**
+ * Convert the instance into URL query string.
+ *
+ * @param prefix prefix of the query string
+ * @return URL query string
+ */
+ public String toUrlQueryString(String prefix) {
+ if (prefix == null) {
+ prefix = "";
+ }
+
+ return String.format("%s=%s", prefix, this.toString());
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/FireblocksTest.java b/src/test/java/com/fireblocks/sdk/FireblocksTest.java
index d1baf9ed..6d6e2e23 100644
--- a/src/test/java/com/fireblocks/sdk/FireblocksTest.java
+++ b/src/test/java/com/fireblocks/sdk/FireblocksTest.java
@@ -403,6 +403,15 @@ public void testGetComplianceApi() {
Assert.assertSame(compliance, fireblocks.compliance());
}
+ @Test
+ public void testGetComplianceOrchestratorBetaApi() {
+ setupFireblocks(true, null, null);
+ ComplianceOrchestratorBetaApi complianceOrchestratorBeta =
+ fireblocks.complianceOrchestratorBeta();
+ Assert.assertNotNull(complianceOrchestratorBeta);
+ Assert.assertSame(complianceOrchestratorBeta, fireblocks.complianceOrchestratorBeta());
+ }
+
@Test
public void testGetComplianceScreeningConfigurationApi() {
setupFireblocks(true, null, null);
diff --git a/src/test/java/com/fireblocks/sdk/api/ApprovalsBetaApiTest.java b/src/test/java/com/fireblocks/sdk/api/ApprovalsBetaApiTest.java
index 3d64420e..3c8ace41 100644
--- a/src/test/java/com/fireblocks/sdk/api/ApprovalsBetaApiTest.java
+++ b/src/test/java/com/fireblocks/sdk/api/ApprovalsBetaApiTest.java
@@ -15,7 +15,11 @@
import com.fireblocks.sdk.ApiResponse;
import com.fireblocks.sdk.model.ApprovalRequestItem;
+import com.fireblocks.sdk.model.ApproveApprovalRequest;
+import com.fireblocks.sdk.model.ListApprovalApiKeysResponse;
import com.fireblocks.sdk.model.ListApprovalsResponse;
+import com.fireblocks.sdk.model.RegisterApprovalApiKeyRequest;
+import com.fireblocks.sdk.model.RegisterApprovalApiKeyResponse;
import java.util.concurrent.CompletableFuture;
import org.junit.Ignore;
import org.junit.Test;
@@ -26,6 +30,62 @@ public class ApprovalsBetaApiTest {
private final ApprovalsBetaApi api = new ApprovalsBetaApi();
+ /**
+ * Approve an approval request
+ *
+ * Approve a pending approval request as the authenticated API user. The caller signs the
+ * request's signable data with the private key of a registered approval API key and submits
+ * the base64url-encoded signature, optionally with the key ID. The server verifies the
+ * signature against the registered public key — using the given key ID, or matching against all
+ * of the user's registered keys when the key ID is omitted — and advances the approval
+ * quorum. Endpoint Permission: Owner, Admin, Non-Signing Admin, Approver, Signer, Security
+ * Admin.
+ */
+ @Test
+ public void approveApprovalTest() {
+ ApproveApprovalRequest approveApprovalRequest = null;
+ String requestId = null;
+ String idempotencyKey = null;
+
+ CompletableFuture> response =
+ api.approveApproval(approveApprovalRequest, requestId, idempotencyKey);
+ }
+
+ /**
+ * Register an approval key
+ *
+ * Register an approval public key for an API user, used to sign approval requests. Up to 2
+ * active keys are supported per API user. Returns the server-generated key ID used for
+ * deletion. The `userId` must be the authenticated API user's own ID. Registering
+ * a key for another user is not supported and is rejected. Endpoint Permission: Owner, Admin,
+ * Non-Signing Admin, Approver, Signer, Security Admin.
+ */
+ @Test
+ public void createApprovalKeyTest() {
+ RegisterApprovalApiKeyRequest registerApprovalApiKeyRequest = null;
+ String userId = null;
+ String idempotencyKey = null;
+ CompletableFuture> response =
+ api.createApprovalKey(registerApprovalApiKeyRequest, userId, idempotencyKey);
+ }
+
+ /**
+ * Delete an approval key
+ *
+ * Delete (revoke) an approval public key for the specified API user. Revoking the last key
+ * disables the API user's ability to sign approvals. Endpoint Permission: Owner, Admin,
+ * Non-Signing Admin, Approver, Signer, Security Admin.
+ */
+ @Test
+ public void deleteApprovalKeyTest() {
+ String userId = null;
+ String keyId = null;
+ String idempotencyKey = null;
+
+ CompletableFuture> response =
+ api.deleteApprovalKey(userId, keyId, idempotencyKey);
+ }
+
/**
* Get a single approval request
*
@@ -46,6 +106,21 @@ public void getApprovalByIdTest() {
api.getApprovalById(requestId, userId, quorumStatusMode);
}
+ /**
+ * List approval keys
+ *
+ * List the approval public keys registered for the specified API user. Endpoint Permission:
+ * Owner, Admin, Non-Signing Admin, Approver, Signer, Security Admin, Security Auditor.
+ */
+ @Test
+ public void getApprovalKeysTest() {
+ String userId = null;
+ Integer pageSize = null;
+ String pageCursor = null;
+ CompletableFuture> response =
+ api.getApprovalKeys(userId, pageSize, pageCursor);
+ }
+
/**
* List approval requests
*
diff --git a/src/test/java/com/fireblocks/sdk/api/ComplianceOrchestratorBetaApiTest.java b/src/test/java/com/fireblocks/sdk/api/ComplianceOrchestratorBetaApiTest.java
new file mode 100644
index 00000000..c813492f
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/api/ComplianceOrchestratorBetaApiTest.java
@@ -0,0 +1,93 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.api;
+
+
+import com.fireblocks.sdk.ApiResponse;
+import com.fireblocks.sdk.model.GetScreeningResultResponse;
+import com.fireblocks.sdk.model.GetWorkflowResponse;
+import com.fireblocks.sdk.model.TriggerScreeningRequest;
+import com.fireblocks.sdk.model.TriggerScreeningResponse;
+import com.fireblocks.sdk.model.UpdateWorkflowStatusRequest;
+import com.fireblocks.sdk.model.UpdateWorkflowStatusResponse;
+import java.util.concurrent.CompletableFuture;
+import org.junit.Ignore;
+import org.junit.Test;
+
+/** API tests for ComplianceOrchestratorBetaApi */
+@Ignore
+public class ComplianceOrchestratorBetaApiTest {
+
+ private final ComplianceOrchestratorBetaApi api = new ComplianceOrchestratorBetaApi();
+
+ /**
+ * Get a Compliance Orchestrator screening's result
+ *
+ * Returns the result of a screening started by `POST
+ * /v1/compliance/orchestrator/screenings`, with a result per workflow step and an audit
+ * log. Safe to poll: a screening still in flight reports `PENDING` or
+ * `RUNNING`. Only screenings owned by the requesting tenant are returned.
+ */
+ @Test
+ public void getScreeningResultTest() {
+ String screeningId = null;
+ CompletableFuture> response =
+ api.getScreeningResult(screeningId);
+ }
+
+ /**
+ * Get a Compliance Orchestrator workflow
+ *
+ * Returns a workflow's status and its steps in execution order. Read it to see what a
+ * given `workflowId` will screen, and which fields its rules may reference.
+ */
+ @Test
+ public void getWorkflowTest() {
+ String workflowId = null;
+ CompletableFuture> response = api.getWorkflow(workflowId);
+ }
+
+ /**
+ * Trigger a Compliance Orchestrator screening
+ *
+ * Starts a compliance screening against an active workflow and returns a
+ * `screeningId`. The screening runs asynchronously — poll `GET
+ * /v1/compliance/orchestrator/screenings/{screeningId}` for the result. Unlike the
+ * screening that applies automatically to submitted transactions under
+ * `/v1/screening`, this is called on demand, before anything exists on-chain.
+ */
+ @Test
+ public void triggerScreeningTest() {
+ TriggerScreeningRequest triggerScreeningRequest = null;
+ String idempotencyKey = null;
+ CompletableFuture> response =
+ api.triggerScreening(triggerScreeningRequest, idempotencyKey);
+ }
+
+ /**
+ * Update a Compliance Orchestrator workflow's status
+ *
+ * Moves a workflow between `DRAFT` and `ACTIVE`. A workflow must be
+ * `ACTIVE` before `POST /v1/compliance/orchestrator/screenings` will accept
+ * a screening against it. Returns the workflow's id and new status, not its full
+ * configuration.
+ */
+ @Test
+ public void updateWorkflowStatusTest() {
+ UpdateWorkflowStatusRequest updateWorkflowStatusRequest = null;
+ String workflowId = null;
+ String idempotencyKey = null;
+ CompletableFuture> response =
+ api.updateWorkflowStatus(updateWorkflowStatusRequest, workflowId, idempotencyKey);
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/api/WebhooksV2ApiTest.java b/src/test/java/com/fireblocks/sdk/api/WebhooksV2ApiTest.java
index 04a1b8d4..bf44c4a4 100644
--- a/src/test/java/com/fireblocks/sdk/api/WebhooksV2ApiTest.java
+++ b/src/test/java/com/fireblocks/sdk/api/WebhooksV2ApiTest.java
@@ -131,12 +131,19 @@ public void getMetricsTest() {
/**
* Get mTLS CSR
*
- * Returns the Fireblocks Certificate Signing Request (CSR) PEM that customers use to
- * generate their signed client certificate.
+ *
Returns the Certificate Signing Request (CSR) PEM that customers use to generate their
+ * signed client certificate. The private key the CSR is built from is held by Fireblocks and is
+ * specific to this workspace. It is created on the first request for a given key type, and the
+ * same CSR is returned on subsequent requests for that type. Pass `keyAlgorithm` to
+ * choose RSA or ECDSA. A workspace may hold one key of each: the CSR returned is always the one
+ * for the type requested, so a certificate signed against it matches the key used at delivery
+ * time.
*/
@Test
public void getMtlsCsrTest() {
- CompletableFuture> response = api.getMtlsCsr();
+ String keyAlgorithm = null;
+ CompletableFuture> response =
+ api.getMtlsCsr(keyAlgorithm);
}
/**
@@ -359,14 +366,13 @@ public void updateWebhookTest() {
* `customHeaders` are all merged key by key rather than replaced, the same way a
* webhook's own `customHeaders` behaves: a key sent with a value is added or
* overwritten, a key sent with a `null` value is deleted, and a key you omit is left
- * alone. Since a `null` inside a map is the delete mechanism, none of the three
- * accepts `null` for the whole field — `customJwtClaims: null`,
- * `customBodyParams: null` or `customHeaders: null` is rejected with a
- * `400` rather than ignored. Clear a map by listing each of its keys with a
- * `null` value. Because `null` is spent on deletion, a claim cannot be set
- * to JSON `null` either, on this endpoint or on create.
- * `mtlsClientSignedCert` is a scalar rather than a map, so `null` there
- * does remove it. **Endpoint Permissions:** Owner, Admin, Non-Signing Admin.
+ * alone. Setting one of the three to `null` as a whole clears that map, which is the
+ * quick way to empty it without naming every key. There is no ambiguity between the two uses of
+ * `null` — one names an entry to delete, the other names the field. A claim cannot be
+ * set to JSON `null`, though, on this endpoint or on create, because `null`
+ * is spent on deletion. `mtlsClientSignedCert` is a scalar rather than a map, so
+ * `null` there does remove it. **Endpoint Permissions:** Owner, Admin, Non-Signing
+ * Admin.
*/
@Test
public void updateWebhookOauthTest() {
diff --git a/src/test/java/com/fireblocks/sdk/model/ApprovalApiKeyTest.java b/src/test/java/com/fireblocks/sdk/model/ApprovalApiKeyTest.java
new file mode 100644
index 00000000..67121595
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/ApprovalApiKeyTest.java
@@ -0,0 +1,63 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for ApprovalApiKey */
+class ApprovalApiKeyTest {
+ private final ApprovalApiKey model = new ApprovalApiKey();
+
+ /** Model tests for ApprovalApiKey */
+ @Test
+ void testApprovalApiKey() {
+ // TODO: test ApprovalApiKey
+ }
+
+ /** Test the property 'id' */
+ @Test
+ void idTest() {
+ // TODO: test id
+ }
+
+ /** Test the property 'name' */
+ @Test
+ void nameTest() {
+ // TODO: test name
+ }
+
+ /** Test the property 'createdAt' */
+ @Test
+ void createdAtTest() {
+ // TODO: test createdAt
+ }
+
+ /** Test the property 'lastUsedAt' */
+ @Test
+ void lastUsedAtTest() {
+ // TODO: test lastUsedAt
+ }
+
+ /** Test the property 'approvalApiPublicKey' */
+ @Test
+ void approvalApiPublicKeyTest() {
+ // TODO: test approvalApiPublicKey
+ }
+
+ /** Test the property 'userId' */
+ @Test
+ void userIdTest() {
+ // TODO: test userId
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/ApprovalApiPublicKeyTest.java b/src/test/java/com/fireblocks/sdk/model/ApprovalApiPublicKeyTest.java
new file mode 100644
index 00000000..cafb6ade
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/ApprovalApiPublicKeyTest.java
@@ -0,0 +1,39 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for ApprovalApiPublicKey */
+class ApprovalApiPublicKeyTest {
+ private final ApprovalApiPublicKey model = new ApprovalApiPublicKey();
+
+ /** Model tests for ApprovalApiPublicKey */
+ @Test
+ void testApprovalApiPublicKey() {
+ // TODO: test ApprovalApiPublicKey
+ }
+
+ /** Test the property 'algorithm' */
+ @Test
+ void algorithmTest() {
+ // TODO: test algorithm
+ }
+
+ /** Test the property 'publicKeyPem' */
+ @Test
+ void publicKeyPemTest() {
+ // TODO: test publicKeyPem
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/ApproveApprovalRequestTest.java b/src/test/java/com/fireblocks/sdk/model/ApproveApprovalRequestTest.java
new file mode 100644
index 00000000..2278d38d
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/ApproveApprovalRequestTest.java
@@ -0,0 +1,39 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for ApproveApprovalRequest */
+class ApproveApprovalRequestTest {
+ private final ApproveApprovalRequest model = new ApproveApprovalRequest();
+
+ /** Model tests for ApproveApprovalRequest */
+ @Test
+ void testApproveApprovalRequest() {
+ // TODO: test ApproveApprovalRequest
+ }
+
+ /** Test the property 'keyId' */
+ @Test
+ void keyIdTest() {
+ // TODO: test keyId
+ }
+
+ /** Test the property 'signature' */
+ @Test
+ void signatureTest() {
+ // TODO: test signature
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/AuditEventTypeEnumTest.java b/src/test/java/com/fireblocks/sdk/model/AuditEventTypeEnumTest.java
new file mode 100644
index 00000000..ad99233b
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/AuditEventTypeEnumTest.java
@@ -0,0 +1,25 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for AuditEventTypeEnum */
+class AuditEventTypeEnumTest {
+ /** Model tests for AuditEventTypeEnum */
+ @Test
+ void testAuditEventTypeEnum() {
+ // TODO: test AuditEventTypeEnum
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/AuditLogEntryTest.java b/src/test/java/com/fireblocks/sdk/model/AuditLogEntryTest.java
new file mode 100644
index 00000000..ad808b40
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/AuditLogEntryTest.java
@@ -0,0 +1,45 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for AuditLogEntry */
+class AuditLogEntryTest {
+ private final AuditLogEntry model = new AuditLogEntry();
+
+ /** Model tests for AuditLogEntry */
+ @Test
+ void testAuditLogEntry() {
+ // TODO: test AuditLogEntry
+ }
+
+ /** Test the property 'timestamp' */
+ @Test
+ void timestampTest() {
+ // TODO: test timestamp
+ }
+
+ /** Test the property 'eventType' */
+ @Test
+ void eventTypeTest() {
+ // TODO: test eventType
+ }
+
+ /** Test the property 'data' */
+ @Test
+ void dataTest() {
+ // TODO: test data
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/BypassReasonEnumTest.java b/src/test/java/com/fireblocks/sdk/model/BypassReasonEnumTest.java
new file mode 100644
index 00000000..f9368c3c
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/BypassReasonEnumTest.java
@@ -0,0 +1,25 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for BypassReasonEnum */
+class BypassReasonEnumTest {
+ /** Model tests for BypassReasonEnum */
+ @Test
+ void testBypassReasonEnum() {
+ // TODO: test BypassReasonEnum
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/ComplianceScreeningStatusEnumTest.java b/src/test/java/com/fireblocks/sdk/model/ComplianceScreeningStatusEnumTest.java
new file mode 100644
index 00000000..1e6710fb
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/ComplianceScreeningStatusEnumTest.java
@@ -0,0 +1,25 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for ComplianceScreeningStatusEnum */
+class ComplianceScreeningStatusEnumTest {
+ /** Model tests for ComplianceScreeningStatusEnum */
+ @Test
+ void testComplianceScreeningStatusEnum() {
+ // TODO: test ComplianceScreeningStatusEnum
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/ConnectorStatusEnumTest.java b/src/test/java/com/fireblocks/sdk/model/ConnectorStatusEnumTest.java
new file mode 100644
index 00000000..3b6da5c0
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/ConnectorStatusEnumTest.java
@@ -0,0 +1,25 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for ConnectorStatusEnum */
+class ConnectorStatusEnumTest {
+ /** Model tests for ConnectorStatusEnum */
+ @Test
+ void testConnectorStatusEnum() {
+ // TODO: test ConnectorStatusEnum
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/ConnectorVerdictEnumTest.java b/src/test/java/com/fireblocks/sdk/model/ConnectorVerdictEnumTest.java
new file mode 100644
index 00000000..61caa0cd
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/ConnectorVerdictEnumTest.java
@@ -0,0 +1,25 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for ConnectorVerdictEnum */
+class ConnectorVerdictEnumTest {
+ /** Model tests for ConnectorVerdictEnum */
+ @Test
+ void testConnectorVerdictEnum() {
+ // TODO: test ConnectorVerdictEnum
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/GetScreeningResultResponseTest.java b/src/test/java/com/fireblocks/sdk/model/GetScreeningResultResponseTest.java
new file mode 100644
index 00000000..14c8a6e0
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/GetScreeningResultResponseTest.java
@@ -0,0 +1,63 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for GetScreeningResultResponse */
+class GetScreeningResultResponseTest {
+ private final GetScreeningResultResponse model = new GetScreeningResultResponse();
+
+ /** Model tests for GetScreeningResultResponse */
+ @Test
+ void testGetScreeningResultResponse() {
+ // TODO: test GetScreeningResultResponse
+ }
+
+ /** Test the property 'screeningId' */
+ @Test
+ void screeningIdTest() {
+ // TODO: test screeningId
+ }
+
+ /** Test the property 'workflowId' */
+ @Test
+ void workflowIdTest() {
+ // TODO: test workflowId
+ }
+
+ /** Test the property 'screeningStatus' */
+ @Test
+ void screeningStatusTest() {
+ // TODO: test screeningStatus
+ }
+
+ /** Test the property 'outcome' */
+ @Test
+ void outcomeTest() {
+ // TODO: test outcome
+ }
+
+ /** Test the property 'steps' */
+ @Test
+ void stepsTest() {
+ // TODO: test steps
+ }
+
+ /** Test the property 'auditLog' */
+ @Test
+ void auditLogTest() {
+ // TODO: test auditLog
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/GetWorkflowResponseTest.java b/src/test/java/com/fireblocks/sdk/model/GetWorkflowResponseTest.java
new file mode 100644
index 00000000..8a8d6ef4
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/GetWorkflowResponseTest.java
@@ -0,0 +1,69 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for GetWorkflowResponse */
+class GetWorkflowResponseTest {
+ private final GetWorkflowResponse model = new GetWorkflowResponse();
+
+ /** Model tests for GetWorkflowResponse */
+ @Test
+ void testGetWorkflowResponse() {
+ // TODO: test GetWorkflowResponse
+ }
+
+ /** Test the property 'workflowId' */
+ @Test
+ void workflowIdTest() {
+ // TODO: test workflowId
+ }
+
+ /** Test the property 'templateId' */
+ @Test
+ void templateIdTest() {
+ // TODO: test templateId
+ }
+
+ /** Test the property 'status' */
+ @Test
+ void statusTest() {
+ // TODO: test status
+ }
+
+ /** Test the property 'title' */
+ @Test
+ void titleTest() {
+ // TODO: test title
+ }
+
+ /** Test the property 'description' */
+ @Test
+ void descriptionTest() {
+ // TODO: test description
+ }
+
+ /** Test the property 'createdAt' */
+ @Test
+ void createdAtTest() {
+ // TODO: test createdAt
+ }
+
+ /** Test the property 'steps' */
+ @Test
+ void stepsTest() {
+ // TODO: test steps
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/InternalTransferResponseTest.java b/src/test/java/com/fireblocks/sdk/model/InternalTransferResponseTest.java
index c902560c..6b76aff1 100644
--- a/src/test/java/com/fireblocks/sdk/model/InternalTransferResponseTest.java
+++ b/src/test/java/com/fireblocks/sdk/model/InternalTransferResponseTest.java
@@ -36,4 +36,16 @@ void successTest() {
void idTest() {
// TODO: test id
}
+
+ /** Test the property 'status' */
+ @Test
+ void statusTest() {
+ // TODO: test status
+ }
+
+ /** Test the property 'systemMessages' */
+ @Test
+ void systemMessagesTest() {
+ // TODO: test systemMessages
+ }
}
diff --git a/src/test/java/com/fireblocks/sdk/model/ListApprovalApiKeysResponseTest.java b/src/test/java/com/fireblocks/sdk/model/ListApprovalApiKeysResponseTest.java
new file mode 100644
index 00000000..c53d4705
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/ListApprovalApiKeysResponseTest.java
@@ -0,0 +1,39 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for ListApprovalApiKeysResponse */
+class ListApprovalApiKeysResponseTest {
+ private final ListApprovalApiKeysResponse model = new ListApprovalApiKeysResponse();
+
+ /** Model tests for ListApprovalApiKeysResponse */
+ @Test
+ void testListApprovalApiKeysResponse() {
+ // TODO: test ListApprovalApiKeysResponse
+ }
+
+ /** Test the property 'data' */
+ @Test
+ void dataTest() {
+ // TODO: test data
+ }
+
+ /** Test the property 'next' */
+ @Test
+ void nextTest() {
+ // TODO: test next
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/RegisterApprovalApiKeyRequestTest.java b/src/test/java/com/fireblocks/sdk/model/RegisterApprovalApiKeyRequestTest.java
new file mode 100644
index 00000000..0a8e1489
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/RegisterApprovalApiKeyRequestTest.java
@@ -0,0 +1,39 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for RegisterApprovalApiKeyRequest */
+class RegisterApprovalApiKeyRequestTest {
+ private final RegisterApprovalApiKeyRequest model = new RegisterApprovalApiKeyRequest();
+
+ /** Model tests for RegisterApprovalApiKeyRequest */
+ @Test
+ void testRegisterApprovalApiKeyRequest() {
+ // TODO: test RegisterApprovalApiKeyRequest
+ }
+
+ /** Test the property 'name' */
+ @Test
+ void nameTest() {
+ // TODO: test name
+ }
+
+ /** Test the property 'approvalApiPublicKey' */
+ @Test
+ void approvalApiPublicKeyTest() {
+ // TODO: test approvalApiPublicKey
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/RegisterApprovalApiKeyResponseTest.java b/src/test/java/com/fireblocks/sdk/model/RegisterApprovalApiKeyResponseTest.java
new file mode 100644
index 00000000..0f748c86
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/RegisterApprovalApiKeyResponseTest.java
@@ -0,0 +1,33 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for RegisterApprovalApiKeyResponse */
+class RegisterApprovalApiKeyResponseTest {
+ private final RegisterApprovalApiKeyResponse model = new RegisterApprovalApiKeyResponse();
+
+ /** Model tests for RegisterApprovalApiKeyResponse */
+ @Test
+ void testRegisterApprovalApiKeyResponse() {
+ // TODO: test RegisterApprovalApiKeyResponse
+ }
+
+ /** Test the property 'keyId' */
+ @Test
+ void keyIdTest() {
+ // TODO: test keyId
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/RiskLevelEnumTest.java b/src/test/java/com/fireblocks/sdk/model/RiskLevelEnumTest.java
new file mode 100644
index 00000000..07256481
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/RiskLevelEnumTest.java
@@ -0,0 +1,25 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for RiskLevelEnum */
+class RiskLevelEnumTest {
+ /** Model tests for RiskLevelEnum */
+ @Test
+ void testRiskLevelEnum() {
+ // TODO: test RiskLevelEnum
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/RuleActionEnumTest.java b/src/test/java/com/fireblocks/sdk/model/RuleActionEnumTest.java
new file mode 100644
index 00000000..c74278a7
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/RuleActionEnumTest.java
@@ -0,0 +1,25 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for RuleActionEnum */
+class RuleActionEnumTest {
+ /** Model tests for RuleActionEnum */
+ @Test
+ void testRuleActionEnum() {
+ // TODO: test RuleActionEnum
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/RuleConditionOperatorEnumTest.java b/src/test/java/com/fireblocks/sdk/model/RuleConditionOperatorEnumTest.java
new file mode 100644
index 00000000..7eac876a
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/RuleConditionOperatorEnumTest.java
@@ -0,0 +1,25 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for RuleConditionOperatorEnum */
+class RuleConditionOperatorEnumTest {
+ /** Model tests for RuleConditionOperatorEnum */
+ @Test
+ void testRuleConditionOperatorEnum() {
+ // TODO: test RuleConditionOperatorEnum
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/RuleConditionTest.java b/src/test/java/com/fireblocks/sdk/model/RuleConditionTest.java
new file mode 100644
index 00000000..472bd8f0
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/RuleConditionTest.java
@@ -0,0 +1,45 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for RuleCondition */
+class RuleConditionTest {
+ private final RuleCondition model = new RuleCondition();
+
+ /** Model tests for RuleCondition */
+ @Test
+ void testRuleCondition() {
+ // TODO: test RuleCondition
+ }
+
+ /** Test the property 'field' */
+ @Test
+ void fieldTest() {
+ // TODO: test field
+ }
+
+ /** Test the property 'operator' */
+ @Test
+ void operatorTest() {
+ // TODO: test operator
+ }
+
+ /** Test the property 'value' */
+ @Test
+ void valueTest() {
+ // TODO: test value
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/RuleSetTest.java b/src/test/java/com/fireblocks/sdk/model/RuleSetTest.java
new file mode 100644
index 00000000..2330684c
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/RuleSetTest.java
@@ -0,0 +1,33 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for RuleSet */
+class RuleSetTest {
+ private final RuleSet model = new RuleSet();
+
+ /** Model tests for RuleSet */
+ @Test
+ void testRuleSet() {
+ // TODO: test RuleSet
+ }
+
+ /** Test the property 'rules' */
+ @Test
+ void rulesTest() {
+ // TODO: test rules
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/RuleTest.java b/src/test/java/com/fireblocks/sdk/model/RuleTest.java
new file mode 100644
index 00000000..39c7ae7a
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/RuleTest.java
@@ -0,0 +1,57 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for Rule */
+class RuleTest {
+ private final Rule model = new Rule();
+
+ /** Model tests for Rule */
+ @Test
+ void testRule() {
+ // TODO: test Rule
+ }
+
+ /** Test the property 'ruleId' */
+ @Test
+ void ruleIdTest() {
+ // TODO: test ruleId
+ }
+
+ /** Test the property 'conditions' */
+ @Test
+ void conditionsTest() {
+ // TODO: test conditions
+ }
+
+ /** Test the property 'ruleAction' */
+ @Test
+ void ruleActionTest() {
+ // TODO: test ruleAction
+ }
+
+ /** Test the property 'order' */
+ @Test
+ void orderTest() {
+ // TODO: test order
+ }
+
+ /** Test the property 'title' */
+ @Test
+ void titleTest() {
+ // TODO: test title
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/ScreeningInputTest.java b/src/test/java/com/fireblocks/sdk/model/ScreeningInputTest.java
new file mode 100644
index 00000000..9607569a
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/ScreeningInputTest.java
@@ -0,0 +1,39 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for ScreeningInput */
+class ScreeningInputTest {
+ private final ScreeningInput model = new ScreeningInput();
+
+ /** Model tests for ScreeningInput */
+ @Test
+ void testScreeningInput() {
+ // TODO: test ScreeningInput
+ }
+
+ /** Test the property 'operation' */
+ @Test
+ void operationTest() {
+ // TODO: test operation
+ }
+
+ /** Test the property 'payload' */
+ @Test
+ void payloadTest() {
+ // TODO: test payload
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/ScreeningOperationEnumTest.java b/src/test/java/com/fireblocks/sdk/model/ScreeningOperationEnumTest.java
new file mode 100644
index 00000000..014ae95a
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/ScreeningOperationEnumTest.java
@@ -0,0 +1,25 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for ScreeningOperationEnum */
+class ScreeningOperationEnumTest {
+ /** Model tests for ScreeningOperationEnum */
+ @Test
+ void testScreeningOperationEnum() {
+ // TODO: test ScreeningOperationEnum
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/ScreeningOutcomeEnumTest.java b/src/test/java/com/fireblocks/sdk/model/ScreeningOutcomeEnumTest.java
new file mode 100644
index 00000000..b9d99f1e
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/ScreeningOutcomeEnumTest.java
@@ -0,0 +1,25 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for ScreeningOutcomeEnum */
+class ScreeningOutcomeEnumTest {
+ /** Model tests for ScreeningOutcomeEnum */
+ @Test
+ void testScreeningOutcomeEnum() {
+ // TODO: test ScreeningOutcomeEnum
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/ScreeningPayloadTest.java b/src/test/java/com/fireblocks/sdk/model/ScreeningPayloadTest.java
new file mode 100644
index 00000000..675fa6c7
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/ScreeningPayloadTest.java
@@ -0,0 +1,93 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for ScreeningPayload */
+class ScreeningPayloadTest {
+ private final ScreeningPayload model = new ScreeningPayload();
+
+ /** Model tests for ScreeningPayload */
+ @Test
+ void testScreeningPayload() {
+ // TODO: test ScreeningPayload
+ }
+
+ /** Test the property 'blockchain' */
+ @Test
+ void blockchainTest() {
+ // TODO: test blockchain
+ }
+
+ /** Test the property 'asset' */
+ @Test
+ void assetTest() {
+ // TODO: test asset
+ }
+
+ /** Test the property 'assetAmount' */
+ @Test
+ void assetAmountTest() {
+ // TODO: test assetAmount
+ }
+
+ /** Test the property 'usdValue' */
+ @Test
+ void usdValueTest() {
+ // TODO: test usdValue
+ }
+
+ /** Test the property 'customerRefId' */
+ @Test
+ void customerRefIdTest() {
+ // TODO: test customerRefId
+ }
+
+ /** Test the property 'externalId' */
+ @Test
+ void externalIdTest() {
+ // TODO: test externalId
+ }
+
+ /** Test the property 'address' */
+ @Test
+ void addressTest() {
+ // TODO: test address
+ }
+
+ /** Test the property 'direction' */
+ @Test
+ void directionTest() {
+ // TODO: test direction
+ }
+
+ /** Test the property 'sourceAddress' */
+ @Test
+ void sourceAddressTest() {
+ // TODO: test sourceAddress
+ }
+
+ /** Test the property 'destinationAddress' */
+ @Test
+ void destinationAddressTest() {
+ // TODO: test destinationAddress
+ }
+
+ /** Test the property 'txHash' */
+ @Test
+ void txHashTest() {
+ // TODO: test txHash
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/StepConfigTest.java b/src/test/java/com/fireblocks/sdk/model/StepConfigTest.java
new file mode 100644
index 00000000..de5b72a4
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/StepConfigTest.java
@@ -0,0 +1,51 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for StepConfig */
+class StepConfigTest {
+ private final StepConfig model = new StepConfig();
+
+ /** Model tests for StepConfig */
+ @Test
+ void testStepConfig() {
+ // TODO: test StepConfig
+ }
+
+ /** Test the property 'stepId' */
+ @Test
+ void stepIdTest() {
+ // TODO: test stepId
+ }
+
+ /** Test the property 'connectorId' */
+ @Test
+ void connectorIdTest() {
+ // TODO: test connectorId
+ }
+
+ /** Test the property 'operations' */
+ @Test
+ void operationsTest() {
+ // TODO: test operations
+ }
+
+ /** Test the property 'order' */
+ @Test
+ void orderTest() {
+ // TODO: test order
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/StepOperationConfigTest.java b/src/test/java/com/fireblocks/sdk/model/StepOperationConfigTest.java
new file mode 100644
index 00000000..696eb244
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/StepOperationConfigTest.java
@@ -0,0 +1,87 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for StepOperationConfig */
+class StepOperationConfigTest {
+ private final StepOperationConfig model = new StepOperationConfig();
+
+ /** Model tests for StepOperationConfig */
+ @Test
+ void testStepOperationConfig() {
+ // TODO: test StepOperationConfig
+ }
+
+ /** Test the property 'operation' */
+ @Test
+ void operationTest() {
+ // TODO: test operation
+ }
+
+ /** Test the property 'requiredParameters' */
+ @Test
+ void requiredParametersTest() {
+ // TODO: test requiredParameters
+ }
+
+ /** Test the property 'optionalParameters' */
+ @Test
+ void optionalParametersTest() {
+ // TODO: test optionalParameters
+ }
+
+ /** Test the property 'triggerRuleParameters' */
+ @Test
+ void triggerRuleParametersTest() {
+ // TODO: test triggerRuleParameters
+ }
+
+ /** Test the property 'outcomeEvaluationParameters' */
+ @Test
+ void outcomeEvaluationParametersTest() {
+ // TODO: test outcomeEvaluationParameters
+ }
+
+ /** Test the property 'outcomeMetaParameters' */
+ @Test
+ void outcomeMetaParametersTest() {
+ // TODO: test outcomeMetaParameters
+ }
+
+ /** Test the property 'triggerRuleSetStruct' */
+ @Test
+ void triggerRuleSetStructTest() {
+ // TODO: test triggerRuleSetStruct
+ }
+
+ /** Test the property 'triggerRuleSetJson' */
+ @Test
+ void triggerRuleSetJsonTest() {
+ // TODO: test triggerRuleSetJson
+ }
+
+ /** Test the property 'outcomeRuleSetStruct' */
+ @Test
+ void outcomeRuleSetStructTest() {
+ // TODO: test outcomeRuleSetStruct
+ }
+
+ /** Test the property 'outcomeRuleSetJson' */
+ @Test
+ void outcomeRuleSetJsonTest() {
+ // TODO: test outcomeRuleSetJson
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/StepResultTest.java b/src/test/java/com/fireblocks/sdk/model/StepResultTest.java
new file mode 100644
index 00000000..dc5c6b66
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/StepResultTest.java
@@ -0,0 +1,111 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for StepResult */
+class StepResultTest {
+ private final StepResult model = new StepResult();
+
+ /** Model tests for StepResult */
+ @Test
+ void testStepResult() {
+ // TODO: test StepResult
+ }
+
+ /** Test the property 'stepId' */
+ @Test
+ void stepIdTest() {
+ // TODO: test stepId
+ }
+
+ /** Test the property 'connectorId' */
+ @Test
+ void connectorIdTest() {
+ // TODO: test connectorId
+ }
+
+ /** Test the property 'operation' */
+ @Test
+ void operationTest() {
+ // TODO: test operation
+ }
+
+ /** Test the property 'triggerRuleOutcome' */
+ @Test
+ void triggerRuleOutcomeTest() {
+ // TODO: test triggerRuleOutcome
+ }
+
+ /** Test the property 'matchedTriggerRule' */
+ @Test
+ void matchedTriggerRuleTest() {
+ // TODO: test matchedTriggerRule
+ }
+
+ /** Test the property 'outcomeRuleOutcome' */
+ @Test
+ void outcomeRuleOutcomeTest() {
+ // TODO: test outcomeRuleOutcome
+ }
+
+ /** Test the property 'matchedOutcomeRule' */
+ @Test
+ void matchedOutcomeRuleTest() {
+ // TODO: test matchedOutcomeRule
+ }
+
+ /** Test the property 'outcome' */
+ @Test
+ void outcomeTest() {
+ // TODO: test outcome
+ }
+
+ /** Test the property 'metadata' */
+ @Test
+ void metadataTest() {
+ // TODO: test metadata
+ }
+
+ /** Test the property 'ticketId' */
+ @Test
+ void ticketIdTest() {
+ // TODO: test ticketId
+ }
+
+ /** Test the property 'verdict' */
+ @Test
+ void verdictTest() {
+ // TODO: test verdict
+ }
+
+ /** Test the property 'connectorStatus' */
+ @Test
+ void connectorStatusTest() {
+ // TODO: test connectorStatus
+ }
+
+ /** Test the property 'bypassReason' */
+ @Test
+ void bypassReasonTest() {
+ // TODO: test bypassReason
+ }
+
+ /** Test the property 'risk' */
+ @Test
+ void riskTest() {
+ // TODO: test risk
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/TransferDirectionEnumTest.java b/src/test/java/com/fireblocks/sdk/model/TransferDirectionEnumTest.java
new file mode 100644
index 00000000..c7ad2b88
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/TransferDirectionEnumTest.java
@@ -0,0 +1,25 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for TransferDirectionEnum */
+class TransferDirectionEnumTest {
+ /** Model tests for TransferDirectionEnum */
+ @Test
+ void testTransferDirectionEnum() {
+ // TODO: test TransferDirectionEnum
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/TriggerRuleOutcomeEnumTest.java b/src/test/java/com/fireblocks/sdk/model/TriggerRuleOutcomeEnumTest.java
new file mode 100644
index 00000000..178252b5
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/TriggerRuleOutcomeEnumTest.java
@@ -0,0 +1,25 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for TriggerRuleOutcomeEnum */
+class TriggerRuleOutcomeEnumTest {
+ /** Model tests for TriggerRuleOutcomeEnum */
+ @Test
+ void testTriggerRuleOutcomeEnum() {
+ // TODO: test TriggerRuleOutcomeEnum
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/TriggerScreeningRequestTest.java b/src/test/java/com/fireblocks/sdk/model/TriggerScreeningRequestTest.java
new file mode 100644
index 00000000..087c7bcc
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/TriggerScreeningRequestTest.java
@@ -0,0 +1,39 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for TriggerScreeningRequest */
+class TriggerScreeningRequestTest {
+ private final TriggerScreeningRequest model = new TriggerScreeningRequest();
+
+ /** Model tests for TriggerScreeningRequest */
+ @Test
+ void testTriggerScreeningRequest() {
+ // TODO: test TriggerScreeningRequest
+ }
+
+ /** Test the property 'workflowId' */
+ @Test
+ void workflowIdTest() {
+ // TODO: test workflowId
+ }
+
+ /** Test the property 'input' */
+ @Test
+ void inputTest() {
+ // TODO: test input
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/TriggerScreeningResponseTest.java b/src/test/java/com/fireblocks/sdk/model/TriggerScreeningResponseTest.java
new file mode 100644
index 00000000..fc80dd5a
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/TriggerScreeningResponseTest.java
@@ -0,0 +1,39 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for TriggerScreeningResponse */
+class TriggerScreeningResponseTest {
+ private final TriggerScreeningResponse model = new TriggerScreeningResponse();
+
+ /** Model tests for TriggerScreeningResponse */
+ @Test
+ void testTriggerScreeningResponse() {
+ // TODO: test TriggerScreeningResponse
+ }
+
+ /** Test the property 'screeningId' */
+ @Test
+ void screeningIdTest() {
+ // TODO: test screeningId
+ }
+
+ /** Test the property 'screeningStatus' */
+ @Test
+ void screeningStatusTest() {
+ // TODO: test screeningStatus
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/UpdateWorkflowStatusRequestTest.java b/src/test/java/com/fireblocks/sdk/model/UpdateWorkflowStatusRequestTest.java
new file mode 100644
index 00000000..de44b87a
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/UpdateWorkflowStatusRequestTest.java
@@ -0,0 +1,33 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for UpdateWorkflowStatusRequest */
+class UpdateWorkflowStatusRequestTest {
+ private final UpdateWorkflowStatusRequest model = new UpdateWorkflowStatusRequest();
+
+ /** Model tests for UpdateWorkflowStatusRequest */
+ @Test
+ void testUpdateWorkflowStatusRequest() {
+ // TODO: test UpdateWorkflowStatusRequest
+ }
+
+ /** Test the property 'status' */
+ @Test
+ void statusTest() {
+ // TODO: test status
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/UpdateWorkflowStatusResponseTest.java b/src/test/java/com/fireblocks/sdk/model/UpdateWorkflowStatusResponseTest.java
new file mode 100644
index 00000000..79f99553
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/UpdateWorkflowStatusResponseTest.java
@@ -0,0 +1,39 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for UpdateWorkflowStatusResponse */
+class UpdateWorkflowStatusResponseTest {
+ private final UpdateWorkflowStatusResponse model = new UpdateWorkflowStatusResponse();
+
+ /** Model tests for UpdateWorkflowStatusResponse */
+ @Test
+ void testUpdateWorkflowStatusResponse() {
+ // TODO: test UpdateWorkflowStatusResponse
+ }
+
+ /** Test the property 'workflowId' */
+ @Test
+ void workflowIdTest() {
+ // TODO: test workflowId
+ }
+
+ /** Test the property 'status' */
+ @Test
+ void statusTest() {
+ // TODO: test status
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/WebhookMtlsCsrResponseTest.java b/src/test/java/com/fireblocks/sdk/model/WebhookMtlsCsrResponseTest.java
index c22a5567..f7bb369e 100644
--- a/src/test/java/com/fireblocks/sdk/model/WebhookMtlsCsrResponseTest.java
+++ b/src/test/java/com/fireblocks/sdk/model/WebhookMtlsCsrResponseTest.java
@@ -30,4 +30,10 @@ void testWebhookMtlsCsrResponse() {
void csrTest() {
// TODO: test csr
}
+
+ /** Test the property 'keyAlgorithm' */
+ @Test
+ void keyAlgorithmTest() {
+ // TODO: test keyAlgorithm
+ }
}
diff --git a/src/test/java/com/fireblocks/sdk/model/WebhookMtlsKeyAlgorithmTest.java b/src/test/java/com/fireblocks/sdk/model/WebhookMtlsKeyAlgorithmTest.java
new file mode 100644
index 00000000..41e03e24
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/WebhookMtlsKeyAlgorithmTest.java
@@ -0,0 +1,25 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for WebhookMtlsKeyAlgorithm */
+class WebhookMtlsKeyAlgorithmTest {
+ /** Model tests for WebhookMtlsKeyAlgorithm */
+ @Test
+ void testWebhookMtlsKeyAlgorithm() {
+ // TODO: test WebhookMtlsKeyAlgorithm
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/WorkflowStatusEnumTest.java b/src/test/java/com/fireblocks/sdk/model/WorkflowStatusEnumTest.java
new file mode 100644
index 00000000..32aa4396
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/WorkflowStatusEnumTest.java
@@ -0,0 +1,25 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for WorkflowStatusEnum */
+class WorkflowStatusEnumTest {
+ /** Model tests for WorkflowStatusEnum */
+ @Test
+ void testWorkflowStatusEnum() {
+ // TODO: test WorkflowStatusEnum
+ }
+}