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 single approval request Retrieve full detail for a single approval request by ID,
+ * including the payload to sign and, when requested, the request's
+ * `quorumStatus`. Because this endpoint addresses one request, it accepts
+ * `quorumStatusMode=FULL`, which adds the participating approvers and their
+ * individual approval state. `userStatus` reflects the authenticated user by default.
+ * Pass `userId` to report it for another user instead. Endpoint Permission: Owner,
+ * Admin, Non-Signing Admin, Approver, Signer, Security Admin, Security Auditor.
+ *
+ * @param requestId The approval request ID. (required)
+ * @param userId Report `userStatus` for this user instead of the authenticated user.
+ * This selects whose approval state is returned; it does not change which requests can be
+ * fetched. Requires an Admin, Non-Signing Admin, Security Admin or Security Auditor role;
+ * other roles are rejected with 403. (optional)
+ * @param quorumStatusMode How much quorum detail to include in `quorumStatus`.
+ * `NONE` (the default) returns it as `null`. `SUMMARY`
+ * returns the approval thresholds, current counts and status. `FULL` adds
+ * `users` and the per-group `members` indexes identifying who may
+ * approve and who already has. Any other value is rejected with 400; the parameter is
+ * case-sensitive. (optional, default to NONE)
+ * @return CompletableFuture<ApiResponse<ApprovalRequestItem>>, which completes
+ * exceptionally with an {@link ApiException} if the API call fails
+ */
+ public CompletableFuture> getApprovalById(
+ String requestId, String userId, String quorumStatusMode) {
+ try {
+ HttpRequest.Builder localVarRequestBuilder =
+ getApprovalByIdRequestBuilder(requestId, userId, quorumStatusMode);
+ 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("getApprovalById", 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<
+ ApprovalRequestItem>() {})));
+ } 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 getApprovalByIdRequestBuilder(
+ String requestId, String userId, String quorumStatusMode) throws ApiException {
+ ValidationUtils.assertParamExistsAndNotEmpty("getApprovalById", "requestId", requestId);
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath =
+ "/approvals/{requestId}"
+ .replace("{requestId}", ApiClient.urlEncode(requestId.toString()));
+
+ List localVarQueryParams = new ArrayList<>();
+ StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
+ String localVarQueryParameterBaseName;
+ localVarQueryParameterBaseName = "userId";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("userId", userId));
+ localVarQueryParameterBaseName = "quorumStatusMode";
+ localVarQueryParams.addAll(
+ ApiClient.parameterToPairs("quorumStatusMode", quorumStatusMode));
+
+ 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");
+
+ localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
+ if (memberVarReadTimeout != null) {
+ localVarRequestBuilder.timeout(memberVarReadTimeout);
+ }
+ if (memberVarInterceptor != null) {
+ memberVarInterceptor.accept(localVarRequestBuilder);
+ }
+ return localVarRequestBuilder;
+ }
+ /**
+ * List approval requests Retrieve the pending approval requests the authenticated API user is
+ * eligible to act on, including requests the user has already approved that are still pending
+ * overall. The response is scoped to the authenticated user by default. Pass `userId`
+ * to read another user's queue, or `includeAllUsers=true` to read every
+ * pending request in the workspace. Both require an Admin, Non-Signing Admin, Security Admin or
+ * Security Auditor role and are rejected with 403 otherwise. Set
+ * `quorumStatusMode=SUMMARY` to include each request's approval thresholds
+ * and counts. The per-approver breakdown is available only when fetching a single request — see
+ * `GET /approvals/{requestId}`. Endpoint Permission: Owner, Admin, Non-Signing Admin,
+ * Approver, Signer, Security Admin, Security Auditor.
+ *
+ * @param includeUserApproved When true, also include requests the authenticated user has
+ * already approved that are still pending overall. Defaults to false (only requests the
+ * user has not yet acted on). (optional)
+ * @param userId Return the pending requests for this user instead of the authenticated user.
+ * Requires an Admin, Non-Signing Admin, Security Admin or Security Auditor role; other
+ * roles are rejected with 403. Cannot be combined with
+ * `includeAllUsers=true` — sending both is rejected with 400. (optional)
+ * @param includeAllUsers When true, return every pending request in the workspace instead of a
+ * single user's queue. Defaults to false. Requires an Admin, Non-Signing Admin,
+ * Security Admin or Security Auditor role; other roles are rejected with 403. In this mode
+ * `userStatus` is always `USER_STATUS_NOT_APPLICABLE`, because the
+ * response is not scoped to one user, and `includeUserApproved` has no effect.
+ * Cannot be combined with `userId`. (optional, default to false)
+ * @param quorumStatusMode How much quorum detail to include in each request's
+ * `quorumStatus`. `NONE` (the default) returns it as `null`.
+ * `SUMMARY` returns the approval thresholds, current counts and status.
+ * `FULL` is rejected with 400 on this endpoint because the per-approver breakdown
+ * requires a single request — use `GET /approvals/{requestId}` for it. Any other
+ * value is rejected with 400; the parameter is case-sensitive. (optional, default to NONE)
+ * @param pageSize Number of results per page. Maximum 30. Defaults to 20. (optional, default to
+ * 20)
+ * @param pageCursor Cursor returned from the previous response (the `next` field) to
+ * fetch the next page. (optional)
+ * @return CompletableFuture<ApiResponse<ListApprovalsResponse>>, which completes
+ * exceptionally with an {@link ApiException} if the API call fails
+ */
+ public CompletableFuture> getApprovals(
+ Boolean includeUserApproved,
+ String userId,
+ Boolean includeAllUsers,
+ String quorumStatusMode,
+ Integer pageSize,
+ String pageCursor) {
+ try {
+ HttpRequest.Builder localVarRequestBuilder =
+ getApprovalsRequestBuilder(
+ includeUserApproved,
+ userId,
+ includeAllUsers,
+ quorumStatusMode,
+ pageSize,
+ pageCursor);
+ 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("getApprovals", 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<
+ ListApprovalsResponse>() {})));
+ } 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 getApprovalsRequestBuilder(
+ Boolean includeUserApproved,
+ String userId,
+ Boolean includeAllUsers,
+ String quorumStatusMode,
+ Integer pageSize,
+ String pageCursor)
+ throws ApiException {
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath = "/approvals";
+
+ List localVarQueryParams = new ArrayList<>();
+ StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
+ String localVarQueryParameterBaseName;
+ localVarQueryParameterBaseName = "includeUserApproved";
+ localVarQueryParams.addAll(
+ ApiClient.parameterToPairs("includeUserApproved", includeUserApproved));
+ localVarQueryParameterBaseName = "userId";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("userId", userId));
+ localVarQueryParameterBaseName = "includeAllUsers";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("includeAllUsers", includeAllUsers));
+ localVarQueryParameterBaseName = "quorumStatusMode";
+ localVarQueryParams.addAll(
+ ApiClient.parameterToPairs("quorumStatusMode", quorumStatusMode));
+ localVarQueryParameterBaseName = "pageSize";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("pageSize", pageSize));
+ localVarQueryParameterBaseName = "pageCursor";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("pageCursor", pageCursor));
+
+ 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");
+
+ localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
+ if (memberVarReadTimeout != null) {
+ localVarRequestBuilder.timeout(memberVarReadTimeout);
+ }
+ if (memberVarInterceptor != null) {
+ memberVarInterceptor.accept(localVarRequestBuilder);
+ }
+ return localVarRequestBuilder;
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/api/SecurityPostureManagementApi.java b/src/main/java/com/fireblocks/sdk/api/SecurityPostureManagementApi.java
index 23f19489..ccc848b3 100644
--- a/src/main/java/com/fireblocks/sdk/api/SecurityPostureManagementApi.java
+++ b/src/main/java/com/fireblocks/sdk/api/SecurityPostureManagementApi.java
@@ -104,7 +104,8 @@ private String formatExceptionMessage(String operationId, int statusCode, String
/**
* Get a FSPM security finding by ID Returns a single FSPM security finding for the workspace,
- * redacted to the public field set. Endpoint Roles: Security Admin, Security Auditor.
+ * redacted to the public field set. Endpoint Roles: Security Admin, Security Auditor. **Note:**
+ * This endpoint is available only for the FSPM Pro package. It is not available for FSPM Basic.
*
* @param id Unique identifier of the finding (required)
* @return CompletableFuture<ApiResponse<SecurityFindingDetailed>>, which completes
@@ -179,7 +180,8 @@ private HttpRequest.Builder getSecurityFindingByIdRequestBuilder(UUID id) throws
}
/**
* Get FSPM security findings Returns a paginated list of FSPM security findings for the
- * workspace. Endpoint Roles: Security Admin, Security Auditor.
+ * workspace. Endpoint Roles: Security Admin, Security Auditor. **Note:** This endpoint is
+ * available only for the FSPM Pro package. It is not available for FSPM Basic.
*
* @param pageCursor Cursor indicating the page position. Omit to fetch the first page.
* (optional)
@@ -287,7 +289,8 @@ private HttpRequest.Builder getSecurityFindingsRequestBuilder(
/**
* Update a FSPM security finding by ID Accepts or reopens a finding for the workspace. When
* accepting a finding (`status: \"ACCEPTED\"`),
- * `statusUpdatedReason` is required. Endpoint Roles: Security Admin.
+ * `statusUpdatedReason` is required. Endpoint Roles: Security Admin. **Note:** This
+ * endpoint is available only for the FSPM Pro package. It is not available for FSPM Basic.
*
* @param updateFindingExternalRequest (required)
* @param id Unique identifier of the finding (required)
diff --git a/src/main/java/com/fireblocks/sdk/api/VaultsApi.java b/src/main/java/com/fireblocks/sdk/api/VaultsApi.java
index 384abfe8..5e02bfde 100644
--- a/src/main/java/com/fireblocks/sdk/api/VaultsApi.java
+++ b/src/main/java/com/fireblocks/sdk/api/VaultsApi.java
@@ -138,8 +138,8 @@ private String formatExceptionMessage(String operationId, int statusCode, String
/**
* Activate a wallet in a vault account Initiates activation for a wallet in a vault account.
- * Activation is required for tokens that need an on-chain transaction for creation (XLM tokens,
- * SOL tokens etc). Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
+ * Activation is required for tokens that need an on-chain transaction for creation. Endpoint
+ * Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
*
* @param vaultAccountId The ID of the vault account to return, or 'default' for the
* default vault account (required)
diff --git a/src/main/java/com/fireblocks/sdk/api/WebhooksV2Api.java b/src/main/java/com/fireblocks/sdk/api/WebhooksV2Api.java
index 346133ef..7d20906e 100644
--- a/src/main/java/com/fireblocks/sdk/api/WebhooksV2Api.java
+++ b/src/main/java/com/fireblocks/sdk/api/WebhooksV2Api.java
@@ -20,7 +20,9 @@
import com.fireblocks.sdk.ApiResponse;
import com.fireblocks.sdk.Pair;
import com.fireblocks.sdk.ValidationUtils;
+import com.fireblocks.sdk.model.CreateWebhookOAuthRequest;
import com.fireblocks.sdk.model.CreateWebhookRequest;
+import com.fireblocks.sdk.model.DeleteWebhookOAuthResponse;
import com.fireblocks.sdk.model.NotificationAttemptsPaginatedResponse;
import com.fireblocks.sdk.model.NotificationPaginatedResponse;
import com.fireblocks.sdk.model.NotificationStatus;
@@ -31,11 +33,13 @@
import com.fireblocks.sdk.model.ResendFailedNotificationsRequest;
import com.fireblocks.sdk.model.ResendFailedNotificationsResponse;
import com.fireblocks.sdk.model.ResendNotificationsByResourceIdRequest;
+import com.fireblocks.sdk.model.UpdateWebhookOAuthRequest;
import com.fireblocks.sdk.model.UpdateWebhookRequest;
import com.fireblocks.sdk.model.Webhook;
import com.fireblocks.sdk.model.WebhookEvent;
import com.fireblocks.sdk.model.WebhookMetric;
import com.fireblocks.sdk.model.WebhookMtlsCsrResponse;
+import com.fireblocks.sdk.model.WebhookOAuthCredentials;
import com.fireblocks.sdk.model.WebhookPaginatedResponse;
import java.io.IOException;
import java.io.InputStream;
@@ -204,6 +208,102 @@ private HttpRequest.Builder createWebhookRequestBuilder(
}
return localVarRequestBuilder;
}
+ /**
+ * Create OAuth credentials Creates a reusable OAuth client credential set. Attach it to a
+ * webhook by passing the returned id as that webhook's `webhookOauthId`. Several
+ * webhooks may share one credential set, so rotating its client secret covers all of them at
+ * once. The client secret is write-only and is never returned. **Endpoint Permissions:** Owner,
+ * Admin, Non-Signing Admin.
+ *
+ * @param createWebhookOAuthRequest (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<WebhookOAuthCredentials>>, which completes
+ * exceptionally with an {@link ApiException} if the API call fails
+ */
+ public CompletableFuture> createWebhookOAuth(
+ CreateWebhookOAuthRequest createWebhookOAuthRequest, String idempotencyKey) {
+ try {
+ HttpRequest.Builder localVarRequestBuilder =
+ createWebhookOAuthRequestBuilder(createWebhookOAuthRequest, 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(
+ "createWebhookOAuth", 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<
+ WebhookOAuthCredentials>() {})));
+ } 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 createWebhookOAuthRequestBuilder(
+ CreateWebhookOAuthRequest createWebhookOAuthRequest, String idempotencyKey)
+ throws ApiException {
+ ValidationUtils.assertParamExists(
+ "createWebhookOAuth", "createWebhookOAuthRequest", createWebhookOAuthRequest);
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath = "/webhooks_settings/oauth";
+
+ 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(createWebhookOAuthRequest);
+ 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;
+ }
/**
* Delete webhook Delete a webhook by its id Endpoint Permission: Owner, Admin, Non-Signing
* Admin.
@@ -277,6 +377,118 @@ private HttpRequest.Builder deleteWebhookRequestBuilder(UUID webhookId) throws A
}
return localVarRequestBuilder;
}
+ /**
+ * Delete OAuth credentials Deletes an OAuth credential set. By default the delete is refused
+ * while the credentials are still in use: if any webhook references them, nothing is deleted
+ * and the request fails with `409 Conflict`, naming the reason and listing the ids of
+ * the referencing webhooks. This protects a shared credential set from being removed out from
+ * under the webhooks that depend on it, since several webhooks may reference the same one. Pass
+ * `forceDelete=true` to delete anyway. That detaches every referencing webhook —
+ * it clears each webhook's `webhookOauthId`, it does **not** delete the webhook —
+ * then deletes the credential set and returns the deleted resource together with
+ * `detachedWebhookIds`. The detached webhooks keep delivering notifications, but
+ * without an `Authorization` header, so their endpoints will see unauthenticated
+ * deliveries from that point on. When nothing references the credentials the delete succeeds
+ * either way, and `detachedWebhookIds` comes back empty. **Endpoint Permissions:**
+ * Owner, Admin, Non-Signing Admin.
+ *
+ * @param webhookOauthId The unique identifier of the OAuth credentials (required)
+ * @param forceDelete Delete the credentials even while webhooks still reference them, detaching
+ * those webhooks instead of refusing. Leave it unset, or `false`, to get a
+ * `409 Conflict` whenever anything still references the credentials. (optional,
+ * default to false)
+ * @return CompletableFuture<ApiResponse<DeleteWebhookOAuthResponse>>, which
+ * completes exceptionally with an {@link ApiException} if the API call fails
+ */
+ public CompletableFuture> deleteWebhookOAuth(
+ UUID webhookOauthId, Boolean forceDelete) {
+ try {
+ HttpRequest.Builder localVarRequestBuilder =
+ deleteWebhookOAuthRequestBuilder(webhookOauthId, forceDelete);
+ 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(
+ "deleteWebhookOAuth", 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<
+ DeleteWebhookOAuthResponse>() {})));
+ } 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 deleteWebhookOAuthRequestBuilder(
+ UUID webhookOauthId, Boolean forceDelete) throws ApiException {
+ ValidationUtils.assertParamExistsAndNotEmpty(
+ "deleteWebhookOAuth", "webhookOauthId", webhookOauthId.toString());
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath =
+ "/webhooks_settings/oauth/{webhookOauthId}"
+ .replace(
+ "{webhookOauthId}", ApiClient.urlEncode(webhookOauthId.toString()));
+
+ List localVarQueryParams = new ArrayList<>();
+ StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
+ String localVarQueryParameterBaseName;
+ localVarQueryParameterBaseName = "forceDelete";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("forceDelete", forceDelete));
+
+ 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");
+
+ localVarRequestBuilder.method("DELETE", HttpRequest.BodyPublishers.noBody());
+ if (memberVarReadTimeout != null) {
+ localVarRequestBuilder.timeout(memberVarReadTimeout);
+ }
+ if (memberVarInterceptor != null) {
+ memberVarInterceptor.accept(localVarRequestBuilder);
+ }
+ return localVarRequestBuilder;
+ }
/**
* Get webhook metrics Get webhook metrics by webhook id and metric name
*
@@ -1028,6 +1240,158 @@ private HttpRequest.Builder getWebhookRequestBuilder(UUID webhookId) throws ApiE
}
return localVarRequestBuilder;
}
+ /**
+ * Get OAuth credentials by id Retrieve an OAuth credential set by its id. The client secret is
+ * never returned.
+ *
+ * @param webhookOauthId The unique identifier of the OAuth credentials (required)
+ * @return CompletableFuture<ApiResponse<WebhookOAuthCredentials>>, which completes
+ * exceptionally with an {@link ApiException} if the API call fails
+ */
+ public CompletableFuture> getWebhookOAuth(
+ UUID webhookOauthId) {
+ try {
+ HttpRequest.Builder localVarRequestBuilder =
+ getWebhookOAuthRequestBuilder(webhookOauthId);
+ 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("getWebhookOAuth", 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<
+ WebhookOAuthCredentials>() {})));
+ } 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 getWebhookOAuthRequestBuilder(UUID webhookOauthId)
+ throws ApiException {
+ ValidationUtils.assertParamExistsAndNotEmpty(
+ "getWebhookOAuth", "webhookOauthId", webhookOauthId.toString());
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath =
+ "/webhooks_settings/oauth/{webhookOauthId}"
+ .replace(
+ "{webhookOauthId}", ApiClient.urlEncode(webhookOauthId.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 all OAuth credentials Lists every OAuth credential set for the workspace. Client secrets
+ * are never returned.
+ *
+ * @return CompletableFuture<ApiResponse<List<WebhookOAuthCredentials>>>,
+ * which completes exceptionally with an {@link ApiException} if the API call fails
+ */
+ public CompletableFuture>> getWebhookOAuths() {
+ try {
+ HttpRequest.Builder localVarRequestBuilder = getWebhookOAuthsRequestBuilder();
+ 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("getWebhookOAuths", 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<
+ List<
+ WebhookOAuthCredentials>>() {})));
+ } 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 getWebhookOAuthsRequestBuilder() throws ApiException {
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath = "/webhooks_settings/oauth";
+
+ 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 all webhooks Get all webhooks (paginated).
*
@@ -1588,4 +1952,109 @@ private HttpRequest.Builder updateWebhookRequestBuilder(
}
return localVarRequestBuilder;
}
+ /**
+ * Update OAuth credentials Updates only the fields present in the request; anything omitted is
+ * left as it is. Sending `clientSecret` on its own rotates the secret for every
+ * webhook using these credentials. `customJwtClaims`, `customBodyParams`
+ * 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.
+ *
+ * @param updateWebhookOAuthRequest (required)
+ * @param webhookOauthId The unique identifier of the OAuth credentials (required)
+ * @return CompletableFuture<ApiResponse<WebhookOAuthCredentials>>, which completes
+ * exceptionally with an {@link ApiException} if the API call fails
+ */
+ public CompletableFuture> updateWebhookOAuth(
+ UpdateWebhookOAuthRequest updateWebhookOAuthRequest, UUID webhookOauthId) {
+ try {
+ HttpRequest.Builder localVarRequestBuilder =
+ updateWebhookOAuthRequestBuilder(updateWebhookOAuthRequest, webhookOauthId);
+ 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(
+ "updateWebhookOAuth", 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<
+ WebhookOAuthCredentials>() {})));
+ } 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 updateWebhookOAuthRequestBuilder(
+ UpdateWebhookOAuthRequest updateWebhookOAuthRequest, UUID webhookOauthId)
+ throws ApiException {
+ ValidationUtils.assertParamExists(
+ "updateWebhookOAuth", "updateWebhookOAuthRequest", updateWebhookOAuthRequest);
+ ValidationUtils.assertParamExistsAndNotEmpty(
+ "updateWebhookOAuth", "webhookOauthId", webhookOauthId.toString());
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath =
+ "/webhooks_settings/oauth/{webhookOauthId}"
+ .replace(
+ "{webhookOauthId}", ApiClient.urlEncode(webhookOauthId.toString()));
+
+ localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+
+ localVarRequestBuilder.header("Content-Type", "application/json");
+ localVarRequestBuilder.header("Accept", "application/json");
+
+ try {
+ byte[] localVarPostBody =
+ memberVarObjectMapper.writeValueAsBytes(updateWebhookOAuthRequest);
+ 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/model/AccessTypeResponse.java b/src/main/java/com/fireblocks/sdk/model/AccessTypeResponse.java
new file mode 100644
index 00000000..667bab62
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/AccessTypeResponse.java
@@ -0,0 +1,329 @@
+/*
+ * 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.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.MapperFeature;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
+import com.fasterxml.jackson.databind.ser.std.StdSerializer;
+import com.fireblocks.sdk.JSON;
+import java.io.IOException;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.StringJoiner;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+@JsonDeserialize(using = AccessTypeResponse.AccessTypeResponseDeserializer.class)
+@JsonSerialize(using = AccessTypeResponse.AccessTypeResponseSerializer.class)
+public class AccessTypeResponse extends AbstractOpenApiSchema {
+ private static final Logger log = Logger.getLogger(AccessTypeResponse.class.getName());
+
+ public static class AccessTypeResponseSerializer extends StdSerializer {
+ public AccessTypeResponseSerializer(Class t) {
+ super(t);
+ }
+
+ public AccessTypeResponseSerializer() {
+ this(null);
+ }
+
+ @Override
+ public void serialize(
+ AccessTypeResponse value, JsonGenerator jgen, SerializerProvider provider)
+ throws IOException, JsonProcessingException {
+ jgen.writeObject(value.getActualInstance());
+ }
+ }
+
+ public static class AccessTypeResponseDeserializer extends StdDeserializer {
+ public AccessTypeResponseDeserializer() {
+ this(AccessTypeResponse.class);
+ }
+
+ public AccessTypeResponseDeserializer(Class> vc) {
+ super(vc);
+ }
+
+ @Override
+ public AccessTypeResponse deserialize(JsonParser jp, DeserializationContext ctxt)
+ throws IOException, JsonProcessingException {
+ JsonNode tree = jp.readValueAsTree();
+ Object deserialized = null;
+ boolean typeCoercion = ctxt.isEnabled(MapperFeature.ALLOW_COERCION_OF_SCALARS);
+ int match = 0;
+ JsonToken token = tree.traverse(jp.getCodec()).nextToken();
+ // deserialize AccountAccessResponse
+ try {
+ boolean attemptParsing = true;
+ // ensure that we respect type coercion as set on the client ObjectMapper
+ if (AccountAccessResponse.class.equals(Integer.class)
+ || AccountAccessResponse.class.equals(Long.class)
+ || AccountAccessResponse.class.equals(Float.class)
+ || AccountAccessResponse.class.equals(Double.class)
+ || AccountAccessResponse.class.equals(Boolean.class)
+ || AccountAccessResponse.class.equals(String.class)) {
+ attemptParsing = typeCoercion;
+ if (!attemptParsing) {
+ attemptParsing |=
+ ((AccountAccessResponse.class.equals(Integer.class)
+ || AccountAccessResponse.class.equals(Long.class))
+ && token == JsonToken.VALUE_NUMBER_INT);
+ attemptParsing |=
+ ((AccountAccessResponse.class.equals(Float.class)
+ || AccountAccessResponse.class.equals(Double.class))
+ && token == JsonToken.VALUE_NUMBER_FLOAT);
+ attemptParsing |=
+ (AccountAccessResponse.class.equals(Boolean.class)
+ && (token == JsonToken.VALUE_FALSE
+ || token == JsonToken.VALUE_TRUE));
+ attemptParsing |=
+ (AccountAccessResponse.class.equals(String.class)
+ && token == JsonToken.VALUE_STRING);
+ }
+ }
+ if (attemptParsing) {
+ deserialized =
+ tree.traverse(jp.getCodec()).readValueAs(AccountAccessResponse.class);
+ // TODO: there is no validation against JSON schema constraints
+ // (min, max, enum, pattern...), this does not perform a strict JSON
+ // validation, which means the 'match' count may be higher than it should be.
+ match++;
+ log.log(Level.FINER, "Input data matches schema 'AccountAccessResponse'");
+ }
+ } catch (Exception e) {
+ // deserialization failed, continue
+ log.log(Level.FINER, "Input data does not match schema 'AccountAccessResponse'", e);
+ }
+
+ // deserialize DirectAccessResponse
+ try {
+ boolean attemptParsing = true;
+ // ensure that we respect type coercion as set on the client ObjectMapper
+ if (DirectAccessResponse.class.equals(Integer.class)
+ || DirectAccessResponse.class.equals(Long.class)
+ || DirectAccessResponse.class.equals(Float.class)
+ || DirectAccessResponse.class.equals(Double.class)
+ || DirectAccessResponse.class.equals(Boolean.class)
+ || DirectAccessResponse.class.equals(String.class)) {
+ attemptParsing = typeCoercion;
+ if (!attemptParsing) {
+ attemptParsing |=
+ ((DirectAccessResponse.class.equals(Integer.class)
+ || DirectAccessResponse.class.equals(Long.class))
+ && token == JsonToken.VALUE_NUMBER_INT);
+ attemptParsing |=
+ ((DirectAccessResponse.class.equals(Float.class)
+ || DirectAccessResponse.class.equals(Double.class))
+ && token == JsonToken.VALUE_NUMBER_FLOAT);
+ attemptParsing |=
+ (DirectAccessResponse.class.equals(Boolean.class)
+ && (token == JsonToken.VALUE_FALSE
+ || token == JsonToken.VALUE_TRUE));
+ attemptParsing |=
+ (DirectAccessResponse.class.equals(String.class)
+ && token == JsonToken.VALUE_STRING);
+ }
+ }
+ if (attemptParsing) {
+ deserialized =
+ tree.traverse(jp.getCodec()).readValueAs(DirectAccessResponse.class);
+ // TODO: there is no validation against JSON schema constraints
+ // (min, max, enum, pattern...), this does not perform a strict JSON
+ // validation, which means the 'match' count may be higher than it should be.
+ match++;
+ log.log(Level.FINER, "Input data matches schema 'DirectAccessResponse'");
+ }
+ } catch (Exception e) {
+ // deserialization failed, continue
+ log.log(Level.FINER, "Input data does not match schema 'DirectAccessResponse'", e);
+ }
+
+ if (match == 1) {
+ AccessTypeResponse ret = new AccessTypeResponse();
+ ret.setActualInstance(deserialized);
+ return ret;
+ }
+ throw new IOException(
+ String.format(
+ "Failed deserialization for AccessTypeResponse: %d classes match"
+ + " result, expected 1",
+ match));
+ }
+
+ /** Handle deserialization of the 'null' value. */
+ @Override
+ public AccessTypeResponse getNullValue(DeserializationContext ctxt)
+ throws JsonMappingException {
+ throw new JsonMappingException(ctxt.getParser(), "AccessTypeResponse cannot be null");
+ }
+ }
+
+ // store a list of schema names defined in oneOf
+ public static final Map> schemas = new HashMap<>();
+
+ public AccessTypeResponse() {
+ super("oneOf", Boolean.FALSE);
+ }
+
+ public AccessTypeResponse(AccountAccessResponse o) {
+ super("oneOf", Boolean.FALSE);
+ setActualInstance(o);
+ }
+
+ public AccessTypeResponse(DirectAccessResponse o) {
+ super("oneOf", Boolean.FALSE);
+ setActualInstance(o);
+ }
+
+ static {
+ schemas.put("AccountAccessResponse", AccountAccessResponse.class);
+ schemas.put("DirectAccessResponse", DirectAccessResponse.class);
+ JSON.registerDescendants(AccessTypeResponse.class, Collections.unmodifiableMap(schemas));
+ // Initialize and register the discriminator mappings.
+ Map> mappings = new HashMap>();
+ mappings.put("PROVIDER", DirectAccessResponse.class);
+ mappings.put("PROVIDER_ACCOUNT", AccountAccessResponse.class);
+ mappings.put("AccountAccessResponse", AccountAccessResponse.class);
+ mappings.put("DirectAccessResponse", DirectAccessResponse.class);
+ mappings.put("AccessTypeResponse", AccessTypeResponse.class);
+ JSON.registerDiscriminator(AccessTypeResponse.class, "type", mappings);
+ }
+
+ @Override
+ public Map> getSchemas() {
+ return AccessTypeResponse.schemas;
+ }
+
+ /**
+ * Set the instance that matches the oneOf child schema, check the instance parameter is valid
+ * against the oneOf child schemas: AccountAccessResponse, DirectAccessResponse
+ *
+ * It could be an instance of the 'oneOf' schemas. The oneOf child schemas may themselves be
+ * a composed schema (allOf, anyOf, oneOf).
+ */
+ @Override
+ public void setActualInstance(Object instance) {
+ if (JSON.isInstanceOf(AccountAccessResponse.class, instance, new HashSet>())) {
+ super.setActualInstance(instance);
+ return;
+ }
+
+ if (JSON.isInstanceOf(DirectAccessResponse.class, instance, new HashSet>())) {
+ super.setActualInstance(instance);
+ return;
+ }
+
+ throw new RuntimeException(
+ "Invalid instance type. Must be AccountAccessResponse, DirectAccessResponse");
+ }
+
+ /**
+ * Get the actual instance, which can be the following: AccountAccessResponse,
+ * DirectAccessResponse
+ *
+ * @return The actual instance (AccountAccessResponse, DirectAccessResponse)
+ */
+ @Override
+ public Object getActualInstance() {
+ return super.getActualInstance();
+ }
+
+ /**
+ * Get the actual instance of `AccountAccessResponse`. If the actual instance is not
+ * `AccountAccessResponse`, the ClassCastException will be thrown.
+ *
+ * @return The actual instance of `AccountAccessResponse`
+ * @throws ClassCastException if the instance is not `AccountAccessResponse`
+ */
+ public AccountAccessResponse getAccountAccessResponse() throws ClassCastException {
+ return (AccountAccessResponse) super.getActualInstance();
+ }
+
+ /**
+ * Get the actual instance of `DirectAccessResponse`. If the actual instance is not
+ * `DirectAccessResponse`, the ClassCastException will be thrown.
+ *
+ * @return The actual instance of `DirectAccessResponse`
+ * @throws ClassCastException if the instance is not `DirectAccessResponse`
+ */
+ public DirectAccessResponse getDirectAccessResponse() throws ClassCastException {
+ return (DirectAccessResponse) super.getActualInstance();
+ }
+
+ /**
+ * 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("&");
+
+ if (getActualInstance() instanceof AccountAccessResponse) {
+ if (getActualInstance() != null) {
+ joiner.add(
+ ((AccountAccessResponse) getActualInstance())
+ .toUrlQueryString(prefix + "one_of_0" + suffix));
+ }
+ return joiner.toString();
+ }
+ if (getActualInstance() instanceof DirectAccessResponse) {
+ if (getActualInstance() != null) {
+ joiner.add(
+ ((DirectAccessResponse) getActualInstance())
+ .toUrlQueryString(prefix + "one_of_1" + suffix));
+ }
+ return joiner.toString();
+ }
+ return null;
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/AccountAccessResponse.java b/src/main/java/com/fireblocks/sdk/model/AccountAccessResponse.java
new file mode 100644
index 00000000..35ff7896
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/AccountAccessResponse.java
@@ -0,0 +1,260 @@
+/*
+ * 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;
+
+/** Response-only counterpart of AccountAccess. */
+@JsonPropertyOrder({
+ AccountAccessResponse.JSON_PROPERTY_TYPE,
+ AccountAccessResponse.JSON_PROPERTY_PROVIDER_ID,
+ AccountAccessResponse.JSON_PROPERTY_ACCOUNT_ID
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class AccountAccessResponse {
+ /** Indicates this uses account-based access */
+ public enum TypeEnum {
+ PROVIDER_ACCOUNT(String.valueOf("PROVIDER_ACCOUNT"));
+
+ private String value;
+
+ TypeEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static TypeEnum fromValue(String value) {
+ for (TypeEnum b : TypeEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ @jakarta.annotation.Nonnull private TypeEnum type;
+
+ public static final String JSON_PROPERTY_PROVIDER_ID = "providerId";
+ @jakarta.annotation.Nullable private String providerId;
+
+ public static final String JSON_PROPERTY_ACCOUNT_ID = "accountId";
+ @jakarta.annotation.Nonnull private String accountId;
+
+ public AccountAccessResponse() {}
+
+ @JsonCreator
+ public AccountAccessResponse(
+ @JsonProperty(value = JSON_PROPERTY_TYPE, required = true) TypeEnum type,
+ @JsonProperty(value = JSON_PROPERTY_ACCOUNT_ID, required = true) String accountId) {
+ this.type = type;
+ this.accountId = accountId;
+ }
+
+ public AccountAccessResponse type(@jakarta.annotation.Nonnull TypeEnum type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Indicates this uses account-based access
+ *
+ * @return type
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public TypeEnum getType() {
+ return type;
+ }
+
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setType(@jakarta.annotation.Nonnull TypeEnum type) {
+ this.type = type;
+ }
+
+ public AccountAccessResponse providerId(@jakarta.annotation.Nullable String providerId) {
+ this.providerId = providerId;
+ return this;
+ }
+
+ /**
+ * The ID of the provider
+ *
+ * @return providerId
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_PROVIDER_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getProviderId() {
+ return providerId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_PROVIDER_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setProviderId(@jakarta.annotation.Nullable String providerId) {
+ this.providerId = providerId;
+ }
+
+ public AccountAccessResponse accountId(@jakarta.annotation.Nonnull String accountId) {
+ this.accountId = accountId;
+ return this;
+ }
+
+ /**
+ * The ID of the account
+ *
+ * @return accountId
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_ACCOUNT_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getAccountId() {
+ return accountId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_ACCOUNT_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setAccountId(@jakarta.annotation.Nonnull String accountId) {
+ this.accountId = accountId;
+ }
+
+ /** Return true if this AccountAccessResponse object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AccountAccessResponse accountAccessResponse = (AccountAccessResponse) o;
+ return Objects.equals(this.type, accountAccessResponse.type)
+ && Objects.equals(this.providerId, accountAccessResponse.providerId)
+ && Objects.equals(this.accountId, accountAccessResponse.accountId);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(type, providerId, accountId);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class AccountAccessResponse {\n");
+ sb.append(" type: ").append(toIndentedString(type)).append("\n");
+ sb.append(" providerId: ").append(toIndentedString(providerId)).append("\n");
+ sb.append(" accountId: ").append(toIndentedString(accountId)).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 `type` to the URL query string
+ if (getType() != null) {
+ joiner.add(
+ String.format(
+ "%stype%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getType()))));
+ }
+
+ // add `providerId` to the URL query string
+ if (getProviderId() != null) {
+ joiner.add(
+ String.format(
+ "%sproviderId%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getProviderId()))));
+ }
+
+ // add `accountId` to the URL query string
+ if (getAccountId() != null) {
+ joiner.add(
+ String.format(
+ "%saccountId%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getAccountId()))));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/AllocationResponse.java b/src/main/java/com/fireblocks/sdk/model/AllocationResponse.java
new file mode 100644
index 00000000..bf230189
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/AllocationResponse.java
@@ -0,0 +1,342 @@
+/*
+ * 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.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.MapperFeature;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
+import com.fasterxml.jackson.databind.ser.std.StdSerializer;
+import com.fireblocks.sdk.JSON;
+import java.io.IOException;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.StringJoiner;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+@JsonDeserialize(using = AllocationResponse.AllocationResponseDeserializer.class)
+@JsonSerialize(using = AllocationResponse.AllocationResponseSerializer.class)
+public class AllocationResponse extends AbstractOpenApiSchema {
+ private static final Logger log = Logger.getLogger(AllocationResponse.class.getName());
+
+ public static class AllocationResponseSerializer extends StdSerializer {
+ public AllocationResponseSerializer(Class t) {
+ super(t);
+ }
+
+ public AllocationResponseSerializer() {
+ this(null);
+ }
+
+ @Override
+ public void serialize(
+ AllocationResponse value, JsonGenerator jgen, SerializerProvider provider)
+ throws IOException, JsonProcessingException {
+ jgen.writeObject(value.getActualInstance());
+ }
+ }
+
+ public static class AllocationResponseDeserializer extends StdDeserializer {
+ public AllocationResponseDeserializer() {
+ this(AllocationResponse.class);
+ }
+
+ public AllocationResponseDeserializer(Class> vc) {
+ super(vc);
+ }
+
+ @Override
+ public AllocationResponse deserialize(JsonParser jp, DeserializationContext ctxt)
+ throws IOException, JsonProcessingException {
+ JsonNode tree = jp.readValueAsTree();
+ Object deserialized = null;
+ boolean typeCoercion = ctxt.isEnabled(MapperFeature.ALLOW_COERCION_OF_SCALARS);
+ int match = 0;
+ JsonToken token = tree.traverse(jp.getCodec()).nextToken();
+ // deserialize AllocationResponseAccept
+ try {
+ boolean attemptParsing = true;
+ // ensure that we respect type coercion as set on the client ObjectMapper
+ if (AllocationResponseAccept.class.equals(Integer.class)
+ || AllocationResponseAccept.class.equals(Long.class)
+ || AllocationResponseAccept.class.equals(Float.class)
+ || AllocationResponseAccept.class.equals(Double.class)
+ || AllocationResponseAccept.class.equals(Boolean.class)
+ || AllocationResponseAccept.class.equals(String.class)) {
+ attemptParsing = typeCoercion;
+ if (!attemptParsing) {
+ attemptParsing |=
+ ((AllocationResponseAccept.class.equals(Integer.class)
+ || AllocationResponseAccept.class.equals(
+ Long.class))
+ && token == JsonToken.VALUE_NUMBER_INT);
+ attemptParsing |=
+ ((AllocationResponseAccept.class.equals(Float.class)
+ || AllocationResponseAccept.class.equals(
+ Double.class))
+ && token == JsonToken.VALUE_NUMBER_FLOAT);
+ attemptParsing |=
+ (AllocationResponseAccept.class.equals(Boolean.class)
+ && (token == JsonToken.VALUE_FALSE
+ || token == JsonToken.VALUE_TRUE));
+ attemptParsing |=
+ (AllocationResponseAccept.class.equals(String.class)
+ && token == JsonToken.VALUE_STRING);
+ }
+ }
+ if (attemptParsing) {
+ deserialized =
+ tree.traverse(jp.getCodec())
+ .readValueAs(AllocationResponseAccept.class);
+ // TODO: there is no validation against JSON schema constraints
+ // (min, max, enum, pattern...), this does not perform a strict JSON
+ // validation, which means the 'match' count may be higher than it should be.
+ match++;
+ log.log(Level.FINER, "Input data matches schema 'AllocationResponseAccept'");
+ }
+ } catch (Exception e) {
+ // deserialization failed, continue
+ log.log(
+ Level.FINER,
+ "Input data does not match schema 'AllocationResponseAccept'",
+ e);
+ }
+
+ // deserialize AllocationResponseReject
+ try {
+ boolean attemptParsing = true;
+ // ensure that we respect type coercion as set on the client ObjectMapper
+ if (AllocationResponseReject.class.equals(Integer.class)
+ || AllocationResponseReject.class.equals(Long.class)
+ || AllocationResponseReject.class.equals(Float.class)
+ || AllocationResponseReject.class.equals(Double.class)
+ || AllocationResponseReject.class.equals(Boolean.class)
+ || AllocationResponseReject.class.equals(String.class)) {
+ attemptParsing = typeCoercion;
+ if (!attemptParsing) {
+ attemptParsing |=
+ ((AllocationResponseReject.class.equals(Integer.class)
+ || AllocationResponseReject.class.equals(
+ Long.class))
+ && token == JsonToken.VALUE_NUMBER_INT);
+ attemptParsing |=
+ ((AllocationResponseReject.class.equals(Float.class)
+ || AllocationResponseReject.class.equals(
+ Double.class))
+ && token == JsonToken.VALUE_NUMBER_FLOAT);
+ attemptParsing |=
+ (AllocationResponseReject.class.equals(Boolean.class)
+ && (token == JsonToken.VALUE_FALSE
+ || token == JsonToken.VALUE_TRUE));
+ attemptParsing |=
+ (AllocationResponseReject.class.equals(String.class)
+ && token == JsonToken.VALUE_STRING);
+ }
+ }
+ if (attemptParsing) {
+ deserialized =
+ tree.traverse(jp.getCodec())
+ .readValueAs(AllocationResponseReject.class);
+ // TODO: there is no validation against JSON schema constraints
+ // (min, max, enum, pattern...), this does not perform a strict JSON
+ // validation, which means the 'match' count may be higher than it should be.
+ match++;
+ log.log(Level.FINER, "Input data matches schema 'AllocationResponseReject'");
+ }
+ } catch (Exception e) {
+ // deserialization failed, continue
+ log.log(
+ Level.FINER,
+ "Input data does not match schema 'AllocationResponseReject'",
+ e);
+ }
+
+ if (match == 1) {
+ AllocationResponse ret = new AllocationResponse();
+ ret.setActualInstance(deserialized);
+ return ret;
+ }
+ throw new IOException(
+ String.format(
+ "Failed deserialization for AllocationResponse: %d classes match"
+ + " result, expected 1",
+ match));
+ }
+
+ /** Handle deserialization of the 'null' value. */
+ @Override
+ public AllocationResponse getNullValue(DeserializationContext ctxt)
+ throws JsonMappingException {
+ throw new JsonMappingException(ctxt.getParser(), "AllocationResponse cannot be null");
+ }
+ }
+
+ // store a list of schema names defined in oneOf
+ public static final Map> schemas = new HashMap<>();
+
+ public AllocationResponse() {
+ super("oneOf", Boolean.FALSE);
+ }
+
+ public AllocationResponse(AllocationResponseAccept o) {
+ super("oneOf", Boolean.FALSE);
+ setActualInstance(o);
+ }
+
+ public AllocationResponse(AllocationResponseReject o) {
+ super("oneOf", Boolean.FALSE);
+ setActualInstance(o);
+ }
+
+ static {
+ schemas.put("AllocationResponseAccept", AllocationResponseAccept.class);
+ schemas.put("AllocationResponseReject", AllocationResponseReject.class);
+ JSON.registerDescendants(AllocationResponse.class, Collections.unmodifiableMap(schemas));
+ // Initialize and register the discriminator mappings.
+ Map> mappings = new HashMap>();
+ mappings.put("ALLOCATION_ACCEPT", AllocationResponseAccept.class);
+ mappings.put("ALLOCATION_REJECT", AllocationResponseReject.class);
+ mappings.put("AllocationResponseAccept", AllocationResponseAccept.class);
+ mappings.put("AllocationResponseReject", AllocationResponseReject.class);
+ mappings.put("AllocationResponse", AllocationResponse.class);
+ JSON.registerDiscriminator(AllocationResponse.class, "responseType", mappings);
+ }
+
+ @Override
+ public Map> getSchemas() {
+ return AllocationResponse.schemas;
+ }
+
+ /**
+ * Set the instance that matches the oneOf child schema, check the instance parameter is valid
+ * against the oneOf child schemas: AllocationResponseAccept, AllocationResponseReject
+ *
+ * It could be an instance of the 'oneOf' schemas. The oneOf child schemas may themselves be
+ * a composed schema (allOf, anyOf, oneOf).
+ */
+ @Override
+ public void setActualInstance(Object instance) {
+ if (JSON.isInstanceOf(AllocationResponseAccept.class, instance, new HashSet>())) {
+ super.setActualInstance(instance);
+ return;
+ }
+
+ if (JSON.isInstanceOf(AllocationResponseReject.class, instance, new HashSet>())) {
+ super.setActualInstance(instance);
+ return;
+ }
+
+ throw new RuntimeException(
+ "Invalid instance type. Must be AllocationResponseAccept,"
+ + " AllocationResponseReject");
+ }
+
+ /**
+ * Get the actual instance, which can be the following: AllocationResponseAccept,
+ * AllocationResponseReject
+ *
+ * @return The actual instance (AllocationResponseAccept, AllocationResponseReject)
+ */
+ @Override
+ public Object getActualInstance() {
+ return super.getActualInstance();
+ }
+
+ /**
+ * Get the actual instance of `AllocationResponseAccept`. If the actual instance is not
+ * `AllocationResponseAccept`, the ClassCastException will be thrown.
+ *
+ * @return The actual instance of `AllocationResponseAccept`
+ * @throws ClassCastException if the instance is not `AllocationResponseAccept`
+ */
+ public AllocationResponseAccept getAllocationResponseAccept() throws ClassCastException {
+ return (AllocationResponseAccept) super.getActualInstance();
+ }
+
+ /**
+ * Get the actual instance of `AllocationResponseReject`. If the actual instance is not
+ * `AllocationResponseReject`, the ClassCastException will be thrown.
+ *
+ * @return The actual instance of `AllocationResponseReject`
+ * @throws ClassCastException if the instance is not `AllocationResponseReject`
+ */
+ public AllocationResponseReject getAllocationResponseReject() throws ClassCastException {
+ return (AllocationResponseReject) super.getActualInstance();
+ }
+
+ /**
+ * 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("&");
+
+ if (getActualInstance() instanceof AllocationResponseAccept) {
+ if (getActualInstance() != null) {
+ joiner.add(
+ ((AllocationResponseAccept) getActualInstance())
+ .toUrlQueryString(prefix + "one_of_0" + suffix));
+ }
+ return joiner.toString();
+ }
+ if (getActualInstance() instanceof AllocationResponseReject) {
+ if (getActualInstance() != null) {
+ joiner.add(
+ ((AllocationResponseReject) getActualInstance())
+ .toUrlQueryString(prefix + "one_of_1" + suffix));
+ }
+ return joiner.toString();
+ }
+ return null;
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/AllocationResponseAccept.java b/src/main/java/com/fireblocks/sdk/model/AllocationResponseAccept.java
new file mode 100644
index 00000000..7bee061b
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/AllocationResponseAccept.java
@@ -0,0 +1,180 @@
+/*
+ * 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;
+
+/** Accept a CIP-56 allocation request. Carries no arguments. */
+@JsonPropertyOrder({AllocationResponseAccept.JSON_PROPERTY_RESPONSE_TYPE})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class AllocationResponseAccept {
+ /** How you are answering the allocation request. */
+ public enum ResponseTypeEnum {
+ ALLOCATION_ACCEPT(String.valueOf("ALLOCATION_ACCEPT"));
+
+ private String value;
+
+ ResponseTypeEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static ResponseTypeEnum fromValue(String value) {
+ for (ResponseTypeEnum b : ResponseTypeEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_RESPONSE_TYPE = "responseType";
+ @jakarta.annotation.Nonnull private ResponseTypeEnum responseType;
+
+ public AllocationResponseAccept() {}
+
+ @JsonCreator
+ public AllocationResponseAccept(
+ @JsonProperty(value = JSON_PROPERTY_RESPONSE_TYPE, required = true)
+ ResponseTypeEnum responseType) {
+ this.responseType = responseType;
+ }
+
+ public AllocationResponseAccept responseType(
+ @jakarta.annotation.Nonnull ResponseTypeEnum responseType) {
+ this.responseType = responseType;
+ return this;
+ }
+
+ /**
+ * How you are answering the allocation request.
+ *
+ * @return responseType
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_RESPONSE_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public ResponseTypeEnum getResponseType() {
+ return responseType;
+ }
+
+ @JsonProperty(JSON_PROPERTY_RESPONSE_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setResponseType(@jakarta.annotation.Nonnull ResponseTypeEnum responseType) {
+ this.responseType = responseType;
+ }
+
+ /** Return true if this AllocationResponseAccept object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AllocationResponseAccept allocationResponseAccept = (AllocationResponseAccept) o;
+ return Objects.equals(this.responseType, allocationResponseAccept.responseType);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(responseType);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class AllocationResponseAccept {\n");
+ sb.append(" responseType: ").append(toIndentedString(responseType)).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 `responseType` to the URL query string
+ if (getResponseType() != null) {
+ joiner.add(
+ String.format(
+ "%sresponseType%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getResponseType()))));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/AllocationResponseReject.java b/src/main/java/com/fireblocks/sdk/model/AllocationResponseReject.java
new file mode 100644
index 00000000..e1419066
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/AllocationResponseReject.java
@@ -0,0 +1,180 @@
+/*
+ * 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;
+
+/** Reject a CIP-56 allocation request. Carries no arguments. */
+@JsonPropertyOrder({AllocationResponseReject.JSON_PROPERTY_RESPONSE_TYPE})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class AllocationResponseReject {
+ /** How you are answering the allocation request. */
+ public enum ResponseTypeEnum {
+ ALLOCATION_REJECT(String.valueOf("ALLOCATION_REJECT"));
+
+ private String value;
+
+ ResponseTypeEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static ResponseTypeEnum fromValue(String value) {
+ for (ResponseTypeEnum b : ResponseTypeEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_RESPONSE_TYPE = "responseType";
+ @jakarta.annotation.Nonnull private ResponseTypeEnum responseType;
+
+ public AllocationResponseReject() {}
+
+ @JsonCreator
+ public AllocationResponseReject(
+ @JsonProperty(value = JSON_PROPERTY_RESPONSE_TYPE, required = true)
+ ResponseTypeEnum responseType) {
+ this.responseType = responseType;
+ }
+
+ public AllocationResponseReject responseType(
+ @jakarta.annotation.Nonnull ResponseTypeEnum responseType) {
+ this.responseType = responseType;
+ return this;
+ }
+
+ /**
+ * How you are answering the allocation request.
+ *
+ * @return responseType
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_RESPONSE_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public ResponseTypeEnum getResponseType() {
+ return responseType;
+ }
+
+ @JsonProperty(JSON_PROPERTY_RESPONSE_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setResponseType(@jakarta.annotation.Nonnull ResponseTypeEnum responseType) {
+ this.responseType = responseType;
+ }
+
+ /** Return true if this AllocationResponseReject object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AllocationResponseReject allocationResponseReject = (AllocationResponseReject) o;
+ return Objects.equals(this.responseType, allocationResponseReject.responseType);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(responseType);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class AllocationResponseReject {\n");
+ sb.append(" responseType: ").append(toIndentedString(responseType)).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 `responseType` to the URL query string
+ if (getResponseType() != null) {
+ joiner.add(
+ String.format(
+ "%sresponseType%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getResponseType()))));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/AllocationWithdrawPayload.java b/src/main/java/com/fireblocks/sdk/model/AllocationWithdrawPayload.java
new file mode 100644
index 00000000..5ff3e1e5
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/AllocationWithdrawPayload.java
@@ -0,0 +1,275 @@
+/*
+ * 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;
+
+/** AllocationWithdrawPayload */
+@JsonPropertyOrder({
+ AllocationWithdrawPayload.JSON_PROPERTY_VAULT_ACCOUNT_ID,
+ AllocationWithdrawPayload.JSON_PROPERTY_ASSET,
+ AllocationWithdrawPayload.JSON_PROPERTY_ALLOCATION_TRANSACTION_ID
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class AllocationWithdrawPayload {
+ public static final String JSON_PROPERTY_VAULT_ACCOUNT_ID = "vaultAccountId";
+ @jakarta.annotation.Nonnull private String vaultAccountId;
+
+ /** Chain asset — `CANTON` or `CANTON_TEST`. */
+ public enum AssetEnum {
+ CANTON(String.valueOf("CANTON")),
+
+ CANTON_TEST(String.valueOf("CANTON_TEST"));
+
+ private String value;
+
+ AssetEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static AssetEnum fromValue(String value) {
+ for (AssetEnum b : AssetEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_ASSET = "asset";
+ @jakarta.annotation.Nonnull private AssetEnum asset;
+
+ public static final String JSON_PROPERTY_ALLOCATION_TRANSACTION_ID = "allocationTransactionId";
+ @jakarta.annotation.Nonnull private String allocationTransactionId;
+
+ public AllocationWithdrawPayload() {}
+
+ @JsonCreator
+ public AllocationWithdrawPayload(
+ @JsonProperty(value = JSON_PROPERTY_VAULT_ACCOUNT_ID, required = true)
+ String vaultAccountId,
+ @JsonProperty(value = JSON_PROPERTY_ASSET, required = true) AssetEnum asset,
+ @JsonProperty(value = JSON_PROPERTY_ALLOCATION_TRANSACTION_ID, required = true)
+ String allocationTransactionId) {
+ this.vaultAccountId = vaultAccountId;
+ this.asset = asset;
+ this.allocationTransactionId = allocationTransactionId;
+ }
+
+ public AllocationWithdrawPayload vaultAccountId(
+ @jakarta.annotation.Nonnull String vaultAccountId) {
+ this.vaultAccountId = vaultAccountId;
+ return this;
+ }
+
+ /**
+ * The vault account whose Canton wallet acts here.
+ *
+ * @return vaultAccountId
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_VAULT_ACCOUNT_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getVaultAccountId() {
+ return vaultAccountId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_VAULT_ACCOUNT_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setVaultAccountId(@jakarta.annotation.Nonnull String vaultAccountId) {
+ this.vaultAccountId = vaultAccountId;
+ }
+
+ public AllocationWithdrawPayload asset(@jakarta.annotation.Nonnull AssetEnum asset) {
+ this.asset = asset;
+ return this;
+ }
+
+ /**
+ * Chain asset — `CANTON` or `CANTON_TEST`.
+ *
+ * @return asset
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_ASSET)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public AssetEnum getAsset() {
+ return asset;
+ }
+
+ @JsonProperty(JSON_PROPERTY_ASSET)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setAsset(@jakarta.annotation.Nonnull AssetEnum asset) {
+ this.asset = asset;
+ }
+
+ public AllocationWithdrawPayload allocationTransactionId(
+ @jakarta.annotation.Nonnull String allocationTransactionId) {
+ this.allocationTransactionId = allocationTransactionId;
+ return this;
+ }
+
+ /**
+ * The Fireblocks transaction id of the outgoing response that created the allocation. The
+ * allocation is resolved from it — Canton contract ids are never accepted here.
+ *
+ * @return allocationTransactionId
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_ALLOCATION_TRANSACTION_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getAllocationTransactionId() {
+ return allocationTransactionId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_ALLOCATION_TRANSACTION_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setAllocationTransactionId(
+ @jakarta.annotation.Nonnull String allocationTransactionId) {
+ this.allocationTransactionId = allocationTransactionId;
+ }
+
+ /** Return true if this AllocationWithdrawPayload object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AllocationWithdrawPayload allocationWithdrawPayload = (AllocationWithdrawPayload) o;
+ return Objects.equals(this.vaultAccountId, allocationWithdrawPayload.vaultAccountId)
+ && Objects.equals(this.asset, allocationWithdrawPayload.asset)
+ && Objects.equals(
+ this.allocationTransactionId,
+ allocationWithdrawPayload.allocationTransactionId);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(vaultAccountId, asset, allocationTransactionId);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class AllocationWithdrawPayload {\n");
+ sb.append(" vaultAccountId: ").append(toIndentedString(vaultAccountId)).append("\n");
+ sb.append(" asset: ").append(toIndentedString(asset)).append("\n");
+ sb.append(" allocationTransactionId: ")
+ .append(toIndentedString(allocationTransactionId))
+ .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 `vaultAccountId` to the URL query string
+ if (getVaultAccountId() != null) {
+ joiner.add(
+ String.format(
+ "%svaultAccountId%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getVaultAccountId()))));
+ }
+
+ // 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 `allocationTransactionId` to the URL query string
+ if (getAllocationTransactionId() != null) {
+ joiner.add(
+ String.format(
+ "%sallocationTransactionId%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(
+ ApiClient.valueToString(getAllocationTransactionId()))));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/AllowListPayload.java b/src/main/java/com/fireblocks/sdk/model/AllowListPayload.java
new file mode 100644
index 00000000..88c4b533
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/AllowListPayload.java
@@ -0,0 +1,281 @@
+/*
+ * 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.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.StringJoiner;
+
+/** AllowListPayload */
+@JsonPropertyOrder({
+ AllowListPayload.JSON_PROPERTY_VAULT_ACCOUNT_ID,
+ AllowListPayload.JSON_PROPERTY_ASSET,
+ AllowListPayload.JSON_PROPERTY_WALLETS
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class AllowListPayload {
+ public static final String JSON_PROPERTY_VAULT_ACCOUNT_ID = "vaultAccountId";
+ @jakarta.annotation.Nonnull private String vaultAccountId;
+
+ /** Chain asset — `CANTON` or `CANTON_TEST`. */
+ public enum AssetEnum {
+ CANTON(String.valueOf("CANTON")),
+
+ CANTON_TEST(String.valueOf("CANTON_TEST"));
+
+ private String value;
+
+ AssetEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static AssetEnum fromValue(String value) {
+ for (AssetEnum b : AssetEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_ASSET = "asset";
+ @jakarta.annotation.Nonnull private AssetEnum asset;
+
+ public static final String JSON_PROPERTY_WALLETS = "wallets";
+ @jakarta.annotation.Nonnull private List wallets;
+
+ public AllowListPayload() {}
+
+ @JsonCreator
+ public AllowListPayload(
+ @JsonProperty(value = JSON_PROPERTY_VAULT_ACCOUNT_ID, required = true)
+ String vaultAccountId,
+ @JsonProperty(value = JSON_PROPERTY_ASSET, required = true) AssetEnum asset,
+ @JsonProperty(value = JSON_PROPERTY_WALLETS, required = true) List wallets) {
+ this.vaultAccountId = vaultAccountId;
+ this.asset = asset;
+ this.wallets = wallets;
+ }
+
+ public AllowListPayload vaultAccountId(@jakarta.annotation.Nonnull String vaultAccountId) {
+ this.vaultAccountId = vaultAccountId;
+ return this;
+ }
+
+ /**
+ * The vault account whose Canton wallet acts here.
+ *
+ * @return vaultAccountId
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_VAULT_ACCOUNT_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getVaultAccountId() {
+ return vaultAccountId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_VAULT_ACCOUNT_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setVaultAccountId(@jakarta.annotation.Nonnull String vaultAccountId) {
+ this.vaultAccountId = vaultAccountId;
+ }
+
+ public AllowListPayload asset(@jakarta.annotation.Nonnull AssetEnum asset) {
+ this.asset = asset;
+ return this;
+ }
+
+ /**
+ * Chain asset — `CANTON` or `CANTON_TEST`.
+ *
+ * @return asset
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_ASSET)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public AssetEnum getAsset() {
+ return asset;
+ }
+
+ @JsonProperty(JSON_PROPERTY_ASSET)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setAsset(@jakarta.annotation.Nonnull AssetEnum asset) {
+ this.asset = asset;
+ }
+
+ public AllowListPayload wallets(@jakarta.annotation.Nonnull List wallets) {
+ this.wallets = wallets;
+ return this;
+ }
+
+ public AllowListPayload addWalletsItem(String walletsItem) {
+ if (this.wallets == null) {
+ this.wallets = new ArrayList<>();
+ }
+ this.wallets.add(walletsItem);
+ return this;
+ }
+
+ /**
+ * Canton party ids to add or remove.
+ *
+ * @return wallets
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_WALLETS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public List getWallets() {
+ return wallets;
+ }
+
+ @JsonProperty(JSON_PROPERTY_WALLETS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setWallets(@jakarta.annotation.Nonnull List wallets) {
+ this.wallets = wallets;
+ }
+
+ /** Return true if this AllowListPayload object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AllowListPayload allowListPayload = (AllowListPayload) o;
+ return Objects.equals(this.vaultAccountId, allowListPayload.vaultAccountId)
+ && Objects.equals(this.asset, allowListPayload.asset)
+ && Objects.equals(this.wallets, allowListPayload.wallets);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(vaultAccountId, asset, wallets);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class AllowListPayload {\n");
+ sb.append(" vaultAccountId: ").append(toIndentedString(vaultAccountId)).append("\n");
+ sb.append(" asset: ").append(toIndentedString(asset)).append("\n");
+ sb.append(" wallets: ").append(toIndentedString(wallets)).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 `vaultAccountId` to the URL query string
+ if (getVaultAccountId() != null) {
+ joiner.add(
+ String.format(
+ "%svaultAccountId%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getVaultAccountId()))));
+ }
+
+ // 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 `wallets` to the URL query string
+ if (getWallets() != null) {
+ for (int i = 0; i < getWallets().size(); i++) {
+ joiner.add(
+ String.format(
+ "%swallets%s%s=%s",
+ prefix,
+ suffix,
+ "".equals(suffix)
+ ? ""
+ : String.format(
+ "%s%d%s", containerPrefix, i, containerSuffix),
+ ApiClient.urlEncode(ApiClient.valueToString(getWallets().get(i)))));
+ }
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/ApprovalRequestItem.java b/src/main/java/com/fireblocks/sdk/model/ApprovalRequestItem.java
new file mode 100644
index 00000000..cccaa57f
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/ApprovalRequestItem.java
@@ -0,0 +1,308 @@
+/*
+ * 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;
+
+/** ApprovalRequestItem */
+@JsonPropertyOrder({
+ ApprovalRequestItem.JSON_PROPERTY_REQUEST_PAYLOAD,
+ ApprovalRequestItem.JSON_PROPERTY_REQUEST_SIGNATURE,
+ ApprovalRequestItem.JSON_PROPERTY_USER_STATUS,
+ ApprovalRequestItem.JSON_PROPERTY_QUORUM_STATUS
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class ApprovalRequestItem {
+ public static final String JSON_PROPERTY_REQUEST_PAYLOAD = "requestPayload";
+ @jakarta.annotation.Nonnull private String requestPayload;
+
+ public static final String JSON_PROPERTY_REQUEST_SIGNATURE = "requestSignature";
+ @jakarta.annotation.Nullable private String requestSignature;
+
+ /** The authenticated user's approval status for this request. */
+ public enum UserStatusEnum {
+ USER_STATUS_NOT_APPLICABLE(String.valueOf("USER_STATUS_NOT_APPLICABLE")),
+
+ USER_NOT_ELIGIBLE_TO_APPROVE(String.valueOf("USER_NOT_ELIGIBLE_TO_APPROVE")),
+
+ USER_NOT_APPROVED(String.valueOf("USER_NOT_APPROVED")),
+
+ USER_APPROVED(String.valueOf("USER_APPROVED"));
+
+ private String value;
+
+ UserStatusEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static UserStatusEnum fromValue(String value) {
+ for (UserStatusEnum b : UserStatusEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_USER_STATUS = "userStatus";
+ @jakarta.annotation.Nonnull private UserStatusEnum userStatus;
+
+ public static final String JSON_PROPERTY_QUORUM_STATUS = "quorumStatus";
+ @jakarta.annotation.Nullable private QuorumStatus quorumStatus;
+
+ public ApprovalRequestItem() {}
+
+ @JsonCreator
+ public ApprovalRequestItem(
+ @JsonProperty(value = JSON_PROPERTY_REQUEST_PAYLOAD, required = true)
+ String requestPayload,
+ @JsonProperty(value = JSON_PROPERTY_USER_STATUS, required = true)
+ UserStatusEnum userStatus) {
+ this.requestPayload = requestPayload;
+ this.userStatus = userStatus;
+ }
+
+ public ApprovalRequestItem requestPayload(@jakarta.annotation.Nonnull String requestPayload) {
+ this.requestPayload = requestPayload;
+ return this;
+ }
+
+ /**
+ * The pending approval request as a JSON string, exactly as produced by the backend — this is
+ * the precise string to sign in order to approve the request (sign it as-is; do not
+ * re-serialize). The JSON has the shape { requestId, requestType, requestTimestamp (epoch ms),
+ * expiresAt (epoch seconds), requestData }, where requestData is the request-type-specific
+ * payload.
+ *
+ * @return requestPayload
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_REQUEST_PAYLOAD)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getRequestPayload() {
+ return requestPayload;
+ }
+
+ @JsonProperty(JSON_PROPERTY_REQUEST_PAYLOAD)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setRequestPayload(@jakarta.annotation.Nonnull String requestPayload) {
+ this.requestPayload = requestPayload;
+ }
+
+ public ApprovalRequestItem requestSignature(
+ @jakarta.annotation.Nullable String requestSignature) {
+ this.requestSignature = requestSignature;
+ return this;
+ }
+
+ /**
+ * Signature over the requestPayload. Empty until request signing is implemented.
+ *
+ * @return requestSignature
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_REQUEST_SIGNATURE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getRequestSignature() {
+ return requestSignature;
+ }
+
+ @JsonProperty(JSON_PROPERTY_REQUEST_SIGNATURE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setRequestSignature(@jakarta.annotation.Nullable String requestSignature) {
+ this.requestSignature = requestSignature;
+ }
+
+ public ApprovalRequestItem userStatus(@jakarta.annotation.Nonnull UserStatusEnum userStatus) {
+ this.userStatus = userStatus;
+ return this;
+ }
+
+ /**
+ * The authenticated user's approval status for this request.
+ *
+ * @return userStatus
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_USER_STATUS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public UserStatusEnum getUserStatus() {
+ return userStatus;
+ }
+
+ @JsonProperty(JSON_PROPERTY_USER_STATUS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setUserStatus(@jakarta.annotation.Nonnull UserStatusEnum userStatus) {
+ this.userStatus = userStatus;
+ }
+
+ public ApprovalRequestItem quorumStatus(
+ @jakarta.annotation.Nullable QuorumStatus quorumStatus) {
+ this.quorumStatus = quorumStatus;
+ return this;
+ }
+
+ /**
+ * Get quorumStatus
+ *
+ * @return quorumStatus
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_QUORUM_STATUS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public QuorumStatus getQuorumStatus() {
+ return quorumStatus;
+ }
+
+ @JsonProperty(JSON_PROPERTY_QUORUM_STATUS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setQuorumStatus(@jakarta.annotation.Nullable QuorumStatus quorumStatus) {
+ this.quorumStatus = quorumStatus;
+ }
+
+ /** Return true if this ApprovalRequestItem object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ApprovalRequestItem approvalRequestItem = (ApprovalRequestItem) o;
+ return Objects.equals(this.requestPayload, approvalRequestItem.requestPayload)
+ && Objects.equals(this.requestSignature, approvalRequestItem.requestSignature)
+ && Objects.equals(this.userStatus, approvalRequestItem.userStatus)
+ && Objects.equals(this.quorumStatus, approvalRequestItem.quorumStatus);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(requestPayload, requestSignature, userStatus, quorumStatus);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ApprovalRequestItem {\n");
+ sb.append(" requestPayload: ").append(toIndentedString(requestPayload)).append("\n");
+ sb.append(" requestSignature: ").append(toIndentedString(requestSignature)).append("\n");
+ sb.append(" userStatus: ").append(toIndentedString(userStatus)).append("\n");
+ sb.append(" quorumStatus: ").append(toIndentedString(quorumStatus)).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 `requestPayload` to the URL query string
+ if (getRequestPayload() != null) {
+ joiner.add(
+ String.format(
+ "%srequestPayload%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getRequestPayload()))));
+ }
+
+ // add `requestSignature` to the URL query string
+ if (getRequestSignature() != null) {
+ joiner.add(
+ String.format(
+ "%srequestSignature%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getRequestSignature()))));
+ }
+
+ // add `userStatus` to the URL query string
+ if (getUserStatus() != null) {
+ joiner.add(
+ String.format(
+ "%suserStatus%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getUserStatus()))));
+ }
+
+ // add `quorumStatus` to the URL query string
+ if (getQuorumStatus() != null) {
+ joiner.add(getQuorumStatus().toUrlQueryString(prefix + "quorumStatus" + suffix));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/CallAccepted.java b/src/main/java/com/fireblocks/sdk/model/CallAccepted.java
new file mode 100644
index 00000000..1a88cc2a
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/CallAccepted.java
@@ -0,0 +1,187 @@
+/*
+ * 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 outgoing transaction that carries the call. */
+@JsonPropertyOrder({CallAccepted.JSON_PROPERTY_TRANSACTION_ID, CallAccepted.JSON_PROPERTY_STATUS})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class CallAccepted {
+ public static final String JSON_PROPERTY_TRANSACTION_ID = "transactionId";
+ @jakarta.annotation.Nonnull private String transactionId;
+
+ public static final String JSON_PROPERTY_STATUS = "status";
+ @jakarta.annotation.Nonnull private String status;
+
+ public CallAccepted() {}
+
+ @JsonCreator
+ public CallAccepted(
+ @JsonProperty(value = JSON_PROPERTY_TRANSACTION_ID, required = true)
+ String transactionId,
+ @JsonProperty(value = JSON_PROPERTY_STATUS, required = true) String status) {
+ this.transactionId = transactionId;
+ this.status = status;
+ }
+
+ public CallAccepted transactionId(@jakarta.annotation.Nonnull String transactionId) {
+ this.transactionId = transactionId;
+ return this;
+ }
+
+ /**
+ * The outgoing transaction that carries the call.
+ *
+ * @return transactionId
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_TRANSACTION_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getTransactionId() {
+ return transactionId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_TRANSACTION_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setTransactionId(@jakarta.annotation.Nonnull String transactionId) {
+ this.transactionId = transactionId;
+ }
+
+ public CallAccepted status(@jakarta.annotation.Nonnull String status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * The transaction's status at the time of this response — `SUBMITTED`.
+ *
+ * @return status
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_STATUS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getStatus() {
+ return status;
+ }
+
+ @JsonProperty(JSON_PROPERTY_STATUS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setStatus(@jakarta.annotation.Nonnull String status) {
+ this.status = status;
+ }
+
+ /** Return true if this CallAccepted object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ CallAccepted callAccepted = (CallAccepted) o;
+ return Objects.equals(this.transactionId, callAccepted.transactionId)
+ && Objects.equals(this.status, callAccepted.status);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(transactionId, status);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class CallAccepted {\n");
+ sb.append(" transactionId: ").append(toIndentedString(transactionId)).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 `transactionId` to the URL query string
+ if (getTransactionId() != null) {
+ joiner.add(
+ String.format(
+ "%stransactionId%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getTransactionId()))));
+ }
+
+ // 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/CantonCall.java b/src/main/java/com/fireblocks/sdk/model/CantonCall.java
new file mode 100644
index 00000000..4287a88e
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/CantonCall.java
@@ -0,0 +1,852 @@
+/*
+ * 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.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.MapperFeature;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
+import com.fasterxml.jackson.databind.ser.std.StdSerializer;
+import com.fireblocks.sdk.JSON;
+import java.io.IOException;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.StringJoiner;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+@JsonDeserialize(using = CantonCall.CantonCallDeserializer.class)
+@JsonSerialize(using = CantonCall.CantonCallSerializer.class)
+public class CantonCall extends AbstractOpenApiSchema {
+ private static final Logger log = Logger.getLogger(CantonCall.class.getName());
+
+ public static class CantonCallSerializer extends StdSerializer {
+ public CantonCallSerializer(Class t) {
+ super(t);
+ }
+
+ public CantonCallSerializer() {
+ this(null);
+ }
+
+ @Override
+ public void serialize(CantonCall value, JsonGenerator jgen, SerializerProvider provider)
+ throws IOException, JsonProcessingException {
+ jgen.writeObject(value.getActualInstance());
+ }
+ }
+
+ public static class CantonCallDeserializer extends StdDeserializer {
+ public CantonCallDeserializer() {
+ this(CantonCall.class);
+ }
+
+ public CantonCallDeserializer(Class> vc) {
+ super(vc);
+ }
+
+ @Override
+ public CantonCall deserialize(JsonParser jp, DeserializationContext ctxt)
+ throws IOException, JsonProcessingException {
+ JsonNode tree = jp.readValueAsTree();
+ Object deserialized = null;
+ boolean typeCoercion = ctxt.isEnabled(MapperFeature.ALLOW_COERCION_OF_SCALARS);
+ int match = 0;
+ JsonToken token = tree.traverse(jp.getCodec()).nextToken();
+ // deserialize CantonCallAllocationWithdraw
+ try {
+ boolean attemptParsing = true;
+ // ensure that we respect type coercion as set on the client ObjectMapper
+ if (CantonCallAllocationWithdraw.class.equals(Integer.class)
+ || CantonCallAllocationWithdraw.class.equals(Long.class)
+ || CantonCallAllocationWithdraw.class.equals(Float.class)
+ || CantonCallAllocationWithdraw.class.equals(Double.class)
+ || CantonCallAllocationWithdraw.class.equals(Boolean.class)
+ || CantonCallAllocationWithdraw.class.equals(String.class)) {
+ attemptParsing = typeCoercion;
+ if (!attemptParsing) {
+ attemptParsing |=
+ ((CantonCallAllocationWithdraw.class.equals(Integer.class)
+ || CantonCallAllocationWithdraw.class.equals(
+ Long.class))
+ && token == JsonToken.VALUE_NUMBER_INT);
+ attemptParsing |=
+ ((CantonCallAllocationWithdraw.class.equals(Float.class)
+ || CantonCallAllocationWithdraw.class.equals(
+ Double.class))
+ && token == JsonToken.VALUE_NUMBER_FLOAT);
+ attemptParsing |=
+ (CantonCallAllocationWithdraw.class.equals(Boolean.class)
+ && (token == JsonToken.VALUE_FALSE
+ || token == JsonToken.VALUE_TRUE));
+ attemptParsing |=
+ (CantonCallAllocationWithdraw.class.equals(String.class)
+ && token == JsonToken.VALUE_STRING);
+ }
+ }
+ if (attemptParsing) {
+ deserialized =
+ tree.traverse(jp.getCodec())
+ .readValueAs(CantonCallAllocationWithdraw.class);
+ // TODO: there is no validation against JSON schema constraints
+ // (min, max, enum, pattern...), this does not perform a strict JSON
+ // validation, which means the 'match' count may be higher than it should be.
+ match++;
+ log.log(
+ Level.FINER,
+ "Input data matches schema 'CantonCallAllocationWithdraw'");
+ }
+ } catch (Exception e) {
+ // deserialization failed, continue
+ log.log(
+ Level.FINER,
+ "Input data does not match schema 'CantonCallAllocationWithdraw'",
+ e);
+ }
+
+ // deserialize CantonCallAllowListAdd
+ try {
+ boolean attemptParsing = true;
+ // ensure that we respect type coercion as set on the client ObjectMapper
+ if (CantonCallAllowListAdd.class.equals(Integer.class)
+ || CantonCallAllowListAdd.class.equals(Long.class)
+ || CantonCallAllowListAdd.class.equals(Float.class)
+ || CantonCallAllowListAdd.class.equals(Double.class)
+ || CantonCallAllowListAdd.class.equals(Boolean.class)
+ || CantonCallAllowListAdd.class.equals(String.class)) {
+ attemptParsing = typeCoercion;
+ if (!attemptParsing) {
+ attemptParsing |=
+ ((CantonCallAllowListAdd.class.equals(Integer.class)
+ || CantonCallAllowListAdd.class.equals(Long.class))
+ && token == JsonToken.VALUE_NUMBER_INT);
+ attemptParsing |=
+ ((CantonCallAllowListAdd.class.equals(Float.class)
+ || CantonCallAllowListAdd.class.equals(
+ Double.class))
+ && token == JsonToken.VALUE_NUMBER_FLOAT);
+ attemptParsing |=
+ (CantonCallAllowListAdd.class.equals(Boolean.class)
+ && (token == JsonToken.VALUE_FALSE
+ || token == JsonToken.VALUE_TRUE));
+ attemptParsing |=
+ (CantonCallAllowListAdd.class.equals(String.class)
+ && token == JsonToken.VALUE_STRING);
+ }
+ }
+ if (attemptParsing) {
+ deserialized =
+ tree.traverse(jp.getCodec()).readValueAs(CantonCallAllowListAdd.class);
+ // TODO: there is no validation against JSON schema constraints
+ // (min, max, enum, pattern...), this does not perform a strict JSON
+ // validation, which means the 'match' count may be higher than it should be.
+ match++;
+ log.log(Level.FINER, "Input data matches schema 'CantonCallAllowListAdd'");
+ }
+ } catch (Exception e) {
+ // deserialization failed, continue
+ log.log(
+ Level.FINER,
+ "Input data does not match schema 'CantonCallAllowListAdd'",
+ e);
+ }
+
+ // deserialize CantonCallAllowListRemove
+ try {
+ boolean attemptParsing = true;
+ // ensure that we respect type coercion as set on the client ObjectMapper
+ if (CantonCallAllowListRemove.class.equals(Integer.class)
+ || CantonCallAllowListRemove.class.equals(Long.class)
+ || CantonCallAllowListRemove.class.equals(Float.class)
+ || CantonCallAllowListRemove.class.equals(Double.class)
+ || CantonCallAllowListRemove.class.equals(Boolean.class)
+ || CantonCallAllowListRemove.class.equals(String.class)) {
+ attemptParsing = typeCoercion;
+ if (!attemptParsing) {
+ attemptParsing |=
+ ((CantonCallAllowListRemove.class.equals(Integer.class)
+ || CantonCallAllowListRemove.class.equals(
+ Long.class))
+ && token == JsonToken.VALUE_NUMBER_INT);
+ attemptParsing |=
+ ((CantonCallAllowListRemove.class.equals(Float.class)
+ || CantonCallAllowListRemove.class.equals(
+ Double.class))
+ && token == JsonToken.VALUE_NUMBER_FLOAT);
+ attemptParsing |=
+ (CantonCallAllowListRemove.class.equals(Boolean.class)
+ && (token == JsonToken.VALUE_FALSE
+ || token == JsonToken.VALUE_TRUE));
+ attemptParsing |=
+ (CantonCallAllowListRemove.class.equals(String.class)
+ && token == JsonToken.VALUE_STRING);
+ }
+ }
+ if (attemptParsing) {
+ deserialized =
+ tree.traverse(jp.getCodec())
+ .readValueAs(CantonCallAllowListRemove.class);
+ // TODO: there is no validation against JSON schema constraints
+ // (min, max, enum, pattern...), this does not perform a strict JSON
+ // validation, which means the 'match' count may be higher than it should be.
+ match++;
+ log.log(Level.FINER, "Input data matches schema 'CantonCallAllowListRemove'");
+ }
+ } catch (Exception e) {
+ // deserialization failed, continue
+ log.log(
+ Level.FINER,
+ "Input data does not match schema 'CantonCallAllowListRemove'",
+ e);
+ }
+
+ // deserialize CantonCallEndInvestorInvite
+ try {
+ boolean attemptParsing = true;
+ // ensure that we respect type coercion as set on the client ObjectMapper
+ if (CantonCallEndInvestorInvite.class.equals(Integer.class)
+ || CantonCallEndInvestorInvite.class.equals(Long.class)
+ || CantonCallEndInvestorInvite.class.equals(Float.class)
+ || CantonCallEndInvestorInvite.class.equals(Double.class)
+ || CantonCallEndInvestorInvite.class.equals(Boolean.class)
+ || CantonCallEndInvestorInvite.class.equals(String.class)) {
+ attemptParsing = typeCoercion;
+ if (!attemptParsing) {
+ attemptParsing |=
+ ((CantonCallEndInvestorInvite.class.equals(Integer.class)
+ || CantonCallEndInvestorInvite.class.equals(
+ Long.class))
+ && token == JsonToken.VALUE_NUMBER_INT);
+ attemptParsing |=
+ ((CantonCallEndInvestorInvite.class.equals(Float.class)
+ || CantonCallEndInvestorInvite.class.equals(
+ Double.class))
+ && token == JsonToken.VALUE_NUMBER_FLOAT);
+ attemptParsing |=
+ (CantonCallEndInvestorInvite.class.equals(Boolean.class)
+ && (token == JsonToken.VALUE_FALSE
+ || token == JsonToken.VALUE_TRUE));
+ attemptParsing |=
+ (CantonCallEndInvestorInvite.class.equals(String.class)
+ && token == JsonToken.VALUE_STRING);
+ }
+ }
+ if (attemptParsing) {
+ deserialized =
+ tree.traverse(jp.getCodec())
+ .readValueAs(CantonCallEndInvestorInvite.class);
+ // TODO: there is no validation against JSON schema constraints
+ // (min, max, enum, pattern...), this does not perform a strict JSON
+ // validation, which means the 'match' count may be higher than it should be.
+ match++;
+ log.log(Level.FINER, "Input data matches schema 'CantonCallEndInvestorInvite'");
+ }
+ } catch (Exception e) {
+ // deserialization failed, continue
+ log.log(
+ Level.FINER,
+ "Input data does not match schema 'CantonCallEndInvestorInvite'",
+ e);
+ }
+
+ // deserialize CantonCallEndInvestorInviteCancel
+ try {
+ boolean attemptParsing = true;
+ // ensure that we respect type coercion as set on the client ObjectMapper
+ if (CantonCallEndInvestorInviteCancel.class.equals(Integer.class)
+ || CantonCallEndInvestorInviteCancel.class.equals(Long.class)
+ || CantonCallEndInvestorInviteCancel.class.equals(Float.class)
+ || CantonCallEndInvestorInviteCancel.class.equals(Double.class)
+ || CantonCallEndInvestorInviteCancel.class.equals(Boolean.class)
+ || CantonCallEndInvestorInviteCancel.class.equals(String.class)) {
+ attemptParsing = typeCoercion;
+ if (!attemptParsing) {
+ attemptParsing |=
+ ((CantonCallEndInvestorInviteCancel.class.equals(Integer.class)
+ || CantonCallEndInvestorInviteCancel.class.equals(
+ Long.class))
+ && token == JsonToken.VALUE_NUMBER_INT);
+ attemptParsing |=
+ ((CantonCallEndInvestorInviteCancel.class.equals(Float.class)
+ || CantonCallEndInvestorInviteCancel.class.equals(
+ Double.class))
+ && token == JsonToken.VALUE_NUMBER_FLOAT);
+ attemptParsing |=
+ (CantonCallEndInvestorInviteCancel.class.equals(Boolean.class)
+ && (token == JsonToken.VALUE_FALSE
+ || token == JsonToken.VALUE_TRUE));
+ attemptParsing |=
+ (CantonCallEndInvestorInviteCancel.class.equals(String.class)
+ && token == JsonToken.VALUE_STRING);
+ }
+ }
+ if (attemptParsing) {
+ deserialized =
+ tree.traverse(jp.getCodec())
+ .readValueAs(CantonCallEndInvestorInviteCancel.class);
+ // TODO: there is no validation against JSON schema constraints
+ // (min, max, enum, pattern...), this does not perform a strict JSON
+ // validation, which means the 'match' count may be higher than it should be.
+ match++;
+ log.log(
+ Level.FINER,
+ "Input data matches schema 'CantonCallEndInvestorInviteCancel'");
+ }
+ } catch (Exception e) {
+ // deserialization failed, continue
+ log.log(
+ Level.FINER,
+ "Input data does not match schema 'CantonCallEndInvestorInviteCancel'",
+ e);
+ }
+
+ // deserialize CantonCallEndInvestorOffboard
+ try {
+ boolean attemptParsing = true;
+ // ensure that we respect type coercion as set on the client ObjectMapper
+ if (CantonCallEndInvestorOffboard.class.equals(Integer.class)
+ || CantonCallEndInvestorOffboard.class.equals(Long.class)
+ || CantonCallEndInvestorOffboard.class.equals(Float.class)
+ || CantonCallEndInvestorOffboard.class.equals(Double.class)
+ || CantonCallEndInvestorOffboard.class.equals(Boolean.class)
+ || CantonCallEndInvestorOffboard.class.equals(String.class)) {
+ attemptParsing = typeCoercion;
+ if (!attemptParsing) {
+ attemptParsing |=
+ ((CantonCallEndInvestorOffboard.class.equals(Integer.class)
+ || CantonCallEndInvestorOffboard.class.equals(
+ Long.class))
+ && token == JsonToken.VALUE_NUMBER_INT);
+ attemptParsing |=
+ ((CantonCallEndInvestorOffboard.class.equals(Float.class)
+ || CantonCallEndInvestorOffboard.class.equals(
+ Double.class))
+ && token == JsonToken.VALUE_NUMBER_FLOAT);
+ attemptParsing |=
+ (CantonCallEndInvestorOffboard.class.equals(Boolean.class)
+ && (token == JsonToken.VALUE_FALSE
+ || token == JsonToken.VALUE_TRUE));
+ attemptParsing |=
+ (CantonCallEndInvestorOffboard.class.equals(String.class)
+ && token == JsonToken.VALUE_STRING);
+ }
+ }
+ if (attemptParsing) {
+ deserialized =
+ tree.traverse(jp.getCodec())
+ .readValueAs(CantonCallEndInvestorOffboard.class);
+ // TODO: there is no validation against JSON schema constraints
+ // (min, max, enum, pattern...), this does not perform a strict JSON
+ // validation, which means the 'match' count may be higher than it should be.
+ match++;
+ log.log(
+ Level.FINER,
+ "Input data matches schema 'CantonCallEndInvestorOffboard'");
+ }
+ } catch (Exception e) {
+ // deserialization failed, continue
+ log.log(
+ Level.FINER,
+ "Input data does not match schema 'CantonCallEndInvestorOffboard'",
+ e);
+ }
+
+ // deserialize CantonCallParticipantOnboarding
+ try {
+ boolean attemptParsing = true;
+ // ensure that we respect type coercion as set on the client ObjectMapper
+ if (CantonCallParticipantOnboarding.class.equals(Integer.class)
+ || CantonCallParticipantOnboarding.class.equals(Long.class)
+ || CantonCallParticipantOnboarding.class.equals(Float.class)
+ || CantonCallParticipantOnboarding.class.equals(Double.class)
+ || CantonCallParticipantOnboarding.class.equals(Boolean.class)
+ || CantonCallParticipantOnboarding.class.equals(String.class)) {
+ attemptParsing = typeCoercion;
+ if (!attemptParsing) {
+ attemptParsing |=
+ ((CantonCallParticipantOnboarding.class.equals(Integer.class)
+ || CantonCallParticipantOnboarding.class.equals(
+ Long.class))
+ && token == JsonToken.VALUE_NUMBER_INT);
+ attemptParsing |=
+ ((CantonCallParticipantOnboarding.class.equals(Float.class)
+ || CantonCallParticipantOnboarding.class.equals(
+ Double.class))
+ && token == JsonToken.VALUE_NUMBER_FLOAT);
+ attemptParsing |=
+ (CantonCallParticipantOnboarding.class.equals(Boolean.class)
+ && (token == JsonToken.VALUE_FALSE
+ || token == JsonToken.VALUE_TRUE));
+ attemptParsing |=
+ (CantonCallParticipantOnboarding.class.equals(String.class)
+ && token == JsonToken.VALUE_STRING);
+ }
+ }
+ if (attemptParsing) {
+ deserialized =
+ tree.traverse(jp.getCodec())
+ .readValueAs(CantonCallParticipantOnboarding.class);
+ // TODO: there is no validation against JSON schema constraints
+ // (min, max, enum, pattern...), this does not perform a strict JSON
+ // validation, which means the 'match' count may be higher than it should be.
+ match++;
+ log.log(
+ Level.FINER,
+ "Input data matches schema 'CantonCallParticipantOnboarding'");
+ }
+ } catch (Exception e) {
+ // deserialization failed, continue
+ log.log(
+ Level.FINER,
+ "Input data does not match schema 'CantonCallParticipantOnboarding'",
+ e);
+ }
+
+ // deserialize CantonCallTransferWithdraw
+ try {
+ boolean attemptParsing = true;
+ // ensure that we respect type coercion as set on the client ObjectMapper
+ if (CantonCallTransferWithdraw.class.equals(Integer.class)
+ || CantonCallTransferWithdraw.class.equals(Long.class)
+ || CantonCallTransferWithdraw.class.equals(Float.class)
+ || CantonCallTransferWithdraw.class.equals(Double.class)
+ || CantonCallTransferWithdraw.class.equals(Boolean.class)
+ || CantonCallTransferWithdraw.class.equals(String.class)) {
+ attemptParsing = typeCoercion;
+ if (!attemptParsing) {
+ attemptParsing |=
+ ((CantonCallTransferWithdraw.class.equals(Integer.class)
+ || CantonCallTransferWithdraw.class.equals(
+ Long.class))
+ && token == JsonToken.VALUE_NUMBER_INT);
+ attemptParsing |=
+ ((CantonCallTransferWithdraw.class.equals(Float.class)
+ || CantonCallTransferWithdraw.class.equals(
+ Double.class))
+ && token == JsonToken.VALUE_NUMBER_FLOAT);
+ attemptParsing |=
+ (CantonCallTransferWithdraw.class.equals(Boolean.class)
+ && (token == JsonToken.VALUE_FALSE
+ || token == JsonToken.VALUE_TRUE));
+ attemptParsing |=
+ (CantonCallTransferWithdraw.class.equals(String.class)
+ && token == JsonToken.VALUE_STRING);
+ }
+ }
+ if (attemptParsing) {
+ deserialized =
+ tree.traverse(jp.getCodec())
+ .readValueAs(CantonCallTransferWithdraw.class);
+ // TODO: there is no validation against JSON schema constraints
+ // (min, max, enum, pattern...), this does not perform a strict JSON
+ // validation, which means the 'match' count may be higher than it should be.
+ match++;
+ log.log(Level.FINER, "Input data matches schema 'CantonCallTransferWithdraw'");
+ }
+ } catch (Exception e) {
+ // deserialization failed, continue
+ log.log(
+ Level.FINER,
+ "Input data does not match schema 'CantonCallTransferWithdraw'",
+ e);
+ }
+
+ if (match == 1) {
+ CantonCall ret = new CantonCall();
+ ret.setActualInstance(deserialized);
+ return ret;
+ }
+ throw new IOException(
+ String.format(
+ "Failed deserialization for CantonCall: %d classes match result,"
+ + " expected 1",
+ match));
+ }
+
+ /** Handle deserialization of the 'null' value. */
+ @Override
+ public CantonCall getNullValue(DeserializationContext ctxt) throws JsonMappingException {
+ throw new JsonMappingException(ctxt.getParser(), "CantonCall cannot be null");
+ }
+ }
+
+ // store a list of schema names defined in oneOf
+ public static final Map> schemas = new HashMap<>();
+
+ public CantonCall() {
+ super("oneOf", Boolean.FALSE);
+ }
+
+ public CantonCall(CantonCallAllocationWithdraw o) {
+ super("oneOf", Boolean.FALSE);
+ setActualInstance(o);
+ }
+
+ public CantonCall(CantonCallAllowListAdd o) {
+ super("oneOf", Boolean.FALSE);
+ setActualInstance(o);
+ }
+
+ public CantonCall(CantonCallAllowListRemove o) {
+ super("oneOf", Boolean.FALSE);
+ setActualInstance(o);
+ }
+
+ public CantonCall(CantonCallEndInvestorInvite o) {
+ super("oneOf", Boolean.FALSE);
+ setActualInstance(o);
+ }
+
+ public CantonCall(CantonCallEndInvestorInviteCancel o) {
+ super("oneOf", Boolean.FALSE);
+ setActualInstance(o);
+ }
+
+ public CantonCall(CantonCallEndInvestorOffboard o) {
+ super("oneOf", Boolean.FALSE);
+ setActualInstance(o);
+ }
+
+ public CantonCall(CantonCallParticipantOnboarding o) {
+ super("oneOf", Boolean.FALSE);
+ setActualInstance(o);
+ }
+
+ public CantonCall(CantonCallTransferWithdraw o) {
+ super("oneOf", Boolean.FALSE);
+ setActualInstance(o);
+ }
+
+ static {
+ schemas.put("CantonCallAllocationWithdraw", CantonCallAllocationWithdraw.class);
+ schemas.put("CantonCallAllowListAdd", CantonCallAllowListAdd.class);
+ schemas.put("CantonCallAllowListRemove", CantonCallAllowListRemove.class);
+ schemas.put("CantonCallEndInvestorInvite", CantonCallEndInvestorInvite.class);
+ schemas.put("CantonCallEndInvestorInviteCancel", CantonCallEndInvestorInviteCancel.class);
+ schemas.put("CantonCallEndInvestorOffboard", CantonCallEndInvestorOffboard.class);
+ schemas.put("CantonCallParticipantOnboarding", CantonCallParticipantOnboarding.class);
+ schemas.put("CantonCallTransferWithdraw", CantonCallTransferWithdraw.class);
+ JSON.registerDescendants(CantonCall.class, Collections.unmodifiableMap(schemas));
+ // Initialize and register the discriminator mappings.
+ Map> mappings = new HashMap>();
+ mappings.put("ALLOCATION_WITHDRAW", CantonCallAllocationWithdraw.class);
+ mappings.put("DTCC_ALLOW_LIST_ADD", CantonCallAllowListAdd.class);
+ mappings.put("DTCC_ALLOW_LIST_REMOVE", CantonCallAllowListRemove.class);
+ mappings.put("DTCC_END_INVESTOR_INVITE", CantonCallEndInvestorInvite.class);
+ mappings.put("DTCC_END_INVESTOR_INVITE_CANCEL", CantonCallEndInvestorInviteCancel.class);
+ mappings.put("DTCC_END_INVESTOR_OFFBOARD", CantonCallEndInvestorOffboard.class);
+ mappings.put("DTCC_PARTICIPANT_ONBOARDING", CantonCallParticipantOnboarding.class);
+ mappings.put("TRANSFER_WITHDRAW", CantonCallTransferWithdraw.class);
+ mappings.put("CantonCallAllocationWithdraw", CantonCallAllocationWithdraw.class);
+ mappings.put("CantonCallAllowListAdd", CantonCallAllowListAdd.class);
+ mappings.put("CantonCallAllowListRemove", CantonCallAllowListRemove.class);
+ mappings.put("CantonCallEndInvestorInvite", CantonCallEndInvestorInvite.class);
+ mappings.put("CantonCallEndInvestorInviteCancel", CantonCallEndInvestorInviteCancel.class);
+ mappings.put("CantonCallEndInvestorOffboard", CantonCallEndInvestorOffboard.class);
+ mappings.put("CantonCallParticipantOnboarding", CantonCallParticipantOnboarding.class);
+ mappings.put("CantonCallTransferWithdraw", CantonCallTransferWithdraw.class);
+ mappings.put("CantonCall", CantonCall.class);
+ JSON.registerDiscriminator(CantonCall.class, "type", mappings);
+ }
+
+ @Override
+ public Map> getSchemas() {
+ return CantonCall.schemas;
+ }
+
+ /**
+ * Set the instance that matches the oneOf child schema, check the instance parameter is valid
+ * against the oneOf child schemas: CantonCallAllocationWithdraw, CantonCallAllowListAdd,
+ * CantonCallAllowListRemove, CantonCallEndInvestorInvite, CantonCallEndInvestorInviteCancel,
+ * CantonCallEndInvestorOffboard, CantonCallParticipantOnboarding, CantonCallTransferWithdraw
+ *
+ * It could be an instance of the 'oneOf' schemas. The oneOf child schemas may themselves be
+ * a composed schema (allOf, anyOf, oneOf).
+ */
+ @Override
+ public void setActualInstance(Object instance) {
+ if (JSON.isInstanceOf(
+ CantonCallAllocationWithdraw.class, instance, new HashSet>())) {
+ super.setActualInstance(instance);
+ return;
+ }
+
+ if (JSON.isInstanceOf(CantonCallAllowListAdd.class, instance, new HashSet>())) {
+ super.setActualInstance(instance);
+ return;
+ }
+
+ if (JSON.isInstanceOf(CantonCallAllowListRemove.class, instance, new HashSet>())) {
+ super.setActualInstance(instance);
+ return;
+ }
+
+ if (JSON.isInstanceOf(
+ CantonCallEndInvestorInvite.class, instance, new HashSet>())) {
+ super.setActualInstance(instance);
+ return;
+ }
+
+ if (JSON.isInstanceOf(
+ CantonCallEndInvestorInviteCancel.class, instance, new HashSet>())) {
+ super.setActualInstance(instance);
+ return;
+ }
+
+ if (JSON.isInstanceOf(
+ CantonCallEndInvestorOffboard.class, instance, new HashSet>())) {
+ super.setActualInstance(instance);
+ return;
+ }
+
+ if (JSON.isInstanceOf(
+ CantonCallParticipantOnboarding.class, instance, new HashSet>())) {
+ super.setActualInstance(instance);
+ return;
+ }
+
+ if (JSON.isInstanceOf(
+ CantonCallTransferWithdraw.class, instance, new HashSet>())) {
+ super.setActualInstance(instance);
+ return;
+ }
+
+ throw new RuntimeException(
+ "Invalid instance type. Must be CantonCallAllocationWithdraw,"
+ + " CantonCallAllowListAdd, CantonCallAllowListRemove,"
+ + " CantonCallEndInvestorInvite, CantonCallEndInvestorInviteCancel,"
+ + " CantonCallEndInvestorOffboard, CantonCallParticipantOnboarding,"
+ + " CantonCallTransferWithdraw");
+ }
+
+ /**
+ * Get the actual instance, which can be the following: CantonCallAllocationWithdraw,
+ * CantonCallAllowListAdd, CantonCallAllowListRemove, CantonCallEndInvestorInvite,
+ * CantonCallEndInvestorInviteCancel, CantonCallEndInvestorOffboard,
+ * CantonCallParticipantOnboarding, CantonCallTransferWithdraw
+ *
+ * @return The actual instance (CantonCallAllocationWithdraw, CantonCallAllowListAdd,
+ * CantonCallAllowListRemove, CantonCallEndInvestorInvite,
+ * CantonCallEndInvestorInviteCancel, CantonCallEndInvestorOffboard,
+ * CantonCallParticipantOnboarding, CantonCallTransferWithdraw)
+ */
+ @Override
+ public Object getActualInstance() {
+ return super.getActualInstance();
+ }
+
+ /**
+ * Get the actual instance of `CantonCallAllocationWithdraw`. If the actual instance is not
+ * `CantonCallAllocationWithdraw`, the ClassCastException will be thrown.
+ *
+ * @return The actual instance of `CantonCallAllocationWithdraw`
+ * @throws ClassCastException if the instance is not `CantonCallAllocationWithdraw`
+ */
+ public CantonCallAllocationWithdraw getCantonCallAllocationWithdraw()
+ throws ClassCastException {
+ return (CantonCallAllocationWithdraw) super.getActualInstance();
+ }
+
+ /**
+ * Get the actual instance of `CantonCallAllowListAdd`. If the actual instance is not
+ * `CantonCallAllowListAdd`, the ClassCastException will be thrown.
+ *
+ * @return The actual instance of `CantonCallAllowListAdd`
+ * @throws ClassCastException if the instance is not `CantonCallAllowListAdd`
+ */
+ public CantonCallAllowListAdd getCantonCallAllowListAdd() throws ClassCastException {
+ return (CantonCallAllowListAdd) super.getActualInstance();
+ }
+
+ /**
+ * Get the actual instance of `CantonCallAllowListRemove`. If the actual instance is not
+ * `CantonCallAllowListRemove`, the ClassCastException will be thrown.
+ *
+ * @return The actual instance of `CantonCallAllowListRemove`
+ * @throws ClassCastException if the instance is not `CantonCallAllowListRemove`
+ */
+ public CantonCallAllowListRemove getCantonCallAllowListRemove() throws ClassCastException {
+ return (CantonCallAllowListRemove) super.getActualInstance();
+ }
+
+ /**
+ * Get the actual instance of `CantonCallEndInvestorInvite`. If the actual instance is not
+ * `CantonCallEndInvestorInvite`, the ClassCastException will be thrown.
+ *
+ * @return The actual instance of `CantonCallEndInvestorInvite`
+ * @throws ClassCastException if the instance is not `CantonCallEndInvestorInvite`
+ */
+ public CantonCallEndInvestorInvite getCantonCallEndInvestorInvite() throws ClassCastException {
+ return (CantonCallEndInvestorInvite) super.getActualInstance();
+ }
+
+ /**
+ * Get the actual instance of `CantonCallEndInvestorInviteCancel`. If the actual instance is not
+ * `CantonCallEndInvestorInviteCancel`, the ClassCastException will be thrown.
+ *
+ * @return The actual instance of `CantonCallEndInvestorInviteCancel`
+ * @throws ClassCastException if the instance is not `CantonCallEndInvestorInviteCancel`
+ */
+ public CantonCallEndInvestorInviteCancel getCantonCallEndInvestorInviteCancel()
+ throws ClassCastException {
+ return (CantonCallEndInvestorInviteCancel) super.getActualInstance();
+ }
+
+ /**
+ * Get the actual instance of `CantonCallEndInvestorOffboard`. If the actual instance is not
+ * `CantonCallEndInvestorOffboard`, the ClassCastException will be thrown.
+ *
+ * @return The actual instance of `CantonCallEndInvestorOffboard`
+ * @throws ClassCastException if the instance is not `CantonCallEndInvestorOffboard`
+ */
+ public CantonCallEndInvestorOffboard getCantonCallEndInvestorOffboard()
+ throws ClassCastException {
+ return (CantonCallEndInvestorOffboard) super.getActualInstance();
+ }
+
+ /**
+ * Get the actual instance of `CantonCallParticipantOnboarding`. If the actual instance is not
+ * `CantonCallParticipantOnboarding`, the ClassCastException will be thrown.
+ *
+ * @return The actual instance of `CantonCallParticipantOnboarding`
+ * @throws ClassCastException if the instance is not `CantonCallParticipantOnboarding`
+ */
+ public CantonCallParticipantOnboarding getCantonCallParticipantOnboarding()
+ throws ClassCastException {
+ return (CantonCallParticipantOnboarding) super.getActualInstance();
+ }
+
+ /**
+ * Get the actual instance of `CantonCallTransferWithdraw`. If the actual instance is not
+ * `CantonCallTransferWithdraw`, the ClassCastException will be thrown.
+ *
+ * @return The actual instance of `CantonCallTransferWithdraw`
+ * @throws ClassCastException if the instance is not `CantonCallTransferWithdraw`
+ */
+ public CantonCallTransferWithdraw getCantonCallTransferWithdraw() throws ClassCastException {
+ return (CantonCallTransferWithdraw) super.getActualInstance();
+ }
+
+ /**
+ * 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("&");
+
+ if (getActualInstance() instanceof CantonCallParticipantOnboarding) {
+ if (getActualInstance() != null) {
+ joiner.add(
+ ((CantonCallParticipantOnboarding) getActualInstance())
+ .toUrlQueryString(prefix + "one_of_0" + suffix));
+ }
+ return joiner.toString();
+ }
+ if (getActualInstance() instanceof CantonCallEndInvestorInvite) {
+ if (getActualInstance() != null) {
+ joiner.add(
+ ((CantonCallEndInvestorInvite) getActualInstance())
+ .toUrlQueryString(prefix + "one_of_1" + suffix));
+ }
+ return joiner.toString();
+ }
+ if (getActualInstance() instanceof CantonCallEndInvestorInviteCancel) {
+ if (getActualInstance() != null) {
+ joiner.add(
+ ((CantonCallEndInvestorInviteCancel) getActualInstance())
+ .toUrlQueryString(prefix + "one_of_2" + suffix));
+ }
+ return joiner.toString();
+ }
+ if (getActualInstance() instanceof CantonCallEndInvestorOffboard) {
+ if (getActualInstance() != null) {
+ joiner.add(
+ ((CantonCallEndInvestorOffboard) getActualInstance())
+ .toUrlQueryString(prefix + "one_of_3" + suffix));
+ }
+ return joiner.toString();
+ }
+ if (getActualInstance() instanceof CantonCallAllowListAdd) {
+ if (getActualInstance() != null) {
+ joiner.add(
+ ((CantonCallAllowListAdd) getActualInstance())
+ .toUrlQueryString(prefix + "one_of_4" + suffix));
+ }
+ return joiner.toString();
+ }
+ if (getActualInstance() instanceof CantonCallAllowListRemove) {
+ if (getActualInstance() != null) {
+ joiner.add(
+ ((CantonCallAllowListRemove) getActualInstance())
+ .toUrlQueryString(prefix + "one_of_5" + suffix));
+ }
+ return joiner.toString();
+ }
+ if (getActualInstance() instanceof CantonCallAllocationWithdraw) {
+ if (getActualInstance() != null) {
+ joiner.add(
+ ((CantonCallAllocationWithdraw) getActualInstance())
+ .toUrlQueryString(prefix + "one_of_6" + suffix));
+ }
+ return joiner.toString();
+ }
+ if (getActualInstance() instanceof CantonCallTransferWithdraw) {
+ if (getActualInstance() != null) {
+ joiner.add(
+ ((CantonCallTransferWithdraw) getActualInstance())
+ .toUrlQueryString(prefix + "one_of_7" + suffix));
+ }
+ return joiner.toString();
+ }
+ return null;
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/CantonCallAllocationWithdraw.java b/src/main/java/com/fireblocks/sdk/model/CantonCallAllocationWithdraw.java
new file mode 100644
index 00000000..00843d00
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/CantonCallAllocationWithdraw.java
@@ -0,0 +1,219 @@
+/*
+ * 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;
+
+/** CantonCallAllocationWithdraw */
+@JsonPropertyOrder({
+ CantonCallAllocationWithdraw.JSON_PROPERTY_TYPE,
+ CantonCallAllocationWithdraw.JSON_PROPERTY_PAYLOAD
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class CantonCallAllocationWithdraw {
+ /** Which call to make. Selects the shape of `payload`. */
+ public enum TypeEnum {
+ ALLOCATION_WITHDRAW(String.valueOf("ALLOCATION_WITHDRAW"));
+
+ private String value;
+
+ TypeEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static TypeEnum fromValue(String value) {
+ for (TypeEnum b : TypeEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ @jakarta.annotation.Nonnull private TypeEnum type;
+
+ public static final String JSON_PROPERTY_PAYLOAD = "payload";
+ @jakarta.annotation.Nonnull private AllocationWithdrawPayload payload;
+
+ public CantonCallAllocationWithdraw() {}
+
+ @JsonCreator
+ public CantonCallAllocationWithdraw(
+ @JsonProperty(value = JSON_PROPERTY_TYPE, required = true) TypeEnum type,
+ @JsonProperty(value = JSON_PROPERTY_PAYLOAD, required = true)
+ AllocationWithdrawPayload payload) {
+ this.type = type;
+ this.payload = payload;
+ }
+
+ public CantonCallAllocationWithdraw type(@jakarta.annotation.Nonnull TypeEnum type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Which call to make. Selects the shape of `payload`.
+ *
+ * @return type
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public TypeEnum getType() {
+ return type;
+ }
+
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setType(@jakarta.annotation.Nonnull TypeEnum type) {
+ this.type = type;
+ }
+
+ public CantonCallAllocationWithdraw payload(
+ @jakarta.annotation.Nonnull AllocationWithdrawPayload payload) {
+ this.payload = payload;
+ return this;
+ }
+
+ /**
+ * Get payload
+ *
+ * @return payload
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_PAYLOAD)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public AllocationWithdrawPayload getPayload() {
+ return payload;
+ }
+
+ @JsonProperty(JSON_PROPERTY_PAYLOAD)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setPayload(@jakarta.annotation.Nonnull AllocationWithdrawPayload payload) {
+ this.payload = payload;
+ }
+
+ /** Return true if this CantonCallAllocationWithdraw object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ CantonCallAllocationWithdraw cantonCallAllocationWithdraw =
+ (CantonCallAllocationWithdraw) o;
+ return Objects.equals(this.type, cantonCallAllocationWithdraw.type)
+ && Objects.equals(this.payload, cantonCallAllocationWithdraw.payload);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(type, payload);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class CantonCallAllocationWithdraw {\n");
+ sb.append(" type: ").append(toIndentedString(type)).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 `type` to the URL query string
+ if (getType() != null) {
+ joiner.add(
+ String.format(
+ "%stype%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getType()))));
+ }
+
+ // add `payload` to the URL query string
+ if (getPayload() != null) {
+ joiner.add(getPayload().toUrlQueryString(prefix + "payload" + suffix));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/CantonCallAllowListAdd.java b/src/main/java/com/fireblocks/sdk/model/CantonCallAllowListAdd.java
new file mode 100644
index 00000000..5e5469f5
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/CantonCallAllowListAdd.java
@@ -0,0 +1,217 @@
+/*
+ * 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;
+
+/** CantonCallAllowListAdd */
+@JsonPropertyOrder({
+ CantonCallAllowListAdd.JSON_PROPERTY_TYPE,
+ CantonCallAllowListAdd.JSON_PROPERTY_PAYLOAD
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class CantonCallAllowListAdd {
+ /** Which call to make. Selects the shape of `payload`. */
+ public enum TypeEnum {
+ DTCC_ALLOW_LIST_ADD(String.valueOf("DTCC_ALLOW_LIST_ADD"));
+
+ private String value;
+
+ TypeEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static TypeEnum fromValue(String value) {
+ for (TypeEnum b : TypeEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ @jakarta.annotation.Nonnull private TypeEnum type;
+
+ public static final String JSON_PROPERTY_PAYLOAD = "payload";
+ @jakarta.annotation.Nonnull private AllowListPayload payload;
+
+ public CantonCallAllowListAdd() {}
+
+ @JsonCreator
+ public CantonCallAllowListAdd(
+ @JsonProperty(value = JSON_PROPERTY_TYPE, required = true) TypeEnum type,
+ @JsonProperty(value = JSON_PROPERTY_PAYLOAD, required = true)
+ AllowListPayload payload) {
+ this.type = type;
+ this.payload = payload;
+ }
+
+ public CantonCallAllowListAdd type(@jakarta.annotation.Nonnull TypeEnum type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Which call to make. Selects the shape of `payload`.
+ *
+ * @return type
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public TypeEnum getType() {
+ return type;
+ }
+
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setType(@jakarta.annotation.Nonnull TypeEnum type) {
+ this.type = type;
+ }
+
+ public CantonCallAllowListAdd payload(@jakarta.annotation.Nonnull AllowListPayload payload) {
+ this.payload = payload;
+ return this;
+ }
+
+ /**
+ * Get payload
+ *
+ * @return payload
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_PAYLOAD)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public AllowListPayload getPayload() {
+ return payload;
+ }
+
+ @JsonProperty(JSON_PROPERTY_PAYLOAD)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setPayload(@jakarta.annotation.Nonnull AllowListPayload payload) {
+ this.payload = payload;
+ }
+
+ /** Return true if this CantonCallAllowListAdd object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ CantonCallAllowListAdd cantonCallAllowListAdd = (CantonCallAllowListAdd) o;
+ return Objects.equals(this.type, cantonCallAllowListAdd.type)
+ && Objects.equals(this.payload, cantonCallAllowListAdd.payload);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(type, payload);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class CantonCallAllowListAdd {\n");
+ sb.append(" type: ").append(toIndentedString(type)).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 `type` to the URL query string
+ if (getType() != null) {
+ joiner.add(
+ String.format(
+ "%stype%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getType()))));
+ }
+
+ // add `payload` to the URL query string
+ if (getPayload() != null) {
+ joiner.add(getPayload().toUrlQueryString(prefix + "payload" + suffix));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/CantonCallAllowListRemove.java b/src/main/java/com/fireblocks/sdk/model/CantonCallAllowListRemove.java
new file mode 100644
index 00000000..05c4a9c9
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/CantonCallAllowListRemove.java
@@ -0,0 +1,217 @@
+/*
+ * 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;
+
+/** CantonCallAllowListRemove */
+@JsonPropertyOrder({
+ CantonCallAllowListRemove.JSON_PROPERTY_TYPE,
+ CantonCallAllowListRemove.JSON_PROPERTY_PAYLOAD
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class CantonCallAllowListRemove {
+ /** Which call to make. Selects the shape of `payload`. */
+ public enum TypeEnum {
+ DTCC_ALLOW_LIST_REMOVE(String.valueOf("DTCC_ALLOW_LIST_REMOVE"));
+
+ private String value;
+
+ TypeEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static TypeEnum fromValue(String value) {
+ for (TypeEnum b : TypeEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ @jakarta.annotation.Nonnull private TypeEnum type;
+
+ public static final String JSON_PROPERTY_PAYLOAD = "payload";
+ @jakarta.annotation.Nonnull private AllowListPayload payload;
+
+ public CantonCallAllowListRemove() {}
+
+ @JsonCreator
+ public CantonCallAllowListRemove(
+ @JsonProperty(value = JSON_PROPERTY_TYPE, required = true) TypeEnum type,
+ @JsonProperty(value = JSON_PROPERTY_PAYLOAD, required = true)
+ AllowListPayload payload) {
+ this.type = type;
+ this.payload = payload;
+ }
+
+ public CantonCallAllowListRemove type(@jakarta.annotation.Nonnull TypeEnum type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Which call to make. Selects the shape of `payload`.
+ *
+ * @return type
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public TypeEnum getType() {
+ return type;
+ }
+
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setType(@jakarta.annotation.Nonnull TypeEnum type) {
+ this.type = type;
+ }
+
+ public CantonCallAllowListRemove payload(@jakarta.annotation.Nonnull AllowListPayload payload) {
+ this.payload = payload;
+ return this;
+ }
+
+ /**
+ * Get payload
+ *
+ * @return payload
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_PAYLOAD)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public AllowListPayload getPayload() {
+ return payload;
+ }
+
+ @JsonProperty(JSON_PROPERTY_PAYLOAD)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setPayload(@jakarta.annotation.Nonnull AllowListPayload payload) {
+ this.payload = payload;
+ }
+
+ /** Return true if this CantonCallAllowListRemove object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ CantonCallAllowListRemove cantonCallAllowListRemove = (CantonCallAllowListRemove) o;
+ return Objects.equals(this.type, cantonCallAllowListRemove.type)
+ && Objects.equals(this.payload, cantonCallAllowListRemove.payload);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(type, payload);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class CantonCallAllowListRemove {\n");
+ sb.append(" type: ").append(toIndentedString(type)).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 `type` to the URL query string
+ if (getType() != null) {
+ joiner.add(
+ String.format(
+ "%stype%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getType()))));
+ }
+
+ // add `payload` to the URL query string
+ if (getPayload() != null) {
+ joiner.add(getPayload().toUrlQueryString(prefix + "payload" + suffix));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/CantonCallEndInvestorInvite.java b/src/main/java/com/fireblocks/sdk/model/CantonCallEndInvestorInvite.java
new file mode 100644
index 00000000..6d4a26d8
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/CantonCallEndInvestorInvite.java
@@ -0,0 +1,218 @@
+/*
+ * 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;
+
+/** CantonCallEndInvestorInvite */
+@JsonPropertyOrder({
+ CantonCallEndInvestorInvite.JSON_PROPERTY_TYPE,
+ CantonCallEndInvestorInvite.JSON_PROPERTY_PAYLOAD
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class CantonCallEndInvestorInvite {
+ /** Which call to make. Selects the shape of `payload`. */
+ public enum TypeEnum {
+ DTCC_END_INVESTOR_INVITE(String.valueOf("DTCC_END_INVESTOR_INVITE"));
+
+ private String value;
+
+ TypeEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static TypeEnum fromValue(String value) {
+ for (TypeEnum b : TypeEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ @jakarta.annotation.Nonnull private TypeEnum type;
+
+ public static final String JSON_PROPERTY_PAYLOAD = "payload";
+ @jakarta.annotation.Nonnull private EndInvestorPayload payload;
+
+ public CantonCallEndInvestorInvite() {}
+
+ @JsonCreator
+ public CantonCallEndInvestorInvite(
+ @JsonProperty(value = JSON_PROPERTY_TYPE, required = true) TypeEnum type,
+ @JsonProperty(value = JSON_PROPERTY_PAYLOAD, required = true)
+ EndInvestorPayload payload) {
+ this.type = type;
+ this.payload = payload;
+ }
+
+ public CantonCallEndInvestorInvite type(@jakarta.annotation.Nonnull TypeEnum type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Which call to make. Selects the shape of `payload`.
+ *
+ * @return type
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public TypeEnum getType() {
+ return type;
+ }
+
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setType(@jakarta.annotation.Nonnull TypeEnum type) {
+ this.type = type;
+ }
+
+ public CantonCallEndInvestorInvite payload(
+ @jakarta.annotation.Nonnull EndInvestorPayload payload) {
+ this.payload = payload;
+ return this;
+ }
+
+ /**
+ * Get payload
+ *
+ * @return payload
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_PAYLOAD)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public EndInvestorPayload getPayload() {
+ return payload;
+ }
+
+ @JsonProperty(JSON_PROPERTY_PAYLOAD)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setPayload(@jakarta.annotation.Nonnull EndInvestorPayload payload) {
+ this.payload = payload;
+ }
+
+ /** Return true if this CantonCallEndInvestorInvite object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ CantonCallEndInvestorInvite cantonCallEndInvestorInvite = (CantonCallEndInvestorInvite) o;
+ return Objects.equals(this.type, cantonCallEndInvestorInvite.type)
+ && Objects.equals(this.payload, cantonCallEndInvestorInvite.payload);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(type, payload);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class CantonCallEndInvestorInvite {\n");
+ sb.append(" type: ").append(toIndentedString(type)).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 `type` to the URL query string
+ if (getType() != null) {
+ joiner.add(
+ String.format(
+ "%stype%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getType()))));
+ }
+
+ // add `payload` to the URL query string
+ if (getPayload() != null) {
+ joiner.add(getPayload().toUrlQueryString(prefix + "payload" + suffix));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/CantonCallEndInvestorInviteCancel.java b/src/main/java/com/fireblocks/sdk/model/CantonCallEndInvestorInviteCancel.java
new file mode 100644
index 00000000..9d5c9557
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/CantonCallEndInvestorInviteCancel.java
@@ -0,0 +1,219 @@
+/*
+ * 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;
+
+/** CantonCallEndInvestorInviteCancel */
+@JsonPropertyOrder({
+ CantonCallEndInvestorInviteCancel.JSON_PROPERTY_TYPE,
+ CantonCallEndInvestorInviteCancel.JSON_PROPERTY_PAYLOAD
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class CantonCallEndInvestorInviteCancel {
+ /** Which call to make. Selects the shape of `payload`. */
+ public enum TypeEnum {
+ DTCC_END_INVESTOR_INVITE_CANCEL(String.valueOf("DTCC_END_INVESTOR_INVITE_CANCEL"));
+
+ private String value;
+
+ TypeEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static TypeEnum fromValue(String value) {
+ for (TypeEnum b : TypeEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ @jakarta.annotation.Nonnull private TypeEnum type;
+
+ public static final String JSON_PROPERTY_PAYLOAD = "payload";
+ @jakarta.annotation.Nonnull private EndInvestorPayload payload;
+
+ public CantonCallEndInvestorInviteCancel() {}
+
+ @JsonCreator
+ public CantonCallEndInvestorInviteCancel(
+ @JsonProperty(value = JSON_PROPERTY_TYPE, required = true) TypeEnum type,
+ @JsonProperty(value = JSON_PROPERTY_PAYLOAD, required = true)
+ EndInvestorPayload payload) {
+ this.type = type;
+ this.payload = payload;
+ }
+
+ public CantonCallEndInvestorInviteCancel type(@jakarta.annotation.Nonnull TypeEnum type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Which call to make. Selects the shape of `payload`.
+ *
+ * @return type
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public TypeEnum getType() {
+ return type;
+ }
+
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setType(@jakarta.annotation.Nonnull TypeEnum type) {
+ this.type = type;
+ }
+
+ public CantonCallEndInvestorInviteCancel payload(
+ @jakarta.annotation.Nonnull EndInvestorPayload payload) {
+ this.payload = payload;
+ return this;
+ }
+
+ /**
+ * Get payload
+ *
+ * @return payload
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_PAYLOAD)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public EndInvestorPayload getPayload() {
+ return payload;
+ }
+
+ @JsonProperty(JSON_PROPERTY_PAYLOAD)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setPayload(@jakarta.annotation.Nonnull EndInvestorPayload payload) {
+ this.payload = payload;
+ }
+
+ /** Return true if this CantonCallEndInvestorInviteCancel object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ CantonCallEndInvestorInviteCancel cantonCallEndInvestorInviteCancel =
+ (CantonCallEndInvestorInviteCancel) o;
+ return Objects.equals(this.type, cantonCallEndInvestorInviteCancel.type)
+ && Objects.equals(this.payload, cantonCallEndInvestorInviteCancel.payload);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(type, payload);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class CantonCallEndInvestorInviteCancel {\n");
+ sb.append(" type: ").append(toIndentedString(type)).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 `type` to the URL query string
+ if (getType() != null) {
+ joiner.add(
+ String.format(
+ "%stype%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getType()))));
+ }
+
+ // add `payload` to the URL query string
+ if (getPayload() != null) {
+ joiner.add(getPayload().toUrlQueryString(prefix + "payload" + suffix));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/CantonCallEndInvestorOffboard.java b/src/main/java/com/fireblocks/sdk/model/CantonCallEndInvestorOffboard.java
new file mode 100644
index 00000000..6f7b887b
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/CantonCallEndInvestorOffboard.java
@@ -0,0 +1,219 @@
+/*
+ * 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;
+
+/** CantonCallEndInvestorOffboard */
+@JsonPropertyOrder({
+ CantonCallEndInvestorOffboard.JSON_PROPERTY_TYPE,
+ CantonCallEndInvestorOffboard.JSON_PROPERTY_PAYLOAD
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class CantonCallEndInvestorOffboard {
+ /** Which call to make. Selects the shape of `payload`. */
+ public enum TypeEnum {
+ DTCC_END_INVESTOR_OFFBOARD(String.valueOf("DTCC_END_INVESTOR_OFFBOARD"));
+
+ private String value;
+
+ TypeEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static TypeEnum fromValue(String value) {
+ for (TypeEnum b : TypeEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ @jakarta.annotation.Nonnull private TypeEnum type;
+
+ public static final String JSON_PROPERTY_PAYLOAD = "payload";
+ @jakarta.annotation.Nonnull private EndInvestorPayload payload;
+
+ public CantonCallEndInvestorOffboard() {}
+
+ @JsonCreator
+ public CantonCallEndInvestorOffboard(
+ @JsonProperty(value = JSON_PROPERTY_TYPE, required = true) TypeEnum type,
+ @JsonProperty(value = JSON_PROPERTY_PAYLOAD, required = true)
+ EndInvestorPayload payload) {
+ this.type = type;
+ this.payload = payload;
+ }
+
+ public CantonCallEndInvestorOffboard type(@jakarta.annotation.Nonnull TypeEnum type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Which call to make. Selects the shape of `payload`.
+ *
+ * @return type
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public TypeEnum getType() {
+ return type;
+ }
+
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setType(@jakarta.annotation.Nonnull TypeEnum type) {
+ this.type = type;
+ }
+
+ public CantonCallEndInvestorOffboard payload(
+ @jakarta.annotation.Nonnull EndInvestorPayload payload) {
+ this.payload = payload;
+ return this;
+ }
+
+ /**
+ * Get payload
+ *
+ * @return payload
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_PAYLOAD)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public EndInvestorPayload getPayload() {
+ return payload;
+ }
+
+ @JsonProperty(JSON_PROPERTY_PAYLOAD)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setPayload(@jakarta.annotation.Nonnull EndInvestorPayload payload) {
+ this.payload = payload;
+ }
+
+ /** Return true if this CantonCallEndInvestorOffboard object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ CantonCallEndInvestorOffboard cantonCallEndInvestorOffboard =
+ (CantonCallEndInvestorOffboard) o;
+ return Objects.equals(this.type, cantonCallEndInvestorOffboard.type)
+ && Objects.equals(this.payload, cantonCallEndInvestorOffboard.payload);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(type, payload);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class CantonCallEndInvestorOffboard {\n");
+ sb.append(" type: ").append(toIndentedString(type)).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 `type` to the URL query string
+ if (getType() != null) {
+ joiner.add(
+ String.format(
+ "%stype%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getType()))));
+ }
+
+ // add `payload` to the URL query string
+ if (getPayload() != null) {
+ joiner.add(getPayload().toUrlQueryString(prefix + "payload" + suffix));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/CantonCallParticipantOnboarding.java b/src/main/java/com/fireblocks/sdk/model/CantonCallParticipantOnboarding.java
new file mode 100644
index 00000000..eebd0bbd
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/CantonCallParticipantOnboarding.java
@@ -0,0 +1,219 @@
+/*
+ * 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;
+
+/** CantonCallParticipantOnboarding */
+@JsonPropertyOrder({
+ CantonCallParticipantOnboarding.JSON_PROPERTY_TYPE,
+ CantonCallParticipantOnboarding.JSON_PROPERTY_PAYLOAD
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class CantonCallParticipantOnboarding {
+ /** Which call to make. Selects the shape of `payload`. */
+ public enum TypeEnum {
+ DTCC_PARTICIPANT_ONBOARDING(String.valueOf("DTCC_PARTICIPANT_ONBOARDING"));
+
+ private String value;
+
+ TypeEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static TypeEnum fromValue(String value) {
+ for (TypeEnum b : TypeEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ @jakarta.annotation.Nonnull private TypeEnum type;
+
+ public static final String JSON_PROPERTY_PAYLOAD = "payload";
+ @jakarta.annotation.Nonnull private ParticipantOnboardingPayload payload;
+
+ public CantonCallParticipantOnboarding() {}
+
+ @JsonCreator
+ public CantonCallParticipantOnboarding(
+ @JsonProperty(value = JSON_PROPERTY_TYPE, required = true) TypeEnum type,
+ @JsonProperty(value = JSON_PROPERTY_PAYLOAD, required = true)
+ ParticipantOnboardingPayload payload) {
+ this.type = type;
+ this.payload = payload;
+ }
+
+ public CantonCallParticipantOnboarding type(@jakarta.annotation.Nonnull TypeEnum type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Which call to make. Selects the shape of `payload`.
+ *
+ * @return type
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public TypeEnum getType() {
+ return type;
+ }
+
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setType(@jakarta.annotation.Nonnull TypeEnum type) {
+ this.type = type;
+ }
+
+ public CantonCallParticipantOnboarding payload(
+ @jakarta.annotation.Nonnull ParticipantOnboardingPayload payload) {
+ this.payload = payload;
+ return this;
+ }
+
+ /**
+ * Get payload
+ *
+ * @return payload
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_PAYLOAD)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public ParticipantOnboardingPayload getPayload() {
+ return payload;
+ }
+
+ @JsonProperty(JSON_PROPERTY_PAYLOAD)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setPayload(@jakarta.annotation.Nonnull ParticipantOnboardingPayload payload) {
+ this.payload = payload;
+ }
+
+ /** Return true if this CantonCallParticipantOnboarding object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ CantonCallParticipantOnboarding cantonCallParticipantOnboarding =
+ (CantonCallParticipantOnboarding) o;
+ return Objects.equals(this.type, cantonCallParticipantOnboarding.type)
+ && Objects.equals(this.payload, cantonCallParticipantOnboarding.payload);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(type, payload);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class CantonCallParticipantOnboarding {\n");
+ sb.append(" type: ").append(toIndentedString(type)).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 `type` to the URL query string
+ if (getType() != null) {
+ joiner.add(
+ String.format(
+ "%stype%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getType()))));
+ }
+
+ // add `payload` to the URL query string
+ if (getPayload() != null) {
+ joiner.add(getPayload().toUrlQueryString(prefix + "payload" + suffix));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/CantonCallTransferWithdraw.java b/src/main/java/com/fireblocks/sdk/model/CantonCallTransferWithdraw.java
new file mode 100644
index 00000000..c305a1a8
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/CantonCallTransferWithdraw.java
@@ -0,0 +1,218 @@
+/*
+ * 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;
+
+/** CantonCallTransferWithdraw */
+@JsonPropertyOrder({
+ CantonCallTransferWithdraw.JSON_PROPERTY_TYPE,
+ CantonCallTransferWithdraw.JSON_PROPERTY_PAYLOAD
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class CantonCallTransferWithdraw {
+ /** Which call to make. Selects the shape of `payload`. */
+ public enum TypeEnum {
+ TRANSFER_WITHDRAW(String.valueOf("TRANSFER_WITHDRAW"));
+
+ private String value;
+
+ TypeEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static TypeEnum fromValue(String value) {
+ for (TypeEnum b : TypeEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ @jakarta.annotation.Nonnull private TypeEnum type;
+
+ public static final String JSON_PROPERTY_PAYLOAD = "payload";
+ @jakarta.annotation.Nonnull private TransferWithdrawPayload payload;
+
+ public CantonCallTransferWithdraw() {}
+
+ @JsonCreator
+ public CantonCallTransferWithdraw(
+ @JsonProperty(value = JSON_PROPERTY_TYPE, required = true) TypeEnum type,
+ @JsonProperty(value = JSON_PROPERTY_PAYLOAD, required = true)
+ TransferWithdrawPayload payload) {
+ this.type = type;
+ this.payload = payload;
+ }
+
+ public CantonCallTransferWithdraw type(@jakarta.annotation.Nonnull TypeEnum type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Which call to make. Selects the shape of `payload`.
+ *
+ * @return type
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public TypeEnum getType() {
+ return type;
+ }
+
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setType(@jakarta.annotation.Nonnull TypeEnum type) {
+ this.type = type;
+ }
+
+ public CantonCallTransferWithdraw payload(
+ @jakarta.annotation.Nonnull TransferWithdrawPayload payload) {
+ this.payload = payload;
+ return this;
+ }
+
+ /**
+ * Get payload
+ *
+ * @return payload
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_PAYLOAD)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public TransferWithdrawPayload getPayload() {
+ return payload;
+ }
+
+ @JsonProperty(JSON_PROPERTY_PAYLOAD)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setPayload(@jakarta.annotation.Nonnull TransferWithdrawPayload payload) {
+ this.payload = payload;
+ }
+
+ /** Return true if this CantonCallTransferWithdraw object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ CantonCallTransferWithdraw cantonCallTransferWithdraw = (CantonCallTransferWithdraw) o;
+ return Objects.equals(this.type, cantonCallTransferWithdraw.type)
+ && Objects.equals(this.payload, cantonCallTransferWithdraw.payload);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(type, payload);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class CantonCallTransferWithdraw {\n");
+ sb.append(" type: ").append(toIndentedString(type)).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 `type` to the URL query string
+ if (getType() != null) {
+ joiner.add(
+ String.format(
+ "%stype%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getType()))));
+ }
+
+ // add `payload` to the URL query string
+ if (getPayload() != null) {
+ joiner.add(getPayload().toUrlQueryString(prefix + "payload" + suffix));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/CreateWebhookOAuthRequest.java b/src/main/java/com/fireblocks/sdk/model/CreateWebhookOAuthRequest.java
new file mode 100644
index 00000000..c24ae20b
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/CreateWebhookOAuthRequest.java
@@ -0,0 +1,571 @@
+/*
+ * 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;
+
+/**
+ * A new reusable OAuth 2.0 client credential set. Attach it to a webhook by passing the returned id
+ * as that webhook's `webhookOauthId`. Several webhooks may share one credential set,
+ * so rotating its client secret covers all of them at once.
+ */
+@JsonPropertyOrder({
+ CreateWebhookOAuthRequest.JSON_PROPERTY_NAME,
+ CreateWebhookOAuthRequest.JSON_PROPERTY_CLIENT_ID,
+ CreateWebhookOAuthRequest.JSON_PROPERTY_CLIENT_SECRET,
+ CreateWebhookOAuthRequest.JSON_PROPERTY_URL,
+ CreateWebhookOAuthRequest.JSON_PROPERTY_AUTH_METHOD,
+ CreateWebhookOAuthRequest.JSON_PROPERTY_CUSTOM_JWT_CLAIMS,
+ CreateWebhookOAuthRequest.JSON_PROPERTY_CUSTOM_BODY_PARAMS,
+ CreateWebhookOAuthRequest.JSON_PROPERTY_CUSTOM_HEADERS,
+ CreateWebhookOAuthRequest.JSON_PROPERTY_MTLS_CLIENT_SIGNED_CERT
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class CreateWebhookOAuthRequest {
+ public static final String JSON_PROPERTY_NAME = "name";
+ @jakarta.annotation.Nonnull private String name;
+
+ public static final String JSON_PROPERTY_CLIENT_ID = "clientId";
+ @jakarta.annotation.Nonnull private String clientId;
+
+ public static final String JSON_PROPERTY_CLIENT_SECRET = "clientSecret";
+ @jakarta.annotation.Nonnull private String clientSecret;
+
+ public static final String JSON_PROPERTY_URL = "url";
+ @jakarta.annotation.Nonnull private String url;
+
+ public static final String JSON_PROPERTY_AUTH_METHOD = "authMethod";
+ @jakarta.annotation.Nullable private String authMethod = "client_secret_basic";
+
+ public static final String JSON_PROPERTY_CUSTOM_JWT_CLAIMS = "customJwtClaims";
+ @jakarta.annotation.Nullable private Map customJwtClaims;
+
+ public static final String JSON_PROPERTY_CUSTOM_BODY_PARAMS = "customBodyParams";
+ @jakarta.annotation.Nullable private Map customBodyParams;
+
+ public static final String JSON_PROPERTY_CUSTOM_HEADERS = "customHeaders";
+ @jakarta.annotation.Nullable private Map customHeaders;
+
+ public static final String JSON_PROPERTY_MTLS_CLIENT_SIGNED_CERT = "mtlsClientSignedCert";
+ @jakarta.annotation.Nullable private String mtlsClientSignedCert;
+
+ public CreateWebhookOAuthRequest() {}
+
+ @JsonCreator
+ public CreateWebhookOAuthRequest(
+ @JsonProperty(value = JSON_PROPERTY_NAME, required = true) String name,
+ @JsonProperty(value = JSON_PROPERTY_CLIENT_ID, required = true) String clientId,
+ @JsonProperty(value = JSON_PROPERTY_CLIENT_SECRET, required = true) String clientSecret,
+ @JsonProperty(value = JSON_PROPERTY_URL, required = true) String url) {
+ this.name = name;
+ this.clientId = clientId;
+ this.clientSecret = clientSecret;
+ this.url = url;
+ }
+
+ public CreateWebhookOAuthRequest name(@jakarta.annotation.Nonnull String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * A label for this credential set, shown when listing them.
+ *
+ * @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 CreateWebhookOAuthRequest clientId(@jakarta.annotation.Nonnull String clientId) {
+ this.clientId = clientId;
+ return this;
+ }
+
+ /**
+ * OAuth client ID used to authenticate with the token endpoint.
+ *
+ * @return clientId
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_CLIENT_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getClientId() {
+ return clientId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_CLIENT_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setClientId(@jakarta.annotation.Nonnull String clientId) {
+ this.clientId = clientId;
+ }
+
+ public CreateWebhookOAuthRequest clientSecret(@jakarta.annotation.Nonnull String clientSecret) {
+ this.clientSecret = clientSecret;
+ return this;
+ }
+
+ /**
+ * OAuth client secret. Write-only — never returned. Limited to 480 bytes UTF-8 encoded. With
+ * `client_secret_jwt` it signs the assertion rather than being sent.
+ *
+ * @return clientSecret
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_CLIENT_SECRET)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getClientSecret() {
+ return clientSecret;
+ }
+
+ @JsonProperty(JSON_PROPERTY_CLIENT_SECRET)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setClientSecret(@jakarta.annotation.Nonnull String clientSecret) {
+ this.clientSecret = clientSecret;
+ }
+
+ public CreateWebhookOAuthRequest url(@jakarta.annotation.Nonnull String url) {
+ this.url = url;
+ return this;
+ }
+
+ /**
+ * Token endpoint URL. HTTPS on port 443 only, and the host must resolve publicly — localhost
+ * and private, link-local or loopback addresses are rejected.
+ *
+ * @return url
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_URL)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getUrl() {
+ return url;
+ }
+
+ @JsonProperty(JSON_PROPERTY_URL)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setUrl(@jakarta.annotation.Nonnull String url) {
+ this.url = url;
+ }
+
+ public CreateWebhookOAuthRequest authMethod(@jakarta.annotation.Nullable String authMethod) {
+ this.authMethod = authMethod;
+ return this;
+ }
+
+ /**
+ * How the client credentials reach the token endpoint. `client_secret_basic` uses an
+ * HTTP Basic header, `client_secret_post` uses form fields in the body, and
+ * `client_secret_jwt` sends a JWT assertion signed with the secret, so the secret
+ * itself is never transmitted. Defaults to `client_secret_basic`.
+ *
+ * @return authMethod
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_AUTH_METHOD)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getAuthMethod() {
+ return authMethod;
+ }
+
+ @JsonProperty(JSON_PROPERTY_AUTH_METHOD)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setAuthMethod(@jakarta.annotation.Nullable String authMethod) {
+ this.authMethod = authMethod;
+ }
+
+ public CreateWebhookOAuthRequest customJwtClaims(
+ @jakarta.annotation.Nullable Map customJwtClaims) {
+ this.customJwtClaims = customJwtClaims;
+ return this;
+ }
+
+ public CreateWebhookOAuthRequest putCustomJwtClaimsItem(
+ String key, Object customJwtClaimsItem) {
+ if (this.customJwtClaims == null) {
+ this.customJwtClaims = new HashMap<>();
+ }
+ this.customJwtClaims.put(key, customJwtClaimsItem);
+ return this;
+ }
+
+ /**
+ * Extra claims for the JWT assertion. Used only when `authMethod` is
+ * `client_secret_jwt`. The usual one to set is `aud`, which defaults to the
+ * token endpoint URL; some authorization servers expect their own identifier instead. A value
+ * may be any JSON type except `null` — `null` is reserved for deleting a
+ * claim on update. `iss`, `sub`, `jti`, `iat` and
+ * `exp` are set by Fireblocks and cannot be overridden. Names are case-sensitive. The
+ * whole object must be under 16 KB. Values are write-only; responses return only the claim
+ * names. On update this merges claim by claim rather than replacing — see
+ * `WebhookOAuthCustomJwtClaimsUpdate`.
+ *
+ * @return customJwtClaims
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_CUSTOM_JWT_CLAIMS)
+ @JsonInclude(content = JsonInclude.Include.ALWAYS, value = JsonInclude.Include.USE_DEFAULTS)
+ public Map getCustomJwtClaims() {
+ return customJwtClaims;
+ }
+
+ @JsonProperty(JSON_PROPERTY_CUSTOM_JWT_CLAIMS)
+ @JsonInclude(content = JsonInclude.Include.ALWAYS, value = JsonInclude.Include.USE_DEFAULTS)
+ public void setCustomJwtClaims(
+ @jakarta.annotation.Nullable Map customJwtClaims) {
+ this.customJwtClaims = customJwtClaims;
+ }
+
+ public CreateWebhookOAuthRequest customBodyParams(
+ @jakarta.annotation.Nullable Map customBodyParams) {
+ this.customBodyParams = customBodyParams;
+ return this;
+ }
+
+ public CreateWebhookOAuthRequest putCustomBodyParamsItem(
+ String key, String customBodyParamsItem) {
+ if (this.customBodyParams == null) {
+ this.customBodyParams = new HashMap<>();
+ }
+ this.customBodyParams.put(key, customBodyParamsItem);
+ return this;
+ }
+
+ /**
+ * Extra parameters for the token request body — `scope` most commonly, sometimes
+ * `audience` or `resource`. Applies to every authentication method. Values
+ * must be strings, because the token request body is form-encoded rather than JSON. An empty
+ * string is allowed. `grant_type`, `client_id`, `client_secret`,
+ * `client_assertion` and `client_assertion_type` are set by Fireblocks and
+ * cannot be overridden. Names are case-sensitive. The whole object must be under 16 KB. Values
+ * are write-only; responses return only the parameter names. On update this merges key by key
+ * rather than replacing — see `WebhookOAuthCustomBodyParamsUpdate`.
+ *
+ * @return customBodyParams
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_CUSTOM_BODY_PARAMS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Map getCustomBodyParams() {
+ return customBodyParams;
+ }
+
+ @JsonProperty(JSON_PROPERTY_CUSTOM_BODY_PARAMS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setCustomBodyParams(
+ @jakarta.annotation.Nullable Map customBodyParams) {
+ this.customBodyParams = customBodyParams;
+ }
+
+ public CreateWebhookOAuthRequest customHeaders(
+ @jakarta.annotation.Nullable Map customHeaders) {
+ this.customHeaders = customHeaders;
+ return this;
+ }
+
+ public CreateWebhookOAuthRequest putCustomHeadersItem(String key, String customHeadersItem) {
+ if (this.customHeaders == null) {
+ this.customHeaders = new HashMap<>();
+ }
+ this.customHeaders.put(key, customHeadersItem);
+ return this;
+ }
+
+ /**
+ * 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`, `Authorization`,
+ * `Content-Length` and `Host` are set by Fireblocks and cannot be
+ * overridden. The whole object must be under 16 KB. Values are write-only; responses return
+ * only the header names. On update this merges name by name rather than replacing — see
+ * `WebhookOAuthCustomHeadersUpdate`.
+ *
+ * @return customHeaders
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_CUSTOM_HEADERS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Map getCustomHeaders() {
+ return customHeaders;
+ }
+
+ @JsonProperty(JSON_PROPERTY_CUSTOM_HEADERS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setCustomHeaders(@jakarta.annotation.Nullable Map customHeaders) {
+ this.customHeaders = customHeaders;
+ }
+
+ public CreateWebhookOAuthRequest mtlsClientSignedCert(
+ @jakarta.annotation.Nullable String mtlsClientSignedCert) {
+ this.mtlsClientSignedCert = mtlsClientSignedCert;
+ return this;
+ }
+
+ /**
+ * PEM-encoded client certificate for mTLS when fetching tokens. Must be a valid X.509
+ * certificate inside its validity window.
+ *
+ * @return mtlsClientSignedCert
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_MTLS_CLIENT_SIGNED_CERT)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getMtlsClientSignedCert() {
+ return mtlsClientSignedCert;
+ }
+
+ @JsonProperty(JSON_PROPERTY_MTLS_CLIENT_SIGNED_CERT)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setMtlsClientSignedCert(@jakarta.annotation.Nullable String mtlsClientSignedCert) {
+ this.mtlsClientSignedCert = mtlsClientSignedCert;
+ }
+
+ /** Return true if this CreateWebhookOAuthRequest object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ CreateWebhookOAuthRequest createWebhookOAuthRequest = (CreateWebhookOAuthRequest) o;
+ return Objects.equals(this.name, createWebhookOAuthRequest.name)
+ && Objects.equals(this.clientId, createWebhookOAuthRequest.clientId)
+ && Objects.equals(this.clientSecret, createWebhookOAuthRequest.clientSecret)
+ && Objects.equals(this.url, createWebhookOAuthRequest.url)
+ && Objects.equals(this.authMethod, createWebhookOAuthRequest.authMethod)
+ && Objects.equals(this.customJwtClaims, createWebhookOAuthRequest.customJwtClaims)
+ && Objects.equals(this.customBodyParams, createWebhookOAuthRequest.customBodyParams)
+ && Objects.equals(this.customHeaders, createWebhookOAuthRequest.customHeaders)
+ && Objects.equals(
+ this.mtlsClientSignedCert, createWebhookOAuthRequest.mtlsClientSignedCert);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(
+ name,
+ clientId,
+ clientSecret,
+ url,
+ authMethod,
+ customJwtClaims,
+ customBodyParams,
+ customHeaders,
+ mtlsClientSignedCert);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class CreateWebhookOAuthRequest {\n");
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" clientId: ").append(toIndentedString(clientId)).append("\n");
+ sb.append(" clientSecret: ").append(toIndentedString(clientSecret)).append("\n");
+ sb.append(" url: ").append(toIndentedString(url)).append("\n");
+ sb.append(" authMethod: ").append(toIndentedString(authMethod)).append("\n");
+ sb.append(" customJwtClaims: ").append(toIndentedString(customJwtClaims)).append("\n");
+ sb.append(" customBodyParams: ").append(toIndentedString(customBodyParams)).append("\n");
+ sb.append(" customHeaders: ").append(toIndentedString(customHeaders)).append("\n");
+ sb.append(" mtlsClientSignedCert: ")
+ .append(toIndentedString(mtlsClientSignedCert))
+ .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 `clientId` to the URL query string
+ if (getClientId() != null) {
+ joiner.add(
+ String.format(
+ "%sclientId%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getClientId()))));
+ }
+
+ // add `clientSecret` to the URL query string
+ if (getClientSecret() != null) {
+ joiner.add(
+ String.format(
+ "%sclientSecret%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getClientSecret()))));
+ }
+
+ // add `url` to the URL query string
+ if (getUrl() != null) {
+ joiner.add(
+ String.format(
+ "%surl%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getUrl()))));
+ }
+
+ // add `authMethod` to the URL query string
+ if (getAuthMethod() != null) {
+ joiner.add(
+ String.format(
+ "%sauthMethod%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getAuthMethod()))));
+ }
+
+ // add `customJwtClaims` to the URL query string
+ if (getCustomJwtClaims() != null) {
+ for (String _key : getCustomJwtClaims().keySet()) {
+ joiner.add(
+ String.format(
+ "%scustomJwtClaims%s%s=%s",
+ prefix,
+ suffix,
+ "".equals(suffix)
+ ? ""
+ : String.format(
+ "%s%d%s", containerPrefix, _key, containerSuffix),
+ getCustomJwtClaims().get(_key),
+ ApiClient.urlEncode(
+ ApiClient.valueToString(getCustomJwtClaims().get(_key)))));
+ }
+ }
+
+ // add `customBodyParams` to the URL query string
+ if (getCustomBodyParams() != null) {
+ for (String _key : getCustomBodyParams().keySet()) {
+ joiner.add(
+ String.format(
+ "%scustomBodyParams%s%s=%s",
+ prefix,
+ suffix,
+ "".equals(suffix)
+ ? ""
+ : String.format(
+ "%s%d%s", containerPrefix, _key, containerSuffix),
+ getCustomBodyParams().get(_key),
+ ApiClient.urlEncode(
+ ApiClient.valueToString(getCustomBodyParams().get(_key)))));
+ }
+ }
+
+ // add `customHeaders` to the URL query string
+ if (getCustomHeaders() != null) {
+ for (String _key : getCustomHeaders().keySet()) {
+ joiner.add(
+ String.format(
+ "%scustomHeaders%s%s=%s",
+ prefix,
+ suffix,
+ "".equals(suffix)
+ ? ""
+ : String.format(
+ "%s%d%s", containerPrefix, _key, containerSuffix),
+ getCustomHeaders().get(_key),
+ ApiClient.urlEncode(
+ ApiClient.valueToString(getCustomHeaders().get(_key)))));
+ }
+ }
+
+ // add `mtlsClientSignedCert` to the URL query string
+ if (getMtlsClientSignedCert() != null) {
+ joiner.add(
+ String.format(
+ "%smtlsClientSignedCert%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(
+ ApiClient.valueToString(getMtlsClientSignedCert()))));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/CreateWebhookRequest.java b/src/main/java/com/fireblocks/sdk/model/CreateWebhookRequest.java
index 2e1e361e..a95ca900 100644
--- a/src/main/java/com/fireblocks/sdk/model/CreateWebhookRequest.java
+++ b/src/main/java/com/fireblocks/sdk/model/CreateWebhookRequest.java
@@ -58,7 +58,7 @@ public class CreateWebhookRequest {
@jakarta.annotation.Nullable private WebhookOAuth oauth;
public static final String JSON_PROPERTY_CUSTOM_HEADERS = "customHeaders";
- @jakarta.annotation.Nullable private Map customHeaders;
+ @jakarta.annotation.Nullable private Map customHeaders;
public CreateWebhookRequest() {}
@@ -218,12 +218,12 @@ public void setOauth(@jakarta.annotation.Nullable WebhookOAuth oauth) {
}
public CreateWebhookRequest customHeaders(
- @jakarta.annotation.Nullable Map customHeaders) {
+ @jakarta.annotation.Nullable Map customHeaders) {
this.customHeaders = customHeaders;
return this;
}
- public CreateWebhookRequest putCustomHeadersItem(String key, String customHeadersItem) {
+ public CreateWebhookRequest putCustomHeadersItem(String key, Object customHeadersItem) {
if (this.customHeaders == null) {
this.customHeaders = new HashMap<>();
}
@@ -232,26 +232,32 @@ public CreateWebhookRequest putCustomHeadersItem(String key, String customHeader
}
/**
- * Custom HTTP headers attached to every notification delivered by this webhook (max 10). Header
- * names must be valid RFC 7230 tokens (printable ASCII, no separators), are treated
- * case-insensitively (duplicate names differing only in case are rejected), and may not exceed
- * 128 characters. The following names are reserved and cannot be used: Host, Content-Type,
- * Content-Length, Transfer-Encoding, Connection, User-Agent, Accept, Accept-Encoding,
- * Fireblocks-Signature, Fireblocks-Webhook-Signature. Header values are write-only — never
- * returned in responses.
+ * 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. Values are at most 1024 characters and may be empty. Reserved names:
+ * `Host`, `Content-Type`, `Content-Length`,
+ * `Transfer-Encoding`, `Connection`, `User-Agent`,
+ * `Accept`, `Accept-Encoding`, `Fireblocks-Signature`,
+ * `Fireblocks-Webhook-Signature`, `Authorization`.
+ * `Authorization` is reserved whether or not this webhook has OAuth credentials
+ * attached, because Fireblocks sets it once it does. Values are write-only; responses return
+ * only the header names.
*
* @return customHeaders
*/
@jakarta.annotation.Nullable
@JsonProperty(JSON_PROPERTY_CUSTOM_HEADERS)
- @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
- public Map getCustomHeaders() {
+ @JsonInclude(content = JsonInclude.Include.ALWAYS, value = JsonInclude.Include.USE_DEFAULTS)
+ public Map getCustomHeaders() {
return customHeaders;
}
@JsonProperty(JSON_PROPERTY_CUSTOM_HEADERS)
- @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
- public void setCustomHeaders(@jakarta.annotation.Nullable Map customHeaders) {
+ @JsonInclude(content = JsonInclude.Include.ALWAYS, value = JsonInclude.Include.USE_DEFAULTS)
+ public void setCustomHeaders(@jakarta.annotation.Nullable Map customHeaders) {
this.customHeaders = customHeaders;
}
diff --git a/src/main/java/com/fireblocks/sdk/model/DeleteWebhookOAuthResponse.java b/src/main/java/com/fireblocks/sdk/model/DeleteWebhookOAuthResponse.java
new file mode 100644
index 00000000..41a34cc0
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/DeleteWebhookOAuthResponse.java
@@ -0,0 +1,696 @@
+/*
+ * 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;
+import java.util.UUID;
+
+/**
+ * The deleted OAuth credential set, plus the ids of any webhooks the delete detached from it.
+ * Webhooks are only detached by `forceDelete=true`; without it a delete is refused
+ * with `409` while anything still references the credentials.
+ */
+@JsonPropertyOrder({
+ DeleteWebhookOAuthResponse.JSON_PROPERTY_ID,
+ DeleteWebhookOAuthResponse.JSON_PROPERTY_NAME,
+ DeleteWebhookOAuthResponse.JSON_PROPERTY_CLIENT_ID,
+ DeleteWebhookOAuthResponse.JSON_PROPERTY_URL,
+ DeleteWebhookOAuthResponse.JSON_PROPERTY_AUTH_METHOD,
+ DeleteWebhookOAuthResponse.JSON_PROPERTY_CUSTOM_JWT_CLAIMS,
+ DeleteWebhookOAuthResponse.JSON_PROPERTY_CUSTOM_BODY_PARAMS,
+ DeleteWebhookOAuthResponse.JSON_PROPERTY_CUSTOM_HEADERS,
+ DeleteWebhookOAuthResponse.JSON_PROPERTY_MTLS_CLIENT_SIGNED_CERT,
+ DeleteWebhookOAuthResponse.JSON_PROPERTY_CREATED_AT,
+ DeleteWebhookOAuthResponse.JSON_PROPERTY_UPDATED_AT,
+ DeleteWebhookOAuthResponse.JSON_PROPERTY_DETACHED_WEBHOOK_IDS
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class DeleteWebhookOAuthResponse {
+ public static final String JSON_PROPERTY_ID = "id";
+ @jakarta.annotation.Nonnull private UUID id;
+
+ public static final String JSON_PROPERTY_NAME = "name";
+ @jakarta.annotation.Nonnull private String name;
+
+ public static final String JSON_PROPERTY_CLIENT_ID = "clientId";
+ @jakarta.annotation.Nonnull private String clientId;
+
+ public static final String JSON_PROPERTY_URL = "url";
+ @jakarta.annotation.Nonnull private String url;
+
+ public static final String JSON_PROPERTY_AUTH_METHOD = "authMethod";
+ @jakarta.annotation.Nonnull private String authMethod = "client_secret_basic";
+
+ public static final String JSON_PROPERTY_CUSTOM_JWT_CLAIMS = "customJwtClaims";
+ @jakarta.annotation.Nullable private List customJwtClaims;
+
+ public static final String JSON_PROPERTY_CUSTOM_BODY_PARAMS = "customBodyParams";
+ @jakarta.annotation.Nullable private List customBodyParams;
+
+ public static final String JSON_PROPERTY_CUSTOM_HEADERS = "customHeaders";
+ @jakarta.annotation.Nullable private List customHeaders;
+
+ public static final String JSON_PROPERTY_MTLS_CLIENT_SIGNED_CERT = "mtlsClientSignedCert";
+ @jakarta.annotation.Nullable private String mtlsClientSignedCert;
+
+ public static final String JSON_PROPERTY_CREATED_AT = "createdAt";
+ @jakarta.annotation.Nonnull private Long createdAt;
+
+ public static final String JSON_PROPERTY_UPDATED_AT = "updatedAt";
+ @jakarta.annotation.Nonnull private Long updatedAt;
+
+ public static final String JSON_PROPERTY_DETACHED_WEBHOOK_IDS = "detachedWebhookIds";
+ @jakarta.annotation.Nonnull private List detachedWebhookIds;
+
+ public DeleteWebhookOAuthResponse() {}
+
+ @JsonCreator
+ public DeleteWebhookOAuthResponse(
+ @JsonProperty(value = JSON_PROPERTY_ID, required = true) UUID id,
+ @JsonProperty(value = JSON_PROPERTY_NAME, required = true) String name,
+ @JsonProperty(value = JSON_PROPERTY_CLIENT_ID, required = true) String clientId,
+ @JsonProperty(value = JSON_PROPERTY_URL, required = true) String url,
+ @JsonProperty(value = JSON_PROPERTY_AUTH_METHOD, required = true) String authMethod,
+ @JsonProperty(value = JSON_PROPERTY_CREATED_AT, required = true) Long createdAt,
+ @JsonProperty(value = JSON_PROPERTY_UPDATED_AT, required = true) Long updatedAt,
+ @JsonProperty(value = JSON_PROPERTY_DETACHED_WEBHOOK_IDS, required = true)
+ List detachedWebhookIds) {
+ this.id = id;
+ this.name = name;
+ this.clientId = clientId;
+ this.url = url;
+ this.authMethod = authMethod;
+ this.createdAt = createdAt;
+ this.updatedAt = updatedAt;
+ this.detachedWebhookIds = detachedWebhookIds;
+ }
+
+ public DeleteWebhookOAuthResponse id(@jakarta.annotation.Nonnull UUID id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * The id of the OAuth credentials. Pass this as a webhook's `webhookOauthId` to
+ * attach them.
+ *
+ * @return id
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public UUID getId() {
+ return id;
+ }
+
+ @JsonProperty(JSON_PROPERTY_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setId(@jakarta.annotation.Nonnull UUID id) {
+ this.id = id;
+ }
+
+ public DeleteWebhookOAuthResponse name(@jakarta.annotation.Nonnull String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * The label given to this credential set.
+ *
+ * @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 DeleteWebhookOAuthResponse clientId(@jakarta.annotation.Nonnull String clientId) {
+ this.clientId = clientId;
+ return this;
+ }
+
+ /**
+ * OAuth client ID used to authenticate with the token endpoint.
+ *
+ * @return clientId
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_CLIENT_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getClientId() {
+ return clientId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_CLIENT_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setClientId(@jakarta.annotation.Nonnull String clientId) {
+ this.clientId = clientId;
+ }
+
+ public DeleteWebhookOAuthResponse url(@jakarta.annotation.Nonnull String url) {
+ this.url = url;
+ return this;
+ }
+
+ /**
+ * Token endpoint URL.
+ *
+ * @return url
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_URL)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getUrl() {
+ return url;
+ }
+
+ @JsonProperty(JSON_PROPERTY_URL)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setUrl(@jakarta.annotation.Nonnull String url) {
+ this.url = url;
+ }
+
+ public DeleteWebhookOAuthResponse authMethod(@jakarta.annotation.Nonnull String authMethod) {
+ this.authMethod = authMethod;
+ return this;
+ }
+
+ /**
+ * How the client credentials are presented to the token endpoint:
+ * `client_secret_basic`, `client_secret_post` or
+ * `client_secret_jwt`. Credentials created without this field report
+ * `client_secret_basic`, which is what they use.
+ *
+ * @return authMethod
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_AUTH_METHOD)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getAuthMethod() {
+ return authMethod;
+ }
+
+ @JsonProperty(JSON_PROPERTY_AUTH_METHOD)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setAuthMethod(@jakarta.annotation.Nonnull String authMethod) {
+ this.authMethod = authMethod;
+ }
+
+ public DeleteWebhookOAuthResponse customJwtClaims(
+ @jakarta.annotation.Nullable List customJwtClaims) {
+ this.customJwtClaims = customJwtClaims;
+ return this;
+ }
+
+ public DeleteWebhookOAuthResponse addCustomJwtClaimsItem(String customJwtClaimsItem) {
+ if (this.customJwtClaims == null) {
+ this.customJwtClaims = new ArrayList<>();
+ }
+ this.customJwtClaims.add(customJwtClaimsItem);
+ return this;
+ }
+
+ /**
+ * Names of the additional claims placed in the JWT assertion. Claim values are write-only and
+ * are never returned. Absent when no custom claims are configured.
+ *
+ * @return customJwtClaims
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_CUSTOM_JWT_CLAIMS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getCustomJwtClaims() {
+ return customJwtClaims;
+ }
+
+ @JsonProperty(JSON_PROPERTY_CUSTOM_JWT_CLAIMS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setCustomJwtClaims(@jakarta.annotation.Nullable List customJwtClaims) {
+ this.customJwtClaims = customJwtClaims;
+ }
+
+ public DeleteWebhookOAuthResponse customBodyParams(
+ @jakarta.annotation.Nullable List customBodyParams) {
+ this.customBodyParams = customBodyParams;
+ return this;
+ }
+
+ public DeleteWebhookOAuthResponse addCustomBodyParamsItem(String customBodyParamsItem) {
+ if (this.customBodyParams == null) {
+ this.customBodyParams = new ArrayList<>();
+ }
+ this.customBodyParams.add(customBodyParamsItem);
+ return this;
+ }
+
+ /**
+ * Names of the additional parameters added to the token request body. Parameter values are
+ * write-only and are never returned. Absent when no custom parameters are configured.
+ *
+ * @return customBodyParams
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_CUSTOM_BODY_PARAMS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getCustomBodyParams() {
+ return customBodyParams;
+ }
+
+ @JsonProperty(JSON_PROPERTY_CUSTOM_BODY_PARAMS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setCustomBodyParams(@jakarta.annotation.Nullable List customBodyParams) {
+ this.customBodyParams = customBodyParams;
+ }
+
+ public DeleteWebhookOAuthResponse customHeaders(
+ @jakarta.annotation.Nullable List customHeaders) {
+ this.customHeaders = customHeaders;
+ return this;
+ }
+
+ public DeleteWebhookOAuthResponse addCustomHeadersItem(String customHeadersItem) {
+ if (this.customHeaders == null) {
+ this.customHeaders = new ArrayList<>();
+ }
+ this.customHeaders.add(customHeadersItem);
+ return this;
+ }
+
+ /**
+ * Names of the additional HTTP headers added to **the token request sent to the authorization
+ * server** — not to the webhook delivery, which has its own separate `customHeaders`.
+ * Header values are write-only and are never returned. Absent when no custom headers are
+ * configured.
+ *
+ * @return customHeaders
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_CUSTOM_HEADERS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getCustomHeaders() {
+ return customHeaders;
+ }
+
+ @JsonProperty(JSON_PROPERTY_CUSTOM_HEADERS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setCustomHeaders(@jakarta.annotation.Nullable List customHeaders) {
+ this.customHeaders = customHeaders;
+ }
+
+ public DeleteWebhookOAuthResponse mtlsClientSignedCert(
+ @jakarta.annotation.Nullable String mtlsClientSignedCert) {
+ this.mtlsClientSignedCert = mtlsClientSignedCert;
+ return this;
+ }
+
+ /**
+ * PEM-encoded client certificate used for mTLS when fetching OAuth tokens.
+ *
+ * @return mtlsClientSignedCert
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_MTLS_CLIENT_SIGNED_CERT)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getMtlsClientSignedCert() {
+ return mtlsClientSignedCert;
+ }
+
+ @JsonProperty(JSON_PROPERTY_MTLS_CLIENT_SIGNED_CERT)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setMtlsClientSignedCert(@jakarta.annotation.Nullable String mtlsClientSignedCert) {
+ this.mtlsClientSignedCert = mtlsClientSignedCert;
+ }
+
+ public DeleteWebhookOAuthResponse createdAt(@jakarta.annotation.Nonnull Long createdAt) {
+ this.createdAt = createdAt;
+ return this;
+ }
+
+ /**
+ * The date and time the OAuth credentials were created, in milliseconds.
+ *
+ * @return createdAt
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_CREATED_AT)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public Long getCreatedAt() {
+ return createdAt;
+ }
+
+ @JsonProperty(JSON_PROPERTY_CREATED_AT)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setCreatedAt(@jakarta.annotation.Nonnull Long createdAt) {
+ this.createdAt = createdAt;
+ }
+
+ public DeleteWebhookOAuthResponse updatedAt(@jakarta.annotation.Nonnull Long updatedAt) {
+ this.updatedAt = updatedAt;
+ return this;
+ }
+
+ /**
+ * The date and time the OAuth credentials were last updated, in milliseconds.
+ *
+ * @return updatedAt
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_UPDATED_AT)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public Long getUpdatedAt() {
+ return updatedAt;
+ }
+
+ @JsonProperty(JSON_PROPERTY_UPDATED_AT)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setUpdatedAt(@jakarta.annotation.Nonnull Long updatedAt) {
+ this.updatedAt = updatedAt;
+ }
+
+ public DeleteWebhookOAuthResponse detachedWebhookIds(
+ @jakarta.annotation.Nonnull List detachedWebhookIds) {
+ this.detachedWebhookIds = detachedWebhookIds;
+ return this;
+ }
+
+ public DeleteWebhookOAuthResponse addDetachedWebhookIdsItem(UUID detachedWebhookIdsItem) {
+ if (this.detachedWebhookIds == null) {
+ this.detachedWebhookIds = new ArrayList<>();
+ }
+ this.detachedWebhookIds.add(detachedWebhookIdsItem);
+ return this;
+ }
+
+ /**
+ * Webhooks whose `webhookOauthId` was cleared. The webhooks themselves are not
+ * deleted and keep delivering, just without an `Authorization` header. Empty unless
+ * `forceDelete=true` detached something.
+ *
+ * @return detachedWebhookIds
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_DETACHED_WEBHOOK_IDS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public List getDetachedWebhookIds() {
+ return detachedWebhookIds;
+ }
+
+ @JsonProperty(JSON_PROPERTY_DETACHED_WEBHOOK_IDS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setDetachedWebhookIds(@jakarta.annotation.Nonnull List detachedWebhookIds) {
+ this.detachedWebhookIds = detachedWebhookIds;
+ }
+
+ /** Return true if this DeleteWebhookOAuthResponse object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ DeleteWebhookOAuthResponse deleteWebhookOAuthResponse = (DeleteWebhookOAuthResponse) o;
+ return Objects.equals(this.id, deleteWebhookOAuthResponse.id)
+ && Objects.equals(this.name, deleteWebhookOAuthResponse.name)
+ && Objects.equals(this.clientId, deleteWebhookOAuthResponse.clientId)
+ && Objects.equals(this.url, deleteWebhookOAuthResponse.url)
+ && Objects.equals(this.authMethod, deleteWebhookOAuthResponse.authMethod)
+ && Objects.equals(this.customJwtClaims, deleteWebhookOAuthResponse.customJwtClaims)
+ && Objects.equals(
+ this.customBodyParams, deleteWebhookOAuthResponse.customBodyParams)
+ && Objects.equals(this.customHeaders, deleteWebhookOAuthResponse.customHeaders)
+ && Objects.equals(
+ this.mtlsClientSignedCert, deleteWebhookOAuthResponse.mtlsClientSignedCert)
+ && Objects.equals(this.createdAt, deleteWebhookOAuthResponse.createdAt)
+ && Objects.equals(this.updatedAt, deleteWebhookOAuthResponse.updatedAt)
+ && Objects.equals(
+ this.detachedWebhookIds, deleteWebhookOAuthResponse.detachedWebhookIds);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(
+ id,
+ name,
+ clientId,
+ url,
+ authMethod,
+ customJwtClaims,
+ customBodyParams,
+ customHeaders,
+ mtlsClientSignedCert,
+ createdAt,
+ updatedAt,
+ detachedWebhookIds);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class DeleteWebhookOAuthResponse {\n");
+ sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" clientId: ").append(toIndentedString(clientId)).append("\n");
+ sb.append(" url: ").append(toIndentedString(url)).append("\n");
+ sb.append(" authMethod: ").append(toIndentedString(authMethod)).append("\n");
+ sb.append(" customJwtClaims: ").append(toIndentedString(customJwtClaims)).append("\n");
+ sb.append(" customBodyParams: ").append(toIndentedString(customBodyParams)).append("\n");
+ sb.append(" customHeaders: ").append(toIndentedString(customHeaders)).append("\n");
+ sb.append(" mtlsClientSignedCert: ")
+ .append(toIndentedString(mtlsClientSignedCert))
+ .append("\n");
+ sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n");
+ sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n");
+ sb.append(" detachedWebhookIds: ")
+ .append(toIndentedString(detachedWebhookIds))
+ .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 `clientId` to the URL query string
+ if (getClientId() != null) {
+ joiner.add(
+ String.format(
+ "%sclientId%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getClientId()))));
+ }
+
+ // add `url` to the URL query string
+ if (getUrl() != null) {
+ joiner.add(
+ String.format(
+ "%surl%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getUrl()))));
+ }
+
+ // add `authMethod` to the URL query string
+ if (getAuthMethod() != null) {
+ joiner.add(
+ String.format(
+ "%sauthMethod%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getAuthMethod()))));
+ }
+
+ // add `customJwtClaims` to the URL query string
+ if (getCustomJwtClaims() != null) {
+ for (int i = 0; i < getCustomJwtClaims().size(); i++) {
+ joiner.add(
+ String.format(
+ "%scustomJwtClaims%s%s=%s",
+ prefix,
+ suffix,
+ "".equals(suffix)
+ ? ""
+ : String.format(
+ "%s%d%s", containerPrefix, i, containerSuffix),
+ ApiClient.urlEncode(
+ ApiClient.valueToString(getCustomJwtClaims().get(i)))));
+ }
+ }
+
+ // add `customBodyParams` to the URL query string
+ if (getCustomBodyParams() != null) {
+ for (int i = 0; i < getCustomBodyParams().size(); i++) {
+ joiner.add(
+ String.format(
+ "%scustomBodyParams%s%s=%s",
+ prefix,
+ suffix,
+ "".equals(suffix)
+ ? ""
+ : String.format(
+ "%s%d%s", containerPrefix, i, containerSuffix),
+ ApiClient.urlEncode(
+ ApiClient.valueToString(getCustomBodyParams().get(i)))));
+ }
+ }
+
+ // add `customHeaders` to the URL query string
+ if (getCustomHeaders() != null) {
+ for (int i = 0; i < getCustomHeaders().size(); i++) {
+ joiner.add(
+ String.format(
+ "%scustomHeaders%s%s=%s",
+ prefix,
+ suffix,
+ "".equals(suffix)
+ ? ""
+ : String.format(
+ "%s%d%s", containerPrefix, i, containerSuffix),
+ ApiClient.urlEncode(
+ ApiClient.valueToString(getCustomHeaders().get(i)))));
+ }
+ }
+
+ // add `mtlsClientSignedCert` to the URL query string
+ if (getMtlsClientSignedCert() != null) {
+ joiner.add(
+ String.format(
+ "%smtlsClientSignedCert%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(
+ ApiClient.valueToString(getMtlsClientSignedCert()))));
+ }
+
+ // 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 `updatedAt` to the URL query string
+ if (getUpdatedAt() != null) {
+ joiner.add(
+ String.format(
+ "%supdatedAt%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getUpdatedAt()))));
+ }
+
+ // add `detachedWebhookIds` to the URL query string
+ if (getDetachedWebhookIds() != null) {
+ for (int i = 0; i < getDetachedWebhookIds().size(); i++) {
+ if (getDetachedWebhookIds().get(i) != null) {
+ joiner.add(
+ String.format(
+ "%sdetachedWebhookIds%s%s=%s",
+ prefix,
+ suffix,
+ "".equals(suffix)
+ ? ""
+ : String.format(
+ "%s%d%s", containerPrefix, i, containerSuffix),
+ ApiClient.urlEncode(
+ ApiClient.valueToString(
+ getDetachedWebhookIds().get(i)))));
+ }
+ }
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/DirectAccessResponse.java b/src/main/java/com/fireblocks/sdk/model/DirectAccessResponse.java
new file mode 100644
index 00000000..8e80d2fe
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/DirectAccessResponse.java
@@ -0,0 +1,284 @@
+/*
+ * 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.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.StringJoiner;
+
+/**
+ * Response-only counterpart of DirectAccess. Adds the server-populated `subProviders`
+ * field. Never use this schema in a request body — requests must keep using DirectAccess (via
+ * AccessType).
+ */
+@JsonPropertyOrder({
+ DirectAccessResponse.JSON_PROPERTY_TYPE,
+ DirectAccessResponse.JSON_PROPERTY_PROVIDER_ID,
+ DirectAccessResponse.JSON_PROPERTY_SUB_PROVIDERS
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class DirectAccessResponse {
+ /** Indicates this uses direct provider access */
+ public enum TypeEnum {
+ PROVIDER(String.valueOf("PROVIDER"));
+
+ private String value;
+
+ TypeEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static TypeEnum fromValue(String value) {
+ for (TypeEnum b : TypeEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ @jakarta.annotation.Nonnull private TypeEnum type;
+
+ public static final String JSON_PROPERTY_PROVIDER_ID = "providerId";
+ @jakarta.annotation.Nonnull private String providerId;
+
+ public static final String JSON_PROPERTY_SUB_PROVIDERS = "subProviders";
+ @jakarta.annotation.Nullable private List subProviders;
+
+ public DirectAccessResponse() {}
+
+ @JsonCreator
+ public DirectAccessResponse(
+ @JsonProperty(value = JSON_PROPERTY_TYPE, required = true) TypeEnum type,
+ @JsonProperty(value = JSON_PROPERTY_PROVIDER_ID, required = true) String providerId) {
+ this.type = type;
+ this.providerId = providerId;
+ }
+
+ public DirectAccessResponse type(@jakarta.annotation.Nonnull TypeEnum type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Indicates this uses direct provider access
+ *
+ * @return type
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public TypeEnum getType() {
+ return type;
+ }
+
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setType(@jakarta.annotation.Nonnull TypeEnum type) {
+ this.type = type;
+ }
+
+ public DirectAccessResponse providerId(@jakarta.annotation.Nonnull String providerId) {
+ this.providerId = providerId;
+ return this;
+ }
+
+ /**
+ * The ID of the provider
+ *
+ * @return providerId
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_PROVIDER_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getProviderId() {
+ return providerId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_PROVIDER_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setProviderId(@jakarta.annotation.Nonnull String providerId) {
+ this.providerId = providerId;
+ }
+
+ public DirectAccessResponse subProviders(
+ @jakarta.annotation.Nullable List subProviders) {
+ this.subProviders = subProviders;
+ return this;
+ }
+
+ public DirectAccessResponse addSubProvidersItem(String subProvidersItem) {
+ if (this.subProviders == null) {
+ this.subProviders = new ArrayList<>();
+ }
+ this.subProviders.add(subProvidersItem);
+ return this;
+ }
+
+ /**
+ * The underlying providers or tools that this direct-access route is composed of, in execution
+ * order. Response-only: this field is populated by the server and is never accepted from client
+ * requests.
+ *
+ * @return subProviders
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_SUB_PROVIDERS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getSubProviders() {
+ return subProviders;
+ }
+
+ @JsonProperty(JSON_PROPERTY_SUB_PROVIDERS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setSubProviders(@jakarta.annotation.Nullable List subProviders) {
+ this.subProviders = subProviders;
+ }
+
+ /** Return true if this DirectAccessResponse object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ DirectAccessResponse directAccessResponse = (DirectAccessResponse) o;
+ return Objects.equals(this.type, directAccessResponse.type)
+ && Objects.equals(this.providerId, directAccessResponse.providerId)
+ && Objects.equals(this.subProviders, directAccessResponse.subProviders);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(type, providerId, subProviders);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class DirectAccessResponse {\n");
+ sb.append(" type: ").append(toIndentedString(type)).append("\n");
+ sb.append(" providerId: ").append(toIndentedString(providerId)).append("\n");
+ sb.append(" subProviders: ").append(toIndentedString(subProviders)).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 `type` to the URL query string
+ if (getType() != null) {
+ joiner.add(
+ String.format(
+ "%stype%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getType()))));
+ }
+
+ // add `providerId` to the URL query string
+ if (getProviderId() != null) {
+ joiner.add(
+ String.format(
+ "%sproviderId%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getProviderId()))));
+ }
+
+ // add `subProviders` to the URL query string
+ if (getSubProviders() != null) {
+ for (int i = 0; i < getSubProviders().size(); i++) {
+ joiner.add(
+ String.format(
+ "%ssubProviders%s%s=%s",
+ prefix,
+ suffix,
+ "".equals(suffix)
+ ? ""
+ : String.format(
+ "%s%d%s", containerPrefix, i, containerSuffix),
+ ApiClient.urlEncode(
+ ApiClient.valueToString(getSubProviders().get(i)))));
+ }
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/DirectAccessResponseInfo.java b/src/main/java/com/fireblocks/sdk/model/DirectAccessResponseInfo.java
new file mode 100644
index 00000000..cf1425c4
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/DirectAccessResponseInfo.java
@@ -0,0 +1,159 @@
+/*
+ * 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;
+
+/** DirectAccessResponseInfo */
+@JsonPropertyOrder({DirectAccessResponseInfo.JSON_PROPERTY_SUB_PROVIDERS})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class DirectAccessResponseInfo {
+ public static final String JSON_PROPERTY_SUB_PROVIDERS = "subProviders";
+ @jakarta.annotation.Nullable private List subProviders;
+
+ public DirectAccessResponseInfo() {}
+
+ public DirectAccessResponseInfo subProviders(
+ @jakarta.annotation.Nullable List subProviders) {
+ this.subProviders = subProviders;
+ return this;
+ }
+
+ public DirectAccessResponseInfo addSubProvidersItem(String subProvidersItem) {
+ if (this.subProviders == null) {
+ this.subProviders = new ArrayList<>();
+ }
+ this.subProviders.add(subProvidersItem);
+ return this;
+ }
+
+ /**
+ * The underlying providers or tools that this direct-access route is composed of, in execution
+ * order. Response-only: this field is populated by the server and is never accepted from client
+ * requests.
+ *
+ * @return subProviders
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_SUB_PROVIDERS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getSubProviders() {
+ return subProviders;
+ }
+
+ @JsonProperty(JSON_PROPERTY_SUB_PROVIDERS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setSubProviders(@jakarta.annotation.Nullable List subProviders) {
+ this.subProviders = subProviders;
+ }
+
+ /** Return true if this DirectAccessResponseInfo object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ DirectAccessResponseInfo directAccessResponseInfo = (DirectAccessResponseInfo) o;
+ return Objects.equals(this.subProviders, directAccessResponseInfo.subProviders);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(subProviders);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class DirectAccessResponseInfo {\n");
+ sb.append(" subProviders: ").append(toIndentedString(subProviders)).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 `subProviders` to the URL query string
+ if (getSubProviders() != null) {
+ for (int i = 0; i < getSubProviders().size(); i++) {
+ joiner.add(
+ String.format(
+ "%ssubProviders%s%s=%s",
+ prefix,
+ suffix,
+ "".equals(suffix)
+ ? ""
+ : String.format(
+ "%s%d%s", containerPrefix, i, containerSuffix),
+ ApiClient.urlEncode(
+ ApiClient.valueToString(getSubProviders().get(i)))));
+ }
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/EndInvestorPayload.java b/src/main/java/com/fireblocks/sdk/model/EndInvestorPayload.java
new file mode 100644
index 00000000..56fd18b4
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/EndInvestorPayload.java
@@ -0,0 +1,265 @@
+/*
+ * 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;
+
+/** Shared by invite / invite-cancel / offboard — identical wire shape, different verb. */
+@JsonPropertyOrder({
+ EndInvestorPayload.JSON_PROPERTY_VAULT_ACCOUNT_ID,
+ EndInvestorPayload.JSON_PROPERTY_ASSET,
+ EndInvestorPayload.JSON_PROPERTY_END_INVESTOR
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class EndInvestorPayload {
+ public static final String JSON_PROPERTY_VAULT_ACCOUNT_ID = "vaultAccountId";
+ @jakarta.annotation.Nonnull private String vaultAccountId;
+
+ /** Chain asset — `CANTON` or `CANTON_TEST`. */
+ public enum AssetEnum {
+ CANTON(String.valueOf("CANTON")),
+
+ CANTON_TEST(String.valueOf("CANTON_TEST"));
+
+ private String value;
+
+ AssetEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static AssetEnum fromValue(String value) {
+ for (AssetEnum b : AssetEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_ASSET = "asset";
+ @jakarta.annotation.Nonnull private AssetEnum asset;
+
+ public static final String JSON_PROPERTY_END_INVESTOR = "endInvestor";
+ @jakarta.annotation.Nonnull private String endInvestor;
+
+ public EndInvestorPayload() {}
+
+ @JsonCreator
+ public EndInvestorPayload(
+ @JsonProperty(value = JSON_PROPERTY_VAULT_ACCOUNT_ID, required = true)
+ String vaultAccountId,
+ @JsonProperty(value = JSON_PROPERTY_ASSET, required = true) AssetEnum asset,
+ @JsonProperty(value = JSON_PROPERTY_END_INVESTOR, required = true) String endInvestor) {
+ this.vaultAccountId = vaultAccountId;
+ this.asset = asset;
+ this.endInvestor = endInvestor;
+ }
+
+ public EndInvestorPayload vaultAccountId(@jakarta.annotation.Nonnull String vaultAccountId) {
+ this.vaultAccountId = vaultAccountId;
+ return this;
+ }
+
+ /**
+ * The vault account whose Canton wallet acts here.
+ *
+ * @return vaultAccountId
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_VAULT_ACCOUNT_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getVaultAccountId() {
+ return vaultAccountId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_VAULT_ACCOUNT_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setVaultAccountId(@jakarta.annotation.Nonnull String vaultAccountId) {
+ this.vaultAccountId = vaultAccountId;
+ }
+
+ public EndInvestorPayload asset(@jakarta.annotation.Nonnull AssetEnum asset) {
+ this.asset = asset;
+ return this;
+ }
+
+ /**
+ * Chain asset — `CANTON` or `CANTON_TEST`.
+ *
+ * @return asset
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_ASSET)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public AssetEnum getAsset() {
+ return asset;
+ }
+
+ @JsonProperty(JSON_PROPERTY_ASSET)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setAsset(@jakarta.annotation.Nonnull AssetEnum asset) {
+ this.asset = asset;
+ }
+
+ public EndInvestorPayload endInvestor(@jakarta.annotation.Nonnull String endInvestor) {
+ this.endInvestor = endInvestor;
+ return this;
+ }
+
+ /**
+ * The end investor's Canton party id.
+ *
+ * @return endInvestor
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_END_INVESTOR)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getEndInvestor() {
+ return endInvestor;
+ }
+
+ @JsonProperty(JSON_PROPERTY_END_INVESTOR)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setEndInvestor(@jakarta.annotation.Nonnull String endInvestor) {
+ this.endInvestor = endInvestor;
+ }
+
+ /** Return true if this EndInvestorPayload object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ EndInvestorPayload endInvestorPayload = (EndInvestorPayload) o;
+ return Objects.equals(this.vaultAccountId, endInvestorPayload.vaultAccountId)
+ && Objects.equals(this.asset, endInvestorPayload.asset)
+ && Objects.equals(this.endInvestor, endInvestorPayload.endInvestor);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(vaultAccountId, asset, endInvestor);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class EndInvestorPayload {\n");
+ sb.append(" vaultAccountId: ").append(toIndentedString(vaultAccountId)).append("\n");
+ sb.append(" asset: ").append(toIndentedString(asset)).append("\n");
+ sb.append(" endInvestor: ").append(toIndentedString(endInvestor)).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 `vaultAccountId` to the URL query string
+ if (getVaultAccountId() != null) {
+ joiner.add(
+ String.format(
+ "%svaultAccountId%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getVaultAccountId()))));
+ }
+
+ // 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 `endInvestor` to the URL query string
+ if (getEndInvestor() != null) {
+ joiner.add(
+ String.format(
+ "%sendInvestor%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getEndInvestor()))));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/GetFindingsExternalResponse.java b/src/main/java/com/fireblocks/sdk/model/GetFindingsExternalResponse.java
index 3bd3dca8..bdc12070 100644
--- a/src/main/java/com/fireblocks/sdk/model/GetFindingsExternalResponse.java
+++ b/src/main/java/com/fireblocks/sdk/model/GetFindingsExternalResponse.java
@@ -23,7 +23,7 @@
import java.util.Objects;
import java.util.StringJoiner;
-/** A paginated list of FSPM findings */
+/** GetFindingsExternalResponse */
@JsonPropertyOrder({
GetFindingsExternalResponse.JSON_PROPERTY_DATA,
GetFindingsExternalResponse.JSON_PROPERTY_TOTAL,
diff --git a/src/main/java/com/fireblocks/sdk/model/ListApprovalsResponse.java b/src/main/java/com/fireblocks/sdk/model/ListApprovalsResponse.java
new file mode 100644
index 00000000..e6d7eb8b
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/ListApprovalsResponse.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;
+
+/** ListApprovalsResponse */
+@JsonPropertyOrder({
+ ListApprovalsResponse.JSON_PROPERTY_DATA,
+ ListApprovalsResponse.JSON_PROPERTY_NEXT
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class ListApprovalsResponse {
+ 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 ListApprovalsResponse() {}
+
+ @JsonCreator
+ public ListApprovalsResponse(
+ @JsonProperty(value = JSON_PROPERTY_DATA, required = true)
+ List data) {
+ this.data = data;
+ }
+
+ public ListApprovalsResponse data(@jakarta.annotation.Nonnull List data) {
+ this.data = data;
+ return this;
+ }
+
+ public ListApprovalsResponse addDataItem(ApprovalRequestItem dataItem) {
+ if (this.data == null) {
+ this.data = new ArrayList<>();
+ }
+ this.data.add(dataItem);
+ return this;
+ }
+
+ /**
+ * The approval requests the authenticated user is eligible to act on.
+ *
+ * @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 ListApprovalsResponse 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 ListApprovalsResponse object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ListApprovalsResponse listApprovalsResponse = (ListApprovalsResponse) o;
+ return Objects.equals(this.data, listApprovalsResponse.data)
+ && Objects.equals(this.next, listApprovalsResponse.next);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(data, next);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ListApprovalsResponse {\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/OfferResponse.java b/src/main/java/com/fireblocks/sdk/model/OfferResponse.java
new file mode 100644
index 00000000..4473657a
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/OfferResponse.java
@@ -0,0 +1,413 @@
+/*
+ * 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.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.MapperFeature;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
+import com.fasterxml.jackson.databind.ser.std.StdSerializer;
+import com.fireblocks.sdk.JSON;
+import java.io.IOException;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.StringJoiner;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+@JsonDeserialize(using = OfferResponse.OfferResponseDeserializer.class)
+@JsonSerialize(using = OfferResponse.OfferResponseSerializer.class)
+public class OfferResponse extends AbstractOpenApiSchema {
+ private static final Logger log = Logger.getLogger(OfferResponse.class.getName());
+
+ public static class OfferResponseSerializer extends StdSerializer {
+ public OfferResponseSerializer(Class t) {
+ super(t);
+ }
+
+ public OfferResponseSerializer() {
+ this(null);
+ }
+
+ @Override
+ public void serialize(OfferResponse value, JsonGenerator jgen, SerializerProvider provider)
+ throws IOException, JsonProcessingException {
+ jgen.writeObject(value.getActualInstance());
+ }
+ }
+
+ public static class OfferResponseDeserializer extends StdDeserializer {
+ public OfferResponseDeserializer() {
+ this(OfferResponse.class);
+ }
+
+ public OfferResponseDeserializer(Class> vc) {
+ super(vc);
+ }
+
+ @Override
+ public OfferResponse deserialize(JsonParser jp, DeserializationContext ctxt)
+ throws IOException, JsonProcessingException {
+ JsonNode tree = jp.readValueAsTree();
+ Object deserialized = null;
+ boolean typeCoercion = ctxt.isEnabled(MapperFeature.ALLOW_COERCION_OF_SCALARS);
+ int match = 0;
+ JsonToken token = tree.traverse(jp.getCodec()).nextToken();
+ // deserialize OfferResponseAllocation
+ try {
+ boolean attemptParsing = true;
+ // ensure that we respect type coercion as set on the client ObjectMapper
+ if (OfferResponseAllocation.class.equals(Integer.class)
+ || OfferResponseAllocation.class.equals(Long.class)
+ || OfferResponseAllocation.class.equals(Float.class)
+ || OfferResponseAllocation.class.equals(Double.class)
+ || OfferResponseAllocation.class.equals(Boolean.class)
+ || OfferResponseAllocation.class.equals(String.class)) {
+ attemptParsing = typeCoercion;
+ if (!attemptParsing) {
+ attemptParsing |=
+ ((OfferResponseAllocation.class.equals(Integer.class)
+ || OfferResponseAllocation.class.equals(Long.class))
+ && token == JsonToken.VALUE_NUMBER_INT);
+ attemptParsing |=
+ ((OfferResponseAllocation.class.equals(Float.class)
+ || OfferResponseAllocation.class.equals(
+ Double.class))
+ && token == JsonToken.VALUE_NUMBER_FLOAT);
+ attemptParsing |=
+ (OfferResponseAllocation.class.equals(Boolean.class)
+ && (token == JsonToken.VALUE_FALSE
+ || token == JsonToken.VALUE_TRUE));
+ attemptParsing |=
+ (OfferResponseAllocation.class.equals(String.class)
+ && token == JsonToken.VALUE_STRING);
+ }
+ }
+ if (attemptParsing) {
+ deserialized =
+ tree.traverse(jp.getCodec()).readValueAs(OfferResponseAllocation.class);
+ // TODO: there is no validation against JSON schema constraints
+ // (min, max, enum, pattern...), this does not perform a strict JSON
+ // validation, which means the 'match' count may be higher than it should be.
+ match++;
+ log.log(Level.FINER, "Input data matches schema 'OfferResponseAllocation'");
+ }
+ } catch (Exception e) {
+ // deserialization failed, continue
+ log.log(
+ Level.FINER,
+ "Input data does not match schema 'OfferResponseAllocation'",
+ e);
+ }
+
+ // deserialize OfferResponseOnboarding
+ try {
+ boolean attemptParsing = true;
+ // ensure that we respect type coercion as set on the client ObjectMapper
+ if (OfferResponseOnboarding.class.equals(Integer.class)
+ || OfferResponseOnboarding.class.equals(Long.class)
+ || OfferResponseOnboarding.class.equals(Float.class)
+ || OfferResponseOnboarding.class.equals(Double.class)
+ || OfferResponseOnboarding.class.equals(Boolean.class)
+ || OfferResponseOnboarding.class.equals(String.class)) {
+ attemptParsing = typeCoercion;
+ if (!attemptParsing) {
+ attemptParsing |=
+ ((OfferResponseOnboarding.class.equals(Integer.class)
+ || OfferResponseOnboarding.class.equals(Long.class))
+ && token == JsonToken.VALUE_NUMBER_INT);
+ attemptParsing |=
+ ((OfferResponseOnboarding.class.equals(Float.class)
+ || OfferResponseOnboarding.class.equals(
+ Double.class))
+ && token == JsonToken.VALUE_NUMBER_FLOAT);
+ attemptParsing |=
+ (OfferResponseOnboarding.class.equals(Boolean.class)
+ && (token == JsonToken.VALUE_FALSE
+ || token == JsonToken.VALUE_TRUE));
+ attemptParsing |=
+ (OfferResponseOnboarding.class.equals(String.class)
+ && token == JsonToken.VALUE_STRING);
+ }
+ }
+ if (attemptParsing) {
+ deserialized =
+ tree.traverse(jp.getCodec()).readValueAs(OfferResponseOnboarding.class);
+ // TODO: there is no validation against JSON schema constraints
+ // (min, max, enum, pattern...), this does not perform a strict JSON
+ // validation, which means the 'match' count may be higher than it should be.
+ match++;
+ log.log(Level.FINER, "Input data matches schema 'OfferResponseOnboarding'");
+ }
+ } catch (Exception e) {
+ // deserialization failed, continue
+ log.log(
+ Level.FINER,
+ "Input data does not match schema 'OfferResponseOnboarding'",
+ e);
+ }
+
+ // deserialize OfferResponseTransfer
+ try {
+ boolean attemptParsing = true;
+ // ensure that we respect type coercion as set on the client ObjectMapper
+ if (OfferResponseTransfer.class.equals(Integer.class)
+ || OfferResponseTransfer.class.equals(Long.class)
+ || OfferResponseTransfer.class.equals(Float.class)
+ || OfferResponseTransfer.class.equals(Double.class)
+ || OfferResponseTransfer.class.equals(Boolean.class)
+ || OfferResponseTransfer.class.equals(String.class)) {
+ attemptParsing = typeCoercion;
+ if (!attemptParsing) {
+ attemptParsing |=
+ ((OfferResponseTransfer.class.equals(Integer.class)
+ || OfferResponseTransfer.class.equals(Long.class))
+ && token == JsonToken.VALUE_NUMBER_INT);
+ attemptParsing |=
+ ((OfferResponseTransfer.class.equals(Float.class)
+ || OfferResponseTransfer.class.equals(Double.class))
+ && token == JsonToken.VALUE_NUMBER_FLOAT);
+ attemptParsing |=
+ (OfferResponseTransfer.class.equals(Boolean.class)
+ && (token == JsonToken.VALUE_FALSE
+ || token == JsonToken.VALUE_TRUE));
+ attemptParsing |=
+ (OfferResponseTransfer.class.equals(String.class)
+ && token == JsonToken.VALUE_STRING);
+ }
+ }
+ if (attemptParsing) {
+ deserialized =
+ tree.traverse(jp.getCodec()).readValueAs(OfferResponseTransfer.class);
+ // TODO: there is no validation against JSON schema constraints
+ // (min, max, enum, pattern...), this does not perform a strict JSON
+ // validation, which means the 'match' count may be higher than it should be.
+ match++;
+ log.log(Level.FINER, "Input data matches schema 'OfferResponseTransfer'");
+ }
+ } catch (Exception e) {
+ // deserialization failed, continue
+ log.log(Level.FINER, "Input data does not match schema 'OfferResponseTransfer'", e);
+ }
+
+ if (match == 1) {
+ OfferResponse ret = new OfferResponse();
+ ret.setActualInstance(deserialized);
+ return ret;
+ }
+ throw new IOException(
+ String.format(
+ "Failed deserialization for OfferResponse: %d classes match result,"
+ + " expected 1",
+ match));
+ }
+
+ /** Handle deserialization of the 'null' value. */
+ @Override
+ public OfferResponse getNullValue(DeserializationContext ctxt) throws JsonMappingException {
+ throw new JsonMappingException(ctxt.getParser(), "OfferResponse cannot be null");
+ }
+ }
+
+ // store a list of schema names defined in oneOf
+ public static final Map> schemas = new HashMap<>();
+
+ public OfferResponse() {
+ super("oneOf", Boolean.FALSE);
+ }
+
+ public OfferResponse(OfferResponseAllocation o) {
+ super("oneOf", Boolean.FALSE);
+ setActualInstance(o);
+ }
+
+ public OfferResponse(OfferResponseOnboarding o) {
+ super("oneOf", Boolean.FALSE);
+ setActualInstance(o);
+ }
+
+ public OfferResponse(OfferResponseTransfer o) {
+ super("oneOf", Boolean.FALSE);
+ setActualInstance(o);
+ }
+
+ static {
+ schemas.put("OfferResponseAllocation", OfferResponseAllocation.class);
+ schemas.put("OfferResponseOnboarding", OfferResponseOnboarding.class);
+ schemas.put("OfferResponseTransfer", OfferResponseTransfer.class);
+ JSON.registerDescendants(OfferResponse.class, Collections.unmodifiableMap(schemas));
+ // Initialize and register the discriminator mappings.
+ Map> mappings = new HashMap>();
+ mappings.put("ALLOCATIONS", OfferResponseAllocation.class);
+ mappings.put("ONBOARDING", OfferResponseOnboarding.class);
+ mappings.put("TRANSFERS", OfferResponseTransfer.class);
+ mappings.put("OfferResponseAllocation", OfferResponseAllocation.class);
+ mappings.put("OfferResponseOnboarding", OfferResponseOnboarding.class);
+ mappings.put("OfferResponseTransfer", OfferResponseTransfer.class);
+ mappings.put("OfferResponse", OfferResponse.class);
+ JSON.registerDiscriminator(OfferResponse.class, "domain", mappings);
+ }
+
+ @Override
+ public Map> getSchemas() {
+ return OfferResponse.schemas;
+ }
+
+ /**
+ * Set the instance that matches the oneOf child schema, check the instance parameter is valid
+ * against the oneOf child schemas: OfferResponseAllocation, OfferResponseOnboarding,
+ * OfferResponseTransfer
+ *
+ * It could be an instance of the 'oneOf' schemas. The oneOf child schemas may themselves be
+ * a composed schema (allOf, anyOf, oneOf).
+ */
+ @Override
+ public void setActualInstance(Object instance) {
+ if (JSON.isInstanceOf(OfferResponseAllocation.class, instance, new HashSet>())) {
+ super.setActualInstance(instance);
+ return;
+ }
+
+ if (JSON.isInstanceOf(OfferResponseOnboarding.class, instance, new HashSet>())) {
+ super.setActualInstance(instance);
+ return;
+ }
+
+ if (JSON.isInstanceOf(OfferResponseTransfer.class, instance, new HashSet>())) {
+ super.setActualInstance(instance);
+ return;
+ }
+
+ throw new RuntimeException(
+ "Invalid instance type. Must be OfferResponseAllocation, OfferResponseOnboarding,"
+ + " OfferResponseTransfer");
+ }
+
+ /**
+ * Get the actual instance, which can be the following: OfferResponseAllocation,
+ * OfferResponseOnboarding, OfferResponseTransfer
+ *
+ * @return The actual instance (OfferResponseAllocation, OfferResponseOnboarding,
+ * OfferResponseTransfer)
+ */
+ @Override
+ public Object getActualInstance() {
+ return super.getActualInstance();
+ }
+
+ /**
+ * Get the actual instance of `OfferResponseAllocation`. If the actual instance is not
+ * `OfferResponseAllocation`, the ClassCastException will be thrown.
+ *
+ * @return The actual instance of `OfferResponseAllocation`
+ * @throws ClassCastException if the instance is not `OfferResponseAllocation`
+ */
+ public OfferResponseAllocation getOfferResponseAllocation() throws ClassCastException {
+ return (OfferResponseAllocation) super.getActualInstance();
+ }
+
+ /**
+ * Get the actual instance of `OfferResponseOnboarding`. If the actual instance is not
+ * `OfferResponseOnboarding`, the ClassCastException will be thrown.
+ *
+ * @return The actual instance of `OfferResponseOnboarding`
+ * @throws ClassCastException if the instance is not `OfferResponseOnboarding`
+ */
+ public OfferResponseOnboarding getOfferResponseOnboarding() throws ClassCastException {
+ return (OfferResponseOnboarding) super.getActualInstance();
+ }
+
+ /**
+ * Get the actual instance of `OfferResponseTransfer`. If the actual instance is not
+ * `OfferResponseTransfer`, the ClassCastException will be thrown.
+ *
+ * @return The actual instance of `OfferResponseTransfer`
+ * @throws ClassCastException if the instance is not `OfferResponseTransfer`
+ */
+ public OfferResponseTransfer getOfferResponseTransfer() throws ClassCastException {
+ return (OfferResponseTransfer) super.getActualInstance();
+ }
+
+ /**
+ * 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("&");
+
+ if (getActualInstance() instanceof OfferResponseOnboarding) {
+ if (getActualInstance() != null) {
+ joiner.add(
+ ((OfferResponseOnboarding) getActualInstance())
+ .toUrlQueryString(prefix + "one_of_0" + suffix));
+ }
+ return joiner.toString();
+ }
+ if (getActualInstance() instanceof OfferResponseAllocation) {
+ if (getActualInstance() != null) {
+ joiner.add(
+ ((OfferResponseAllocation) getActualInstance())
+ .toUrlQueryString(prefix + "one_of_1" + suffix));
+ }
+ return joiner.toString();
+ }
+ if (getActualInstance() instanceof OfferResponseTransfer) {
+ if (getActualInstance() != null) {
+ joiner.add(
+ ((OfferResponseTransfer) getActualInstance())
+ .toUrlQueryString(prefix + "one_of_2" + suffix));
+ }
+ return joiner.toString();
+ }
+ return null;
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/OfferResponseAccepted.java b/src/main/java/com/fireblocks/sdk/model/OfferResponseAccepted.java
new file mode 100644
index 00000000..2a7ae630
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/OfferResponseAccepted.java
@@ -0,0 +1,235 @@
+/*
+ * 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 outgoing transaction that carries the response. Its on-chain outcome arrives by webhook as a
+ * status update on this transaction.
+ */
+@JsonPropertyOrder({
+ OfferResponseAccepted.JSON_PROPERTY_TRANSACTION_ID,
+ OfferResponseAccepted.JSON_PROPERTY_STATUS,
+ OfferResponseAccepted.JSON_PROPERTY_RESPONSE_TYPE
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class OfferResponseAccepted {
+ public static final String JSON_PROPERTY_TRANSACTION_ID = "transactionId";
+ @jakarta.annotation.Nonnull private String transactionId;
+
+ public static final String JSON_PROPERTY_STATUS = "status";
+ @jakarta.annotation.Nonnull private String status;
+
+ public static final String JSON_PROPERTY_RESPONSE_TYPE = "responseType";
+ @jakarta.annotation.Nonnull private String responseType;
+
+ public OfferResponseAccepted() {}
+
+ @JsonCreator
+ public OfferResponseAccepted(
+ @JsonProperty(value = JSON_PROPERTY_TRANSACTION_ID, required = true)
+ String transactionId,
+ @JsonProperty(value = JSON_PROPERTY_STATUS, required = true) String status,
+ @JsonProperty(value = JSON_PROPERTY_RESPONSE_TYPE, required = true)
+ String responseType) {
+ this.transactionId = transactionId;
+ this.status = status;
+ this.responseType = responseType;
+ }
+
+ public OfferResponseAccepted transactionId(@jakarta.annotation.Nonnull String transactionId) {
+ this.transactionId = transactionId;
+ return this;
+ }
+
+ /**
+ * The outgoing response transaction.
+ *
+ * @return transactionId
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_TRANSACTION_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getTransactionId() {
+ return transactionId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_TRANSACTION_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setTransactionId(@jakarta.annotation.Nonnull String transactionId) {
+ this.transactionId = transactionId;
+ }
+
+ public OfferResponseAccepted status(@jakarta.annotation.Nonnull String status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * The transaction's status at the time of this response — `SUBMITTED`.
+ *
+ * @return status
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_STATUS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getStatus() {
+ return status;
+ }
+
+ @JsonProperty(JSON_PROPERTY_STATUS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setStatus(@jakarta.annotation.Nonnull String status) {
+ this.status = status;
+ }
+
+ public OfferResponseAccepted responseType(@jakarta.annotation.Nonnull String responseType) {
+ this.responseType = responseType;
+ return this;
+ }
+
+ /**
+ * The response type you sent, echoed back so you can correlate without re-reading.
+ *
+ * @return responseType
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_RESPONSE_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getResponseType() {
+ return responseType;
+ }
+
+ @JsonProperty(JSON_PROPERTY_RESPONSE_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setResponseType(@jakarta.annotation.Nonnull String responseType) {
+ this.responseType = responseType;
+ }
+
+ /** Return true if this OfferResponseAccepted object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ OfferResponseAccepted offerResponseAccepted = (OfferResponseAccepted) o;
+ return Objects.equals(this.transactionId, offerResponseAccepted.transactionId)
+ && Objects.equals(this.status, offerResponseAccepted.status)
+ && Objects.equals(this.responseType, offerResponseAccepted.responseType);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(transactionId, status, responseType);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class OfferResponseAccepted {\n");
+ sb.append(" transactionId: ").append(toIndentedString(transactionId)).append("\n");
+ sb.append(" status: ").append(toIndentedString(status)).append("\n");
+ sb.append(" responseType: ").append(toIndentedString(responseType)).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 `transactionId` to the URL query string
+ if (getTransactionId() != null) {
+ joiner.add(
+ String.format(
+ "%stransactionId%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getTransactionId()))));
+ }
+
+ // 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 `responseType` to the URL query string
+ if (getResponseType() != null) {
+ joiner.add(
+ String.format(
+ "%sresponseType%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getResponseType()))));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/OfferResponseAllocation.java b/src/main/java/com/fireblocks/sdk/model/OfferResponseAllocation.java
new file mode 100644
index 00000000..35ae9a2b
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/OfferResponseAllocation.java
@@ -0,0 +1,218 @@
+/*
+ * 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;
+
+/** OfferResponseAllocation */
+@JsonPropertyOrder({
+ OfferResponseAllocation.JSON_PROPERTY_DOMAIN,
+ OfferResponseAllocation.JSON_PROPERTY_RESPONSE
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class OfferResponseAllocation {
+ /** Which offer domain this response belongs to. Selects the shape of `response`. */
+ public enum DomainEnum {
+ ALLOCATIONS(String.valueOf("ALLOCATIONS"));
+
+ private String value;
+
+ DomainEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static DomainEnum fromValue(String value) {
+ for (DomainEnum b : DomainEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_DOMAIN = "domain";
+ @jakarta.annotation.Nonnull private DomainEnum domain;
+
+ public static final String JSON_PROPERTY_RESPONSE = "response";
+ @jakarta.annotation.Nonnull private AllocationResponse response;
+
+ public OfferResponseAllocation() {}
+
+ @JsonCreator
+ public OfferResponseAllocation(
+ @JsonProperty(value = JSON_PROPERTY_DOMAIN, required = true) DomainEnum domain,
+ @JsonProperty(value = JSON_PROPERTY_RESPONSE, required = true)
+ AllocationResponse response) {
+ this.domain = domain;
+ this.response = response;
+ }
+
+ public OfferResponseAllocation domain(@jakarta.annotation.Nonnull DomainEnum domain) {
+ this.domain = domain;
+ return this;
+ }
+
+ /**
+ * Which offer domain this response belongs to. Selects the shape of `response`.
+ *
+ * @return domain
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_DOMAIN)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public DomainEnum getDomain() {
+ return domain;
+ }
+
+ @JsonProperty(JSON_PROPERTY_DOMAIN)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setDomain(@jakarta.annotation.Nonnull DomainEnum domain) {
+ this.domain = domain;
+ }
+
+ public OfferResponseAllocation response(
+ @jakarta.annotation.Nonnull AllocationResponse response) {
+ this.response = response;
+ return this;
+ }
+
+ /**
+ * Get response
+ *
+ * @return response
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_RESPONSE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public AllocationResponse getResponse() {
+ return response;
+ }
+
+ @JsonProperty(JSON_PROPERTY_RESPONSE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setResponse(@jakarta.annotation.Nonnull AllocationResponse response) {
+ this.response = response;
+ }
+
+ /** Return true if this OfferResponseAllocation object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ OfferResponseAllocation offerResponseAllocation = (OfferResponseAllocation) o;
+ return Objects.equals(this.domain, offerResponseAllocation.domain)
+ && Objects.equals(this.response, offerResponseAllocation.response);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(domain, response);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class OfferResponseAllocation {\n");
+ sb.append(" domain: ").append(toIndentedString(domain)).append("\n");
+ sb.append(" response: ").append(toIndentedString(response)).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 `domain` to the URL query string
+ if (getDomain() != null) {
+ joiner.add(
+ String.format(
+ "%sdomain%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getDomain()))));
+ }
+
+ // add `response` to the URL query string
+ if (getResponse() != null) {
+ joiner.add(getResponse().toUrlQueryString(prefix + "response" + suffix));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/OfferResponseOnboarding.java b/src/main/java/com/fireblocks/sdk/model/OfferResponseOnboarding.java
new file mode 100644
index 00000000..8415f197
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/OfferResponseOnboarding.java
@@ -0,0 +1,218 @@
+/*
+ * 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;
+
+/** OfferResponseOnboarding */
+@JsonPropertyOrder({
+ OfferResponseOnboarding.JSON_PROPERTY_DOMAIN,
+ OfferResponseOnboarding.JSON_PROPERTY_RESPONSE
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class OfferResponseOnboarding {
+ /** Which offer domain this response belongs to. Selects the shape of `response`. */
+ public enum DomainEnum {
+ ONBOARDING(String.valueOf("ONBOARDING"));
+
+ private String value;
+
+ DomainEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static DomainEnum fromValue(String value) {
+ for (DomainEnum b : DomainEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_DOMAIN = "domain";
+ @jakarta.annotation.Nonnull private DomainEnum domain;
+
+ public static final String JSON_PROPERTY_RESPONSE = "response";
+ @jakarta.annotation.Nonnull private OnboardingResponse response;
+
+ public OfferResponseOnboarding() {}
+
+ @JsonCreator
+ public OfferResponseOnboarding(
+ @JsonProperty(value = JSON_PROPERTY_DOMAIN, required = true) DomainEnum domain,
+ @JsonProperty(value = JSON_PROPERTY_RESPONSE, required = true)
+ OnboardingResponse response) {
+ this.domain = domain;
+ this.response = response;
+ }
+
+ public OfferResponseOnboarding domain(@jakarta.annotation.Nonnull DomainEnum domain) {
+ this.domain = domain;
+ return this;
+ }
+
+ /**
+ * Which offer domain this response belongs to. Selects the shape of `response`.
+ *
+ * @return domain
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_DOMAIN)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public DomainEnum getDomain() {
+ return domain;
+ }
+
+ @JsonProperty(JSON_PROPERTY_DOMAIN)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setDomain(@jakarta.annotation.Nonnull DomainEnum domain) {
+ this.domain = domain;
+ }
+
+ public OfferResponseOnboarding response(
+ @jakarta.annotation.Nonnull OnboardingResponse response) {
+ this.response = response;
+ return this;
+ }
+
+ /**
+ * Get response
+ *
+ * @return response
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_RESPONSE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public OnboardingResponse getResponse() {
+ return response;
+ }
+
+ @JsonProperty(JSON_PROPERTY_RESPONSE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setResponse(@jakarta.annotation.Nonnull OnboardingResponse response) {
+ this.response = response;
+ }
+
+ /** Return true if this OfferResponseOnboarding object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ OfferResponseOnboarding offerResponseOnboarding = (OfferResponseOnboarding) o;
+ return Objects.equals(this.domain, offerResponseOnboarding.domain)
+ && Objects.equals(this.response, offerResponseOnboarding.response);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(domain, response);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class OfferResponseOnboarding {\n");
+ sb.append(" domain: ").append(toIndentedString(domain)).append("\n");
+ sb.append(" response: ").append(toIndentedString(response)).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 `domain` to the URL query string
+ if (getDomain() != null) {
+ joiner.add(
+ String.format(
+ "%sdomain%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getDomain()))));
+ }
+
+ // add `response` to the URL query string
+ if (getResponse() != null) {
+ joiner.add(getResponse().toUrlQueryString(prefix + "response" + suffix));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/OfferResponseTransfer.java b/src/main/java/com/fireblocks/sdk/model/OfferResponseTransfer.java
new file mode 100644
index 00000000..aa6f3fe4
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/OfferResponseTransfer.java
@@ -0,0 +1,217 @@
+/*
+ * 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;
+
+/** OfferResponseTransfer */
+@JsonPropertyOrder({
+ OfferResponseTransfer.JSON_PROPERTY_DOMAIN,
+ OfferResponseTransfer.JSON_PROPERTY_RESPONSE
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class OfferResponseTransfer {
+ /** Which offer domain this response belongs to. Selects the shape of `response`. */
+ public enum DomainEnum {
+ TRANSFERS(String.valueOf("TRANSFERS"));
+
+ private String value;
+
+ DomainEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static DomainEnum fromValue(String value) {
+ for (DomainEnum b : DomainEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_DOMAIN = "domain";
+ @jakarta.annotation.Nonnull private DomainEnum domain;
+
+ public static final String JSON_PROPERTY_RESPONSE = "response";
+ @jakarta.annotation.Nonnull private TransferResponse response;
+
+ public OfferResponseTransfer() {}
+
+ @JsonCreator
+ public OfferResponseTransfer(
+ @JsonProperty(value = JSON_PROPERTY_DOMAIN, required = true) DomainEnum domain,
+ @JsonProperty(value = JSON_PROPERTY_RESPONSE, required = true)
+ TransferResponse response) {
+ this.domain = domain;
+ this.response = response;
+ }
+
+ public OfferResponseTransfer domain(@jakarta.annotation.Nonnull DomainEnum domain) {
+ this.domain = domain;
+ return this;
+ }
+
+ /**
+ * Which offer domain this response belongs to. Selects the shape of `response`.
+ *
+ * @return domain
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_DOMAIN)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public DomainEnum getDomain() {
+ return domain;
+ }
+
+ @JsonProperty(JSON_PROPERTY_DOMAIN)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setDomain(@jakarta.annotation.Nonnull DomainEnum domain) {
+ this.domain = domain;
+ }
+
+ public OfferResponseTransfer response(@jakarta.annotation.Nonnull TransferResponse response) {
+ this.response = response;
+ return this;
+ }
+
+ /**
+ * Get response
+ *
+ * @return response
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_RESPONSE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public TransferResponse getResponse() {
+ return response;
+ }
+
+ @JsonProperty(JSON_PROPERTY_RESPONSE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setResponse(@jakarta.annotation.Nonnull TransferResponse response) {
+ this.response = response;
+ }
+
+ /** Return true if this OfferResponseTransfer object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ OfferResponseTransfer offerResponseTransfer = (OfferResponseTransfer) o;
+ return Objects.equals(this.domain, offerResponseTransfer.domain)
+ && Objects.equals(this.response, offerResponseTransfer.response);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(domain, response);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class OfferResponseTransfer {\n");
+ sb.append(" domain: ").append(toIndentedString(domain)).append("\n");
+ sb.append(" response: ").append(toIndentedString(response)).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 `domain` to the URL query string
+ if (getDomain() != null) {
+ joiner.add(
+ String.format(
+ "%sdomain%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getDomain()))));
+ }
+
+ // add `response` to the URL query string
+ if (getResponse() != null) {
+ joiner.add(getResponse().toUrlQueryString(prefix + "response" + suffix));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/OnboardingResponse.java b/src/main/java/com/fireblocks/sdk/model/OnboardingResponse.java
new file mode 100644
index 00000000..a0957845
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/OnboardingResponse.java
@@ -0,0 +1,526 @@
+/*
+ * 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.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.MapperFeature;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
+import com.fasterxml.jackson.databind.ser.std.StdSerializer;
+import com.fireblocks.sdk.JSON;
+import java.io.IOException;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.StringJoiner;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+@JsonDeserialize(using = OnboardingResponse.OnboardingResponseDeserializer.class)
+@JsonSerialize(using = OnboardingResponse.OnboardingResponseSerializer.class)
+public class OnboardingResponse extends AbstractOpenApiSchema {
+ private static final Logger log = Logger.getLogger(OnboardingResponse.class.getName());
+
+ public static class OnboardingResponseSerializer extends StdSerializer {
+ public OnboardingResponseSerializer(Class t) {
+ super(t);
+ }
+
+ public OnboardingResponseSerializer() {
+ this(null);
+ }
+
+ @Override
+ public void serialize(
+ OnboardingResponse value, JsonGenerator jgen, SerializerProvider provider)
+ throws IOException, JsonProcessingException {
+ jgen.writeObject(value.getActualInstance());
+ }
+ }
+
+ public static class OnboardingResponseDeserializer extends StdDeserializer {
+ public OnboardingResponseDeserializer() {
+ this(OnboardingResponse.class);
+ }
+
+ public OnboardingResponseDeserializer(Class> vc) {
+ super(vc);
+ }
+
+ @Override
+ public OnboardingResponse deserialize(JsonParser jp, DeserializationContext ctxt)
+ throws IOException, JsonProcessingException {
+ JsonNode tree = jp.readValueAsTree();
+ Object deserialized = null;
+ boolean typeCoercion = ctxt.isEnabled(MapperFeature.ALLOW_COERCION_OF_SCALARS);
+ int match = 0;
+ JsonToken token = tree.traverse(jp.getCodec()).nextToken();
+ // deserialize OnboardingResponseDtccAccept
+ try {
+ boolean attemptParsing = true;
+ // ensure that we respect type coercion as set on the client ObjectMapper
+ if (OnboardingResponseDtccAccept.class.equals(Integer.class)
+ || OnboardingResponseDtccAccept.class.equals(Long.class)
+ || OnboardingResponseDtccAccept.class.equals(Float.class)
+ || OnboardingResponseDtccAccept.class.equals(Double.class)
+ || OnboardingResponseDtccAccept.class.equals(Boolean.class)
+ || OnboardingResponseDtccAccept.class.equals(String.class)) {
+ attemptParsing = typeCoercion;
+ if (!attemptParsing) {
+ attemptParsing |=
+ ((OnboardingResponseDtccAccept.class.equals(Integer.class)
+ || OnboardingResponseDtccAccept.class.equals(
+ Long.class))
+ && token == JsonToken.VALUE_NUMBER_INT);
+ attemptParsing |=
+ ((OnboardingResponseDtccAccept.class.equals(Float.class)
+ || OnboardingResponseDtccAccept.class.equals(
+ Double.class))
+ && token == JsonToken.VALUE_NUMBER_FLOAT);
+ attemptParsing |=
+ (OnboardingResponseDtccAccept.class.equals(Boolean.class)
+ && (token == JsonToken.VALUE_FALSE
+ || token == JsonToken.VALUE_TRUE));
+ attemptParsing |=
+ (OnboardingResponseDtccAccept.class.equals(String.class)
+ && token == JsonToken.VALUE_STRING);
+ }
+ }
+ if (attemptParsing) {
+ deserialized =
+ tree.traverse(jp.getCodec())
+ .readValueAs(OnboardingResponseDtccAccept.class);
+ // TODO: there is no validation against JSON schema constraints
+ // (min, max, enum, pattern...), this does not perform a strict JSON
+ // validation, which means the 'match' count may be higher than it should be.
+ match++;
+ log.log(
+ Level.FINER,
+ "Input data matches schema 'OnboardingResponseDtccAccept'");
+ }
+ } catch (Exception e) {
+ // deserialization failed, continue
+ log.log(
+ Level.FINER,
+ "Input data does not match schema 'OnboardingResponseDtccAccept'",
+ e);
+ }
+
+ // deserialize OnboardingResponseDtccReject
+ try {
+ boolean attemptParsing = true;
+ // ensure that we respect type coercion as set on the client ObjectMapper
+ if (OnboardingResponseDtccReject.class.equals(Integer.class)
+ || OnboardingResponseDtccReject.class.equals(Long.class)
+ || OnboardingResponseDtccReject.class.equals(Float.class)
+ || OnboardingResponseDtccReject.class.equals(Double.class)
+ || OnboardingResponseDtccReject.class.equals(Boolean.class)
+ || OnboardingResponseDtccReject.class.equals(String.class)) {
+ attemptParsing = typeCoercion;
+ if (!attemptParsing) {
+ attemptParsing |=
+ ((OnboardingResponseDtccReject.class.equals(Integer.class)
+ || OnboardingResponseDtccReject.class.equals(
+ Long.class))
+ && token == JsonToken.VALUE_NUMBER_INT);
+ attemptParsing |=
+ ((OnboardingResponseDtccReject.class.equals(Float.class)
+ || OnboardingResponseDtccReject.class.equals(
+ Double.class))
+ && token == JsonToken.VALUE_NUMBER_FLOAT);
+ attemptParsing |=
+ (OnboardingResponseDtccReject.class.equals(Boolean.class)
+ && (token == JsonToken.VALUE_FALSE
+ || token == JsonToken.VALUE_TRUE));
+ attemptParsing |=
+ (OnboardingResponseDtccReject.class.equals(String.class)
+ && token == JsonToken.VALUE_STRING);
+ }
+ }
+ if (attemptParsing) {
+ deserialized =
+ tree.traverse(jp.getCodec())
+ .readValueAs(OnboardingResponseDtccReject.class);
+ // TODO: there is no validation against JSON schema constraints
+ // (min, max, enum, pattern...), this does not perform a strict JSON
+ // validation, which means the 'match' count may be higher than it should be.
+ match++;
+ log.log(
+ Level.FINER,
+ "Input data matches schema 'OnboardingResponseDtccReject'");
+ }
+ } catch (Exception e) {
+ // deserialization failed, continue
+ log.log(
+ Level.FINER,
+ "Input data does not match schema 'OnboardingResponseDtccReject'",
+ e);
+ }
+
+ // deserialize OnboardingResponseTradewebAccept
+ try {
+ boolean attemptParsing = true;
+ // ensure that we respect type coercion as set on the client ObjectMapper
+ if (OnboardingResponseTradewebAccept.class.equals(Integer.class)
+ || OnboardingResponseTradewebAccept.class.equals(Long.class)
+ || OnboardingResponseTradewebAccept.class.equals(Float.class)
+ || OnboardingResponseTradewebAccept.class.equals(Double.class)
+ || OnboardingResponseTradewebAccept.class.equals(Boolean.class)
+ || OnboardingResponseTradewebAccept.class.equals(String.class)) {
+ attemptParsing = typeCoercion;
+ if (!attemptParsing) {
+ attemptParsing |=
+ ((OnboardingResponseTradewebAccept.class.equals(Integer.class)
+ || OnboardingResponseTradewebAccept.class.equals(
+ Long.class))
+ && token == JsonToken.VALUE_NUMBER_INT);
+ attemptParsing |=
+ ((OnboardingResponseTradewebAccept.class.equals(Float.class)
+ || OnboardingResponseTradewebAccept.class.equals(
+ Double.class))
+ && token == JsonToken.VALUE_NUMBER_FLOAT);
+ attemptParsing |=
+ (OnboardingResponseTradewebAccept.class.equals(Boolean.class)
+ && (token == JsonToken.VALUE_FALSE
+ || token == JsonToken.VALUE_TRUE));
+ attemptParsing |=
+ (OnboardingResponseTradewebAccept.class.equals(String.class)
+ && token == JsonToken.VALUE_STRING);
+ }
+ }
+ if (attemptParsing) {
+ deserialized =
+ tree.traverse(jp.getCodec())
+ .readValueAs(OnboardingResponseTradewebAccept.class);
+ // TODO: there is no validation against JSON schema constraints
+ // (min, max, enum, pattern...), this does not perform a strict JSON
+ // validation, which means the 'match' count may be higher than it should be.
+ match++;
+ log.log(
+ Level.FINER,
+ "Input data matches schema 'OnboardingResponseTradewebAccept'");
+ }
+ } catch (Exception e) {
+ // deserialization failed, continue
+ log.log(
+ Level.FINER,
+ "Input data does not match schema 'OnboardingResponseTradewebAccept'",
+ e);
+ }
+
+ // deserialize OnboardingResponseTradewebReject
+ try {
+ boolean attemptParsing = true;
+ // ensure that we respect type coercion as set on the client ObjectMapper
+ if (OnboardingResponseTradewebReject.class.equals(Integer.class)
+ || OnboardingResponseTradewebReject.class.equals(Long.class)
+ || OnboardingResponseTradewebReject.class.equals(Float.class)
+ || OnboardingResponseTradewebReject.class.equals(Double.class)
+ || OnboardingResponseTradewebReject.class.equals(Boolean.class)
+ || OnboardingResponseTradewebReject.class.equals(String.class)) {
+ attemptParsing = typeCoercion;
+ if (!attemptParsing) {
+ attemptParsing |=
+ ((OnboardingResponseTradewebReject.class.equals(Integer.class)
+ || OnboardingResponseTradewebReject.class.equals(
+ Long.class))
+ && token == JsonToken.VALUE_NUMBER_INT);
+ attemptParsing |=
+ ((OnboardingResponseTradewebReject.class.equals(Float.class)
+ || OnboardingResponseTradewebReject.class.equals(
+ Double.class))
+ && token == JsonToken.VALUE_NUMBER_FLOAT);
+ attemptParsing |=
+ (OnboardingResponseTradewebReject.class.equals(Boolean.class)
+ && (token == JsonToken.VALUE_FALSE
+ || token == JsonToken.VALUE_TRUE));
+ attemptParsing |=
+ (OnboardingResponseTradewebReject.class.equals(String.class)
+ && token == JsonToken.VALUE_STRING);
+ }
+ }
+ if (attemptParsing) {
+ deserialized =
+ tree.traverse(jp.getCodec())
+ .readValueAs(OnboardingResponseTradewebReject.class);
+ // TODO: there is no validation against JSON schema constraints
+ // (min, max, enum, pattern...), this does not perform a strict JSON
+ // validation, which means the 'match' count may be higher than it should be.
+ match++;
+ log.log(
+ Level.FINER,
+ "Input data matches schema 'OnboardingResponseTradewebReject'");
+ }
+ } catch (Exception e) {
+ // deserialization failed, continue
+ log.log(
+ Level.FINER,
+ "Input data does not match schema 'OnboardingResponseTradewebReject'",
+ e);
+ }
+
+ if (match == 1) {
+ OnboardingResponse ret = new OnboardingResponse();
+ ret.setActualInstance(deserialized);
+ return ret;
+ }
+ throw new IOException(
+ String.format(
+ "Failed deserialization for OnboardingResponse: %d classes match"
+ + " result, expected 1",
+ match));
+ }
+
+ /** Handle deserialization of the 'null' value. */
+ @Override
+ public OnboardingResponse getNullValue(DeserializationContext ctxt)
+ throws JsonMappingException {
+ throw new JsonMappingException(ctxt.getParser(), "OnboardingResponse cannot be null");
+ }
+ }
+
+ // store a list of schema names defined in oneOf
+ public static final Map> schemas = new HashMap<>();
+
+ public OnboardingResponse() {
+ super("oneOf", Boolean.FALSE);
+ }
+
+ public OnboardingResponse(OnboardingResponseDtccAccept o) {
+ super("oneOf", Boolean.FALSE);
+ setActualInstance(o);
+ }
+
+ public OnboardingResponse(OnboardingResponseDtccReject o) {
+ super("oneOf", Boolean.FALSE);
+ setActualInstance(o);
+ }
+
+ public OnboardingResponse(OnboardingResponseTradewebAccept o) {
+ super("oneOf", Boolean.FALSE);
+ setActualInstance(o);
+ }
+
+ public OnboardingResponse(OnboardingResponseTradewebReject o) {
+ super("oneOf", Boolean.FALSE);
+ setActualInstance(o);
+ }
+
+ static {
+ schemas.put("OnboardingResponseDtccAccept", OnboardingResponseDtccAccept.class);
+ schemas.put("OnboardingResponseDtccReject", OnboardingResponseDtccReject.class);
+ schemas.put("OnboardingResponseTradewebAccept", OnboardingResponseTradewebAccept.class);
+ schemas.put("OnboardingResponseTradewebReject", OnboardingResponseTradewebReject.class);
+ JSON.registerDescendants(OnboardingResponse.class, Collections.unmodifiableMap(schemas));
+ // Initialize and register the discriminator mappings.
+ Map> mappings = new HashMap>();
+ mappings.put("DTCC_END_INVESTOR_ONBOARDING_ACCEPT", OnboardingResponseDtccAccept.class);
+ mappings.put("DTCC_END_INVESTOR_ONBOARDING_REJECT", OnboardingResponseDtccReject.class);
+ mappings.put(
+ "TRADEWEB_COSIGNING_DELEGATION_ACCEPT", OnboardingResponseTradewebAccept.class);
+ mappings.put(
+ "TRADEWEB_COSIGNING_DELEGATION_REJECT", OnboardingResponseTradewebReject.class);
+ mappings.put("OnboardingResponseDtccAccept", OnboardingResponseDtccAccept.class);
+ mappings.put("OnboardingResponseDtccReject", OnboardingResponseDtccReject.class);
+ mappings.put("OnboardingResponseTradewebAccept", OnboardingResponseTradewebAccept.class);
+ mappings.put("OnboardingResponseTradewebReject", OnboardingResponseTradewebReject.class);
+ mappings.put("OnboardingResponse", OnboardingResponse.class);
+ JSON.registerDiscriminator(OnboardingResponse.class, "responseType", mappings);
+ }
+
+ @Override
+ public Map> getSchemas() {
+ return OnboardingResponse.schemas;
+ }
+
+ /**
+ * Set the instance that matches the oneOf child schema, check the instance parameter is valid
+ * against the oneOf child schemas: OnboardingResponseDtccAccept, OnboardingResponseDtccReject,
+ * OnboardingResponseTradewebAccept, OnboardingResponseTradewebReject
+ *
+ * It could be an instance of the 'oneOf' schemas. The oneOf child schemas may themselves be
+ * a composed schema (allOf, anyOf, oneOf).
+ */
+ @Override
+ public void setActualInstance(Object instance) {
+ if (JSON.isInstanceOf(
+ OnboardingResponseDtccAccept.class, instance, new HashSet>())) {
+ super.setActualInstance(instance);
+ return;
+ }
+
+ if (JSON.isInstanceOf(
+ OnboardingResponseDtccReject.class, instance, new HashSet>())) {
+ super.setActualInstance(instance);
+ return;
+ }
+
+ if (JSON.isInstanceOf(
+ OnboardingResponseTradewebAccept.class, instance, new HashSet>())) {
+ super.setActualInstance(instance);
+ return;
+ }
+
+ if (JSON.isInstanceOf(
+ OnboardingResponseTradewebReject.class, instance, new HashSet>())) {
+ super.setActualInstance(instance);
+ return;
+ }
+
+ throw new RuntimeException(
+ "Invalid instance type. Must be OnboardingResponseDtccAccept,"
+ + " OnboardingResponseDtccReject, OnboardingResponseTradewebAccept,"
+ + " OnboardingResponseTradewebReject");
+ }
+
+ /**
+ * Get the actual instance, which can be the following: OnboardingResponseDtccAccept,
+ * OnboardingResponseDtccReject, OnboardingResponseTradewebAccept,
+ * OnboardingResponseTradewebReject
+ *
+ * @return The actual instance (OnboardingResponseDtccAccept, OnboardingResponseDtccReject,
+ * OnboardingResponseTradewebAccept, OnboardingResponseTradewebReject)
+ */
+ @Override
+ public Object getActualInstance() {
+ return super.getActualInstance();
+ }
+
+ /**
+ * Get the actual instance of `OnboardingResponseDtccAccept`. If the actual instance is not
+ * `OnboardingResponseDtccAccept`, the ClassCastException will be thrown.
+ *
+ * @return The actual instance of `OnboardingResponseDtccAccept`
+ * @throws ClassCastException if the instance is not `OnboardingResponseDtccAccept`
+ */
+ public OnboardingResponseDtccAccept getOnboardingResponseDtccAccept()
+ throws ClassCastException {
+ return (OnboardingResponseDtccAccept) super.getActualInstance();
+ }
+
+ /**
+ * Get the actual instance of `OnboardingResponseDtccReject`. If the actual instance is not
+ * `OnboardingResponseDtccReject`, the ClassCastException will be thrown.
+ *
+ * @return The actual instance of `OnboardingResponseDtccReject`
+ * @throws ClassCastException if the instance is not `OnboardingResponseDtccReject`
+ */
+ public OnboardingResponseDtccReject getOnboardingResponseDtccReject()
+ throws ClassCastException {
+ return (OnboardingResponseDtccReject) super.getActualInstance();
+ }
+
+ /**
+ * Get the actual instance of `OnboardingResponseTradewebAccept`. If the actual instance is not
+ * `OnboardingResponseTradewebAccept`, the ClassCastException will be thrown.
+ *
+ * @return The actual instance of `OnboardingResponseTradewebAccept`
+ * @throws ClassCastException if the instance is not `OnboardingResponseTradewebAccept`
+ */
+ public OnboardingResponseTradewebAccept getOnboardingResponseTradewebAccept()
+ throws ClassCastException {
+ return (OnboardingResponseTradewebAccept) super.getActualInstance();
+ }
+
+ /**
+ * Get the actual instance of `OnboardingResponseTradewebReject`. If the actual instance is not
+ * `OnboardingResponseTradewebReject`, the ClassCastException will be thrown.
+ *
+ * @return The actual instance of `OnboardingResponseTradewebReject`
+ * @throws ClassCastException if the instance is not `OnboardingResponseTradewebReject`
+ */
+ public OnboardingResponseTradewebReject getOnboardingResponseTradewebReject()
+ throws ClassCastException {
+ return (OnboardingResponseTradewebReject) super.getActualInstance();
+ }
+
+ /**
+ * 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("&");
+
+ if (getActualInstance() instanceof OnboardingResponseDtccAccept) {
+ if (getActualInstance() != null) {
+ joiner.add(
+ ((OnboardingResponseDtccAccept) getActualInstance())
+ .toUrlQueryString(prefix + "one_of_0" + suffix));
+ }
+ return joiner.toString();
+ }
+ if (getActualInstance() instanceof OnboardingResponseDtccReject) {
+ if (getActualInstance() != null) {
+ joiner.add(
+ ((OnboardingResponseDtccReject) getActualInstance())
+ .toUrlQueryString(prefix + "one_of_1" + suffix));
+ }
+ return joiner.toString();
+ }
+ if (getActualInstance() instanceof OnboardingResponseTradewebAccept) {
+ if (getActualInstance() != null) {
+ joiner.add(
+ ((OnboardingResponseTradewebAccept) getActualInstance())
+ .toUrlQueryString(prefix + "one_of_2" + suffix));
+ }
+ return joiner.toString();
+ }
+ if (getActualInstance() instanceof OnboardingResponseTradewebReject) {
+ if (getActualInstance() != null) {
+ joiner.add(
+ ((OnboardingResponseTradewebReject) getActualInstance())
+ .toUrlQueryString(prefix + "one_of_3" + suffix));
+ }
+ return joiner.toString();
+ }
+ return null;
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/OnboardingResponseDtccAccept.java b/src/main/java/com/fireblocks/sdk/model/OnboardingResponseDtccAccept.java
new file mode 100644
index 00000000..38ed7904
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/OnboardingResponseDtccAccept.java
@@ -0,0 +1,185 @@
+/*
+ * 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;
+
+/** Accept a DTCC end-investor onboarding offer. Carries no arguments. */
+@JsonPropertyOrder({OnboardingResponseDtccAccept.JSON_PROPERTY_RESPONSE_TYPE})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class OnboardingResponseDtccAccept {
+ /**
+ * How you are answering the offer. Must be one of the values currently listed in the
+ * transaction's `additionalInfo.cantonDetails.offerResponse.availableResponses`.
+ */
+ public enum ResponseTypeEnum {
+ DTCC_END_INVESTOR_ONBOARDING_ACCEPT(String.valueOf("DTCC_END_INVESTOR_ONBOARDING_ACCEPT"));
+
+ private String value;
+
+ ResponseTypeEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static ResponseTypeEnum fromValue(String value) {
+ for (ResponseTypeEnum b : ResponseTypeEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_RESPONSE_TYPE = "responseType";
+ @jakarta.annotation.Nonnull private ResponseTypeEnum responseType;
+
+ public OnboardingResponseDtccAccept() {}
+
+ @JsonCreator
+ public OnboardingResponseDtccAccept(
+ @JsonProperty(value = JSON_PROPERTY_RESPONSE_TYPE, required = true)
+ ResponseTypeEnum responseType) {
+ this.responseType = responseType;
+ }
+
+ public OnboardingResponseDtccAccept responseType(
+ @jakarta.annotation.Nonnull ResponseTypeEnum responseType) {
+ this.responseType = responseType;
+ return this;
+ }
+
+ /**
+ * How you are answering the offer. Must be one of the values currently listed in the
+ * transaction's `additionalInfo.cantonDetails.offerResponse.availableResponses`.
+ *
+ * @return responseType
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_RESPONSE_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public ResponseTypeEnum getResponseType() {
+ return responseType;
+ }
+
+ @JsonProperty(JSON_PROPERTY_RESPONSE_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setResponseType(@jakarta.annotation.Nonnull ResponseTypeEnum responseType) {
+ this.responseType = responseType;
+ }
+
+ /** Return true if this OnboardingResponseDtccAccept object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ OnboardingResponseDtccAccept onboardingResponseDtccAccept =
+ (OnboardingResponseDtccAccept) o;
+ return Objects.equals(this.responseType, onboardingResponseDtccAccept.responseType);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(responseType);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class OnboardingResponseDtccAccept {\n");
+ sb.append(" responseType: ").append(toIndentedString(responseType)).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 `responseType` to the URL query string
+ if (getResponseType() != null) {
+ joiner.add(
+ String.format(
+ "%sresponseType%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getResponseType()))));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/OnboardingResponseDtccReject.java b/src/main/java/com/fireblocks/sdk/model/OnboardingResponseDtccReject.java
new file mode 100644
index 00000000..d3e5a8bf
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/OnboardingResponseDtccReject.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;
+
+/** Reject a DTCC end-investor onboarding offer. */
+@JsonPropertyOrder({
+ OnboardingResponseDtccReject.JSON_PROPERTY_RESPONSE_TYPE,
+ OnboardingResponseDtccReject.JSON_PROPERTY_REASON
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class OnboardingResponseDtccReject {
+ /**
+ * How you are answering the offer. Must be one of the values currently listed in the
+ * transaction's `additionalInfo.cantonDetails.offerResponse.availableResponses`.
+ */
+ public enum ResponseTypeEnum {
+ DTCC_END_INVESTOR_ONBOARDING_REJECT(String.valueOf("DTCC_END_INVESTOR_ONBOARDING_REJECT"));
+
+ private String value;
+
+ ResponseTypeEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static ResponseTypeEnum fromValue(String value) {
+ for (ResponseTypeEnum b : ResponseTypeEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_RESPONSE_TYPE = "responseType";
+ @jakarta.annotation.Nonnull private ResponseTypeEnum responseType;
+
+ public static final String JSON_PROPERTY_REASON = "reason";
+ @jakarta.annotation.Nonnull private String reason;
+
+ public OnboardingResponseDtccReject() {}
+
+ @JsonCreator
+ public OnboardingResponseDtccReject(
+ @JsonProperty(value = JSON_PROPERTY_RESPONSE_TYPE, required = true)
+ ResponseTypeEnum responseType,
+ @JsonProperty(value = JSON_PROPERTY_REASON, required = true) String reason) {
+ this.responseType = responseType;
+ this.reason = reason;
+ }
+
+ public OnboardingResponseDtccReject responseType(
+ @jakarta.annotation.Nonnull ResponseTypeEnum responseType) {
+ this.responseType = responseType;
+ return this;
+ }
+
+ /**
+ * How you are answering the offer. Must be one of the values currently listed in the
+ * transaction's `additionalInfo.cantonDetails.offerResponse.availableResponses`.
+ *
+ * @return responseType
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_RESPONSE_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public ResponseTypeEnum getResponseType() {
+ return responseType;
+ }
+
+ @JsonProperty(JSON_PROPERTY_RESPONSE_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setResponseType(@jakarta.annotation.Nonnull ResponseTypeEnum responseType) {
+ this.responseType = responseType;
+ }
+
+ public OnboardingResponseDtccReject reason(@jakarta.annotation.Nonnull String reason) {
+ this.reason = reason;
+ return this;
+ }
+
+ /**
+ * Why the offer is being rejected. Recorded on-chain, where the counterparty can read it.
+ *
+ * @return reason
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_REASON)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getReason() {
+ return reason;
+ }
+
+ @JsonProperty(JSON_PROPERTY_REASON)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setReason(@jakarta.annotation.Nonnull String reason) {
+ this.reason = reason;
+ }
+
+ /** Return true if this OnboardingResponseDtccReject object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ OnboardingResponseDtccReject onboardingResponseDtccReject =
+ (OnboardingResponseDtccReject) o;
+ return Objects.equals(this.responseType, onboardingResponseDtccReject.responseType)
+ && Objects.equals(this.reason, onboardingResponseDtccReject.reason);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(responseType, reason);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class OnboardingResponseDtccReject {\n");
+ sb.append(" responseType: ").append(toIndentedString(responseType)).append("\n");
+ sb.append(" reason: ").append(toIndentedString(reason)).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 `responseType` to the URL query string
+ if (getResponseType() != null) {
+ joiner.add(
+ String.format(
+ "%sresponseType%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getResponseType()))));
+ }
+
+ // add `reason` to the URL query string
+ if (getReason() != null) {
+ joiner.add(
+ String.format(
+ "%sreason%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getReason()))));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/OnboardingResponseTradewebAccept.java b/src/main/java/com/fireblocks/sdk/model/OnboardingResponseTradewebAccept.java
new file mode 100644
index 00000000..7fad8a59
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/OnboardingResponseTradewebAccept.java
@@ -0,0 +1,186 @@
+/*
+ * 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;
+
+/** Accept a Tradeweb co-signing delegation offer. Carries no arguments. */
+@JsonPropertyOrder({OnboardingResponseTradewebAccept.JSON_PROPERTY_RESPONSE_TYPE})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class OnboardingResponseTradewebAccept {
+ /**
+ * How you are answering the offer. Must be one of the values currently listed in the
+ * transaction's `additionalInfo.cantonDetails.offerResponse.availableResponses`.
+ */
+ public enum ResponseTypeEnum {
+ TRADEWEB_COSIGNING_DELEGATION_ACCEPT(
+ String.valueOf("TRADEWEB_COSIGNING_DELEGATION_ACCEPT"));
+
+ private String value;
+
+ ResponseTypeEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static ResponseTypeEnum fromValue(String value) {
+ for (ResponseTypeEnum b : ResponseTypeEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_RESPONSE_TYPE = "responseType";
+ @jakarta.annotation.Nonnull private ResponseTypeEnum responseType;
+
+ public OnboardingResponseTradewebAccept() {}
+
+ @JsonCreator
+ public OnboardingResponseTradewebAccept(
+ @JsonProperty(value = JSON_PROPERTY_RESPONSE_TYPE, required = true)
+ ResponseTypeEnum responseType) {
+ this.responseType = responseType;
+ }
+
+ public OnboardingResponseTradewebAccept responseType(
+ @jakarta.annotation.Nonnull ResponseTypeEnum responseType) {
+ this.responseType = responseType;
+ return this;
+ }
+
+ /**
+ * How you are answering the offer. Must be one of the values currently listed in the
+ * transaction's `additionalInfo.cantonDetails.offerResponse.availableResponses`.
+ *
+ * @return responseType
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_RESPONSE_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public ResponseTypeEnum getResponseType() {
+ return responseType;
+ }
+
+ @JsonProperty(JSON_PROPERTY_RESPONSE_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setResponseType(@jakarta.annotation.Nonnull ResponseTypeEnum responseType) {
+ this.responseType = responseType;
+ }
+
+ /** Return true if this OnboardingResponseTradewebAccept object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ OnboardingResponseTradewebAccept onboardingResponseTradewebAccept =
+ (OnboardingResponseTradewebAccept) o;
+ return Objects.equals(this.responseType, onboardingResponseTradewebAccept.responseType);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(responseType);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class OnboardingResponseTradewebAccept {\n");
+ sb.append(" responseType: ").append(toIndentedString(responseType)).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 `responseType` to the URL query string
+ if (getResponseType() != null) {
+ joiner.add(
+ String.format(
+ "%sresponseType%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getResponseType()))));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/OnboardingResponseTradewebReject.java b/src/main/java/com/fireblocks/sdk/model/OnboardingResponseTradewebReject.java
new file mode 100644
index 00000000..89a5d413
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/OnboardingResponseTradewebReject.java
@@ -0,0 +1,189 @@
+/*
+ * 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;
+
+/**
+ * Reject a Tradeweb co-signing delegation offer. Carries no arguments — the DAR has nowhere
+ * on-ledger to record a reason, so none is accepted.
+ */
+@JsonPropertyOrder({OnboardingResponseTradewebReject.JSON_PROPERTY_RESPONSE_TYPE})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class OnboardingResponseTradewebReject {
+ /**
+ * How you are answering the offer. Must be one of the values currently listed in the
+ * transaction's `additionalInfo.cantonDetails.offerResponse.availableResponses`.
+ */
+ public enum ResponseTypeEnum {
+ TRADEWEB_COSIGNING_DELEGATION_REJECT(
+ String.valueOf("TRADEWEB_COSIGNING_DELEGATION_REJECT"));
+
+ private String value;
+
+ ResponseTypeEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static ResponseTypeEnum fromValue(String value) {
+ for (ResponseTypeEnum b : ResponseTypeEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_RESPONSE_TYPE = "responseType";
+ @jakarta.annotation.Nonnull private ResponseTypeEnum responseType;
+
+ public OnboardingResponseTradewebReject() {}
+
+ @JsonCreator
+ public OnboardingResponseTradewebReject(
+ @JsonProperty(value = JSON_PROPERTY_RESPONSE_TYPE, required = true)
+ ResponseTypeEnum responseType) {
+ this.responseType = responseType;
+ }
+
+ public OnboardingResponseTradewebReject responseType(
+ @jakarta.annotation.Nonnull ResponseTypeEnum responseType) {
+ this.responseType = responseType;
+ return this;
+ }
+
+ /**
+ * How you are answering the offer. Must be one of the values currently listed in the
+ * transaction's `additionalInfo.cantonDetails.offerResponse.availableResponses`.
+ *
+ * @return responseType
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_RESPONSE_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public ResponseTypeEnum getResponseType() {
+ return responseType;
+ }
+
+ @JsonProperty(JSON_PROPERTY_RESPONSE_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setResponseType(@jakarta.annotation.Nonnull ResponseTypeEnum responseType) {
+ this.responseType = responseType;
+ }
+
+ /** Return true if this OnboardingResponseTradewebReject object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ OnboardingResponseTradewebReject onboardingResponseTradewebReject =
+ (OnboardingResponseTradewebReject) o;
+ return Objects.equals(this.responseType, onboardingResponseTradewebReject.responseType);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(responseType);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class OnboardingResponseTradewebReject {\n");
+ sb.append(" responseType: ").append(toIndentedString(responseType)).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 `responseType` to the URL query string
+ if (getResponseType() != null) {
+ joiner.add(
+ String.format(
+ "%sresponseType%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getResponseType()))));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/OrderDetails.java b/src/main/java/com/fireblocks/sdk/model/OrderDetails.java
index c1c13a9c..142ecd9b 100644
--- a/src/main/java/com/fireblocks/sdk/model/OrderDetails.java
+++ b/src/main/java/com/fireblocks/sdk/model/OrderDetails.java
@@ -52,7 +52,7 @@ public class OrderDetails {
@jakarta.annotation.Nonnull private String id;
public static final String JSON_PROPERTY_VIA = "via";
- @jakarta.annotation.Nonnull private AccessType via;
+ @jakarta.annotation.Nonnull private AccessTypeResponse via;
public static final String JSON_PROPERTY_STATUS = "status";
@jakarta.annotation.Nonnull private OrderStatus status;
@@ -107,7 +107,7 @@ public OrderDetails() {}
@JsonCreator
public OrderDetails(
@JsonProperty(value = JSON_PROPERTY_ID, required = true) String id,
- @JsonProperty(value = JSON_PROPERTY_VIA, required = true) AccessType via,
+ @JsonProperty(value = JSON_PROPERTY_VIA, required = true) AccessTypeResponse via,
@JsonProperty(value = JSON_PROPERTY_STATUS, required = true) OrderStatus status,
@JsonProperty(value = JSON_PROPERTY_CREATED_AT, required = true)
OffsetDateTime createdAt,
@@ -150,7 +150,7 @@ public void setId(@jakarta.annotation.Nonnull String id) {
this.id = id;
}
- public OrderDetails via(@jakarta.annotation.Nonnull AccessType via) {
+ public OrderDetails via(@jakarta.annotation.Nonnull AccessTypeResponse via) {
this.via = via;
return this;
}
@@ -163,13 +163,13 @@ public OrderDetails via(@jakarta.annotation.Nonnull AccessType via) {
@jakarta.annotation.Nonnull
@JsonProperty(JSON_PROPERTY_VIA)
@JsonInclude(value = JsonInclude.Include.ALWAYS)
- public AccessType getVia() {
+ public AccessTypeResponse getVia() {
return via;
}
@JsonProperty(JSON_PROPERTY_VIA)
@JsonInclude(value = JsonInclude.Include.ALWAYS)
- public void setVia(@jakarta.annotation.Nonnull AccessType via) {
+ public void setVia(@jakarta.annotation.Nonnull AccessTypeResponse via) {
this.via = via;
}
diff --git a/src/main/java/com/fireblocks/sdk/model/OrderSummary.java b/src/main/java/com/fireblocks/sdk/model/OrderSummary.java
index 2d44f1cd..222f54a0 100644
--- a/src/main/java/com/fireblocks/sdk/model/OrderSummary.java
+++ b/src/main/java/com/fireblocks/sdk/model/OrderSummary.java
@@ -44,7 +44,7 @@ public class OrderSummary {
@jakarta.annotation.Nonnull private String id;
public static final String JSON_PROPERTY_VIA = "via";
- @jakarta.annotation.Nonnull private AccessType via;
+ @jakarta.annotation.Nonnull private AccessTypeResponse via;
public static final String JSON_PROPERTY_SIDE = "side";
@jakarta.annotation.Nonnull private Side side;
@@ -78,7 +78,7 @@ public OrderSummary() {}
@JsonCreator
public OrderSummary(
@JsonProperty(value = JSON_PROPERTY_ID, required = true) String id,
- @JsonProperty(value = JSON_PROPERTY_VIA, required = true) AccessType via,
+ @JsonProperty(value = JSON_PROPERTY_VIA, required = true) AccessTypeResponse via,
@JsonProperty(value = JSON_PROPERTY_SIDE, required = true) Side side,
@JsonProperty(value = JSON_PROPERTY_BASE_AMOUNT, required = true) String baseAmount,
@JsonProperty(value = JSON_PROPERTY_BASE_ASSET_ID, required = true) String baseAssetId,
@@ -123,7 +123,7 @@ public void setId(@jakarta.annotation.Nonnull String id) {
this.id = id;
}
- public OrderSummary via(@jakarta.annotation.Nonnull AccessType via) {
+ public OrderSummary via(@jakarta.annotation.Nonnull AccessTypeResponse via) {
this.via = via;
return this;
}
@@ -136,13 +136,13 @@ public OrderSummary via(@jakarta.annotation.Nonnull AccessType via) {
@jakarta.annotation.Nonnull
@JsonProperty(JSON_PROPERTY_VIA)
@JsonInclude(value = JsonInclude.Include.ALWAYS)
- public AccessType getVia() {
+ public AccessTypeResponse getVia() {
return via;
}
@JsonProperty(JSON_PROPERTY_VIA)
@JsonInclude(value = JsonInclude.Include.ALWAYS)
- public void setVia(@jakarta.annotation.Nonnull AccessType via) {
+ public void setVia(@jakarta.annotation.Nonnull AccessTypeResponse via) {
this.via = via;
}
diff --git a/src/main/java/com/fireblocks/sdk/model/ParticipantOnboardingPayload.java b/src/main/java/com/fireblocks/sdk/model/ParticipantOnboardingPayload.java
new file mode 100644
index 00000000..0b38f964
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/ParticipantOnboardingPayload.java
@@ -0,0 +1,483 @@
+/*
+ * 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.time.OffsetDateTime;
+import java.util.Objects;
+import java.util.StringJoiner;
+
+/** ParticipantOnboardingPayload */
+@JsonPropertyOrder({
+ ParticipantOnboardingPayload.JSON_PROPERTY_VAULT_ACCOUNT_ID,
+ ParticipantOnboardingPayload.JSON_PROPERTY_ASSET,
+ ParticipantOnboardingPayload.JSON_PROPERTY_EXPIRES_AT,
+ ParticipantOnboardingPayload.JSON_PROPERTY_OPERATOR,
+ ParticipantOnboardingPayload.JSON_PROPERTY_PROVIDER,
+ ParticipantOnboardingPayload.JSON_PROPERTY_COMPLIANCE,
+ ParticipantOnboardingPayload.JSON_PROPERTY_REGISTRAR,
+ ParticipantOnboardingPayload.JSON_PROPERTY_CLIENT_ONBOARDER
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class ParticipantOnboardingPayload {
+ public static final String JSON_PROPERTY_VAULT_ACCOUNT_ID = "vaultAccountId";
+ @jakarta.annotation.Nonnull private String vaultAccountId;
+
+ /** Chain asset — CANTON or CANTON_TEST. */
+ public enum AssetEnum {
+ CANTON(String.valueOf("CANTON")),
+
+ CANTON_TEST(String.valueOf("CANTON_TEST"));
+
+ private String value;
+
+ AssetEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static AssetEnum fromValue(String value) {
+ for (AssetEnum b : AssetEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_ASSET = "asset";
+ @jakarta.annotation.Nonnull private AssetEnum asset;
+
+ public static final String JSON_PROPERTY_EXPIRES_AT = "expiresAt";
+ @jakarta.annotation.Nullable private OffsetDateTime expiresAt;
+
+ public static final String JSON_PROPERTY_OPERATOR = "operator";
+ @jakarta.annotation.Nonnull private String operator;
+
+ public static final String JSON_PROPERTY_PROVIDER = "provider";
+ @jakarta.annotation.Nonnull private String provider;
+
+ public static final String JSON_PROPERTY_COMPLIANCE = "compliance";
+ @jakarta.annotation.Nonnull private String compliance;
+
+ public static final String JSON_PROPERTY_REGISTRAR = "registrar";
+ @jakarta.annotation.Nonnull private String registrar;
+
+ public static final String JSON_PROPERTY_CLIENT_ONBOARDER = "clientOnboarder";
+ @jakarta.annotation.Nonnull private String clientOnboarder;
+
+ public ParticipantOnboardingPayload() {}
+
+ @JsonCreator
+ public ParticipantOnboardingPayload(
+ @JsonProperty(value = JSON_PROPERTY_VAULT_ACCOUNT_ID, required = true)
+ String vaultAccountId,
+ @JsonProperty(value = JSON_PROPERTY_ASSET, required = true) AssetEnum asset,
+ @JsonProperty(value = JSON_PROPERTY_OPERATOR, required = true) String operator,
+ @JsonProperty(value = JSON_PROPERTY_PROVIDER, required = true) String provider,
+ @JsonProperty(value = JSON_PROPERTY_COMPLIANCE, required = true) String compliance,
+ @JsonProperty(value = JSON_PROPERTY_REGISTRAR, required = true) String registrar,
+ @JsonProperty(value = JSON_PROPERTY_CLIENT_ONBOARDER, required = true)
+ String clientOnboarder) {
+ this.vaultAccountId = vaultAccountId;
+ this.asset = asset;
+ this.operator = operator;
+ this.provider = provider;
+ this.compliance = compliance;
+ this.registrar = registrar;
+ this.clientOnboarder = clientOnboarder;
+ }
+
+ public ParticipantOnboardingPayload vaultAccountId(
+ @jakarta.annotation.Nonnull String vaultAccountId) {
+ this.vaultAccountId = vaultAccountId;
+ return this;
+ }
+
+ /**
+ * The vault account that acts as the participant. Its Canton party is derived for you.
+ *
+ * @return vaultAccountId
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_VAULT_ACCOUNT_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getVaultAccountId() {
+ return vaultAccountId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_VAULT_ACCOUNT_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setVaultAccountId(@jakarta.annotation.Nonnull String vaultAccountId) {
+ this.vaultAccountId = vaultAccountId;
+ }
+
+ public ParticipantOnboardingPayload asset(@jakarta.annotation.Nonnull AssetEnum asset) {
+ this.asset = asset;
+ return this;
+ }
+
+ /**
+ * Chain asset — CANTON or CANTON_TEST.
+ *
+ * @return asset
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_ASSET)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public AssetEnum getAsset() {
+ return asset;
+ }
+
+ @JsonProperty(JSON_PROPERTY_ASSET)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setAsset(@jakarta.annotation.Nonnull AssetEnum asset) {
+ this.asset = asset;
+ }
+
+ public ParticipantOnboardingPayload expiresAt(
+ @jakarta.annotation.Nullable OffsetDateTime expiresAt) {
+ this.expiresAt = expiresAt;
+ return this;
+ }
+
+ /**
+ * When the onboarding request expires if it has not been answered. RFC 3339.
+ *
+ * @return expiresAt
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_EXPIRES_AT)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public OffsetDateTime getExpiresAt() {
+ return expiresAt;
+ }
+
+ @JsonProperty(JSON_PROPERTY_EXPIRES_AT)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setExpiresAt(@jakarta.annotation.Nullable OffsetDateTime expiresAt) {
+ this.expiresAt = expiresAt;
+ }
+
+ public ParticipantOnboardingPayload operator(@jakarta.annotation.Nonnull String operator) {
+ this.operator = operator;
+ return this;
+ }
+
+ /**
+ * DTCC infra operator party id.
+ *
+ * @return operator
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_OPERATOR)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getOperator() {
+ return operator;
+ }
+
+ @JsonProperty(JSON_PROPERTY_OPERATOR)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setOperator(@jakarta.annotation.Nonnull String operator) {
+ this.operator = operator;
+ }
+
+ public ParticipantOnboardingPayload provider(@jakarta.annotation.Nonnull String provider) {
+ this.provider = provider;
+ return this;
+ }
+
+ /**
+ * DTCC provider party id.
+ *
+ * @return provider
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_PROVIDER)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getProvider() {
+ return provider;
+ }
+
+ @JsonProperty(JSON_PROPERTY_PROVIDER)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setProvider(@jakarta.annotation.Nonnull String provider) {
+ this.provider = provider;
+ }
+
+ public ParticipantOnboardingPayload compliance(@jakarta.annotation.Nonnull String compliance) {
+ this.compliance = compliance;
+ return this;
+ }
+
+ /**
+ * DTCC compliance party id.
+ *
+ * @return compliance
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_COMPLIANCE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getCompliance() {
+ return compliance;
+ }
+
+ @JsonProperty(JSON_PROPERTY_COMPLIANCE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setCompliance(@jakarta.annotation.Nonnull String compliance) {
+ this.compliance = compliance;
+ }
+
+ public ParticipantOnboardingPayload registrar(@jakarta.annotation.Nonnull String registrar) {
+ this.registrar = registrar;
+ return this;
+ }
+
+ /**
+ * DTCC registrar party id — co-signs the accept.
+ *
+ * @return registrar
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_REGISTRAR)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getRegistrar() {
+ return registrar;
+ }
+
+ @JsonProperty(JSON_PROPERTY_REGISTRAR)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setRegistrar(@jakarta.annotation.Nonnull String registrar) {
+ this.registrar = registrar;
+ }
+
+ public ParticipantOnboardingPayload clientOnboarder(
+ @jakarta.annotation.Nonnull String clientOnboarder) {
+ this.clientOnboarder = clientOnboarder;
+ return this;
+ }
+
+ /**
+ * DTCC client onboarder party id — co-signs the accept.
+ *
+ * @return clientOnboarder
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_CLIENT_ONBOARDER)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getClientOnboarder() {
+ return clientOnboarder;
+ }
+
+ @JsonProperty(JSON_PROPERTY_CLIENT_ONBOARDER)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setClientOnboarder(@jakarta.annotation.Nonnull String clientOnboarder) {
+ this.clientOnboarder = clientOnboarder;
+ }
+
+ /** Return true if this ParticipantOnboardingPayload object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ParticipantOnboardingPayload participantOnboardingPayload =
+ (ParticipantOnboardingPayload) o;
+ return Objects.equals(this.vaultAccountId, participantOnboardingPayload.vaultAccountId)
+ && Objects.equals(this.asset, participantOnboardingPayload.asset)
+ && Objects.equals(this.expiresAt, participantOnboardingPayload.expiresAt)
+ && Objects.equals(this.operator, participantOnboardingPayload.operator)
+ && Objects.equals(this.provider, participantOnboardingPayload.provider)
+ && Objects.equals(this.compliance, participantOnboardingPayload.compliance)
+ && Objects.equals(this.registrar, participantOnboardingPayload.registrar)
+ && Objects.equals(
+ this.clientOnboarder, participantOnboardingPayload.clientOnboarder);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(
+ vaultAccountId,
+ asset,
+ expiresAt,
+ operator,
+ provider,
+ compliance,
+ registrar,
+ clientOnboarder);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ParticipantOnboardingPayload {\n");
+ sb.append(" vaultAccountId: ").append(toIndentedString(vaultAccountId)).append("\n");
+ sb.append(" asset: ").append(toIndentedString(asset)).append("\n");
+ sb.append(" expiresAt: ").append(toIndentedString(expiresAt)).append("\n");
+ sb.append(" operator: ").append(toIndentedString(operator)).append("\n");
+ sb.append(" provider: ").append(toIndentedString(provider)).append("\n");
+ sb.append(" compliance: ").append(toIndentedString(compliance)).append("\n");
+ sb.append(" registrar: ").append(toIndentedString(registrar)).append("\n");
+ sb.append(" clientOnboarder: ").append(toIndentedString(clientOnboarder)).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 `vaultAccountId` to the URL query string
+ if (getVaultAccountId() != null) {
+ joiner.add(
+ String.format(
+ "%svaultAccountId%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getVaultAccountId()))));
+ }
+
+ // 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 `expiresAt` to the URL query string
+ if (getExpiresAt() != null) {
+ joiner.add(
+ String.format(
+ "%sexpiresAt%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getExpiresAt()))));
+ }
+
+ // 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 `provider` to the URL query string
+ if (getProvider() != null) {
+ joiner.add(
+ String.format(
+ "%sprovider%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getProvider()))));
+ }
+
+ // add `compliance` to the URL query string
+ if (getCompliance() != null) {
+ joiner.add(
+ String.format(
+ "%scompliance%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getCompliance()))));
+ }
+
+ // add `registrar` to the URL query string
+ if (getRegistrar() != null) {
+ joiner.add(
+ String.format(
+ "%sregistrar%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getRegistrar()))));
+ }
+
+ // add `clientOnboarder` to the URL query string
+ if (getClientOnboarder() != null) {
+ joiner.add(
+ String.format(
+ "%sclientOnboarder%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getClientOnboarder()))));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/PositionRelatedTransaction.java b/src/main/java/com/fireblocks/sdk/model/PositionRelatedTransaction.java
index edcb9dd1..03779552 100644
--- a/src/main/java/com/fireblocks/sdk/model/PositionRelatedTransaction.java
+++ b/src/main/java/com/fireblocks/sdk/model/PositionRelatedTransaction.java
@@ -31,7 +31,8 @@
PositionRelatedTransaction.JSON_PROPERTY_TIMESTAMP,
PositionRelatedTransaction.JSON_PROPERTY_STATUS,
PositionRelatedTransaction.JSON_PROPERTY_AMOUNT,
- PositionRelatedTransaction.JSON_PROPERTY_TX_NOTE
+ PositionRelatedTransaction.JSON_PROPERTY_TX_NOTE,
+ PositionRelatedTransaction.JSON_PROPERTY_COMPLETION_TIME
})
@jakarta.annotation.Generated(
value = "org.openapitools.codegen.languages.JavaClientCodegen",
@@ -147,6 +148,9 @@ public static StatusEnum fromValue(String value) {
public static final String JSON_PROPERTY_TX_NOTE = "txNote";
@jakarta.annotation.Nullable private String txNote;
+ public static final String JSON_PROPERTY_COMPLETION_TIME = "completionTime";
+ @jakarta.annotation.Nullable private OffsetDateTime completionTime;
+
public PositionRelatedTransaction() {}
@JsonCreator
@@ -325,6 +329,30 @@ public void setTxNote(@jakarta.annotation.Nullable String txNote) {
this.txNote = txNote;
}
+ public PositionRelatedTransaction completionTime(
+ @jakarta.annotation.Nullable OffsetDateTime completionTime) {
+ this.completionTime = completionTime;
+ return this;
+ }
+
+ /**
+ * ISO timestamp when Cosmos unbonding is scheduled to end. Absent on other chains.
+ *
+ * @return completionTime
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_COMPLETION_TIME)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public OffsetDateTime getCompletionTime() {
+ return completionTime;
+ }
+
+ @JsonProperty(JSON_PROPERTY_COMPLETION_TIME)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setCompletionTime(@jakarta.annotation.Nullable OffsetDateTime completionTime) {
+ this.completionTime = completionTime;
+ }
+
/** Return true if this PositionRelatedTransaction object is equal to o. */
@Override
public boolean equals(Object o) {
@@ -342,12 +370,14 @@ public boolean equals(Object o) {
&& Objects.equals(this.timestamp, positionRelatedTransaction.timestamp)
&& Objects.equals(this.status, positionRelatedTransaction.status)
&& Objects.equals(this.amount, positionRelatedTransaction.amount)
- && Objects.equals(this.txNote, positionRelatedTransaction.txNote);
+ && Objects.equals(this.txNote, positionRelatedTransaction.txNote)
+ && Objects.equals(this.completionTime, positionRelatedTransaction.completionTime);
}
@Override
public int hashCode() {
- return Objects.hash(txId, txHash, stakingOperation, timestamp, status, amount, txNote);
+ return Objects.hash(
+ txId, txHash, stakingOperation, timestamp, status, amount, txNote, completionTime);
}
@Override
@@ -361,6 +391,7 @@ public String toString() {
sb.append(" status: ").append(toIndentedString(status)).append("\n");
sb.append(" amount: ").append(toIndentedString(amount)).append("\n");
sb.append(" txNote: ").append(toIndentedString(txNote)).append("\n");
+ sb.append(" completionTime: ").append(toIndentedString(completionTime)).append("\n");
sb.append("}");
return sb.toString();
}
@@ -478,6 +509,16 @@ public String toUrlQueryString(String prefix) {
ApiClient.urlEncode(ApiClient.valueToString(getTxNote()))));
}
+ // add `completionTime` to the URL query string
+ if (getCompletionTime() != null) {
+ joiner.add(
+ String.format(
+ "%scompletionTime%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getCompletionTime()))));
+ }
+
return joiner.toString();
}
}
diff --git a/src/main/java/com/fireblocks/sdk/model/QuorumApprovalState.java b/src/main/java/com/fireblocks/sdk/model/QuorumApprovalState.java
new file mode 100644
index 00000000..9c64f967
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/QuorumApprovalState.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;
+
+/**
+ * Whether an approval requirement has been met. Treat this as authoritative rather than comparing
+ * the counts yourself: a group can show `currentApprovalCount` equal to
+ * `threshold` and still be `PENDING` when the request additionally requires the
+ * workspace owner's approval.
+ */
+public enum QuorumApprovalState {
+ APPROVED("APPROVED"),
+
+ PENDING("PENDING");
+
+ private String value;
+
+ QuorumApprovalState(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static QuorumApprovalState fromValue(String value) {
+ for (QuorumApprovalState b : QuorumApprovalState.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/QuorumGroup.java b/src/main/java/com/fireblocks/sdk/model/QuorumGroup.java
new file mode 100644
index 00000000..aeb84c26
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/QuorumGroup.java
@@ -0,0 +1,292 @@
+/*
+ * 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 single tier of a ruleset: a threshold and the approvals collected toward it. */
+@JsonPropertyOrder({
+ QuorumGroup.JSON_PROPERTY_THRESHOLD,
+ QuorumGroup.JSON_PROPERTY_CURRENT_APPROVAL_COUNT,
+ QuorumGroup.JSON_PROPERTY_STATUS,
+ QuorumGroup.JSON_PROPERTY_MEMBERS
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class QuorumGroup {
+ public static final String JSON_PROPERTY_THRESHOLD = "threshold";
+ @jakarta.annotation.Nonnull private Integer threshold;
+
+ public static final String JSON_PROPERTY_CURRENT_APPROVAL_COUNT = "currentApprovalCount";
+ @jakarta.annotation.Nonnull private Integer currentApprovalCount;
+
+ public static final String JSON_PROPERTY_STATUS = "status";
+ @jakarta.annotation.Nonnull private QuorumApprovalState status;
+
+ public static final String JSON_PROPERTY_MEMBERS = "members";
+ @jakarta.annotation.Nullable private List members;
+
+ public QuorumGroup() {}
+
+ @JsonCreator
+ public QuorumGroup(
+ @JsonProperty(value = JSON_PROPERTY_THRESHOLD, required = true) Integer threshold,
+ @JsonProperty(value = JSON_PROPERTY_CURRENT_APPROVAL_COUNT, required = true)
+ Integer currentApprovalCount,
+ @JsonProperty(value = JSON_PROPERTY_STATUS, required = true)
+ QuorumApprovalState status) {
+ this.threshold = threshold;
+ this.currentApprovalCount = currentApprovalCount;
+ this.status = status;
+ }
+
+ public QuorumGroup threshold(@jakarta.annotation.Nonnull Integer threshold) {
+ this.threshold = threshold;
+ return this;
+ }
+
+ /**
+ * Number of approvals this tier requires.
+ *
+ * @return threshold
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_THRESHOLD)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public Integer getThreshold() {
+ return threshold;
+ }
+
+ @JsonProperty(JSON_PROPERTY_THRESHOLD)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setThreshold(@jakarta.annotation.Nonnull Integer threshold) {
+ this.threshold = threshold;
+ }
+
+ public QuorumGroup currentApprovalCount(
+ @jakarta.annotation.Nonnull Integer currentApprovalCount) {
+ this.currentApprovalCount = currentApprovalCount;
+ return this;
+ }
+
+ /**
+ * Approvals collected so far toward `threshold`.
+ *
+ * @return currentApprovalCount
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_CURRENT_APPROVAL_COUNT)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public Integer getCurrentApprovalCount() {
+ return currentApprovalCount;
+ }
+
+ @JsonProperty(JSON_PROPERTY_CURRENT_APPROVAL_COUNT)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setCurrentApprovalCount(@jakarta.annotation.Nonnull Integer currentApprovalCount) {
+ this.currentApprovalCount = currentApprovalCount;
+ }
+
+ public QuorumGroup status(@jakarta.annotation.Nonnull QuorumApprovalState status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get status
+ *
+ * @return status
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_STATUS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public QuorumApprovalState getStatus() {
+ return status;
+ }
+
+ @JsonProperty(JSON_PROPERTY_STATUS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setStatus(@jakarta.annotation.Nonnull QuorumApprovalState status) {
+ this.status = status;
+ }
+
+ public QuorumGroup members(@jakarta.annotation.Nullable List members) {
+ this.members = members;
+ return this;
+ }
+
+ public QuorumGroup addMembersItem(Integer membersItem) {
+ if (this.members == null) {
+ this.members = new ArrayList<>();
+ }
+ this.members.add(membersItem);
+ return this;
+ }
+
+ /**
+ * Indexes into the top-level `users` array identifying the users who belong to this
+ * tier. Returned only for `quorumStatusMode=FULL`; omitted otherwise.
+ *
+ * @return members
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_MEMBERS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getMembers() {
+ return members;
+ }
+
+ @JsonProperty(JSON_PROPERTY_MEMBERS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setMembers(@jakarta.annotation.Nullable List members) {
+ this.members = members;
+ }
+
+ /** Return true if this QuorumGroup object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ QuorumGroup quorumGroup = (QuorumGroup) o;
+ return Objects.equals(this.threshold, quorumGroup.threshold)
+ && Objects.equals(this.currentApprovalCount, quorumGroup.currentApprovalCount)
+ && Objects.equals(this.status, quorumGroup.status)
+ && Objects.equals(this.members, quorumGroup.members);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(threshold, currentApprovalCount, status, members);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class QuorumGroup {\n");
+ sb.append(" threshold: ").append(toIndentedString(threshold)).append("\n");
+ sb.append(" currentApprovalCount: ")
+ .append(toIndentedString(currentApprovalCount))
+ .append("\n");
+ sb.append(" status: ").append(toIndentedString(status)).append("\n");
+ sb.append(" members: ").append(toIndentedString(members)).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 `threshold` to the URL query string
+ if (getThreshold() != null) {
+ joiner.add(
+ String.format(
+ "%sthreshold%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getThreshold()))));
+ }
+
+ // add `currentApprovalCount` to the URL query string
+ if (getCurrentApprovalCount() != null) {
+ joiner.add(
+ String.format(
+ "%scurrentApprovalCount%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(
+ ApiClient.valueToString(getCurrentApprovalCount()))));
+ }
+
+ // 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 `members` to the URL query string
+ if (getMembers() != null) {
+ for (int i = 0; i < getMembers().size(); i++) {
+ joiner.add(
+ String.format(
+ "%smembers%s%s=%s",
+ prefix,
+ suffix,
+ "".equals(suffix)
+ ? ""
+ : String.format(
+ "%s%d%s", containerPrefix, i, containerSuffix),
+ ApiClient.urlEncode(ApiClient.valueToString(getMembers().get(i)))));
+ }
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/QuorumRequestState.java b/src/main/java/com/fireblocks/sdk/model/QuorumRequestState.java
new file mode 100644
index 00000000..daced809
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/QuorumRequestState.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 approval request's overall state. Anything other than `PENDING` means the
+ * request is no longer awaiting approvals.
+ */
+public enum QuorumRequestState {
+ PENDING("PENDING"),
+
+ APPROVED("APPROVED"),
+
+ REJECTED("REJECTED"),
+
+ CANCELLED("CANCELLED"),
+
+ TIMED_OUT("TIMED_OUT"),
+
+ FAILED("FAILED");
+
+ private String value;
+
+ QuorumRequestState(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static QuorumRequestState fromValue(String value) {
+ for (QuorumRequestState b : QuorumRequestState.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/QuorumRuleset.java b/src/main/java/com/fireblocks/sdk/model/QuorumRuleset.java
new file mode 100644
index 00000000..1ac970f4
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/QuorumRuleset.java
@@ -0,0 +1,292 @@
+/*
+ * 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.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.StringJoiner;
+
+/** One sub-request of the approval criteria, made up of one or more tiers. */
+@JsonPropertyOrder({
+ QuorumRuleset.JSON_PROPERTY_GROUP_MATCH,
+ QuorumRuleset.JSON_PROPERTY_STATUS,
+ QuorumRuleset.JSON_PROPERTY_GROUPS
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class QuorumRuleset {
+ /**
+ * Whether every tier in `groups` must be satisfied (`ALL`) or any single
+ * one of them (`ANY`).
+ */
+ public enum GroupMatchEnum {
+ ALL(String.valueOf("ALL")),
+
+ ANY(String.valueOf("ANY"));
+
+ private String value;
+
+ GroupMatchEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static GroupMatchEnum fromValue(String value) {
+ for (GroupMatchEnum b : GroupMatchEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_GROUP_MATCH = "groupMatch";
+ @jakarta.annotation.Nonnull private GroupMatchEnum groupMatch;
+
+ public static final String JSON_PROPERTY_STATUS = "status";
+ @jakarta.annotation.Nonnull private QuorumApprovalState status;
+
+ public static final String JSON_PROPERTY_GROUPS = "groups";
+ @jakarta.annotation.Nonnull private List groups;
+
+ public QuorumRuleset() {}
+
+ @JsonCreator
+ public QuorumRuleset(
+ @JsonProperty(value = JSON_PROPERTY_GROUP_MATCH, required = true)
+ GroupMatchEnum groupMatch,
+ @JsonProperty(value = JSON_PROPERTY_STATUS, required = true) QuorumApprovalState status,
+ @JsonProperty(value = JSON_PROPERTY_GROUPS, required = true) List groups) {
+ this.groupMatch = groupMatch;
+ this.status = status;
+ this.groups = groups;
+ }
+
+ public QuorumRuleset groupMatch(@jakarta.annotation.Nonnull GroupMatchEnum groupMatch) {
+ this.groupMatch = groupMatch;
+ return this;
+ }
+
+ /**
+ * Whether every tier in `groups` must be satisfied (`ALL`) or any single
+ * one of them (`ANY`).
+ *
+ * @return groupMatch
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_GROUP_MATCH)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public GroupMatchEnum getGroupMatch() {
+ return groupMatch;
+ }
+
+ @JsonProperty(JSON_PROPERTY_GROUP_MATCH)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setGroupMatch(@jakarta.annotation.Nonnull GroupMatchEnum groupMatch) {
+ this.groupMatch = groupMatch;
+ }
+
+ public QuorumRuleset status(@jakarta.annotation.Nonnull QuorumApprovalState status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get status
+ *
+ * @return status
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_STATUS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public QuorumApprovalState getStatus() {
+ return status;
+ }
+
+ @JsonProperty(JSON_PROPERTY_STATUS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setStatus(@jakarta.annotation.Nonnull QuorumApprovalState status) {
+ this.status = status;
+ }
+
+ public QuorumRuleset groups(@jakarta.annotation.Nonnull List groups) {
+ this.groups = groups;
+ return this;
+ }
+
+ public QuorumRuleset addGroupsItem(QuorumGroup groupsItem) {
+ if (this.groups == null) {
+ this.groups = new ArrayList<>();
+ }
+ this.groups.add(groupsItem);
+ return this;
+ }
+
+ /**
+ * The tiers of this sub-request, evaluated according to `groupMatch`.
+ *
+ * @return groups
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_GROUPS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public List getGroups() {
+ return groups;
+ }
+
+ @JsonProperty(JSON_PROPERTY_GROUPS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setGroups(@jakarta.annotation.Nonnull List groups) {
+ this.groups = groups;
+ }
+
+ /** Return true if this QuorumRuleset object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ QuorumRuleset quorumRuleset = (QuorumRuleset) o;
+ return Objects.equals(this.groupMatch, quorumRuleset.groupMatch)
+ && Objects.equals(this.status, quorumRuleset.status)
+ && Objects.equals(this.groups, quorumRuleset.groups);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(groupMatch, status, groups);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class QuorumRuleset {\n");
+ sb.append(" groupMatch: ").append(toIndentedString(groupMatch)).append("\n");
+ sb.append(" status: ").append(toIndentedString(status)).append("\n");
+ sb.append(" groups: ").append(toIndentedString(groups)).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 `groupMatch` to the URL query string
+ if (getGroupMatch() != null) {
+ joiner.add(
+ String.format(
+ "%sgroupMatch%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getGroupMatch()))));
+ }
+
+ // 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 `groups` to the URL query string
+ if (getGroups() != null) {
+ for (int i = 0; i < getGroups().size(); i++) {
+ if (getGroups().get(i) != null) {
+ joiner.add(
+ getGroups()
+ .get(i)
+ .toUrlQueryString(
+ String.format(
+ "%sgroups%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/QuorumStatus.java b/src/main/java/com/fireblocks/sdk/model/QuorumStatus.java
new file mode 100644
index 00000000..24b67a13
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/QuorumStatus.java
@@ -0,0 +1,257 @@
+/*
+ * 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 quorum's structure and progress for this request. `null` when
+ * `quorumStatusMode` is omitted or `NONE`. Also `null` on an
+ * otherwise successful response when the quorum cannot be reported faithfully — a multi-tier
+ * request in a workspace that does not maintain per-tier approval counts — so absence here does not
+ * imply the request has no quorum. The object may carry additional backend-defined fields beyond
+ * those documented.
+ */
+@JsonPropertyOrder({
+ QuorumStatus.JSON_PROPERTY_REQUEST_STATUS,
+ QuorumStatus.JSON_PROPERTY_USERS,
+ QuorumStatus.JSON_PROPERTY_QUORUM
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class QuorumStatus {
+ public static final String JSON_PROPERTY_REQUEST_STATUS = "requestStatus";
+ @jakarta.annotation.Nonnull private QuorumRequestState requestStatus;
+
+ public static final String JSON_PROPERTY_USERS = "users";
+ @jakarta.annotation.Nullable private List users;
+
+ public static final String JSON_PROPERTY_QUORUM = "quorum";
+ @jakarta.annotation.Nonnull private QuorumStatusQuorum quorum;
+
+ public QuorumStatus() {}
+
+ @JsonCreator
+ public QuorumStatus(
+ @JsonProperty(value = JSON_PROPERTY_REQUEST_STATUS, required = true)
+ QuorumRequestState requestStatus,
+ @JsonProperty(value = JSON_PROPERTY_QUORUM, required = true)
+ QuorumStatusQuorum quorum) {
+ this.requestStatus = requestStatus;
+ this.quorum = quorum;
+ }
+
+ public QuorumStatus requestStatus(
+ @jakarta.annotation.Nonnull QuorumRequestState requestStatus) {
+ this.requestStatus = requestStatus;
+ return this;
+ }
+
+ /**
+ * Get requestStatus
+ *
+ * @return requestStatus
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_REQUEST_STATUS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public QuorumRequestState getRequestStatus() {
+ return requestStatus;
+ }
+
+ @JsonProperty(JSON_PROPERTY_REQUEST_STATUS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setRequestStatus(@jakarta.annotation.Nonnull QuorumRequestState requestStatus) {
+ this.requestStatus = requestStatus;
+ }
+
+ public QuorumStatus users(@jakarta.annotation.Nullable List users) {
+ this.users = users;
+ return this;
+ }
+
+ public QuorumStatus addUsersItem(QuorumUser usersItem) {
+ if (this.users == null) {
+ this.users = new ArrayList<>();
+ }
+ this.users.add(usersItem);
+ return this;
+ }
+
+ /**
+ * Every user participating in this request's quorum. Returned only for
+ * `quorumStatusMode=FULL`; omitted otherwise.
+ *
+ * @return users
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_USERS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getUsers() {
+ return users;
+ }
+
+ @JsonProperty(JSON_PROPERTY_USERS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setUsers(@jakarta.annotation.Nullable List users) {
+ this.users = users;
+ }
+
+ public QuorumStatus quorum(@jakarta.annotation.Nonnull QuorumStatusQuorum quorum) {
+ this.quorum = quorum;
+ return this;
+ }
+
+ /**
+ * Get quorum
+ *
+ * @return quorum
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_QUORUM)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public QuorumStatusQuorum getQuorum() {
+ return quorum;
+ }
+
+ @JsonProperty(JSON_PROPERTY_QUORUM)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setQuorum(@jakarta.annotation.Nonnull QuorumStatusQuorum quorum) {
+ this.quorum = quorum;
+ }
+
+ /** Return true if this QuorumStatus object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ QuorumStatus quorumStatus = (QuorumStatus) o;
+ return Objects.equals(this.requestStatus, quorumStatus.requestStatus)
+ && Objects.equals(this.users, quorumStatus.users)
+ && Objects.equals(this.quorum, quorumStatus.quorum);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(requestStatus, users, quorum);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class QuorumStatus {\n");
+ sb.append(" requestStatus: ").append(toIndentedString(requestStatus)).append("\n");
+ sb.append(" users: ").append(toIndentedString(users)).append("\n");
+ sb.append(" quorum: ").append(toIndentedString(quorum)).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 `requestStatus` to the URL query string
+ if (getRequestStatus() != null) {
+ joiner.add(
+ String.format(
+ "%srequestStatus%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getRequestStatus()))));
+ }
+
+ // add `users` to the URL query string
+ if (getUsers() != null) {
+ for (int i = 0; i < getUsers().size(); i++) {
+ if (getUsers().get(i) != null) {
+ joiner.add(
+ getUsers()
+ .get(i)
+ .toUrlQueryString(
+ String.format(
+ "%susers%s%s",
+ prefix,
+ suffix,
+ "".equals(suffix)
+ ? ""
+ : String.format(
+ "%s%d%s",
+ containerPrefix,
+ i,
+ containerSuffix))));
+ }
+ }
+ }
+
+ // add `quorum` to the URL query string
+ if (getQuorum() != null) {
+ joiner.add(getQuorum().toUrlQueryString(prefix + "quorum" + suffix));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/QuorumStatusQuorum.java b/src/main/java/com/fireblocks/sdk/model/QuorumStatusQuorum.java
new file mode 100644
index 00000000..2f8bd653
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/QuorumStatusQuorum.java
@@ -0,0 +1,325 @@
+/*
+ * 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.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.MapperFeature;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
+import com.fasterxml.jackson.databind.ser.std.StdSerializer;
+import com.fireblocks.sdk.JSON;
+import java.io.IOException;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.StringJoiner;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+@JsonDeserialize(using = QuorumStatusQuorum.QuorumStatusQuorumDeserializer.class)
+@JsonSerialize(using = QuorumStatusQuorum.QuorumStatusQuorumSerializer.class)
+public class QuorumStatusQuorum extends AbstractOpenApiSchema {
+ private static final Logger log = Logger.getLogger(QuorumStatusQuorum.class.getName());
+
+ public static class QuorumStatusQuorumSerializer extends StdSerializer {
+ public QuorumStatusQuorumSerializer(Class t) {
+ super(t);
+ }
+
+ public QuorumStatusQuorumSerializer() {
+ this(null);
+ }
+
+ @Override
+ public void serialize(
+ QuorumStatusQuorum value, JsonGenerator jgen, SerializerProvider provider)
+ throws IOException, JsonProcessingException {
+ jgen.writeObject(value.getActualInstance());
+ }
+ }
+
+ public static class QuorumStatusQuorumDeserializer extends StdDeserializer {
+ public QuorumStatusQuorumDeserializer() {
+ this(QuorumStatusQuorum.class);
+ }
+
+ public QuorumStatusQuorumDeserializer(Class> vc) {
+ super(vc);
+ }
+
+ @Override
+ public QuorumStatusQuorum deserialize(JsonParser jp, DeserializationContext ctxt)
+ throws IOException, JsonProcessingException {
+ JsonNode tree = jp.readValueAsTree();
+ Object deserialized = null;
+ boolean typeCoercion = ctxt.isEnabled(MapperFeature.ALLOW_COERCION_OF_SCALARS);
+ int match = 0;
+ JsonToken token = tree.traverse(jp.getCodec()).nextToken();
+ // deserialize RulesetQuorum
+ try {
+ boolean attemptParsing = true;
+ // ensure that we respect type coercion as set on the client ObjectMapper
+ if (RulesetQuorum.class.equals(Integer.class)
+ || RulesetQuorum.class.equals(Long.class)
+ || RulesetQuorum.class.equals(Float.class)
+ || RulesetQuorum.class.equals(Double.class)
+ || RulesetQuorum.class.equals(Boolean.class)
+ || RulesetQuorum.class.equals(String.class)) {
+ attemptParsing = typeCoercion;
+ if (!attemptParsing) {
+ attemptParsing |=
+ ((RulesetQuorum.class.equals(Integer.class)
+ || RulesetQuorum.class.equals(Long.class))
+ && token == JsonToken.VALUE_NUMBER_INT);
+ attemptParsing |=
+ ((RulesetQuorum.class.equals(Float.class)
+ || RulesetQuorum.class.equals(Double.class))
+ && token == JsonToken.VALUE_NUMBER_FLOAT);
+ attemptParsing |=
+ (RulesetQuorum.class.equals(Boolean.class)
+ && (token == JsonToken.VALUE_FALSE
+ || token == JsonToken.VALUE_TRUE));
+ attemptParsing |=
+ (RulesetQuorum.class.equals(String.class)
+ && token == JsonToken.VALUE_STRING);
+ }
+ }
+ if (attemptParsing) {
+ deserialized = tree.traverse(jp.getCodec()).readValueAs(RulesetQuorum.class);
+ // TODO: there is no validation against JSON schema constraints
+ // (min, max, enum, pattern...), this does not perform a strict JSON
+ // validation, which means the 'match' count may be higher than it should be.
+ match++;
+ log.log(Level.FINER, "Input data matches schema 'RulesetQuorum'");
+ }
+ } catch (Exception e) {
+ // deserialization failed, continue
+ log.log(Level.FINER, "Input data does not match schema 'RulesetQuorum'", e);
+ }
+
+ // deserialize SimpleQuorum
+ try {
+ boolean attemptParsing = true;
+ // ensure that we respect type coercion as set on the client ObjectMapper
+ if (SimpleQuorum.class.equals(Integer.class)
+ || SimpleQuorum.class.equals(Long.class)
+ || SimpleQuorum.class.equals(Float.class)
+ || SimpleQuorum.class.equals(Double.class)
+ || SimpleQuorum.class.equals(Boolean.class)
+ || SimpleQuorum.class.equals(String.class)) {
+ attemptParsing = typeCoercion;
+ if (!attemptParsing) {
+ attemptParsing |=
+ ((SimpleQuorum.class.equals(Integer.class)
+ || SimpleQuorum.class.equals(Long.class))
+ && token == JsonToken.VALUE_NUMBER_INT);
+ attemptParsing |=
+ ((SimpleQuorum.class.equals(Float.class)
+ || SimpleQuorum.class.equals(Double.class))
+ && token == JsonToken.VALUE_NUMBER_FLOAT);
+ attemptParsing |=
+ (SimpleQuorum.class.equals(Boolean.class)
+ && (token == JsonToken.VALUE_FALSE
+ || token == JsonToken.VALUE_TRUE));
+ attemptParsing |=
+ (SimpleQuorum.class.equals(String.class)
+ && token == JsonToken.VALUE_STRING);
+ }
+ }
+ if (attemptParsing) {
+ deserialized = tree.traverse(jp.getCodec()).readValueAs(SimpleQuorum.class);
+ // TODO: there is no validation against JSON schema constraints
+ // (min, max, enum, pattern...), this does not perform a strict JSON
+ // validation, which means the 'match' count may be higher than it should be.
+ match++;
+ log.log(Level.FINER, "Input data matches schema 'SimpleQuorum'");
+ }
+ } catch (Exception e) {
+ // deserialization failed, continue
+ log.log(Level.FINER, "Input data does not match schema 'SimpleQuorum'", e);
+ }
+
+ if (match == 1) {
+ QuorumStatusQuorum ret = new QuorumStatusQuorum();
+ ret.setActualInstance(deserialized);
+ return ret;
+ }
+ throw new IOException(
+ String.format(
+ "Failed deserialization for QuorumStatusQuorum: %d classes match"
+ + " result, expected 1",
+ match));
+ }
+
+ /** Handle deserialization of the 'null' value. */
+ @Override
+ public QuorumStatusQuorum getNullValue(DeserializationContext ctxt)
+ throws JsonMappingException {
+ throw new JsonMappingException(ctxt.getParser(), "QuorumStatusQuorum cannot be null");
+ }
+ }
+
+ // store a list of schema names defined in oneOf
+ public static final Map> schemas = new HashMap<>();
+
+ public QuorumStatusQuorum() {
+ super("oneOf", Boolean.FALSE);
+ }
+
+ public QuorumStatusQuorum(RulesetQuorum o) {
+ super("oneOf", Boolean.FALSE);
+ setActualInstance(o);
+ }
+
+ public QuorumStatusQuorum(SimpleQuorum o) {
+ super("oneOf", Boolean.FALSE);
+ setActualInstance(o);
+ }
+
+ static {
+ schemas.put("RulesetQuorum", RulesetQuorum.class);
+ schemas.put("SimpleQuorum", SimpleQuorum.class);
+ JSON.registerDescendants(QuorumStatusQuorum.class, Collections.unmodifiableMap(schemas));
+ // Initialize and register the discriminator mappings.
+ Map> mappings = new HashMap>();
+ mappings.put("RULESET", RulesetQuorum.class);
+ mappings.put("SIMPLE", SimpleQuorum.class);
+ mappings.put("RulesetQuorum", RulesetQuorum.class);
+ mappings.put("SimpleQuorum", SimpleQuorum.class);
+ mappings.put("QuorumStatus_quorum", QuorumStatusQuorum.class);
+ JSON.registerDiscriminator(QuorumStatusQuorum.class, "type", mappings);
+ }
+
+ @Override
+ public Map> getSchemas() {
+ return QuorumStatusQuorum.schemas;
+ }
+
+ /**
+ * Set the instance that matches the oneOf child schema, check the instance parameter is valid
+ * against the oneOf child schemas: RulesetQuorum, SimpleQuorum
+ *
+ * It could be an instance of the 'oneOf' schemas. The oneOf child schemas may themselves be
+ * a composed schema (allOf, anyOf, oneOf).
+ */
+ @Override
+ public void setActualInstance(Object instance) {
+ if (JSON.isInstanceOf(RulesetQuorum.class, instance, new HashSet>())) {
+ super.setActualInstance(instance);
+ return;
+ }
+
+ if (JSON.isInstanceOf(SimpleQuorum.class, instance, new HashSet>())) {
+ super.setActualInstance(instance);
+ return;
+ }
+
+ throw new RuntimeException("Invalid instance type. Must be RulesetQuorum, SimpleQuorum");
+ }
+
+ /**
+ * Get the actual instance, which can be the following: RulesetQuorum, SimpleQuorum
+ *
+ * @return The actual instance (RulesetQuorum, SimpleQuorum)
+ */
+ @Override
+ public Object getActualInstance() {
+ return super.getActualInstance();
+ }
+
+ /**
+ * Get the actual instance of `RulesetQuorum`. If the actual instance is not `RulesetQuorum`,
+ * the ClassCastException will be thrown.
+ *
+ * @return The actual instance of `RulesetQuorum`
+ * @throws ClassCastException if the instance is not `RulesetQuorum`
+ */
+ public RulesetQuorum getRulesetQuorum() throws ClassCastException {
+ return (RulesetQuorum) super.getActualInstance();
+ }
+
+ /**
+ * Get the actual instance of `SimpleQuorum`. If the actual instance is not `SimpleQuorum`, the
+ * ClassCastException will be thrown.
+ *
+ * @return The actual instance of `SimpleQuorum`
+ * @throws ClassCastException if the instance is not `SimpleQuorum`
+ */
+ public SimpleQuorum getSimpleQuorum() throws ClassCastException {
+ return (SimpleQuorum) super.getActualInstance();
+ }
+
+ /**
+ * 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("&");
+
+ if (getActualInstance() instanceof SimpleQuorum) {
+ if (getActualInstance() != null) {
+ joiner.add(
+ ((SimpleQuorum) getActualInstance())
+ .toUrlQueryString(prefix + "one_of_0" + suffix));
+ }
+ return joiner.toString();
+ }
+ if (getActualInstance() instanceof RulesetQuorum) {
+ if (getActualInstance() != null) {
+ joiner.add(
+ ((RulesetQuorum) getActualInstance())
+ .toUrlQueryString(prefix + "one_of_1" + suffix));
+ }
+ return joiner.toString();
+ }
+ return null;
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/QuorumUser.java b/src/main/java/com/fireblocks/sdk/model/QuorumUser.java
new file mode 100644
index 00000000..79bf45a3
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/QuorumUser.java
@@ -0,0 +1,273 @@
+/*
+ * 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 user who participates in this request's approval quorum, and their approval state. */
+@JsonPropertyOrder({
+ QuorumUser.JSON_PROPERTY_INDEX,
+ QuorumUser.JSON_PROPERTY_USER_ID,
+ QuorumUser.JSON_PROPERTY_STATUS,
+ QuorumUser.JSON_PROPERTY_IS_MANDATORY_OWNER
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class QuorumUser {
+ public static final String JSON_PROPERTY_INDEX = "index";
+ @jakarta.annotation.Nonnull private Integer index;
+
+ public static final String JSON_PROPERTY_USER_ID = "userId";
+ @jakarta.annotation.Nonnull private String userId;
+
+ public static final String JSON_PROPERTY_STATUS = "status";
+ @jakarta.annotation.Nonnull private QuorumApprovalState status;
+
+ public static final String JSON_PROPERTY_IS_MANDATORY_OWNER = "isMandatoryOwner";
+ @jakarta.annotation.Nullable private Boolean isMandatoryOwner;
+
+ public QuorumUser() {}
+
+ @JsonCreator
+ public QuorumUser(
+ @JsonProperty(value = JSON_PROPERTY_INDEX, required = true) Integer index,
+ @JsonProperty(value = JSON_PROPERTY_USER_ID, required = true) String userId,
+ @JsonProperty(value = JSON_PROPERTY_STATUS, required = true)
+ QuorumApprovalState status) {
+ this.index = index;
+ this.userId = userId;
+ this.status = status;
+ }
+
+ public QuorumUser index(@jakarta.annotation.Nonnull Integer index) {
+ this.index = index;
+ return this;
+ }
+
+ /**
+ * Zero-based position of this user within the `users` array. The `members`
+ * arrays elsewhere in the document reference users by this index rather than repeating the user
+ * ID.
+ *
+ * @return index
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_INDEX)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public Integer getIndex() {
+ return index;
+ }
+
+ @JsonProperty(JSON_PROPERTY_INDEX)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setIndex(@jakarta.annotation.Nonnull Integer index) {
+ this.index = index;
+ }
+
+ public QuorumUser userId(@jakarta.annotation.Nonnull String userId) {
+ this.userId = userId;
+ return this;
+ }
+
+ /**
+ * The participating user's ID.
+ *
+ * @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;
+ }
+
+ public QuorumUser status(@jakarta.annotation.Nonnull QuorumApprovalState status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get status
+ *
+ * @return status
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_STATUS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public QuorumApprovalState getStatus() {
+ return status;
+ }
+
+ @JsonProperty(JSON_PROPERTY_STATUS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setStatus(@jakarta.annotation.Nonnull QuorumApprovalState status) {
+ this.status = status;
+ }
+
+ public QuorumUser isMandatoryOwner(@jakarta.annotation.Nullable Boolean isMandatoryOwner) {
+ this.isMandatoryOwner = isMandatoryOwner;
+ return this;
+ }
+
+ /**
+ * Present and `true` only for the workspace owner, when this request additionally
+ * requires the owner's approval. Absent for every other participant.
+ *
+ * @return isMandatoryOwner
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_IS_MANDATORY_OWNER)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Boolean getIsMandatoryOwner() {
+ return isMandatoryOwner;
+ }
+
+ @JsonProperty(JSON_PROPERTY_IS_MANDATORY_OWNER)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setIsMandatoryOwner(@jakarta.annotation.Nullable Boolean isMandatoryOwner) {
+ this.isMandatoryOwner = isMandatoryOwner;
+ }
+
+ /** Return true if this QuorumUser object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ QuorumUser quorumUser = (QuorumUser) o;
+ return Objects.equals(this.index, quorumUser.index)
+ && Objects.equals(this.userId, quorumUser.userId)
+ && Objects.equals(this.status, quorumUser.status)
+ && Objects.equals(this.isMandatoryOwner, quorumUser.isMandatoryOwner);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(index, userId, status, isMandatoryOwner);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class QuorumUser {\n");
+ sb.append(" index: ").append(toIndentedString(index)).append("\n");
+ sb.append(" userId: ").append(toIndentedString(userId)).append("\n");
+ sb.append(" status: ").append(toIndentedString(status)).append("\n");
+ sb.append(" isMandatoryOwner: ").append(toIndentedString(isMandatoryOwner)).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 `index` to the URL query string
+ if (getIndex() != null) {
+ joiner.add(
+ String.format(
+ "%sindex%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getIndex()))));
+ }
+
+ // add `userId` to the URL query string
+ if (getUserId() != null) {
+ joiner.add(
+ String.format(
+ "%suserId%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getUserId()))));
+ }
+
+ // 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 `isMandatoryOwner` to the URL query string
+ if (getIsMandatoryOwner() != null) {
+ joiner.add(
+ String.format(
+ "%sisMandatoryOwner%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getIsMandatoryOwner()))));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/Quote.java b/src/main/java/com/fireblocks/sdk/model/Quote.java
index 4758e5da..e698c00e 100644
--- a/src/main/java/com/fireblocks/sdk/model/Quote.java
+++ b/src/main/java/com/fireblocks/sdk/model/Quote.java
@@ -50,7 +50,7 @@
comments = "Generator version: 7.14.0")
public class Quote {
public static final String JSON_PROPERTY_VIA = "via";
- @jakarta.annotation.Nonnull private AccessType via;
+ @jakarta.annotation.Nonnull private AccessTypeResponse via;
public static final String JSON_PROPERTY_ID = "id";
@jakarta.annotation.Nonnull private String id;
@@ -138,7 +138,7 @@ public Quote() {}
@JsonCreator
public Quote(
- @JsonProperty(value = JSON_PROPERTY_VIA, required = true) AccessType via,
+ @JsonProperty(value = JSON_PROPERTY_VIA, required = true) AccessTypeResponse via,
@JsonProperty(value = JSON_PROPERTY_ID, required = true) String id,
@JsonProperty(value = JSON_PROPERTY_QUOTE_ASSET_ID, required = true)
String quoteAssetId,
@@ -159,7 +159,7 @@ public Quote(
this.type = type;
}
- public Quote via(@jakarta.annotation.Nonnull AccessType via) {
+ public Quote via(@jakarta.annotation.Nonnull AccessTypeResponse via) {
this.via = via;
return this;
}
@@ -172,13 +172,13 @@ public Quote via(@jakarta.annotation.Nonnull AccessType via) {
@jakarta.annotation.Nonnull
@JsonProperty(JSON_PROPERTY_VIA)
@JsonInclude(value = JsonInclude.Include.ALWAYS)
- public AccessType getVia() {
+ public AccessTypeResponse getVia() {
return via;
}
@JsonProperty(JSON_PROPERTY_VIA)
@JsonInclude(value = JsonInclude.Include.ALWAYS)
- public void setVia(@jakarta.annotation.Nonnull AccessType via) {
+ public void setVia(@jakarta.annotation.Nonnull AccessTypeResponse via) {
this.via = via;
}
diff --git a/src/main/java/com/fireblocks/sdk/model/QuoteOffer.java b/src/main/java/com/fireblocks/sdk/model/QuoteOffer.java
index 381c5a41..918180df 100644
--- a/src/main/java/com/fireblocks/sdk/model/QuoteOffer.java
+++ b/src/main/java/com/fireblocks/sdk/model/QuoteOffer.java
@@ -51,7 +51,7 @@
comments = "Generator version: 7.14.0")
public class QuoteOffer {
public static final String JSON_PROPERTY_VIA = "via";
- @jakarta.annotation.Nonnull private AccessType via;
+ @jakarta.annotation.Nonnull private AccessTypeResponse via;
public static final String JSON_PROPERTY_ID = "id";
@jakarta.annotation.Nonnull private String id;
@@ -173,7 +173,7 @@ public QuoteOffer() {}
@JsonCreator
public QuoteOffer(
- @JsonProperty(value = JSON_PROPERTY_VIA, required = true) AccessType via,
+ @JsonProperty(value = JSON_PROPERTY_VIA, required = true) AccessTypeResponse via,
@JsonProperty(value = JSON_PROPERTY_ID, required = true) String id,
@JsonProperty(value = JSON_PROPERTY_QUOTE_ASSET_ID, required = true)
String quoteAssetId,
@@ -197,7 +197,7 @@ public QuoteOffer(
this.offerType = offerType;
}
- public QuoteOffer via(@jakarta.annotation.Nonnull AccessType via) {
+ public QuoteOffer via(@jakarta.annotation.Nonnull AccessTypeResponse via) {
this.via = via;
return this;
}
@@ -210,13 +210,13 @@ public QuoteOffer via(@jakarta.annotation.Nonnull AccessType via) {
@jakarta.annotation.Nonnull
@JsonProperty(JSON_PROPERTY_VIA)
@JsonInclude(value = JsonInclude.Include.ALWAYS)
- public AccessType getVia() {
+ public AccessTypeResponse getVia() {
return via;
}
@JsonProperty(JSON_PROPERTY_VIA)
@JsonInclude(value = JsonInclude.Include.ALWAYS)
- public void setVia(@jakarta.annotation.Nonnull AccessType via) {
+ public void setVia(@jakarta.annotation.Nonnull AccessTypeResponse via) {
this.via = via;
}
diff --git a/src/main/java/com/fireblocks/sdk/model/Rate.java b/src/main/java/com/fireblocks/sdk/model/Rate.java
index 204f738b..e175d9bf 100644
--- a/src/main/java/com/fireblocks/sdk/model/Rate.java
+++ b/src/main/java/com/fireblocks/sdk/model/Rate.java
@@ -35,7 +35,7 @@
comments = "Generator version: 7.14.0")
public class Rate {
public static final String JSON_PROPERTY_VIA = "via";
- @jakarta.annotation.Nonnull private AccessType via;
+ @jakarta.annotation.Nonnull private AccessTypeResponse via;
public static final String JSON_PROPERTY_BASE_ASSET_ID = "baseAssetId";
@jakarta.annotation.Nonnull private String baseAssetId;
@@ -56,7 +56,7 @@ public Rate() {}
@JsonCreator
public Rate(
- @JsonProperty(value = JSON_PROPERTY_VIA, required = true) AccessType via,
+ @JsonProperty(value = JSON_PROPERTY_VIA, required = true) AccessTypeResponse via,
@JsonProperty(value = JSON_PROPERTY_BASE_ASSET_ID, required = true) String baseAssetId,
@JsonProperty(value = JSON_PROPERTY_QUOTE_ASSET_ID, required = true)
String quoteAssetId,
@@ -67,7 +67,7 @@ public Rate(
this.rate = rate;
}
- public Rate via(@jakarta.annotation.Nonnull AccessType via) {
+ public Rate via(@jakarta.annotation.Nonnull AccessTypeResponse via) {
this.via = via;
return this;
}
@@ -80,13 +80,13 @@ public Rate via(@jakarta.annotation.Nonnull AccessType via) {
@jakarta.annotation.Nonnull
@JsonProperty(JSON_PROPERTY_VIA)
@JsonInclude(value = JsonInclude.Include.ALWAYS)
- public AccessType getVia() {
+ public AccessTypeResponse getVia() {
return via;
}
@JsonProperty(JSON_PROPERTY_VIA)
@JsonInclude(value = JsonInclude.Include.ALWAYS)
- public void setVia(@jakarta.annotation.Nonnull AccessType via) {
+ public void setVia(@jakarta.annotation.Nonnull AccessTypeResponse via) {
this.via = via;
}
diff --git a/src/main/java/com/fireblocks/sdk/model/RateOffer.java b/src/main/java/com/fireblocks/sdk/model/RateOffer.java
index c436828b..e7c0ffcc 100644
--- a/src/main/java/com/fireblocks/sdk/model/RateOffer.java
+++ b/src/main/java/com/fireblocks/sdk/model/RateOffer.java
@@ -37,7 +37,7 @@
comments = "Generator version: 7.14.0")
public class RateOffer {
public static final String JSON_PROPERTY_VIA = "via";
- @jakarta.annotation.Nonnull private AccessType via;
+ @jakarta.annotation.Nonnull private AccessTypeResponse via;
public static final String JSON_PROPERTY_BASE_ASSET_ID = "baseAssetId";
@jakarta.annotation.Nonnull private String baseAssetId;
@@ -92,7 +92,7 @@ public RateOffer() {}
@JsonCreator
public RateOffer(
- @JsonProperty(value = JSON_PROPERTY_VIA, required = true) AccessType via,
+ @JsonProperty(value = JSON_PROPERTY_VIA, required = true) AccessTypeResponse via,
@JsonProperty(value = JSON_PROPERTY_BASE_ASSET_ID, required = true) String baseAssetId,
@JsonProperty(value = JSON_PROPERTY_QUOTE_ASSET_ID, required = true)
String quoteAssetId,
@@ -106,7 +106,7 @@ public RateOffer(
this.offerType = offerType;
}
- public RateOffer via(@jakarta.annotation.Nonnull AccessType via) {
+ public RateOffer via(@jakarta.annotation.Nonnull AccessTypeResponse via) {
this.via = via;
return this;
}
@@ -119,13 +119,13 @@ public RateOffer via(@jakarta.annotation.Nonnull AccessType via) {
@jakarta.annotation.Nonnull
@JsonProperty(JSON_PROPERTY_VIA)
@JsonInclude(value = JsonInclude.Include.ALWAYS)
- public AccessType getVia() {
+ public AccessTypeResponse getVia() {
return via;
}
@JsonProperty(JSON_PROPERTY_VIA)
@JsonInclude(value = JsonInclude.Include.ALWAYS)
- public void setVia(@jakarta.annotation.Nonnull AccessType via) {
+ public void setVia(@jakarta.annotation.Nonnull AccessTypeResponse via) {
this.via = via;
}
diff --git a/src/main/java/com/fireblocks/sdk/model/RulesetQuorum.java b/src/main/java/com/fireblocks/sdk/model/RulesetQuorum.java
new file mode 100644
index 00000000..47edebb1
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/RulesetQuorum.java
@@ -0,0 +1,417 @@
+/*
+ * 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.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.StringJoiner;
+
+/**
+ * The general shape, used when the request has more than one sub-request or a sub-request with more
+ * than one tier. Each entry in `rulesets` is a sub-request; each of its
+ * `groups` is a tier.
+ */
+@JsonPropertyOrder({
+ RulesetQuorum.JSON_PROPERTY_TYPE,
+ RulesetQuorum.JSON_PROPERTY_RULESET_MATCH,
+ RulesetQuorum.JSON_PROPERTY_STATUS,
+ RulesetQuorum.JSON_PROPERTY_IS_MANDATORY_OWNER_APPROVED,
+ RulesetQuorum.JSON_PROPERTY_RULESETS
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class RulesetQuorum {
+ /** Discriminator identifying the multi-tier shape. */
+ public enum TypeEnum {
+ RULESET(String.valueOf("RULESET"));
+
+ private String value;
+
+ TypeEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static TypeEnum fromValue(String value) {
+ for (TypeEnum b : TypeEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ @jakarta.annotation.Nonnull private TypeEnum type;
+
+ /**
+ * Whether every sub-request in `rulesets` must be satisfied (`ALL`) or any
+ * single one of them (`ANY`).
+ */
+ public enum RulesetMatchEnum {
+ ALL(String.valueOf("ALL")),
+
+ ANY(String.valueOf("ANY"));
+
+ private String value;
+
+ RulesetMatchEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static RulesetMatchEnum fromValue(String value) {
+ for (RulesetMatchEnum b : RulesetMatchEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_RULESET_MATCH = "rulesetMatch";
+ @jakarta.annotation.Nonnull private RulesetMatchEnum rulesetMatch;
+
+ public static final String JSON_PROPERTY_STATUS = "status";
+ @jakarta.annotation.Nonnull private QuorumApprovalState status;
+
+ public static final String JSON_PROPERTY_IS_MANDATORY_OWNER_APPROVED =
+ "isMandatoryOwnerApproved";
+ @jakarta.annotation.Nullable private Boolean isMandatoryOwnerApproved;
+
+ public static final String JSON_PROPERTY_RULESETS = "rulesets";
+ @jakarta.annotation.Nonnull private List rulesets;
+
+ public RulesetQuorum() {}
+
+ @JsonCreator
+ public RulesetQuorum(
+ @JsonProperty(value = JSON_PROPERTY_TYPE, required = true) TypeEnum type,
+ @JsonProperty(value = JSON_PROPERTY_RULESET_MATCH, required = true)
+ RulesetMatchEnum rulesetMatch,
+ @JsonProperty(value = JSON_PROPERTY_STATUS, required = true) QuorumApprovalState status,
+ @JsonProperty(value = JSON_PROPERTY_RULESETS, required = true)
+ List rulesets) {
+ this.type = type;
+ this.rulesetMatch = rulesetMatch;
+ this.status = status;
+ this.rulesets = rulesets;
+ }
+
+ public RulesetQuorum type(@jakarta.annotation.Nonnull TypeEnum type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Discriminator identifying the multi-tier shape.
+ *
+ * @return type
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public TypeEnum getType() {
+ return type;
+ }
+
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setType(@jakarta.annotation.Nonnull TypeEnum type) {
+ this.type = type;
+ }
+
+ public RulesetQuorum rulesetMatch(@jakarta.annotation.Nonnull RulesetMatchEnum rulesetMatch) {
+ this.rulesetMatch = rulesetMatch;
+ return this;
+ }
+
+ /**
+ * Whether every sub-request in `rulesets` must be satisfied (`ALL`) or any
+ * single one of them (`ANY`).
+ *
+ * @return rulesetMatch
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_RULESET_MATCH)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public RulesetMatchEnum getRulesetMatch() {
+ return rulesetMatch;
+ }
+
+ @JsonProperty(JSON_PROPERTY_RULESET_MATCH)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setRulesetMatch(@jakarta.annotation.Nonnull RulesetMatchEnum rulesetMatch) {
+ this.rulesetMatch = rulesetMatch;
+ }
+
+ public RulesetQuorum status(@jakarta.annotation.Nonnull QuorumApprovalState status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get status
+ *
+ * @return status
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_STATUS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public QuorumApprovalState getStatus() {
+ return status;
+ }
+
+ @JsonProperty(JSON_PROPERTY_STATUS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setStatus(@jakarta.annotation.Nonnull QuorumApprovalState status) {
+ this.status = status;
+ }
+
+ public RulesetQuorum isMandatoryOwnerApproved(
+ @jakarta.annotation.Nullable Boolean isMandatoryOwnerApproved) {
+ this.isMandatoryOwnerApproved = isMandatoryOwnerApproved;
+ return this;
+ }
+
+ /**
+ * Present only when this request additionally requires the workspace owner's approval.
+ * `false` means the owner has not approved yet. Absent when no owner approval is
+ * required.
+ *
+ * @return isMandatoryOwnerApproved
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_IS_MANDATORY_OWNER_APPROVED)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Boolean getIsMandatoryOwnerApproved() {
+ return isMandatoryOwnerApproved;
+ }
+
+ @JsonProperty(JSON_PROPERTY_IS_MANDATORY_OWNER_APPROVED)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setIsMandatoryOwnerApproved(
+ @jakarta.annotation.Nullable Boolean isMandatoryOwnerApproved) {
+ this.isMandatoryOwnerApproved = isMandatoryOwnerApproved;
+ }
+
+ public RulesetQuorum rulesets(@jakarta.annotation.Nonnull List rulesets) {
+ this.rulesets = rulesets;
+ return this;
+ }
+
+ public RulesetQuorum addRulesetsItem(QuorumRuleset rulesetsItem) {
+ if (this.rulesets == null) {
+ this.rulesets = new ArrayList<>();
+ }
+ this.rulesets.add(rulesetsItem);
+ return this;
+ }
+
+ /**
+ * The sub-requests of the approval criteria, evaluated according to `rulesetMatch`.
+ *
+ * @return rulesets
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_RULESETS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public List getRulesets() {
+ return rulesets;
+ }
+
+ @JsonProperty(JSON_PROPERTY_RULESETS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setRulesets(@jakarta.annotation.Nonnull List rulesets) {
+ this.rulesets = rulesets;
+ }
+
+ /** Return true if this RulesetQuorum object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ RulesetQuorum rulesetQuorum = (RulesetQuorum) o;
+ return Objects.equals(this.type, rulesetQuorum.type)
+ && Objects.equals(this.rulesetMatch, rulesetQuorum.rulesetMatch)
+ && Objects.equals(this.status, rulesetQuorum.status)
+ && Objects.equals(
+ this.isMandatoryOwnerApproved, rulesetQuorum.isMandatoryOwnerApproved)
+ && Objects.equals(this.rulesets, rulesetQuorum.rulesets);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(type, rulesetMatch, status, isMandatoryOwnerApproved, rulesets);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class RulesetQuorum {\n");
+ sb.append(" type: ").append(toIndentedString(type)).append("\n");
+ sb.append(" rulesetMatch: ").append(toIndentedString(rulesetMatch)).append("\n");
+ sb.append(" status: ").append(toIndentedString(status)).append("\n");
+ sb.append(" isMandatoryOwnerApproved: ")
+ .append(toIndentedString(isMandatoryOwnerApproved))
+ .append("\n");
+ sb.append(" rulesets: ").append(toIndentedString(rulesets)).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 `type` to the URL query string
+ if (getType() != null) {
+ joiner.add(
+ String.format(
+ "%stype%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getType()))));
+ }
+
+ // add `rulesetMatch` to the URL query string
+ if (getRulesetMatch() != null) {
+ joiner.add(
+ String.format(
+ "%srulesetMatch%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getRulesetMatch()))));
+ }
+
+ // 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 `isMandatoryOwnerApproved` to the URL query string
+ if (getIsMandatoryOwnerApproved() != null) {
+ joiner.add(
+ String.format(
+ "%sisMandatoryOwnerApproved%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(
+ ApiClient.valueToString(getIsMandatoryOwnerApproved()))));
+ }
+
+ // add `rulesets` to the URL query string
+ if (getRulesets() != null) {
+ for (int i = 0; i < getRulesets().size(); i++) {
+ if (getRulesets().get(i) != null) {
+ joiner.add(
+ getRulesets()
+ .get(i)
+ .toUrlQueryString(
+ String.format(
+ "%srulesets%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/SecurityFindingDetailed.java b/src/main/java/com/fireblocks/sdk/model/SecurityFindingDetailed.java
index e07eb4fe..8aebee2f 100644
--- a/src/main/java/com/fireblocks/sdk/model/SecurityFindingDetailed.java
+++ b/src/main/java/com/fireblocks/sdk/model/SecurityFindingDetailed.java
@@ -28,7 +28,7 @@
import java.util.StringJoiner;
import java.util.UUID;
-/** A single FSPM finding, redacted to the public field set */
+/** SecurityFindingDetailed */
@JsonPropertyOrder({
SecurityFindingDetailed.JSON_PROPERTY_ID,
SecurityFindingDetailed.JSON_PROPERTY_STATUS,
diff --git a/src/main/java/com/fireblocks/sdk/model/SimpleQuorum.java b/src/main/java/com/fireblocks/sdk/model/SimpleQuorum.java
new file mode 100644
index 00000000..f66bdebc
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/SimpleQuorum.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.fasterxml.jackson.annotation.JsonValue;
+import com.fireblocks.sdk.ApiClient;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.StringJoiner;
+
+/**
+ * The flattened shape used when the request has a single sub-request with a single tier, which is
+ * the common case. The threshold and approval count sit directly on the quorum object instead of
+ * inside `rulesets`.
+ */
+@JsonPropertyOrder({
+ SimpleQuorum.JSON_PROPERTY_TYPE,
+ SimpleQuorum.JSON_PROPERTY_THRESHOLD,
+ SimpleQuorum.JSON_PROPERTY_CURRENT_APPROVAL_COUNT,
+ SimpleQuorum.JSON_PROPERTY_STATUS,
+ SimpleQuorum.JSON_PROPERTY_IS_MANDATORY_OWNER_APPROVED,
+ SimpleQuorum.JSON_PROPERTY_MEMBERS
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class SimpleQuorum {
+ /** Discriminator identifying the flattened single-tier shape. */
+ public enum TypeEnum {
+ SIMPLE(String.valueOf("SIMPLE"));
+
+ private String value;
+
+ TypeEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static TypeEnum fromValue(String value) {
+ for (TypeEnum b : TypeEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ @jakarta.annotation.Nonnull private TypeEnum type;
+
+ public static final String JSON_PROPERTY_THRESHOLD = "threshold";
+ @jakarta.annotation.Nonnull private Integer threshold;
+
+ public static final String JSON_PROPERTY_CURRENT_APPROVAL_COUNT = "currentApprovalCount";
+ @jakarta.annotation.Nonnull private Integer currentApprovalCount;
+
+ public static final String JSON_PROPERTY_STATUS = "status";
+ @jakarta.annotation.Nonnull private QuorumApprovalState status;
+
+ public static final String JSON_PROPERTY_IS_MANDATORY_OWNER_APPROVED =
+ "isMandatoryOwnerApproved";
+ @jakarta.annotation.Nullable private Boolean isMandatoryOwnerApproved;
+
+ public static final String JSON_PROPERTY_MEMBERS = "members";
+ @jakarta.annotation.Nullable private List members;
+
+ public SimpleQuorum() {}
+
+ @JsonCreator
+ public SimpleQuorum(
+ @JsonProperty(value = JSON_PROPERTY_TYPE, required = true) TypeEnum type,
+ @JsonProperty(value = JSON_PROPERTY_THRESHOLD, required = true) Integer threshold,
+ @JsonProperty(value = JSON_PROPERTY_CURRENT_APPROVAL_COUNT, required = true)
+ Integer currentApprovalCount,
+ @JsonProperty(value = JSON_PROPERTY_STATUS, required = true)
+ QuorumApprovalState status) {
+ this.type = type;
+ this.threshold = threshold;
+ this.currentApprovalCount = currentApprovalCount;
+ this.status = status;
+ }
+
+ public SimpleQuorum type(@jakarta.annotation.Nonnull TypeEnum type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Discriminator identifying the flattened single-tier shape.
+ *
+ * @return type
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public TypeEnum getType() {
+ return type;
+ }
+
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setType(@jakarta.annotation.Nonnull TypeEnum type) {
+ this.type = type;
+ }
+
+ public SimpleQuorum threshold(@jakarta.annotation.Nonnull Integer threshold) {
+ this.threshold = threshold;
+ return this;
+ }
+
+ /**
+ * Number of approvals this request requires.
+ *
+ * @return threshold
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_THRESHOLD)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public Integer getThreshold() {
+ return threshold;
+ }
+
+ @JsonProperty(JSON_PROPERTY_THRESHOLD)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setThreshold(@jakarta.annotation.Nonnull Integer threshold) {
+ this.threshold = threshold;
+ }
+
+ public SimpleQuorum currentApprovalCount(
+ @jakarta.annotation.Nonnull Integer currentApprovalCount) {
+ this.currentApprovalCount = currentApprovalCount;
+ return this;
+ }
+
+ /**
+ * Approvals collected so far toward `threshold`.
+ *
+ * @return currentApprovalCount
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_CURRENT_APPROVAL_COUNT)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public Integer getCurrentApprovalCount() {
+ return currentApprovalCount;
+ }
+
+ @JsonProperty(JSON_PROPERTY_CURRENT_APPROVAL_COUNT)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setCurrentApprovalCount(@jakarta.annotation.Nonnull Integer currentApprovalCount) {
+ this.currentApprovalCount = currentApprovalCount;
+ }
+
+ public SimpleQuorum status(@jakarta.annotation.Nonnull QuorumApprovalState status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get status
+ *
+ * @return status
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_STATUS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public QuorumApprovalState getStatus() {
+ return status;
+ }
+
+ @JsonProperty(JSON_PROPERTY_STATUS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setStatus(@jakarta.annotation.Nonnull QuorumApprovalState status) {
+ this.status = status;
+ }
+
+ public SimpleQuorum isMandatoryOwnerApproved(
+ @jakarta.annotation.Nullable Boolean isMandatoryOwnerApproved) {
+ this.isMandatoryOwnerApproved = isMandatoryOwnerApproved;
+ return this;
+ }
+
+ /**
+ * Present only when this request additionally requires the workspace owner's approval.
+ * `false` means the owner has not approved yet, which is why `status` can
+ * remain `PENDING` even once `currentApprovalCount` reaches
+ * `threshold`. Absent when no owner approval is required.
+ *
+ * @return isMandatoryOwnerApproved
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_IS_MANDATORY_OWNER_APPROVED)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Boolean getIsMandatoryOwnerApproved() {
+ return isMandatoryOwnerApproved;
+ }
+
+ @JsonProperty(JSON_PROPERTY_IS_MANDATORY_OWNER_APPROVED)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setIsMandatoryOwnerApproved(
+ @jakarta.annotation.Nullable Boolean isMandatoryOwnerApproved) {
+ this.isMandatoryOwnerApproved = isMandatoryOwnerApproved;
+ }
+
+ public SimpleQuorum members(@jakarta.annotation.Nullable List members) {
+ this.members = members;
+ return this;
+ }
+
+ public SimpleQuorum addMembersItem(Integer membersItem) {
+ if (this.members == null) {
+ this.members = new ArrayList<>();
+ }
+ this.members.add(membersItem);
+ return this;
+ }
+
+ /**
+ * Indexes into the top-level `users` array identifying the users who may approve.
+ * Returned only for `quorumStatusMode=FULL`; omitted otherwise.
+ *
+ * @return members
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_MEMBERS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getMembers() {
+ return members;
+ }
+
+ @JsonProperty(JSON_PROPERTY_MEMBERS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setMembers(@jakarta.annotation.Nullable List members) {
+ this.members = members;
+ }
+
+ /** Return true if this SimpleQuorum object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ SimpleQuorum simpleQuorum = (SimpleQuorum) o;
+ return Objects.equals(this.type, simpleQuorum.type)
+ && Objects.equals(this.threshold, simpleQuorum.threshold)
+ && Objects.equals(this.currentApprovalCount, simpleQuorum.currentApprovalCount)
+ && Objects.equals(this.status, simpleQuorum.status)
+ && Objects.equals(
+ this.isMandatoryOwnerApproved, simpleQuorum.isMandatoryOwnerApproved)
+ && Objects.equals(this.members, simpleQuorum.members);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(
+ type, threshold, currentApprovalCount, status, isMandatoryOwnerApproved, members);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class SimpleQuorum {\n");
+ sb.append(" type: ").append(toIndentedString(type)).append("\n");
+ sb.append(" threshold: ").append(toIndentedString(threshold)).append("\n");
+ sb.append(" currentApprovalCount: ")
+ .append(toIndentedString(currentApprovalCount))
+ .append("\n");
+ sb.append(" status: ").append(toIndentedString(status)).append("\n");
+ sb.append(" isMandatoryOwnerApproved: ")
+ .append(toIndentedString(isMandatoryOwnerApproved))
+ .append("\n");
+ sb.append(" members: ").append(toIndentedString(members)).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 `type` to the URL query string
+ if (getType() != null) {
+ joiner.add(
+ String.format(
+ "%stype%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getType()))));
+ }
+
+ // add `threshold` to the URL query string
+ if (getThreshold() != null) {
+ joiner.add(
+ String.format(
+ "%sthreshold%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getThreshold()))));
+ }
+
+ // add `currentApprovalCount` to the URL query string
+ if (getCurrentApprovalCount() != null) {
+ joiner.add(
+ String.format(
+ "%scurrentApprovalCount%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(
+ ApiClient.valueToString(getCurrentApprovalCount()))));
+ }
+
+ // 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 `isMandatoryOwnerApproved` to the URL query string
+ if (getIsMandatoryOwnerApproved() != null) {
+ joiner.add(
+ String.format(
+ "%sisMandatoryOwnerApproved%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(
+ ApiClient.valueToString(getIsMandatoryOwnerApproved()))));
+ }
+
+ // add `members` to the URL query string
+ if (getMembers() != null) {
+ for (int i = 0; i < getMembers().size(); i++) {
+ joiner.add(
+ String.format(
+ "%smembers%s%s=%s",
+ prefix,
+ suffix,
+ "".equals(suffix)
+ ? ""
+ : String.format(
+ "%s%d%s", containerPrefix, i, containerSuffix),
+ ApiClient.urlEncode(ApiClient.valueToString(getMembers().get(i)))));
+ }
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/TransactionRequest.java b/src/main/java/com/fireblocks/sdk/model/TransactionRequest.java
index e091d6e6..2f828300 100644
--- a/src/main/java/com/fireblocks/sdk/model/TransactionRequest.java
+++ b/src/main/java/com/fireblocks/sdk/model/TransactionRequest.java
@@ -469,7 +469,8 @@ public TransactionRequest forceSweep(@jakarta.annotation.Nullable Boolean forceS
* For Polkadot, Kusama and Westend transactions only. When set to true, Fireblocks will empty
* the asset wallet. **Note:** If set to true when the source account is exactly 1 DOT, the
* transaction will fail. Any amount more or less than 1 DOT succeeds. This is a Polkadot
- * blockchain limitation.
+ * blockchain limitation. **Note:** `forceSweep` and `treatAsGrossAmount`
+ * can also be used to empty a TON/GRAM wallet.
*
* @return forceSweep
*/
diff --git a/src/main/java/com/fireblocks/sdk/model/TransactionResponse.java b/src/main/java/com/fireblocks/sdk/model/TransactionResponse.java
index ddc60aca..69ac83ae 100644
--- a/src/main/java/com/fireblocks/sdk/model/TransactionResponse.java
+++ b/src/main/java/com/fireblocks/sdk/model/TransactionResponse.java
@@ -50,6 +50,7 @@
TransactionResponse.JSON_PROPERTY_TREAT_AS_GROSS_AMOUNT,
TransactionResponse.JSON_PROPERTY_FEE_INFO,
TransactionResponse.JSON_PROPERTY_FEE_CURRENCY,
+ TransactionResponse.JSON_PROPERTY_REQUESTED_FEE_CURRENCY,
TransactionResponse.JSON_PROPERTY_NETWORK_RECORDS,
TransactionResponse.JSON_PROPERTY_CREATED_AT,
TransactionResponse.JSON_PROPERTY_LAST_UPDATED,
@@ -166,6 +167,9 @@ public class TransactionResponse {
public static final String JSON_PROPERTY_FEE_CURRENCY = "feeCurrency";
@jakarta.annotation.Nullable private String feeCurrency;
+ public static final String JSON_PROPERTY_REQUESTED_FEE_CURRENCY = "requestedFeeCurrency";
+ @jakarta.annotation.Nullable private String requestedFeeCurrency;
+
public static final String JSON_PROPERTY_NETWORK_RECORDS = "networkRecords";
@jakarta.annotation.Nullable private List networkRecords;
@@ -925,6 +929,31 @@ public void setFeeCurrency(@jakarta.annotation.Nullable String feeCurrency) {
this.feeCurrency = feeCurrency;
}
+ public TransactionResponse requestedFeeCurrency(
+ @jakarta.annotation.Nullable String requestedFeeCurrency) {
+ this.requestedFeeCurrency = requestedFeeCurrency;
+ return this;
+ }
+
+ /**
+ * The fee-paying asset requested at transaction creation via the `feeCurrency` field,
+ * if any.
+ *
+ * @return requestedFeeCurrency
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_REQUESTED_FEE_CURRENCY)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getRequestedFeeCurrency() {
+ return requestedFeeCurrency;
+ }
+
+ @JsonProperty(JSON_PROPERTY_REQUESTED_FEE_CURRENCY)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setRequestedFeeCurrency(@jakarta.annotation.Nullable String requestedFeeCurrency) {
+ this.requestedFeeCurrency = requestedFeeCurrency;
+ }
+
public TransactionResponse networkRecords(
@jakarta.annotation.Nullable List networkRecords) {
this.networkRecords = networkRecords;
@@ -1943,6 +1972,8 @@ public boolean equals(Object o) {
&& Objects.equals(this.treatAsGrossAmount, transactionResponse.treatAsGrossAmount)
&& Objects.equals(this.feeInfo, transactionResponse.feeInfo)
&& Objects.equals(this.feeCurrency, transactionResponse.feeCurrency)
+ && Objects.equals(
+ this.requestedFeeCurrency, transactionResponse.requestedFeeCurrency)
&& Objects.equals(this.networkRecords, transactionResponse.networkRecords)
&& Objects.equals(this.createdAt, transactionResponse.createdAt)
&& Objects.equals(this.lastUpdated, transactionResponse.lastUpdated)
@@ -2011,6 +2042,7 @@ public int hashCode() {
treatAsGrossAmount,
feeInfo,
feeCurrency,
+ requestedFeeCurrency,
networkRecords,
createdAt,
lastUpdated,
@@ -2089,6 +2121,9 @@ public String toString() {
.append("\n");
sb.append(" feeInfo: ").append(toIndentedString(feeInfo)).append("\n");
sb.append(" feeCurrency: ").append(toIndentedString(feeCurrency)).append("\n");
+ sb.append(" requestedFeeCurrency: ")
+ .append(toIndentedString(requestedFeeCurrency))
+ .append("\n");
sb.append(" networkRecords: ").append(toIndentedString(networkRecords)).append("\n");
sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n");
sb.append(" lastUpdated: ").append(toIndentedString(lastUpdated)).append("\n");
@@ -2419,6 +2454,17 @@ public String toUrlQueryString(String prefix) {
ApiClient.urlEncode(ApiClient.valueToString(getFeeCurrency()))));
}
+ // add `requestedFeeCurrency` to the URL query string
+ if (getRequestedFeeCurrency() != null) {
+ joiner.add(
+ String.format(
+ "%srequestedFeeCurrency%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(
+ ApiClient.valueToString(getRequestedFeeCurrency()))));
+ }
+
// add `networkRecords` to the URL query string
if (getNetworkRecords() != null) {
for (int i = 0; i < getNetworkRecords().size(); i++) {
diff --git a/src/main/java/com/fireblocks/sdk/model/TransferResponse.java b/src/main/java/com/fireblocks/sdk/model/TransferResponse.java
new file mode 100644
index 00000000..f9966cc5
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/TransferResponse.java
@@ -0,0 +1,337 @@
+/*
+ * 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.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.MapperFeature;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
+import com.fasterxml.jackson.databind.ser.std.StdSerializer;
+import com.fireblocks.sdk.JSON;
+import java.io.IOException;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.StringJoiner;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+@JsonDeserialize(using = TransferResponse.TransferResponseDeserializer.class)
+@JsonSerialize(using = TransferResponse.TransferResponseSerializer.class)
+public class TransferResponse extends AbstractOpenApiSchema {
+ private static final Logger log = Logger.getLogger(TransferResponse.class.getName());
+
+ public static class TransferResponseSerializer extends StdSerializer {
+ public TransferResponseSerializer(Class t) {
+ super(t);
+ }
+
+ public TransferResponseSerializer() {
+ this(null);
+ }
+
+ @Override
+ public void serialize(
+ TransferResponse value, JsonGenerator jgen, SerializerProvider provider)
+ throws IOException, JsonProcessingException {
+ jgen.writeObject(value.getActualInstance());
+ }
+ }
+
+ public static class TransferResponseDeserializer extends StdDeserializer {
+ public TransferResponseDeserializer() {
+ this(TransferResponse.class);
+ }
+
+ public TransferResponseDeserializer(Class> vc) {
+ super(vc);
+ }
+
+ @Override
+ public TransferResponse deserialize(JsonParser jp, DeserializationContext ctxt)
+ throws IOException, JsonProcessingException {
+ JsonNode tree = jp.readValueAsTree();
+ Object deserialized = null;
+ boolean typeCoercion = ctxt.isEnabled(MapperFeature.ALLOW_COERCION_OF_SCALARS);
+ int match = 0;
+ JsonToken token = tree.traverse(jp.getCodec()).nextToken();
+ // deserialize TransferResponseAccept
+ try {
+ boolean attemptParsing = true;
+ // ensure that we respect type coercion as set on the client ObjectMapper
+ if (TransferResponseAccept.class.equals(Integer.class)
+ || TransferResponseAccept.class.equals(Long.class)
+ || TransferResponseAccept.class.equals(Float.class)
+ || TransferResponseAccept.class.equals(Double.class)
+ || TransferResponseAccept.class.equals(Boolean.class)
+ || TransferResponseAccept.class.equals(String.class)) {
+ attemptParsing = typeCoercion;
+ if (!attemptParsing) {
+ attemptParsing |=
+ ((TransferResponseAccept.class.equals(Integer.class)
+ || TransferResponseAccept.class.equals(Long.class))
+ && token == JsonToken.VALUE_NUMBER_INT);
+ attemptParsing |=
+ ((TransferResponseAccept.class.equals(Float.class)
+ || TransferResponseAccept.class.equals(
+ Double.class))
+ && token == JsonToken.VALUE_NUMBER_FLOAT);
+ attemptParsing |=
+ (TransferResponseAccept.class.equals(Boolean.class)
+ && (token == JsonToken.VALUE_FALSE
+ || token == JsonToken.VALUE_TRUE));
+ attemptParsing |=
+ (TransferResponseAccept.class.equals(String.class)
+ && token == JsonToken.VALUE_STRING);
+ }
+ }
+ if (attemptParsing) {
+ deserialized =
+ tree.traverse(jp.getCodec()).readValueAs(TransferResponseAccept.class);
+ // TODO: there is no validation against JSON schema constraints
+ // (min, max, enum, pattern...), this does not perform a strict JSON
+ // validation, which means the 'match' count may be higher than it should be.
+ match++;
+ log.log(Level.FINER, "Input data matches schema 'TransferResponseAccept'");
+ }
+ } catch (Exception e) {
+ // deserialization failed, continue
+ log.log(
+ Level.FINER,
+ "Input data does not match schema 'TransferResponseAccept'",
+ e);
+ }
+
+ // deserialize TransferResponseReject
+ try {
+ boolean attemptParsing = true;
+ // ensure that we respect type coercion as set on the client ObjectMapper
+ if (TransferResponseReject.class.equals(Integer.class)
+ || TransferResponseReject.class.equals(Long.class)
+ || TransferResponseReject.class.equals(Float.class)
+ || TransferResponseReject.class.equals(Double.class)
+ || TransferResponseReject.class.equals(Boolean.class)
+ || TransferResponseReject.class.equals(String.class)) {
+ attemptParsing = typeCoercion;
+ if (!attemptParsing) {
+ attemptParsing |=
+ ((TransferResponseReject.class.equals(Integer.class)
+ || TransferResponseReject.class.equals(Long.class))
+ && token == JsonToken.VALUE_NUMBER_INT);
+ attemptParsing |=
+ ((TransferResponseReject.class.equals(Float.class)
+ || TransferResponseReject.class.equals(
+ Double.class))
+ && token == JsonToken.VALUE_NUMBER_FLOAT);
+ attemptParsing |=
+ (TransferResponseReject.class.equals(Boolean.class)
+ && (token == JsonToken.VALUE_FALSE
+ || token == JsonToken.VALUE_TRUE));
+ attemptParsing |=
+ (TransferResponseReject.class.equals(String.class)
+ && token == JsonToken.VALUE_STRING);
+ }
+ }
+ if (attemptParsing) {
+ deserialized =
+ tree.traverse(jp.getCodec()).readValueAs(TransferResponseReject.class);
+ // TODO: there is no validation against JSON schema constraints
+ // (min, max, enum, pattern...), this does not perform a strict JSON
+ // validation, which means the 'match' count may be higher than it should be.
+ match++;
+ log.log(Level.FINER, "Input data matches schema 'TransferResponseReject'");
+ }
+ } catch (Exception e) {
+ // deserialization failed, continue
+ log.log(
+ Level.FINER,
+ "Input data does not match schema 'TransferResponseReject'",
+ e);
+ }
+
+ if (match == 1) {
+ TransferResponse ret = new TransferResponse();
+ ret.setActualInstance(deserialized);
+ return ret;
+ }
+ throw new IOException(
+ String.format(
+ "Failed deserialization for TransferResponse: %d classes match result,"
+ + " expected 1",
+ match));
+ }
+
+ /** Handle deserialization of the 'null' value. */
+ @Override
+ public TransferResponse getNullValue(DeserializationContext ctxt)
+ throws JsonMappingException {
+ throw new JsonMappingException(ctxt.getParser(), "TransferResponse cannot be null");
+ }
+ }
+
+ // store a list of schema names defined in oneOf
+ public static final Map> schemas = new HashMap<>();
+
+ public TransferResponse() {
+ super("oneOf", Boolean.FALSE);
+ }
+
+ public TransferResponse(TransferResponseAccept o) {
+ super("oneOf", Boolean.FALSE);
+ setActualInstance(o);
+ }
+
+ public TransferResponse(TransferResponseReject o) {
+ super("oneOf", Boolean.FALSE);
+ setActualInstance(o);
+ }
+
+ static {
+ schemas.put("TransferResponseAccept", TransferResponseAccept.class);
+ schemas.put("TransferResponseReject", TransferResponseReject.class);
+ JSON.registerDescendants(TransferResponse.class, Collections.unmodifiableMap(schemas));
+ // Initialize and register the discriminator mappings.
+ Map> mappings = new HashMap>();
+ mappings.put("TRANSFER_ACCEPT", TransferResponseAccept.class);
+ mappings.put("TRANSFER_REJECT", TransferResponseReject.class);
+ mappings.put("TransferResponseAccept", TransferResponseAccept.class);
+ mappings.put("TransferResponseReject", TransferResponseReject.class);
+ mappings.put("TransferResponse", TransferResponse.class);
+ JSON.registerDiscriminator(TransferResponse.class, "responseType", mappings);
+ }
+
+ @Override
+ public Map> getSchemas() {
+ return TransferResponse.schemas;
+ }
+
+ /**
+ * Set the instance that matches the oneOf child schema, check the instance parameter is valid
+ * against the oneOf child schemas: TransferResponseAccept, TransferResponseReject
+ *
+ * It could be an instance of the 'oneOf' schemas. The oneOf child schemas may themselves be
+ * a composed schema (allOf, anyOf, oneOf).
+ */
+ @Override
+ public void setActualInstance(Object instance) {
+ if (JSON.isInstanceOf(TransferResponseAccept.class, instance, new HashSet>())) {
+ super.setActualInstance(instance);
+ return;
+ }
+
+ if (JSON.isInstanceOf(TransferResponseReject.class, instance, new HashSet>())) {
+ super.setActualInstance(instance);
+ return;
+ }
+
+ throw new RuntimeException(
+ "Invalid instance type. Must be TransferResponseAccept, TransferResponseReject");
+ }
+
+ /**
+ * Get the actual instance, which can be the following: TransferResponseAccept,
+ * TransferResponseReject
+ *
+ * @return The actual instance (TransferResponseAccept, TransferResponseReject)
+ */
+ @Override
+ public Object getActualInstance() {
+ return super.getActualInstance();
+ }
+
+ /**
+ * Get the actual instance of `TransferResponseAccept`. If the actual instance is not
+ * `TransferResponseAccept`, the ClassCastException will be thrown.
+ *
+ * @return The actual instance of `TransferResponseAccept`
+ * @throws ClassCastException if the instance is not `TransferResponseAccept`
+ */
+ public TransferResponseAccept getTransferResponseAccept() throws ClassCastException {
+ return (TransferResponseAccept) super.getActualInstance();
+ }
+
+ /**
+ * Get the actual instance of `TransferResponseReject`. If the actual instance is not
+ * `TransferResponseReject`, the ClassCastException will be thrown.
+ *
+ * @return The actual instance of `TransferResponseReject`
+ * @throws ClassCastException if the instance is not `TransferResponseReject`
+ */
+ public TransferResponseReject getTransferResponseReject() throws ClassCastException {
+ return (TransferResponseReject) super.getActualInstance();
+ }
+
+ /**
+ * 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("&");
+
+ if (getActualInstance() instanceof TransferResponseAccept) {
+ if (getActualInstance() != null) {
+ joiner.add(
+ ((TransferResponseAccept) getActualInstance())
+ .toUrlQueryString(prefix + "one_of_0" + suffix));
+ }
+ return joiner.toString();
+ }
+ if (getActualInstance() instanceof TransferResponseReject) {
+ if (getActualInstance() != null) {
+ joiner.add(
+ ((TransferResponseReject) getActualInstance())
+ .toUrlQueryString(prefix + "one_of_1" + suffix));
+ }
+ return joiner.toString();
+ }
+ return null;
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/TransferResponseAccept.java b/src/main/java/com/fireblocks/sdk/model/TransferResponseAccept.java
new file mode 100644
index 00000000..03664033
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/TransferResponseAccept.java
@@ -0,0 +1,180 @@
+/*
+ * 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;
+
+/** Accept an inbound 2-step transfer offer. Carries no arguments. */
+@JsonPropertyOrder({TransferResponseAccept.JSON_PROPERTY_RESPONSE_TYPE})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class TransferResponseAccept {
+ /** How you are answering the transfer offer. */
+ public enum ResponseTypeEnum {
+ TRANSFER_ACCEPT(String.valueOf("TRANSFER_ACCEPT"));
+
+ private String value;
+
+ ResponseTypeEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static ResponseTypeEnum fromValue(String value) {
+ for (ResponseTypeEnum b : ResponseTypeEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_RESPONSE_TYPE = "responseType";
+ @jakarta.annotation.Nonnull private ResponseTypeEnum responseType;
+
+ public TransferResponseAccept() {}
+
+ @JsonCreator
+ public TransferResponseAccept(
+ @JsonProperty(value = JSON_PROPERTY_RESPONSE_TYPE, required = true)
+ ResponseTypeEnum responseType) {
+ this.responseType = responseType;
+ }
+
+ public TransferResponseAccept responseType(
+ @jakarta.annotation.Nonnull ResponseTypeEnum responseType) {
+ this.responseType = responseType;
+ return this;
+ }
+
+ /**
+ * How you are answering the transfer offer.
+ *
+ * @return responseType
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_RESPONSE_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public ResponseTypeEnum getResponseType() {
+ return responseType;
+ }
+
+ @JsonProperty(JSON_PROPERTY_RESPONSE_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setResponseType(@jakarta.annotation.Nonnull ResponseTypeEnum responseType) {
+ this.responseType = responseType;
+ }
+
+ /** Return true if this TransferResponseAccept object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ TransferResponseAccept transferResponseAccept = (TransferResponseAccept) o;
+ return Objects.equals(this.responseType, transferResponseAccept.responseType);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(responseType);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class TransferResponseAccept {\n");
+ sb.append(" responseType: ").append(toIndentedString(responseType)).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 `responseType` to the URL query string
+ if (getResponseType() != null) {
+ joiner.add(
+ String.format(
+ "%sresponseType%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getResponseType()))));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/TransferResponseReject.java b/src/main/java/com/fireblocks/sdk/model/TransferResponseReject.java
new file mode 100644
index 00000000..6294be92
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/TransferResponseReject.java
@@ -0,0 +1,180 @@
+/*
+ * 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;
+
+/** Reject an inbound 2-step transfer offer. Carries no arguments. */
+@JsonPropertyOrder({TransferResponseReject.JSON_PROPERTY_RESPONSE_TYPE})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class TransferResponseReject {
+ /** How you are answering the transfer offer. */
+ public enum ResponseTypeEnum {
+ TRANSFER_REJECT(String.valueOf("TRANSFER_REJECT"));
+
+ private String value;
+
+ ResponseTypeEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static ResponseTypeEnum fromValue(String value) {
+ for (ResponseTypeEnum b : ResponseTypeEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_RESPONSE_TYPE = "responseType";
+ @jakarta.annotation.Nonnull private ResponseTypeEnum responseType;
+
+ public TransferResponseReject() {}
+
+ @JsonCreator
+ public TransferResponseReject(
+ @JsonProperty(value = JSON_PROPERTY_RESPONSE_TYPE, required = true)
+ ResponseTypeEnum responseType) {
+ this.responseType = responseType;
+ }
+
+ public TransferResponseReject responseType(
+ @jakarta.annotation.Nonnull ResponseTypeEnum responseType) {
+ this.responseType = responseType;
+ return this;
+ }
+
+ /**
+ * How you are answering the transfer offer.
+ *
+ * @return responseType
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_RESPONSE_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public ResponseTypeEnum getResponseType() {
+ return responseType;
+ }
+
+ @JsonProperty(JSON_PROPERTY_RESPONSE_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setResponseType(@jakarta.annotation.Nonnull ResponseTypeEnum responseType) {
+ this.responseType = responseType;
+ }
+
+ /** Return true if this TransferResponseReject object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ TransferResponseReject transferResponseReject = (TransferResponseReject) o;
+ return Objects.equals(this.responseType, transferResponseReject.responseType);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(responseType);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class TransferResponseReject {\n");
+ sb.append(" responseType: ").append(toIndentedString(responseType)).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 `responseType` to the URL query string
+ if (getResponseType() != null) {
+ joiner.add(
+ String.format(
+ "%sresponseType%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getResponseType()))));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/TransferWithdrawPayload.java b/src/main/java/com/fireblocks/sdk/model/TransferWithdrawPayload.java
new file mode 100644
index 00000000..d3d81a06
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/TransferWithdrawPayload.java
@@ -0,0 +1,271 @@
+/*
+ * 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;
+
+/** TransferWithdrawPayload */
+@JsonPropertyOrder({
+ TransferWithdrawPayload.JSON_PROPERTY_VAULT_ACCOUNT_ID,
+ TransferWithdrawPayload.JSON_PROPERTY_ASSET,
+ TransferWithdrawPayload.JSON_PROPERTY_OFFER_TRANSACTION_ID
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class TransferWithdrawPayload {
+ public static final String JSON_PROPERTY_VAULT_ACCOUNT_ID = "vaultAccountId";
+ @jakarta.annotation.Nonnull private String vaultAccountId;
+
+ /** Chain asset — `CANTON` or `CANTON_TEST`. */
+ public enum AssetEnum {
+ CANTON(String.valueOf("CANTON")),
+
+ CANTON_TEST(String.valueOf("CANTON_TEST"));
+
+ private String value;
+
+ AssetEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static AssetEnum fromValue(String value) {
+ for (AssetEnum b : AssetEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_ASSET = "asset";
+ @jakarta.annotation.Nonnull private AssetEnum asset;
+
+ public static final String JSON_PROPERTY_OFFER_TRANSACTION_ID = "offerTransactionId";
+ @jakarta.annotation.Nonnull private String offerTransactionId;
+
+ public TransferWithdrawPayload() {}
+
+ @JsonCreator
+ public TransferWithdrawPayload(
+ @JsonProperty(value = JSON_PROPERTY_VAULT_ACCOUNT_ID, required = true)
+ String vaultAccountId,
+ @JsonProperty(value = JSON_PROPERTY_ASSET, required = true) AssetEnum asset,
+ @JsonProperty(value = JSON_PROPERTY_OFFER_TRANSACTION_ID, required = true)
+ String offerTransactionId) {
+ this.vaultAccountId = vaultAccountId;
+ this.asset = asset;
+ this.offerTransactionId = offerTransactionId;
+ }
+
+ public TransferWithdrawPayload vaultAccountId(
+ @jakarta.annotation.Nonnull String vaultAccountId) {
+ this.vaultAccountId = vaultAccountId;
+ return this;
+ }
+
+ /**
+ * The vault account whose Canton wallet acts here.
+ *
+ * @return vaultAccountId
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_VAULT_ACCOUNT_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getVaultAccountId() {
+ return vaultAccountId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_VAULT_ACCOUNT_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setVaultAccountId(@jakarta.annotation.Nonnull String vaultAccountId) {
+ this.vaultAccountId = vaultAccountId;
+ }
+
+ public TransferWithdrawPayload asset(@jakarta.annotation.Nonnull AssetEnum asset) {
+ this.asset = asset;
+ return this;
+ }
+
+ /**
+ * Chain asset — `CANTON` or `CANTON_TEST`.
+ *
+ * @return asset
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_ASSET)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public AssetEnum getAsset() {
+ return asset;
+ }
+
+ @JsonProperty(JSON_PROPERTY_ASSET)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setAsset(@jakarta.annotation.Nonnull AssetEnum asset) {
+ this.asset = asset;
+ }
+
+ public TransferWithdrawPayload offerTransactionId(
+ @jakarta.annotation.Nonnull String offerTransactionId) {
+ this.offerTransactionId = offerTransactionId;
+ return this;
+ }
+
+ /**
+ * The Fireblocks transaction id of the OUTGOING transfer offer being withdrawn.
+ *
+ * @return offerTransactionId
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_OFFER_TRANSACTION_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getOfferTransactionId() {
+ return offerTransactionId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_OFFER_TRANSACTION_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setOfferTransactionId(@jakarta.annotation.Nonnull String offerTransactionId) {
+ this.offerTransactionId = offerTransactionId;
+ }
+
+ /** Return true if this TransferWithdrawPayload object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ TransferWithdrawPayload transferWithdrawPayload = (TransferWithdrawPayload) o;
+ return Objects.equals(this.vaultAccountId, transferWithdrawPayload.vaultAccountId)
+ && Objects.equals(this.asset, transferWithdrawPayload.asset)
+ && Objects.equals(
+ this.offerTransactionId, transferWithdrawPayload.offerTransactionId);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(vaultAccountId, asset, offerTransactionId);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class TransferWithdrawPayload {\n");
+ sb.append(" vaultAccountId: ").append(toIndentedString(vaultAccountId)).append("\n");
+ sb.append(" asset: ").append(toIndentedString(asset)).append("\n");
+ sb.append(" offerTransactionId: ")
+ .append(toIndentedString(offerTransactionId))
+ .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 `vaultAccountId` to the URL query string
+ if (getVaultAccountId() != null) {
+ joiner.add(
+ String.format(
+ "%svaultAccountId%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getVaultAccountId()))));
+ }
+
+ // 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 `offerTransactionId` to the URL query string
+ if (getOfferTransactionId() != null) {
+ joiner.add(
+ String.format(
+ "%sofferTransactionId%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getOfferTransactionId()))));
+ }
+
+ 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
new file mode 100644
index 00000000..29995bad
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/UpdateWebhookOAuthRequest.java
@@ -0,0 +1,569 @@
+/*
+ * 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.HashMap;
+import java.util.Map;
+import java.util.Objects;
+import java.util.StringJoiner;
+
+/**
+ * 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.
+ */
+@JsonPropertyOrder({
+ UpdateWebhookOAuthRequest.JSON_PROPERTY_NAME,
+ UpdateWebhookOAuthRequest.JSON_PROPERTY_CLIENT_ID,
+ UpdateWebhookOAuthRequest.JSON_PROPERTY_CLIENT_SECRET,
+ UpdateWebhookOAuthRequest.JSON_PROPERTY_URL,
+ UpdateWebhookOAuthRequest.JSON_PROPERTY_AUTH_METHOD,
+ UpdateWebhookOAuthRequest.JSON_PROPERTY_CUSTOM_JWT_CLAIMS,
+ UpdateWebhookOAuthRequest.JSON_PROPERTY_CUSTOM_BODY_PARAMS,
+ UpdateWebhookOAuthRequest.JSON_PROPERTY_CUSTOM_HEADERS,
+ UpdateWebhookOAuthRequest.JSON_PROPERTY_MTLS_CLIENT_SIGNED_CERT
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class UpdateWebhookOAuthRequest {
+ public static final String JSON_PROPERTY_NAME = "name";
+ @jakarta.annotation.Nullable private String name;
+
+ public static final String JSON_PROPERTY_CLIENT_ID = "clientId";
+ @jakarta.annotation.Nullable private String clientId;
+
+ public static final String JSON_PROPERTY_CLIENT_SECRET = "clientSecret";
+ @jakarta.annotation.Nullable private String clientSecret;
+
+ public static final String JSON_PROPERTY_URL = "url";
+ @jakarta.annotation.Nullable private String url;
+
+ public static final String JSON_PROPERTY_AUTH_METHOD = "authMethod";
+ @jakarta.annotation.Nullable private String authMethod;
+
+ public static final String JSON_PROPERTY_CUSTOM_JWT_CLAIMS = "customJwtClaims";
+ @jakarta.annotation.Nullable private Map customJwtClaims;
+
+ public static final String JSON_PROPERTY_CUSTOM_BODY_PARAMS = "customBodyParams";
+ @jakarta.annotation.Nullable private Map customBodyParams;
+
+ public static final String JSON_PROPERTY_CUSTOM_HEADERS = "customHeaders";
+ @jakarta.annotation.Nullable private Map customHeaders;
+
+ public static final String JSON_PROPERTY_MTLS_CLIENT_SIGNED_CERT = "mtlsClientSignedCert";
+ @jakarta.annotation.Nullable private String mtlsClientSignedCert;
+
+ public UpdateWebhookOAuthRequest() {}
+
+ public UpdateWebhookOAuthRequest name(@jakarta.annotation.Nullable String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * A label for this credential set. Omit to leave it unchanged.
+ *
+ * @return name
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_NAME)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getName() {
+ return name;
+ }
+
+ @JsonProperty(JSON_PROPERTY_NAME)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setName(@jakarta.annotation.Nullable String name) {
+ this.name = name;
+ }
+
+ public UpdateWebhookOAuthRequest clientId(@jakarta.annotation.Nullable String clientId) {
+ this.clientId = clientId;
+ return this;
+ }
+
+ /**
+ * OAuth client ID. Omit to leave it unchanged.
+ *
+ * @return clientId
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_CLIENT_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getClientId() {
+ return clientId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_CLIENT_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setClientId(@jakarta.annotation.Nullable String clientId) {
+ this.clientId = clientId;
+ }
+
+ public UpdateWebhookOAuthRequest clientSecret(
+ @jakarta.annotation.Nullable String clientSecret) {
+ this.clientSecret = clientSecret;
+ return this;
+ }
+
+ /**
+ * A new OAuth client secret. Limited to 480 bytes when UTF-8 encoded, so a secret using
+ * non-ASCII characters fits fewer than 480 of them. Write-only — never returned in any
+ * response. Send this on its own to rotate the secret without changing anything else. Omit to
+ * leave it unchanged.
+ *
+ * @return clientSecret
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_CLIENT_SECRET)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getClientSecret() {
+ return clientSecret;
+ }
+
+ @JsonProperty(JSON_PROPERTY_CLIENT_SECRET)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setClientSecret(@jakarta.annotation.Nullable String clientSecret) {
+ this.clientSecret = clientSecret;
+ }
+
+ public UpdateWebhookOAuthRequest url(@jakarta.annotation.Nullable String url) {
+ this.url = url;
+ return this;
+ }
+
+ /**
+ * Token endpoint URL. HTTPS on port 443 only, and the host must resolve publicly. Omit to leave
+ * it unchanged.
+ *
+ * @return url
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_URL)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getUrl() {
+ return url;
+ }
+
+ @JsonProperty(JSON_PROPERTY_URL)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setUrl(@jakarta.annotation.Nullable String url) {
+ this.url = url;
+ }
+
+ public UpdateWebhookOAuthRequest authMethod(@jakarta.annotation.Nullable String authMethod) {
+ this.authMethod = authMethod;
+ return this;
+ }
+
+ /**
+ * `client_secret_basic`, `client_secret_post` or
+ * `client_secret_jwt`. Omit to leave it unchanged — it does not revert to the
+ * default.
+ *
+ * @return authMethod
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_AUTH_METHOD)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getAuthMethod() {
+ return authMethod;
+ }
+
+ @JsonProperty(JSON_PROPERTY_AUTH_METHOD)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setAuthMethod(@jakarta.annotation.Nullable String authMethod) {
+ this.authMethod = authMethod;
+ }
+
+ public UpdateWebhookOAuthRequest customJwtClaims(
+ @jakarta.annotation.Nullable Map customJwtClaims) {
+ this.customJwtClaims = customJwtClaims;
+ return this;
+ }
+
+ public UpdateWebhookOAuthRequest putCustomJwtClaimsItem(
+ String key, Object customJwtClaimsItem) {
+ if (this.customJwtClaims == null) {
+ this.customJwtClaims = new HashMap<>();
+ }
+ this.customJwtClaims.put(key, customJwtClaimsItem);
+ return this;
+ }
+
+ /**
+ * A delta applied to the JWT assertion claims. A claim with a value is added or replaced, a
+ * claim with `null` is deleted, and a claim you leave out is untouched. So `{
+ * \"aud\": \"https://auth.example.com\", \"resource\": null
+ * }` sets `aud`, drops `resource`, and changes nothing else. Send
+ * `customJwtClaims: null` to clear every claim in one call. That does not collide
+ * with a `null` value on a name: one names the claim to delete, the other names the
+ * whole field. Same rules as on create: any JSON type except `null`,
+ * `iss`/`sub`/`jti`/`iat`/`exp` reserved,
+ * names case-sensitive, resulting set under 16 KB, values write-only.
+ *
+ * @return customJwtClaims
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_CUSTOM_JWT_CLAIMS)
+ @JsonInclude(content = JsonInclude.Include.ALWAYS, value = JsonInclude.Include.USE_DEFAULTS)
+ public Map getCustomJwtClaims() {
+ return customJwtClaims;
+ }
+
+ @JsonProperty(JSON_PROPERTY_CUSTOM_JWT_CLAIMS)
+ @JsonInclude(content = JsonInclude.Include.ALWAYS, value = JsonInclude.Include.USE_DEFAULTS)
+ public void setCustomJwtClaims(
+ @jakarta.annotation.Nullable Map customJwtClaims) {
+ this.customJwtClaims = customJwtClaims;
+ }
+
+ public UpdateWebhookOAuthRequest customBodyParams(
+ @jakarta.annotation.Nullable Map customBodyParams) {
+ this.customBodyParams = customBodyParams;
+ return this;
+ }
+
+ public UpdateWebhookOAuthRequest putCustomBodyParamsItem(
+ String key, String customBodyParamsItem) {
+ if (this.customBodyParams == null) {
+ this.customBodyParams = new HashMap<>();
+ }
+ this.customBodyParams.put(key, customBodyParamsItem);
+ return this;
+ }
+
+ /**
+ * A delta applied to the token request body parameters. A parameter with a value is added or
+ * replaced, a parameter with `null` is deleted, and one you leave out is untouched.
+ * So `{ \"scope\": \"payments.read\", \"audience\": null
+ * }` sets `scope`, drops `audience`, and changes nothing else. Send
+ * `customBodyParams: null` to clear every parameter in one call. That does not
+ * collide with a `null` value on a name: one names the parameter to delete, the other
+ * names the whole field. Same rules as on create: string values only,
+ * `grant_type`/`client_id`/`client_secret`/
+ * `client_assertion`/`client_assertion_type` reserved, names
+ * case-sensitive, resulting set under 16 KB, values write-only.
+ *
+ * @return customBodyParams
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_CUSTOM_BODY_PARAMS)
+ @JsonInclude(content = JsonInclude.Include.ALWAYS, value = JsonInclude.Include.USE_DEFAULTS)
+ public Map getCustomBodyParams() {
+ return customBodyParams;
+ }
+
+ @JsonProperty(JSON_PROPERTY_CUSTOM_BODY_PARAMS)
+ @JsonInclude(content = JsonInclude.Include.ALWAYS, value = JsonInclude.Include.USE_DEFAULTS)
+ public void setCustomBodyParams(
+ @jakarta.annotation.Nullable Map customBodyParams) {
+ this.customBodyParams = customBodyParams;
+ }
+
+ public UpdateWebhookOAuthRequest customHeaders(
+ @jakarta.annotation.Nullable Map customHeaders) {
+ this.customHeaders = customHeaders;
+ return this;
+ }
+
+ public UpdateWebhookOAuthRequest putCustomHeadersItem(String key, String customHeadersItem) {
+ if (this.customHeaders == null) {
+ this.customHeaders = new HashMap<>();
+ }
+ this.customHeaders.put(key, customHeadersItem);
+ return this;
+ }
+
+ /**
+ * A delta applied to the token request headers — not the webhook delivery headers. A header
+ * with a value is added or replaced, a header with `null` is deleted, and one you
+ * leave out is untouched. So `{ \"X-Api-Key\": \"new-key\",
+ * \"X-Tenant\": null }` rotates `X-Api-Key`, drops
+ * `X-Tenant`, and changes nothing else. Send `customHeaders: null` to clear
+ * every header in one 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, and names are stored
+ * and returned lowercased. Same rules as on create: string values only,
+ * `Content-Type`/`Authorization`/
+ * `Content-Length`/`Host` reserved, resulting set under 16 KB, values
+ * write-only.
+ *
+ * @return customHeaders
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_CUSTOM_HEADERS)
+ @JsonInclude(content = JsonInclude.Include.ALWAYS, value = JsonInclude.Include.USE_DEFAULTS)
+ public Map getCustomHeaders() {
+ return customHeaders;
+ }
+
+ @JsonProperty(JSON_PROPERTY_CUSTOM_HEADERS)
+ @JsonInclude(content = JsonInclude.Include.ALWAYS, value = JsonInclude.Include.USE_DEFAULTS)
+ public void setCustomHeaders(@jakarta.annotation.Nullable Map customHeaders) {
+ this.customHeaders = customHeaders;
+ }
+
+ public UpdateWebhookOAuthRequest mtlsClientSignedCert(
+ @jakarta.annotation.Nullable String mtlsClientSignedCert) {
+ this.mtlsClientSignedCert = mtlsClientSignedCert;
+ return this;
+ }
+
+ /**
+ * PEM-encoded client certificate for mTLS. Must be a valid X.509 certificate inside its
+ * validity window. Omit to leave it unchanged, or send `null` to remove it.
+ *
+ * @return mtlsClientSignedCert
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_MTLS_CLIENT_SIGNED_CERT)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getMtlsClientSignedCert() {
+ return mtlsClientSignedCert;
+ }
+
+ @JsonProperty(JSON_PROPERTY_MTLS_CLIENT_SIGNED_CERT)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setMtlsClientSignedCert(@jakarta.annotation.Nullable String mtlsClientSignedCert) {
+ this.mtlsClientSignedCert = mtlsClientSignedCert;
+ }
+
+ /** Return true if this UpdateWebhookOAuthRequest object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ UpdateWebhookOAuthRequest updateWebhookOAuthRequest = (UpdateWebhookOAuthRequest) o;
+ return Objects.equals(this.name, updateWebhookOAuthRequest.name)
+ && Objects.equals(this.clientId, updateWebhookOAuthRequest.clientId)
+ && Objects.equals(this.clientSecret, updateWebhookOAuthRequest.clientSecret)
+ && Objects.equals(this.url, updateWebhookOAuthRequest.url)
+ && Objects.equals(this.authMethod, updateWebhookOAuthRequest.authMethod)
+ && Objects.equals(this.customJwtClaims, updateWebhookOAuthRequest.customJwtClaims)
+ && Objects.equals(this.customBodyParams, updateWebhookOAuthRequest.customBodyParams)
+ && Objects.equals(this.customHeaders, updateWebhookOAuthRequest.customHeaders)
+ && Objects.equals(
+ this.mtlsClientSignedCert, updateWebhookOAuthRequest.mtlsClientSignedCert);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(
+ name,
+ clientId,
+ clientSecret,
+ url,
+ authMethod,
+ customJwtClaims,
+ customBodyParams,
+ customHeaders,
+ mtlsClientSignedCert);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class UpdateWebhookOAuthRequest {\n");
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" clientId: ").append(toIndentedString(clientId)).append("\n");
+ sb.append(" clientSecret: ").append(toIndentedString(clientSecret)).append("\n");
+ sb.append(" url: ").append(toIndentedString(url)).append("\n");
+ sb.append(" authMethod: ").append(toIndentedString(authMethod)).append("\n");
+ sb.append(" customJwtClaims: ").append(toIndentedString(customJwtClaims)).append("\n");
+ sb.append(" customBodyParams: ").append(toIndentedString(customBodyParams)).append("\n");
+ sb.append(" customHeaders: ").append(toIndentedString(customHeaders)).append("\n");
+ sb.append(" mtlsClientSignedCert: ")
+ .append(toIndentedString(mtlsClientSignedCert))
+ .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 `clientId` to the URL query string
+ if (getClientId() != null) {
+ joiner.add(
+ String.format(
+ "%sclientId%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getClientId()))));
+ }
+
+ // add `clientSecret` to the URL query string
+ if (getClientSecret() != null) {
+ joiner.add(
+ String.format(
+ "%sclientSecret%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getClientSecret()))));
+ }
+
+ // add `url` to the URL query string
+ if (getUrl() != null) {
+ joiner.add(
+ String.format(
+ "%surl%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getUrl()))));
+ }
+
+ // add `authMethod` to the URL query string
+ if (getAuthMethod() != null) {
+ joiner.add(
+ String.format(
+ "%sauthMethod%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getAuthMethod()))));
+ }
+
+ // add `customJwtClaims` to the URL query string
+ if (getCustomJwtClaims() != null) {
+ for (String _key : getCustomJwtClaims().keySet()) {
+ joiner.add(
+ String.format(
+ "%scustomJwtClaims%s%s=%s",
+ prefix,
+ suffix,
+ "".equals(suffix)
+ ? ""
+ : String.format(
+ "%s%d%s", containerPrefix, _key, containerSuffix),
+ getCustomJwtClaims().get(_key),
+ ApiClient.urlEncode(
+ ApiClient.valueToString(getCustomJwtClaims().get(_key)))));
+ }
+ }
+
+ // add `customBodyParams` to the URL query string
+ if (getCustomBodyParams() != null) {
+ for (String _key : getCustomBodyParams().keySet()) {
+ joiner.add(
+ String.format(
+ "%scustomBodyParams%s%s=%s",
+ prefix,
+ suffix,
+ "".equals(suffix)
+ ? ""
+ : String.format(
+ "%s%d%s", containerPrefix, _key, containerSuffix),
+ getCustomBodyParams().get(_key),
+ ApiClient.urlEncode(
+ ApiClient.valueToString(getCustomBodyParams().get(_key)))));
+ }
+ }
+
+ // add `customHeaders` to the URL query string
+ if (getCustomHeaders() != null) {
+ for (String _key : getCustomHeaders().keySet()) {
+ joiner.add(
+ String.format(
+ "%scustomHeaders%s%s=%s",
+ prefix,
+ suffix,
+ "".equals(suffix)
+ ? ""
+ : String.format(
+ "%s%d%s", containerPrefix, _key, containerSuffix),
+ getCustomHeaders().get(_key),
+ ApiClient.urlEncode(
+ ApiClient.valueToString(getCustomHeaders().get(_key)))));
+ }
+ }
+
+ // add `mtlsClientSignedCert` to the URL query string
+ if (getMtlsClientSignedCert() != null) {
+ joiner.add(
+ String.format(
+ "%smtlsClientSignedCert%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(
+ ApiClient.valueToString(getMtlsClientSignedCert()))));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/UpdateWebhookRequest.java b/src/main/java/com/fireblocks/sdk/model/UpdateWebhookRequest.java
index dca22514..be9e1773 100644
--- a/src/main/java/com/fireblocks/sdk/model/UpdateWebhookRequest.java
+++ b/src/main/java/com/fireblocks/sdk/model/UpdateWebhookRequest.java
@@ -57,7 +57,7 @@ public class UpdateWebhookRequest {
@jakarta.annotation.Nullable private WebhookOAuth oauth;
public static final String JSON_PROPERTY_CUSTOM_HEADERS = "customHeaders";
- @jakarta.annotation.Nullable private Map