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;
+ }
+
+ /**
+ * List contacts Returns a paginated list of the workspace's address book contacts. Live
+ * contacts are returned by default; pass `archived=true` to return only the
+ * archived ones. Results are sorted by `name` ascending unless
+ * `sortBy`/`order` say otherwise. Because the sort column is the page
+ * cursor's leading key, a `pageCursor` must be replayed with the same sort it was
+ * minted under, or the request is rejected. Endpoint Permissions: any workspace role may read
+ * the address book. Writes are role-gated.
+ *
+ * @param pageCursor Cursor indicating the page position. Omit to fetch the first page.
+ * (optional)
+ * @param pageSize Number of results per page (optional, default to 100)
+ * @param includeTotal Return the total count of matching contacts alongside the page. Counting
+ * is opt-in because it costs an extra pass over the filtered set; `total` is
+ * omitted from the response unless this is `true`. (optional, default to false)
+ * @param name Filter by a case-insensitive substring of the contact name (optional)
+ * @param types Filter by one or more contact types (optional
+ * @param containerId Filter by the container holding the contact (optional)
+ * @param archived Return only archived contacts instead of live ones (optional, default to
+ * false)
+ * @param accessControl Filter by the access control applied to the contact (optional)
+ * @param includeTagIds List of tag IDs to include. Contacts with any of these tags will be
+ * included (optional
+ * @param excludeTagIds List of tag IDs to exclude. Contacts with any of these tags will be
+ * filtered out (optional
+ * @param sortBy The field to sort by (optional, default to name)
+ * @param order The sort direction (optional, default to ASC)
+ * @return CompletableFuture<ApiResponse<ContactsPagedResponse>>, which completes
+ * exceptionally with an {@link ApiException} if the API call fails
+ */
+ public CompletableFuture> getContacts(
+ String pageCursor,
+ Integer pageSize,
+ Boolean includeTotal,
+ String name,
+ List types,
+ UUID containerId,
+ Boolean archived,
+ String accessControl,
+ List includeTagIds,
+ List excludeTagIds,
+ String sortBy,
+ String order) {
+ try {
+ HttpRequest.Builder localVarRequestBuilder =
+ getContactsRequestBuilder(
+ pageCursor,
+ pageSize,
+ includeTotal,
+ name,
+ types,
+ containerId,
+ archived,
+ accessControl,
+ includeTagIds,
+ excludeTagIds,
+ sortBy,
+ order);
+ 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("getContacts", 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<
+ ContactsPagedResponse>() {})));
+ } 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 getContactsRequestBuilder(
+ String pageCursor,
+ Integer pageSize,
+ Boolean includeTotal,
+ String name,
+ List types,
+ UUID containerId,
+ Boolean archived,
+ String accessControl,
+ List includeTagIds,
+ List excludeTagIds,
+ String sortBy,
+ String order)
+ throws ApiException {
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath = "/contacts";
+
+ List localVarQueryParams = new ArrayList<>();
+ StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
+ String localVarQueryParameterBaseName;
+ localVarQueryParameterBaseName = "pageCursor";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("pageCursor", pageCursor));
+ localVarQueryParameterBaseName = "pageSize";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("pageSize", pageSize));
+ localVarQueryParameterBaseName = "includeTotal";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("includeTotal", includeTotal));
+ localVarQueryParameterBaseName = "name";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("name", name));
+ localVarQueryParameterBaseName = "types";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("multi", "types", types));
+ localVarQueryParameterBaseName = "containerId";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("containerId", containerId));
+ localVarQueryParameterBaseName = "archived";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("archived", archived));
+ localVarQueryParameterBaseName = "accessControl";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("accessControl", accessControl));
+ localVarQueryParameterBaseName = "includeTagIds";
+ localVarQueryParams.addAll(
+ ApiClient.parameterToPairs("multi", "includeTagIds", includeTagIds));
+ localVarQueryParameterBaseName = "excludeTagIds";
+ localVarQueryParams.addAll(
+ ApiClient.parameterToPairs("multi", "excludeTagIds", excludeTagIds));
+ localVarQueryParameterBaseName = "sortBy";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("sortBy", sortBy));
+ localVarQueryParameterBaseName = "order";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("order", order));
+
+ 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/model/Contact.java b/src/main/java/com/fireblocks/sdk/model/Contact.java
new file mode 100644
index 00000000..fe8c7509
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/Contact.java
@@ -0,0 +1,653 @@
+/*
+ * 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.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.StringJoiner;
+import java.util.UUID;
+
+/** A contact in the workspace address book. */
+@JsonPropertyOrder({
+ Contact.JSON_PROPERTY_ID,
+ Contact.JSON_PROPERTY_NAME,
+ Contact.JSON_PROPERTY_TYPE,
+ Contact.JSON_PROPERTY_ACCESS_CONTROL,
+ Contact.JSON_PROPERTY_NOTES,
+ Contact.JSON_PROPERTY_EXTERNAL_REF_ID,
+ Contact.JSON_PROPERTY_CONTAINER_ID,
+ Contact.JSON_PROPERTY_UPDATED_AT,
+ Contact.JSON_PROPERTY_ARCHIVED_AT,
+ Contact.JSON_PROPERTY_TAGS,
+ Contact.JSON_PROPERTY_PENDING_APPROVAL_REQUEST
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class Contact {
+ 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;
+
+ /** Whether the contact is an external party or an account the workspace owns elsewhere */
+ public enum TypeEnum {
+ COUNTERPARTY(String.valueOf("COUNTERPARTY")),
+
+ OWN_ACCOUNT(String.valueOf("OWN_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;
+
+ /** The access control applied to the contact. Absent when none is set. */
+ public enum AccessControlEnum {
+ WHITELIST(String.valueOf("WHITELIST")),
+
+ BLACKLIST(String.valueOf("BLACKLIST"));
+
+ private String value;
+
+ AccessControlEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static AccessControlEnum fromValue(String value) {
+ for (AccessControlEnum b : AccessControlEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_ACCESS_CONTROL = "accessControl";
+ @jakarta.annotation.Nullable private AccessControlEnum accessControl;
+
+ public static final String JSON_PROPERTY_NOTES = "notes";
+ @jakarta.annotation.Nullable private String notes;
+
+ public static final String JSON_PROPERTY_EXTERNAL_REF_ID = "externalRefId";
+ @jakarta.annotation.Nullable private String externalRefId;
+
+ public static final String JSON_PROPERTY_CONTAINER_ID = "containerId";
+ @jakarta.annotation.Nullable private UUID containerId;
+
+ public static final String JSON_PROPERTY_UPDATED_AT = "updatedAt";
+ @jakarta.annotation.Nonnull private OffsetDateTime updatedAt;
+
+ public static final String JSON_PROPERTY_ARCHIVED_AT = "archivedAt";
+ @jakarta.annotation.Nullable private OffsetDateTime archivedAt;
+
+ public static final String JSON_PROPERTY_TAGS = "tags";
+ @jakarta.annotation.Nonnull private List tags;
+
+ public static final String JSON_PROPERTY_PENDING_APPROVAL_REQUEST = "pendingApprovalRequest";
+ @jakarta.annotation.Nullable private ContactApprovalRequest pendingApprovalRequest;
+
+ public Contact() {}
+
+ @JsonCreator
+ public Contact(
+ @JsonProperty(value = JSON_PROPERTY_ID, required = true) UUID id,
+ @JsonProperty(value = JSON_PROPERTY_NAME, required = true) String name,
+ @JsonProperty(value = JSON_PROPERTY_TYPE, required = true) TypeEnum type,
+ @JsonProperty(value = JSON_PROPERTY_UPDATED_AT, required = true)
+ OffsetDateTime updatedAt,
+ @JsonProperty(value = JSON_PROPERTY_TAGS, required = true) List tags,
+ @JsonProperty(value = JSON_PROPERTY_PENDING_APPROVAL_REQUEST, required = true)
+ ContactApprovalRequest pendingApprovalRequest) {
+ this.id = id;
+ this.name = name;
+ this.type = type;
+ this.updatedAt = updatedAt;
+ this.tags = tags;
+ this.pendingApprovalRequest = pendingApprovalRequest;
+ }
+
+ public Contact id(@jakarta.annotation.Nonnull UUID id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * The unique identifier of the contact
+ *
+ * @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 Contact name(@jakarta.annotation.Nonnull String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * The contact name, unique across the workspace
+ *
+ * @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 Contact type(@jakarta.annotation.Nonnull TypeEnum type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Whether the contact is an external party or an account the workspace owns elsewhere
+ *
+ * @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 Contact accessControl(@jakarta.annotation.Nullable AccessControlEnum accessControl) {
+ this.accessControl = accessControl;
+ return this;
+ }
+
+ /**
+ * The access control applied to the contact. Absent when none is set.
+ *
+ * @return accessControl
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ACCESS_CONTROL)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public AccessControlEnum getAccessControl() {
+ return accessControl;
+ }
+
+ @JsonProperty(JSON_PROPERTY_ACCESS_CONTROL)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setAccessControl(@jakarta.annotation.Nullable AccessControlEnum accessControl) {
+ this.accessControl = accessControl;
+ }
+
+ public Contact notes(@jakarta.annotation.Nullable String notes) {
+ this.notes = notes;
+ return this;
+ }
+
+ /**
+ * Free-text notes on the contact. Absent when none are set.
+ *
+ * @return notes
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_NOTES)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getNotes() {
+ return notes;
+ }
+
+ @JsonProperty(JSON_PROPERTY_NOTES)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setNotes(@jakarta.annotation.Nullable String notes) {
+ this.notes = notes;
+ }
+
+ public Contact externalRefId(@jakarta.annotation.Nullable String externalRefId) {
+ this.externalRefId = externalRefId;
+ return this;
+ }
+
+ /**
+ * A customer-supplied reference id for the contact. Absent when none is set.
+ *
+ * @return externalRefId
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_EXTERNAL_REF_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getExternalRefId() {
+ return externalRefId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_EXTERNAL_REF_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setExternalRefId(@jakarta.annotation.Nullable String externalRefId) {
+ this.externalRefId = externalRefId;
+ }
+
+ public Contact containerId(@jakarta.annotation.Nullable UUID containerId) {
+ this.containerId = containerId;
+ return this;
+ }
+
+ /**
+ * The container holding the contact. Absent when the contact sits at the root.
+ *
+ * @return containerId
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_CONTAINER_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public UUID getContainerId() {
+ return containerId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_CONTAINER_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setContainerId(@jakarta.annotation.Nullable UUID containerId) {
+ this.containerId = containerId;
+ }
+
+ public Contact updatedAt(@jakarta.annotation.Nonnull OffsetDateTime updatedAt) {
+ this.updatedAt = updatedAt;
+ return this;
+ }
+
+ /**
+ * The date and time the contact was last modified, in ISO-8601
+ *
+ * @return updatedAt
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_UPDATED_AT)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public OffsetDateTime getUpdatedAt() {
+ return updatedAt;
+ }
+
+ @JsonProperty(JSON_PROPERTY_UPDATED_AT)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setUpdatedAt(@jakarta.annotation.Nonnull OffsetDateTime updatedAt) {
+ this.updatedAt = updatedAt;
+ }
+
+ public Contact archivedAt(@jakarta.annotation.Nullable OffsetDateTime archivedAt) {
+ this.archivedAt = archivedAt;
+ return this;
+ }
+
+ /**
+ * The date and time the contact was archived, in ISO-8601. Absent for live contacts, so this
+ * only carries a value when the request passed archived=true.
+ *
+ * @return archivedAt
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ARCHIVED_AT)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public OffsetDateTime getArchivedAt() {
+ return archivedAt;
+ }
+
+ @JsonProperty(JSON_PROPERTY_ARCHIVED_AT)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setArchivedAt(@jakarta.annotation.Nullable OffsetDateTime archivedAt) {
+ this.archivedAt = archivedAt;
+ }
+
+ public Contact tags(@jakarta.annotation.Nonnull List tags) {
+ this.tags = tags;
+ return this;
+ }
+
+ public Contact addTagsItem(ContactTag tagsItem) {
+ if (this.tags == null) {
+ this.tags = new ArrayList<>();
+ }
+ this.tags.add(tagsItem);
+ return this;
+ }
+
+ /**
+ * The tags attached to the contact
+ *
+ * @return tags
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_TAGS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public List getTags() {
+ return tags;
+ }
+
+ @JsonProperty(JSON_PROPERTY_TAGS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setTags(@jakarta.annotation.Nonnull List tags) {
+ this.tags = tags;
+ }
+
+ public Contact pendingApprovalRequest(
+ @jakarta.annotation.Nullable ContactApprovalRequest pendingApprovalRequest) {
+ this.pendingApprovalRequest = pendingApprovalRequest;
+ return this;
+ }
+
+ /**
+ * Get pendingApprovalRequest
+ *
+ * @return pendingApprovalRequest
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_PENDING_APPROVAL_REQUEST)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public ContactApprovalRequest getPendingApprovalRequest() {
+ return pendingApprovalRequest;
+ }
+
+ @JsonProperty(JSON_PROPERTY_PENDING_APPROVAL_REQUEST)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setPendingApprovalRequest(
+ @jakarta.annotation.Nullable ContactApprovalRequest pendingApprovalRequest) {
+ this.pendingApprovalRequest = pendingApprovalRequest;
+ }
+
+ /** Return true if this Contact object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ Contact contact = (Contact) o;
+ return Objects.equals(this.id, contact.id)
+ && Objects.equals(this.name, contact.name)
+ && Objects.equals(this.type, contact.type)
+ && Objects.equals(this.accessControl, contact.accessControl)
+ && Objects.equals(this.notes, contact.notes)
+ && Objects.equals(this.externalRefId, contact.externalRefId)
+ && Objects.equals(this.containerId, contact.containerId)
+ && Objects.equals(this.updatedAt, contact.updatedAt)
+ && Objects.equals(this.archivedAt, contact.archivedAt)
+ && Objects.equals(this.tags, contact.tags)
+ && Objects.equals(this.pendingApprovalRequest, contact.pendingApprovalRequest);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(
+ id,
+ name,
+ type,
+ accessControl,
+ notes,
+ externalRefId,
+ containerId,
+ updatedAt,
+ archivedAt,
+ tags,
+ pendingApprovalRequest);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class Contact {\n");
+ sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" type: ").append(toIndentedString(type)).append("\n");
+ sb.append(" accessControl: ").append(toIndentedString(accessControl)).append("\n");
+ sb.append(" notes: ").append(toIndentedString(notes)).append("\n");
+ sb.append(" externalRefId: ").append(toIndentedString(externalRefId)).append("\n");
+ sb.append(" containerId: ").append(toIndentedString(containerId)).append("\n");
+ sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n");
+ sb.append(" archivedAt: ").append(toIndentedString(archivedAt)).append("\n");
+ sb.append(" tags: ").append(toIndentedString(tags)).append("\n");
+ sb.append(" pendingApprovalRequest: ")
+ .append(toIndentedString(pendingApprovalRequest))
+ .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 `type` to the URL query string
+ if (getType() != null) {
+ joiner.add(
+ String.format(
+ "%stype%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getType()))));
+ }
+
+ // add `accessControl` to the URL query string
+ if (getAccessControl() != null) {
+ joiner.add(
+ String.format(
+ "%saccessControl%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getAccessControl()))));
+ }
+
+ // add `notes` to the URL query string
+ if (getNotes() != null) {
+ joiner.add(
+ String.format(
+ "%snotes%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getNotes()))));
+ }
+
+ // add `externalRefId` to the URL query string
+ if (getExternalRefId() != null) {
+ joiner.add(
+ String.format(
+ "%sexternalRefId%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getExternalRefId()))));
+ }
+
+ // add `containerId` to the URL query string
+ if (getContainerId() != null) {
+ joiner.add(
+ String.format(
+ "%scontainerId%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getContainerId()))));
+ }
+
+ // 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 `archivedAt` to the URL query string
+ if (getArchivedAt() != null) {
+ joiner.add(
+ String.format(
+ "%sarchivedAt%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getArchivedAt()))));
+ }
+
+ // add `tags` to the URL query string
+ if (getTags() != null) {
+ for (int i = 0; i < getTags().size(); i++) {
+ if (getTags().get(i) != null) {
+ joiner.add(
+ getTags()
+ .get(i)
+ .toUrlQueryString(
+ String.format(
+ "%stags%s%s",
+ prefix,
+ suffix,
+ "".equals(suffix)
+ ? ""
+ : String.format(
+ "%s%d%s",
+ containerPrefix,
+ i,
+ containerSuffix))));
+ }
+ }
+ }
+
+ // add `pendingApprovalRequest` to the URL query string
+ if (getPendingApprovalRequest() != null) {
+ joiner.add(
+ getPendingApprovalRequest()
+ .toUrlQueryString(prefix + "pendingApprovalRequest" + suffix));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/ContactApprovalRequest.java b/src/main/java/com/fireblocks/sdk/model/ContactApprovalRequest.java
new file mode 100644
index 00000000..a3bb79cf
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/ContactApprovalRequest.java
@@ -0,0 +1,194 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import com.fireblocks.sdk.ApiClient;
+import java.util.Objects;
+import java.util.StringJoiner;
+
+/**
+ * An approval request awaiting a quorum decision. Null when none is open. Carried both by a
+ * contact, for a quorum-gated write on the contact itself, and by an individual tag, for a change
+ * to the tag's own definition. An attach or detach of that tag to this contact is carried by
+ * the tag's `pendingAttachment` instead.
+ */
+@JsonPropertyOrder({
+ ContactApprovalRequest.JSON_PROPERTY_ID,
+ ContactApprovalRequest.JSON_PROPERTY_TYPE
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class ContactApprovalRequest {
+ public static final String JSON_PROPERTY_ID = "id";
+ @jakarta.annotation.Nonnull private String id;
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ @jakarta.annotation.Nonnull private String type;
+
+ public ContactApprovalRequest() {}
+
+ @JsonCreator
+ public ContactApprovalRequest(
+ @JsonProperty(value = JSON_PROPERTY_ID, required = true) String id,
+ @JsonProperty(value = JSON_PROPERTY_TYPE, required = true) String type) {
+ this.id = id;
+ this.type = type;
+ }
+
+ public ContactApprovalRequest id(@jakarta.annotation.Nonnull String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * The approval request identifier
+ *
+ * @return id
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getId() {
+ return id;
+ }
+
+ @JsonProperty(JSON_PROPERTY_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setId(@jakarta.annotation.Nonnull String id) {
+ this.id = id;
+ }
+
+ public ContactApprovalRequest type(@jakarta.annotation.Nonnull String type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * The operation awaiting approval. Deliberately not an enumeration: the set is open across the
+ * surfaces that carry one, and includes contact operations such as CREATE_CONTACT and
+ * DELETE_CONTACT as well as changes to a tag itself.
+ *
+ * @return type
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getType() {
+ return type;
+ }
+
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setType(@jakarta.annotation.Nonnull String type) {
+ this.type = type;
+ }
+
+ /** Return true if this ContactApprovalRequest object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ContactApprovalRequest contactApprovalRequest = (ContactApprovalRequest) o;
+ return Objects.equals(this.id, contactApprovalRequest.id)
+ && Objects.equals(this.type, contactApprovalRequest.type);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id, type);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ContactApprovalRequest {\n");
+ sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append(" type: ").append(toIndentedString(type)).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 `type` to the URL query string
+ if (getType() != null) {
+ joiner.add(
+ String.format(
+ "%stype%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getType()))));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/ContactTag.java b/src/main/java/com/fireblocks/sdk/model/ContactTag.java
new file mode 100644
index 00000000..4de343ab
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/ContactTag.java
@@ -0,0 +1,400 @@
+/*
+ * 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;
+import java.util.UUID;
+
+/** A tag attached to the contact, with the display details resolved from the tagging service. */
+@JsonPropertyOrder({
+ ContactTag.JSON_PROPERTY_ID,
+ ContactTag.JSON_PROPERTY_LABEL,
+ ContactTag.JSON_PROPERTY_COLOR,
+ ContactTag.JSON_PROPERTY_DESCRIPTION,
+ ContactTag.JSON_PROPERTY_IS_PROTECTED,
+ ContactTag.JSON_PROPERTY_PENDING_APPROVAL_REQUEST,
+ ContactTag.JSON_PROPERTY_PENDING_ATTACHMENT
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class ContactTag {
+ public static final String JSON_PROPERTY_ID = "id";
+ @jakarta.annotation.Nonnull private UUID id;
+
+ public static final String JSON_PROPERTY_LABEL = "label";
+ @jakarta.annotation.Nonnull private String label;
+
+ public static final String JSON_PROPERTY_COLOR = "color";
+ @jakarta.annotation.Nullable private String color;
+
+ public static final String JSON_PROPERTY_DESCRIPTION = "description";
+ @jakarta.annotation.Nullable private String description;
+
+ public static final String JSON_PROPERTY_IS_PROTECTED = "isProtected";
+ @jakarta.annotation.Nonnull private Boolean isProtected;
+
+ public static final String JSON_PROPERTY_PENDING_APPROVAL_REQUEST = "pendingApprovalRequest";
+ @jakarta.annotation.Nullable private ContactApprovalRequest pendingApprovalRequest;
+
+ public static final String JSON_PROPERTY_PENDING_ATTACHMENT = "pendingAttachment";
+ @jakarta.annotation.Nullable private ContactTagAttachmentPending pendingAttachment;
+
+ public ContactTag() {}
+
+ @JsonCreator
+ public ContactTag(
+ @JsonProperty(value = JSON_PROPERTY_ID, required = true) UUID id,
+ @JsonProperty(value = JSON_PROPERTY_LABEL, required = true) String label,
+ @JsonProperty(value = JSON_PROPERTY_IS_PROTECTED, required = true) Boolean isProtected,
+ @JsonProperty(value = JSON_PROPERTY_PENDING_APPROVAL_REQUEST, required = true)
+ ContactApprovalRequest pendingApprovalRequest,
+ @JsonProperty(value = JSON_PROPERTY_PENDING_ATTACHMENT, required = true)
+ ContactTagAttachmentPending pendingAttachment) {
+ this.id = id;
+ this.label = label;
+ this.isProtected = isProtected;
+ this.pendingApprovalRequest = pendingApprovalRequest;
+ this.pendingAttachment = pendingAttachment;
+ }
+
+ public ContactTag id(@jakarta.annotation.Nonnull UUID id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * The unique identifier of the tag
+ *
+ * @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 ContactTag label(@jakarta.annotation.Nonnull String label) {
+ this.label = label;
+ return this;
+ }
+
+ /**
+ * The tag label
+ *
+ * @return label
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_LABEL)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getLabel() {
+ return label;
+ }
+
+ @JsonProperty(JSON_PROPERTY_LABEL)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setLabel(@jakarta.annotation.Nonnull String label) {
+ this.label = label;
+ }
+
+ public ContactTag color(@jakarta.annotation.Nullable String color) {
+ this.color = color;
+ return this;
+ }
+
+ /**
+ * The tag color in hex format. Absent when the tag has none.
+ *
+ * @return color
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_COLOR)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getColor() {
+ return color;
+ }
+
+ @JsonProperty(JSON_PROPERTY_COLOR)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setColor(@jakarta.annotation.Nullable String color) {
+ this.color = color;
+ }
+
+ public ContactTag description(@jakarta.annotation.Nullable String description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * Description for the tag. Absent when the tag has none.
+ *
+ * @return description
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_DESCRIPTION)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getDescription() {
+ return description;
+ }
+
+ @JsonProperty(JSON_PROPERTY_DESCRIPTION)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setDescription(@jakarta.annotation.Nullable String description) {
+ this.description = description;
+ }
+
+ public ContactTag isProtected(@jakarta.annotation.Nonnull Boolean isProtected) {
+ this.isProtected = isProtected;
+ return this;
+ }
+
+ /**
+ * Whether the tag is protected, meaning changes to it and to its attachments are
+ * approval-gated.
+ *
+ * @return isProtected
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_IS_PROTECTED)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public Boolean getIsProtected() {
+ return isProtected;
+ }
+
+ @JsonProperty(JSON_PROPERTY_IS_PROTECTED)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setIsProtected(@jakarta.annotation.Nonnull Boolean isProtected) {
+ this.isProtected = isProtected;
+ }
+
+ public ContactTag pendingApprovalRequest(
+ @jakarta.annotation.Nullable ContactApprovalRequest pendingApprovalRequest) {
+ this.pendingApprovalRequest = pendingApprovalRequest;
+ return this;
+ }
+
+ /**
+ * Get pendingApprovalRequest
+ *
+ * @return pendingApprovalRequest
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_PENDING_APPROVAL_REQUEST)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public ContactApprovalRequest getPendingApprovalRequest() {
+ return pendingApprovalRequest;
+ }
+
+ @JsonProperty(JSON_PROPERTY_PENDING_APPROVAL_REQUEST)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setPendingApprovalRequest(
+ @jakarta.annotation.Nullable ContactApprovalRequest pendingApprovalRequest) {
+ this.pendingApprovalRequest = pendingApprovalRequest;
+ }
+
+ public ContactTag pendingAttachment(
+ @jakarta.annotation.Nullable ContactTagAttachmentPending pendingAttachment) {
+ this.pendingAttachment = pendingAttachment;
+ return this;
+ }
+
+ /**
+ * Get pendingAttachment
+ *
+ * @return pendingAttachment
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_PENDING_ATTACHMENT)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public ContactTagAttachmentPending getPendingAttachment() {
+ return pendingAttachment;
+ }
+
+ @JsonProperty(JSON_PROPERTY_PENDING_ATTACHMENT)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setPendingAttachment(
+ @jakarta.annotation.Nullable ContactTagAttachmentPending pendingAttachment) {
+ this.pendingAttachment = pendingAttachment;
+ }
+
+ /** Return true if this ContactTag object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ContactTag contactTag = (ContactTag) o;
+ return Objects.equals(this.id, contactTag.id)
+ && Objects.equals(this.label, contactTag.label)
+ && Objects.equals(this.color, contactTag.color)
+ && Objects.equals(this.description, contactTag.description)
+ && Objects.equals(this.isProtected, contactTag.isProtected)
+ && Objects.equals(this.pendingApprovalRequest, contactTag.pendingApprovalRequest)
+ && Objects.equals(this.pendingAttachment, contactTag.pendingAttachment);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(
+ id,
+ label,
+ color,
+ description,
+ isProtected,
+ pendingApprovalRequest,
+ pendingAttachment);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ContactTag {\n");
+ sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append(" label: ").append(toIndentedString(label)).append("\n");
+ sb.append(" color: ").append(toIndentedString(color)).append("\n");
+ sb.append(" description: ").append(toIndentedString(description)).append("\n");
+ sb.append(" isProtected: ").append(toIndentedString(isProtected)).append("\n");
+ sb.append(" pendingApprovalRequest: ")
+ .append(toIndentedString(pendingApprovalRequest))
+ .append("\n");
+ sb.append(" pendingAttachment: ")
+ .append(toIndentedString(pendingAttachment))
+ .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 `label` to the URL query string
+ if (getLabel() != null) {
+ joiner.add(
+ String.format(
+ "%slabel%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getLabel()))));
+ }
+
+ // add `color` to the URL query string
+ if (getColor() != null) {
+ joiner.add(
+ String.format(
+ "%scolor%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getColor()))));
+ }
+
+ // add `description` to the URL query string
+ if (getDescription() != null) {
+ joiner.add(
+ String.format(
+ "%sdescription%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getDescription()))));
+ }
+
+ // add `isProtected` to the URL query string
+ if (getIsProtected() != null) {
+ joiner.add(
+ String.format(
+ "%sisProtected%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getIsProtected()))));
+ }
+
+ // add `pendingApprovalRequest` to the URL query string
+ if (getPendingApprovalRequest() != null) {
+ joiner.add(
+ getPendingApprovalRequest()
+ .toUrlQueryString(prefix + "pendingApprovalRequest" + suffix));
+ }
+
+ // add `pendingAttachment` to the URL query string
+ if (getPendingAttachment() != null) {
+ joiner.add(
+ getPendingAttachment().toUrlQueryString(prefix + "pendingAttachment" + suffix));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/ContactTagAttachmentPending.java b/src/main/java/com/fireblocks/sdk/model/ContactTagAttachmentPending.java
new file mode 100644
index 00000000..e6a11472
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/ContactTagAttachmentPending.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.fasterxml.jackson.annotation.JsonValue;
+import com.fireblocks.sdk.ApiClient;
+import java.util.Objects;
+import java.util.StringJoiner;
+
+/**
+ * An attach or detach of this tag to this contact awaiting a quorum decision. Null when the
+ * attachment is settled. Distinct from the tag's own `pendingApprovalRequest`, which
+ * covers a change to the tag itself rather than to this pairing. When both are open, this is the
+ * one to act on from a contact: cancelling a change to the tag's own definition belongs to the
+ * tag surface, and `pendingApprovalRequest.id` must not be used to cancel an attachment.
+ */
+@JsonPropertyOrder({
+ ContactTagAttachmentPending.JSON_PROPERTY_ACTION,
+ ContactTagAttachmentPending.JSON_PROPERTY_APPROVAL_REQUEST_ID
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class ContactTagAttachmentPending {
+ /**
+ * The operation awaiting approval. ATTACH means the tag is not yet attached; DETACH means it is
+ * still attached, pending removal.
+ */
+ public enum ActionEnum {
+ ATTACH(String.valueOf("ATTACH")),
+
+ DETACH(String.valueOf("DETACH"));
+
+ private String value;
+
+ ActionEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static ActionEnum fromValue(String value) {
+ for (ActionEnum b : ActionEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ public static final String JSON_PROPERTY_ACTION = "action";
+ @jakarta.annotation.Nonnull private ActionEnum action;
+
+ public static final String JSON_PROPERTY_APPROVAL_REQUEST_ID = "approvalRequestId";
+ @jakarta.annotation.Nullable private String approvalRequestId;
+
+ public ContactTagAttachmentPending() {}
+
+ @JsonCreator
+ public ContactTagAttachmentPending(
+ @JsonProperty(value = JSON_PROPERTY_ACTION, required = true) ActionEnum action) {
+ this.action = action;
+ }
+
+ public ContactTagAttachmentPending action(@jakarta.annotation.Nonnull ActionEnum action) {
+ this.action = action;
+ return this;
+ }
+
+ /**
+ * The operation awaiting approval. ATTACH means the tag is not yet attached; DETACH means it is
+ * still attached, pending removal.
+ *
+ * @return action
+ */
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_ACTION)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public ActionEnum getAction() {
+ return action;
+ }
+
+ @JsonProperty(JSON_PROPERTY_ACTION)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setAction(@jakarta.annotation.Nonnull ActionEnum action) {
+ this.action = action;
+ }
+
+ public ContactTagAttachmentPending approvalRequestId(
+ @jakarta.annotation.Nullable String approvalRequestId) {
+ this.approvalRequestId = approvalRequestId;
+ return this;
+ }
+
+ /**
+ * The identifier of the approval request gating the operation
+ *
+ * @return approvalRequestId
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_APPROVAL_REQUEST_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getApprovalRequestId() {
+ return approvalRequestId;
+ }
+
+ @JsonProperty(JSON_PROPERTY_APPROVAL_REQUEST_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setApprovalRequestId(@jakarta.annotation.Nullable String approvalRequestId) {
+ this.approvalRequestId = approvalRequestId;
+ }
+
+ /** Return true if this ContactTagAttachmentPending object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ContactTagAttachmentPending contactTagAttachmentPending = (ContactTagAttachmentPending) o;
+ return Objects.equals(this.action, contactTagAttachmentPending.action)
+ && Objects.equals(
+ this.approvalRequestId, contactTagAttachmentPending.approvalRequestId);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(action, approvalRequestId);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ContactTagAttachmentPending {\n");
+ sb.append(" action: ").append(toIndentedString(action)).append("\n");
+ sb.append(" approvalRequestId: ")
+ .append(toIndentedString(approvalRequestId))
+ .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 `action` to the URL query string
+ if (getAction() != null) {
+ joiner.add(
+ String.format(
+ "%saction%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getAction()))));
+ }
+
+ // add `approvalRequestId` to the URL query string
+ if (getApprovalRequestId() != null) {
+ joiner.add(
+ String.format(
+ "%sapprovalRequestId%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getApprovalRequestId()))));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/ContactsPagedResponse.java b/src/main/java/com/fireblocks/sdk/model/ContactsPagedResponse.java
new file mode 100644
index 00000000..101e7124
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/model/ContactsPagedResponse.java
@@ -0,0 +1,251 @@
+/*
+ * 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;
+
+/** ContactsPagedResponse */
+@JsonPropertyOrder({
+ ContactsPagedResponse.JSON_PROPERTY_DATA,
+ ContactsPagedResponse.JSON_PROPERTY_NEXT,
+ ContactsPagedResponse.JSON_PROPERTY_TOTAL
+})
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class ContactsPagedResponse {
+ 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 static final String JSON_PROPERTY_TOTAL = "total";
+ @jakarta.annotation.Nullable private Integer total;
+
+ public ContactsPagedResponse() {}
+
+ @JsonCreator
+ public ContactsPagedResponse(
+ @JsonProperty(value = JSON_PROPERTY_DATA, required = true) List data) {
+ this.data = data;
+ }
+
+ public ContactsPagedResponse data(@jakarta.annotation.Nonnull List data) {
+ this.data = data;
+ return this;
+ }
+
+ public ContactsPagedResponse addDataItem(Contact dataItem) {
+ if (this.data == null) {
+ this.data = new ArrayList<>();
+ }
+ this.data.add(dataItem);
+ return this;
+ }
+
+ /**
+ * The page of contacts
+ *
+ * @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 ContactsPagedResponse next(@jakarta.annotation.Nullable String next) {
+ this.next = next;
+ return this;
+ }
+
+ /**
+ * Cursor to the next page; absent when the current page is the last. Opaque, and bound to the
+ * sort that minted it — replay it unchanged and keep sortBy/order steady across pages.
+ *
+ * @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;
+ }
+
+ public ContactsPagedResponse total(@jakarta.annotation.Nullable Integer total) {
+ this.total = total;
+ return this;
+ }
+
+ /**
+ * The number of contacts matching the filters, ignoring pagination. Present only when the
+ * request passed `includeTotal=true`; the key is absent otherwise.
+ *
+ * @return total
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_TOTAL)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Integer getTotal() {
+ return total;
+ }
+
+ @JsonProperty(JSON_PROPERTY_TOTAL)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setTotal(@jakarta.annotation.Nullable Integer total) {
+ this.total = total;
+ }
+
+ /** Return true if this ContactsPagedResponse object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ContactsPagedResponse contactsPagedResponse = (ContactsPagedResponse) o;
+ return Objects.equals(this.data, contactsPagedResponse.data)
+ && Objects.equals(this.next, contactsPagedResponse.next)
+ && Objects.equals(this.total, contactsPagedResponse.total);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(data, next, total);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ContactsPagedResponse {\n");
+ sb.append(" data: ").append(toIndentedString(data)).append("\n");
+ sb.append(" next: ").append(toIndentedString(next)).append("\n");
+ sb.append(" total: ").append(toIndentedString(total)).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()))));
+ }
+
+ // add `total` to the URL query string
+ if (getTotal() != null) {
+ joiner.add(
+ String.format(
+ "%stotal%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getTotal()))));
+ }
+
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/model/FailureReason.java b/src/main/java/com/fireblocks/sdk/model/FailureReason.java
index 54bc31d1..8f2afa16 100644
--- a/src/main/java/com/fireblocks/sdk/model/FailureReason.java
+++ b/src/main/java/com/fireblocks/sdk/model/FailureReason.java
@@ -62,6 +62,8 @@ public enum FailureReason {
AMOUNT_BELOW_MINIMUM("AMOUNT_BELOW_MINIMUM"),
+ AMOUNT_ABOVE_MAXIMUM("AMOUNT_ABOVE_MAXIMUM"),
+
PII_MISSING("PII_MISSING"),
EXTERNAL_SOURCE_NOT_SUPPORTED("EXTERNAL_SOURCE_NOT_SUPPORTED"),
diff --git a/src/main/java/com/fireblocks/sdk/model/ScreeningTRLinkMissingTrmDecision.java b/src/main/java/com/fireblocks/sdk/model/ScreeningTRLinkMissingTrmDecision.java
index 3692c23c..36fcfab2 100644
--- a/src/main/java/com/fireblocks/sdk/model/ScreeningTRLinkMissingTrmDecision.java
+++ b/src/main/java/com/fireblocks/sdk/model/ScreeningTRLinkMissingTrmDecision.java
@@ -547,7 +547,7 @@ public ScreeningTRLinkMissingTrmDecision validBefore(
}
/**
- * Unix timestamp when rule expires
+ * Rule expires once this many seconds have elapsed since the wait/screening step started
*
* @return validBefore
*/
@@ -571,7 +571,7 @@ public ScreeningTRLinkMissingTrmDecision validAfter(
}
/**
- * Unix timestamp when rule becomes valid
+ * Rule applies only after this many seconds have elapsed since the wait/screening step started
*
* @return validAfter
*/
diff --git a/src/main/java/com/fireblocks/sdk/model/ScreeningTRLinkMissingTrmRule.java b/src/main/java/com/fireblocks/sdk/model/ScreeningTRLinkMissingTrmRule.java
index e34fe05d..95a231fa 100644
--- a/src/main/java/com/fireblocks/sdk/model/ScreeningTRLinkMissingTrmRule.java
+++ b/src/main/java/com/fireblocks/sdk/model/ScreeningTRLinkMissingTrmRule.java
@@ -529,7 +529,7 @@ public ScreeningTRLinkMissingTrmRule validBefore(
}
/**
- * Unix timestamp when rule expires
+ * Rule expires once this many seconds have elapsed since the wait/screening step started
*
* @return validBefore
*/
@@ -553,7 +553,7 @@ public ScreeningTRLinkMissingTrmRule validAfter(
}
/**
- * Unix timestamp when rule becomes valid
+ * Rule applies only after this many seconds have elapsed since the wait/screening step started
*
* @return validAfter
*/
diff --git a/src/main/java/com/fireblocks/sdk/model/ScreeningTRLinkPostScreeningRule.java b/src/main/java/com/fireblocks/sdk/model/ScreeningTRLinkPostScreeningRule.java
index 387d13a4..0026bce5 100644
--- a/src/main/java/com/fireblocks/sdk/model/ScreeningTRLinkPostScreeningRule.java
+++ b/src/main/java/com/fireblocks/sdk/model/ScreeningTRLinkPostScreeningRule.java
@@ -586,7 +586,7 @@ public ScreeningTRLinkPostScreeningRule validBefore(
}
/**
- * Unix timestamp when rule expires
+ * Rule expires once this many seconds have elapsed since the wait/screening step started
*
* @return validBefore
*/
@@ -610,7 +610,7 @@ public ScreeningTRLinkPostScreeningRule validAfter(
}
/**
- * Unix timestamp when rule becomes valid
+ * Rule applies only after this many seconds have elapsed since the wait/screening step started
*
* @return validAfter
*/
diff --git a/src/main/java/com/fireblocks/sdk/model/SecurityFinding.java b/src/main/java/com/fireblocks/sdk/model/SecurityFinding.java
index 4f994cdc..834e676e 100644
--- a/src/main/java/com/fireblocks/sdk/model/SecurityFinding.java
+++ b/src/main/java/com/fireblocks/sdk/model/SecurityFinding.java
@@ -27,7 +27,6 @@
/** A single FSPM finding */
@JsonPropertyOrder({
SecurityFinding.JSON_PROPERTY_ID,
- SecurityFinding.JSON_PROPERTY_TYPE,
SecurityFinding.JSON_PROPERTY_STATUS,
SecurityFinding.JSON_PROPERTY_SEVERITY,
SecurityFinding.JSON_PROPERTY_CATEGORY,
@@ -41,89 +40,6 @@ public class SecurityFinding {
public static final String JSON_PROPERTY_ID = "id";
@jakarta.annotation.Nullable private UUID id;
- /** The finding type identifier */
- public enum TypeEnum {
- API_USER_NOT_WHITELISTED(String.valueOf("API_USER_NOT_WHITELISTED")),
-
- CONSOLE_IP_ALLOWLIST_DEACTIVATED(String.valueOf("CONSOLE_IP_ALLOWLIST_DEACTIVATED")),
-
- ADMIN_TH_SET_TO_ALL_AND_MORE_THAN_2_ADMINS(
- String.valueOf("ADMIN_TH_SET_TO_ALL_AND_MORE_THAN_2_ADMINS")),
-
- API_USERS_COUNT_PASSES_TH_AND_OWNER_NOT_MANDATORY(
- String.valueOf("API_USERS_COUNT_PASSES_TH_AND_OWNER_NOT_MANDATORY")),
-
- API_COSIGNER_WITH_NO_CALLBACK(String.valueOf("API_COSIGNER_WITH_NO_CALLBACK")),
-
- API_USER_DIDNT_APPROVE_CCR_IN_X_DAYS(
- String.valueOf("API_USER_DIDNT_APPROVE_CCR_IN_X_DAYS")),
-
- NON_VIEWER_DIDNT_INITIATE_APPROVE_OR_SIGN_TX_OR_CCR_LAST_X_DAYS(
- String.valueOf("NON_VIEWER_DIDNT_INITIATE_APPROVE_OR_SIGN_TX_OR_CCR_LAST_X_DAYS")),
-
- TH_SET_TO_1_AND_MORE_THAN_3_APPROVERS(
- String.valueOf("TH_SET_TO_1_AND_MORE_THAN_3_APPROVERS")),
-
- ADMIN_TH_SET_TO_1_AND_MORE_THAN_3_ADMINS(
- String.valueOf("ADMIN_TH_SET_TO_1_AND_MORE_THAN_3_ADMINS")),
-
- NON_EVM_DAPP_CONNECTIONS_ENABLED_BUT_UNUSED(
- String.valueOf("NON_EVM_DAPP_CONNECTIONS_ENABLED_BUT_UNUSED")),
-
- OTA_ENABLED_BUT_UNUSED(String.valueOf("OTA_ENABLED_BUT_UNUSED")),
-
- POLICY_NOT_UPDATED_RECENTLY(String.valueOf("POLICY_NOT_UPDATED_RECENTLY")),
-
- RAW_SIGNING_ENABLED_BUT_UNUSED(String.valueOf("RAW_SIGNING_ENABLED_BUT_UNUSED")),
-
- API_USER_UNUSED_FOR_90_DAYS(String.valueOf("API_USER_UNUSED_FOR_90_DAYS")),
-
- UNUSED_UNLIMITED_TOKEN_ALLOWANCES(String.valueOf("UNUSED_UNLIMITED_TOKEN_ALLOWANCES")),
-
- UNUSED_WHITELISTED_ADDRESS(String.valueOf("UNUSED_WHITELISTED_ADDRESS")),
-
- TRANSACTION_REPETITION_ATTACK(String.valueOf("TRANSACTION_REPETITION_ATTACK")),
-
- USER_EMAIL_DOMAIN_NON_BUSINESS(String.valueOf("USER_EMAIL_DOMAIN_NON_BUSINESS")),
-
- OUTDATED_MOBILE_APP_VERSION(String.valueOf("OUTDATED_MOBILE_APP_VERSION")),
-
- SINGLE_HOP_DRAIN_ATTACK(String.valueOf("SINGLE_HOP_DRAIN_ATTACK")),
-
- LATERAL_MOVEMENT_DRAIN_ATTACK(String.valueOf("LATERAL_MOVEMENT_DRAIN_ATTACK")),
-
- WORKSPACE_USER_DORMANT_FOR_X_DAYS(String.valueOf("WORKSPACE_USER_DORMANT_FOR_X_DAYS"));
-
- 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.Nullable private TypeEnum type;
-
/** Current status of the finding */
public enum StatusEnum {
OPEN(String.valueOf("OPEN")),
@@ -277,29 +193,6 @@ public void setId(@jakarta.annotation.Nullable UUID id) {
this.id = id;
}
- public SecurityFinding type(@jakarta.annotation.Nullable TypeEnum type) {
- this.type = type;
- return this;
- }
-
- /**
- * The finding type identifier
- *
- * @return type
- */
- @jakarta.annotation.Nullable
- @JsonProperty(JSON_PROPERTY_TYPE)
- @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
- public TypeEnum getType() {
- return type;
- }
-
- @JsonProperty(JSON_PROPERTY_TYPE)
- @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
- public void setType(@jakarta.annotation.Nullable TypeEnum type) {
- this.type = type;
- }
-
public SecurityFinding status(@jakarta.annotation.Nullable StatusEnum status) {
this.status = status;
return this;
@@ -426,7 +319,6 @@ public boolean equals(Object o) {
}
SecurityFinding securityFinding = (SecurityFinding) o;
return Objects.equals(this.id, securityFinding.id)
- && Objects.equals(this.type, securityFinding.type)
&& Objects.equals(this.status, securityFinding.status)
&& Objects.equals(this.severity, securityFinding.severity)
&& Objects.equals(this.category, securityFinding.category)
@@ -436,7 +328,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return Objects.hash(id, type, status, severity, category, createdAt, title);
+ return Objects.hash(id, status, severity, category, createdAt, title);
}
@Override
@@ -444,7 +336,6 @@ public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("class SecurityFinding {\n");
sb.append(" id: ").append(toIndentedString(id)).append("\n");
- sb.append(" type: ").append(toIndentedString(type)).append("\n");
sb.append(" status: ").append(toIndentedString(status)).append("\n");
sb.append(" severity: ").append(toIndentedString(severity)).append("\n");
sb.append(" category: ").append(toIndentedString(category)).append("\n");
@@ -505,16 +396,6 @@ public String toUrlQueryString(String prefix) {
prefix, suffix, ApiClient.urlEncode(ApiClient.valueToString(getId()))));
}
- // 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 `status` to the URL query string
if (getStatus() != null) {
joiner.add(
diff --git a/src/main/java/com/fireblocks/sdk/model/SecurityFindingDetailed.java b/src/main/java/com/fireblocks/sdk/model/SecurityFindingDetailed.java
index e8243017..e07eb4fe 100644
--- a/src/main/java/com/fireblocks/sdk/model/SecurityFindingDetailed.java
+++ b/src/main/java/com/fireblocks/sdk/model/SecurityFindingDetailed.java
@@ -31,7 +31,6 @@
/** A single FSPM finding, redacted to the public field set */
@JsonPropertyOrder({
SecurityFindingDetailed.JSON_PROPERTY_ID,
- SecurityFindingDetailed.JSON_PROPERTY_TYPE,
SecurityFindingDetailed.JSON_PROPERTY_STATUS,
SecurityFindingDetailed.JSON_PROPERTY_SEVERITY,
SecurityFindingDetailed.JSON_PROPERTY_CATEGORY,
@@ -52,89 +51,6 @@ public class SecurityFindingDetailed {
public static final String JSON_PROPERTY_ID = "id";
@jakarta.annotation.Nonnull private UUID id;
- /** The finding type identifier */
- public enum TypeEnum {
- API_USER_NOT_WHITELISTED(String.valueOf("API_USER_NOT_WHITELISTED")),
-
- CONSOLE_IP_ALLOWLIST_DEACTIVATED(String.valueOf("CONSOLE_IP_ALLOWLIST_DEACTIVATED")),
-
- ADMIN_TH_SET_TO_ALL_AND_MORE_THAN_2_ADMINS(
- String.valueOf("ADMIN_TH_SET_TO_ALL_AND_MORE_THAN_2_ADMINS")),
-
- API_USERS_COUNT_PASSES_TH_AND_OWNER_NOT_MANDATORY(
- String.valueOf("API_USERS_COUNT_PASSES_TH_AND_OWNER_NOT_MANDATORY")),
-
- API_COSIGNER_WITH_NO_CALLBACK(String.valueOf("API_COSIGNER_WITH_NO_CALLBACK")),
-
- API_USER_DIDNT_APPROVE_CCR_IN_X_DAYS(
- String.valueOf("API_USER_DIDNT_APPROVE_CCR_IN_X_DAYS")),
-
- NON_VIEWER_DIDNT_INITIATE_APPROVE_OR_SIGN_TX_OR_CCR_LAST_X_DAYS(
- String.valueOf("NON_VIEWER_DIDNT_INITIATE_APPROVE_OR_SIGN_TX_OR_CCR_LAST_X_DAYS")),
-
- TH_SET_TO_1_AND_MORE_THAN_3_APPROVERS(
- String.valueOf("TH_SET_TO_1_AND_MORE_THAN_3_APPROVERS")),
-
- ADMIN_TH_SET_TO_1_AND_MORE_THAN_3_ADMINS(
- String.valueOf("ADMIN_TH_SET_TO_1_AND_MORE_THAN_3_ADMINS")),
-
- NON_EVM_DAPP_CONNECTIONS_ENABLED_BUT_UNUSED(
- String.valueOf("NON_EVM_DAPP_CONNECTIONS_ENABLED_BUT_UNUSED")),
-
- OTA_ENABLED_BUT_UNUSED(String.valueOf("OTA_ENABLED_BUT_UNUSED")),
-
- POLICY_NOT_UPDATED_RECENTLY(String.valueOf("POLICY_NOT_UPDATED_RECENTLY")),
-
- RAW_SIGNING_ENABLED_BUT_UNUSED(String.valueOf("RAW_SIGNING_ENABLED_BUT_UNUSED")),
-
- API_USER_UNUSED_FOR_90_DAYS(String.valueOf("API_USER_UNUSED_FOR_90_DAYS")),
-
- UNUSED_UNLIMITED_TOKEN_ALLOWANCES(String.valueOf("UNUSED_UNLIMITED_TOKEN_ALLOWANCES")),
-
- UNUSED_WHITELISTED_ADDRESS(String.valueOf("UNUSED_WHITELISTED_ADDRESS")),
-
- TRANSACTION_REPETITION_ATTACK(String.valueOf("TRANSACTION_REPETITION_ATTACK")),
-
- USER_EMAIL_DOMAIN_NON_BUSINESS(String.valueOf("USER_EMAIL_DOMAIN_NON_BUSINESS")),
-
- OUTDATED_MOBILE_APP_VERSION(String.valueOf("OUTDATED_MOBILE_APP_VERSION")),
-
- SINGLE_HOP_DRAIN_ATTACK(String.valueOf("SINGLE_HOP_DRAIN_ATTACK")),
-
- LATERAL_MOVEMENT_DRAIN_ATTACK(String.valueOf("LATERAL_MOVEMENT_DRAIN_ATTACK")),
-
- WORKSPACE_USER_DORMANT_FOR_X_DAYS(String.valueOf("WORKSPACE_USER_DORMANT_FOR_X_DAYS"));
-
- 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;
-
/** Current status of the finding */
public enum StatusEnum {
OPEN(String.valueOf("OPEN")),
@@ -289,7 +205,6 @@ public SecurityFindingDetailed() {}
@JsonCreator
public SecurityFindingDetailed(
@JsonProperty(value = JSON_PROPERTY_ID, required = true) UUID id,
- @JsonProperty(value = JSON_PROPERTY_TYPE, required = true) TypeEnum type,
@JsonProperty(value = JSON_PROPERTY_STATUS, required = true) StatusEnum status,
@JsonProperty(value = JSON_PROPERTY_SEVERITY, required = true) SeverityEnum severity,
@JsonProperty(value = JSON_PROPERTY_CATEGORY, required = true) CategoryEnum category,
@@ -304,7 +219,6 @@ public SecurityFindingDetailed(
@JsonProperty(value = JSON_PROPERTY_MITIGATION_GUIDANCE, required = true)
String mitigationGuidance) {
this.id = id;
- this.type = type;
this.status = status;
this.severity = severity;
this.category = category;
@@ -339,29 +253,6 @@ public void setId(@jakarta.annotation.Nonnull UUID id) {
this.id = id;
}
- public SecurityFindingDetailed type(@jakarta.annotation.Nonnull TypeEnum type) {
- this.type = type;
- return this;
- }
-
- /**
- * The finding type identifier
- *
- * @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 SecurityFindingDetailed status(@jakarta.annotation.Nonnull StatusEnum status) {
this.status = status;
return this;
@@ -672,7 +563,6 @@ public boolean equals(Object o) {
}
SecurityFindingDetailed securityFindingDetailed = (SecurityFindingDetailed) o;
return Objects.equals(this.id, securityFindingDetailed.id)
- && Objects.equals(this.type, securityFindingDetailed.type)
&& Objects.equals(this.status, securityFindingDetailed.status)
&& Objects.equals(this.severity, securityFindingDetailed.severity)
&& Objects.equals(this.category, securityFindingDetailed.category)
@@ -694,7 +584,6 @@ public boolean equals(Object o) {
public int hashCode() {
return Objects.hash(
id,
- type,
status,
severity,
category,
@@ -714,7 +603,6 @@ public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("class SecurityFindingDetailed {\n");
sb.append(" id: ").append(toIndentedString(id)).append("\n");
- sb.append(" type: ").append(toIndentedString(type)).append("\n");
sb.append(" status: ").append(toIndentedString(status)).append("\n");
sb.append(" severity: ").append(toIndentedString(severity)).append("\n");
sb.append(" category: ").append(toIndentedString(category)).append("\n");
@@ -788,16 +676,6 @@ public String toUrlQueryString(String prefix) {
prefix, suffix, ApiClient.urlEncode(ApiClient.valueToString(getId()))));
}
- // 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 `status` to the URL query string
if (getStatus() != null) {
joiner.add(
diff --git a/src/main/java/com/fireblocks/sdk/model/TRLinkMissingTrmDecision.java b/src/main/java/com/fireblocks/sdk/model/TRLinkMissingTrmDecision.java
index 7005cf48..adaeb5ec 100644
--- a/src/main/java/com/fireblocks/sdk/model/TRLinkMissingTrmDecision.java
+++ b/src/main/java/com/fireblocks/sdk/model/TRLinkMissingTrmDecision.java
@@ -540,7 +540,7 @@ public TRLinkMissingTrmDecision validBefore(
}
/**
- * Unix timestamp when rule expires
+ * Rule expires once this many seconds have elapsed since the wait/screening step started
*
* @return validBefore
*/
@@ -563,7 +563,7 @@ public TRLinkMissingTrmDecision validAfter(@jakarta.annotation.Nullable BigDecim
}
/**
- * Unix timestamp when rule becomes valid
+ * Rule applies only after this many seconds have elapsed since the wait/screening step started
*
* @return validAfter
*/
diff --git a/src/main/java/com/fireblocks/sdk/model/TRLinkMissingTrmRule.java b/src/main/java/com/fireblocks/sdk/model/TRLinkMissingTrmRule.java
index 3d8cd626..d1148db9 100644
--- a/src/main/java/com/fireblocks/sdk/model/TRLinkMissingTrmRule.java
+++ b/src/main/java/com/fireblocks/sdk/model/TRLinkMissingTrmRule.java
@@ -523,7 +523,7 @@ public TRLinkMissingTrmRule validBefore(@jakarta.annotation.Nullable BigDecimal
}
/**
- * Unix timestamp when rule expires
+ * Rule expires once this many seconds have elapsed since the wait/screening step started
*
* @return validBefore
*/
@@ -546,7 +546,7 @@ public TRLinkMissingTrmRule validAfter(@jakarta.annotation.Nullable BigDecimal v
}
/**
- * Unix timestamp when rule becomes valid
+ * Rule applies only after this many seconds have elapsed since the wait/screening step started
*
* @return validAfter
*/
diff --git a/src/main/java/com/fireblocks/sdk/model/TRLinkMissingTrmRule2.java b/src/main/java/com/fireblocks/sdk/model/TRLinkMissingTrmRule2.java
index dc664d33..6bd1c174 100644
--- a/src/main/java/com/fireblocks/sdk/model/TRLinkMissingTrmRule2.java
+++ b/src/main/java/com/fireblocks/sdk/model/TRLinkMissingTrmRule2.java
@@ -18,6 +18,7 @@
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.fireblocks.sdk.ApiClient;
+import java.math.BigDecimal;
import java.util.Objects;
import java.util.StringJoiner;
@@ -100,10 +101,10 @@ public class TRLinkMissingTrmRule2 {
@jakarta.annotation.Nullable private Boolean isDefault;
public static final String JSON_PROPERTY_VALID_BEFORE = "validBefore";
- @jakarta.annotation.Nullable private Long validBefore;
+ @jakarta.annotation.Nullable private BigDecimal validBefore;
public static final String JSON_PROPERTY_VALID_AFTER = "validAfter";
- @jakarta.annotation.Nullable private Long validAfter;
+ @jakarta.annotation.Nullable private BigDecimal validAfter;
public static final String JSON_PROPERTY_ACTION = "action";
@jakarta.annotation.Nonnull private TRLinkMissingTrmAction2 action;
@@ -510,49 +511,49 @@ public void setIsDefault(@jakarta.annotation.Nullable Boolean isDefault) {
this.isDefault = isDefault;
}
- public TRLinkMissingTrmRule2 validBefore(@jakarta.annotation.Nullable Long validBefore) {
+ public TRLinkMissingTrmRule2 validBefore(@jakarta.annotation.Nullable BigDecimal validBefore) {
this.validBefore = validBefore;
return this;
}
/**
- * Rule is valid before this timestamp (milliseconds)
+ * Rule expires once this many seconds have elapsed since the wait/screening step started
*
* @return validBefore
*/
@jakarta.annotation.Nullable
@JsonProperty(JSON_PROPERTY_VALID_BEFORE)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
- public Long getValidBefore() {
+ public BigDecimal getValidBefore() {
return validBefore;
}
@JsonProperty(JSON_PROPERTY_VALID_BEFORE)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
- public void setValidBefore(@jakarta.annotation.Nullable Long validBefore) {
+ public void setValidBefore(@jakarta.annotation.Nullable BigDecimal validBefore) {
this.validBefore = validBefore;
}
- public TRLinkMissingTrmRule2 validAfter(@jakarta.annotation.Nullable Long validAfter) {
+ public TRLinkMissingTrmRule2 validAfter(@jakarta.annotation.Nullable BigDecimal validAfter) {
this.validAfter = validAfter;
return this;
}
/**
- * Rule is valid after this timestamp (milliseconds)
+ * Rule applies only after this many seconds have elapsed since the wait/screening step started
*
* @return validAfter
*/
@jakarta.annotation.Nullable
@JsonProperty(JSON_PROPERTY_VALID_AFTER)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
- public Long getValidAfter() {
+ public BigDecimal getValidAfter() {
return validAfter;
}
@JsonProperty(JSON_PROPERTY_VALID_AFTER)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
- public void setValidAfter(@jakarta.annotation.Nullable Long validAfter) {
+ public void setValidAfter(@jakarta.annotation.Nullable BigDecimal validAfter) {
this.validAfter = validAfter;
}
diff --git a/src/main/java/com/fireblocks/sdk/model/TRLinkPostScreeningRule.java b/src/main/java/com/fireblocks/sdk/model/TRLinkPostScreeningRule.java
index 049ac33f..5b47c03f 100644
--- a/src/main/java/com/fireblocks/sdk/model/TRLinkPostScreeningRule.java
+++ b/src/main/java/com/fireblocks/sdk/model/TRLinkPostScreeningRule.java
@@ -580,7 +580,7 @@ public TRLinkPostScreeningRule validBefore(
}
/**
- * Unix timestamp when rule expires
+ * Rule expires once this many seconds have elapsed since the wait/screening step started
*
* @return validBefore
*/
@@ -603,7 +603,7 @@ public TRLinkPostScreeningRule validAfter(@jakarta.annotation.Nullable BigDecima
}
/**
- * Unix timestamp when rule becomes valid
+ * Rule applies only after this many seconds have elapsed since the wait/screening step started
*
* @return validAfter
*/
diff --git a/src/main/java/com/fireblocks/sdk/model/TRLinkPostScreeningRule2.java b/src/main/java/com/fireblocks/sdk/model/TRLinkPostScreeningRule2.java
index 4780d1e6..0279f62f 100644
--- a/src/main/java/com/fireblocks/sdk/model/TRLinkPostScreeningRule2.java
+++ b/src/main/java/com/fireblocks/sdk/model/TRLinkPostScreeningRule2.java
@@ -18,6 +18,7 @@
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.fireblocks.sdk.ApiClient;
+import java.math.BigDecimal;
import java.util.Objects;
import java.util.StringJoiner;
@@ -108,10 +109,10 @@ public class TRLinkPostScreeningRule2 {
@jakarta.annotation.Nullable private TRLinkTrmStatus trmStatus;
public static final String JSON_PROPERTY_VALID_BEFORE = "validBefore";
- @jakarta.annotation.Nullable private Long validBefore;
+ @jakarta.annotation.Nullable private BigDecimal validBefore;
public static final String JSON_PROPERTY_VALID_AFTER = "validAfter";
- @jakarta.annotation.Nullable private Long validAfter;
+ @jakarta.annotation.Nullable private BigDecimal validAfter;
public static final String JSON_PROPERTY_ACTION = "action";
@jakarta.annotation.Nonnull private TRLinkPostScreeningAction action;
@@ -569,49 +570,50 @@ public void setTrmStatus(@jakarta.annotation.Nullable TRLinkTrmStatus trmStatus)
this.trmStatus = trmStatus;
}
- public TRLinkPostScreeningRule2 validBefore(@jakarta.annotation.Nullable Long validBefore) {
+ public TRLinkPostScreeningRule2 validBefore(
+ @jakarta.annotation.Nullable BigDecimal validBefore) {
this.validBefore = validBefore;
return this;
}
/**
- * Rule is valid before this timestamp (milliseconds)
+ * Rule expires once this many seconds have elapsed since the wait/screening step started
*
* @return validBefore
*/
@jakarta.annotation.Nullable
@JsonProperty(JSON_PROPERTY_VALID_BEFORE)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
- public Long getValidBefore() {
+ public BigDecimal getValidBefore() {
return validBefore;
}
@JsonProperty(JSON_PROPERTY_VALID_BEFORE)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
- public void setValidBefore(@jakarta.annotation.Nullable Long validBefore) {
+ public void setValidBefore(@jakarta.annotation.Nullable BigDecimal validBefore) {
this.validBefore = validBefore;
}
- public TRLinkPostScreeningRule2 validAfter(@jakarta.annotation.Nullable Long validAfter) {
+ public TRLinkPostScreeningRule2 validAfter(@jakarta.annotation.Nullable BigDecimal validAfter) {
this.validAfter = validAfter;
return this;
}
/**
- * Rule is valid after this timestamp (milliseconds)
+ * Rule applies only after this many seconds have elapsed since the wait/screening step started
*
* @return validAfter
*/
@jakarta.annotation.Nullable
@JsonProperty(JSON_PROPERTY_VALID_AFTER)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
- public Long getValidAfter() {
+ public BigDecimal getValidAfter() {
return validAfter;
}
@JsonProperty(JSON_PROPERTY_VALID_AFTER)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
- public void setValidAfter(@jakarta.annotation.Nullable Long validAfter) {
+ public void setValidAfter(@jakarta.annotation.Nullable BigDecimal validAfter) {
this.validAfter = validAfter;
}
diff --git a/src/main/java/com/fireblocks/sdk/model/TransactionRequest.java b/src/main/java/com/fireblocks/sdk/model/TransactionRequest.java
index 4d9ad9c1..e091d6e6 100644
--- a/src/main/java/com/fireblocks/sdk/model/TransactionRequest.java
+++ b/src/main/java/com/fireblocks/sdk/model/TransactionRequest.java
@@ -29,6 +29,7 @@
TransactionRequest.JSON_PROPERTY_OPERATION,
TransactionRequest.JSON_PROPERTY_NOTE,
TransactionRequest.JSON_PROPERTY_EXTERNAL_TX_ID,
+ TransactionRequest.JSON_PROPERTY_FEE_CURRENCY,
TransactionRequest.JSON_PROPERTY_ASSET_ID,
TransactionRequest.JSON_PROPERTY_SOURCE,
TransactionRequest.JSON_PROPERTY_DESTINATION,
@@ -72,6 +73,9 @@ public class TransactionRequest {
public static final String JSON_PROPERTY_EXTERNAL_TX_ID = "externalTxId";
@jakarta.annotation.Nullable private String externalTxId;
+ public static final String JSON_PROPERTY_FEE_CURRENCY = "feeCurrency";
+ @jakarta.annotation.Nullable private String feeCurrency;
+
public static final String JSON_PROPERTY_ASSET_ID = "assetId";
@jakarta.annotation.Nullable private String assetId;
@@ -272,6 +276,33 @@ public void setExternalTxId(@jakarta.annotation.Nullable String externalTxId) {
this.externalTxId = externalTxId;
}
+ public TransactionRequest feeCurrency(@jakarta.annotation.Nullable String feeCurrency) {
+ this.feeCurrency = feeCurrency;
+ return this;
+ }
+
+ /**
+ * For Tempo-based transactions only, the asset used to pay the transaction's network fee,
+ * as an asset ID ([see supported
+ * assets](https://developers.fireblocks.com/api-reference/blockchains-&-assets/list-assets)).
+ * For any other blockchain, this value is ignored. This feature is currently in beta and might
+ * be subject to changes.
+ *
+ * @return feeCurrency
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_FEE_CURRENCY)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getFeeCurrency() {
+ return feeCurrency;
+ }
+
+ @JsonProperty(JSON_PROPERTY_FEE_CURRENCY)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setFeeCurrency(@jakarta.annotation.Nullable String feeCurrency) {
+ this.feeCurrency = feeCurrency;
+ }
+
public TransactionRequest assetId(@jakarta.annotation.Nullable String assetId) {
this.assetId = assetId;
return this;
@@ -961,6 +992,7 @@ public boolean equals(Object o) {
return Objects.equals(this.operation, transactionRequest.operation)
&& Objects.equals(this.note, transactionRequest.note)
&& Objects.equals(this.externalTxId, transactionRequest.externalTxId)
+ && Objects.equals(this.feeCurrency, transactionRequest.feeCurrency)
&& Objects.equals(this.assetId, transactionRequest.assetId)
&& Objects.equals(this.source, transactionRequest.source)
&& Objects.equals(this.destination, transactionRequest.destination)
@@ -996,6 +1028,7 @@ public int hashCode() {
operation,
note,
externalTxId,
+ feeCurrency,
assetId,
source,
destination,
@@ -1032,6 +1065,7 @@ public String toString() {
sb.append(" operation: ").append(toIndentedString(operation)).append("\n");
sb.append(" note: ").append(toIndentedString(note)).append("\n");
sb.append(" externalTxId: ").append(toIndentedString(externalTxId)).append("\n");
+ sb.append(" feeCurrency: ").append(toIndentedString(feeCurrency)).append("\n");
sb.append(" assetId: ").append(toIndentedString(assetId)).append("\n");
sb.append(" source: ").append(toIndentedString(source)).append("\n");
sb.append(" destination: ").append(toIndentedString(destination)).append("\n");
@@ -1144,6 +1178,16 @@ public String toUrlQueryString(String prefix) {
ApiClient.urlEncode(ApiClient.valueToString(getExternalTxId()))));
}
+ // add `feeCurrency` to the URL query string
+ if (getFeeCurrency() != null) {
+ joiner.add(
+ String.format(
+ "%sfeeCurrency%s=%s",
+ prefix,
+ suffix,
+ ApiClient.urlEncode(ApiClient.valueToString(getFeeCurrency()))));
+ }
+
// add `assetId` to the URL query string
if (getAssetId() != null) {
joiner.add(
diff --git a/src/test/java/com/fireblocks/sdk/FireblocksTest.java b/src/test/java/com/fireblocks/sdk/FireblocksTest.java
index 6372c04a..96774e70 100644
--- a/src/test/java/com/fireblocks/sdk/FireblocksTest.java
+++ b/src/test/java/com/fireblocks/sdk/FireblocksTest.java
@@ -421,6 +421,14 @@ public void testGetConsoleUserApi() {
Assert.assertSame(consoleUser, fireblocks.consoleUser());
}
+ @Test
+ public void testGetContactsApi() {
+ setupFireblocks(true, null, null);
+ ContactsApi contacts = fireblocks.contacts();
+ Assert.assertNotNull(contacts);
+ Assert.assertSame(contacts, fireblocks.contacts());
+ }
+
@Test
public void testGetContractInteractionsApi() {
setupFireblocks(true, null, null);
diff --git a/src/test/java/com/fireblocks/sdk/api/ContactsApiTest.java b/src/test/java/com/fireblocks/sdk/api/ContactsApiTest.java
new file mode 100644
index 00000000..510c2882
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/api/ContactsApiTest.java
@@ -0,0 +1,70 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.api;
+
+
+import com.fireblocks.sdk.ApiResponse;
+import com.fireblocks.sdk.model.ContactsPagedResponse;
+import java.util.List;
+import java.util.UUID;
+import java.util.concurrent.CompletableFuture;
+import org.junit.Ignore;
+import org.junit.Test;
+
+/** API tests for ContactsApi */
+@Ignore
+public class ContactsApiTest {
+
+ private final ContactsApi api = new ContactsApi();
+
+ /**
+ * List contacts
+ *
+ * Returns a paginated list of the workspace's address book contacts. Live contacts are
+ * returned by default; pass `archived=true` to return only the archived ones.
+ * Results are sorted by `name` ascending unless `sortBy`/`order`
+ * say otherwise. Because the sort column is the page cursor's leading key, a
+ * `pageCursor` must be replayed with the same sort it was minted under, or the
+ * request is rejected. Endpoint Permissions: any workspace role may read the address book.
+ * Writes are role-gated.
+ */
+ @Test
+ public void getContactsTest() {
+ String pageCursor = null;
+ Integer pageSize = null;
+ Boolean includeTotal = null;
+ String name = null;
+ List types = null;
+ UUID containerId = null;
+ Boolean archived = null;
+ String accessControl = null;
+ List includeTagIds = null;
+ List excludeTagIds = null;
+ String sortBy = null;
+ String order = null;
+ CompletableFuture> response =
+ api.getContacts(
+ pageCursor,
+ pageSize,
+ includeTotal,
+ name,
+ types,
+ containerId,
+ archived,
+ accessControl,
+ includeTagIds,
+ excludeTagIds,
+ sortBy,
+ order);
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/ContactApprovalRequestTest.java b/src/test/java/com/fireblocks/sdk/model/ContactApprovalRequestTest.java
new file mode 100644
index 00000000..c303922d
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/ContactApprovalRequestTest.java
@@ -0,0 +1,39 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for ContactApprovalRequest */
+class ContactApprovalRequestTest {
+ private final ContactApprovalRequest model = new ContactApprovalRequest();
+
+ /** Model tests for ContactApprovalRequest */
+ @Test
+ void testContactApprovalRequest() {
+ // TODO: test ContactApprovalRequest
+ }
+
+ /** Test the property 'id' */
+ @Test
+ void idTest() {
+ // TODO: test id
+ }
+
+ /** Test the property 'type' */
+ @Test
+ void typeTest() {
+ // TODO: test type
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/ContactTagAttachmentPendingTest.java b/src/test/java/com/fireblocks/sdk/model/ContactTagAttachmentPendingTest.java
new file mode 100644
index 00000000..c207264c
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/ContactTagAttachmentPendingTest.java
@@ -0,0 +1,39 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for ContactTagAttachmentPending */
+class ContactTagAttachmentPendingTest {
+ private final ContactTagAttachmentPending model = new ContactTagAttachmentPending();
+
+ /** Model tests for ContactTagAttachmentPending */
+ @Test
+ void testContactTagAttachmentPending() {
+ // TODO: test ContactTagAttachmentPending
+ }
+
+ /** Test the property 'action' */
+ @Test
+ void actionTest() {
+ // TODO: test action
+ }
+
+ /** Test the property 'approvalRequestId' */
+ @Test
+ void approvalRequestIdTest() {
+ // TODO: test approvalRequestId
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/ContactTagTest.java b/src/test/java/com/fireblocks/sdk/model/ContactTagTest.java
new file mode 100644
index 00000000..68c7c239
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/ContactTagTest.java
@@ -0,0 +1,69 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for ContactTag */
+class ContactTagTest {
+ private final ContactTag model = new ContactTag();
+
+ /** Model tests for ContactTag */
+ @Test
+ void testContactTag() {
+ // TODO: test ContactTag
+ }
+
+ /** Test the property 'id' */
+ @Test
+ void idTest() {
+ // TODO: test id
+ }
+
+ /** Test the property 'label' */
+ @Test
+ void labelTest() {
+ // TODO: test label
+ }
+
+ /** Test the property 'color' */
+ @Test
+ void colorTest() {
+ // TODO: test color
+ }
+
+ /** Test the property 'description' */
+ @Test
+ void descriptionTest() {
+ // TODO: test description
+ }
+
+ /** Test the property 'isProtected' */
+ @Test
+ void isProtectedTest() {
+ // TODO: test isProtected
+ }
+
+ /** Test the property 'pendingApprovalRequest' */
+ @Test
+ void pendingApprovalRequestTest() {
+ // TODO: test pendingApprovalRequest
+ }
+
+ /** Test the property 'pendingAttachment' */
+ @Test
+ void pendingAttachmentTest() {
+ // TODO: test pendingAttachment
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/ContactTest.java b/src/test/java/com/fireblocks/sdk/model/ContactTest.java
new file mode 100644
index 00000000..5fc8199c
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/ContactTest.java
@@ -0,0 +1,93 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for Contact */
+class ContactTest {
+ private final Contact model = new Contact();
+
+ /** Model tests for Contact */
+ @Test
+ void testContact() {
+ // TODO: test Contact
+ }
+
+ /** Test the property 'id' */
+ @Test
+ void idTest() {
+ // TODO: test id
+ }
+
+ /** Test the property 'name' */
+ @Test
+ void nameTest() {
+ // TODO: test name
+ }
+
+ /** Test the property 'type' */
+ @Test
+ void typeTest() {
+ // TODO: test type
+ }
+
+ /** Test the property 'accessControl' */
+ @Test
+ void accessControlTest() {
+ // TODO: test accessControl
+ }
+
+ /** Test the property 'notes' */
+ @Test
+ void notesTest() {
+ // TODO: test notes
+ }
+
+ /** Test the property 'externalRefId' */
+ @Test
+ void externalRefIdTest() {
+ // TODO: test externalRefId
+ }
+
+ /** Test the property 'containerId' */
+ @Test
+ void containerIdTest() {
+ // TODO: test containerId
+ }
+
+ /** Test the property 'updatedAt' */
+ @Test
+ void updatedAtTest() {
+ // TODO: test updatedAt
+ }
+
+ /** Test the property 'archivedAt' */
+ @Test
+ void archivedAtTest() {
+ // TODO: test archivedAt
+ }
+
+ /** Test the property 'tags' */
+ @Test
+ void tagsTest() {
+ // TODO: test tags
+ }
+
+ /** Test the property 'pendingApprovalRequest' */
+ @Test
+ void pendingApprovalRequestTest() {
+ // TODO: test pendingApprovalRequest
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/ContactsPagedResponseTest.java b/src/test/java/com/fireblocks/sdk/model/ContactsPagedResponseTest.java
new file mode 100644
index 00000000..088fb5fa
--- /dev/null
+++ b/src/test/java/com/fireblocks/sdk/model/ContactsPagedResponseTest.java
@@ -0,0 +1,45 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.model;
+
+
+import org.junit.jupiter.api.Test;
+
+/** Model tests for ContactsPagedResponse */
+class ContactsPagedResponseTest {
+ private final ContactsPagedResponse model = new ContactsPagedResponse();
+
+ /** Model tests for ContactsPagedResponse */
+ @Test
+ void testContactsPagedResponse() {
+ // TODO: test ContactsPagedResponse
+ }
+
+ /** Test the property 'data' */
+ @Test
+ void dataTest() {
+ // TODO: test data
+ }
+
+ /** Test the property 'next' */
+ @Test
+ void nextTest() {
+ // TODO: test next
+ }
+
+ /** Test the property 'total' */
+ @Test
+ void totalTest() {
+ // TODO: test total
+ }
+}
diff --git a/src/test/java/com/fireblocks/sdk/model/SecurityFindingDetailedTest.java b/src/test/java/com/fireblocks/sdk/model/SecurityFindingDetailedTest.java
index 36ea122c..f4223001 100644
--- a/src/test/java/com/fireblocks/sdk/model/SecurityFindingDetailedTest.java
+++ b/src/test/java/com/fireblocks/sdk/model/SecurityFindingDetailedTest.java
@@ -31,12 +31,6 @@ void idTest() {
// TODO: test id
}
- /** Test the property 'type' */
- @Test
- void typeTest() {
- // TODO: test type
- }
-
/** Test the property 'status' */
@Test
void statusTest() {
diff --git a/src/test/java/com/fireblocks/sdk/model/SecurityFindingTest.java b/src/test/java/com/fireblocks/sdk/model/SecurityFindingTest.java
index 886c0cc1..b0786817 100644
--- a/src/test/java/com/fireblocks/sdk/model/SecurityFindingTest.java
+++ b/src/test/java/com/fireblocks/sdk/model/SecurityFindingTest.java
@@ -31,12 +31,6 @@ void idTest() {
// TODO: test id
}
- /** Test the property 'type' */
- @Test
- void typeTest() {
- // TODO: test type
- }
-
/** Test the property 'status' */
@Test
void statusTest() {
diff --git a/src/test/java/com/fireblocks/sdk/model/TransactionRequestTest.java b/src/test/java/com/fireblocks/sdk/model/TransactionRequestTest.java
index a0271319..bdc4ba0b 100644
--- a/src/test/java/com/fireblocks/sdk/model/TransactionRequestTest.java
+++ b/src/test/java/com/fireblocks/sdk/model/TransactionRequestTest.java
@@ -43,6 +43,12 @@ void externalTxIdTest() {
// TODO: test externalTxId
}
+ /** Test the property 'feeCurrency' */
+ @Test
+ void feeCurrencyTest() {
+ // TODO: test feeCurrency
+ }
+
/** Test the property 'assetId' */
@Test
void assetIdTest() {