From 90b75e88e6abe571a0a9f305abb95ba06fc50421 Mon Sep 17 00:00:00 2001 From: fireblocks_dx_team Date: Mon, 20 Apr 2026 14:00:08 +0000 Subject: [PATCH] Generated SDK #9605 --- .openapi-generator/FILES | 156 +- CHANGELOG.md | 239 - README.md | 76 +- api/openapi.yaml | 4368 +++++++++++++++-- build.gradle | 2 +- docs/AccountBasedAccessProvider.md | 3 +- docs/AccountBasedAccessProviderInfo.md | 2 +- docs/AccountBasedProviderDetails.md | 19 - docs/ActionRecord.md | 44 + docs/AddressRegistryError.md | 2 +- docs/AddressRegistryLegalEntityLegacy.md | 16 - docs/Apy.md | 15 + docs/AttachDetachUtxoLabelsRequest.md | 15 + docs/AttachDetachUtxoLabelsResponse.md | 13 + docs/ByorkConfigResponse.md | 20 + docs/ByorkSetTimeoutsRequest.md | 15 + docs/ByorkSetVerdictEnum.md | 13 + docs/ByorkTimeoutRange.md | 15 + docs/ByorkVerdictEnum.md | 15 + docs/ByorkVerdictRequest.md | 14 + docs/ByorkVerdictResponse.md | 14 + docs/ByorkVerdictResponseStatusEnum.md | 17 + docs/ComplianceApi.md | 503 +- docs/CreateEarnActionRequest.md | 25 + docs/CreateEarnActionResponse.md | 26 + docs/DirectAccessProvider.md | 1 + docs/DirectProviderDetails.md | 21 - docs/EarnAsset.md | 16 + docs/EarnBetaApi.md | 657 +++ docs/EarnProvider.md | 28 + docs/Exposure.md | 15 + docs/FailureReason.md | 16 + docs/FlowDirection.md | 17 + docs/GetActionResponse.md | 41 + docs/GetActionsResponse.md | 16 + docs/GetByorkVerdictResponse.md | 15 + docs/GetOpportunitiesResponse.md | 16 + docs/GetPositionsResponse.md | 16 + docs/GetProvidersResponse.md | 16 + docs/GleifData.md | 3 +- docs/GleifOtherLegalEntityName.md | 14 + docs/IdentificationPolicyOverride.md | 17 + docs/ListLegalEntitiesResponse.md | 1 - docs/ListUtxosResponse.md | 14 + docs/ListVaultsForRegistrationResponse.md | 1 - docs/Manifest.md | 1 + docs/Opportunity.md | 45 + docs/ParticipantsIdentificationPolicy.md | 16 + ...icipantsIdentificationSupportedEndpoint.md | 15 + docs/Position2.md | 74 + docs/ResendByQueryRequest.md | 17 + docs/ResendByQueryResponse.md | 13 + docs/ScreeningPolicyAmount.md | 15 + ...Range.md => ScreeningPolicyAmountRange.md} | 2 +- ...Currency.md => ScreeningPolicyCurrency.md} | 2 +- docs/TRLinkAmount2.md | 15 - docs/TRLinkAssetFormat.md | 2 - docs/TRLinkMissingTrmRule2.md | 2 +- docs/TRLinkPostScreeningRule2.md | 2 +- docs/TRLinkPreScreeningRule2.md | 2 +- docs/TradingBetaApi.md | 10 +- docs/TradingProviderDetails.md | 37 - docs/TransactionRequest.md | 1 + docs/TransferPeerPathSubType.md | 2 + docs/TransferPeerPathType.md | 2 + docs/TransferRail.md | 14 +- docs/UtxoIdentifier.md | 16 + docs/UtxoInput.md | 14 + docs/UtxoInput2.md | 14 + docs/UtxoInputSelection.md | 16 + docs/UtxoManagementBetaApi.md | 210 + docs/UtxoOutput.md | 38 + docs/UtxoSelectionFilters.md | 21 + docs/UtxoSelectionParams.md | 15 + docs/WebhooksV2Api.md | 175 + pom.xml | 2 +- .../com/fireblocks/sdk/Configuration.java | 2 +- .../java/com/fireblocks/sdk/Fireblocks.java | 16 + .../com/fireblocks/sdk/api/ComplianceApi.java | 494 +- .../com/fireblocks/sdk/api/EarnBetaApi.java | 687 +++ .../fireblocks/sdk/api/TradingBetaApi.java | 25 +- .../sdk/api/UtxoManagementBetaApi.java | 358 ++ .../com/fireblocks/sdk/api/WebhooksV2Api.java | 167 + .../sdk/model/AccountBasedAccessProvider.java | 7 +- .../model/AccountBasedAccessProviderInfo.java | 2 +- .../model/AccountBasedProviderDetails.java | 412 -- .../fireblocks/sdk/model/ActionRecord.java | 429 ++ .../sdk/model/AddressRegistryError.java | 7 +- .../AddressRegistryLegalEntityLegacy.java | 238 - .../java/com/fireblocks/sdk/model/Apy.java | 215 + .../model/AttachDetachUtxoLabelsRequest.java | 289 ++ .../model/AttachDetachUtxoLabelsResponse.java | 163 + .../sdk/model/ByorkConfigResponse.java | 402 ++ .../sdk/model/ByorkSetTimeoutsRequest.java | 199 + .../sdk/model/ByorkSetVerdictEnum.java | 64 + .../sdk/model/ByorkTimeoutRange.java | 180 + .../sdk/model/ByorkVerdictEnum.java | 69 + .../sdk/model/ByorkVerdictRequest.java | 190 + .../sdk/model/ByorkVerdictResponse.java | 191 + .../model/ByorkVerdictResponseStatusEnum.java | 73 + .../sdk/model/CreateEarnActionRequest.java | 309 ++ .../sdk/model/CreateEarnActionResponse.java | 227 + .../sdk/model/DirectAccessProvider.java | 2 +- .../sdk/model/DirectProviderDetails.java | 479 -- .../com/fireblocks/sdk/model/EarnAsset.java | 258 + .../fireblocks/sdk/model/EarnProvider.java | 452 ++ .../com/fireblocks/sdk/model/Exposure.java | 219 + .../fireblocks/sdk/model/FailureReason.java | 18 +- .../fireblocks/sdk/model/FlowDirection.java | 68 + .../sdk/model/GetActionResponse.java | 617 +++ .../sdk/model/GetActionsResponse.java | 290 ++ .../sdk/model/GetByorkVerdictResponse.java | 192 + .../sdk/model/GetOpportunitiesResponse.java | 290 ++ .../sdk/model/GetPositionsResponse.java | 290 ++ .../sdk/model/GetProvidersResponse.java | 290 ++ .../com/fireblocks/sdk/model/GleifData.java | 82 +- .../sdk/model/GleifOtherLegalEntityName.java | 189 + .../model/IdentificationPolicyOverride.java | 283 ++ .../sdk/model/ListLegalEntitiesResponse.java | 45 +- .../sdk/model/ListUtxosResponse.java | 207 + .../ListVaultsForRegistrationResponse.java | 45 +- .../com/fireblocks/sdk/model/Manifest.java | 54 +- .../com/fireblocks/sdk/model/Opportunity.java | 776 +++ .../ParticipantsIdentificationPolicy.java | 325 ++ ...ipantsIdentificationSupportedEndpoint.java | 71 + .../com/fireblocks/sdk/model/Position2.java | 966 ++++ .../sdk/model/ResendByQueryRequest.java | 343 ++ .../sdk/model/ResendByQueryResponse.java | 140 + ...mount2.java => ScreeningPolicyAmount.java} | 48 +- ...e.java => ScreeningPolicyAmountRange.java} | 23 +- ...ency.java => ScreeningPolicyCurrency.java} | 10 +- .../sdk/model/TRLinkAssetFormat.java | 4 +- .../sdk/model/TRLinkMissingTrmRule2.java | 8 +- .../sdk/model/TRLinkPostScreeningRule2.java | 9 +- .../sdk/model/TRLinkPreScreeningRule2.java | 9 +- .../sdk/model/TradingProviderDetails.java | 333 -- .../sdk/model/TransactionRequest.java | 41 + .../sdk/model/TransferPeerPathSubType.java | 4 +- .../sdk/model/TransferPeerPathType.java | 2 + .../fireblocks/sdk/model/TransferRail.java | 35 +- .../fireblocks/sdk/model/UtxoIdentifier.java | 222 + .../com/fireblocks/sdk/model/UtxoInput.java | 186 + .../com/fireblocks/sdk/model/UtxoInput2.java | 177 + .../sdk/model/UtxoInputSelection.java | 276 ++ .../com/fireblocks/sdk/model/UtxoOutput.java | 782 +++ .../sdk/model/UtxoSelectionFilters.java | 475 ++ .../sdk/model/UtxoSelectionParams.java | 174 + .../com/fireblocks/sdk/FireblocksTest.java | 16 + .../fireblocks/sdk/api/ComplianceApiTest.java | 148 +- .../fireblocks/sdk/api/EarnBetaApiTest.java | 162 + .../sdk/api/TradingBetaApiTest.java | 11 +- .../sdk/api/UtxoManagementBetaApiTest.java | 100 + .../fireblocks/sdk/api/WebhooksV2ApiTest.java | 34 + .../AccountBasedProviderDetailsTest.java | 69 - .../sdk/model/ActionRecordTest.java | 63 + ...egalEntityLegacyTest.java => ApyTest.java} | 30 +- .../AttachDetachUtxoLabelsRequestTest.java | 45 + .../AttachDetachUtxoLabelsResponseTest.java | 33 + .../sdk/model/ByorkConfigResponseTest.java | 69 + .../model/ByorkSetTimeoutsRequestTest.java | 39 + .../sdk/model/ByorkSetVerdictEnumTest.java | 25 + .../sdk/model/ByorkTimeoutRangeTest.java | 39 + .../sdk/model/ByorkVerdictEnumTest.java | 25 + .../sdk/model/ByorkVerdictRequestTest.java | 39 + .../ByorkVerdictResponseStatusEnumTest.java | 25 + .../sdk/model/ByorkVerdictResponseTest.java | 39 + .../model/CreateEarnActionRequestTest.java | 51 + .../model/CreateEarnActionResponseTest.java | 39 + .../sdk/model/DirectProviderDetailsTest.java | 81 - .../fireblocks/sdk/model/EarnAssetTest.java | 51 + .../sdk/model/EarnProviderTest.java | 69 + .../fireblocks/sdk/model/ExposureTest.java | 45 + ...rrencyTest.java => FlowDirectionTest.java} | 10 +- .../sdk/model/GetActionResponseTest.java | 87 + .../sdk/model/GetActionsResponseTest.java | 51 + .../model/GetByorkVerdictResponseTest.java | 39 + .../model/GetOpportunitiesResponseTest.java | 51 + .../sdk/model/GetPositionsResponseTest.java | 51 + .../sdk/model/GetProvidersResponseTest.java | 51 + .../fireblocks/sdk/model/GleifDataTest.java | 6 + .../model/GleifOtherLegalEntityNameTest.java | 39 + .../IdentificationPolicyOverrideTest.java | 51 + .../model/ListLegalEntitiesResponseTest.java | 6 - .../sdk/model/ListUtxosResponseTest.java | 39 + ...ListVaultsForRegistrationResponseTest.java | 6 - .../fireblocks/sdk/model/ManifestTest.java | 6 + .../fireblocks/sdk/model/OpportunityTest.java | 117 + .../ParticipantsIdentificationPolicyTest.java | 45 + ...tsIdentificationSupportedEndpointTest.java | 25 + .../fireblocks/sdk/model/Position2Test.java | 129 + .../sdk/model/ResendByQueryRequestTest.java | 57 + .../sdk/model/ResendByQueryResponseTest.java | 33 + ...va => ScreeningPolicyAmountRangeTest.java} | 12 +- ...st.java => ScreeningPolicyAmountTest.java} | 12 +- .../model/ScreeningPolicyCurrencyTest.java | 25 + .../sdk/model/TradingProviderDetailsTest.java | 93 - .../sdk/model/TransactionRequestTest.java | 6 + .../sdk/model/UtxoIdentifierTest.java | 45 + .../fireblocks/sdk/model/UtxoInput2Test.java | 39 + .../sdk/model/UtxoInputSelectionTest.java | 45 + .../fireblocks/sdk/model/UtxoInputTest.java | 39 + .../fireblocks/sdk/model/UtxoOutputTest.java | 117 + .../sdk/model/UtxoSelectionFiltersTest.java | 75 + .../sdk/model/UtxoSelectionParamsTest.java | 39 + 204 files changed, 22513 insertions(+), 2902 deletions(-) delete mode 100644 CHANGELOG.md delete mode 100644 docs/AccountBasedProviderDetails.md create mode 100644 docs/ActionRecord.md delete mode 100644 docs/AddressRegistryLegalEntityLegacy.md create mode 100644 docs/Apy.md create mode 100644 docs/AttachDetachUtxoLabelsRequest.md create mode 100644 docs/AttachDetachUtxoLabelsResponse.md create mode 100644 docs/ByorkConfigResponse.md create mode 100644 docs/ByorkSetTimeoutsRequest.md create mode 100644 docs/ByorkSetVerdictEnum.md create mode 100644 docs/ByorkTimeoutRange.md create mode 100644 docs/ByorkVerdictEnum.md create mode 100644 docs/ByorkVerdictRequest.md create mode 100644 docs/ByorkVerdictResponse.md create mode 100644 docs/ByorkVerdictResponseStatusEnum.md create mode 100644 docs/CreateEarnActionRequest.md create mode 100644 docs/CreateEarnActionResponse.md delete mode 100644 docs/DirectProviderDetails.md create mode 100644 docs/EarnAsset.md create mode 100644 docs/EarnBetaApi.md create mode 100644 docs/EarnProvider.md create mode 100644 docs/Exposure.md create mode 100644 docs/FlowDirection.md create mode 100644 docs/GetActionResponse.md create mode 100644 docs/GetActionsResponse.md create mode 100644 docs/GetByorkVerdictResponse.md create mode 100644 docs/GetOpportunitiesResponse.md create mode 100644 docs/GetPositionsResponse.md create mode 100644 docs/GetProvidersResponse.md create mode 100644 docs/GleifOtherLegalEntityName.md create mode 100644 docs/IdentificationPolicyOverride.md create mode 100644 docs/ListUtxosResponse.md create mode 100644 docs/Opportunity.md create mode 100644 docs/ParticipantsIdentificationPolicy.md create mode 100644 docs/ParticipantsIdentificationSupportedEndpoint.md create mode 100644 docs/Position2.md create mode 100644 docs/ResendByQueryRequest.md create mode 100644 docs/ResendByQueryResponse.md create mode 100644 docs/ScreeningPolicyAmount.md rename docs/{TRLinkAmountRange.md => ScreeningPolicyAmountRange.md} (91%) rename docs/{TRLinkCurrency.md => ScreeningPolicyCurrency.md} (73%) delete mode 100644 docs/TRLinkAmount2.md delete mode 100644 docs/TradingProviderDetails.md create mode 100644 docs/UtxoIdentifier.md create mode 100644 docs/UtxoInput.md create mode 100644 docs/UtxoInput2.md create mode 100644 docs/UtxoInputSelection.md create mode 100644 docs/UtxoManagementBetaApi.md create mode 100644 docs/UtxoOutput.md create mode 100644 docs/UtxoSelectionFilters.md create mode 100644 docs/UtxoSelectionParams.md create mode 100644 src/main/java/com/fireblocks/sdk/api/EarnBetaApi.java create mode 100644 src/main/java/com/fireblocks/sdk/api/UtxoManagementBetaApi.java delete mode 100644 src/main/java/com/fireblocks/sdk/model/AccountBasedProviderDetails.java create mode 100644 src/main/java/com/fireblocks/sdk/model/ActionRecord.java delete mode 100644 src/main/java/com/fireblocks/sdk/model/AddressRegistryLegalEntityLegacy.java create mode 100644 src/main/java/com/fireblocks/sdk/model/Apy.java create mode 100644 src/main/java/com/fireblocks/sdk/model/AttachDetachUtxoLabelsRequest.java create mode 100644 src/main/java/com/fireblocks/sdk/model/AttachDetachUtxoLabelsResponse.java create mode 100644 src/main/java/com/fireblocks/sdk/model/ByorkConfigResponse.java create mode 100644 src/main/java/com/fireblocks/sdk/model/ByorkSetTimeoutsRequest.java create mode 100644 src/main/java/com/fireblocks/sdk/model/ByorkSetVerdictEnum.java create mode 100644 src/main/java/com/fireblocks/sdk/model/ByorkTimeoutRange.java create mode 100644 src/main/java/com/fireblocks/sdk/model/ByorkVerdictEnum.java create mode 100644 src/main/java/com/fireblocks/sdk/model/ByorkVerdictRequest.java create mode 100644 src/main/java/com/fireblocks/sdk/model/ByorkVerdictResponse.java create mode 100644 src/main/java/com/fireblocks/sdk/model/ByorkVerdictResponseStatusEnum.java create mode 100644 src/main/java/com/fireblocks/sdk/model/CreateEarnActionRequest.java create mode 100644 src/main/java/com/fireblocks/sdk/model/CreateEarnActionResponse.java delete mode 100644 src/main/java/com/fireblocks/sdk/model/DirectProviderDetails.java create mode 100644 src/main/java/com/fireblocks/sdk/model/EarnAsset.java create mode 100644 src/main/java/com/fireblocks/sdk/model/EarnProvider.java create mode 100644 src/main/java/com/fireblocks/sdk/model/Exposure.java create mode 100644 src/main/java/com/fireblocks/sdk/model/FlowDirection.java create mode 100644 src/main/java/com/fireblocks/sdk/model/GetActionResponse.java create mode 100644 src/main/java/com/fireblocks/sdk/model/GetActionsResponse.java create mode 100644 src/main/java/com/fireblocks/sdk/model/GetByorkVerdictResponse.java create mode 100644 src/main/java/com/fireblocks/sdk/model/GetOpportunitiesResponse.java create mode 100644 src/main/java/com/fireblocks/sdk/model/GetPositionsResponse.java create mode 100644 src/main/java/com/fireblocks/sdk/model/GetProvidersResponse.java create mode 100644 src/main/java/com/fireblocks/sdk/model/GleifOtherLegalEntityName.java create mode 100644 src/main/java/com/fireblocks/sdk/model/IdentificationPolicyOverride.java create mode 100644 src/main/java/com/fireblocks/sdk/model/ListUtxosResponse.java create mode 100644 src/main/java/com/fireblocks/sdk/model/Opportunity.java create mode 100644 src/main/java/com/fireblocks/sdk/model/ParticipantsIdentificationPolicy.java create mode 100644 src/main/java/com/fireblocks/sdk/model/ParticipantsIdentificationSupportedEndpoint.java create mode 100644 src/main/java/com/fireblocks/sdk/model/Position2.java create mode 100644 src/main/java/com/fireblocks/sdk/model/ResendByQueryRequest.java create mode 100644 src/main/java/com/fireblocks/sdk/model/ResendByQueryResponse.java rename src/main/java/com/fireblocks/sdk/model/{TRLinkAmount2.java => ScreeningPolicyAmount.java} (76%) rename src/main/java/com/fireblocks/sdk/model/{TRLinkAmountRange.java => ScreeningPolicyAmountRange.java} (86%) rename src/main/java/com/fireblocks/sdk/model/{TRLinkCurrency.java => ScreeningPolicyCurrency.java} (85%) delete mode 100644 src/main/java/com/fireblocks/sdk/model/TradingProviderDetails.java create mode 100644 src/main/java/com/fireblocks/sdk/model/UtxoIdentifier.java create mode 100644 src/main/java/com/fireblocks/sdk/model/UtxoInput.java create mode 100644 src/main/java/com/fireblocks/sdk/model/UtxoInput2.java create mode 100644 src/main/java/com/fireblocks/sdk/model/UtxoInputSelection.java create mode 100644 src/main/java/com/fireblocks/sdk/model/UtxoOutput.java create mode 100644 src/main/java/com/fireblocks/sdk/model/UtxoSelectionFilters.java create mode 100644 src/main/java/com/fireblocks/sdk/model/UtxoSelectionParams.java create mode 100644 src/test/java/com/fireblocks/sdk/api/EarnBetaApiTest.java create mode 100644 src/test/java/com/fireblocks/sdk/api/UtxoManagementBetaApiTest.java delete mode 100644 src/test/java/com/fireblocks/sdk/model/AccountBasedProviderDetailsTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/ActionRecordTest.java rename src/test/java/com/fireblocks/sdk/model/{AddressRegistryLegalEntityLegacyTest.java => ApyTest.java} (52%) create mode 100644 src/test/java/com/fireblocks/sdk/model/AttachDetachUtxoLabelsRequestTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/AttachDetachUtxoLabelsResponseTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/ByorkConfigResponseTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/ByorkSetTimeoutsRequestTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/ByorkSetVerdictEnumTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/ByorkTimeoutRangeTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/ByorkVerdictEnumTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/ByorkVerdictRequestTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/ByorkVerdictResponseStatusEnumTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/ByorkVerdictResponseTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/CreateEarnActionRequestTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/CreateEarnActionResponseTest.java delete mode 100644 src/test/java/com/fireblocks/sdk/model/DirectProviderDetailsTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/EarnAssetTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/EarnProviderTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/ExposureTest.java rename src/test/java/com/fireblocks/sdk/model/{TRLinkCurrencyTest.java => FlowDirectionTest.java} (79%) create mode 100644 src/test/java/com/fireblocks/sdk/model/GetActionResponseTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/GetActionsResponseTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/GetByorkVerdictResponseTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/GetOpportunitiesResponseTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/GetPositionsResponseTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/GetProvidersResponseTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/GleifOtherLegalEntityNameTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/IdentificationPolicyOverrideTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/ListUtxosResponseTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/OpportunityTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/ParticipantsIdentificationPolicyTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/ParticipantsIdentificationSupportedEndpointTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/Position2Test.java create mode 100644 src/test/java/com/fireblocks/sdk/model/ResendByQueryRequestTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/ResendByQueryResponseTest.java rename src/test/java/com/fireblocks/sdk/model/{TRLinkAmountRangeTest.java => ScreeningPolicyAmountRangeTest.java} (73%) rename src/test/java/com/fireblocks/sdk/model/{TRLinkAmount2Test.java => ScreeningPolicyAmountTest.java} (76%) create mode 100644 src/test/java/com/fireblocks/sdk/model/ScreeningPolicyCurrencyTest.java delete mode 100644 src/test/java/com/fireblocks/sdk/model/TradingProviderDetailsTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/UtxoIdentifierTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/UtxoInput2Test.java create mode 100644 src/test/java/com/fireblocks/sdk/model/UtxoInputSelectionTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/UtxoInputTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/UtxoOutputTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/UtxoSelectionFiltersTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/UtxoSelectionParamsTest.java diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES index 20d520d2..bf883168 100644 --- a/.openapi-generator/FILES +++ b/.openapi-generator/FILES @@ -20,7 +20,6 @@ docs/AccountAccess.md docs/AccountBase.md docs/AccountBasedAccessProvider.md docs/AccountBasedAccessProviderInfo.md -docs/AccountBasedProviderDetails.md docs/AccountConfig.md docs/AccountHolderDetails.md docs/AccountIdentifier.md @@ -31,6 +30,7 @@ docs/AchAccountType.md docs/AchAddress.md docs/AchDestination.md docs/AchPaymentInfo.md +docs/ActionRecord.md docs/AdapterProcessingResult.md docs/AddAbiRequestDto.md docs/AddAssetToExternalWalletRequest.md @@ -52,7 +52,6 @@ docs/AddressRegistryAddVaultOptOutsResponse.md docs/AddressRegistryError.md docs/AddressRegistryGetVaultOptOutResponse.md docs/AddressRegistryLegalEntity.md -docs/AddressRegistryLegalEntityLegacy.md docs/AddressRegistryListVaultOptOutsResponse.md docs/AddressRegistryRemoveAllVaultOptOutsResponse.md docs/AddressRegistryRemoveVaultOptOutResponse.md @@ -85,6 +84,7 @@ docs/ApiUserApi.md docs/ApprovalRequest.md docs/ApproversConfig.md docs/ApproversConfigApprovalGroupsInner.md +docs/Apy.md docs/Asset.md docs/AssetAlreadyExistHttpError.md docs/AssetAmount.md @@ -116,6 +116,8 @@ docs/AssetTypesConfigInner.md docs/AssetWallet.md docs/AssignVaultsToLegalEntityRequest.md docs/AssignVaultsToLegalEntityResponse.md +docs/AttachDetachUtxoLabelsRequest.md +docs/AttachDetachUtxoLabelsResponse.md docs/AuditLogData.md docs/AuditLogsApi.md docs/AuditorData.md @@ -140,6 +142,14 @@ docs/BlockchainsAssetsApi.md docs/BpsFee.md docs/BusinessEntityTypeEnum.md docs/BusinessIdentification.md +docs/ByorkConfigResponse.md +docs/ByorkSetTimeoutsRequest.md +docs/ByorkSetVerdictEnum.md +docs/ByorkTimeoutRange.md +docs/ByorkVerdictEnum.md +docs/ByorkVerdictRequest.md +docs/ByorkVerdictResponse.md +docs/ByorkVerdictResponseStatusEnum.md docs/CallbackHandler.md docs/CallbackHandlerRequest.md docs/CancelTransactionResponse.md @@ -246,6 +256,8 @@ docs/CreateConsoleUser.md docs/CreateContractRequest.md docs/CreateConversionConfigOperationRequest.md docs/CreateDisbursementConfigOperationRequest.md +docs/CreateEarnActionRequest.md +docs/CreateEarnActionResponse.md docs/CreateInternalTransferRequest.md docs/CreateInternalWalletAssetRequest.md docs/CreateMultichainTokenRequest.md @@ -302,7 +314,6 @@ docs/DestinationTransferPeerPathResponse.md docs/DirectAccess.md docs/DirectAccessProvider.md docs/DirectAccessProviderInfo.md -docs/DirectProviderDetails.md docs/DisbursementAmountInstruction.md docs/DisbursementConfigOperation.md docs/DisbursementInstruction.md @@ -327,6 +338,9 @@ docs/DropTransactionResponse.md docs/DvnConfig.md docs/DvnConfigWithConfirmations.md docs/EVMTokenCreateParamsDto.md +docs/EarnAsset.md +docs/EarnBetaApi.md +docs/EarnProvider.md docs/EditGasStationConfigurationResponse.md docs/EmbeddedWallet.md docs/EmbeddedWalletAccount.md @@ -378,6 +392,7 @@ docs/ExecutionStepError.md docs/ExecutionStepStatusEnum.md docs/ExecutionStepType.md docs/ExecutionTransferOperation.md +docs/Exposure.md docs/ExternalAccount.md docs/ExternalAccountLocalBankAfrica.md docs/ExternalAccountMobileMoney.md @@ -407,6 +422,7 @@ docs/FiatPaymentMetadata.md docs/FiatTransfer.md docs/FixedAmountTypeEnum.md docs/FixedFee.md +docs/FlowDirection.md docs/FreezeTransactionResponse.md docs/FunctionDoc.md docs/Funds.md @@ -417,7 +433,10 @@ docs/GasStationsApi.md docs/GasslessStandardConfigurations.md docs/GasslessStandardConfigurationsGaslessStandardConfigurationsValue.md docs/GetAPIUsersResponse.md +docs/GetActionResponse.md +docs/GetActionsResponse.md docs/GetAuditLogsResponse.md +docs/GetByorkVerdictResponse.md docs/GetConnectionsResponse.md docs/GetConsoleUsersResponse.md docs/GetDeployableAddressRequest.md @@ -430,22 +449,27 @@ docs/GetMaxBipIndexUsedResponse.md docs/GetMaxSpendableAmountResponse.md docs/GetMpcKeysResponse.md docs/GetNFTsResponse.md +docs/GetOpportunitiesResponse.md docs/GetOrdersResponse.md docs/GetOtaStatusResponse.md docs/GetOwnershipTokensResponse.md docs/GetPagedExchangeAccountsResponse.md docs/GetPagedExchangeAccountsResponsePaging.md +docs/GetPositionsResponse.md +docs/GetProvidersResponse.md docs/GetSigningKeyResponseDto.md docs/GetTransactionOperation.md docs/GetValidationKeyResponseDto.md docs/GetWhitelistIpAddressesResponse.md docs/GetWorkspaceStatusResponse.md docs/GleifData.md +docs/GleifOtherLegalEntityName.md docs/HttpContractDoesNotExistError.md docs/IbanAddress.md docs/IbanDestination.md docs/IbanPaymentInfo.md docs/Identification.md +docs/IdentificationPolicyOverride.md docs/IdlType.md docs/IndicativeQuoteEnum.md docs/IndicativeQuoteType.md @@ -505,6 +529,7 @@ docs/ListBlockchainsResponse.md docs/ListLegalEntitiesResponse.md docs/ListOwnedCollectionsResponse.md docs/ListOwnedTokensResponse.md +docs/ListUtxosResponse.md docs/ListVaultsForRegistrationResponse.md docs/LocalBankTransferAfricaAddress.md docs/LocalBankTransferAfricaDestination.md @@ -561,6 +586,7 @@ docs/OneTimeAddressAccount.md docs/OneTimeAddressPeerType.md docs/OneTimeAddressReference.md docs/OperationExecutionFailure.md +docs/Opportunity.md docs/OrderDetails.md docs/OrderExecutionStep.md docs/OrderSide.md @@ -579,6 +605,8 @@ docs/Parameter.md docs/ParameterWithValue.md docs/ParticipantRelationshipType.md docs/ParticipantsIdentification.md +docs/ParticipantsIdentificationPolicy.md +docs/ParticipantsIdentificationSupportedEndpoint.md docs/PayeeAccount.md docs/PayeeAccountResponse.md docs/PayeeAccountType.md @@ -629,6 +657,7 @@ docs/PolicyValidation.md docs/PolicyVerdictActionEnum.md docs/PolicyVerdictActionEnum2.md docs/Position.md +docs/Position2.md docs/PostalAddress.md docs/PreScreening.md docs/PrefundedSettlement.md @@ -671,6 +700,8 @@ docs/RenameConnectedAccountRequest.md docs/RenameConnectedAccountResponse.md docs/RenameCosigner.md docs/RenameVaultAccountResponse.md +docs/ResendByQueryRequest.md +docs/ResendByQueryResponse.md docs/ResendFailedNotificationsJobStatusResponse.md docs/ResendFailedNotificationsRequest.md docs/ResendFailedNotificationsResponse.md @@ -701,6 +732,9 @@ docs/ScreeningOperationExecution.md docs/ScreeningOperationExecutionOutput.md docs/ScreeningOperationFailure.md docs/ScreeningOperationType.md +docs/ScreeningPolicyAmount.md +docs/ScreeningPolicyAmountRange.md +docs/ScreeningPolicyCurrency.md docs/ScreeningPolicyResponse.md docs/ScreeningProviderRulesConfigurationResponse.md docs/ScreeningTRLinkAmount.md @@ -810,8 +844,6 @@ docs/SwiftDestination.md docs/SystemMessageInfo.md docs/TRLinkAPIPagedResponse.md docs/TRLinkAmount.md -docs/TRLinkAmount2.md -docs/TRLinkAmountRange.md docs/TRLinkAssessTravelRuleRequest.md docs/TRLinkAssessTravelRuleResponse.md docs/TRLinkAssessmentDecision.md @@ -824,7 +856,6 @@ docs/TRLinkConnectIntegrationRequest.md docs/TRLinkCreateCustomerRequest.md docs/TRLinkCreateIntegrationRequest.md docs/TRLinkCreateTrmRequest.md -docs/TRLinkCurrency.md docs/TRLinkCustomerIntegrationResponse.md docs/TRLinkCustomerResponse.md docs/TRLinkDestinationTransferPeerPath.md @@ -920,7 +951,6 @@ docs/TradingAccountType.md docs/TradingBetaApi.md docs/TradingErrorSchema.md docs/TradingProvider.md -docs/TradingProviderDetails.md docs/Transaction.md docs/TransactionDirection.md docs/TransactionFee.md @@ -1034,6 +1064,14 @@ docs/UserRole.md docs/UserStatus.md docs/UserType.md docs/UsersApi.md +docs/UtxoIdentifier.md +docs/UtxoInput.md +docs/UtxoInput2.md +docs/UtxoInputSelection.md +docs/UtxoManagementBetaApi.md +docs/UtxoOutput.md +docs/UtxoSelectionFilters.md +docs/UtxoSelectionParams.md docs/ValidateAddressResponse.md docs/ValidateLayerZeroChannelResponse.md docs/ValidationKeyDto.md @@ -1114,6 +1152,7 @@ src/main/java/com/fireblocks/sdk/api/ContractTemplatesApi.java src/main/java/com/fireblocks/sdk/api/ContractsApi.java src/main/java/com/fireblocks/sdk/api/CosignersBetaApi.java src/main/java/com/fireblocks/sdk/api/DeployedContractsApi.java +src/main/java/com/fireblocks/sdk/api/EarnBetaApi.java src/main/java/com/fireblocks/sdk/api/EmbeddedWalletsApi.java src/main/java/com/fireblocks/sdk/api/ExchangeAccountsApi.java src/main/java/com/fireblocks/sdk/api/ExternalWalletsApi.java @@ -1141,6 +1180,7 @@ src/main/java/com/fireblocks/sdk/api/TransactionsApi.java src/main/java/com/fireblocks/sdk/api/TravelRuleApi.java src/main/java/com/fireblocks/sdk/api/UserGroupsBetaApi.java src/main/java/com/fireblocks/sdk/api/UsersApi.java +src/main/java/com/fireblocks/sdk/api/UtxoManagementBetaApi.java src/main/java/com/fireblocks/sdk/api/VaultsApi.java src/main/java/com/fireblocks/sdk/api/Web3ConnectionsApi.java src/main/java/com/fireblocks/sdk/api/WebhooksApi.java @@ -1161,7 +1201,6 @@ src/main/java/com/fireblocks/sdk/model/AccountAccess.java src/main/java/com/fireblocks/sdk/model/AccountBase.java src/main/java/com/fireblocks/sdk/model/AccountBasedAccessProvider.java src/main/java/com/fireblocks/sdk/model/AccountBasedAccessProviderInfo.java -src/main/java/com/fireblocks/sdk/model/AccountBasedProviderDetails.java src/main/java/com/fireblocks/sdk/model/AccountConfig.java src/main/java/com/fireblocks/sdk/model/AccountHolderDetails.java src/main/java/com/fireblocks/sdk/model/AccountIdentifier.java @@ -1172,6 +1211,7 @@ src/main/java/com/fireblocks/sdk/model/AchAccountType.java src/main/java/com/fireblocks/sdk/model/AchAddress.java src/main/java/com/fireblocks/sdk/model/AchDestination.java src/main/java/com/fireblocks/sdk/model/AchPaymentInfo.java +src/main/java/com/fireblocks/sdk/model/ActionRecord.java src/main/java/com/fireblocks/sdk/model/AdapterProcessingResult.java src/main/java/com/fireblocks/sdk/model/AddAbiRequestDto.java src/main/java/com/fireblocks/sdk/model/AddAssetToExternalWalletRequest.java @@ -1193,7 +1233,6 @@ src/main/java/com/fireblocks/sdk/model/AddressRegistryAddVaultOptOutsResponse.ja src/main/java/com/fireblocks/sdk/model/AddressRegistryError.java src/main/java/com/fireblocks/sdk/model/AddressRegistryGetVaultOptOutResponse.java src/main/java/com/fireblocks/sdk/model/AddressRegistryLegalEntity.java -src/main/java/com/fireblocks/sdk/model/AddressRegistryLegalEntityLegacy.java src/main/java/com/fireblocks/sdk/model/AddressRegistryListVaultOptOutsResponse.java src/main/java/com/fireblocks/sdk/model/AddressRegistryRemoveAllVaultOptOutsResponse.java src/main/java/com/fireblocks/sdk/model/AddressRegistryRemoveVaultOptOutResponse.java @@ -1225,6 +1264,7 @@ src/main/java/com/fireblocks/sdk/model/ApiKeysPaginatedResponse.java src/main/java/com/fireblocks/sdk/model/ApprovalRequest.java src/main/java/com/fireblocks/sdk/model/ApproversConfig.java src/main/java/com/fireblocks/sdk/model/ApproversConfigApprovalGroupsInner.java +src/main/java/com/fireblocks/sdk/model/Apy.java src/main/java/com/fireblocks/sdk/model/Asset.java src/main/java/com/fireblocks/sdk/model/AssetAlreadyExistHttpError.java src/main/java/com/fireblocks/sdk/model/AssetAmount.java @@ -1256,6 +1296,8 @@ src/main/java/com/fireblocks/sdk/model/AssetTypesConfigInner.java src/main/java/com/fireblocks/sdk/model/AssetWallet.java src/main/java/com/fireblocks/sdk/model/AssignVaultsToLegalEntityRequest.java src/main/java/com/fireblocks/sdk/model/AssignVaultsToLegalEntityResponse.java +src/main/java/com/fireblocks/sdk/model/AttachDetachUtxoLabelsRequest.java +src/main/java/com/fireblocks/sdk/model/AttachDetachUtxoLabelsResponse.java src/main/java/com/fireblocks/sdk/model/AuditLogData.java src/main/java/com/fireblocks/sdk/model/AuditorData.java src/main/java/com/fireblocks/sdk/model/AuthorizationGroups.java @@ -1278,6 +1320,14 @@ src/main/java/com/fireblocks/sdk/model/BlockchainTransfer.java src/main/java/com/fireblocks/sdk/model/BpsFee.java src/main/java/com/fireblocks/sdk/model/BusinessEntityTypeEnum.java src/main/java/com/fireblocks/sdk/model/BusinessIdentification.java +src/main/java/com/fireblocks/sdk/model/ByorkConfigResponse.java +src/main/java/com/fireblocks/sdk/model/ByorkSetTimeoutsRequest.java +src/main/java/com/fireblocks/sdk/model/ByorkSetVerdictEnum.java +src/main/java/com/fireblocks/sdk/model/ByorkTimeoutRange.java +src/main/java/com/fireblocks/sdk/model/ByorkVerdictEnum.java +src/main/java/com/fireblocks/sdk/model/ByorkVerdictRequest.java +src/main/java/com/fireblocks/sdk/model/ByorkVerdictResponse.java +src/main/java/com/fireblocks/sdk/model/ByorkVerdictResponseStatusEnum.java src/main/java/com/fireblocks/sdk/model/CallbackHandler.java src/main/java/com/fireblocks/sdk/model/CallbackHandlerRequest.java src/main/java/com/fireblocks/sdk/model/CancelTransactionResponse.java @@ -1376,6 +1426,8 @@ src/main/java/com/fireblocks/sdk/model/CreateConsoleUser.java src/main/java/com/fireblocks/sdk/model/CreateContractRequest.java src/main/java/com/fireblocks/sdk/model/CreateConversionConfigOperationRequest.java src/main/java/com/fireblocks/sdk/model/CreateDisbursementConfigOperationRequest.java +src/main/java/com/fireblocks/sdk/model/CreateEarnActionRequest.java +src/main/java/com/fireblocks/sdk/model/CreateEarnActionResponse.java src/main/java/com/fireblocks/sdk/model/CreateInternalTransferRequest.java src/main/java/com/fireblocks/sdk/model/CreateInternalWalletAssetRequest.java src/main/java/com/fireblocks/sdk/model/CreateMultichainTokenRequest.java @@ -1431,7 +1483,6 @@ src/main/java/com/fireblocks/sdk/model/DestinationTransferPeerPathResponse.java src/main/java/com/fireblocks/sdk/model/DirectAccess.java src/main/java/com/fireblocks/sdk/model/DirectAccessProvider.java src/main/java/com/fireblocks/sdk/model/DirectAccessProviderInfo.java -src/main/java/com/fireblocks/sdk/model/DirectProviderDetails.java src/main/java/com/fireblocks/sdk/model/DisbursementAmountInstruction.java src/main/java/com/fireblocks/sdk/model/DisbursementConfigOperation.java src/main/java/com/fireblocks/sdk/model/DisbursementInstruction.java @@ -1456,6 +1507,8 @@ src/main/java/com/fireblocks/sdk/model/DropTransactionResponse.java src/main/java/com/fireblocks/sdk/model/DvnConfig.java src/main/java/com/fireblocks/sdk/model/DvnConfigWithConfirmations.java src/main/java/com/fireblocks/sdk/model/EVMTokenCreateParamsDto.java +src/main/java/com/fireblocks/sdk/model/EarnAsset.java +src/main/java/com/fireblocks/sdk/model/EarnProvider.java src/main/java/com/fireblocks/sdk/model/EditGasStationConfigurationResponse.java src/main/java/com/fireblocks/sdk/model/EmbeddedWallet.java src/main/java/com/fireblocks/sdk/model/EmbeddedWalletAccount.java @@ -1505,6 +1558,7 @@ src/main/java/com/fireblocks/sdk/model/ExecutionStepError.java src/main/java/com/fireblocks/sdk/model/ExecutionStepStatusEnum.java src/main/java/com/fireblocks/sdk/model/ExecutionStepType.java src/main/java/com/fireblocks/sdk/model/ExecutionTransferOperation.java +src/main/java/com/fireblocks/sdk/model/Exposure.java src/main/java/com/fireblocks/sdk/model/ExternalAccount.java src/main/java/com/fireblocks/sdk/model/ExternalAccountLocalBankAfrica.java src/main/java/com/fireblocks/sdk/model/ExternalAccountMobileMoney.java @@ -1532,6 +1586,7 @@ src/main/java/com/fireblocks/sdk/model/FiatPaymentMetadata.java src/main/java/com/fireblocks/sdk/model/FiatTransfer.java src/main/java/com/fireblocks/sdk/model/FixedAmountTypeEnum.java src/main/java/com/fireblocks/sdk/model/FixedFee.java +src/main/java/com/fireblocks/sdk/model/FlowDirection.java src/main/java/com/fireblocks/sdk/model/FreezeTransactionResponse.java src/main/java/com/fireblocks/sdk/model/FunctionDoc.java src/main/java/com/fireblocks/sdk/model/Funds.java @@ -1541,7 +1596,10 @@ src/main/java/com/fireblocks/sdk/model/GasStationPropertiesResponse.java src/main/java/com/fireblocks/sdk/model/GasslessStandardConfigurations.java src/main/java/com/fireblocks/sdk/model/GasslessStandardConfigurationsGaslessStandardConfigurationsValue.java src/main/java/com/fireblocks/sdk/model/GetAPIUsersResponse.java +src/main/java/com/fireblocks/sdk/model/GetActionResponse.java +src/main/java/com/fireblocks/sdk/model/GetActionsResponse.java src/main/java/com/fireblocks/sdk/model/GetAuditLogsResponse.java +src/main/java/com/fireblocks/sdk/model/GetByorkVerdictResponse.java src/main/java/com/fireblocks/sdk/model/GetConnectionsResponse.java src/main/java/com/fireblocks/sdk/model/GetConsoleUsersResponse.java src/main/java/com/fireblocks/sdk/model/GetDeployableAddressRequest.java @@ -1554,22 +1612,27 @@ src/main/java/com/fireblocks/sdk/model/GetMaxBipIndexUsedResponse.java src/main/java/com/fireblocks/sdk/model/GetMaxSpendableAmountResponse.java src/main/java/com/fireblocks/sdk/model/GetMpcKeysResponse.java src/main/java/com/fireblocks/sdk/model/GetNFTsResponse.java +src/main/java/com/fireblocks/sdk/model/GetOpportunitiesResponse.java src/main/java/com/fireblocks/sdk/model/GetOrdersResponse.java src/main/java/com/fireblocks/sdk/model/GetOtaStatusResponse.java src/main/java/com/fireblocks/sdk/model/GetOwnershipTokensResponse.java src/main/java/com/fireblocks/sdk/model/GetPagedExchangeAccountsResponse.java src/main/java/com/fireblocks/sdk/model/GetPagedExchangeAccountsResponsePaging.java +src/main/java/com/fireblocks/sdk/model/GetPositionsResponse.java +src/main/java/com/fireblocks/sdk/model/GetProvidersResponse.java src/main/java/com/fireblocks/sdk/model/GetSigningKeyResponseDto.java src/main/java/com/fireblocks/sdk/model/GetTransactionOperation.java src/main/java/com/fireblocks/sdk/model/GetValidationKeyResponseDto.java src/main/java/com/fireblocks/sdk/model/GetWhitelistIpAddressesResponse.java src/main/java/com/fireblocks/sdk/model/GetWorkspaceStatusResponse.java src/main/java/com/fireblocks/sdk/model/GleifData.java +src/main/java/com/fireblocks/sdk/model/GleifOtherLegalEntityName.java src/main/java/com/fireblocks/sdk/model/HttpContractDoesNotExistError.java src/main/java/com/fireblocks/sdk/model/IbanAddress.java src/main/java/com/fireblocks/sdk/model/IbanDestination.java src/main/java/com/fireblocks/sdk/model/IbanPaymentInfo.java src/main/java/com/fireblocks/sdk/model/Identification.java +src/main/java/com/fireblocks/sdk/model/IdentificationPolicyOverride.java src/main/java/com/fireblocks/sdk/model/IdlType.java src/main/java/com/fireblocks/sdk/model/IndicativeQuoteEnum.java src/main/java/com/fireblocks/sdk/model/IndicativeQuoteType.java @@ -1626,6 +1689,7 @@ src/main/java/com/fireblocks/sdk/model/ListBlockchainsResponse.java src/main/java/com/fireblocks/sdk/model/ListLegalEntitiesResponse.java src/main/java/com/fireblocks/sdk/model/ListOwnedCollectionsResponse.java src/main/java/com/fireblocks/sdk/model/ListOwnedTokensResponse.java +src/main/java/com/fireblocks/sdk/model/ListUtxosResponse.java src/main/java/com/fireblocks/sdk/model/ListVaultsForRegistrationResponse.java src/main/java/com/fireblocks/sdk/model/LocalBankTransferAfricaAddress.java src/main/java/com/fireblocks/sdk/model/LocalBankTransferAfricaDestination.java @@ -1678,6 +1742,7 @@ src/main/java/com/fireblocks/sdk/model/OneTimeAddressAccount.java src/main/java/com/fireblocks/sdk/model/OneTimeAddressPeerType.java src/main/java/com/fireblocks/sdk/model/OneTimeAddressReference.java src/main/java/com/fireblocks/sdk/model/OperationExecutionFailure.java +src/main/java/com/fireblocks/sdk/model/Opportunity.java src/main/java/com/fireblocks/sdk/model/OrderDetails.java src/main/java/com/fireblocks/sdk/model/OrderExecutionStep.java src/main/java/com/fireblocks/sdk/model/OrderSide.java @@ -1695,6 +1760,8 @@ src/main/java/com/fireblocks/sdk/model/Parameter.java src/main/java/com/fireblocks/sdk/model/ParameterWithValue.java src/main/java/com/fireblocks/sdk/model/ParticipantRelationshipType.java src/main/java/com/fireblocks/sdk/model/ParticipantsIdentification.java +src/main/java/com/fireblocks/sdk/model/ParticipantsIdentificationPolicy.java +src/main/java/com/fireblocks/sdk/model/ParticipantsIdentificationSupportedEndpoint.java src/main/java/com/fireblocks/sdk/model/PayeeAccount.java src/main/java/com/fireblocks/sdk/model/PayeeAccountResponse.java src/main/java/com/fireblocks/sdk/model/PayeeAccountType.java @@ -1742,6 +1809,7 @@ src/main/java/com/fireblocks/sdk/model/PolicyValidation.java src/main/java/com/fireblocks/sdk/model/PolicyVerdictActionEnum.java src/main/java/com/fireblocks/sdk/model/PolicyVerdictActionEnum2.java src/main/java/com/fireblocks/sdk/model/Position.java +src/main/java/com/fireblocks/sdk/model/Position2.java src/main/java/com/fireblocks/sdk/model/PostalAddress.java src/main/java/com/fireblocks/sdk/model/PreScreening.java src/main/java/com/fireblocks/sdk/model/PrefundedSettlement.java @@ -1784,6 +1852,8 @@ src/main/java/com/fireblocks/sdk/model/RenameConnectedAccountRequest.java src/main/java/com/fireblocks/sdk/model/RenameConnectedAccountResponse.java src/main/java/com/fireblocks/sdk/model/RenameCosigner.java src/main/java/com/fireblocks/sdk/model/RenameVaultAccountResponse.java +src/main/java/com/fireblocks/sdk/model/ResendByQueryRequest.java +src/main/java/com/fireblocks/sdk/model/ResendByQueryResponse.java src/main/java/com/fireblocks/sdk/model/ResendFailedNotificationsJobStatusResponse.java src/main/java/com/fireblocks/sdk/model/ResendFailedNotificationsRequest.java src/main/java/com/fireblocks/sdk/model/ResendFailedNotificationsResponse.java @@ -1813,6 +1883,9 @@ src/main/java/com/fireblocks/sdk/model/ScreeningOperationExecution.java src/main/java/com/fireblocks/sdk/model/ScreeningOperationExecutionOutput.java src/main/java/com/fireblocks/sdk/model/ScreeningOperationFailure.java src/main/java/com/fireblocks/sdk/model/ScreeningOperationType.java +src/main/java/com/fireblocks/sdk/model/ScreeningPolicyAmount.java +src/main/java/com/fireblocks/sdk/model/ScreeningPolicyAmountRange.java +src/main/java/com/fireblocks/sdk/model/ScreeningPolicyCurrency.java src/main/java/com/fireblocks/sdk/model/ScreeningPolicyResponse.java src/main/java/com/fireblocks/sdk/model/ScreeningProviderRulesConfigurationResponse.java src/main/java/com/fireblocks/sdk/model/ScreeningTRLinkAmount.java @@ -1920,8 +1993,6 @@ src/main/java/com/fireblocks/sdk/model/SwiftDestination.java src/main/java/com/fireblocks/sdk/model/SystemMessageInfo.java src/main/java/com/fireblocks/sdk/model/TRLinkAPIPagedResponse.java src/main/java/com/fireblocks/sdk/model/TRLinkAmount.java -src/main/java/com/fireblocks/sdk/model/TRLinkAmount2.java -src/main/java/com/fireblocks/sdk/model/TRLinkAmountRange.java src/main/java/com/fireblocks/sdk/model/TRLinkAssessTravelRuleRequest.java src/main/java/com/fireblocks/sdk/model/TRLinkAssessTravelRuleResponse.java src/main/java/com/fireblocks/sdk/model/TRLinkAssessmentDecision.java @@ -1934,7 +2005,6 @@ src/main/java/com/fireblocks/sdk/model/TRLinkConnectIntegrationRequest.java src/main/java/com/fireblocks/sdk/model/TRLinkCreateCustomerRequest.java src/main/java/com/fireblocks/sdk/model/TRLinkCreateIntegrationRequest.java src/main/java/com/fireblocks/sdk/model/TRLinkCreateTrmRequest.java -src/main/java/com/fireblocks/sdk/model/TRLinkCurrency.java src/main/java/com/fireblocks/sdk/model/TRLinkCustomerIntegrationResponse.java src/main/java/com/fireblocks/sdk/model/TRLinkCustomerResponse.java src/main/java/com/fireblocks/sdk/model/TRLinkDestinationTransferPeerPath.java @@ -2026,7 +2096,6 @@ src/main/java/com/fireblocks/sdk/model/TotalSupplyPagedResponse.java src/main/java/com/fireblocks/sdk/model/TradingAccountType.java src/main/java/com/fireblocks/sdk/model/TradingErrorSchema.java src/main/java/com/fireblocks/sdk/model/TradingProvider.java -src/main/java/com/fireblocks/sdk/model/TradingProviderDetails.java src/main/java/com/fireblocks/sdk/model/Transaction.java src/main/java/com/fireblocks/sdk/model/TransactionDirection.java src/main/java/com/fireblocks/sdk/model/TransactionFee.java @@ -2136,6 +2205,13 @@ src/main/java/com/fireblocks/sdk/model/UserResponse.java src/main/java/com/fireblocks/sdk/model/UserRole.java src/main/java/com/fireblocks/sdk/model/UserStatus.java src/main/java/com/fireblocks/sdk/model/UserType.java +src/main/java/com/fireblocks/sdk/model/UtxoIdentifier.java +src/main/java/com/fireblocks/sdk/model/UtxoInput.java +src/main/java/com/fireblocks/sdk/model/UtxoInput2.java +src/main/java/com/fireblocks/sdk/model/UtxoInputSelection.java +src/main/java/com/fireblocks/sdk/model/UtxoOutput.java +src/main/java/com/fireblocks/sdk/model/UtxoSelectionFilters.java +src/main/java/com/fireblocks/sdk/model/UtxoSelectionParams.java src/main/java/com/fireblocks/sdk/model/ValidateAddressResponse.java src/main/java/com/fireblocks/sdk/model/ValidateLayerZeroChannelResponse.java src/main/java/com/fireblocks/sdk/model/ValidationKeyDto.java @@ -2188,6 +2264,7 @@ src/test/java/com/fireblocks/sdk/api/ContractTemplatesApiTest.java src/test/java/com/fireblocks/sdk/api/ContractsApiTest.java src/test/java/com/fireblocks/sdk/api/CosignersBetaApiTest.java src/test/java/com/fireblocks/sdk/api/DeployedContractsApiTest.java +src/test/java/com/fireblocks/sdk/api/EarnBetaApiTest.java src/test/java/com/fireblocks/sdk/api/EmbeddedWalletsApiTest.java src/test/java/com/fireblocks/sdk/api/ExchangeAccountsApiTest.java src/test/java/com/fireblocks/sdk/api/ExternalWalletsApiTest.java @@ -2215,6 +2292,7 @@ src/test/java/com/fireblocks/sdk/api/TransactionsApiTest.java src/test/java/com/fireblocks/sdk/api/TravelRuleApiTest.java src/test/java/com/fireblocks/sdk/api/UserGroupsBetaApiTest.java src/test/java/com/fireblocks/sdk/api/UsersApiTest.java +src/test/java/com/fireblocks/sdk/api/UtxoManagementBetaApiTest.java src/test/java/com/fireblocks/sdk/api/VaultsApiTest.java src/test/java/com/fireblocks/sdk/api/Web3ConnectionsApiTest.java src/test/java/com/fireblocks/sdk/api/WebhooksApiTest.java @@ -2233,7 +2311,6 @@ src/test/java/com/fireblocks/sdk/model/AccountAccessTest.java src/test/java/com/fireblocks/sdk/model/AccountBaseTest.java src/test/java/com/fireblocks/sdk/model/AccountBasedAccessProviderInfoTest.java src/test/java/com/fireblocks/sdk/model/AccountBasedAccessProviderTest.java -src/test/java/com/fireblocks/sdk/model/AccountBasedProviderDetailsTest.java src/test/java/com/fireblocks/sdk/model/AccountConfigTest.java src/test/java/com/fireblocks/sdk/model/AccountHolderDetailsTest.java src/test/java/com/fireblocks/sdk/model/AccountIdentifierTest.java @@ -2245,6 +2322,7 @@ src/test/java/com/fireblocks/sdk/model/AchAccountTypeTest.java src/test/java/com/fireblocks/sdk/model/AchAddressTest.java src/test/java/com/fireblocks/sdk/model/AchDestinationTest.java src/test/java/com/fireblocks/sdk/model/AchPaymentInfoTest.java +src/test/java/com/fireblocks/sdk/model/ActionRecordTest.java src/test/java/com/fireblocks/sdk/model/AdapterProcessingResultTest.java src/test/java/com/fireblocks/sdk/model/AddAbiRequestDtoTest.java src/test/java/com/fireblocks/sdk/model/AddAssetToExternalWalletRequestTest.java @@ -2265,7 +2343,6 @@ src/test/java/com/fireblocks/sdk/model/AddressRegistryAddVaultOptOutsRequestVaul src/test/java/com/fireblocks/sdk/model/AddressRegistryAddVaultOptOutsResponseTest.java src/test/java/com/fireblocks/sdk/model/AddressRegistryErrorTest.java src/test/java/com/fireblocks/sdk/model/AddressRegistryGetVaultOptOutResponseTest.java -src/test/java/com/fireblocks/sdk/model/AddressRegistryLegalEntityLegacyTest.java src/test/java/com/fireblocks/sdk/model/AddressRegistryLegalEntityTest.java src/test/java/com/fireblocks/sdk/model/AddressRegistryListVaultOptOutsResponseTest.java src/test/java/com/fireblocks/sdk/model/AddressRegistryRemoveAllVaultOptOutsResponseTest.java @@ -2298,6 +2375,7 @@ src/test/java/com/fireblocks/sdk/model/ApiKeysPaginatedResponseTest.java src/test/java/com/fireblocks/sdk/model/ApprovalRequestTest.java src/test/java/com/fireblocks/sdk/model/ApproversConfigApprovalGroupsInnerTest.java src/test/java/com/fireblocks/sdk/model/ApproversConfigTest.java +src/test/java/com/fireblocks/sdk/model/ApyTest.java src/test/java/com/fireblocks/sdk/model/AssetAlreadyExistHttpErrorTest.java src/test/java/com/fireblocks/sdk/model/AssetAmountTest.java src/test/java/com/fireblocks/sdk/model/AssetBadRequestErrorResponseTest.java @@ -2329,6 +2407,8 @@ src/test/java/com/fireblocks/sdk/model/AssetTypesConfigInnerTest.java src/test/java/com/fireblocks/sdk/model/AssetWalletTest.java src/test/java/com/fireblocks/sdk/model/AssignVaultsToLegalEntityRequestTest.java src/test/java/com/fireblocks/sdk/model/AssignVaultsToLegalEntityResponseTest.java +src/test/java/com/fireblocks/sdk/model/AttachDetachUtxoLabelsRequestTest.java +src/test/java/com/fireblocks/sdk/model/AttachDetachUtxoLabelsResponseTest.java src/test/java/com/fireblocks/sdk/model/AuditLogDataTest.java src/test/java/com/fireblocks/sdk/model/AuditorDataTest.java src/test/java/com/fireblocks/sdk/model/AuthorizationGroupsTest.java @@ -2351,6 +2431,14 @@ src/test/java/com/fireblocks/sdk/model/BlockchainTransferTest.java src/test/java/com/fireblocks/sdk/model/BpsFeeTest.java src/test/java/com/fireblocks/sdk/model/BusinessEntityTypeEnumTest.java src/test/java/com/fireblocks/sdk/model/BusinessIdentificationTest.java +src/test/java/com/fireblocks/sdk/model/ByorkConfigResponseTest.java +src/test/java/com/fireblocks/sdk/model/ByorkSetTimeoutsRequestTest.java +src/test/java/com/fireblocks/sdk/model/ByorkSetVerdictEnumTest.java +src/test/java/com/fireblocks/sdk/model/ByorkTimeoutRangeTest.java +src/test/java/com/fireblocks/sdk/model/ByorkVerdictEnumTest.java +src/test/java/com/fireblocks/sdk/model/ByorkVerdictRequestTest.java +src/test/java/com/fireblocks/sdk/model/ByorkVerdictResponseStatusEnumTest.java +src/test/java/com/fireblocks/sdk/model/ByorkVerdictResponseTest.java src/test/java/com/fireblocks/sdk/model/CallbackHandlerRequestTest.java src/test/java/com/fireblocks/sdk/model/CallbackHandlerTest.java src/test/java/com/fireblocks/sdk/model/CancelTransactionResponseTest.java @@ -2449,6 +2537,8 @@ src/test/java/com/fireblocks/sdk/model/CreateConsoleUserTest.java src/test/java/com/fireblocks/sdk/model/CreateContractRequestTest.java src/test/java/com/fireblocks/sdk/model/CreateConversionConfigOperationRequestTest.java src/test/java/com/fireblocks/sdk/model/CreateDisbursementConfigOperationRequestTest.java +src/test/java/com/fireblocks/sdk/model/CreateEarnActionRequestTest.java +src/test/java/com/fireblocks/sdk/model/CreateEarnActionResponseTest.java src/test/java/com/fireblocks/sdk/model/CreateInternalTransferRequestTest.java src/test/java/com/fireblocks/sdk/model/CreateInternalWalletAssetRequestTest.java src/test/java/com/fireblocks/sdk/model/CreateMultichainTokenRequestTest.java @@ -2504,7 +2594,6 @@ src/test/java/com/fireblocks/sdk/model/DestinationTransferPeerPathTest.java src/test/java/com/fireblocks/sdk/model/DirectAccessProviderInfoTest.java src/test/java/com/fireblocks/sdk/model/DirectAccessProviderTest.java src/test/java/com/fireblocks/sdk/model/DirectAccessTest.java -src/test/java/com/fireblocks/sdk/model/DirectProviderDetailsTest.java src/test/java/com/fireblocks/sdk/model/DisbursementAmountInstructionTest.java src/test/java/com/fireblocks/sdk/model/DisbursementConfigOperationTest.java src/test/java/com/fireblocks/sdk/model/DisbursementInstructionOutputTest.java @@ -2529,6 +2618,8 @@ src/test/java/com/fireblocks/sdk/model/DropTransactionResponseTest.java src/test/java/com/fireblocks/sdk/model/DvnConfigTest.java src/test/java/com/fireblocks/sdk/model/DvnConfigWithConfirmationsTest.java src/test/java/com/fireblocks/sdk/model/EVMTokenCreateParamsDtoTest.java +src/test/java/com/fireblocks/sdk/model/EarnAssetTest.java +src/test/java/com/fireblocks/sdk/model/EarnProviderTest.java src/test/java/com/fireblocks/sdk/model/EditGasStationConfigurationResponseTest.java src/test/java/com/fireblocks/sdk/model/EmbeddedWalletAccountTest.java src/test/java/com/fireblocks/sdk/model/EmbeddedWalletAddressDetailsTest.java @@ -2578,6 +2669,7 @@ src/test/java/com/fireblocks/sdk/model/ExecutionStepErrorTest.java src/test/java/com/fireblocks/sdk/model/ExecutionStepStatusEnumTest.java src/test/java/com/fireblocks/sdk/model/ExecutionStepTypeTest.java src/test/java/com/fireblocks/sdk/model/ExecutionTransferOperationTest.java +src/test/java/com/fireblocks/sdk/model/ExposureTest.java src/test/java/com/fireblocks/sdk/model/ExternalAccountLocalBankAfricaTest.java src/test/java/com/fireblocks/sdk/model/ExternalAccountMobileMoneyProviderTest.java src/test/java/com/fireblocks/sdk/model/ExternalAccountMobileMoneyTest.java @@ -2605,6 +2697,7 @@ src/test/java/com/fireblocks/sdk/model/FiatPaymentMetadataTest.java src/test/java/com/fireblocks/sdk/model/FiatTransferTest.java src/test/java/com/fireblocks/sdk/model/FixedAmountTypeEnumTest.java src/test/java/com/fireblocks/sdk/model/FixedFeeTest.java +src/test/java/com/fireblocks/sdk/model/FlowDirectionTest.java src/test/java/com/fireblocks/sdk/model/FreezeTransactionResponseTest.java src/test/java/com/fireblocks/sdk/model/FunctionDocTest.java src/test/java/com/fireblocks/sdk/model/FundsTest.java @@ -2614,7 +2707,10 @@ src/test/java/com/fireblocks/sdk/model/GasStationPropertiesResponseTest.java src/test/java/com/fireblocks/sdk/model/GasslessStandardConfigurationsGaslessStandardConfigurationsValueTest.java src/test/java/com/fireblocks/sdk/model/GasslessStandardConfigurationsTest.java src/test/java/com/fireblocks/sdk/model/GetAPIUsersResponseTest.java +src/test/java/com/fireblocks/sdk/model/GetActionResponseTest.java +src/test/java/com/fireblocks/sdk/model/GetActionsResponseTest.java src/test/java/com/fireblocks/sdk/model/GetAuditLogsResponseTest.java +src/test/java/com/fireblocks/sdk/model/GetByorkVerdictResponseTest.java src/test/java/com/fireblocks/sdk/model/GetConnectionsResponseTest.java src/test/java/com/fireblocks/sdk/model/GetConsoleUsersResponseTest.java src/test/java/com/fireblocks/sdk/model/GetDeployableAddressRequestTest.java @@ -2627,21 +2723,26 @@ src/test/java/com/fireblocks/sdk/model/GetMaxBipIndexUsedResponseTest.java src/test/java/com/fireblocks/sdk/model/GetMaxSpendableAmountResponseTest.java src/test/java/com/fireblocks/sdk/model/GetMpcKeysResponseTest.java src/test/java/com/fireblocks/sdk/model/GetNFTsResponseTest.java +src/test/java/com/fireblocks/sdk/model/GetOpportunitiesResponseTest.java src/test/java/com/fireblocks/sdk/model/GetOrdersResponseTest.java src/test/java/com/fireblocks/sdk/model/GetOtaStatusResponseTest.java src/test/java/com/fireblocks/sdk/model/GetOwnershipTokensResponseTest.java src/test/java/com/fireblocks/sdk/model/GetPagedExchangeAccountsResponsePagingTest.java src/test/java/com/fireblocks/sdk/model/GetPagedExchangeAccountsResponseTest.java +src/test/java/com/fireblocks/sdk/model/GetPositionsResponseTest.java +src/test/java/com/fireblocks/sdk/model/GetProvidersResponseTest.java src/test/java/com/fireblocks/sdk/model/GetSigningKeyResponseDtoTest.java src/test/java/com/fireblocks/sdk/model/GetTransactionOperationTest.java src/test/java/com/fireblocks/sdk/model/GetValidationKeyResponseDtoTest.java src/test/java/com/fireblocks/sdk/model/GetWhitelistIpAddressesResponseTest.java src/test/java/com/fireblocks/sdk/model/GetWorkspaceStatusResponseTest.java src/test/java/com/fireblocks/sdk/model/GleifDataTest.java +src/test/java/com/fireblocks/sdk/model/GleifOtherLegalEntityNameTest.java src/test/java/com/fireblocks/sdk/model/HttpContractDoesNotExistErrorTest.java src/test/java/com/fireblocks/sdk/model/IbanAddressTest.java src/test/java/com/fireblocks/sdk/model/IbanDestinationTest.java src/test/java/com/fireblocks/sdk/model/IbanPaymentInfoTest.java +src/test/java/com/fireblocks/sdk/model/IdentificationPolicyOverrideTest.java src/test/java/com/fireblocks/sdk/model/IdentificationTest.java src/test/java/com/fireblocks/sdk/model/IdlTypeTest.java src/test/java/com/fireblocks/sdk/model/IndicativeQuoteEnumTest.java @@ -2699,6 +2800,7 @@ src/test/java/com/fireblocks/sdk/model/ListBlockchainsResponseTest.java src/test/java/com/fireblocks/sdk/model/ListLegalEntitiesResponseTest.java src/test/java/com/fireblocks/sdk/model/ListOwnedCollectionsResponseTest.java src/test/java/com/fireblocks/sdk/model/ListOwnedTokensResponseTest.java +src/test/java/com/fireblocks/sdk/model/ListUtxosResponseTest.java src/test/java/com/fireblocks/sdk/model/ListVaultsForRegistrationResponseTest.java src/test/java/com/fireblocks/sdk/model/LocalBankTransferAfricaAddressTest.java src/test/java/com/fireblocks/sdk/model/LocalBankTransferAfricaDestinationTest.java @@ -2751,6 +2853,7 @@ src/test/java/com/fireblocks/sdk/model/OneTimeAddressPeerTypeTest.java src/test/java/com/fireblocks/sdk/model/OneTimeAddressReferenceTest.java src/test/java/com/fireblocks/sdk/model/OneTimeAddressTest.java src/test/java/com/fireblocks/sdk/model/OperationExecutionFailureTest.java +src/test/java/com/fireblocks/sdk/model/OpportunityTest.java src/test/java/com/fireblocks/sdk/model/OrderDetailsTest.java src/test/java/com/fireblocks/sdk/model/OrderExecutionStepTest.java src/test/java/com/fireblocks/sdk/model/OrderSideTest.java @@ -2767,6 +2870,8 @@ src/test/java/com/fireblocks/sdk/model/PairApiKeyResponseTest.java src/test/java/com/fireblocks/sdk/model/ParameterTest.java src/test/java/com/fireblocks/sdk/model/ParameterWithValueTest.java src/test/java/com/fireblocks/sdk/model/ParticipantRelationshipTypeTest.java +src/test/java/com/fireblocks/sdk/model/ParticipantsIdentificationPolicyTest.java +src/test/java/com/fireblocks/sdk/model/ParticipantsIdentificationSupportedEndpointTest.java src/test/java/com/fireblocks/sdk/model/ParticipantsIdentificationTest.java src/test/java/com/fireblocks/sdk/model/PayeeAccountResponseTest.java src/test/java/com/fireblocks/sdk/model/PayeeAccountTest.java @@ -2814,6 +2919,7 @@ src/test/java/com/fireblocks/sdk/model/PolicyTypeTest.java src/test/java/com/fireblocks/sdk/model/PolicyValidationTest.java src/test/java/com/fireblocks/sdk/model/PolicyVerdictActionEnum2Test.java src/test/java/com/fireblocks/sdk/model/PolicyVerdictActionEnumTest.java +src/test/java/com/fireblocks/sdk/model/Position2Test.java src/test/java/com/fireblocks/sdk/model/PositionTest.java src/test/java/com/fireblocks/sdk/model/PostalAddressTest.java src/test/java/com/fireblocks/sdk/model/PreScreeningTest.java @@ -2857,6 +2963,8 @@ src/test/java/com/fireblocks/sdk/model/RenameConnectedAccountRequestTest.java src/test/java/com/fireblocks/sdk/model/RenameConnectedAccountResponseTest.java src/test/java/com/fireblocks/sdk/model/RenameCosignerTest.java src/test/java/com/fireblocks/sdk/model/RenameVaultAccountResponseTest.java +src/test/java/com/fireblocks/sdk/model/ResendByQueryRequestTest.java +src/test/java/com/fireblocks/sdk/model/ResendByQueryResponseTest.java src/test/java/com/fireblocks/sdk/model/ResendFailedNotificationsJobStatusResponseTest.java src/test/java/com/fireblocks/sdk/model/ResendFailedNotificationsRequestTest.java src/test/java/com/fireblocks/sdk/model/ResendFailedNotificationsResponseTest.java @@ -2886,6 +2994,9 @@ src/test/java/com/fireblocks/sdk/model/ScreeningOperationExecutionOutputTest.jav src/test/java/com/fireblocks/sdk/model/ScreeningOperationExecutionTest.java src/test/java/com/fireblocks/sdk/model/ScreeningOperationFailureTest.java src/test/java/com/fireblocks/sdk/model/ScreeningOperationTypeTest.java +src/test/java/com/fireblocks/sdk/model/ScreeningPolicyAmountRangeTest.java +src/test/java/com/fireblocks/sdk/model/ScreeningPolicyAmountTest.java +src/test/java/com/fireblocks/sdk/model/ScreeningPolicyCurrencyTest.java src/test/java/com/fireblocks/sdk/model/ScreeningPolicyResponseTest.java src/test/java/com/fireblocks/sdk/model/ScreeningProviderRulesConfigurationResponseTest.java src/test/java/com/fireblocks/sdk/model/ScreeningTRLinkAmountTest.java @@ -2992,8 +3103,6 @@ src/test/java/com/fireblocks/sdk/model/SwiftAddressTest.java src/test/java/com/fireblocks/sdk/model/SwiftDestinationTest.java src/test/java/com/fireblocks/sdk/model/SystemMessageInfoTest.java src/test/java/com/fireblocks/sdk/model/TRLinkAPIPagedResponseTest.java -src/test/java/com/fireblocks/sdk/model/TRLinkAmount2Test.java -src/test/java/com/fireblocks/sdk/model/TRLinkAmountRangeTest.java src/test/java/com/fireblocks/sdk/model/TRLinkAmountTest.java src/test/java/com/fireblocks/sdk/model/TRLinkAssessTravelRuleRequestTest.java src/test/java/com/fireblocks/sdk/model/TRLinkAssessTravelRuleResponseTest.java @@ -3007,7 +3116,6 @@ src/test/java/com/fireblocks/sdk/model/TRLinkConnectIntegrationRequestTest.java src/test/java/com/fireblocks/sdk/model/TRLinkCreateCustomerRequestTest.java src/test/java/com/fireblocks/sdk/model/TRLinkCreateIntegrationRequestTest.java src/test/java/com/fireblocks/sdk/model/TRLinkCreateTrmRequestTest.java -src/test/java/com/fireblocks/sdk/model/TRLinkCurrencyTest.java src/test/java/com/fireblocks/sdk/model/TRLinkCustomerIntegrationResponseTest.java src/test/java/com/fireblocks/sdk/model/TRLinkCustomerResponseTest.java src/test/java/com/fireblocks/sdk/model/TRLinkDestinationTransferPeerPathTest.java @@ -3098,7 +3206,6 @@ src/test/java/com/fireblocks/sdk/model/TotalSupplyItemDtoTest.java src/test/java/com/fireblocks/sdk/model/TotalSupplyPagedResponseTest.java src/test/java/com/fireblocks/sdk/model/TradingAccountTypeTest.java src/test/java/com/fireblocks/sdk/model/TradingErrorSchemaTest.java -src/test/java/com/fireblocks/sdk/model/TradingProviderDetailsTest.java src/test/java/com/fireblocks/sdk/model/TradingProviderTest.java src/test/java/com/fireblocks/sdk/model/TransactionDirectionTest.java src/test/java/com/fireblocks/sdk/model/TransactionFeeTest.java @@ -3209,6 +3316,13 @@ src/test/java/com/fireblocks/sdk/model/UserResponseTest.java src/test/java/com/fireblocks/sdk/model/UserRoleTest.java src/test/java/com/fireblocks/sdk/model/UserStatusTest.java src/test/java/com/fireblocks/sdk/model/UserTypeTest.java +src/test/java/com/fireblocks/sdk/model/UtxoIdentifierTest.java +src/test/java/com/fireblocks/sdk/model/UtxoInput2Test.java +src/test/java/com/fireblocks/sdk/model/UtxoInputSelectionTest.java +src/test/java/com/fireblocks/sdk/model/UtxoInputTest.java +src/test/java/com/fireblocks/sdk/model/UtxoOutputTest.java +src/test/java/com/fireblocks/sdk/model/UtxoSelectionFiltersTest.java +src/test/java/com/fireblocks/sdk/model/UtxoSelectionParamsTest.java src/test/java/com/fireblocks/sdk/model/ValidateAddressResponseTest.java src/test/java/com/fireblocks/sdk/model/ValidateLayerZeroChannelResponseTest.java src/test/java/com/fireblocks/sdk/model/ValidationKeyDtoTest.java diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 1fc41251..00000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,239 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [v16.0.0](https://github.com/fireblocks/java-sdk/compare/v15.0.0...v16.0.0) - 2026-04-06 - -### Merged - -- Generated SDK #3331 [`#131`](https://github.com/fireblocks/java-sdk/pull/131) - -## [v15.0.0](https://github.com/fireblocks/java-sdk/compare/v14.1.0...v15.0.0) - 2026-03-15 - -### Merged - -- Generated SDK #3733 (major) [`#128`](https://github.com/fireblocks/java-sdk/pull/128) - -## [v14.1.0](https://github.com/fireblocks/java-sdk/compare/v14.0.0...v14.1.0) - 2026-02-26 - -### Merged - -- Generated SDK #2167 [`#126`](https://github.com/fireblocks/java-sdk/pull/126) - -## [v14.0.0](https://github.com/fireblocks/java-sdk/compare/v13.0.0...v14.0.0) - 2026-02-03 - -### Merged - -- Generated SDK #4746 [`#121`](https://github.com/fireblocks/java-sdk/pull/121) - -## [v13.0.0](https://github.com/fireblocks/java-sdk/compare/v12.1.3...v13.0.0) - 2025-11-13 - -### Merged - -- Generated SDK #5834 [`#116`](https://github.com/fireblocks/java-sdk/pull/116) - -## [v12.1.3](https://github.com/fireblocks/java-sdk/compare/v12.1.2...v12.1.3) - 2025-10-22 - -### Merged - -- Generated SDK #8293 [`#115`](https://github.com/fireblocks/java-sdk/pull/115) - -## [v12.1.2](https://github.com/fireblocks/java-sdk/compare/v12.1.1...v12.1.2) - 2025-09-29 - -### Merged - -- Generated SDK #6061 [`#113`](https://github.com/fireblocks/java-sdk/pull/113) - -## [v12.1.1](https://github.com/fireblocks/java-sdk/compare/v12.1.0...v12.1.1) - 2025-09-10 - -### Merged - -- Generated SDK #1410 [`#111`](https://github.com/fireblocks/java-sdk/pull/111) - -## [v12.1.0](https://github.com/fireblocks/java-sdk/compare/v12.0.0...v12.1.0) - 2025-09-09 - -### Merged - -- Generated SDK #4521 [`#109`](https://github.com/fireblocks/java-sdk/pull/109) - -## [v12.0.0](https://github.com/fireblocks/java-sdk/compare/v11.2.0...v12.0.0) - 2025-09-01 - -### Merged - -- Generated SDK #7741 [`#108`](https://github.com/fireblocks/java-sdk/pull/108) - -## [v11.2.0](https://github.com/fireblocks/java-sdk/compare/v11.1.0...v11.2.0) - 2025-08-21 - -### Merged - -- Generated SDK #3302 [`#107`](https://github.com/fireblocks/java-sdk/pull/107) - -## [v11.1.0](https://github.com/fireblocks/java-sdk/compare/v11.0.0...v11.1.0) - 2025-08-11 - -### Merged - -- Generated SDK #1782 [`#105`](https://github.com/fireblocks/java-sdk/pull/105) - -## [v11.0.0](https://github.com/fireblocks/java-sdk/compare/v10.4.0...v11.0.0) - 2025-07-15 - -### Merged - -- Generated SDK #5610 [`#103`](https://github.com/fireblocks/java-sdk/pull/103) - -## [v10.4.0](https://github.com/fireblocks/java-sdk/compare/v10.3.0...v10.4.0) - 2025-06-29 - -### Merged - -- Generated SDK #1492 [`#101`](https://github.com/fireblocks/java-sdk/pull/101) - -## [v10.3.0](https://github.com/fireblocks/java-sdk/compare/v10.2.0...v10.3.0) - 2025-06-18 - -### Merged - -- Generated SDK #4009 [`#99`](https://github.com/fireblocks/java-sdk/pull/99) - -## [v10.2.0](https://github.com/fireblocks/java-sdk/compare/v10.1.1...v10.2.0) - 2025-06-04 - -### Merged - -- Generated SDK #8912 [`#98`](https://github.com/fireblocks/java-sdk/pull/98) - -## [v10.1.1](https://github.com/fireblocks/java-sdk/compare/v10.1.0...v10.1.1) - 2025-05-18 - -### Merged - -- Generated SDK #5019 [`#97`](https://github.com/fireblocks/java-sdk/pull/97) - -## [v10.1.0](https://github.com/fireblocks/java-sdk/compare/v10.0.2...v10.1.0) - 2025-05-07 - -### Merged - -- Generated SDK #7076 [`#95`](https://github.com/fireblocks/java-sdk/pull/95) - -## [v10.0.2](https://github.com/fireblocks/java-sdk/compare/v10.0.1...v10.0.2) - 2025-04-20 - -### Merged - -- Generated SDK #4794 [`#94`](https://github.com/fireblocks/java-sdk/pull/94) - -## [v10.0.1](https://github.com/fireblocks/java-sdk/compare/v10.0.0...v10.0.1) - 2025-04-07 - -### Merged - -- Generated SDK #3065 [`#93`](https://github.com/fireblocks/java-sdk/pull/93) - -## [v10.0.0](https://github.com/fireblocks/java-sdk/compare/v9.0.0...v10.0.0) - 2025-03-30 - -### Merged - -- Generated SDK #619 [`#90`](https://github.com/fireblocks/java-sdk/pull/90) - -## [v9.0.0](https://github.com/fireblocks/java-sdk/compare/v8.1.0...v9.0.0) - 2025-03-17 - -### Merged - -- Generated SDK #645 [`#89`](https://github.com/fireblocks/java-sdk/pull/89) - -## [v8.1.0](https://github.com/fireblocks/java-sdk/compare/v8.0.1...v8.1.0) - 2025-02-24 - -### Merged - -- Generated SDK #9833 [`#84`](https://github.com/fireblocks/java-sdk/pull/84) - -## [v8.0.1](https://github.com/fireblocks/java-sdk/compare/v8.0.0...v8.0.1) - 2025-02-12 - -### Merged - -- Generated SDK #4262 [`#82`](https://github.com/fireblocks/java-sdk/pull/82) - -## [v8.0.0](https://github.com/fireblocks/java-sdk/compare/v7.0.0...v8.0.0) - 2025-02-02 - -### Merged - -- Generated SDK #538 [`#80`](https://github.com/fireblocks/java-sdk/pull/80) - -## [v7.0.0](https://github.com/fireblocks/java-sdk/compare/v6.0.0...v7.0.0) - 2025-01-08 - -### Merged - -- Generated SDK #8699 [`#77`](https://github.com/fireblocks/java-sdk/pull/77) - -## [v6.0.0](https://github.com/fireblocks/java-sdk/compare/v5.0.0...v6.0.0) - 2024-12-05 - -### Merged - -- Generated SDK #1430 [`#73`](https://github.com/fireblocks/java-sdk/pull/73) - -## [v5.0.0](https://github.com/fireblocks/java-sdk/compare/v4.0.0...v5.0.0) - 2024-10-31 - -### Merged - -- Generated SDK #5184 [`#71`](https://github.com/fireblocks/java-sdk/pull/71) - -## [v4.0.0](https://github.com/fireblocks/java-sdk/compare/v3.1.0...v4.0.0) - 2024-09-17 - -### Merged - -- Generated SDK #237 [`#70`](https://github.com/fireblocks/java-sdk/pull/70) - -## [v3.1.0](https://github.com/fireblocks/java-sdk/compare/v3.0.0...v3.1.0) - 2024-07-25 - -### Merged - -- Generated SDK #6749 [`#67`](https://github.com/fireblocks/java-sdk/pull/67) - -## [v3.0.0](https://github.com/fireblocks/java-sdk/compare/v2.1.0...v3.0.0) - 2024-07-17 - -### Merged - -- Generated SDK #6152 [`#65`](https://github.com/fireblocks/java-sdk/pull/65) -- Generated SDK #7984 [`#62`](https://github.com/fireblocks/java-sdk/pull/62) -- Generated SDK #2873 [`#61`](https://github.com/fireblocks/java-sdk/pull/61) - -## [v2.1.0](https://github.com/fireblocks/java-sdk/compare/v2.0.1...v2.1.0) - 2024-06-04 - -### Merged - -- Generated SDK for version COR-46191/fix_pipelines [`#24`](https://github.com/fireblocks/java-sdk/pull/24) -- Generated SDK for version COR-46191/fix_pipelines [`#23`](https://github.com/fireblocks/java-sdk/pull/23) -- Generated SDK for version COR-46191/fix_pipelines [`#22`](https://github.com/fireblocks/java-sdk/pull/22) -- Generated SDK for version COR-46191/fix_pipelines [`#21`](https://github.com/fireblocks/java-sdk/pull/21) - -## [v2.0.1](https://github.com/fireblocks/java-sdk/compare/v2.0.0...v2.0.1) - 2024-06-04 - -### Merged - -- Generated SDK for version COR-46191/fix_pipelines [`#20`](https://github.com/fireblocks/java-sdk/pull/20) - -## [v2.0.0](https://github.com/fireblocks/java-sdk/compare/v1.1.0...v2.0.0) - 2024-05-08 - -### Merged - -- feat: add tokenization api [`#12`](https://github.com/fireblocks/java-sdk/pull/12) - -## [v1.1.0](https://github.com/fireblocks/java-sdk/compare/v1.0.1...v1.1.0) - 2024-04-17 - -### Merged - -- feat: add cosigners beta api [`#11`](https://github.com/fireblocks/java-sdk/pull/11) -- fix: fix readme doc headline [`#10`](https://github.com/fireblocks/java-sdk/pull/10) - -## [v1.0.1](https://github.com/fireblocks/java-sdk/compare/v1.0.0...v1.0.1) - 2024-04-07 - -### Merged - -- Generated SDK for version v1.0.1 [`#9`](https://github.com/fireblocks/java-sdk/pull/9) - -## v1.0.0 - 2024-04-07 - -### Merged - -- Generated SDK for version v1.0.0 GA [`#8`](https://github.com/fireblocks/java-sdk/pull/8) -- v0.0.1-beta [`#6`](https://github.com/fireblocks/java-sdk/pull/6) -- Update GitHub Actions workflows [`#5`](https://github.com/fireblocks/java-sdk/pull/5) -- Generated #1189972817 [`#3`](https://github.com/fireblocks/java-sdk/pull/3) -- Add installation instructions [`#2`](https://github.com/fireblocks/java-sdk/pull/2) -- Added Idempotency & NCW headers support #6 [`#1`](https://github.com/fireblocks/java-sdk/pull/1) diff --git a/README.md b/README.md index 74733eae..42737239 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ Add this dependency to your project's POM: com.fireblocks.sdk fireblocks-sdk - 16.0.0 + 0.0.0 compile ``` @@ -42,7 +42,7 @@ Add this dependency to your project's POM: Add this dependency to your project's build file: ```groovy -compile "com.fireblocks.sdk:fireblocks-sdk:16.0.0" +compile "com.fireblocks.sdk:fireblocks-sdk:0.0.0" ``` ### Others @@ -55,7 +55,7 @@ mvn clean package Then manually install the following JARs: -- `target/fireblocks-sdk-16.0.0.jar` +- `target/fireblocks-sdk-0.0.0.jar` - `target/lib/*.jar` @@ -152,14 +152,17 @@ Class | Method | HTTP request | Description *BlockchainsAssetsApi* | [**registerNewAsset**](docs/BlockchainsAssetsApi.md#registerNewAsset) | **POST** /assets | Register an asset *BlockchainsAssetsApi* | [**setAssetPrice**](docs/BlockchainsAssetsApi.md#setAssetPrice) | **POST** /assets/prices/{id} | Set asset price *BlockchainsAssetsApi* | [**updateAssetUserMetadata**](docs/BlockchainsAssetsApi.md#updateAssetUserMetadata) | **PATCH** /assets/{id} | Update the user’s metadata for an asset +*ComplianceApi* | [**activateByorkConfig**](docs/ComplianceApi.md#activateByorkConfig) | **POST** /screening/byork/config/activate | Activate BYORK Light *ComplianceApi* | [**addAddressRegistryVaultOptOuts**](docs/ComplianceApi.md#addAddressRegistryVaultOptOuts) | **POST** /address_registry/vaults | Add vault accounts to the address registry opt-out list *ComplianceApi* | [**assignVaultsToLegalEntity**](docs/ComplianceApi.md#assignVaultsToLegalEntity) | **POST** /legal_entities/{legalEntityId}/vaults | Assign vault accounts to a legal entity +*ComplianceApi* | [**deactivateByorkConfig**](docs/ComplianceApi.md#deactivateByorkConfig) | **POST** /screening/byork/config/deactivate | Deactivate BYORK Light *ComplianceApi* | [**getAddressRegistryTenantParticipationStatus**](docs/ComplianceApi.md#getAddressRegistryTenantParticipationStatus) | **GET** /address_registry/tenant | Get address registry participation status for the authenticated workspace *ComplianceApi* | [**getAddressRegistryVaultOptOut**](docs/ComplianceApi.md#getAddressRegistryVaultOptOut) | **GET** /address_registry/vaults/{vaultAccountId} | Get whether a vault account is opted out of the address registry *ComplianceApi* | [**getAmlPostScreeningPolicy**](docs/ComplianceApi.md#getAmlPostScreeningPolicy) | **GET** /screening/aml/post_screening_policy | AML - View Post-Screening Policy *ComplianceApi* | [**getAmlScreeningPolicy**](docs/ComplianceApi.md#getAmlScreeningPolicy) | **GET** /screening/aml/screening_policy | AML - View Screening Policy +*ComplianceApi* | [**getByorkConfig**](docs/ComplianceApi.md#getByorkConfig) | **GET** /screening/byork/config | Get BYORK Light configuration +*ComplianceApi* | [**getByorkVerdict**](docs/ComplianceApi.md#getByorkVerdict) | **GET** /screening/byork/verdict | Get BYORK Light verdict *ComplianceApi* | [**getLegalEntity**](docs/ComplianceApi.md#getLegalEntity) | **GET** /legal_entities/{legalEntityId} | Get a legal entity -*ComplianceApi* | [**getLegalEntityByAddress**](docs/ComplianceApi.md#getLegalEntityByAddress) | **GET** /address_registry/legal_entity | [Deprecated] Look up legal entity by address (query parameter) *ComplianceApi* | [**getLegalEntityForAddress**](docs/ComplianceApi.md#getLegalEntityForAddress) | **GET** /address_registry/legal_entities/{address} | Look up legal entity by blockchain address *ComplianceApi* | [**getPostScreeningPolicy**](docs/ComplianceApi.md#getPostScreeningPolicy) | **GET** /screening/travel_rule/post_screening_policy | Travel Rule - View Post-Screening Policy *ComplianceApi* | [**getScreeningFullDetails**](docs/ComplianceApi.md#getScreeningFullDetails) | **GET** /screening/transaction/{txId} | Provides all the compliance details for the given screened transaction. @@ -173,7 +176,9 @@ Class | Method | HTTP request | Description *ComplianceApi* | [**removeAddressRegistryVaultOptOut**](docs/ComplianceApi.md#removeAddressRegistryVaultOptOut) | **DELETE** /address_registry/vaults/{vaultAccountId} | Remove a single vault account from the address registry opt-out list *ComplianceApi* | [**removeAllAddressRegistryVaultOptOuts**](docs/ComplianceApi.md#removeAllAddressRegistryVaultOptOuts) | **DELETE** /address_registry/vaults | Remove all vault-level address registry opt-outs for the workspace *ComplianceApi* | [**retryRejectedTransactionBypassScreeningChecks**](docs/ComplianceApi.md#retryRejectedTransactionBypassScreeningChecks) | **POST** /screening/transaction/{txId}/bypass_screening_policy | Calling the \"Bypass Screening Policy\" API endpoint triggers a new transaction, with the API user as the initiator, bypassing the screening policy check -*ComplianceApi* | [**setAmlVerdict**](docs/ComplianceApi.md#setAmlVerdict) | **POST** /screening/aml/verdict/manual | Set AML Verdict for Manual Screening Verdict. +*ComplianceApi* | [**setAmlVerdict**](docs/ComplianceApi.md#setAmlVerdict) | **POST** /screening/aml/verdict/manual | Set AML Verdict (BYORK Super Light) +*ComplianceApi* | [**setByorkTimeouts**](docs/ComplianceApi.md#setByorkTimeouts) | **PUT** /screening/byork/config/timeouts | Set BYORK Light timeouts +*ComplianceApi* | [**setByorkVerdict**](docs/ComplianceApi.md#setByorkVerdict) | **POST** /screening/byork/verdict | Set BYORK Light verdict *ComplianceApi* | [**updateAmlScreeningConfiguration**](docs/ComplianceApi.md#updateAmlScreeningConfiguration) | **PUT** /screening/aml/policy_configuration | Update AML Configuration *ComplianceApi* | [**updateLegalEntity**](docs/ComplianceApi.md#updateLegalEntity) | **PUT** /legal_entities/{legalEntityId} | Update legal entity *ComplianceApi* | [**updateScreeningConfiguration**](docs/ComplianceApi.md#updateScreeningConfiguration) | **PUT** /screening/configurations | Tenant - Screening Configuration @@ -225,6 +230,13 @@ Class | Method | HTTP request | Description *DeployedContractsApi* | [**getDeployedContractByAddress**](docs/DeployedContractsApi.md#getDeployedContractByAddress) | **GET** /tokenization/contracts/{assetId}/{contractAddress} | Return deployed contract data *DeployedContractsApi* | [**getDeployedContractById**](docs/DeployedContractsApi.md#getDeployedContractById) | **GET** /tokenization/contracts/{id} | Return deployed contract data by id *DeployedContractsApi* | [**getDeployedContracts**](docs/DeployedContractsApi.md#getDeployedContracts) | **GET** /tokenization/contracts | List deployed contracts data +*EarnBetaApi* | [**approveTermsOfService**](docs/EarnBetaApi.md#approveTermsOfService) | **POST** /earn/providers/{providerId}/approve_terms_of_service | Approve earn provider terms of service +*EarnBetaApi* | [**createEarnAction**](docs/EarnBetaApi.md#createEarnAction) | **POST** /earn/actions | Create and execute a lending action (deposit or withdraw) +*EarnBetaApi* | [**getEarnAction**](docs/EarnBetaApi.md#getEarnAction) | **GET** /earn/actions/{id} | Get a single earn lending action +*EarnBetaApi* | [**getEarnActions**](docs/EarnBetaApi.md#getEarnActions) | **GET** /earn/actions | List earn lending actions +*EarnBetaApi* | [**getEarnOpportunities**](docs/EarnBetaApi.md#getEarnOpportunities) | **GET** /earn/opportunities | Get list of earn opportunities +*EarnBetaApi* | [**getEarnPositions**](docs/EarnBetaApi.md#getEarnPositions) | **GET** /earn/positions | Get list of earn positions +*EarnBetaApi* | [**getEarnProviders**](docs/EarnBetaApi.md#getEarnProviders) | **GET** /earn/providers | Get list of earn providers *EmbeddedWalletsApi* | [**addEmbeddedWalletAsset**](docs/EmbeddedWalletsApi.md#addEmbeddedWalletAsset) | **POST** /ncw/wallets/{walletId}/accounts/{accountId}/assets/{assetId} | Add asset to account *EmbeddedWalletsApi* | [**assignEmbeddedWallet**](docs/EmbeddedWalletsApi.md#assignEmbeddedWallet) | **POST** /ncw/wallets/{walletId}/assign | Assign a wallet *EmbeddedWalletsApi* | [**createEmbeddedWallet**](docs/EmbeddedWalletsApi.md#createEmbeddedWallet) | **POST** /ncw/wallets | Create a new wallet @@ -467,6 +479,8 @@ Class | Method | HTTP request | Description *UserGroupsBetaApi* | [**getUserGroups**](docs/UserGroupsBetaApi.md#getUserGroups) | **GET** /management/user_groups | List user groups *UserGroupsBetaApi* | [**updateUserGroup**](docs/UserGroupsBetaApi.md#updateUserGroup) | **PUT** /management/user_groups/{groupId} | Update user group *UsersApi* | [**getUsers**](docs/UsersApi.md#getUsers) | **GET** /users | List users +*UtxoManagementBetaApi* | [**getUtxos**](docs/UtxoManagementBetaApi.md#getUtxos) | **GET** /utxo_management/{vaultAccountId}/{assetId}/unspent_outputs | List unspent outputs (UTXOs) +*UtxoManagementBetaApi* | [**updateUtxoLabels**](docs/UtxoManagementBetaApi.md#updateUtxoLabels) | **PATCH** /utxo_management/{vaultAccountId}/{assetId}/labels | Attach or detach labels to/from UTXOs *VaultsApi* | [**activateAssetForVaultAccount**](docs/VaultsApi.md#activateAssetForVaultAccount) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/activate | Activate a wallet in a vault account *VaultsApi* | [**attachOrDetachTagsFromVaultAccounts**](docs/VaultsApi.md#attachOrDetachTagsFromVaultAccounts) | **POST** /vault/accounts/attached_tags | Attach or detach tags from vault accounts *VaultsApi* | [**createLegacyAddress**](docs/VaultsApi.md#createLegacyAddress) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}/create_legacy | Convert a segwit address to legacy format @@ -509,11 +523,13 @@ Class | Method | HTTP request | Description *WebhooksV2Api* | [**getNotification**](docs/WebhooksV2Api.md#getNotification) | **GET** /webhooks/{webhookId}/notifications/{notificationId} | Get notification by id *WebhooksV2Api* | [**getNotificationAttempts**](docs/WebhooksV2Api.md#getNotificationAttempts) | **GET** /webhooks/{webhookId}/notifications/{notificationId}/attempts | Get notification attempts *WebhooksV2Api* | [**getNotifications**](docs/WebhooksV2Api.md#getNotifications) | **GET** /webhooks/{webhookId}/notifications | Get all notifications by webhook id +*WebhooksV2Api* | [**getResendByQueryJobStatus**](docs/WebhooksV2Api.md#getResendByQueryJobStatus) | **GET** /webhooks/{webhookId}/notifications/resend_by_query/jobs/{jobId} | Get resend by query job status *WebhooksV2Api* | [**getResendJobStatus**](docs/WebhooksV2Api.md#getResendJobStatus) | **GET** /webhooks/{webhookId}/notifications/resend_failed/jobs/{jobId} | Get resend job status *WebhooksV2Api* | [**getWebhook**](docs/WebhooksV2Api.md#getWebhook) | **GET** /webhooks/{webhookId} | Get webhook by id *WebhooksV2Api* | [**getWebhooks**](docs/WebhooksV2Api.md#getWebhooks) | **GET** /webhooks | Get all webhooks *WebhooksV2Api* | [**resendFailedNotifications**](docs/WebhooksV2Api.md#resendFailedNotifications) | **POST** /webhooks/{webhookId}/notifications/resend_failed | Resend failed notifications *WebhooksV2Api* | [**resendNotificationById**](docs/WebhooksV2Api.md#resendNotificationById) | **POST** /webhooks/{webhookId}/notifications/{notificationId}/resend | Resend notification by id +*WebhooksV2Api* | [**resendNotificationsByQuery**](docs/WebhooksV2Api.md#resendNotificationsByQuery) | **POST** /webhooks/{webhookId}/notifications/resend_by_query | Resend notifications by query *WebhooksV2Api* | [**resendNotificationsByResourceId**](docs/WebhooksV2Api.md#resendNotificationsByResourceId) | **POST** /webhooks/{webhookId}/notifications/resend_by_resource | Resend notifications by resource Id *WebhooksV2Api* | [**updateWebhook**](docs/WebhooksV2Api.md#updateWebhook) | **PATCH** /webhooks/{webhookId} | Update webhook *WhitelistIpAddressesApi* | [**getWhitelistIpAddresses**](docs/WhitelistIpAddressesApi.md#getWhitelistIpAddresses) | **GET** /management/api_users/{userId}/whitelist_ip_addresses | Get whitelisted ip addresses for an API Key @@ -535,7 +551,6 @@ Class | Method | HTTP request | Description - [AccountBase](docs/AccountBase.md) - [AccountBasedAccessProvider](docs/AccountBasedAccessProvider.md) - [AccountBasedAccessProviderInfo](docs/AccountBasedAccessProviderInfo.md) - - [AccountBasedProviderDetails](docs/AccountBasedProviderDetails.md) - [AccountConfig](docs/AccountConfig.md) - [AccountHolderDetails](docs/AccountHolderDetails.md) - [AccountIdentifier](docs/AccountIdentifier.md) @@ -546,6 +561,7 @@ Class | Method | HTTP request | Description - [AchAddress](docs/AchAddress.md) - [AchDestination](docs/AchDestination.md) - [AchPaymentInfo](docs/AchPaymentInfo.md) + - [ActionRecord](docs/ActionRecord.md) - [AdapterProcessingResult](docs/AdapterProcessingResult.md) - [AddAbiRequestDto](docs/AddAbiRequestDto.md) - [AddAssetToExternalWalletRequest](docs/AddAssetToExternalWalletRequest.md) @@ -567,7 +583,6 @@ Class | Method | HTTP request | Description - [AddressRegistryError](docs/AddressRegistryError.md) - [AddressRegistryGetVaultOptOutResponse](docs/AddressRegistryGetVaultOptOutResponse.md) - [AddressRegistryLegalEntity](docs/AddressRegistryLegalEntity.md) - - [AddressRegistryLegalEntityLegacy](docs/AddressRegistryLegalEntityLegacy.md) - [AddressRegistryListVaultOptOutsResponse](docs/AddressRegistryListVaultOptOutsResponse.md) - [AddressRegistryRemoveAllVaultOptOutsResponse](docs/AddressRegistryRemoveAllVaultOptOutsResponse.md) - [AddressRegistryRemoveVaultOptOutResponse](docs/AddressRegistryRemoveVaultOptOutResponse.md) @@ -599,6 +614,7 @@ Class | Method | HTTP request | Description - [ApprovalRequest](docs/ApprovalRequest.md) - [ApproversConfig](docs/ApproversConfig.md) - [ApproversConfigApprovalGroupsInner](docs/ApproversConfigApprovalGroupsInner.md) + - [Apy](docs/Apy.md) - [Asset](docs/Asset.md) - [AssetAlreadyExistHttpError](docs/AssetAlreadyExistHttpError.md) - [AssetAmount](docs/AssetAmount.md) @@ -630,6 +646,8 @@ Class | Method | HTTP request | Description - [AssetWallet](docs/AssetWallet.md) - [AssignVaultsToLegalEntityRequest](docs/AssignVaultsToLegalEntityRequest.md) - [AssignVaultsToLegalEntityResponse](docs/AssignVaultsToLegalEntityResponse.md) + - [AttachDetachUtxoLabelsRequest](docs/AttachDetachUtxoLabelsRequest.md) + - [AttachDetachUtxoLabelsResponse](docs/AttachDetachUtxoLabelsResponse.md) - [AuditLogData](docs/AuditLogData.md) - [AuditorData](docs/AuditorData.md) - [AuthorizationGroups](docs/AuthorizationGroups.md) @@ -652,6 +670,14 @@ Class | Method | HTTP request | Description - [BpsFee](docs/BpsFee.md) - [BusinessEntityTypeEnum](docs/BusinessEntityTypeEnum.md) - [BusinessIdentification](docs/BusinessIdentification.md) + - [ByorkConfigResponse](docs/ByorkConfigResponse.md) + - [ByorkSetTimeoutsRequest](docs/ByorkSetTimeoutsRequest.md) + - [ByorkSetVerdictEnum](docs/ByorkSetVerdictEnum.md) + - [ByorkTimeoutRange](docs/ByorkTimeoutRange.md) + - [ByorkVerdictEnum](docs/ByorkVerdictEnum.md) + - [ByorkVerdictRequest](docs/ByorkVerdictRequest.md) + - [ByorkVerdictResponse](docs/ByorkVerdictResponse.md) + - [ByorkVerdictResponseStatusEnum](docs/ByorkVerdictResponseStatusEnum.md) - [CallbackHandler](docs/CallbackHandler.md) - [CallbackHandlerRequest](docs/CallbackHandlerRequest.md) - [CancelTransactionResponse](docs/CancelTransactionResponse.md) @@ -750,6 +776,8 @@ Class | Method | HTTP request | Description - [CreateContractRequest](docs/CreateContractRequest.md) - [CreateConversionConfigOperationRequest](docs/CreateConversionConfigOperationRequest.md) - [CreateDisbursementConfigOperationRequest](docs/CreateDisbursementConfigOperationRequest.md) + - [CreateEarnActionRequest](docs/CreateEarnActionRequest.md) + - [CreateEarnActionResponse](docs/CreateEarnActionResponse.md) - [CreateInternalTransferRequest](docs/CreateInternalTransferRequest.md) - [CreateInternalWalletAssetRequest](docs/CreateInternalWalletAssetRequest.md) - [CreateMultichainTokenRequest](docs/CreateMultichainTokenRequest.md) @@ -805,7 +833,6 @@ Class | Method | HTTP request | Description - [DirectAccess](docs/DirectAccess.md) - [DirectAccessProvider](docs/DirectAccessProvider.md) - [DirectAccessProviderInfo](docs/DirectAccessProviderInfo.md) - - [DirectProviderDetails](docs/DirectProviderDetails.md) - [DisbursementAmountInstruction](docs/DisbursementAmountInstruction.md) - [DisbursementConfigOperation](docs/DisbursementConfigOperation.md) - [DisbursementInstruction](docs/DisbursementInstruction.md) @@ -830,6 +857,8 @@ Class | Method | HTTP request | Description - [DvnConfig](docs/DvnConfig.md) - [DvnConfigWithConfirmations](docs/DvnConfigWithConfirmations.md) - [EVMTokenCreateParamsDto](docs/EVMTokenCreateParamsDto.md) + - [EarnAsset](docs/EarnAsset.md) + - [EarnProvider](docs/EarnProvider.md) - [EditGasStationConfigurationResponse](docs/EditGasStationConfigurationResponse.md) - [EmbeddedWallet](docs/EmbeddedWallet.md) - [EmbeddedWalletAccount](docs/EmbeddedWalletAccount.md) @@ -879,6 +908,7 @@ Class | Method | HTTP request | Description - [ExecutionStepStatusEnum](docs/ExecutionStepStatusEnum.md) - [ExecutionStepType](docs/ExecutionStepType.md) - [ExecutionTransferOperation](docs/ExecutionTransferOperation.md) + - [Exposure](docs/Exposure.md) - [ExternalAccount](docs/ExternalAccount.md) - [ExternalAccountLocalBankAfrica](docs/ExternalAccountLocalBankAfrica.md) - [ExternalAccountMobileMoney](docs/ExternalAccountMobileMoney.md) @@ -906,6 +936,7 @@ Class | Method | HTTP request | Description - [FiatTransfer](docs/FiatTransfer.md) - [FixedAmountTypeEnum](docs/FixedAmountTypeEnum.md) - [FixedFee](docs/FixedFee.md) + - [FlowDirection](docs/FlowDirection.md) - [FreezeTransactionResponse](docs/FreezeTransactionResponse.md) - [FunctionDoc](docs/FunctionDoc.md) - [Funds](docs/Funds.md) @@ -915,7 +946,10 @@ Class | Method | HTTP request | Description - [GasslessStandardConfigurations](docs/GasslessStandardConfigurations.md) - [GasslessStandardConfigurationsGaslessStandardConfigurationsValue](docs/GasslessStandardConfigurationsGaslessStandardConfigurationsValue.md) - [GetAPIUsersResponse](docs/GetAPIUsersResponse.md) + - [GetActionResponse](docs/GetActionResponse.md) + - [GetActionsResponse](docs/GetActionsResponse.md) - [GetAuditLogsResponse](docs/GetAuditLogsResponse.md) + - [GetByorkVerdictResponse](docs/GetByorkVerdictResponse.md) - [GetConnectionsResponse](docs/GetConnectionsResponse.md) - [GetConsoleUsersResponse](docs/GetConsoleUsersResponse.md) - [GetDeployableAddressRequest](docs/GetDeployableAddressRequest.md) @@ -928,22 +962,27 @@ Class | Method | HTTP request | Description - [GetMaxSpendableAmountResponse](docs/GetMaxSpendableAmountResponse.md) - [GetMpcKeysResponse](docs/GetMpcKeysResponse.md) - [GetNFTsResponse](docs/GetNFTsResponse.md) + - [GetOpportunitiesResponse](docs/GetOpportunitiesResponse.md) - [GetOrdersResponse](docs/GetOrdersResponse.md) - [GetOtaStatusResponse](docs/GetOtaStatusResponse.md) - [GetOwnershipTokensResponse](docs/GetOwnershipTokensResponse.md) - [GetPagedExchangeAccountsResponse](docs/GetPagedExchangeAccountsResponse.md) - [GetPagedExchangeAccountsResponsePaging](docs/GetPagedExchangeAccountsResponsePaging.md) + - [GetPositionsResponse](docs/GetPositionsResponse.md) + - [GetProvidersResponse](docs/GetProvidersResponse.md) - [GetSigningKeyResponseDto](docs/GetSigningKeyResponseDto.md) - [GetTransactionOperation](docs/GetTransactionOperation.md) - [GetValidationKeyResponseDto](docs/GetValidationKeyResponseDto.md) - [GetWhitelistIpAddressesResponse](docs/GetWhitelistIpAddressesResponse.md) - [GetWorkspaceStatusResponse](docs/GetWorkspaceStatusResponse.md) - [GleifData](docs/GleifData.md) + - [GleifOtherLegalEntityName](docs/GleifOtherLegalEntityName.md) - [HttpContractDoesNotExistError](docs/HttpContractDoesNotExistError.md) - [IbanAddress](docs/IbanAddress.md) - [IbanDestination](docs/IbanDestination.md) - [IbanPaymentInfo](docs/IbanPaymentInfo.md) - [Identification](docs/Identification.md) + - [IdentificationPolicyOverride](docs/IdentificationPolicyOverride.md) - [IdlType](docs/IdlType.md) - [IndicativeQuoteEnum](docs/IndicativeQuoteEnum.md) - [IndicativeQuoteType](docs/IndicativeQuoteType.md) @@ -1000,6 +1039,7 @@ Class | Method | HTTP request | Description - [ListLegalEntitiesResponse](docs/ListLegalEntitiesResponse.md) - [ListOwnedCollectionsResponse](docs/ListOwnedCollectionsResponse.md) - [ListOwnedTokensResponse](docs/ListOwnedTokensResponse.md) + - [ListUtxosResponse](docs/ListUtxosResponse.md) - [ListVaultsForRegistrationResponse](docs/ListVaultsForRegistrationResponse.md) - [LocalBankTransferAfricaAddress](docs/LocalBankTransferAfricaAddress.md) - [LocalBankTransferAfricaDestination](docs/LocalBankTransferAfricaDestination.md) @@ -1052,6 +1092,7 @@ Class | Method | HTTP request | Description - [OneTimeAddressPeerType](docs/OneTimeAddressPeerType.md) - [OneTimeAddressReference](docs/OneTimeAddressReference.md) - [OperationExecutionFailure](docs/OperationExecutionFailure.md) + - [Opportunity](docs/Opportunity.md) - [OrderDetails](docs/OrderDetails.md) - [OrderExecutionStep](docs/OrderExecutionStep.md) - [OrderSide](docs/OrderSide.md) @@ -1069,6 +1110,8 @@ Class | Method | HTTP request | Description - [ParameterWithValue](docs/ParameterWithValue.md) - [ParticipantRelationshipType](docs/ParticipantRelationshipType.md) - [ParticipantsIdentification](docs/ParticipantsIdentification.md) + - [ParticipantsIdentificationPolicy](docs/ParticipantsIdentificationPolicy.md) + - [ParticipantsIdentificationSupportedEndpoint](docs/ParticipantsIdentificationSupportedEndpoint.md) - [PayeeAccount](docs/PayeeAccount.md) - [PayeeAccountResponse](docs/PayeeAccountResponse.md) - [PayeeAccountType](docs/PayeeAccountType.md) @@ -1116,6 +1159,7 @@ Class | Method | HTTP request | Description - [PolicyVerdictActionEnum](docs/PolicyVerdictActionEnum.md) - [PolicyVerdictActionEnum2](docs/PolicyVerdictActionEnum2.md) - [Position](docs/Position.md) + - [Position2](docs/Position2.md) - [PostalAddress](docs/PostalAddress.md) - [PreScreening](docs/PreScreening.md) - [PrefundedSettlement](docs/PrefundedSettlement.md) @@ -1158,6 +1202,8 @@ Class | Method | HTTP request | Description - [RenameConnectedAccountResponse](docs/RenameConnectedAccountResponse.md) - [RenameCosigner](docs/RenameCosigner.md) - [RenameVaultAccountResponse](docs/RenameVaultAccountResponse.md) + - [ResendByQueryRequest](docs/ResendByQueryRequest.md) + - [ResendByQueryResponse](docs/ResendByQueryResponse.md) - [ResendFailedNotificationsJobStatusResponse](docs/ResendFailedNotificationsJobStatusResponse.md) - [ResendFailedNotificationsRequest](docs/ResendFailedNotificationsRequest.md) - [ResendFailedNotificationsResponse](docs/ResendFailedNotificationsResponse.md) @@ -1187,6 +1233,9 @@ Class | Method | HTTP request | Description - [ScreeningOperationExecutionOutput](docs/ScreeningOperationExecutionOutput.md) - [ScreeningOperationFailure](docs/ScreeningOperationFailure.md) - [ScreeningOperationType](docs/ScreeningOperationType.md) + - [ScreeningPolicyAmount](docs/ScreeningPolicyAmount.md) + - [ScreeningPolicyAmountRange](docs/ScreeningPolicyAmountRange.md) + - [ScreeningPolicyCurrency](docs/ScreeningPolicyCurrency.md) - [ScreeningPolicyResponse](docs/ScreeningPolicyResponse.md) - [ScreeningProviderRulesConfigurationResponse](docs/ScreeningProviderRulesConfigurationResponse.md) - [ScreeningTRLinkAmount](docs/ScreeningTRLinkAmount.md) @@ -1294,8 +1343,6 @@ Class | Method | HTTP request | Description - [SystemMessageInfo](docs/SystemMessageInfo.md) - [TRLinkAPIPagedResponse](docs/TRLinkAPIPagedResponse.md) - [TRLinkAmount](docs/TRLinkAmount.md) - - [TRLinkAmount2](docs/TRLinkAmount2.md) - - [TRLinkAmountRange](docs/TRLinkAmountRange.md) - [TRLinkAssessTravelRuleRequest](docs/TRLinkAssessTravelRuleRequest.md) - [TRLinkAssessTravelRuleResponse](docs/TRLinkAssessTravelRuleResponse.md) - [TRLinkAssessmentDecision](docs/TRLinkAssessmentDecision.md) @@ -1308,7 +1355,6 @@ Class | Method | HTTP request | Description - [TRLinkCreateCustomerRequest](docs/TRLinkCreateCustomerRequest.md) - [TRLinkCreateIntegrationRequest](docs/TRLinkCreateIntegrationRequest.md) - [TRLinkCreateTrmRequest](docs/TRLinkCreateTrmRequest.md) - - [TRLinkCurrency](docs/TRLinkCurrency.md) - [TRLinkCustomerIntegrationResponse](docs/TRLinkCustomerIntegrationResponse.md) - [TRLinkCustomerResponse](docs/TRLinkCustomerResponse.md) - [TRLinkDestinationTransferPeerPath](docs/TRLinkDestinationTransferPeerPath.md) @@ -1400,7 +1446,6 @@ Class | Method | HTTP request | Description - [TradingAccountType](docs/TradingAccountType.md) - [TradingErrorSchema](docs/TradingErrorSchema.md) - [TradingProvider](docs/TradingProvider.md) - - [TradingProviderDetails](docs/TradingProviderDetails.md) - [Transaction](docs/Transaction.md) - [TransactionDirection](docs/TransactionDirection.md) - [TransactionFee](docs/TransactionFee.md) @@ -1510,6 +1555,13 @@ Class | Method | HTTP request | Description - [UserRole](docs/UserRole.md) - [UserStatus](docs/UserStatus.md) - [UserType](docs/UserType.md) + - [UtxoIdentifier](docs/UtxoIdentifier.md) + - [UtxoInput](docs/UtxoInput.md) + - [UtxoInput2](docs/UtxoInput2.md) + - [UtxoInputSelection](docs/UtxoInputSelection.md) + - [UtxoOutput](docs/UtxoOutput.md) + - [UtxoSelectionFilters](docs/UtxoSelectionFilters.md) + - [UtxoSelectionParams](docs/UtxoSelectionParams.md) - [ValidateAddressResponse](docs/ValidateAddressResponse.md) - [ValidateLayerZeroChannelResponse](docs/ValidateLayerZeroChannelResponse.md) - [ValidationKeyDto](docs/ValidationKeyDto.md) diff --git a/api/openapi.yaml b/api/openapi.yaml index 50e8db36..eaea9bb5 100644 --- a/api/openapi.yaml +++ b/api/openapi.yaml @@ -13937,6 +13937,161 @@ paths: \ job_id);" x-accepts: - application/json + /webhooks/{webhookId}/notifications/resend_by_query: + post: + description: | + Resend notifications matching the given query filters (statuses, events, time range, resource ID) + + Endpoint Permission: Owner, Admin, Non-Signing Admin, Editor, Signer. + operationId: resendNotificationsByQuery + parameters: + - description: "A unique identifier for the request. If the request is sent\ + \ multiple times with the same idempotency key, the server will return the\ + \ same response as the first request. The idempotency key is valid for 24\ + \ hours." + explode: false + in: header + name: Idempotency-Key + required: false + schema: + type: string + style: simple + - description: The ID of the webhook + explode: false + in: path + name: webhookId + required: true + schema: + type: string + style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/ResendByQueryRequest" + required: true + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/ResendByQueryResponse" + description: No matching notifications to resend + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "202": + content: + application/json: + schema: + $ref: "#/components/schemas/ResendByQueryResponse" + description: Resend notifications request was accepted and is being processed + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + Location: + $ref: "#/components/headers/Location" + default: + $ref: "#/components/responses/Error" + summary: Resend notifications by query + tags: + - Webhooks V2 + x-rate-limit-category: high_compute + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.webhooksV2.resendNotificationsByQuery(webhooksV2ApiResendNotificationsByQueryRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response =\ + \ fireblocks.webhooksV2().resendNotificationsByQuery(resendByQueryRequest,\ + \ webhookId, idempotencyKey);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.webhooks_v2.resend_notifications_by_query(resend_by_query_request,\ + \ webhook_id, idempotency_key);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.webhooksV2.resendNotificationsByQuery(webhooksV2ApiResendNotificationsByQueryRequest);" + - lang: Java + source: "CompletableFuture> response =\ + \ fireblocks.webhooksV2().resendNotificationsByQuery(resendByQueryRequest,\ + \ webhookId, idempotencyKey);" + - lang: Python + source: "response = fireblocks.webhooks_v2.resend_notifications_by_query(resend_by_query_request,\ + \ webhook_id, idempotency_key);" + x-content-type: application/json + x-accepts: + - application/json + /webhooks/{webhookId}/notifications/resend_by_query/jobs/{jobId}: + get: + description: | + Get the status of a resend by query job + operationId: getResendByQueryJobStatus + parameters: + - description: The ID of the webhook + explode: false + in: path + name: webhookId + required: true + schema: + type: string + style: simple + - description: The ID of the resend job + explode: false + in: path + name: jobId + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/ResendFailedNotificationsJobStatusResponse" + description: Job status + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Get resend by query job status + tags: + - Webhooks V2 + x-rate-limit-category: read + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.webhooksV2.getResendByQueryJobStatus(webhooksV2ApiGetResendByQueryJobStatusRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture>\ + \ response = fireblocks.webhooksV2().getResendByQueryJobStatus(webhookId,\ + \ jobId);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.webhooks_v2.get_resend_by_query_job_status(webhook_id,\ + \ job_id);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.webhooksV2.getResendByQueryJobStatus(webhooksV2ApiGetResendByQueryJobStatusRequest);" + - lang: Java + source: "CompletableFuture>\ + \ response = fireblocks.webhooksV2().getResendByQueryJobStatus(webhookId,\ + \ jobId);" + - lang: Python + source: "response = fireblocks.webhooks_v2.get_resend_by_query_job_status(webhook_id,\ + \ job_id);" + x-accepts: + - application/json /tokenization/templates: get: description: |- @@ -19527,65 +19682,866 @@ paths: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get positions summary by vault + summary: Get positions summary by vault + tags: + - Staking + x-rate-limit-category: query + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.staking.getSummaryByVault();" + name: Fireblocks SDK TypeScript example + - language: java + code: CompletableFuture> response + = fireblocks.staking().getSummaryByVault(); + name: Fireblocks SDK Java example + - language: python + code: response = fireblocks.staking.get_summary_by_vault(); + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.staking.getSummaryByVault();" + - lang: Java + source: CompletableFuture> response + = fireblocks.staking().getSummaryByVault(); + - lang: Python + source: response = fireblocks.staking.get_summary_by_vault(); + x-accepts: + - application/json + /staking/positions/{id}: + get: + description: "Returns full details for a single staking position: amounts, rewards,\ + \ status, chain, and vault." + operationId: getDelegationById + parameters: + - description: Unique identifier of the staking position. + explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/Delegation" + description: Position retrieved successfully. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: "Bad request: missing/invalid fields, unsupported amount, or\ + \ malformed payload." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: "Forbidden: insufficient permissions, disabled feature, or\ + \ restricted provider/validator." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: "Not found: requested resource does not exist (e.g., position,\ + \ validator, provider, or wallet)." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "429": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: "Rate limit exceeded: slow down and retry later." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "500": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: Internal error while processing the request. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Get position details + tags: + - Staking + x-rate-limit-category: query + x-readme: + code-samples: + - language: typescript + code: "const response: Promise> = fireblocks.staking.getDelegationById(stakingApiGetDelegationByIdRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: CompletableFuture> response = fireblocks.staking().getDelegationById(id); + name: Fireblocks SDK Java example + - language: python + code: response = fireblocks.staking.get_delegation_by_id(id); + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise> = fireblocks.staking.getDelegationById(stakingApiGetDelegationByIdRequest);" + - lang: Java + source: CompletableFuture> response = fireblocks.staking().getDelegationById(id); + - lang: Python + source: response = fireblocks.staking.get_delegation_by_id(id); + x-accepts: + - application/json + /staking/providers: + get: + description: |- + Returns all available staking providers with metadata such as name, ID, and supported chains. +
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. + operationId: getProviders + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/StakingGetProvidersResponse" + description: Supported providers retrieved successfully. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: "Forbidden: insufficient permissions, disabled feature, or\ + \ restricted provider/validator." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: "Not found: requested resource does not exist (e.g., position,\ + \ validator, provider, or wallet)." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "429": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: "Rate limit exceeded: slow down and retry later." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "500": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: Internal error while processing the request. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: List staking providers + tags: + - Staking + x-rate-limit-category: query + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.staking.getProviders();" + name: Fireblocks SDK TypeScript example + - language: java + code: CompletableFuture>> response = fireblocks.staking().getProviders(); + name: Fireblocks SDK Java example + - language: python + code: response = fireblocks.staking.get_providers(); + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.staking.getProviders();" + - lang: Java + source: CompletableFuture>> response = fireblocks.staking().getProviders(); + - lang: Python + source: response = fireblocks.staking.get_providers(); + x-accepts: + - application/json + /staking/providers/{providerId}/approveTermsOfService: + post: + description: Approves the provider's terms of service. Must be called once before + performing any staking operation with this provider. + operationId: approveTermsOfServiceByProviderId + parameters: + - description: Unique identifier of the staking provider. + explode: false + in: path + name: providerId + required: true + schema: + $ref: "#/components/schemas/StakingProvider" + style: simple + - description: "A unique identifier for the request. If the request is sent\ + \ multiple times with the same idempotency key, the server will return the\ + \ same response as the first request. The idempotency key is valid for 24\ + \ hours." + explode: false + in: header + name: Idempotency-Key + required: false + schema: + type: string + style: simple + responses: + "201": + description: Terms of service accepted. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: "Bad request: missing/invalid fields, unsupported amount, or\ + \ malformed payload." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: "Forbidden: insufficient permissions, disabled feature, or\ + \ restricted provider/validator." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: "Not found: requested resource does not exist (e.g., position,\ + \ validator, provider, or wallet)." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "429": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: "Rate limit exceeded: slow down and retry later." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "500": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: Internal error while processing the request. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Approve provider terms of service + tags: + - Staking + x-rate-limit-category: write + x-readme: + code-samples: + - language: typescript + code: "const response: Promise> = fireblocks.staking.approveTermsOfServiceByProviderId(stakingApiApproveTermsOfServiceByProviderIdRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response = fireblocks.staking().approveTermsOfServiceByProviderId(providerId,\ + \ idempotencyKey);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.staking.approve_terms_of_service_by_provider_id(provider_id,\ + \ idempotency_key);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise> = fireblocks.staking.approveTermsOfServiceByProviderId(stakingApiApproveTermsOfServiceByProviderIdRequest);" + - lang: Java + source: "CompletableFuture> response = fireblocks.staking().approveTermsOfServiceByProviderId(providerId,\ + \ idempotencyKey);" + - lang: Python + source: "response = fireblocks.staking.approve_terms_of_service_by_provider_id(provider_id,\ + \ idempotency_key);" + x-accepts: + - application/json + /earn/actions: + get: + description: | + Returns a paginated list of lending actions (deposits and withdrawals) for the authenticated tenant. + + **Note:** This endpoint is currently in beta and might be subject to changes. + operationId: getEarnActions + parameters: + - description: Cursor for the next or previous page of results. + explode: true + in: query + name: pageCursor + required: false + schema: + type: string + style: form + - description: "Number of items per page (default 100, max 100)." + explode: true + in: query + name: pageSize + required: false + schema: + default: 100 + format: int32 + maximum: 100 + minimum: 1 + type: integer + style: form + - description: Field to sort results by. + explode: true + in: query + name: sortBy + required: false + schema: + enum: + - createdAt + - updatedAt + type: string + style: form + - description: Sort order (ASC or DESC). + explode: true + in: query + name: order + required: false + schema: + default: DESC + enum: + - ASC + - DESC + example: ASC + type: string + style: form + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/GetActionsResponse" + description: OK + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: "Forbidden: insufficient permissions, disabled feature, or\ + \ restricted access." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: "Not found: requested resource does not exist." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "429": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: "Rate limit exceeded: slow down and retry later." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "500": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: Internal error while processing the request. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: List earn lending actions + tags: + - Earn (Beta) + x-rate-limit-category: query + x-readme: + code-samples: + - language: typescript + code: "const response: Promise> =\ + \ fireblocks.earnBeta.getEarnActions(earnBetaApiGetEarnActionsRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response = fireblocks.earnBeta().getEarnActions(pageCursor,\ + \ pageSize, sortBy, order);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.earn_beta.get_earn_actions(page_cursor, page_size,\ + \ sort_by, order);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise> =\ + \ fireblocks.earnBeta.getEarnActions(earnBetaApiGetEarnActionsRequest);" + - lang: Java + source: "CompletableFuture> response = fireblocks.earnBeta().getEarnActions(pageCursor,\ + \ pageSize, sortBy, order);" + - lang: Python + source: "response = fireblocks.earn_beta.get_earn_actions(page_cursor, page_size,\ + \ sort_by, order);" + x-accepts: + - application/json + post: + description: | + Creates and runs a sequence of on-chain steps for either a deposit into or a withdrawal from an earn + vault/market. Specify the operation with `action` in the request body (`DEPOSIT` or `WITHDRAW`). + + **Note:** This endpoint is currently in beta and might be subject to changes. + operationId: createEarnAction + parameters: + - description: "A unique identifier for the request. If the request is sent\ + \ multiple times with the same idempotency key, the server will return the\ + \ same response as the first request. The idempotency key is valid for 24\ + \ hours." + explode: false + in: header + name: Idempotency-Key + required: false + schema: + type: string + style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CreateEarnActionRequest" + required: true + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/CreateEarnActionResponse" + description: OK + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: "Bad request: missing/invalid fields, unsupported amount, or\ + \ malformed payload." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: "Forbidden: insufficient permissions, disabled feature, or\ + \ restricted provider." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: "Not found: requested resource does not exist (e.g., opportunity,\ + \ provider, or wallet)." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "429": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: "Rate limit exceeded: slow down and retry later." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "500": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: Internal error while processing the request. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Create and execute a lending action (deposit or withdraw) + tags: + - Earn (Beta) + x-rate-limit-category: write + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.earnBeta.createEarnAction(earnBetaApiCreateEarnActionRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response\ + \ = fireblocks.earnBeta().createEarnAction(createEarnActionRequest, idempotencyKey);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.earn_beta.create_earn_action(create_earn_action_request,\ + \ idempotency_key);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.earnBeta.createEarnAction(earnBetaApiCreateEarnActionRequest);" + - lang: Java + source: "CompletableFuture> response\ + \ = fireblocks.earnBeta().createEarnAction(createEarnActionRequest, idempotencyKey);" + - lang: Python + source: "response = fireblocks.earn_beta.create_earn_action(create_earn_action_request,\ + \ idempotency_key);" + x-content-type: application/json + x-accepts: + - application/json + /earn/actions/{id}: + get: + description: | + Returns one lending action by its action sequence id (tenant-scoped). + + **Note:** This endpoint is currently in beta and might be subject to changes. + operationId: getEarnAction + parameters: + - description: Action sequence id (UUID). + explode: false + in: path + name: id + required: true + schema: + minLength: 1 + type: string + style: simple + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/GetActionResponse" + description: OK + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: "Forbidden: insufficient permissions, disabled feature, or\ + \ restricted access." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: "Not found: action does not exist or is not visible for this\ + \ tenant." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "429": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: "Rate limit exceeded: slow down and retry later." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "500": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: Internal error while processing the request. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Get a single earn lending action + tags: + - Earn (Beta) + x-rate-limit-category: query + x-readme: + code-samples: + - language: typescript + code: "const response: Promise> =\ + \ fireblocks.earnBeta.getEarnAction(earnBetaApiGetEarnActionRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: CompletableFuture> response = fireblocks.earnBeta().getEarnAction(id); + name: Fireblocks SDK Java example + - language: python + code: response = fireblocks.earn_beta.get_earn_action(id); + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise> =\ + \ fireblocks.earnBeta.getEarnAction(earnBetaApiGetEarnActionRequest);" + - lang: Java + source: CompletableFuture> response = fireblocks.earnBeta().getEarnAction(id); + - lang: Python + source: response = fireblocks.earn_beta.get_earn_action(id); + x-accepts: + - application/json + /earn/opportunities: + get: + description: | + Get list of earn opportunities (vaults). + + **Note:** This endpoint is currently in beta and might be subject to changes. + operationId: getEarnOpportunities + parameters: + - description: Cursor for the next or previous page of results. + explode: true + in: query + name: pageCursor + required: false + schema: + type: string + style: form + - description: Number of items per page. + explode: true + in: query + name: pageSize + required: false + schema: + default: 100 + format: int32 + maximum: 100 + minimum: 1 + type: integer + style: form + - description: Field to sort results by. + explode: true + in: query + name: sortBy + required: false + schema: + type: string + style: form + - description: Sort order (ASC or DESC). + explode: true + in: query + name: order + required: false + schema: + default: DESC + enum: + - ASC + - DESC + example: ASC + type: string + style: form + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/GetOpportunitiesResponse" + description: OK + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: "Forbidden: insufficient permissions, disabled feature, or\ + \ restricted access." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: "Not found: requested resource does not exist." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "429": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: "Rate limit exceeded: slow down and retry later." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "500": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: Internal error while processing the request. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Get list of earn opportunities tags: - - Staking + - Earn (Beta) x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.staking.getSummaryByVault();" + code: "const response: Promise>\ + \ = fireblocks.earnBeta.getEarnOpportunities(earnBetaApiGetEarnOpportunitiesRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response - = fireblocks.staking().getSummaryByVault(); + code: "CompletableFuture> response\ + \ = fireblocks.earnBeta().getEarnOpportunities(pageCursor, pageSize, sortBy,\ + \ order);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.staking.get_summary_by_vault(); + code: "response = fireblocks.earn_beta.get_earn_opportunities(page_cursor,\ + \ page_size, sort_by, order);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.staking.getSummaryByVault();" + source: "const response: Promise>\ + \ = fireblocks.earnBeta.getEarnOpportunities(earnBetaApiGetEarnOpportunitiesRequest);" - lang: Java - source: CompletableFuture> response - = fireblocks.staking().getSummaryByVault(); + source: "CompletableFuture> response\ + \ = fireblocks.earnBeta().getEarnOpportunities(pageCursor, pageSize, sortBy,\ + \ order);" - lang: Python - source: response = fireblocks.staking.get_summary_by_vault(); + source: "response = fireblocks.earn_beta.get_earn_opportunities(page_cursor,\ + \ page_size, sort_by, order);" x-accepts: - application/json - /staking/positions/{id}: + /earn/positions: get: - description: "Returns full details for a single staking position: amounts, rewards,\ - \ status, chain, and vault." - operationId: getDelegationById + description: "Get list of earn positions for accounts tracked for this workspace.\ + \ \nOptional query parameters filter by chain, provider, and pagination.\n\ + \n**Note:** This endpoint is currently in beta and might be subject to changes.\n" + operationId: getEarnPositions parameters: - - description: Unique identifier of the staking position. - explode: false - in: path - name: id - required: true + - explode: true + in: query + name: chainId + required: false schema: + format: int32 + type: integer + style: form + - explode: true + in: query + name: providerId + required: false + schema: + enum: + - MORPHO + - AAVE type: string - style: simple + style: form + - description: Cursor for the next or previous page of results. + explode: true + in: query + name: pageCursor + required: false + schema: + type: string + style: form + - description: Number of items per page. + explode: true + in: query + name: pageSize + required: false + schema: + default: 100 + format: int32 + maximum: 100 + minimum: 1 + type: integer + style: form + - description: Field to sort results by. + explode: true + in: query + name: sortBy + required: false + schema: + type: string + style: form + - description: Sort order (ASC or DESC). + explode: true + in: query + name: order + required: false + schema: + default: DESC + enum: + - ASC + - DESC + example: ASC + type: string + style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/Delegation" - description: Position retrieved successfully. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorSchema" - description: "Bad request: missing/invalid fields, unsupported amount, or\ - \ malformed payload." + $ref: "#/components/schemas/GetPositionsResponse" + description: OK headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" @@ -19595,7 +20551,7 @@ paths: schema: $ref: "#/components/schemas/ErrorSchema" description: "Forbidden: insufficient permissions, disabled feature, or\ - \ restricted provider/validator." + \ restricted access." headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" @@ -19604,8 +20560,7 @@ paths: application/json: schema: $ref: "#/components/schemas/ErrorSchema" - description: "Not found: requested resource does not exist (e.g., position,\ - \ validator, provider, or wallet)." + description: "Not found: requested resource does not exist." headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" @@ -19629,43 +20584,92 @@ paths: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get position details + summary: Get list of earn positions tags: - - Staking + - Earn (Beta) x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.staking.getDelegationById(stakingApiGetDelegationByIdRequest);" + code: "const response: Promise>\ + \ = fireblocks.earnBeta.getEarnPositions(earnBetaApiGetEarnPositionsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.staking().getDelegationById(id); + code: "CompletableFuture> response = fireblocks.earnBeta().getEarnPositions(chainId,\ + \ providerId, pageCursor, pageSize, sortBy, order);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.staking.get_delegation_by_id(id); + code: "response = fireblocks.earn_beta.get_earn_positions(chain_id, provider_id,\ + \ page_cursor, page_size, sort_by, order);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.staking.getDelegationById(stakingApiGetDelegationByIdRequest);" + source: "const response: Promise>\ + \ = fireblocks.earnBeta.getEarnPositions(earnBetaApiGetEarnPositionsRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.staking().getDelegationById(id); + source: "CompletableFuture> response = fireblocks.earnBeta().getEarnPositions(chainId,\ + \ providerId, pageCursor, pageSize, sortBy, order);" - lang: Python - source: response = fireblocks.staking.get_delegation_by_id(id); + source: "response = fireblocks.earn_beta.get_earn_positions(chain_id, provider_id,\ + \ page_cursor, page_size, sort_by, order);" x-accepts: - application/json - /staking/providers: + /earn/providers: get: - description: |- - Returns all available staking providers with metadata such as name, ID, and supported chains. -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - operationId: getProviders + description: | + Get list of earn providers. + + **Note:** This endpoint is currently in beta and might be subject to changes. + operationId: getEarnProviders + parameters: + - description: Cursor for the next or previous page of results. + explode: true + in: query + name: pageCursor + required: false + schema: + type: string + style: form + - description: Number of items per page. + explode: true + in: query + name: pageSize + required: false + schema: + default: 100 + format: int32 + maximum: 100 + minimum: 1 + type: integer + style: form + - description: Field to sort results by. + explode: true + in: query + name: sortBy + required: false + schema: + type: string + style: form + - description: Sort order (ASC or DESC). + explode: true + in: query + name: order + required: false + schema: + default: DESC + enum: + - ASC + - DESC + example: ASC + type: string + style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/StakingGetProvidersResponse" - description: Supported providers retrieved successfully. + $ref: "#/components/schemas/GetProvidersResponse" + description: OK headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" @@ -19675,7 +20679,7 @@ paths: schema: $ref: "#/components/schemas/ErrorSchema" description: "Forbidden: insufficient permissions, disabled feature, or\ - \ restricted provider/validator." + \ restricted access." headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" @@ -19684,8 +20688,7 @@ paths: application/json: schema: $ref: "#/components/schemas/ErrorSchema" - description: "Not found: requested resource does not exist (e.g., position,\ - \ validator, provider, or wallet)." + description: "Not found: requested resource does not exist." headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" @@ -19709,45 +20712,58 @@ paths: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: List staking providers + summary: Get list of earn providers tags: - - Staking + - Earn (Beta) x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.staking.getProviders();" + code: "const response: Promise>\ + \ = fireblocks.earnBeta.getEarnProviders(earnBetaApiGetEarnProvidersRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture>> response = fireblocks.staking().getProviders(); + code: "CompletableFuture> response = fireblocks.earnBeta().getEarnProviders(pageCursor,\ + \ pageSize, sortBy, order);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.staking.get_providers(); + code: "response = fireblocks.earn_beta.get_earn_providers(page_cursor, page_size,\ + \ sort_by, order);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.staking.getProviders();" + source: "const response: Promise>\ + \ = fireblocks.earnBeta.getEarnProviders(earnBetaApiGetEarnProvidersRequest);" - lang: Java - source: CompletableFuture>> response = fireblocks.staking().getProviders(); + source: "CompletableFuture> response = fireblocks.earnBeta().getEarnProviders(pageCursor,\ + \ pageSize, sortBy, order);" - lang: Python - source: response = fireblocks.staking.get_providers(); + source: "response = fireblocks.earn_beta.get_earn_providers(page_cursor, page_size,\ + \ sort_by, order);" x-accepts: - application/json - /staking/providers/{providerId}/approveTermsOfService: + /earn/providers/{providerId}/approve_terms_of_service: post: - description: Approves the provider's terms of service. Must be called once before - performing any staking operation with this provider. - operationId: approveTermsOfServiceByProviderId + description: | + Approves the lending provider's terms of service for this workspace. When + `isTermsApprovalRequired` is true on the provider (see list providers), + call this once before creating or executing earn actions with that provider. + After success, `GET /earn/providers` reflects `isTermsOfServiceApproved`. + + **Note:** This endpoint is currently in beta and might be subject to changes. + operationId: approveTermsOfService parameters: - - description: Unique identifier of the staking provider. + - description: Stable protocol identifier for the earn provider (`MORPHO` or + `AAVE`). explode: false in: path name: providerId required: true schema: - $ref: "#/components/schemas/StakingProvider" + enum: + - MORPHO + - AAVE + type: string style: simple - description: "A unique identifier for the request. If the request is sent\ \ multiple times with the same idempotency key, the server will return the\ @@ -19761,7 +20777,7 @@ paths: type: string style: simple responses: - "201": + "204": description: Terms of service accepted. headers: X-Request-ID: @@ -19816,31 +20832,31 @@ paths: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Approve provider terms of service + summary: Approve earn provider terms of service tags: - - Staking + - Earn (Beta) x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.staking.approveTermsOfServiceByProviderId(stakingApiApproveTermsOfServiceByProviderIdRequest);" + code: "const response: Promise> = fireblocks.earnBeta.approveTermsOfService(earnBetaApiApproveTermsOfServiceRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.staking().approveTermsOfServiceByProviderId(providerId,\ + code: "CompletableFuture> response = fireblocks.earnBeta().approveTermsOfService(providerId,\ \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.staking.approve_terms_of_service_by_provider_id(provider_id,\ + code: "response = fireblocks.earn_beta.approve_terms_of_service(provider_id,\ \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.staking.approveTermsOfServiceByProviderId(stakingApiApproveTermsOfServiceByProviderIdRequest);" + source: "const response: Promise> = fireblocks.earnBeta.approveTermsOfService(earnBetaApiApproveTermsOfServiceRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.staking().approveTermsOfServiceByProviderId(providerId,\ + source: "CompletableFuture> response = fireblocks.earnBeta().approveTermsOfService(providerId,\ \ idempotencyKey);" - lang: Python - source: "response = fireblocks.staking.approve_terms_of_service_by_provider_id(provider_id,\ + source: "response = fireblocks.earn_beta.approve_terms_of_service(provider_id,\ \ idempotency_key);" x-accepts: - application/json @@ -19958,7 +20974,7 @@ paths: /trading/providers/{providerId}: get: description: | - Retrieve detailed information about a specific provider including its full manifest with order/quote requirements. + Retrieve a single provider by ID. **Note:** These endpoints are currently in beta and might be subject to changes. If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. @@ -19981,8 +20997,8 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/TradingProviderDetails" - description: Provider details + $ref: "#/components/schemas/TradingProvider" + description: Single provider details. headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" @@ -20042,23 +21058,19 @@ paths: x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tradingBeta.getTradingProviderById(tradingBetaApiGetTradingProviderByIdRequest);" + code: "const response: Promise> = fireblocks.tradingBeta.getTradingProviderById(tradingBetaApiGetTradingProviderByIdRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = - fireblocks.tradingBeta().getTradingProviderById(providerId); + code: CompletableFuture> response = fireblocks.tradingBeta().getTradingProviderById(providerId); name: Fireblocks SDK Java example - language: python code: response = fireblocks.trading_beta.get_trading_provider_by_id(provider_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tradingBeta.getTradingProviderById(tradingBetaApiGetTradingProviderByIdRequest);" + source: "const response: Promise> = fireblocks.tradingBeta.getTradingProviderById(tradingBetaApiGetTradingProviderByIdRequest);" - lang: Java - source: CompletableFuture> response = - fireblocks.tradingBeta().getTradingProviderById(providerId); + source: CompletableFuture> response = fireblocks.tradingBeta().getTradingProviderById(providerId); - lang: Python source: response = fireblocks.trading_beta.get_trading_provider_by_id(provider_id); x-accepts: @@ -22077,112 +23089,11 @@ paths: x-content-type: application/json x-accepts: - application/json - /address_registry/legal_entity: - get: - deprecated: true - description: |- - **Deprecated** — use `GET /v1/address_registry/legal_entities/{address}` instead. - Here `address` is a **query** parameter; the replacement uses a path segment. - The response includes only `companyName`, `countryCode`, and `companyId`. The replacement returns additional fields documented on that operation. - Optional **`asset`** is supported here only (not on the replacement path). - operationId: getLegalEntityByAddress - parameters: - - description: Blockchain address to look up - explode: true - in: query - name: address - required: true - schema: - example: 0x742d35cc6634c0532925a3b844bc9e7595f0beb0 - type: string - style: form - - description: Optional asset identifier (this deprecated operation only). - explode: true - in: query - name: asset - required: false - schema: - example: ETH - type: string - style: form - responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/AddressRegistryLegalEntityLegacy" - description: Legal entity found - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/AddressRegistryError" - description: Bad request – missing or invalid address - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/AddressRegistryError" - description: Forbidden – the authenticated workspace is not opted in to - the address registry (error code 2140) - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/AddressRegistryError" - description: "Not found (error code 2142) — unresolved address, no legal\ - \ entity for a resolved address, or the same not-found outcome in other\ - \ cases." - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: "[Deprecated] Look up legal entity by address (query parameter)" - tags: - - Compliance - x-rate-limit-category: high_compute - x-readme: - code-samples: - - language: typescript - code: "const response: Promise>\ - \ = fireblocks.compliance.getLegalEntityByAddress(complianceApiGetLegalEntityByAddressRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: "CompletableFuture>\ - \ response = fireblocks.compliance().getLegalEntityByAddress(address,\ - \ asset);" - name: Fireblocks SDK Java example - - language: python - code: "response = fireblocks.compliance.get_legal_entity_by_address(address,\ - \ asset);" - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.compliance.getLegalEntityByAddress(complianceApiGetLegalEntityByAddressRequest);" - - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.compliance().getLegalEntityByAddress(address, asset);" - - lang: Python - source: "response = fireblocks.compliance.get_legal_entity_by_address(address,\ - \ asset);" - x-accepts: - - application/json /address_registry/legal_entities/{address}: get: - description: |- - Returns legal entity information for the given blockchain address. URL-encode `{address}` when required. - Prefer this operation over the deprecated `GET /v1/address_registry/legal_entity?address=…`, which returns only `companyName`, `countryCode`, and `companyId`. This operation adds verification status, LEI, Travel Rule providers, and contact email (see response properties). + description: "Returns legal entity information for the given blockchain address\ + \ (verification status, LEI, Travel Rule providers, contact email, and related\ + \ fields — see response schema). URL-encode `{address}` when required." operationId: getLegalEntityForAddress parameters: - description: Blockchain address to look up @@ -22209,17 +23120,11 @@ paths: application/json: schema: $ref: "#/components/schemas/AddressRegistryError" - description: Bad request – missing or invalid address - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/AddressRegistryError" - description: Forbidden – the authenticated workspace is not opted in to - the address registry (error code 2140) + description: "Bad request — either request validation (path `{address}`\ + \ empty or whitespace-only after trim, e.g. encoded spaces only; numeric\ + \ code 4100), or the authenticated workspace is not opted in to the address\ + \ registry (numeric code 2140). The `message` field describes the failure;\ + \ use `code` to distinguish." headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" @@ -23932,8 +24837,11 @@ paths: - application/json /screening/aml/verdict/manual: post: - description: Set AML verdict for incoming transactions when Manual Screening - Verdict feature is enabled. + description: "Set AML verdict for incoming transactions when **BYORK Super Light**\ + \ (Manual Screening Verdict) is enabled. This endpoint is for Super Light\ + \ only. For **BYORK Light**, use POST /screening/byork/verdict instead. When\ + \ Super Light is retired, this endpoint will be deprecated; use the BYORK\ + \ Light verdict API for new integrations." operationId: setAmlVerdict parameters: - description: "A unique identifier for the request. If the request is sent\ @@ -23989,7 +24897,7 @@ paths: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Set AML Verdict for Manual Screening Verdict. + summary: Set AML Verdict (BYORK Super Light) tags: - Compliance x-rate-limit-category: write @@ -24020,6 +24928,458 @@ paths: x-content-type: application/json x-accepts: - application/json + /screening/byork/verdict: + get: + description: "Returns the current BYORK verdict and status for a transaction.\ + \ Status can be PRE_ACCEPTED, PENDING, RECEIVED (verdict is final but processing\ + \ not yet complete), or COMPLETED. Requires BYORK Light to be enabled for\ + \ the tenant. Returns 404 if no BYORK verdict is found for the transaction." + operationId: getByorkVerdict + parameters: + - description: Transaction ID + explode: true + in: query + name: txId + required: true + schema: + example: 550e8400-e29b-41d4-a716-446655440000 + type: string + style: form + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/GetByorkVerdictResponse" + description: Current verdict and status. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: BYORK Light not enabled for tenant or txId missing. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: No BYORK verdict found for this transaction. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "500": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: Internal server error. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Get BYORK Light verdict + tags: + - Compliance + x-rate-limit-category: read + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.compliance.getByorkVerdict(complianceApiGetByorkVerdictRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: CompletableFuture> response = + fireblocks.compliance().getByorkVerdict(txId); + name: Fireblocks SDK Java example + - language: python + code: response = fireblocks.compliance.get_byork_verdict(tx_id); + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.compliance.getByorkVerdict(complianceApiGetByorkVerdictRequest);" + - lang: Java + source: CompletableFuture> response = + fireblocks.compliance().getByorkVerdict(txId); + - lang: Python + source: response = fireblocks.compliance.get_byork_verdict(tx_id); + x-accepts: + - application/json + post: + description: "Submit verdict (ACCEPT or REJECT) for a transaction in the BYORK\ + \ Light flow. If the transaction is awaiting your decision, the verdict is\ + \ applied immediately (response status COMPLETED). If processing has not yet\ + \ reached that point, the verdict is stored and applied when it does (response\ + \ status PRE_ACCEPTED). Requires BYORK Light to be enabled for the tenant." + operationId: setByorkVerdict + parameters: + - description: "A unique identifier for the request. If the request is sent\ + \ multiple times with the same idempotency key, the server will return the\ + \ same response as the first request. The idempotency key is valid for 24\ + \ hours." + explode: false + in: header + name: Idempotency-Key + required: false + schema: + type: string + style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/ByorkVerdictRequest" + required: true + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/ByorkVerdictResponse" + description: Verdict applied (COMPLETED) or pre-accepted (PRE_ACCEPTED). + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: BYORK Light not enabled for tenant or invalid verdict. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: "BYORK decision already final, screening already completed,\ + \ or state inconsistent." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "425": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: Too Early - transaction not found (screening not started yet). + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "500": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: Internal server error. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Set BYORK Light verdict + tags: + - Compliance + x-rate-limit-category: write + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.compliance.setByorkVerdict(complianceApiSetByorkVerdictRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response = fireblocks.compliance().setByorkVerdict(byorkVerdictRequest,\ + \ idempotencyKey);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.compliance.set_byork_verdict(byork_verdict_request,\ + \ idempotency_key);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.compliance.setByorkVerdict(complianceApiSetByorkVerdictRequest);" + - lang: Java + source: "CompletableFuture> response = fireblocks.compliance().setByorkVerdict(byorkVerdictRequest,\ + \ idempotencyKey);" + - lang: Python + source: "response = fireblocks.compliance.set_byork_verdict(byork_verdict_request,\ + \ idempotency_key);" + x-content-type: application/json + x-accepts: + - application/json + /screening/byork/config: + get: + description: "Retrieves BYORK Light configuration for the authenticated tenant\ + \ (timeouts, active flag, allowed timeout ranges). Returns default config\ + \ when none exists. Requires BYORK Light to be enabled for the tenant." + operationId: getByorkConfig + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/ByorkConfigResponse" + description: BYORK configuration (or default). + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: BYORK Light not enabled for tenant. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Get BYORK Light configuration + tags: + - Compliance + x-rate-limit-category: read + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.compliance.getByorkConfig();" + name: Fireblocks SDK TypeScript example + - language: java + code: CompletableFuture> response = fireblocks.compliance().getByorkConfig(); + name: Fireblocks SDK Java example + - language: python + code: response = fireblocks.compliance.get_byork_config(); + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.compliance.getByorkConfig();" + - lang: Java + source: CompletableFuture> response = fireblocks.compliance().getByorkConfig(); + - lang: Python + source: response = fireblocks.compliance.get_byork_config(); + x-accepts: + - application/json + /screening/byork/config/activate: + post: + description: "Activates BYORK Light for the authenticated tenant (sets config.active\ + \ to true). Once activated, BYORK screening applies to matching transactions.\ + \ Requires BYORK Light to be enabled for the tenant (contact your CSM to enable)." + operationId: activateByorkConfig + parameters: + - description: "A unique identifier for the request. If the request is sent\ + \ multiple times with the same idempotency key, the server will return the\ + \ same response as the first request. The idempotency key is valid for 24\ + \ hours." + explode: false + in: header + name: Idempotency-Key + required: false + schema: + type: string + style: simple + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/ByorkConfigResponse" + description: BYORK configuration activated. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: BYORK Light not enabled for tenant. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Activate BYORK Light + tags: + - Compliance + x-rate-limit-category: write + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.compliance.activateByorkConfig(complianceApiActivateByorkConfigRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: CompletableFuture> response = fireblocks.compliance().activateByorkConfig(idempotencyKey); + name: Fireblocks SDK Java example + - language: python + code: response = fireblocks.compliance.activate_byork_config(idempotency_key); + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.compliance.activateByorkConfig(complianceApiActivateByorkConfigRequest);" + - lang: Java + source: CompletableFuture> response = fireblocks.compliance().activateByorkConfig(idempotencyKey); + - lang: Python + source: response = fireblocks.compliance.activate_byork_config(idempotency_key); + x-accepts: + - application/json + /screening/byork/config/deactivate: + post: + description: "Deactivates BYORK Light for the authenticated tenant (sets config.active\ + \ to false). Once deactivated, BYORK screening no longer applies until activated\ + \ again. Requires BYORK Light to be enabled for the tenant (contact your CSM\ + \ to enable)." + operationId: deactivateByorkConfig + parameters: + - description: "A unique identifier for the request. If the request is sent\ + \ multiple times with the same idempotency key, the server will return the\ + \ same response as the first request. The idempotency key is valid for 24\ + \ hours." + explode: false + in: header + name: Idempotency-Key + required: false + schema: + type: string + style: simple + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/ByorkConfigResponse" + description: BYORK configuration deactivated. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: BYORK Light not enabled for tenant. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Deactivate BYORK Light + tags: + - Compliance + x-rate-limit-category: write + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.compliance.deactivateByorkConfig(complianceApiDeactivateByorkConfigRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: CompletableFuture> response = fireblocks.compliance().deactivateByorkConfig(idempotencyKey); + name: Fireblocks SDK Java example + - language: python + code: response = fireblocks.compliance.deactivate_byork_config(idempotency_key); + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.compliance.deactivateByorkConfig(complianceApiDeactivateByorkConfigRequest);" + - lang: Java + source: CompletableFuture> response = fireblocks.compliance().deactivateByorkConfig(idempotencyKey); + - lang: Python + source: response = fireblocks.compliance.deactivate_byork_config(idempotency_key); + x-accepts: + - application/json + /screening/byork/config/timeouts: + put: + description: "Updates timeout values for BYORK wait-for-response (incoming and/or\ + \ outgoing). At least one of incomingTimeoutSeconds or outgoingTimeoutSeconds\ + \ is required. Values must be within the ranges returned in GET config (timeoutRangeIncoming\ + \ for incomingTimeoutSeconds, timeoutRangeOutgoing for outgoingTimeoutSeconds).\ + \ Requires BYORK Light to be enabled for the tenant (contact your CSM to enable)." + operationId: setByorkTimeouts + parameters: + - description: "A unique identifier for the request. If the request is sent\ + \ multiple times with the same idempotency key, the server will return the\ + \ same response as the first request. The idempotency key is valid for 24\ + \ hours." + explode: false + in: header + name: Idempotency-Key + required: false + schema: + type: string + style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/ByorkSetTimeoutsRequest" + required: true + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/ByorkConfigResponse" + description: Timeouts updated. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: "BYORK Light not enabled, or timeout value out of range, or\ + \ missing both timeouts." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Set BYORK Light timeouts + tags: + - Compliance + x-rate-limit-category: write + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.compliance.setByorkTimeouts(complianceApiSetByorkTimeoutsRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response = fireblocks.compliance().setByorkTimeouts(byorkSetTimeoutsRequest,\ + \ idempotencyKey);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.compliance.set_byork_timeouts(byork_set_timeouts_request,\ + \ idempotency_key);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.compliance.setByorkTimeouts(complianceApiSetByorkTimeoutsRequest);" + - lang: Java + source: "CompletableFuture> response = fireblocks.compliance().setByorkTimeouts(byorkSetTimeoutsRequest,\ + \ idempotencyKey);" + - lang: Python + source: "response = fireblocks.compliance.set_byork_timeouts(byork_set_timeouts_request,\ + \ idempotency_key);" + x-content-type: application/json + x-accepts: + - application/json /screening/trlink/partners: get: description: "Retrieves a list of all available Travel Rule Support integration\ @@ -29813,28 +31173,35 @@ paths: \ api_key_id, request_id);" x-accepts: - application/json - /legal_entities: + /utxo_management/{vaultAccountId}/{assetId}/unspent_outputs: get: description: |- - Returns legal entity registrations for the workspace with cursor-based pagination. - If query parameter vaultAccountId is used it returns the legal entity registration associated with a specific vault account. If no explicit mapping exists for the vault, the workspace default legal entity is returned. Returns an empty response if neither a vault mapping nor a default legal entity is configured. + Returns a paginated list of unspent transaction outputs (UTXOs) for a UTXO-based asset in a vault account, with optional filters for labels, statuses, amounts, and more. + **Note:** These endpoints are currently in beta and might be subject to changes.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - operationId: listLegalEntities + operationId: getUtxos parameters: - - description: "The ID of the vault account. When provided, returns the legal\ - \ entity associated with that vault account and pagination parameters are\ - \ ignored." - explode: true - in: query + - description: The ID of the vault account + explode: false + in: path name: vaultAccountId - required: false + required: true schema: format: numeric type: string x-fb-entity: vault_account - style: form - - description: Cursor string returned in `next` or `prev` of a previous response. - Ignored when `vaultAccountId` is provided. + style: simple + - description: The ID of the asset + explode: false + in: path + name: assetId + required: true + schema: + type: string + x-fb-entity: asset + style: simple + - description: Cursor for the next page of results + example: MjAyNS0wNy0wOSAxMDo1MzoxMy40NTI=:NA== explode: true in: query name: pageCursor @@ -29842,41 +31209,318 @@ paths: schema: type: string style: form - - description: Maximum number of registrations to return. Ignored when `vaultAccountId` - is provided. + - description: "Number of results per page (max 250, default 50)" + example: 50 explode: true in: query name: pageSize required: false schema: default: 50 - maximum: 100 + maximum: 250 minimum: 1 type: integer style: form - - description: Field to sort results by. Ignored when `vaultAccountId` is provided. + - description: Field to sort by + example: AMOUNT explode: true in: query - name: sortBy + name: sort required: false schema: enum: - - createdAt - - updatedAt + - AMOUNT + - CONFIRMATIONS type: string style: form - - description: Sort order. Ignored when `vaultAccountId` is provided. + - description: Sort order + example: ASC explode: true in: query name: order required: false schema: - default: DESC enum: - ASC - DESC type: string style: form + - description: Only return UTXOs that have ALL of these labels (AND logic). + example: + - cold-storage + explode: true + in: query + name: includeAllLabels + required: false + schema: + items: + type: string + type: array + style: form + - description: Return UTXOs that have ANY of these labels (OR logic). + example: + - vip + - high-value + explode: true + in: query + name: includeAnyLabels + required: false + schema: + items: + type: string + type: array + style: form + - description: Exclude UTXOs that have ANY of these labels. + example: + - deprecated + explode: true + in: query + name: excludeAnyLabels + required: false + schema: + items: + type: string + type: array + style: form + - description: Filter by UTXO statuses to include. + example: + - AVAILABLE + - PENDING + explode: true + in: query + name: includeStatuses + required: false + schema: + items: + type: string + type: array + style: form + - description: Filter by address + example: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa + explode: true + in: query + name: address + required: false + schema: + type: string + style: form + - description: Minimum amount filter + example: "0.001" + explode: true + in: query + name: minAmount + required: false + schema: + type: string + style: form + - description: Maximum amount filter + example: "1.0" + explode: true + in: query + name: maxAmount + required: false + schema: + type: string + style: form + - description: Include change outputs + example: true + explode: true + in: query + name: useChange + required: false + schema: + type: boolean + style: form + - description: Include coinbase outputs + example: true + explode: true + in: query + name: useCoinbase + required: false + schema: + type: boolean + style: form + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/ListUtxosResponse" + description: A paginated list of UTXOs + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: List unspent outputs (UTXOs) + tags: + - UTXO Management (Beta) + x-rate-limit-category: read + x-readme: + code-samples: + - language: typescript + code: "const response: Promise> =\ + \ fireblocks.uTXOManagementBeta.getUtxos(uTXOManagementBetaApiGetUtxosRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response = fireblocks.uTXOManagementBeta().getUtxos(vaultAccountId,\ + \ assetId, pageCursor, pageSize, sort, order, includeAllLabels, includeAnyLabels,\ + \ excludeAnyLabels, includeStatuses, address, minAmount, maxAmount, useChange,\ + \ useCoinbase);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.u_t_x_o_management_beta.get_utxos(vault_account_id,\ + \ asset_id, page_cursor, page_size, sort, order, include_all_labels, include_any_labels,\ + \ exclude_any_labels, include_statuses, address, min_amount, max_amount,\ + \ use_change, use_coinbase);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise> =\ + \ fireblocks.uTXOManagementBeta.getUtxos(uTXOManagementBetaApiGetUtxosRequest);" + - lang: Java + source: "CompletableFuture> response = fireblocks.uTXOManagementBeta().getUtxos(vaultAccountId,\ + \ assetId, pageCursor, pageSize, sort, order, includeAllLabels, includeAnyLabels,\ + \ excludeAnyLabels, includeStatuses, address, minAmount, maxAmount, useChange,\ + \ useCoinbase);" + - lang: Python + source: "response = fireblocks.u_t_x_o_management_beta.get_utxos(vault_account_id,\ + \ asset_id, page_cursor, page_size, sort, order, include_all_labels, include_any_labels,\ + \ exclude_any_labels, include_statuses, address, min_amount, max_amount,\ + \ use_change, use_coinbase);" + x-accepts: + - application/json + /utxo_management/{vaultAccountId}/{assetId}/labels: + patch: + description: |- + Attach or detach labels to/from UTXOs in a vault account. Labels can be used for organizing and filtering UTXOs. + Labels are applied additively — `labelsToAttach` adds to the existing label set and `labelsToDetach` removes from it. Neither operation replaces the full set. + **Note:** These endpoints are currently in beta and might be subject to changes. +
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. + operationId: updateUtxoLabels + parameters: + - description: The ID of the vault account + explode: false + in: path + name: vaultAccountId + required: true + schema: + format: numeric + type: string + x-fb-entity: vault_account + style: simple + - description: The ID of the asset + explode: false + in: path + name: assetId + required: true + schema: + type: string + x-fb-entity: asset + style: simple + - description: "A unique identifier for the request. If the request is sent\ + \ multiple times with the same idempotency key, the server will return the\ + \ same response as the first request. The idempotency key is valid for 24\ + \ hours." + explode: false + in: header + name: Idempotency-Key + required: false + schema: + type: string + style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/AttachDetachUtxoLabelsRequest" + required: true + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/AttachDetachUtxoLabelsResponse" + description: UTXOs with updated labels + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Attach or detach labels to/from UTXOs + tags: + - UTXO Management (Beta) + x-rate-limit-category: write + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.uTXOManagementBeta.updateUtxoLabels(uTXOManagementBetaApiUpdateUtxoLabelsRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response\ + \ = fireblocks.uTXOManagementBeta().updateUtxoLabels(attachDetachUtxoLabelsRequest,\ + \ vaultAccountId, assetId, idempotencyKey);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.u_t_x_o_management_beta.update_utxo_labels(attach_detach_utxo_labels_request,\ + \ vault_account_id, asset_id, idempotency_key);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.uTXOManagementBeta.updateUtxoLabels(uTXOManagementBetaApiUpdateUtxoLabelsRequest);" + - lang: Java + source: "CompletableFuture> response\ + \ = fireblocks.uTXOManagementBeta().updateUtxoLabels(attachDetachUtxoLabelsRequest,\ + \ vaultAccountId, assetId, idempotencyKey);" + - lang: Python + source: "response = fireblocks.u_t_x_o_management_beta.update_utxo_labels(attach_detach_utxo_labels_request,\ + \ vault_account_id, asset_id, idempotency_key);" + x-content-type: application/json + x-accepts: + - application/json + /legal_entities: + get: + description: |- + Returns legal entity registrations for the workspace with cursor-based pagination. + If query parameter vaultAccountId is used it returns the legal entity registration associated with a specific vault account. If no explicit mapping exists for the vault, the workspace default legal entity is returned. Returns an empty response if neither a vault mapping nor a default legal entity is configured. +
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. + operationId: listLegalEntities + parameters: + - description: "The ID of the vault account. When provided, returns the legal\ + \ entity associated with that vault account and pagination parameters are\ + \ ignored." + explode: true + in: query + name: vaultAccountId + required: false + schema: + format: numeric + type: string + x-fb-entity: vault_account + style: form + - description: Cursor string returned in `next` or `prev` of a previous response. + Ignored when `vaultAccountId` is provided. + explode: true + in: query + name: pageCursor + required: false + schema: + type: string + style: form + - description: Maximum number of registrations to return. Ignored when `vaultAccountId` + is provided. + explode: true + in: query + name: pageSize + required: false + schema: + default: 50 + maximum: 100 + minimum: 1 + type: integer + style: form responses: "200": content: @@ -29903,11 +31547,11 @@ paths: - language: java code: "CompletableFuture> response\ \ = fireblocks.compliance().listLegalEntities(vaultAccountId, pageCursor,\ - \ pageSize, sortBy, order);" + \ pageSize);" name: Fireblocks SDK Java example - language: python code: "response = fireblocks.compliance.list_legal_entities(vault_account_id,\ - \ page_cursor, page_size, sort_by, order);" + \ page_cursor, page_size);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript @@ -29916,10 +31560,10 @@ paths: - lang: Java source: "CompletableFuture> response\ \ = fireblocks.compliance().listLegalEntities(vaultAccountId, pageCursor,\ - \ pageSize, sortBy, order);" + \ pageSize);" - lang: Python source: "response = fireblocks.compliance.list_legal_entities(vault_account_id,\ - \ page_cursor, page_size, sort_by, order);" + \ page_cursor, page_size);" x-accepts: - application/json post: @@ -36454,6 +38098,7 @@ components: enum: - VAULT_ACCOUNT - EXCHANGE_ACCOUNT + - CONNECTED_ACCOUNT - INTERNAL_WALLET - EXTERNAL_WALLET - CONTRACT @@ -40093,6 +41738,7 @@ components: - POLONIEX - External - Internal + - VIRTUAL_ACCOUNT type: string SourceTransferPeerPath: description: The source of the transaction. @@ -40199,6 +41845,148 @@ components: example: abcdef type: string type: object + UtxoSelectionFilters: + description: | + Narrow the UTXO candidate pool. All specified filters are AND-ed together. This feature is currently in beta and might be subject to changes. + example: + minAmount: "0.001" + includeAnyLabels: + - vip + - high-value + address: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa + includeAllLabels: + - cold-storage + useCoinbase: true + useChange: true + excludeAnyLabels: + - deprecated + maxAmount: "9.999" + properties: + includeAllLabels: + description: Only include UTXOs that have ALL of these labels. + example: + - cold-storage + items: + type: string + type: array + includeAnyLabels: + description: Only include UTXOs that have at least one of these labels. + example: + - vip + - high-value + items: + type: string + type: array + excludeAnyLabels: + description: Exclude UTXOs that have any of these labels. + example: + - deprecated + items: + type: string + type: array + address: + description: Only include UTXOs from this specific address. + example: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa + type: string + minAmount: + description: "Minimum UTXO amount in the asset's base unit (e.g., BTC)." + example: "0.001" + type: string + maxAmount: + description: "Maximum UTXO amount in the asset's base unit (e.g., BTC)." + example: "9.999" + type: string + useChange: + description: Set to false to exclude change UTXOs. Default is true. + example: true + type: boolean + useCoinbase: + description: Set to false to exclude coinbase UTXOs. Default is true. + example: true + type: boolean + type: object + UtxoInput: + example: + txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + vout: 0 + properties: + txHash: + example: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + type: string + vout: + example: 0 + type: integer + required: + - txHash + - vout + type: object + UtxoInputSelection: + description: | + Explicitly control which UTXOs to include or exclude. This feature is currently in beta and might be subject to changes. + example: + inputsToExclude: + - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + vout: 0 + - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + vout: 0 + fillFeeForSelectedInputs: true + inputsToSpend: + - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + vout: 0 + - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + vout: 0 + properties: + inputsToSpend: + description: Force-include specific UTXOs by txHash and vout. + items: + $ref: "#/components/schemas/UtxoInput" + type: array + inputsToExclude: + description: Exclude specific UTXOs from selection. + items: + $ref: "#/components/schemas/UtxoInput" + type: array + fillFeeForSelectedInputs: + description: | + When true and inputsToSpend is provided, automatically add more UTXOs to cover the transaction fee. Requires inputsToSpend. + example: true + type: boolean + type: object + UtxoSelectionParams: + description: | + For UTXO-based blockchains only. Controls which UTXOs are used for automatic selection. Cannot be used together with extraParameters.inputsSelection. This feature is currently in beta and might be subject to changes. + example: + inputSelection: + inputsToExclude: + - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + vout: 0 + - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + vout: 0 + fillFeeForSelectedInputs: true + inputsToSpend: + - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + vout: 0 + - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + vout: 0 + filters: + minAmount: "0.001" + includeAnyLabels: + - vip + - high-value + address: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa + includeAllLabels: + - cold-storage + useCoinbase: true + useChange: true + excludeAnyLabels: + - deprecated + maxAmount: "9.999" + properties: + filters: + $ref: "#/components/schemas/UtxoSelectionFilters" + inputSelection: + $ref: "#/components/schemas/UtxoInputSelection" + type: object TravelRuleTransactionBlockchainInfo: description: Information about the blockchain transaction. example: @@ -43907,6 +45695,32 @@ components: autoStaking: true operation: TRANSFER replaceTxByHash: 00000000-0000-0000-0000-000000000000 + utxoSelectionParams: + inputSelection: + inputsToExclude: + - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + vout: 0 + - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + vout: 0 + fillFeeForSelectedInputs: true + inputsToSpend: + - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + vout: 0 + - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + vout: 0 + filters: + minAmount: "0.001" + includeAnyLabels: + - vip + - high-value + address: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa + includeAllLabels: + - cold-storage + useCoinbase: true + useChange: true + excludeAnyLabels: + - deprecated + maxAmount: "9.999" properties: operation: $ref: "#/components/schemas/TransactionOperation" @@ -44000,6 +45814,8 @@ components: type: string extraParameters: $ref: "#/components/schemas/ExtraParameters" + utxoSelectionParams: + $ref: "#/components/schemas/UtxoSelectionParams" customerRefId: description: The ID for AML providers to associate the owner of funds with transactions. @@ -47078,6 +48894,32 @@ components: autoStaking: true operation: TRANSFER replaceTxByHash: 00000000-0000-0000-0000-000000000000 + utxoSelectionParams: + inputSelection: + inputsToExclude: + - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + vout: 0 + - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + vout: 0 + fillFeeForSelectedInputs: true + inputsToSpend: + - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + vout: 0 + - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + vout: 0 + filters: + minAmount: "0.001" + includeAnyLabels: + - vip + - high-value + address: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa + includeAllLabels: + - cold-storage + useCoinbase: true + useChange: true + excludeAnyLabels: + - deprecated + maxAmount: "9.999" properties: transactionRequest: $ref: "#/components/schemas/TransactionRequest" @@ -48316,6 +50158,32 @@ components: autoStaking: true operation: TRANSFER replaceTxByHash: 00000000-0000-0000-0000-000000000000 + utxoSelectionParams: + inputSelection: + inputsToExclude: + - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + vout: 0 + - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + vout: 0 + fillFeeForSelectedInputs: true + inputsToSpend: + - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + vout: 0 + - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + vout: 0 + filters: + minAmount: "0.001" + includeAnyLabels: + - vip + - high-value + address: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa + includeAllLabels: + - cold-storage + useCoinbase: true + useChange: true + excludeAnyLabels: + - deprecated + maxAmount: "9.999" isDstCollateral: true properties: transactionRequest: @@ -48960,6 +50828,65 @@ components: - status - total type: object + ResendByQueryRequest: + example: + resourceId: 123e4567-e89b-12d3-a456-426614174000 + statuses: + - ON_HOLD + - IN_PROGRESS + startTime: 1625097600000 + endTime: 1625184000000 + events: + - transaction.created + - transaction.status.updated + properties: + statuses: + description: | + (optional) List of notification statuses to resend + - Default if missing: `["FAILED", "ON_HOLD"]` + example: + - ON_HOLD + - IN_PROGRESS + items: + $ref: "#/components/schemas/NotificationStatus" + type: array + startTime: + description: | + (optional) Start time for the resend window in milliseconds since epoch, within the last 72 hours - Default if missing means 24 hours before the current time in milliseconds since epoch - Maximum value is current time in milliseconds since epoch - Minimum value is 72 hours before the current time in milliseconds since epoch + example: 1625097600000 + type: number + endTime: + description: | + (optional) End time for the resend window in milliseconds since epoch, within the last 72 hours - Default if missing means current time in milliseconds since epoch - Requires startTime to be provided - Must be after startTime - Time window between startTime and endTime must not exceed 24 hours + example: 1625184000000 + type: number + events: + description: | + (optional) Event types to resend, default is all event types + - Default if missing means all events will be included + - Empty array means all events will be included + example: + - transaction.created + - transaction.status.updated + items: + $ref: "#/components/schemas/WebhookEvent" + type: array + resourceId: + description: | + (optional) Resource ID to filter notifications by + example: 123e4567-e89b-12d3-a456-426614174000 + type: string + type: object + ResendByQueryResponse: + example: + total: 10 + properties: + total: + description: The total number of notifications that are scheduled to be + resent. + example: 10 + type: number + type: object AuditorData: properties: name: @@ -54383,6 +56310,738 @@ components: items: $ref: "#/components/schemas/Provider" type: array + ActionRecord: + description: One row in the lending action execution sequence. + example: + actionType: APPROVE + errorMessage: errorMessage + txId: tx_abc123def456 + txHash: 0x1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b + status: COMPLETED + updatedAt: 2025-03-20T08:30:00Z + properties: + actionType: + description: Kind of step in the lending sequence. + enum: + - APPROVE + - DEPOSIT + - WITHDRAW + example: APPROVE + type: string + status: + description: Step lifecycle status. + enum: + - NOT_STARTED + - PROCESSING + - PENDING_SIGNATURE + - BROADCASTING + - CONFIRMING + - COMPLETED + - FAILED + - CANCELED + example: COMPLETED + type: string + txId: + description: Fireblocks transaction id when applicable (unset when NOT_STARTED). + example: tx_abc123def456 + type: string + txHash: + description: On-chain transaction hash when applicable (unset when NOT_STARTED). + example: 0x1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b + type: string + errorMessage: + description: Error detail when the step failed. + type: string + updatedAt: + description: Last update time (ISO-8601); may be empty when status is NOT_STARTED. + example: 2025-03-20T08:30:00Z + type: string + required: + - actionType + - status + - updatedAt + type: object + GetActionResponse: + description: Single lending action (intent plus per-step execution rows). + example: + actionType: DEPOSIT + createdAt: 2025-01-15T10:00:00Z + opportunityId: morpho-usdc-vault-1 + amount: "1500.5" + positionId: 770e8400-e29b-41d4-a716-446655440002 + records: + - actionType: APPROVE + errorMessage: errorMessage + txId: tx_abc123def456 + txHash: 0x1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b + status: COMPLETED + updatedAt: 2025-03-20T08:30:00Z + - actionType: APPROVE + errorMessage: errorMessage + txId: tx_abc123def456 + txHash: 0x1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b + status: COMPLETED + updatedAt: 2025-03-20T08:30:00Z + - actionType: APPROVE + errorMessage: errorMessage + txId: tx_abc123def456 + txHash: 0x1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b + status: COMPLETED + updatedAt: 2025-03-20T08:30:00Z + - actionType: APPROVE + errorMessage: errorMessage + txId: tx_abc123def456 + txHash: 0x1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b + status: COMPLETED + updatedAt: 2025-03-20T08:30:00Z + providerId: MORPHO + id: 660e8400-e29b-41d4-a716-446655440001 + status: IN_PROGRESS + updatedAt: 2025-03-20T08:30:00Z + properties: + id: + description: Action sequence id (UUID). + example: 660e8400-e29b-41d4-a716-446655440001 + type: string + status: + description: "Intent status (e.g. CREATED, IN_PROGRESS, COMPLETED)." + example: IN_PROGRESS + type: string + providerId: + description: Lending protocol identifier. + enum: + - MORPHO + - AAVE + example: MORPHO + type: string + actionType: + description: Whether this action is a deposit or withdraw flow. + enum: + - DEPOSIT + - WITHDRAW + example: DEPOSIT + type: string + opportunityId: + description: Target lending opportunity identifier. + example: morpho-usdc-vault-1 + type: string + positionId: + description: Position id in the system when applicable. + example: 770e8400-e29b-41d4-a716-446655440002 + type: string + amount: + description: Human-readable amount for the action. + example: "1500.5" + type: string + createdAt: + description: Creation time (ISO-8601). + example: 2025-01-15T10:00:00Z + type: string + updatedAt: + description: Last update time (ISO-8601). + example: 2025-03-20T08:30:00Z + type: string + records: + description: Ordered execution steps for this action. + items: + $ref: "#/components/schemas/ActionRecord" + maxItems: 4 + minItems: 1 + type: array + required: + - actionType + - amount + - createdAt + - id + - opportunityId + - providerId + - records + - status + - updatedAt + type: object + GetActionsResponse: + example: + next: "" + total: 1 + data: + - id: 660e8400-e29b-41d4-a716-446655440001 + status: IN_PROGRESS + providerId: MORPHO + actionType: DEPOSIT + opportunityId: morpho-usdc-vault-1 + amount: "1500.5" + createdAt: 2025-01-15T10:00:00Z + updatedAt: 2025-03-20T08:30:00Z + records: + - actionType: APPROVE + status: COMPLETED + txId: tx_abc123 + txHash: 0xabc... + updatedAt: 2025-03-20T08:29:00Z + prev: "" + properties: + data: + description: Page of lending actions for this query. + example: + - id: 660e8400-e29b-41d4-a716-446655440001 + status: IN_PROGRESS + providerId: MORPHO + actionType: DEPOSIT + opportunityId: morpho-usdc-vault-1 + amount: "1500.5" + createdAt: 2025-01-15T10:00:00Z + updatedAt: 2025-03-20T08:30:00Z + records: + - actionType: APPROVE + status: COMPLETED + txId: tx_abc123 + txHash: 0xabc... + updatedAt: 2025-03-20T08:29:00Z + items: + $ref: "#/components/schemas/GetActionResponse" + type: array + next: + description: Opaque cursor for the next page; empty when there is no next + page. + example: "" + type: string + prev: + description: Opaque cursor for the previous page; empty when there is no + previous page. + example: "" + type: string + total: + description: Total number of items matching the query. + example: 1 + format: int32 + type: integer + required: + - data + - total + type: object + CreateEarnActionRequest: + example: + opportunityId: morpho-usdc-vault-1 + amount: "1000.0" + action: DEPOSIT + vaultAccountId: "12345" + properties: + action: + description: Whether to deposit into or withdraw from the lending opportunity. + enum: + - DEPOSIT + - WITHDRAW + example: DEPOSIT + type: string + opportunityId: + description: Identifier of the vault or market (lending opportunity). + example: morpho-usdc-vault-1 + type: string + vaultAccountId: + description: Fireblocks vault account that will execute the action. + example: "12345" + type: string + amount: + description: Human-readable token amount (e.g. "1.6") or the keyword "max" + for the full position or available balance. + example: "1000.0" + type: string + required: + - action + - amount + - opportunityId + - vaultAccountId + type: object + CreateEarnActionResponse: + example: + id: 550e8400-e29b-41d4-a716-446655440000 + status: CREATED + properties: + id: + description: ActionIntent UUID for tracking the lending action workflow. + example: 550e8400-e29b-41d4-a716-446655440000 + type: string + status: + description: "Lifecycle status (e.g. CREATED, IN_PROGRESS, COMPLETED)." + enum: + - CREATED + - IN_PROGRESS + - COMPLETED + - CANCELED + - FAILED + example: CREATED + type: string + required: + - id + - status + type: object + EarnAsset: + properties: + address: + description: Contract address of the token on-chain. + example: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + type: string + symbol: + description: Human-readable ticker (e.g. USDC). + example: USDC + type: string + decimals: + description: Token decimals used when interpreting on-chain amounts. + example: 6 + format: int32 + type: integer + assetId: + description: "Fireblocks legacy asset identifier (e.g. USDC_ETH, PYUSD)." + example: USDC_ETH + type: string + type: object + Apy: + properties: + native: + description: "APY in native format (before fees), as a percentage (e.g.\ + \ 4.25 means 4.25%, not 0.0425)." + example: 4.25 + format: double + type: number + gross: + description: "Gross APY before fees, as a percentage (e.g. 4.25 means 4.25%,\ + \ not 0.0425)." + example: 4.4 + format: double + type: number + net: + description: "Net APY after fees, as a percentage (e.g. 4.25 means 4.25%,\ + \ not 0.0425)." + example: 4.05 + format: double + type: number + type: object + Exposure: + properties: + assetAddress: + description: On-chain address of the exposure asset. + example: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + type: string + symbol: + description: Ticker for the exposure asset. + example: WETH + type: string + amount: + description: Human-readable decimal string (raw on-chain value scaled by + 10^decimals). + example: "125.5" + type: string + type: object + Opportunity: + properties: + id: + description: Unique opportunity identifier. + example: opp-usdc-eth-001 + type: string + providerId: + description: Lending protocol (`MORPHO` or `AAVE`). + enum: + - MORPHO + - AAVE + example: MORPHO + type: string + type: + description: Opportunity kind — vault or market. + enum: + - VAULT + - MARKET + example: VAULT + type: string + chainId: + description: Chain identifier as a string (e.g. "1" for Ethereum mainnet). + example: "1" + type: string + address: + description: Primary contract address for the vault or market. + example: 0x1234567890123456789012345678901234567890 + type: string + name: + description: Display name of the opportunity. + example: USDC Core + type: string + symbol: + description: Symbol or share token ticker for the position asset. + example: mUSDC + type: string + principalAsset: + allOf: + - $ref: "#/components/schemas/EarnAsset" + description: Underlying token the user deposits (principal). + positionAsset: + allOf: + - $ref: "#/components/schemas/EarnAsset" + description: Token representing the user’s position in the protocol (e.g. + vault share). + totalAssets: + description: Human-readable total value locked / assets in the opportunity. + example: "50000000.0" + type: string + liquidity: + description: Human-readable available liquidity. + example: "1200000.0" + type: string + apy: + allOf: + - $ref: "#/components/schemas/Apy" + description: APY breakdown; values are percentages (e.g. 4.25 means 4.25%). + performanceFee: + description: Performance fee as a human-readable decimal string. + example: "0.10" + type: string + managementFee: + description: Management fee as a human-readable decimal string. + example: "0.01" + type: string + exposure: + description: Optional per-asset exposure breakdown. + example: [] + items: + $ref: "#/components/schemas/Exposure" + maxItems: 10 + minItems: 0 + type: array + type: object + GetOpportunitiesResponse: + example: + next: "" + total: 1 + data: + - id: opp-usdc-eth-001 + providerId: MORPHO + type: VAULT + chainId: "1" + address: 0x1234567890123456789012345678901234567890 + name: USDC Core + symbol: mUSDC + principalAsset: + address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + symbol: USDC + decimals: 6 + assetId: USDC_ETH + positionAsset: + address: 0xabcdefabcdefabcdefabcdefabcdefabcdefabcd + symbol: mUSDC + decimals: 18 + assetId: MORPHO_USDC_VAULT_ETH + totalAssets: "50000000.0" + liquidity: "1200000.0" + apy: + native: 4.25 + gross: 4.4 + net: 4.05 + performanceFee: "0.10" + exposure: [] + managementFee: "0.01" + prev: "" + properties: + data: + description: Page of lending opportunities for this query. + example: + - id: opp-usdc-eth-001 + providerId: MORPHO + type: VAULT + chainId: "1" + address: 0x1234567890123456789012345678901234567890 + name: USDC Core + symbol: mUSDC + principalAsset: + address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + symbol: USDC + decimals: 6 + assetId: USDC_ETH + positionAsset: + address: 0xabcdefabcdefabcdefabcdefabcdefabcdefabcd + symbol: mUSDC + decimals: 18 + assetId: MORPHO_USDC_VAULT_ETH + totalAssets: "50000000.0" + liquidity: "1200000.0" + apy: + native: 4.25 + gross: 4.4 + net: 4.05 + performanceFee: "0.10" + exposure: [] + managementFee: "0.01" + items: + $ref: "#/components/schemas/Opportunity" + type: array + next: + description: Opaque cursor for the next page; empty when there is no next + page. + example: "" + type: string + prev: + description: Opaque cursor for the previous page; empty when there is no + previous page. + example: "" + type: string + total: + description: Total number of items matching the query. + example: 1 + format: int32 + type: integer + required: + - data + - total + type: object + Position-2: + properties: + id: + description: Position UUID. + example: 660e8400-e29b-41d4-a716-446655440001 + type: string + status: + description: Lifecycle status of the position. + enum: + - ACTIVE + - INACTIVE + example: ACTIVE + type: string + inFlight: + description: True while an action is in progress for this position. + example: false + type: boolean + positionType: + description: Whether the position is lend- or borrow-side. + enum: + - LEND + - BORROW + example: LEND + type: string + vaultAccountId: + description: Fireblocks vault account holding the position. + example: "12345" + type: string + opportunityId: + description: Opportunity / vault or market identifier. + example: morpho-usdc-vault-1 + type: string + chainId: + description: Chain identifier as a string (e.g. "1"). + example: "1" + type: string + providerId: + description: Lending protocol. + enum: + - MORPHO + - AAVE + example: MORPHO + type: string + origin: + description: Whether the position was opened natively in Fireblocks or imported + externally. + enum: + - NATIVE + - EXTERNAL + example: NATIVE + type: string + principalAssetId: + description: Fireblocks asset id for the principal (underlying) asset. + example: USDC_ETH + type: string + positionAssetId: + description: Fireblocks asset id for the position / share token. + example: MORPHO_USDC_VAULT_ETH + type: string + principalBalance: + description: Human-readable principal balance. + example: "10000.00" + type: string + positionBalance: + description: Human-readable position token balance. + example: "9950.5" + type: string + createdAt: + description: Creation time (ISO-8601). + example: 2025-01-15T10:00:00Z + type: string + updatedAt: + description: Last update time (ISO-8601). + example: 2025-03-20T08:30:00Z + type: string + lastSyncedAt: + description: Last successful on-chain sync time (ISO-8601). + example: 2025-03-20T08:29:55Z + type: string + availableActions: + description: Actions the API allows next for this position. + example: + - DEPOSIT + - WITHDRAW + items: + enum: + - DEPOSIT + - WITHDRAW + type: string + type: array + type: object + GetPositionsResponse: + example: + next: "" + total: 1 + data: + - id: 660e8400-e29b-41d4-a716-446655440001 + status: ACTIVE + inFlight: false + positionType: LEND + vaultAccountId: "12345" + opportunityId: morpho-usdc-vault-1 + chainId: "1" + providerId: MORPHO + origin: NATIVE + principalAssetId: USDC_ETH + positionAssetId: MORPHO_USDC_VAULT_ETH + principalBalance: "10000.00" + positionBalance: "9950.5" + createdAt: 2025-01-15T10:00:00Z + updatedAt: 2025-03-20T08:30:00Z + lastSyncedAt: 2025-03-20T08:29:55Z + availableActions: + - DEPOSIT + - WITHDRAW + prev: "" + properties: + data: + description: Page of user lending positions for this query. + example: + - id: 660e8400-e29b-41d4-a716-446655440001 + status: ACTIVE + inFlight: false + positionType: LEND + vaultAccountId: "12345" + opportunityId: morpho-usdc-vault-1 + chainId: "1" + providerId: MORPHO + origin: NATIVE + principalAssetId: USDC_ETH + positionAssetId: MORPHO_USDC_VAULT_ETH + principalBalance: "10000.00" + positionBalance: "9950.5" + createdAt: 2025-01-15T10:00:00Z + updatedAt: 2025-03-20T08:30:00Z + lastSyncedAt: 2025-03-20T08:29:55Z + availableActions: + - DEPOSIT + - WITHDRAW + items: + $ref: "#/components/schemas/Position-2" + type: array + next: + description: Opaque cursor for the next page; empty when there is no next + page. + example: "" + type: string + prev: + description: Opaque cursor for the previous page; empty when there is no + previous page. + example: "" + type: string + total: + description: Total number of items matching the query. + example: 1 + format: int32 + type: integer + required: + - data + - total + type: object + EarnProvider: + properties: + providerId: + description: Stable protocol identifier (`MORPHO` or `AAVE`). + enum: + - MORPHO + - AAVE + example: AAVE + type: string + displayName: + description: Human-readable protocol name for UI. + example: Aave + type: string + logoUrl: + description: URL for the provider logo asset. + example: https://cdn.example.com/aave.svg + type: string + supportedChainIds: + description: EVM chain IDs where this provider is supported. + example: + - 1 + - 42161 + items: + format: int32 + type: integer + maxItems: 10 + minItems: 0 + type: array + isTermsApprovalRequired: + description: Whether the user must accept terms before using this provider. + example: false + type: boolean + termsOfServiceUrl: + description: "URL to the provider terms of service, when applicable." + example: https://aave.com/terms + type: string + isTermsOfServiceApproved: + description: Whether terms have been approved for this workspace / context. + example: true + type: boolean + type: object + GetProvidersResponse: + example: + next: "" + total: 1 + data: + - providerId: MORPHO + displayName: Morpho + logoUrl: https://cdn.example.com/morpho.svg + supportedChainIds: + - 1 + - 8453 + isTermsApprovalRequired: true + termsOfServiceUrl: https://example.com/morpho/tos + isTermsOfServiceApproved: false + prev: "" + properties: + data: + description: Page of integrated lending providers. + example: + - providerId: MORPHO + displayName: Morpho + logoUrl: https://cdn.example.com/morpho.svg + supportedChainIds: + - 1 + - 8453 + isTermsApprovalRequired: true + termsOfServiceUrl: https://example.com/morpho/tos + isTermsOfServiceApproved: false + items: + $ref: "#/components/schemas/EarnProvider" + type: array + next: + description: Opaque cursor for the next page; empty when there is no next + page. + example: "" + type: string + prev: + description: Opaque cursor for the previous page; empty when there is no + previous page. + example: "" + type: string + total: + description: Total number of items matching the query. + example: 1 + format: int32 + type: integer + required: + - data + - total + type: object ManifestBase: description: Base manifest schema with common properties properties: @@ -54445,6 +57104,517 @@ components: allOf: - $ref: "#/components/schemas/ManifestBase" - $ref: "#/components/schemas/ManifestQuoteInfo" + ParticipantsIdentificationSupportedEndpoint: + description: | + Trading API endpoint category where `participantsIdentification` may be required when this policy is present. + Corresponds to manifest `order`, `quote`, and `rate`: ORDER, QUOTE, and RATE respectively. + enum: + - ORDER + - QUOTE + - RATE + type: string + ParticipantsIdentificationJsonSchema: + description: "A JSON Schema (draft-07) in string format that validates the ParticipantsIdentification\ + \ object on requests where\nthe provider manifest lists that endpoint in `participantsIdentificationPolicy.supportedEndpoints`\ + \ (e.g. POST /orders).\nDefines which fields from originator and/or beneficiary\ + \ are required.\n\nThe schema uses oneOf to discriminate between INDIVIDUAL\ + \ (PersonalIdentification) \nand BUSINESS (BusinessIdentification) entity\ + \ types for each participant.\n\nFor INDIVIDUAL: fullName, dateOfBirth, postalAddress,\ + \ email, phone, idNumber, idType, etc.\nFor BUSINESS: businessName, registrationNumber,\ + \ postalAddress, email, phone, etc.\n\nIf you constrain `idType` or `additionalIdType`\ + \ with a JSON Schema `enum`, use the same values as\n`PersonalIdentificationType`\ + \ (authoritative list in that schema). The example below mirrors that enum.\n\ + \nThe string content is expected to be valid JSON (application/json).\n" + example: | + { + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "required": ["originator"], + "properties": { + "originator": { + "type": "object", + "required": ["entityType"], + "oneOf": [ + { + "properties": { + "entityType": { "const": "INDIVIDUAL" }, + "fullName": { + "type": "object", + "required": ["firstName", "lastName"], + "properties": { + "firstName": { "type": "string" }, + "lastName": { "type": "string" }, + "middleName": { "type": "string" } + } + }, + "dateOfBirth": { "type": "string", "format": "date" }, + "email": { "type": "string", "format": "email" }, + "phone": { "type": "string", "pattern": "^\\+[1-9]\\d{1,14}$" }, + "postalAddress": { + "type": "object", + "required": ["city", "country"], + "properties": { + "streetLine1": { "type": "string" }, + "streetLine2": { "type": "string" }, + "city": { "type": "string" }, + "region": { "type": "string" }, + "postalCode": { "type": "string" }, + "country": { "type": "string" } + } + }, + "idNumber": { "type": "string" }, + "idType": { "type": "string", "enum": ["NIN_SLIP_CARD", "BVN", "ID_CARD", "ID_BOOK", "NATIONAL_ID", "ALIEN_CARD", "PASSPORT", "ECOWAS_CARD", "RWANDA_CARD", "DRIVERS_LICENSE", "RESIDENT_CARD", "VOTER_ID", "HEALTH_INSURANCE_ID", "GHANA_CARD", "REFUGEE_ID", "SSNIT", "NON_CITIZEN_ID", "NATIONAL_REGISTRATION_CARD"] } + }, + "required": ["entityType", "fullName", "email", "postalAddress"] + }, + { + "properties": { + "entityType": { "const": "BUSINESS" }, + "businessName": { "type": "string" }, + "registrationNumber": { "type": "string" }, + "email": { "type": "string", "format": "email" }, + "phone": { "type": "string", "pattern": "^\\+[1-9]\\d{1,14}$" }, + "postalAddress": { + "type": "object", + "required": ["city", "country"], + "properties": { + "streetLine1": { "type": "string" }, + "streetLine2": { "type": "string" }, + "city": { "type": "string" }, + "region": { "type": "string" }, + "postalCode": { "type": "string" }, + "country": { "type": "string" } + } + } + }, + "required": ["entityType", "businessName", "postalAddress"] + } + ] + }, + "beneficiary": { + "type": "object", + "required": ["entityType"], + "oneOf": [ + { + "properties": { + "entityType": { "const": "INDIVIDUAL" }, + "fullName": { + "type": "object", + "required": ["firstName", "lastName"], + "properties": { + "firstName": { "type": "string" }, + "lastName": { "type": "string" } + } + } + }, + "required": ["entityType", "fullName"] + }, + { + "properties": { + "entityType": { "const": "BUSINESS" }, + "businessName": { "type": "string" } + }, + "required": ["entityType", "businessName"] + } + ] + } + } + } + type: string + TransferRail: + description: "Transfer rail: \n* **BLOCKCHAIN** - Transfer over the public blockchain\n\ + * **INTERNAL** - Internal transfer within the same account (e.g. sub-accounts\ + \ or same api key)\n* **SWIFT** - International wire transfer\n* **IBAN**\ + \ - International Bank Account Number transfer\n* **US_WIRE** - Domestic wire\ + \ transfer within the United States (e.g. FedWire)\n* **ACH** - Automated\ + \ Clearing House transfer, typically takes longer but not as expensive as\ + \ wire transfers\n* **SEPA** - Euro transfers within the SEPA zone\n* **SPEI**\ + \ - Mexican interbank electronic payment system\n* **PIX** - Brazilian instant\ + \ payment system\n* **LBT** - Local bank transfers within Africa\n* **MOMO**\ + \ - Mobile money transfers (e.g. M-Pesa)\n* **CHAPS** - The Clearing House\ + \ Automated Payment System (CHAPS) is a real-time gross settlement payment\ + \ system used for transactions in the United Kingdom\n* **PAYID** - PayID\ + \ payment identifier system (Australia)\n* **INTERAC** - Interac electronic\ + \ funds transfer (Canada)\n* **INTERNAL_TRANSFER** - Internal transfer between\ + \ accounts\n" + enum: + - BLOCKCHAIN + - INTERNAL + - SWIFT + - IBAN + - US_WIRE + - ACH + - SEPA + - SPEI + - PIX + - LBT + - MOMO + - CHAPS + - PAYID + - INTERAC + - INTERNAL_TRANSFER + example: BLOCKCHAIN + type: string + FlowDirection: + description: The direction of asset conversion in an order. + enum: + - FIAT_TO_CRYPTO + - CRYPTO_TO_FIAT + - CRYPTO_TO_CRYPTO + - FIAT_TO_FIAT + type: string + IdentificationPolicyOverride: + description: | + Override scoped by one or more dimensions. More dimensions = higher priority. + Equal priority ties are broken by array order. + + **Validation:** At least one of `asset`, `rail`, or `flowDirection` will be present. + + Priority (highest to lowest): + 1. asset + rail + flowDirection + 2. asset + rail + 2. asset + flowDirection + 2. rail + flowDirection + 3. asset only + 3. rail only + 3. flowDirection only + 4. defaultSchema (no override matched) + properties: + asset: + description: Fireblocks asset ID (fiat or crypto). + type: string + rail: + $ref: "#/components/schemas/TransferRail" + flowDirection: + $ref: "#/components/schemas/FlowDirection" + schema: + description: "A JSON Schema (draft-07) in string format that validates the\ + \ ParticipantsIdentification object on requests where\nthe provider manifest\ + \ lists that endpoint in `participantsIdentificationPolicy.supportedEndpoints`\ + \ (e.g. POST /orders).\nDefines which fields from originator and/or beneficiary\ + \ are required.\n\nThe schema uses oneOf to discriminate between INDIVIDUAL\ + \ (PersonalIdentification) \nand BUSINESS (BusinessIdentification) entity\ + \ types for each participant.\n\nFor INDIVIDUAL: fullName, dateOfBirth,\ + \ postalAddress, email, phone, idNumber, idType, etc.\nFor BUSINESS: businessName,\ + \ registrationNumber, postalAddress, email, phone, etc.\n\nIf you constrain\ + \ `idType` or `additionalIdType` with a JSON Schema `enum`, use the same\ + \ values as\n`PersonalIdentificationType` (authoritative list in that\ + \ schema). The example below mirrors that enum.\n\nThe string content\ + \ is expected to be valid JSON (application/json).\n" + example: | + { + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "required": ["originator"], + "properties": { + "originator": { + "type": "object", + "required": ["entityType"], + "oneOf": [ + { + "properties": { + "entityType": { "const": "INDIVIDUAL" }, + "fullName": { + "type": "object", + "required": ["firstName", "lastName"], + "properties": { + "firstName": { "type": "string" }, + "lastName": { "type": "string" }, + "middleName": { "type": "string" } + } + }, + "dateOfBirth": { "type": "string", "format": "date" }, + "email": { "type": "string", "format": "email" }, + "phone": { "type": "string", "pattern": "^\\+[1-9]\\d{1,14}$" }, + "postalAddress": { + "type": "object", + "required": ["city", "country"], + "properties": { + "streetLine1": { "type": "string" }, + "streetLine2": { "type": "string" }, + "city": { "type": "string" }, + "region": { "type": "string" }, + "postalCode": { "type": "string" }, + "country": { "type": "string" } + } + }, + "idNumber": { "type": "string" }, + "idType": { "type": "string", "enum": ["NIN_SLIP_CARD", "BVN", "ID_CARD", "ID_BOOK", "NATIONAL_ID", "ALIEN_CARD", "PASSPORT", "ECOWAS_CARD", "RWANDA_CARD", "DRIVERS_LICENSE", "RESIDENT_CARD", "VOTER_ID", "HEALTH_INSURANCE_ID", "GHANA_CARD", "REFUGEE_ID", "SSNIT", "NON_CITIZEN_ID", "NATIONAL_REGISTRATION_CARD"] } + }, + "required": ["entityType", "fullName", "email", "postalAddress"] + }, + { + "properties": { + "entityType": { "const": "BUSINESS" }, + "businessName": { "type": "string" }, + "registrationNumber": { "type": "string" }, + "email": { "type": "string", "format": "email" }, + "phone": { "type": "string", "pattern": "^\\+[1-9]\\d{1,14}$" }, + "postalAddress": { + "type": "object", + "required": ["city", "country"], + "properties": { + "streetLine1": { "type": "string" }, + "streetLine2": { "type": "string" }, + "city": { "type": "string" }, + "region": { "type": "string" }, + "postalCode": { "type": "string" }, + "country": { "type": "string" } + } + } + }, + "required": ["entityType", "businessName", "postalAddress"] + } + ] + }, + "beneficiary": { + "type": "object", + "required": ["entityType"], + "oneOf": [ + { + "properties": { + "entityType": { "const": "INDIVIDUAL" }, + "fullName": { + "type": "object", + "required": ["firstName", "lastName"], + "properties": { + "firstName": { "type": "string" }, + "lastName": { "type": "string" } + } + } + }, + "required": ["entityType", "fullName"] + }, + { + "properties": { + "entityType": { "const": "BUSINESS" }, + "businessName": { "type": "string" } + }, + "required": ["entityType", "businessName"] + } + ] + } + } + } + type: string + required: + - schema + type: object + ParticipantsIdentificationPolicy: + description: | + When present on a provider manifest, specifies KYC/AML identification requirements as JSON Schemas and which flows in + `supportedEndpoints` may require `participantsIdentification`. + + Only endpoints listed in `supportedEndpoints` are in scope for this policy. `defaultSchema` is the baseline; `overrides` + refine it by `asset`, `rail`, and/or `flowDirection` (see priority below). The most specific matching override applies its + `schema` for that request context: it may fully replace `defaultSchema`, or partially override it—when the override + `schema` is not provided as a complete standalone definition, fields and rules omitted there continue to follow + `defaultSchema`. If this object is omitted from the manifest, the provider imposes no PII requirements through this policy. + FirstParty participants are always exempt. + + Resolution: from overrides that match the request context, choose the most specific (most dimensions matched); break ties + by earlier position in the `overrides` array; if none match, use `defaultSchema`. + + Priority (highest precedence first): + 1. asset + rail + flowDirection + 2. Any two dimensions: asset+rail, asset+flowDirection, rail+flowDirection + 3. Any single dimension: asset, rail, or flowDirection + 4. defaultSchema (no override matches) + example: + supportedEndpoints: + - ORDER + - QUOTE + defaultSchema: "{\"$schema\":\"http://json-schema.org/draft-07/schema#\",\"\ + type\":\"object\",\"required\":[\"originator\",\"beneficiary\"],\"properties\"\ + :{\"originator\":{\"type\":\"object\",\"required\":[\"entityType\"],\"oneOf\"\ + :[{\"properties\":{\"entityType\":{\"const\":\"INDIVIDUAL\"},\"fullName\"\ + :{\"type\":\"object\",\"required\":[\"firstName\",\"lastName\"],\"properties\"\ + :{\"firstName\":{\"type\":\"string\"},\"lastName\":{\"type\":\"string\"\ + }}},\"email\":{\"type\":\"string\",\"format\":\"email\"}},\"required\":[\"\ + entityType\",\"fullName\",\"email\"]},{\"properties\":{\"entityType\":{\"\ + const\":\"BUSINESS\"},\"businessName\":{\"type\":\"string\"},\"email\":{\"\ + type\":\"string\",\"format\":\"email\"}},\"required\":[\"entityType\",\"\ + businessName\",\"email\"]}]},\"beneficiary\":{\"type\":\"object\",\"required\"\ + :[\"entityType\"],\"oneOf\":[{\"properties\":{\"entityType\":{\"const\"\ + :\"INDIVIDUAL\"},\"fullName\":{\"type\":\"object\",\"required\":[\"firstName\"\ + ,\"lastName\"],\"properties\":{\"firstName\":{\"type\":\"string\"},\"lastName\"\ + :{\"type\":\"string\"}}}},\"required\":[\"entityType\",\"fullName\"]},{\"\ + properties\":{\"entityType\":{\"const\":\"BUSINESS\"},\"businessName\":{\"\ + type\":\"string\"}},\"required\":[\"entityType\",\"businessName\"]}]}}}" + overrides: + - asset: NGN + schema: "{\"$schema\":\"http://json-schema.org/draft-07/schema#\",\"type\"\ + :\"object\",\"required\":[\"originator\",\"beneficiary\"],\"properties\"\ + :{\"originator\":{\"type\":\"object\",\"required\":[\"entityType\"],\"\ + oneOf\":[{\"properties\":{\"entityType\":{\"const\":\"INDIVIDUAL\"},\"\ + fullName\":{\"type\":\"object\",\"required\":[\"firstName\",\"lastName\"\ + ],\"properties\":{\"firstName\":{\"type\":\"string\"},\"lastName\":{\"\ + type\":\"string\"}}},\"email\":{\"type\":\"string\",\"format\":\"email\"\ + },\"idNumber\":{\"type\":\"string\"},\"idType\":{\"type\":\"string\",\"\ + enum\":[\"NIN_SLIP_CARD\"]},\"additionalIdNumber\":{\"type\":\"string\"\ + },\"additionalIdType\":{\"type\":\"string\",\"enum\":[\"BVN\"]}},\"required\"\ + :[\"entityType\",\"fullName\",\"email\",\"idNumber\",\"additionalIdNumber\"\ + ]},{\"properties\":{\"entityType\":{\"const\":\"BUSINESS\"},\"businessName\"\ + :{\"type\":\"string\"},\"email\":{\"type\":\"string\",\"format\":\"email\"\ + },\"registrationNumber\":{\"type\":\"string\"}},\"required\":[\"entityType\"\ + ,\"businessName\",\"email\",\"registrationNumber\"]}]},\"beneficiary\"\ + :{\"type\":\"object\",\"required\":[\"entityType\"],\"oneOf\":[{\"properties\"\ + :{\"entityType\":{\"const\":\"INDIVIDUAL\"},\"fullName\":{\"type\":\"\ + object\",\"required\":[\"firstName\",\"lastName\"],\"properties\":{\"\ + firstName\":{\"type\":\"string\"},\"lastName\":{\"type\":\"string\"}}}},\"\ + required\":[\"entityType\",\"fullName\"]},{\"properties\":{\"entityType\"\ + :{\"const\":\"BUSINESS\"},\"businessName\":{\"type\":\"string\"}},\"required\"\ + :[\"entityType\",\"businessName\"]}]}}}" + - rail: MOMO + schema: "{\"$schema\":\"http://json-schema.org/draft-07/schema#\",\"type\"\ + :\"object\",\"required\":[\"originator\"],\"properties\":{\"originator\"\ + :{\"type\":\"object\",\"required\":[\"entityType\"],\"oneOf\":[{\"properties\"\ + :{\"entityType\":{\"const\":\"INDIVIDUAL\"},\"fullName\":{\"type\":\"\ + object\",\"required\":[\"firstName\"],\"properties\":{\"firstName\":{\"\ + type\":\"string\"}}},\"phone\":{\"type\":\"string\"}},\"required\":[\"\ + entityType\",\"fullName\",\"phone\"]}]}}}" + - asset: NGN + rail: MOMO + schema: "{\"$schema\":\"http://json-schema.org/draft-07/schema#\",\"type\"\ + :\"object\",\"required\":[\"originator\"],\"properties\":{\"originator\"\ + :{\"type\":\"object\",\"required\":[\"entityType\"],\"oneOf\":[{\"properties\"\ + :{\"entityType\":{\"const\":\"INDIVIDUAL\"},\"fullName\":{\"type\":\"\ + object\",\"required\":[\"firstName\"],\"properties\":{\"firstName\":{\"\ + type\":\"string\"}}},\"phone\":{\"type\":\"string\"},\"idNumber\":{\"\ + type\":\"string\"},\"idType\":{\"type\":\"string\",\"enum\":[\"NIN_SLIP_CARD\"\ + ]}},\"required\":[\"entityType\",\"fullName\",\"phone\",\"idNumber\"]}]}}}" + properties: + supportedEndpoints: + description: | + API endpoints in scope for this participants identification policy. Values `ORDER`, `QUOTE`, and `RATE` correspond to + manifest `order`, `quote`, and `rate` flows. Client requests to those endpoints may need to include + `participantsIdentification` when the resolved schema requires it. + items: + $ref: "#/components/schemas/ParticipantsIdentificationSupportedEndpoint" + minItems: 1 + type: array + uniqueItems: true + defaultSchema: + description: "A JSON Schema (draft-07) in string format that validates the\ + \ ParticipantsIdentification object on requests where\nthe provider manifest\ + \ lists that endpoint in `participantsIdentificationPolicy.supportedEndpoints`\ + \ (e.g. POST /orders).\nDefines which fields from originator and/or beneficiary\ + \ are required.\n\nThe schema uses oneOf to discriminate between INDIVIDUAL\ + \ (PersonalIdentification) \nand BUSINESS (BusinessIdentification) entity\ + \ types for each participant.\n\nFor INDIVIDUAL: fullName, dateOfBirth,\ + \ postalAddress, email, phone, idNumber, idType, etc.\nFor BUSINESS: businessName,\ + \ registrationNumber, postalAddress, email, phone, etc.\n\nIf you constrain\ + \ `idType` or `additionalIdType` with a JSON Schema `enum`, use the same\ + \ values as\n`PersonalIdentificationType` (authoritative list in that\ + \ schema). The example below mirrors that enum.\n\nThe string content\ + \ is expected to be valid JSON (application/json).\n" + example: | + { + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "required": ["originator"], + "properties": { + "originator": { + "type": "object", + "required": ["entityType"], + "oneOf": [ + { + "properties": { + "entityType": { "const": "INDIVIDUAL" }, + "fullName": { + "type": "object", + "required": ["firstName", "lastName"], + "properties": { + "firstName": { "type": "string" }, + "lastName": { "type": "string" }, + "middleName": { "type": "string" } + } + }, + "dateOfBirth": { "type": "string", "format": "date" }, + "email": { "type": "string", "format": "email" }, + "phone": { "type": "string", "pattern": "^\\+[1-9]\\d{1,14}$" }, + "postalAddress": { + "type": "object", + "required": ["city", "country"], + "properties": { + "streetLine1": { "type": "string" }, + "streetLine2": { "type": "string" }, + "city": { "type": "string" }, + "region": { "type": "string" }, + "postalCode": { "type": "string" }, + "country": { "type": "string" } + } + }, + "idNumber": { "type": "string" }, + "idType": { "type": "string", "enum": ["NIN_SLIP_CARD", "BVN", "ID_CARD", "ID_BOOK", "NATIONAL_ID", "ALIEN_CARD", "PASSPORT", "ECOWAS_CARD", "RWANDA_CARD", "DRIVERS_LICENSE", "RESIDENT_CARD", "VOTER_ID", "HEALTH_INSURANCE_ID", "GHANA_CARD", "REFUGEE_ID", "SSNIT", "NON_CITIZEN_ID", "NATIONAL_REGISTRATION_CARD"] } + }, + "required": ["entityType", "fullName", "email", "postalAddress"] + }, + { + "properties": { + "entityType": { "const": "BUSINESS" }, + "businessName": { "type": "string" }, + "registrationNumber": { "type": "string" }, + "email": { "type": "string", "format": "email" }, + "phone": { "type": "string", "pattern": "^\\+[1-9]\\d{1,14}$" }, + "postalAddress": { + "type": "object", + "required": ["city", "country"], + "properties": { + "streetLine1": { "type": "string" }, + "streetLine2": { "type": "string" }, + "city": { "type": "string" }, + "region": { "type": "string" }, + "postalCode": { "type": "string" }, + "country": { "type": "string" } + } + } + }, + "required": ["entityType", "businessName", "postalAddress"] + } + ] + }, + "beneficiary": { + "type": "object", + "required": ["entityType"], + "oneOf": [ + { + "properties": { + "entityType": { "const": "INDIVIDUAL" }, + "fullName": { + "type": "object", + "required": ["firstName", "lastName"], + "properties": { + "firstName": { "type": "string" }, + "lastName": { "type": "string" } + } + } + }, + "required": ["entityType", "fullName"] + }, + { + "properties": { + "entityType": { "const": "BUSINESS" }, + "businessName": { "type": "string" } + }, + "required": ["entityType", "businessName"] + } + ] + } + } + } + type: string + overrides: + description: | + Contextual overrides scoped by asset, rail, and/or flowDirection. Most specific match wins; ties broken by array order. Replaces the default partially. + Each override MUST include at least one of `asset`, `rail`, or `flowDirection` (not `schema` alone); see IdentificationPolicyOverride. + items: + $ref: "#/components/schemas/IdentificationPolicyOverride" + type: array + required: + - defaultSchema + - supportedEndpoints + type: object Manifest: description: "The manifest of the provider, describing its supported order,\ \ quote, and rate requirements." @@ -54462,6 +57632,28 @@ components: - DVP rate: supported: true + participantsIdentificationPolicy: + supportedEndpoints: + - ORDER + - QUOTE + defaultSchema: "{\"$schema\":\"http://json-schema.org/draft-07/schema#\"\ + ,\"type\":\"object\",\"required\":[\"originator\",\"beneficiary\"],\"\ + properties\":{\"originator\":{\"type\":\"object\",\"required\":[\"entityType\"\ + ],\"oneOf\":[{\"properties\":{\"entityType\":{\"const\":\"INDIVIDUAL\"\ + },\"fullName\":{\"type\":\"object\",\"required\":[\"firstName\",\"lastName\"\ + ],\"properties\":{\"firstName\":{\"type\":\"string\"},\"lastName\":{\"\ + type\":\"string\"}}},\"email\":{\"type\":\"string\",\"format\":\"email\"\ + }},\"required\":[\"entityType\",\"fullName\",\"email\"]},{\"properties\"\ + :{\"entityType\":{\"const\":\"BUSINESS\"},\"businessName\":{\"type\":\"\ + string\"},\"email\":{\"type\":\"string\",\"format\":\"email\"}},\"required\"\ + :[\"entityType\",\"businessName\",\"email\"]}]},\"beneficiary\":{\"type\"\ + :\"object\",\"required\":[\"entityType\"],\"oneOf\":[{\"properties\":{\"\ + entityType\":{\"const\":\"INDIVIDUAL\"},\"fullName\":{\"type\":\"object\"\ + ,\"required\":[\"firstName\",\"lastName\"],\"properties\":{\"firstName\"\ + :{\"type\":\"string\"},\"lastName\":{\"type\":\"string\"}}}},\"required\"\ + :[\"entityType\",\"fullName\"]},{\"properties\":{\"entityType\":{\"const\"\ + :\"BUSINESS\"},\"businessName\":{\"type\":\"string\"}},\"required\":[\"\ + entityType\",\"businessName\"]}]}}}" properties: order: $ref: "#/components/schemas/ManifestOrder" @@ -54469,6 +57661,8 @@ components: $ref: "#/components/schemas/ManifestQuote" rate: $ref: "#/components/schemas/ManifestBase" + participantsIdentificationPolicy: + $ref: "#/components/schemas/ParticipantsIdentificationPolicy" required: - order - quote @@ -54515,7 +57709,7 @@ components: AccountBasedAccessProviderInfo: properties: connected: - description: Whether the provider is currently connected + description: Whether the provider is currently connected. type: boolean accounts: items: @@ -54529,6 +57723,8 @@ components: allOf: - $ref: "#/components/schemas/BaseProvider" - $ref: "#/components/schemas/AccountBasedAccessProviderInfo" + description: Provider integrated via Fireblocks connected accounts (`accountBased` + is `true`). example: id: BRIDGE name: Bridge @@ -54570,6 +57766,7 @@ components: allOf: - $ref: "#/components/schemas/BaseProvider" - $ref: "#/components/schemas/DirectAccessProviderInfo" + description: Provider used without per-account linking (`accountBased` is `false`). example: id: UNISWAP_CLASSIC name: Uniswap Classic @@ -54669,58 +57866,6 @@ components: - code - message type: object - AccountBasedProviderDetails: - allOf: - - $ref: "#/components/schemas/BaseProvider" - - $ref: "#/components/schemas/AccountBasedAccessProviderInfo" - example: - id: BRIDGE - name: Bridge - logo: https://example.com/logos/bridge.png - accountBased: true - manifest: - order: - supported: true - executionTypes: - - MARKET - settlementTypes: - - DVP - quote: - supported: false - rate: - supported: true - connected: true - accounts: - - id: acc_5e9a2d1c4b7f3e8a - name: Main Trading Account - DirectProviderDetails: - allOf: - - $ref: "#/components/schemas/BaseProvider" - - $ref: "#/components/schemas/DirectAccessProviderInfo" - example: - id: UNISWAP_CLASSIC - name: Uniswap Classic - logo: https://example.com/logos/uniswap.png - accountBased: false - manifest: - order: - supported: true - executionTypes: - - MARKET - settlementTypes: - - PREFUNDED - quote: - supported: false - rate: - supported: true - approved: true - hasTermsOfService: true - termsOfServiceUrl: https://uniswap.org/terms - privacyPolicyUrl: https://uniswap.org/privacy - TradingProviderDetails: - oneOf: - - $ref: "#/components/schemas/AccountBasedProviderDetails" - - $ref: "#/components/schemas/DirectProviderDetails" ScopeItem: additionalProperties: false example: @@ -54736,41 +57881,6 @@ components: required: - providerId type: object - TransferRail: - description: "Transfer rail: \n* **BLOCKCHAIN** - Transfer over the public blockchain\n\ - * **INTERNAL** - Internal transfer within the same account (e.g. sub-accounts\ - \ or same api key)\n* **PEER** - Peer transfer within the same provider network\n\ - * **SWIFT** - International wire transfer\n* **IBAN** - International Bank\ - \ Account Number transfer\n* **US_WIRE** - Domestic wire transfer within the\ - \ United States (e.g. FedWire)\n* **ACH** - Automated Clearing House transfer,\ - \ typically takes longer but not as expensive as wire transfers\n* **SEPA**\ - \ - Euro transfers within the SEPA zone\n* **SPEI** - Mexican interbank electronic\ - \ payment system\n* **PIX** - Brazilian instant payment system\n* **LOCAL_BANK_TRANSFER_AFRICA**\ - \ - Local bank transfers within Africa\n* **MOBILE_MONEY** - Mobile money\ - \ transfers (e.g. M-Pesa)\n* **INTERNAL_TRANSFER** - Internal transfer within\ - \ the same account\n* **INTERAC** - Canadian interbank transfer system\n*\ - \ **PAYID** - Australian PayID payment system\n* **CHAPS** - The Clearing\ - \ House Automated Payment System (CHAPS) is a real-time gross settlement payment\ - \ system used for transactions in the United Kingdom\n" - enum: - - BLOCKCHAIN - - INTERNAL - - PEER - - SWIFT - - IBAN - - US_WIRE - - ACH - - SEPA - - SPEI - - PIX - - LOCAL_BANK_TRANSFER_AFRICA - - MOBILE_MONEY - - INTERNAL_TRANSFER - - INTERAC - - PAYID - - CHAPS - example: BLOCKCHAIN - type: string PlatformPeerType: enum: - VAULT_ACCOUNT @@ -57051,6 +60161,14 @@ components: - TRANSACTION_CANCELLED - TRANSACTION_REJECTED - TRANSACTION_BLOCKED + - PROVIDER_INTERNAL_ERROR + - UNSUPPORTED_SOURCE_ASSET + - UNSUPPORTED_DESTINATION_ASSET + - AMOUNT_BELOW_MINIMUM + - PII_MISSING + - EXTERNAL_SOURCE_NOT_SUPPORTED + - UNSUPPORTED_REGION + - DESTINATION_NOT_WHITELISTED type: string Failure: properties: @@ -57968,51 +61086,6 @@ components: required: - approve type: object - AddressRegistryLegalEntityLegacy: - description: "Narrow legacy response for deprecated `GET /v1/address_registry/legal_entity?address=…\ - `. Use `GET /v1/address_registry/legal_entities/{address}` for the full field\ - \ set." - example: - companyId: 550e8400-e29b-41d4-a716-446655440000 - countryCode: US - companyName: ACME Corporation - properties: - companyName: - description: Legal entity / company display name - example: ACME Corporation - type: string - countryCode: - description: Jurisdiction country code (e.g. ISO 3166-1 alpha-2) - example: US - type: string - companyId: - description: Company identifier for the resolved legal entity (UUID) - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string - required: - - companyId - - companyName - - countryCode - type: object - AddressRegistryError: - description: Error body for address registry operations (4xx and 5xx). - example: - code: 2140 - message: Address registry opt-in required for this workspace. - properties: - code: - description: | - Application error code when present. Typical values include **2140** (403 — workspace not opted in to the address registry) and **2142** (404 — not found). Other codes may appear, including on server errors. - example: 2140 - type: integer - message: - description: Human-readable error message - example: Address registry opt-in required for this workspace. - type: string - required: - - message - type: object AddressRegistryTravelRuleProvider: description: Travel Rule provider identifier (string enum value). enum: @@ -58070,6 +61143,24 @@ components: - travelRuleProviders - verified type: object + AddressRegistryError: + description: Error body for address registry operations (4xx and 5xx). + example: + code: 2140 + message: Address registry opt-in required for this workspace. + properties: + code: + description: | + Application error code when present. For HTTP 400 on legal-entity lookup, distinguish: 4100 — request validation (e.g. missing, empty, or whitespace-only `address` after trim); 2140 — workspace not opted in to the address registry (`AR_OPT_IN_REQUIRED`). 2142 — not found (404). Other codes may appear, including on server errors. + example: 2140 + type: integer + message: + description: Human-readable error message + example: Address registry opt-in required for this workspace. + type: string + required: + - message + type: object AddressRegistryTenantRegistryResponse: description: "Workspace participation in the address registry. Same shape for\ \ GET, POST (opt in), and DELETE (opt out)." @@ -64167,6 +67258,152 @@ components: - message - success type: object + ByorkVerdictResponseStatusEnum: + description: | + PRE_ACCEPTED - Verdict stored and will be applied when processing reaches the point where your decision is needed. COMPLETED - Verdict final and processing complete. PENDING - Transaction in BYORK flow; no final verdict yet (awaiting decision or processing). RECEIVED - Verdict final and stored; processing not yet complete. + enum: + - PRE_ACCEPTED + - COMPLETED + - PENDING + - RECEIVED + example: COMPLETED + type: string + ByorkVerdictEnum: + description: | + ACCEPT/REJECT - Final or pre-accepted verdict. WAIT - When status is PENDING (transaction awaiting decision). + enum: + - ACCEPT + - REJECT + - WAIT + example: ACCEPT + type: string + GetByorkVerdictResponse: + description: Response for GET BYORK verdict (current verdict/status for a transaction). + example: + verdict: ACCEPT + status: COMPLETED + properties: + status: + $ref: "#/components/schemas/ByorkVerdictResponseStatusEnum" + verdict: + $ref: "#/components/schemas/ByorkVerdictEnum" + required: + - status + - verdict + type: object + ByorkSetVerdictEnum: + description: Verdict to apply (ACCEPT or REJECT). + enum: + - ACCEPT + - REJECT + example: ACCEPT + type: string + ByorkVerdictRequest: + example: + verdict: ACCEPT + txId: 550e8400-e29b-41d4-a716-446655440000 + properties: + txId: + description: Transaction ID to set the verdict for + example: 550e8400-e29b-41d4-a716-446655440000 + type: string + verdict: + $ref: "#/components/schemas/ByorkSetVerdictEnum" + required: + - txId + - verdict + type: object + ByorkVerdictResponse: + example: + message: Verdict ACCEPT applied + status: COMPLETED + properties: + status: + $ref: "#/components/schemas/ByorkVerdictResponseStatusEnum" + message: + description: Human-readable message + example: Verdict ACCEPT applied + type: string + required: + - message + - status + type: object + ByorkTimeoutRange: + description: Allowed range for timeout values (seconds). Use when calling PUT + config/timeouts. + example: + minSeconds: 10 + maxSeconds: 604800 + properties: + minSeconds: + example: 10 + type: integer + maxSeconds: + example: 604800 + type: integer + type: object + ByorkConfigResponse: + description: "BYORK Light configuration for the tenant: wait-for-response timeouts,\ + \ active flag, provider, last update time, and allowed timeout ranges for\ + \ validation." + example: + incomingTimeoutSeconds: 86400 + provider: BYORK_LITE + lastUpdate: 2026-01-29T12:00:00Z + timeoutRangeOutgoing: + minSeconds: 10 + maxSeconds: 604800 + timeoutRangeIncoming: + minSeconds: 10 + maxSeconds: 604800 + active: true + outgoingTimeoutSeconds: 3600 + properties: + incomingTimeoutSeconds: + description: Timeout in seconds for incoming BYORK wait-for-response + example: 86400 + type: integer + outgoingTimeoutSeconds: + description: Timeout in seconds for outgoing BYORK wait-for-response + example: 3600 + type: integer + active: + description: Whether BYORK Light is active for the tenant + example: true + type: boolean + provider: + description: Provider identifier + example: BYORK_LITE + type: string + lastUpdate: + description: Last update timestamp of the configuration + example: 2026-01-29T12:00:00Z + format: date-time + type: string + timeoutRangeIncoming: + $ref: "#/components/schemas/ByorkTimeoutRange" + timeoutRangeOutgoing: + $ref: "#/components/schemas/ByorkTimeoutRange" + type: object + ByorkSetTimeoutsRequest: + description: "Request body for setting BYORK timeout values. At least one of\ + \ incomingTimeoutSeconds or outgoingTimeoutSeconds is required. Allowed range\ + \ per direction is returned in GET config (timeoutRangeIncoming, timeoutRangeOutgoing)." + example: + incomingTimeoutSeconds: 86400 + outgoingTimeoutSeconds: 3600 + properties: + incomingTimeoutSeconds: + description: Timeout in seconds for incoming BYORK wait-for-response. Allowed + range in GET config (timeoutRangeIncoming). + example: 86400 + type: integer + outgoingTimeoutSeconds: + description: Timeout in seconds for outgoing BYORK wait-for-response. Allowed + range in GET config (timeoutRangeOutgoing). + example: 3600 + type: integer + type: object TRLinkPartnerResponse: example: baseUrl: https://api.notabene.id @@ -65523,7 +68760,6 @@ components: enum: - fireblocks - coinmarketcap - - slip44 example: fireblocks type: string TRLinkAssetData: @@ -65805,11 +69041,8 @@ components: required: - subsidiaryVaspId type: object - TRLinkAmountRange: + ScreeningPolicyAmountRange: description: Minimum and maximum amount range specification - example: - min: "1000" - max: "100000" properties: min: description: Minimum amount (inclusive) @@ -65822,13 +69055,15 @@ components: nullable: true type: string type: object - TRLinkCurrency: + ScreeningPolicyCurrency: enum: - USD - NATIVE + example: USD type: string - TRLinkAmount-2: - description: Amount specification with range and currency type + ScreeningPolicyAmount: + description: "Amount specification with range and currency type (screening policy\ + \ rules – BYORK, TRLink, etc.)" example: range: min: "1000" @@ -65836,9 +69071,9 @@ components: currency: USD properties: range: - $ref: "#/components/schemas/TRLinkAmountRange" + $ref: "#/components/schemas/ScreeningPolicyAmountRange" currency: - $ref: "#/components/schemas/TRLinkCurrency" + $ref: "#/components/schemas/ScreeningPolicyCurrency" required: - currency - range @@ -65927,7 +69162,7 @@ components: nullable: true type: string amount: - $ref: "#/components/schemas/TRLinkAmount-2" + $ref: "#/components/schemas/ScreeningPolicyAmount" networkProtocol: description: Network protocol identifier example: BITCOIN @@ -66044,7 +69279,7 @@ components: nullable: true type: string amount: - $ref: "#/components/schemas/TRLinkAmount-2" + $ref: "#/components/schemas/ScreeningPolicyAmount" networkProtocol: description: Network protocol identifier example: ETHEREUM @@ -66177,7 +69412,7 @@ components: nullable: true type: string amount: - $ref: "#/components/schemas/TRLinkAmount-2" + $ref: "#/components/schemas/ScreeningPolicyAmount" networkProtocol: description: Network protocol identifier example: BITCOIN @@ -73523,6 +76758,311 @@ components: - status - type type: object + UtxoInput-2: + example: + index: 0 + txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + properties: + txHash: + description: The transaction hash + example: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + type: string + index: + description: The output index (vout) + example: 0 + type: integer + type: object + UtxoOutput: + example: + fbTxId: b70701f4-d7b1-4795-a8ee-b09cdb5b850e + amount: "0.00150000" + address: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa + isCoinbase: false + createdByHash: 000000000000000000024bead8df69990852c202db0e0097c1a12ea637d7e96d + confirmations: 6 + labels: + - cold-storage + - vip + utxoId: "123456" + input: + index: 0 + txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + createdAt: 2025-01-16T15:45:00Z + createdByHeight: 800100 + isChange: false + status: AVAILABLE + spentByFbTxId: + - b70701f4-d7b1-4795-a8ee-b09cdb5b850e + updatedAt: 2025-01-16T15:45:00Z + properties: + input: + $ref: "#/components/schemas/UtxoInput-2" + utxoId: + description: The unique UTXO identifier + example: "123456" + type: string + address: + description: The address holding this UTXO + example: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa + type: string + amount: + description: The UTXO amount in the asset's native unit + example: "0.00150000" + type: string + confirmations: + description: Number of confirmations + example: 6 + type: integer + status: + description: The UTXO status + enum: + - PENDING + - AVAILABLE + - FROZEN + - SELECTED + example: AVAILABLE + type: string + isChange: + description: Whether this is a change output + example: false + type: boolean + isCoinbase: + description: Whether this is a coinbase output + example: false + type: boolean + fbTxId: + description: The Fireblocks transaction ID that created this UTXO + example: b70701f4-d7b1-4795-a8ee-b09cdb5b850e + type: string + createdByHash: + description: The on-chain block hash where this UTXO was created + example: 000000000000000000024bead8df69990852c202db0e0097c1a12ea637d7e96d + type: string + spentByFbTxId: + description: Fireblocks transaction IDs that selected/spent this UTXO + example: + - b70701f4-d7b1-4795-a8ee-b09cdb5b850e + items: + type: string + type: array + createdByHeight: + description: The block height at which this UTXO was created + example: 800100 + type: integer + createdAt: + description: The timestamp when this UTXO was created + example: 2025-01-16T15:45:00Z + format: date-time + type: string + updatedAt: + description: The timestamp when this UTXO was last updated + example: 2025-01-16T15:45:00Z + format: date-time + type: string + labels: + description: Labels attached to this UTXO + example: + - cold-storage + - vip + items: + type: string + type: array + required: + - address + - amount + - input + - status + - utxoId + type: object + ListUtxosResponse: + example: + next: MjAyNS0wNy0wOSAxMDo1MzoxMy40NTI=:NA== + data: + - fbTxId: b70701f4-d7b1-4795-a8ee-b09cdb5b850e + amount: "0.00150000" + address: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa + isCoinbase: false + createdByHash: 000000000000000000024bead8df69990852c202db0e0097c1a12ea637d7e96d + confirmations: 6 + labels: + - cold-storage + - vip + utxoId: "123456" + input: + index: 0 + txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + createdAt: 2025-01-16T15:45:00Z + createdByHeight: 800100 + isChange: false + status: AVAILABLE + spentByFbTxId: + - b70701f4-d7b1-4795-a8ee-b09cdb5b850e + updatedAt: 2025-01-16T15:45:00Z + - fbTxId: b70701f4-d7b1-4795-a8ee-b09cdb5b850e + amount: "0.00150000" + address: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa + isCoinbase: false + createdByHash: 000000000000000000024bead8df69990852c202db0e0097c1a12ea637d7e96d + confirmations: 6 + labels: + - cold-storage + - vip + utxoId: "123456" + input: + index: 0 + txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + createdAt: 2025-01-16T15:45:00Z + createdByHeight: 800100 + isChange: false + status: AVAILABLE + spentByFbTxId: + - b70701f4-d7b1-4795-a8ee-b09cdb5b850e + updatedAt: 2025-01-16T15:45:00Z + properties: + data: + description: List of UTXOs + items: + $ref: "#/components/schemas/UtxoOutput" + type: array + next: + description: Cursor to the next page + example: MjAyNS0wNy0wOSAxMDo1MzoxMy40NTI=:NA== + nullable: true + type: string + required: + - data + type: object + UtxoIdentifier: + description: |- + Identifies a UTXO by either a Fireblocks transaction ID (targets all outputs of that transaction) + or a specific on-chain UTXO (txHash + vout). Exactly one of these two forms must be provided. + example: + txId: b70701f4-d7b1-4795-a8ee-b09cdb5b850e + txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + vout: 0 + properties: + txId: + description: Fireblocks transaction ID + example: b70701f4-d7b1-4795-a8ee-b09cdb5b850e + type: string + txHash: + description: On-chain transaction hash + example: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + type: string + vout: + description: Output index + example: 0 + type: integer + type: object + AttachDetachUtxoLabelsRequest: + example: + labelsToAttach: + - cold-storage + - vip + utxoIdentifiers: + - txId: b70701f4-d7b1-4795-a8ee-b09cdb5b850e + txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + vout: 0 + - txId: b70701f4-d7b1-4795-a8ee-b09cdb5b850e + txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + vout: 0 + - txId: b70701f4-d7b1-4795-a8ee-b09cdb5b850e + txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + vout: 0 + - txId: b70701f4-d7b1-4795-a8ee-b09cdb5b850e + txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + vout: 0 + - txId: b70701f4-d7b1-4795-a8ee-b09cdb5b850e + txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + vout: 0 + labelsToDetach: + - deprecated + properties: + utxoIdentifiers: + description: List of UTXO identifiers to apply label changes to + items: + $ref: "#/components/schemas/UtxoIdentifier" + maxItems: 200 + minItems: 1 + type: array + labelsToAttach: + description: Labels to attach to the specified UTXOs. At least one of labelsToAttach + or labelsToDetach must be provided. + example: + - cold-storage + - vip + items: + maxLength: 30 + pattern: "^[a-z0-9][a-z0-9_-]*$" + type: string + maxItems: 5 + minItems: 1 + type: array + labelsToDetach: + description: Labels to detach from the specified UTXOs. At least one of + labelsToAttach or labelsToDetach must be provided. + example: + - deprecated + items: + maxLength: 30 + pattern: "^[a-z0-9][a-z0-9_-]*$" + type: string + maxItems: 5 + minItems: 1 + type: array + required: + - utxoIdentifiers + type: object + AttachDetachUtxoLabelsResponse: + example: + utxos: + - fbTxId: b70701f4-d7b1-4795-a8ee-b09cdb5b850e + amount: "0.00150000" + address: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa + isCoinbase: false + createdByHash: 000000000000000000024bead8df69990852c202db0e0097c1a12ea637d7e96d + confirmations: 6 + labels: + - cold-storage + - vip + utxoId: "123456" + input: + index: 0 + txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + createdAt: 2025-01-16T15:45:00Z + createdByHeight: 800100 + isChange: false + status: AVAILABLE + spentByFbTxId: + - b70701f4-d7b1-4795-a8ee-b09cdb5b850e + updatedAt: 2025-01-16T15:45:00Z + - fbTxId: b70701f4-d7b1-4795-a8ee-b09cdb5b850e + amount: "0.00150000" + address: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa + isCoinbase: false + createdByHash: 000000000000000000024bead8df69990852c202db0e0097c1a12ea637d7e96d + confirmations: 6 + labels: + - cold-storage + - vip + utxoId: "123456" + input: + index: 0 + txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + createdAt: 2025-01-16T15:45:00Z + createdByHeight: 800100 + isChange: false + status: AVAILABLE + spentByFbTxId: + - b70701f4-d7b1-4795-a8ee-b09cdb5b850e + updatedAt: 2025-01-16T15:45:00Z + properties: + utxos: + description: Modified UTXOs with updated labels + items: + $ref: "#/components/schemas/UtxoOutput" + type: array + type: object LeiStatus: description: Approval status of a legal entity registration enum: @@ -73545,6 +77085,20 @@ components: - TWENTY_ONE_ANALYTICS - VERIFY_VASP type: string + GleifOtherLegalEntityName: + properties: + name: + description: Alternative name of the legal entity + example: ExCorp + type: string + language: + description: Two-letter ISO 639-1 language code + example: en + type: string + required: + - language + - name + type: object GleifData: description: GLEIF (Global Legal Entity Identifier Foundation) data for a legal entity @@ -73552,8 +77106,11 @@ components: legalName: Example Corporation Ltd. lei: 529900HNOAA1KXQJUQ27 otherNames: - - ExCorp - - Example Corp + - name: ExCorp + language: en + - name: Example Corp + language: en + legalNameLanguage: en legalAddressRegion: NY nextRenewalDate: 2025-12-31T00:00:00Z legalAddressCountry: US @@ -73566,13 +77123,21 @@ components: description: Official legal name of the entity example: Example Corporation Ltd. type: string + legalNameLanguage: + description: Two-letter ISO 639-1 language code + example: en + maxLength: 2 + minLength: 2 + type: string otherNames: description: Alternative names for the entity example: - - ExCorp - - Example Corp + - name: ExCorp + language: en + - name: Example Corp + language: en items: - type: string + $ref: "#/components/schemas/GleifOtherLegalEntityName" maxItems: 20 minItems: 0 type: array @@ -73601,8 +77166,11 @@ components: legalName: Example Corporation Ltd. lei: 529900HNOAA1KXQJUQ27 otherNames: - - ExCorp - - Example Corp + - name: ExCorp + language: en + - name: Example Corp + language: en + legalNameLanguage: en legalAddressRegion: NY nextRenewalDate: 2025-12-31T00:00:00Z legalAddressCountry: US @@ -73675,8 +77243,11 @@ components: legalName: Example Corporation Ltd. lei: 529900HNOAA1KXQJUQ27 otherNames: - - ExCorp - - Example Corp + - name: ExCorp + language: en + - name: Example Corp + language: en + legalNameLanguage: en legalAddressRegion: NY nextRenewalDate: 2025-12-31T00:00:00Z legalAddressCountry: US @@ -73693,8 +77264,11 @@ components: legalName: Example Corporation Ltd. lei: 529900HNOAA1KXQJUQ27 otherNames: - - ExCorp - - Example Corp + - name: ExCorp + language: en + - name: Example Corp + language: en + legalNameLanguage: en legalAddressRegion: NY nextRenewalDate: 2025-12-31T00:00:00Z legalAddressCountry: US @@ -73707,7 +77281,6 @@ components: - MY_OWN status: PENDING updatedAt: "1700000000000" - prev: eyJpZCI6IjEyMCJ9 properties: total: description: Total number of legal entity registrations (optional) @@ -73722,10 +77295,6 @@ components: description: Cursor to pass as `pageCursor` to retrieve the next page example: eyJpZCI6IjEyMyJ9 type: string - prev: - description: Cursor to pass as `pageCursor` to retrieve the previous page - example: eyJpZCI6IjEyMCJ9 - type: string required: - data type: object @@ -73777,7 +77346,6 @@ components: - "23" - "12" - "1" - prev: eyJpZCI6IjEyMCJ9 properties: total: description: Total number of legal entity registrations (optional) @@ -73796,10 +77364,6 @@ components: description: Cursor to pass as `pageCursor` to retrieve the next page example: eyJpZCI6IjEyMyJ9 type: string - prev: - description: Cursor to pass as `pageCursor` to retrieve the previous page - example: eyJpZCI6IjEyMCJ9 - type: string required: - data type: object diff --git a/build.gradle b/build.gradle index 7a058a5d..62baedca 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ apply plugin: 'eclipse' apply plugin: 'com.diffplug.spotless' group = 'com.fireblocks.sdk' -version = '16.0.0' +version = '0.0.0' buildscript { repositories { diff --git a/docs/AccountBasedAccessProvider.md b/docs/AccountBasedAccessProvider.md index 9b20a27b..9548bce6 100644 --- a/docs/AccountBasedAccessProvider.md +++ b/docs/AccountBasedAccessProvider.md @@ -2,6 +2,7 @@ # AccountBasedAccessProvider +Provider integrated via Fireblocks connected accounts (`accountBased` is `true`). ## Properties @@ -12,7 +13,7 @@ |**logo** | **String** | URL to the logo image of the provider | [optional] | |**accountBased** | **Boolean** | Indicates whether the provider access model is through accounts or directly | | |**manifest** | [**Manifest**](Manifest.md) | | | -|**connected** | **Boolean** | Whether the provider is currently connected | | +|**connected** | **Boolean** | Whether the provider is currently connected. | | |**accounts** | [**List<AccountBase>**](AccountBase.md) | | | diff --git a/docs/AccountBasedAccessProviderInfo.md b/docs/AccountBasedAccessProviderInfo.md index 7afe8eb5..04d0b881 100644 --- a/docs/AccountBasedAccessProviderInfo.md +++ b/docs/AccountBasedAccessProviderInfo.md @@ -7,7 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**connected** | **Boolean** | Whether the provider is currently connected | | +|**connected** | **Boolean** | Whether the provider is currently connected. | | |**accounts** | [**List<AccountBase>**](AccountBase.md) | | | diff --git a/docs/AccountBasedProviderDetails.md b/docs/AccountBasedProviderDetails.md deleted file mode 100644 index 27ee28ca..00000000 --- a/docs/AccountBasedProviderDetails.md +++ /dev/null @@ -1,19 +0,0 @@ - - -# AccountBasedProviderDetails - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**id** | **String** | Unique identifier for the provider | | -|**name** | **String** | Display name of the provider | | -|**logo** | **String** | URL to the logo image of the provider | [optional] | -|**accountBased** | **Boolean** | Indicates whether the provider access model is through accounts or directly | | -|**manifest** | [**Manifest**](Manifest.md) | | | -|**connected** | **Boolean** | Whether the provider is currently connected | | -|**accounts** | [**List<AccountBase>**](AccountBase.md) | | | - - - diff --git a/docs/ActionRecord.md b/docs/ActionRecord.md new file mode 100644 index 00000000..546cc7b4 --- /dev/null +++ b/docs/ActionRecord.md @@ -0,0 +1,44 @@ + + +# ActionRecord + +One row in the lending action execution sequence. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**actionType** | [**ActionTypeEnum**](#ActionTypeEnum) | Kind of step in the lending sequence. | | +|**status** | [**StatusEnum**](#StatusEnum) | Step lifecycle status. | | +|**txId** | **String** | Fireblocks transaction id when applicable (unset when NOT_STARTED). | [optional] | +|**txHash** | **String** | On-chain transaction hash when applicable (unset when NOT_STARTED). | [optional] | +|**errorMessage** | **String** | Error detail when the step failed. | [optional] | +|**updatedAt** | **String** | Last update time (ISO-8601); may be empty when status is NOT_STARTED. | | + + + +## Enum: ActionTypeEnum + +| Name | Value | +|---- | -----| +| APPROVE | "APPROVE" | +| DEPOSIT | "DEPOSIT" | +| WITHDRAW | "WITHDRAW" | + + + +## Enum: StatusEnum + +| Name | Value | +|---- | -----| +| NOT_STARTED | "NOT_STARTED" | +| PROCESSING | "PROCESSING" | +| PENDING_SIGNATURE | "PENDING_SIGNATURE" | +| BROADCASTING | "BROADCASTING" | +| CONFIRMING | "CONFIRMING" | +| COMPLETED | "COMPLETED" | +| FAILED | "FAILED" | +| CANCELED | "CANCELED" | + + + diff --git a/docs/AddressRegistryError.md b/docs/AddressRegistryError.md index 8779cfeb..3b915c0a 100644 --- a/docs/AddressRegistryError.md +++ b/docs/AddressRegistryError.md @@ -8,7 +8,7 @@ Error body for address registry operations (4xx and 5xx). | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**code** | **Integer** | Application error code when present. Typical values include **2140** (403 — workspace not opted in to the address registry) and **2142** (404 — not found). Other codes may appear, including on server errors. | [optional] | +|**code** | **Integer** | Application error code when present. For HTTP 400 on legal-entity lookup, distinguish: 4100 — request validation (e.g. missing, empty, or whitespace-only `address` after trim); 2140 — workspace not opted in to the address registry (`AR_OPT_IN_REQUIRED`). 2142 — not found (404). Other codes may appear, including on server errors. | [optional] | |**message** | **String** | Human-readable error message | | diff --git a/docs/AddressRegistryLegalEntityLegacy.md b/docs/AddressRegistryLegalEntityLegacy.md deleted file mode 100644 index fc8a3152..00000000 --- a/docs/AddressRegistryLegalEntityLegacy.md +++ /dev/null @@ -1,16 +0,0 @@ - - -# AddressRegistryLegalEntityLegacy - -Narrow legacy response for deprecated `GET /v1/address_registry/legal_entity?address=…`. Use `GET /v1/address_registry/legal_entities/{address}` for the full field set. - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**companyName** | **String** | Legal entity / company display name | | -|**countryCode** | **String** | Jurisdiction country code (e.g. ISO 3166-1 alpha-2) | | -|**companyId** | **UUID** | Company identifier for the resolved legal entity (UUID) | | - - - diff --git a/docs/Apy.md b/docs/Apy.md new file mode 100644 index 00000000..7a0141ce --- /dev/null +++ b/docs/Apy.md @@ -0,0 +1,15 @@ + + +# Apy + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**_native** | **Double** | APY in native format (before fees), as a percentage (e.g. 4.25 means 4.25%, not 0.0425). | [optional] | +|**gross** | **Double** | Gross APY before fees, as a percentage (e.g. 4.25 means 4.25%, not 0.0425). | [optional] | +|**net** | **Double** | Net APY after fees, as a percentage (e.g. 4.25 means 4.25%, not 0.0425). | [optional] | + + + diff --git a/docs/AttachDetachUtxoLabelsRequest.md b/docs/AttachDetachUtxoLabelsRequest.md new file mode 100644 index 00000000..fbd3246c --- /dev/null +++ b/docs/AttachDetachUtxoLabelsRequest.md @@ -0,0 +1,15 @@ + + +# AttachDetachUtxoLabelsRequest + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**utxoIdentifiers** | [**List<UtxoIdentifier>**](UtxoIdentifier.md) | List of UTXO identifiers to apply label changes to | | +|**labelsToAttach** | **List<String>** | Labels to attach to the specified UTXOs. At least one of labelsToAttach or labelsToDetach must be provided. | [optional] | +|**labelsToDetach** | **List<String>** | Labels to detach from the specified UTXOs. At least one of labelsToAttach or labelsToDetach must be provided. | [optional] | + + + diff --git a/docs/AttachDetachUtxoLabelsResponse.md b/docs/AttachDetachUtxoLabelsResponse.md new file mode 100644 index 00000000..f924a5c8 --- /dev/null +++ b/docs/AttachDetachUtxoLabelsResponse.md @@ -0,0 +1,13 @@ + + +# AttachDetachUtxoLabelsResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**utxos** | [**List<UtxoOutput>**](UtxoOutput.md) | Modified UTXOs with updated labels | [optional] | + + + diff --git a/docs/ByorkConfigResponse.md b/docs/ByorkConfigResponse.md new file mode 100644 index 00000000..dfe22b04 --- /dev/null +++ b/docs/ByorkConfigResponse.md @@ -0,0 +1,20 @@ + + +# ByorkConfigResponse + +BYORK Light configuration for the tenant: wait-for-response timeouts, active flag, provider, last update time, and allowed timeout ranges for validation. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**incomingTimeoutSeconds** | **Integer** | Timeout in seconds for incoming BYORK wait-for-response | [optional] | +|**outgoingTimeoutSeconds** | **Integer** | Timeout in seconds for outgoing BYORK wait-for-response | [optional] | +|**active** | **Boolean** | Whether BYORK Light is active for the tenant | [optional] | +|**provider** | **String** | Provider identifier | [optional] | +|**lastUpdate** | **OffsetDateTime** | Last update timestamp of the configuration | [optional] | +|**timeoutRangeIncoming** | [**ByorkTimeoutRange**](ByorkTimeoutRange.md) | | [optional] | +|**timeoutRangeOutgoing** | [**ByorkTimeoutRange**](ByorkTimeoutRange.md) | | [optional] | + + + diff --git a/docs/ByorkSetTimeoutsRequest.md b/docs/ByorkSetTimeoutsRequest.md new file mode 100644 index 00000000..8e976370 --- /dev/null +++ b/docs/ByorkSetTimeoutsRequest.md @@ -0,0 +1,15 @@ + + +# ByorkSetTimeoutsRequest + +Request body for setting BYORK timeout values. At least one of incomingTimeoutSeconds or outgoingTimeoutSeconds is required. Allowed range per direction is returned in GET config (timeoutRangeIncoming, timeoutRangeOutgoing). + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**incomingTimeoutSeconds** | **Integer** | Timeout in seconds for incoming BYORK wait-for-response. Allowed range in GET config (timeoutRangeIncoming). | [optional] | +|**outgoingTimeoutSeconds** | **Integer** | Timeout in seconds for outgoing BYORK wait-for-response. Allowed range in GET config (timeoutRangeOutgoing). | [optional] | + + + diff --git a/docs/ByorkSetVerdictEnum.md b/docs/ByorkSetVerdictEnum.md new file mode 100644 index 00000000..4e6a7972 --- /dev/null +++ b/docs/ByorkSetVerdictEnum.md @@ -0,0 +1,13 @@ + + +# ByorkSetVerdictEnum + +## Enum + + +* `ACCEPT` (value: `"ACCEPT"`) + +* `REJECT` (value: `"REJECT"`) + + + diff --git a/docs/ByorkTimeoutRange.md b/docs/ByorkTimeoutRange.md new file mode 100644 index 00000000..b07768f5 --- /dev/null +++ b/docs/ByorkTimeoutRange.md @@ -0,0 +1,15 @@ + + +# ByorkTimeoutRange + +Allowed range for timeout values (seconds). Use when calling PUT config/timeouts. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**minSeconds** | **Integer** | | [optional] | +|**maxSeconds** | **Integer** | | [optional] | + + + diff --git a/docs/ByorkVerdictEnum.md b/docs/ByorkVerdictEnum.md new file mode 100644 index 00000000..db2246cf --- /dev/null +++ b/docs/ByorkVerdictEnum.md @@ -0,0 +1,15 @@ + + +# ByorkVerdictEnum + +## Enum + + +* `ACCEPT` (value: `"ACCEPT"`) + +* `REJECT` (value: `"REJECT"`) + +* `WAIT` (value: `"WAIT"`) + + + diff --git a/docs/ByorkVerdictRequest.md b/docs/ByorkVerdictRequest.md new file mode 100644 index 00000000..89f06b27 --- /dev/null +++ b/docs/ByorkVerdictRequest.md @@ -0,0 +1,14 @@ + + +# ByorkVerdictRequest + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**txId** | **String** | Transaction ID to set the verdict for | | +|**verdict** | **ByorkSetVerdictEnum** | | | + + + diff --git a/docs/ByorkVerdictResponse.md b/docs/ByorkVerdictResponse.md new file mode 100644 index 00000000..fd6823ec --- /dev/null +++ b/docs/ByorkVerdictResponse.md @@ -0,0 +1,14 @@ + + +# ByorkVerdictResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**status** | **ByorkVerdictResponseStatusEnum** | | | +|**message** | **String** | Human-readable message | | + + + diff --git a/docs/ByorkVerdictResponseStatusEnum.md b/docs/ByorkVerdictResponseStatusEnum.md new file mode 100644 index 00000000..0f108d1d --- /dev/null +++ b/docs/ByorkVerdictResponseStatusEnum.md @@ -0,0 +1,17 @@ + + +# ByorkVerdictResponseStatusEnum + +## Enum + + +* `PRE_ACCEPTED` (value: `"PRE_ACCEPTED"`) + +* `COMPLETED` (value: `"COMPLETED"`) + +* `PENDING` (value: `"PENDING"`) + +* `RECEIVED` (value: `"RECEIVED"`) + + + diff --git a/docs/ComplianceApi.md b/docs/ComplianceApi.md index 72a85e5f..16053222 100644 --- a/docs/ComplianceApi.md +++ b/docs/ComplianceApi.md @@ -4,14 +4,17 @@ All URIs are relative to https://developers.fireblocks.com/reference/ | Method | HTTP request | Description | |------------- | ------------- | -------------| +| [**activateByorkConfig**](ComplianceApi.md#activateByorkConfig) | **POST** /screening/byork/config/activate | Activate BYORK Light | | [**addAddressRegistryVaultOptOuts**](ComplianceApi.md#addAddressRegistryVaultOptOuts) | **POST** /address_registry/vaults | Add vault accounts to the address registry opt-out list | | [**assignVaultsToLegalEntity**](ComplianceApi.md#assignVaultsToLegalEntity) | **POST** /legal_entities/{legalEntityId}/vaults | Assign vault accounts to a legal entity | +| [**deactivateByorkConfig**](ComplianceApi.md#deactivateByorkConfig) | **POST** /screening/byork/config/deactivate | Deactivate BYORK Light | | [**getAddressRegistryTenantParticipationStatus**](ComplianceApi.md#getAddressRegistryTenantParticipationStatus) | **GET** /address_registry/tenant | Get address registry participation status for the authenticated workspace | | [**getAddressRegistryVaultOptOut**](ComplianceApi.md#getAddressRegistryVaultOptOut) | **GET** /address_registry/vaults/{vaultAccountId} | Get whether a vault account is opted out of the address registry | | [**getAmlPostScreeningPolicy**](ComplianceApi.md#getAmlPostScreeningPolicy) | **GET** /screening/aml/post_screening_policy | AML - View Post-Screening Policy | | [**getAmlScreeningPolicy**](ComplianceApi.md#getAmlScreeningPolicy) | **GET** /screening/aml/screening_policy | AML - View Screening Policy | +| [**getByorkConfig**](ComplianceApi.md#getByorkConfig) | **GET** /screening/byork/config | Get BYORK Light configuration | +| [**getByorkVerdict**](ComplianceApi.md#getByorkVerdict) | **GET** /screening/byork/verdict | Get BYORK Light verdict | | [**getLegalEntity**](ComplianceApi.md#getLegalEntity) | **GET** /legal_entities/{legalEntityId} | Get a legal entity | -| [**getLegalEntityByAddress**](ComplianceApi.md#getLegalEntityByAddress) | **GET** /address_registry/legal_entity | [Deprecated] Look up legal entity by address (query parameter) | | [**getLegalEntityForAddress**](ComplianceApi.md#getLegalEntityForAddress) | **GET** /address_registry/legal_entities/{address} | Look up legal entity by blockchain address | | [**getPostScreeningPolicy**](ComplianceApi.md#getPostScreeningPolicy) | **GET** /screening/travel_rule/post_screening_policy | Travel Rule - View Post-Screening Policy | | [**getScreeningFullDetails**](ComplianceApi.md#getScreeningFullDetails) | **GET** /screening/transaction/{txId} | Provides all the compliance details for the given screened transaction. | @@ -25,7 +28,9 @@ All URIs are relative to https://developers.fireblocks.com/reference/ | [**removeAddressRegistryVaultOptOut**](ComplianceApi.md#removeAddressRegistryVaultOptOut) | **DELETE** /address_registry/vaults/{vaultAccountId} | Remove a single vault account from the address registry opt-out list | | [**removeAllAddressRegistryVaultOptOuts**](ComplianceApi.md#removeAllAddressRegistryVaultOptOuts) | **DELETE** /address_registry/vaults | Remove all vault-level address registry opt-outs for the workspace | | [**retryRejectedTransactionBypassScreeningChecks**](ComplianceApi.md#retryRejectedTransactionBypassScreeningChecks) | **POST** /screening/transaction/{txId}/bypass_screening_policy | Calling the \"Bypass Screening Policy\" API endpoint triggers a new transaction, with the API user as the initiator, bypassing the screening policy check | -| [**setAmlVerdict**](ComplianceApi.md#setAmlVerdict) | **POST** /screening/aml/verdict/manual | Set AML Verdict for Manual Screening Verdict. | +| [**setAmlVerdict**](ComplianceApi.md#setAmlVerdict) | **POST** /screening/aml/verdict/manual | Set AML Verdict (BYORK Super Light) | +| [**setByorkTimeouts**](ComplianceApi.md#setByorkTimeouts) | **PUT** /screening/byork/config/timeouts | Set BYORK Light timeouts | +| [**setByorkVerdict**](ComplianceApi.md#setByorkVerdict) | **POST** /screening/byork/verdict | Set BYORK Light verdict | | [**updateAmlScreeningConfiguration**](ComplianceApi.md#updateAmlScreeningConfiguration) | **PUT** /screening/aml/policy_configuration | Update AML Configuration | | [**updateLegalEntity**](ComplianceApi.md#updateLegalEntity) | **PUT** /legal_entities/{legalEntityId} | Update legal entity | | [**updateScreeningConfiguration**](ComplianceApi.md#updateScreeningConfiguration) | **PUT** /screening/configurations | Tenant - Screening Configuration | @@ -33,6 +38,90 @@ All URIs are relative to https://developers.fireblocks.com/reference/ +## activateByorkConfig + +> CompletableFuture> activateByorkConfig activateByorkConfig(idempotencyKey) + +Activate BYORK Light + +Activates BYORK Light for the authenticated tenant (sets config.active to true). Once activated, BYORK screening applies to matching transactions. Requires BYORK Light to be enabled for the tenant (contact your CSM to enable). + +### Example + +```java +// Import classes: +import com.fireblocks.sdk.ApiClient; +import com.fireblocks.sdk.ApiException; +import com.fireblocks.sdk.ApiResponse; +import com.fireblocks.sdk.BasePath; +import com.fireblocks.sdk.Fireblocks; +import com.fireblocks.sdk.ConfigurationOptions; +import com.fireblocks.sdk.model.*; +import com.fireblocks.sdk.api.ComplianceApi; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; + +public class Example { + public static void main(String[] args) { + ConfigurationOptions configurationOptions = new ConfigurationOptions() + .basePath(BasePath.Sandbox) + .apiKey("my-api-key") + .secretKey("my-secret-key"); + Fireblocks fireblocks = new Fireblocks(configurationOptions); + + String idempotencyKey = "idempotencyKey_example"; // String | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. + try { + CompletableFuture> response = fireblocks.compliance().activateByorkConfig(idempotencyKey); + System.out.println("Status code: " + response.get().getStatusCode()); + System.out.println("Response headers: " + response.get().getHeaders()); + System.out.println("Response body: " + response.get().getData()); + } catch (InterruptedException | ExecutionException e) { + ApiException apiException = (ApiException)e.getCause(); + System.err.println("Exception when calling ComplianceApi#activateByorkConfig"); + System.err.println("Status code: " + apiException.getCode()); + System.err.println("Response headers: " + apiException.getResponseHeaders()); + System.err.println("Reason: " + apiException.getResponseBody()); + e.printStackTrace(); + } catch (ApiException e) { + System.err.println("Exception when calling ComplianceApi#activateByorkConfig"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Response headers: " + e.getResponseHeaders()); + System.err.println("Reason: " + e.getResponseBody()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **idempotencyKey** | **String**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] | + +### Return type + +CompletableFuture> + + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | BYORK configuration activated. | * X-Request-ID -
| +| **400** | BYORK Light not enabled for tenant. | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| + + ## addAddressRegistryVaultOptOuts > CompletableFuture> addAddressRegistryVaultOptOuts addAddressRegistryVaultOptOuts(addressRegistryAddVaultOptOutsRequest, idempotencyKey) @@ -207,6 +296,90 @@ No authorization required | **0** | Error Response | * X-Request-ID -
| +## deactivateByorkConfig + +> CompletableFuture> deactivateByorkConfig deactivateByorkConfig(idempotencyKey) + +Deactivate BYORK Light + +Deactivates BYORK Light for the authenticated tenant (sets config.active to false). Once deactivated, BYORK screening no longer applies until activated again. Requires BYORK Light to be enabled for the tenant (contact your CSM to enable). + +### Example + +```java +// Import classes: +import com.fireblocks.sdk.ApiClient; +import com.fireblocks.sdk.ApiException; +import com.fireblocks.sdk.ApiResponse; +import com.fireblocks.sdk.BasePath; +import com.fireblocks.sdk.Fireblocks; +import com.fireblocks.sdk.ConfigurationOptions; +import com.fireblocks.sdk.model.*; +import com.fireblocks.sdk.api.ComplianceApi; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; + +public class Example { + public static void main(String[] args) { + ConfigurationOptions configurationOptions = new ConfigurationOptions() + .basePath(BasePath.Sandbox) + .apiKey("my-api-key") + .secretKey("my-secret-key"); + Fireblocks fireblocks = new Fireblocks(configurationOptions); + + String idempotencyKey = "idempotencyKey_example"; // String | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. + try { + CompletableFuture> response = fireblocks.compliance().deactivateByorkConfig(idempotencyKey); + System.out.println("Status code: " + response.get().getStatusCode()); + System.out.println("Response headers: " + response.get().getHeaders()); + System.out.println("Response body: " + response.get().getData()); + } catch (InterruptedException | ExecutionException e) { + ApiException apiException = (ApiException)e.getCause(); + System.err.println("Exception when calling ComplianceApi#deactivateByorkConfig"); + System.err.println("Status code: " + apiException.getCode()); + System.err.println("Response headers: " + apiException.getResponseHeaders()); + System.err.println("Reason: " + apiException.getResponseBody()); + e.printStackTrace(); + } catch (ApiException e) { + System.err.println("Exception when calling ComplianceApi#deactivateByorkConfig"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Response headers: " + e.getResponseHeaders()); + System.err.println("Reason: " + e.getResponseBody()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **idempotencyKey** | **String**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] | + +### Return type + +CompletableFuture> + + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | BYORK configuration deactivated. | * X-Request-ID -
| +| **400** | BYORK Light not enabled for tenant. | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| + + ## getAddressRegistryTenantParticipationStatus > CompletableFuture> getAddressRegistryTenantParticipationStatus getAddressRegistryTenantParticipationStatus() @@ -526,13 +699,13 @@ No authorization required | **200** | Screening policy retrieved successfully. | - | -## getLegalEntity +## getByorkConfig -> CompletableFuture> getLegalEntity getLegalEntity(legalEntityId) +> CompletableFuture> getByorkConfig getByorkConfig() -Get a legal entity +Get BYORK Light configuration -Returns details of a specific legal entity registration, including GLEIF data when available. </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. +Retrieves BYORK Light configuration for the authenticated tenant (timeouts, active flag, allowed timeout ranges). Returns default config when none exists. Requires BYORK Light to be enabled for the tenant. ### Example @@ -557,21 +730,101 @@ public class Example { .secretKey("my-secret-key"); Fireblocks fireblocks = new Fireblocks(configurationOptions); - UUID legalEntityId = UUID.randomUUID(); // UUID | The unique ID of the legal entity registration try { - CompletableFuture> response = fireblocks.compliance().getLegalEntity(legalEntityId); + CompletableFuture> response = fireblocks.compliance().getByorkConfig(); System.out.println("Status code: " + response.get().getStatusCode()); System.out.println("Response headers: " + response.get().getHeaders()); System.out.println("Response body: " + response.get().getData()); } catch (InterruptedException | ExecutionException e) { ApiException apiException = (ApiException)e.getCause(); - System.err.println("Exception when calling ComplianceApi#getLegalEntity"); + System.err.println("Exception when calling ComplianceApi#getByorkConfig"); System.err.println("Status code: " + apiException.getCode()); System.err.println("Response headers: " + apiException.getResponseHeaders()); System.err.println("Reason: " + apiException.getResponseBody()); e.printStackTrace(); } catch (ApiException e) { - System.err.println("Exception when calling ComplianceApi#getLegalEntity"); + System.err.println("Exception when calling ComplianceApi#getByorkConfig"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Response headers: " + e.getResponseHeaders()); + System.err.println("Reason: " + e.getResponseBody()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +CompletableFuture> + + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | BYORK configuration (or default). | * X-Request-ID -
| +| **400** | BYORK Light not enabled for tenant. | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| + + +## getByorkVerdict + +> CompletableFuture> getByorkVerdict getByorkVerdict(txId) + +Get BYORK Light verdict + +Returns the current BYORK verdict and status for a transaction. Status can be PRE_ACCEPTED, PENDING, RECEIVED (verdict is final but processing not yet complete), or COMPLETED. Requires BYORK Light to be enabled for the tenant. Returns 404 if no BYORK verdict is found for the transaction. + +### Example + +```java +// Import classes: +import com.fireblocks.sdk.ApiClient; +import com.fireblocks.sdk.ApiException; +import com.fireblocks.sdk.ApiResponse; +import com.fireblocks.sdk.BasePath; +import com.fireblocks.sdk.Fireblocks; +import com.fireblocks.sdk.ConfigurationOptions; +import com.fireblocks.sdk.model.*; +import com.fireblocks.sdk.api.ComplianceApi; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; + +public class Example { + public static void main(String[] args) { + ConfigurationOptions configurationOptions = new ConfigurationOptions() + .basePath(BasePath.Sandbox) + .apiKey("my-api-key") + .secretKey("my-secret-key"); + Fireblocks fireblocks = new Fireblocks(configurationOptions); + + String txId = "550e8400-e29b-41d4-a716-446655440000"; // String | Transaction ID + try { + CompletableFuture> response = fireblocks.compliance().getByorkVerdict(txId); + System.out.println("Status code: " + response.get().getStatusCode()); + System.out.println("Response headers: " + response.get().getHeaders()); + System.out.println("Response body: " + response.get().getData()); + } catch (InterruptedException | ExecutionException e) { + ApiException apiException = (ApiException)e.getCause(); + System.err.println("Exception when calling ComplianceApi#getByorkVerdict"); + System.err.println("Status code: " + apiException.getCode()); + System.err.println("Response headers: " + apiException.getResponseHeaders()); + System.err.println("Reason: " + apiException.getResponseBody()); + e.printStackTrace(); + } catch (ApiException e) { + System.err.println("Exception when calling ComplianceApi#getByorkVerdict"); System.err.println("Status code: " + e.getCode()); System.err.println("Response headers: " + e.getResponseHeaders()); System.err.println("Reason: " + e.getResponseBody()); @@ -586,11 +839,11 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| -| **legalEntityId** | **UUID**| The unique ID of the legal entity registration | | +| **txId** | **String**| Transaction ID | | ### Return type -CompletableFuture> +CompletableFuture> ### Authorization @@ -605,18 +858,20 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | Legal entity registration details | * X-Request-ID -
| -| **404** | Legal entity registration not found | * X-Request-ID -
| +| **200** | Current verdict and status. | * X-Request-ID -
| +| **400** | BYORK Light not enabled for tenant or txId missing. | * X-Request-ID -
| +| **404** | No BYORK verdict found for this transaction. | * X-Request-ID -
| +| **500** | Internal server error. | * X-Request-ID -
| | **0** | Error Response | * X-Request-ID -
| -## getLegalEntityByAddress +## getLegalEntity -> CompletableFuture> getLegalEntityByAddress getLegalEntityByAddress(address, asset) +> CompletableFuture> getLegalEntity getLegalEntity(legalEntityId) -[Deprecated] Look up legal entity by address (query parameter) +Get a legal entity -**Deprecated** — use `GET /v1/address_registry/legal_entities/{address}` instead. Here `address` is a **query** parameter; the replacement uses a path segment. The response includes only `companyName`, `countryCode`, and `companyId`. The replacement returns additional fields documented on that operation. Optional **`asset`** is supported here only (not on the replacement path). +Returns details of a specific legal entity registration, including GLEIF data when available. </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. ### Example @@ -641,22 +896,21 @@ public class Example { .secretKey("my-secret-key"); Fireblocks fireblocks = new Fireblocks(configurationOptions); - String address = "0x742d35cc6634c0532925a3b844bc9e7595f0beb0"; // String | Blockchain address to look up - String asset = "ETH"; // String | Optional asset identifier (this deprecated operation only). + UUID legalEntityId = UUID.randomUUID(); // UUID | The unique ID of the legal entity registration try { - CompletableFuture> response = fireblocks.compliance().getLegalEntityByAddress(address, asset); + CompletableFuture> response = fireblocks.compliance().getLegalEntity(legalEntityId); System.out.println("Status code: " + response.get().getStatusCode()); System.out.println("Response headers: " + response.get().getHeaders()); System.out.println("Response body: " + response.get().getData()); } catch (InterruptedException | ExecutionException e) { ApiException apiException = (ApiException)e.getCause(); - System.err.println("Exception when calling ComplianceApi#getLegalEntityByAddress"); + System.err.println("Exception when calling ComplianceApi#getLegalEntity"); System.err.println("Status code: " + apiException.getCode()); System.err.println("Response headers: " + apiException.getResponseHeaders()); System.err.println("Reason: " + apiException.getResponseBody()); e.printStackTrace(); } catch (ApiException e) { - System.err.println("Exception when calling ComplianceApi#getLegalEntityByAddress"); + System.err.println("Exception when calling ComplianceApi#getLegalEntity"); System.err.println("Status code: " + e.getCode()); System.err.println("Response headers: " + e.getResponseHeaders()); System.err.println("Reason: " + e.getResponseBody()); @@ -671,12 +925,11 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| -| **address** | **String**| Blockchain address to look up | | -| **asset** | **String**| Optional asset identifier (this deprecated operation only). | [optional] | +| **legalEntityId** | **UUID**| The unique ID of the legal entity registration | | ### Return type -CompletableFuture> +CompletableFuture> ### Authorization @@ -691,10 +944,8 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | Legal entity found | * X-Request-ID -
| -| **400** | Bad request – missing or invalid address | * X-Request-ID -
| -| **403** | Forbidden – the authenticated workspace is not opted in to the address registry (error code 2140) | * X-Request-ID -
| -| **404** | Not found (error code 2142) — unresolved address, no legal entity for a resolved address, or the same not-found outcome in other cases. | * X-Request-ID -
| +| **200** | Legal entity registration details | * X-Request-ID -
| +| **404** | Legal entity registration not found | * X-Request-ID -
| | **0** | Error Response | * X-Request-ID -
| @@ -704,7 +955,7 @@ No authorization required Look up legal entity by blockchain address -Returns legal entity information for the given blockchain address. URL-encode `{address}` when required. Prefer this operation over the deprecated `GET /v1/address_registry/legal_entity?address=…`, which returns only `companyName`, `countryCode`, and `companyId`. This operation adds verification status, LEI, Travel Rule providers, and contact email (see response properties). +Returns legal entity information for the given blockchain address (verification status, LEI, Travel Rule providers, contact email, and related fields — see response schema). URL-encode `{address}` when required. ### Example @@ -778,8 +1029,7 @@ No authorization required | Status code | Description | Response headers | |-------------|-------------|------------------| | **200** | Legal entity found | * X-Request-ID -
| -| **400** | Bad request – missing or invalid address | * X-Request-ID -
| -| **403** | Forbidden – the authenticated workspace is not opted in to the address registry (error code 2140) | * X-Request-ID -
| +| **400** | Bad request — either request validation (path `{address}` empty or whitespace-only after trim, e.g. encoded spaces only; numeric code 4100), or the authenticated workspace is not opted in to the address registry (numeric code 2140). The `message` field describes the failure; use `code` to distinguish. | * X-Request-ID -
| | **404** | Not found (error code 2142) — unresolved address, no legal entity for a resolved address, or the same not-found outcome in other cases. | * X-Request-ID -
| | **0** | Error Response | * X-Request-ID -
| @@ -1113,7 +1363,7 @@ No authorization required ## listLegalEntities -> CompletableFuture> listLegalEntities listLegalEntities(vaultAccountId, pageCursor, pageSize, sortBy, order) +> CompletableFuture> listLegalEntities listLegalEntities(vaultAccountId, pageCursor, pageSize) List legal entities (Paginated) @@ -1145,10 +1395,8 @@ public class Example { String vaultAccountId = "vaultAccountId_example"; // String | The ID of the vault account. When provided, returns the legal entity associated with that vault account and pagination parameters are ignored. String pageCursor = "pageCursor_example"; // String | Cursor string returned in `next` or `prev` of a previous response. Ignored when `vaultAccountId` is provided. Integer pageSize = 50; // Integer | Maximum number of registrations to return. Ignored when `vaultAccountId` is provided. - String sortBy = "createdAt"; // String | Field to sort results by. Ignored when `vaultAccountId` is provided. - String order = "ASC"; // String | Sort order. Ignored when `vaultAccountId` is provided. try { - CompletableFuture> response = fireblocks.compliance().listLegalEntities(vaultAccountId, pageCursor, pageSize, sortBy, order); + CompletableFuture> response = fireblocks.compliance().listLegalEntities(vaultAccountId, pageCursor, pageSize); System.out.println("Status code: " + response.get().getStatusCode()); System.out.println("Response headers: " + response.get().getHeaders()); System.out.println("Response body: " + response.get().getData()); @@ -1178,8 +1426,6 @@ public class Example { | **vaultAccountId** | **String**| The ID of the vault account. When provided, returns the legal entity associated with that vault account and pagination parameters are ignored. | [optional] | | **pageCursor** | **String**| Cursor string returned in `next` or `prev` of a previous response. Ignored when `vaultAccountId` is provided. | [optional] | | **pageSize** | **Integer**| Maximum number of registrations to return. Ignored when `vaultAccountId` is provided. | [optional] [default to 50] | -| **sortBy** | **String**| Field to sort results by. Ignored when `vaultAccountId` is provided. | [optional] [enum: createdAt, updatedAt] | -| **order** | **String**| Sort order. Ignored when `vaultAccountId` is provided. | [optional] [default to DESC] [enum: ASC, DESC] | ### Return type @@ -1793,9 +2039,9 @@ No authorization required > CompletableFuture> setAmlVerdict setAmlVerdict(amlVerdictManualRequest, idempotencyKey) -Set AML Verdict for Manual Screening Verdict. +Set AML Verdict (BYORK Super Light) -Set AML verdict for incoming transactions when Manual Screening Verdict feature is enabled. +Set AML verdict for incoming transactions when **BYORK Super Light** (Manual Screening Verdict) is enabled. This endpoint is for Super Light only. For **BYORK Light**, use POST /screening/byork/verdict instead. When Super Light is retired, this endpoint will be deprecated; use the BYORK Light verdict API for new integrations. ### Example @@ -1877,6 +2123,181 @@ No authorization required | **0** | Error Response | * X-Request-ID -
| +## setByorkTimeouts + +> CompletableFuture> setByorkTimeouts setByorkTimeouts(byorkSetTimeoutsRequest, idempotencyKey) + +Set BYORK Light timeouts + +Updates timeout values for BYORK wait-for-response (incoming and/or outgoing). At least one of incomingTimeoutSeconds or outgoingTimeoutSeconds is required. Values must be within the ranges returned in GET config (timeoutRangeIncoming for incomingTimeoutSeconds, timeoutRangeOutgoing for outgoingTimeoutSeconds). Requires BYORK Light to be enabled for the tenant (contact your CSM to enable). + +### Example + +```java +// Import classes: +import com.fireblocks.sdk.ApiClient; +import com.fireblocks.sdk.ApiException; +import com.fireblocks.sdk.ApiResponse; +import com.fireblocks.sdk.BasePath; +import com.fireblocks.sdk.Fireblocks; +import com.fireblocks.sdk.ConfigurationOptions; +import com.fireblocks.sdk.model.*; +import com.fireblocks.sdk.api.ComplianceApi; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; + +public class Example { + public static void main(String[] args) { + ConfigurationOptions configurationOptions = new ConfigurationOptions() + .basePath(BasePath.Sandbox) + .apiKey("my-api-key") + .secretKey("my-secret-key"); + Fireblocks fireblocks = new Fireblocks(configurationOptions); + + ByorkSetTimeoutsRequest byorkSetTimeoutsRequest = new ByorkSetTimeoutsRequest(); // ByorkSetTimeoutsRequest | + String idempotencyKey = "idempotencyKey_example"; // String | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. + try { + CompletableFuture> response = fireblocks.compliance().setByorkTimeouts(byorkSetTimeoutsRequest, idempotencyKey); + System.out.println("Status code: " + response.get().getStatusCode()); + System.out.println("Response headers: " + response.get().getHeaders()); + System.out.println("Response body: " + response.get().getData()); + } catch (InterruptedException | ExecutionException e) { + ApiException apiException = (ApiException)e.getCause(); + System.err.println("Exception when calling ComplianceApi#setByorkTimeouts"); + System.err.println("Status code: " + apiException.getCode()); + System.err.println("Response headers: " + apiException.getResponseHeaders()); + System.err.println("Reason: " + apiException.getResponseBody()); + e.printStackTrace(); + } catch (ApiException e) { + System.err.println("Exception when calling ComplianceApi#setByorkTimeouts"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Response headers: " + e.getResponseHeaders()); + System.err.println("Reason: " + e.getResponseBody()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **byorkSetTimeoutsRequest** | [**ByorkSetTimeoutsRequest**](ByorkSetTimeoutsRequest.md)| | | +| **idempotencyKey** | **String**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] | + +### Return type + +CompletableFuture> + + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: application/json +- **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Timeouts updated. | * X-Request-ID -
| +| **400** | BYORK Light not enabled, or timeout value out of range, or missing both timeouts. | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| + + +## setByorkVerdict + +> CompletableFuture> setByorkVerdict setByorkVerdict(byorkVerdictRequest, idempotencyKey) + +Set BYORK Light verdict + +Submit verdict (ACCEPT or REJECT) for a transaction in the BYORK Light flow. If the transaction is awaiting your decision, the verdict is applied immediately (response status COMPLETED). If processing has not yet reached that point, the verdict is stored and applied when it does (response status PRE_ACCEPTED). Requires BYORK Light to be enabled for the tenant. + +### Example + +```java +// Import classes: +import com.fireblocks.sdk.ApiClient; +import com.fireblocks.sdk.ApiException; +import com.fireblocks.sdk.ApiResponse; +import com.fireblocks.sdk.BasePath; +import com.fireblocks.sdk.Fireblocks; +import com.fireblocks.sdk.ConfigurationOptions; +import com.fireblocks.sdk.model.*; +import com.fireblocks.sdk.api.ComplianceApi; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; + +public class Example { + public static void main(String[] args) { + ConfigurationOptions configurationOptions = new ConfigurationOptions() + .basePath(BasePath.Sandbox) + .apiKey("my-api-key") + .secretKey("my-secret-key"); + Fireblocks fireblocks = new Fireblocks(configurationOptions); + + ByorkVerdictRequest byorkVerdictRequest = new ByorkVerdictRequest(); // ByorkVerdictRequest | + String idempotencyKey = "idempotencyKey_example"; // String | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. + try { + CompletableFuture> response = fireblocks.compliance().setByorkVerdict(byorkVerdictRequest, idempotencyKey); + System.out.println("Status code: " + response.get().getStatusCode()); + System.out.println("Response headers: " + response.get().getHeaders()); + System.out.println("Response body: " + response.get().getData()); + } catch (InterruptedException | ExecutionException e) { + ApiException apiException = (ApiException)e.getCause(); + System.err.println("Exception when calling ComplianceApi#setByorkVerdict"); + System.err.println("Status code: " + apiException.getCode()); + System.err.println("Response headers: " + apiException.getResponseHeaders()); + System.err.println("Reason: " + apiException.getResponseBody()); + e.printStackTrace(); + } catch (ApiException e) { + System.err.println("Exception when calling ComplianceApi#setByorkVerdict"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Response headers: " + e.getResponseHeaders()); + System.err.println("Reason: " + e.getResponseBody()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **byorkVerdictRequest** | [**ByorkVerdictRequest**](ByorkVerdictRequest.md)| | | +| **idempotencyKey** | **String**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] | + +### Return type + +CompletableFuture> + + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: application/json +- **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Verdict applied (COMPLETED) or pre-accepted (PRE_ACCEPTED). | * X-Request-ID -
| +| **400** | BYORK Light not enabled for tenant or invalid verdict. | * X-Request-ID -
| +| **409** | BYORK decision already final, screening already completed, or state inconsistent. | * X-Request-ID -
| +| **425** | Too Early - transaction not found (screening not started yet). | * X-Request-ID -
| +| **500** | Internal server error. | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| + + ## updateAmlScreeningConfiguration > CompletableFuture> updateAmlScreeningConfiguration updateAmlScreeningConfiguration(idempotencyKey) diff --git a/docs/CreateEarnActionRequest.md b/docs/CreateEarnActionRequest.md new file mode 100644 index 00000000..6fcf6e49 --- /dev/null +++ b/docs/CreateEarnActionRequest.md @@ -0,0 +1,25 @@ + + +# CreateEarnActionRequest + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**action** | [**ActionEnum**](#ActionEnum) | Whether to deposit into or withdraw from the lending opportunity. | | +|**opportunityId** | **String** | Identifier of the vault or market (lending opportunity). | | +|**vaultAccountId** | **String** | Fireblocks vault account that will execute the action. | | +|**amount** | **String** | Human-readable token amount (e.g. \"1.6\") or the keyword \"max\" for the full position or available balance. | | + + + +## Enum: ActionEnum + +| Name | Value | +|---- | -----| +| DEPOSIT | "DEPOSIT" | +| WITHDRAW | "WITHDRAW" | + + + diff --git a/docs/CreateEarnActionResponse.md b/docs/CreateEarnActionResponse.md new file mode 100644 index 00000000..f6c02a30 --- /dev/null +++ b/docs/CreateEarnActionResponse.md @@ -0,0 +1,26 @@ + + +# CreateEarnActionResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | ActionIntent UUID for tracking the lending action workflow. | | +|**status** | [**StatusEnum**](#StatusEnum) | Lifecycle status (e.g. CREATED, IN_PROGRESS, COMPLETED). | | + + + +## Enum: StatusEnum + +| Name | Value | +|---- | -----| +| CREATED | "CREATED" | +| IN_PROGRESS | "IN_PROGRESS" | +| COMPLETED | "COMPLETED" | +| CANCELED | "CANCELED" | +| FAILED | "FAILED" | + + + diff --git a/docs/DirectAccessProvider.md b/docs/DirectAccessProvider.md index 8bcfbbca..97d3da27 100644 --- a/docs/DirectAccessProvider.md +++ b/docs/DirectAccessProvider.md @@ -2,6 +2,7 @@ # DirectAccessProvider +Provider used without per-account linking (`accountBased` is `false`). ## Properties diff --git a/docs/DirectProviderDetails.md b/docs/DirectProviderDetails.md deleted file mode 100644 index fb668d9f..00000000 --- a/docs/DirectProviderDetails.md +++ /dev/null @@ -1,21 +0,0 @@ - - -# DirectProviderDetails - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**id** | **String** | Unique identifier for the provider | | -|**name** | **String** | Display name of the provider | | -|**logo** | **String** | URL to the logo image of the provider | [optional] | -|**accountBased** | **Boolean** | Indicates whether the provider access model is through accounts or directly | | -|**manifest** | [**Manifest**](Manifest.md) | | | -|**approved** | **Boolean** | Whether the provider was approved for use | [optional] | -|**hasTermsOfService** | **Boolean** | Whether the provider has terms of service | | -|**termsOfServiceUrl** | **String** | URL to the terms of service document | [optional] | -|**privacyPolicyUrl** | **String** | URL to the privacy policy document | [optional] | - - - diff --git a/docs/EarnAsset.md b/docs/EarnAsset.md new file mode 100644 index 00000000..6dab860f --- /dev/null +++ b/docs/EarnAsset.md @@ -0,0 +1,16 @@ + + +# EarnAsset + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**address** | **String** | Contract address of the token on-chain. | [optional] | +|**symbol** | **String** | Human-readable ticker (e.g. USDC). | [optional] | +|**decimals** | **Integer** | Token decimals used when interpreting on-chain amounts. | [optional] | +|**assetId** | **String** | Fireblocks legacy asset identifier (e.g. USDC_ETH, PYUSD). | [optional] | + + + diff --git a/docs/EarnBetaApi.md b/docs/EarnBetaApi.md new file mode 100644 index 00000000..af8c0884 --- /dev/null +++ b/docs/EarnBetaApi.md @@ -0,0 +1,657 @@ +# EarnBetaApi + +All URIs are relative to https://developers.fireblocks.com/reference/ + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**approveTermsOfService**](EarnBetaApi.md#approveTermsOfService) | **POST** /earn/providers/{providerId}/approve_terms_of_service | Approve earn provider terms of service | +| [**createEarnAction**](EarnBetaApi.md#createEarnAction) | **POST** /earn/actions | Create and execute a lending action (deposit or withdraw) | +| [**getEarnAction**](EarnBetaApi.md#getEarnAction) | **GET** /earn/actions/{id} | Get a single earn lending action | +| [**getEarnActions**](EarnBetaApi.md#getEarnActions) | **GET** /earn/actions | List earn lending actions | +| [**getEarnOpportunities**](EarnBetaApi.md#getEarnOpportunities) | **GET** /earn/opportunities | Get list of earn opportunities | +| [**getEarnPositions**](EarnBetaApi.md#getEarnPositions) | **GET** /earn/positions | Get list of earn positions | +| [**getEarnProviders**](EarnBetaApi.md#getEarnProviders) | **GET** /earn/providers | Get list of earn providers | + + + +## approveTermsOfService + +> CompletableFuture> approveTermsOfService approveTermsOfService(providerId, idempotencyKey) + +Approve earn provider terms of service + +Approves the lending provider's terms of service for this workspace. When `isTermsApprovalRequired` is true on the provider (see list providers), call this once before creating or executing earn actions with that provider. After success, `GET /earn/providers` reflects `isTermsOfServiceApproved`. **Note:** This endpoint is currently in beta and might be subject to changes. + +### Example + +```java +// Import classes: +import com.fireblocks.sdk.ApiClient; +import com.fireblocks.sdk.ApiException; +import com.fireblocks.sdk.ApiResponse; +import com.fireblocks.sdk.BasePath; +import com.fireblocks.sdk.Fireblocks; +import com.fireblocks.sdk.ConfigurationOptions; +import com.fireblocks.sdk.model.*; +import com.fireblocks.sdk.api.EarnBetaApi; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; + +public class Example { + public static void main(String[] args) { + ConfigurationOptions configurationOptions = new ConfigurationOptions() + .basePath(BasePath.Sandbox) + .apiKey("my-api-key") + .secretKey("my-secret-key"); + Fireblocks fireblocks = new Fireblocks(configurationOptions); + + String providerId = "MORPHO"; // String | Stable protocol identifier for the earn provider (`MORPHO` or `AAVE`). + String idempotencyKey = "idempotencyKey_example"; // String | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. + try { + CompletableFuture> response = fireblocks.earnBeta().approveTermsOfService(providerId, idempotencyKey); + System.out.println("Status code: " + response.get().getStatusCode()); + System.out.println("Response headers: " + response.get().getHeaders()); + } catch (InterruptedException | ExecutionException e) { + ApiException apiException = (ApiException)e.getCause(); + System.err.println("Exception when calling EarnBetaApi#approveTermsOfService"); + System.err.println("Status code: " + apiException.getCode()); + System.err.println("Response headers: " + apiException.getResponseHeaders()); + System.err.println("Reason: " + apiException.getResponseBody()); + e.printStackTrace(); + } catch (ApiException e) { + System.err.println("Exception when calling EarnBetaApi#approveTermsOfService"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Response headers: " + e.getResponseHeaders()); + System.err.println("Reason: " + e.getResponseBody()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **providerId** | **String**| Stable protocol identifier for the earn provider (`MORPHO` or `AAVE`). | [enum: MORPHO, AAVE] | +| **idempotencyKey** | **String**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] | + +### Return type + + +CompletableFuture> + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Terms of service accepted. | * X-Request-ID -
| +| **400** | Bad request: missing/invalid fields, unsupported amount, or malformed payload. | * X-Request-ID -
| +| **403** | Forbidden: insufficient permissions, disabled feature, or restricted provider/validator. | * X-Request-ID -
| +| **404** | Not found: requested resource does not exist (e.g., position, validator, provider, or wallet). | * X-Request-ID -
| +| **429** | Rate limit exceeded: slow down and retry later. | * X-Request-ID -
| +| **500** | Internal error while processing the request. | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| + + +## createEarnAction + +> CompletableFuture> createEarnAction createEarnAction(createEarnActionRequest, idempotencyKey) + +Create and execute a lending action (deposit or withdraw) + +Creates and runs a sequence of on-chain steps for either a deposit into or a withdrawal from an earn vault/market. Specify the operation with `action` in the request body (`DEPOSIT` or `WITHDRAW`). **Note:** This endpoint is currently in beta and might be subject to changes. + +### Example + +```java +// Import classes: +import com.fireblocks.sdk.ApiClient; +import com.fireblocks.sdk.ApiException; +import com.fireblocks.sdk.ApiResponse; +import com.fireblocks.sdk.BasePath; +import com.fireblocks.sdk.Fireblocks; +import com.fireblocks.sdk.ConfigurationOptions; +import com.fireblocks.sdk.model.*; +import com.fireblocks.sdk.api.EarnBetaApi; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; + +public class Example { + public static void main(String[] args) { + ConfigurationOptions configurationOptions = new ConfigurationOptions() + .basePath(BasePath.Sandbox) + .apiKey("my-api-key") + .secretKey("my-secret-key"); + Fireblocks fireblocks = new Fireblocks(configurationOptions); + + CreateEarnActionRequest createEarnActionRequest = new CreateEarnActionRequest(); // CreateEarnActionRequest | + String idempotencyKey = "idempotencyKey_example"; // String | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. + try { + CompletableFuture> response = fireblocks.earnBeta().createEarnAction(createEarnActionRequest, idempotencyKey); + System.out.println("Status code: " + response.get().getStatusCode()); + System.out.println("Response headers: " + response.get().getHeaders()); + System.out.println("Response body: " + response.get().getData()); + } catch (InterruptedException | ExecutionException e) { + ApiException apiException = (ApiException)e.getCause(); + System.err.println("Exception when calling EarnBetaApi#createEarnAction"); + System.err.println("Status code: " + apiException.getCode()); + System.err.println("Response headers: " + apiException.getResponseHeaders()); + System.err.println("Reason: " + apiException.getResponseBody()); + e.printStackTrace(); + } catch (ApiException e) { + System.err.println("Exception when calling EarnBetaApi#createEarnAction"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Response headers: " + e.getResponseHeaders()); + System.err.println("Reason: " + e.getResponseBody()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **createEarnActionRequest** | [**CreateEarnActionRequest**](CreateEarnActionRequest.md)| | | +| **idempotencyKey** | **String**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] | + +### Return type + +CompletableFuture> + + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: application/json +- **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | OK | * X-Request-ID -
| +| **400** | Bad request: missing/invalid fields, unsupported amount, or malformed payload. | * X-Request-ID -
| +| **403** | Forbidden: insufficient permissions, disabled feature, or restricted provider. | * X-Request-ID -
| +| **404** | Not found: requested resource does not exist (e.g., opportunity, provider, or wallet). | * X-Request-ID -
| +| **429** | Rate limit exceeded: slow down and retry later. | * X-Request-ID -
| +| **500** | Internal error while processing the request. | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| + + +## getEarnAction + +> CompletableFuture> getEarnAction getEarnAction(id) + +Get a single earn lending action + +Returns one lending action by its action sequence id (tenant-scoped). **Note:** This endpoint is currently in beta and might be subject to changes. + +### Example + +```java +// Import classes: +import com.fireblocks.sdk.ApiClient; +import com.fireblocks.sdk.ApiException; +import com.fireblocks.sdk.ApiResponse; +import com.fireblocks.sdk.BasePath; +import com.fireblocks.sdk.Fireblocks; +import com.fireblocks.sdk.ConfigurationOptions; +import com.fireblocks.sdk.model.*; +import com.fireblocks.sdk.api.EarnBetaApi; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; + +public class Example { + public static void main(String[] args) { + ConfigurationOptions configurationOptions = new ConfigurationOptions() + .basePath(BasePath.Sandbox) + .apiKey("my-api-key") + .secretKey("my-secret-key"); + Fireblocks fireblocks = new Fireblocks(configurationOptions); + + String id = "id_example"; // String | Action sequence id (UUID). + try { + CompletableFuture> response = fireblocks.earnBeta().getEarnAction(id); + System.out.println("Status code: " + response.get().getStatusCode()); + System.out.println("Response headers: " + response.get().getHeaders()); + System.out.println("Response body: " + response.get().getData()); + } catch (InterruptedException | ExecutionException e) { + ApiException apiException = (ApiException)e.getCause(); + System.err.println("Exception when calling EarnBetaApi#getEarnAction"); + System.err.println("Status code: " + apiException.getCode()); + System.err.println("Response headers: " + apiException.getResponseHeaders()); + System.err.println("Reason: " + apiException.getResponseBody()); + e.printStackTrace(); + } catch (ApiException e) { + System.err.println("Exception when calling EarnBetaApi#getEarnAction"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Response headers: " + e.getResponseHeaders()); + System.err.println("Reason: " + e.getResponseBody()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| Action sequence id (UUID). | | + +### Return type + +CompletableFuture> + + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | OK | * X-Request-ID -
| +| **403** | Forbidden: insufficient permissions, disabled feature, or restricted access. | * X-Request-ID -
| +| **404** | Not found: action does not exist or is not visible for this tenant. | * X-Request-ID -
| +| **429** | Rate limit exceeded: slow down and retry later. | * X-Request-ID -
| +| **500** | Internal error while processing the request. | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| + + +## getEarnActions + +> CompletableFuture> getEarnActions getEarnActions(pageCursor, pageSize, sortBy, order) + +List earn lending actions + +Returns a paginated list of lending actions (deposits and withdrawals) for the authenticated tenant. **Note:** This endpoint is currently in beta and might be subject to changes. + +### Example + +```java +// Import classes: +import com.fireblocks.sdk.ApiClient; +import com.fireblocks.sdk.ApiException; +import com.fireblocks.sdk.ApiResponse; +import com.fireblocks.sdk.BasePath; +import com.fireblocks.sdk.Fireblocks; +import com.fireblocks.sdk.ConfigurationOptions; +import com.fireblocks.sdk.model.*; +import com.fireblocks.sdk.api.EarnBetaApi; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; + +public class Example { + public static void main(String[] args) { + ConfigurationOptions configurationOptions = new ConfigurationOptions() + .basePath(BasePath.Sandbox) + .apiKey("my-api-key") + .secretKey("my-secret-key"); + Fireblocks fireblocks = new Fireblocks(configurationOptions); + + String pageCursor = "pageCursor_example"; // String | Cursor for the next or previous page of results. + Integer pageSize = 100; // Integer | Number of items per page (default 100, max 100). + String sortBy = "createdAt"; // String | Field to sort results by. + String order = "ASC"; // String | Sort order (ASC or DESC). + try { + CompletableFuture> response = fireblocks.earnBeta().getEarnActions(pageCursor, pageSize, sortBy, order); + System.out.println("Status code: " + response.get().getStatusCode()); + System.out.println("Response headers: " + response.get().getHeaders()); + System.out.println("Response body: " + response.get().getData()); + } catch (InterruptedException | ExecutionException e) { + ApiException apiException = (ApiException)e.getCause(); + System.err.println("Exception when calling EarnBetaApi#getEarnActions"); + System.err.println("Status code: " + apiException.getCode()); + System.err.println("Response headers: " + apiException.getResponseHeaders()); + System.err.println("Reason: " + apiException.getResponseBody()); + e.printStackTrace(); + } catch (ApiException e) { + System.err.println("Exception when calling EarnBetaApi#getEarnActions"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Response headers: " + e.getResponseHeaders()); + System.err.println("Reason: " + e.getResponseBody()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **pageCursor** | **String**| Cursor for the next or previous page of results. | [optional] | +| **pageSize** | **Integer**| Number of items per page (default 100, max 100). | [optional] [default to 100] | +| **sortBy** | **String**| Field to sort results by. | [optional] [enum: createdAt, updatedAt] | +| **order** | **String**| Sort order (ASC or DESC). | [optional] [default to DESC] [enum: ASC, DESC] | + +### Return type + +CompletableFuture> + + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | OK | * X-Request-ID -
| +| **403** | Forbidden: insufficient permissions, disabled feature, or restricted access. | * X-Request-ID -
| +| **404** | Not found: requested resource does not exist. | * X-Request-ID -
| +| **429** | Rate limit exceeded: slow down and retry later. | * X-Request-ID -
| +| **500** | Internal error while processing the request. | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| + + +## getEarnOpportunities + +> CompletableFuture> getEarnOpportunities getEarnOpportunities(pageCursor, pageSize, sortBy, order) + +Get list of earn opportunities + +Get list of earn opportunities (vaults). **Note:** This endpoint is currently in beta and might be subject to changes. + +### Example + +```java +// Import classes: +import com.fireblocks.sdk.ApiClient; +import com.fireblocks.sdk.ApiException; +import com.fireblocks.sdk.ApiResponse; +import com.fireblocks.sdk.BasePath; +import com.fireblocks.sdk.Fireblocks; +import com.fireblocks.sdk.ConfigurationOptions; +import com.fireblocks.sdk.model.*; +import com.fireblocks.sdk.api.EarnBetaApi; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; + +public class Example { + public static void main(String[] args) { + ConfigurationOptions configurationOptions = new ConfigurationOptions() + .basePath(BasePath.Sandbox) + .apiKey("my-api-key") + .secretKey("my-secret-key"); + Fireblocks fireblocks = new Fireblocks(configurationOptions); + + String pageCursor = "pageCursor_example"; // String | Cursor for the next or previous page of results. + Integer pageSize = 100; // Integer | Number of items per page. + String sortBy = "sortBy_example"; // String | Field to sort results by. + String order = "ASC"; // String | Sort order (ASC or DESC). + try { + CompletableFuture> response = fireblocks.earnBeta().getEarnOpportunities(pageCursor, pageSize, sortBy, order); + System.out.println("Status code: " + response.get().getStatusCode()); + System.out.println("Response headers: " + response.get().getHeaders()); + System.out.println("Response body: " + response.get().getData()); + } catch (InterruptedException | ExecutionException e) { + ApiException apiException = (ApiException)e.getCause(); + System.err.println("Exception when calling EarnBetaApi#getEarnOpportunities"); + System.err.println("Status code: " + apiException.getCode()); + System.err.println("Response headers: " + apiException.getResponseHeaders()); + System.err.println("Reason: " + apiException.getResponseBody()); + e.printStackTrace(); + } catch (ApiException e) { + System.err.println("Exception when calling EarnBetaApi#getEarnOpportunities"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Response headers: " + e.getResponseHeaders()); + System.err.println("Reason: " + e.getResponseBody()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **pageCursor** | **String**| Cursor for the next or previous page of results. | [optional] | +| **pageSize** | **Integer**| Number of items per page. | [optional] [default to 100] | +| **sortBy** | **String**| Field to sort results by. | [optional] | +| **order** | **String**| Sort order (ASC or DESC). | [optional] [default to DESC] [enum: ASC, DESC] | + +### Return type + +CompletableFuture> + + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | OK | * X-Request-ID -
| +| **403** | Forbidden: insufficient permissions, disabled feature, or restricted access. | * X-Request-ID -
| +| **404** | Not found: requested resource does not exist. | * X-Request-ID -
| +| **429** | Rate limit exceeded: slow down and retry later. | * X-Request-ID -
| +| **500** | Internal error while processing the request. | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| + + +## getEarnPositions + +> CompletableFuture> getEarnPositions getEarnPositions(chainId, providerId, pageCursor, pageSize, sortBy, order) + +Get list of earn positions + +Get list of earn positions for accounts tracked for this workspace. Optional query parameters filter by chain, provider, and pagination. **Note:** This endpoint is currently in beta and might be subject to changes. + +### Example + +```java +// Import classes: +import com.fireblocks.sdk.ApiClient; +import com.fireblocks.sdk.ApiException; +import com.fireblocks.sdk.ApiResponse; +import com.fireblocks.sdk.BasePath; +import com.fireblocks.sdk.Fireblocks; +import com.fireblocks.sdk.ConfigurationOptions; +import com.fireblocks.sdk.model.*; +import com.fireblocks.sdk.api.EarnBetaApi; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; + +public class Example { + public static void main(String[] args) { + ConfigurationOptions configurationOptions = new ConfigurationOptions() + .basePath(BasePath.Sandbox) + .apiKey("my-api-key") + .secretKey("my-secret-key"); + Fireblocks fireblocks = new Fireblocks(configurationOptions); + + Integer chainId = 56; // Integer | + String providerId = "MORPHO"; // String | + String pageCursor = "pageCursor_example"; // String | Cursor for the next or previous page of results. + Integer pageSize = 100; // Integer | Number of items per page. + String sortBy = "sortBy_example"; // String | Field to sort results by. + String order = "ASC"; // String | Sort order (ASC or DESC). + try { + CompletableFuture> response = fireblocks.earnBeta().getEarnPositions(chainId, providerId, pageCursor, pageSize, sortBy, order); + System.out.println("Status code: " + response.get().getStatusCode()); + System.out.println("Response headers: " + response.get().getHeaders()); + System.out.println("Response body: " + response.get().getData()); + } catch (InterruptedException | ExecutionException e) { + ApiException apiException = (ApiException)e.getCause(); + System.err.println("Exception when calling EarnBetaApi#getEarnPositions"); + System.err.println("Status code: " + apiException.getCode()); + System.err.println("Response headers: " + apiException.getResponseHeaders()); + System.err.println("Reason: " + apiException.getResponseBody()); + e.printStackTrace(); + } catch (ApiException e) { + System.err.println("Exception when calling EarnBetaApi#getEarnPositions"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Response headers: " + e.getResponseHeaders()); + System.err.println("Reason: " + e.getResponseBody()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **chainId** | **Integer**| | [optional] | +| **providerId** | **String**| | [optional] [enum: MORPHO, AAVE] | +| **pageCursor** | **String**| Cursor for the next or previous page of results. | [optional] | +| **pageSize** | **Integer**| Number of items per page. | [optional] [default to 100] | +| **sortBy** | **String**| Field to sort results by. | [optional] | +| **order** | **String**| Sort order (ASC or DESC). | [optional] [default to DESC] [enum: ASC, DESC] | + +### Return type + +CompletableFuture> + + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | OK | * X-Request-ID -
| +| **403** | Forbidden: insufficient permissions, disabled feature, or restricted access. | * X-Request-ID -
| +| **404** | Not found: requested resource does not exist. | * X-Request-ID -
| +| **429** | Rate limit exceeded: slow down and retry later. | * X-Request-ID -
| +| **500** | Internal error while processing the request. | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| + + +## getEarnProviders + +> CompletableFuture> getEarnProviders getEarnProviders(pageCursor, pageSize, sortBy, order) + +Get list of earn providers + +Get list of earn providers. **Note:** This endpoint is currently in beta and might be subject to changes. + +### Example + +```java +// Import classes: +import com.fireblocks.sdk.ApiClient; +import com.fireblocks.sdk.ApiException; +import com.fireblocks.sdk.ApiResponse; +import com.fireblocks.sdk.BasePath; +import com.fireblocks.sdk.Fireblocks; +import com.fireblocks.sdk.ConfigurationOptions; +import com.fireblocks.sdk.model.*; +import com.fireblocks.sdk.api.EarnBetaApi; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; + +public class Example { + public static void main(String[] args) { + ConfigurationOptions configurationOptions = new ConfigurationOptions() + .basePath(BasePath.Sandbox) + .apiKey("my-api-key") + .secretKey("my-secret-key"); + Fireblocks fireblocks = new Fireblocks(configurationOptions); + + String pageCursor = "pageCursor_example"; // String | Cursor for the next or previous page of results. + Integer pageSize = 100; // Integer | Number of items per page. + String sortBy = "sortBy_example"; // String | Field to sort results by. + String order = "ASC"; // String | Sort order (ASC or DESC). + try { + CompletableFuture> response = fireblocks.earnBeta().getEarnProviders(pageCursor, pageSize, sortBy, order); + System.out.println("Status code: " + response.get().getStatusCode()); + System.out.println("Response headers: " + response.get().getHeaders()); + System.out.println("Response body: " + response.get().getData()); + } catch (InterruptedException | ExecutionException e) { + ApiException apiException = (ApiException)e.getCause(); + System.err.println("Exception when calling EarnBetaApi#getEarnProviders"); + System.err.println("Status code: " + apiException.getCode()); + System.err.println("Response headers: " + apiException.getResponseHeaders()); + System.err.println("Reason: " + apiException.getResponseBody()); + e.printStackTrace(); + } catch (ApiException e) { + System.err.println("Exception when calling EarnBetaApi#getEarnProviders"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Response headers: " + e.getResponseHeaders()); + System.err.println("Reason: " + e.getResponseBody()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **pageCursor** | **String**| Cursor for the next or previous page of results. | [optional] | +| **pageSize** | **Integer**| Number of items per page. | [optional] [default to 100] | +| **sortBy** | **String**| Field to sort results by. | [optional] | +| **order** | **String**| Sort order (ASC or DESC). | [optional] [default to DESC] [enum: ASC, DESC] | + +### Return type + +CompletableFuture> + + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | OK | * X-Request-ID -
| +| **403** | Forbidden: insufficient permissions, disabled feature, or restricted access. | * X-Request-ID -
| +| **404** | Not found: requested resource does not exist. | * X-Request-ID -
| +| **429** | Rate limit exceeded: slow down and retry later. | * X-Request-ID -
| +| **500** | Internal error while processing the request. | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| + diff --git a/docs/EarnProvider.md b/docs/EarnProvider.md new file mode 100644 index 00000000..47933754 --- /dev/null +++ b/docs/EarnProvider.md @@ -0,0 +1,28 @@ + + +# EarnProvider + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**providerId** | [**ProviderIdEnum**](#ProviderIdEnum) | Stable protocol identifier (`MORPHO` or `AAVE`). | [optional] | +|**displayName** | **String** | Human-readable protocol name for UI. | [optional] | +|**logoUrl** | **String** | URL for the provider logo asset. | [optional] | +|**supportedChainIds** | **List<Integer>** | EVM chain IDs where this provider is supported. | [optional] | +|**isTermsApprovalRequired** | **Boolean** | Whether the user must accept terms before using this provider. | [optional] | +|**termsOfServiceUrl** | **String** | URL to the provider terms of service, when applicable. | [optional] | +|**isTermsOfServiceApproved** | **Boolean** | Whether terms have been approved for this workspace / context. | [optional] | + + + +## Enum: ProviderIdEnum + +| Name | Value | +|---- | -----| +| MORPHO | "MORPHO" | +| AAVE | "AAVE" | + + + diff --git a/docs/Exposure.md b/docs/Exposure.md new file mode 100644 index 00000000..79703e9f --- /dev/null +++ b/docs/Exposure.md @@ -0,0 +1,15 @@ + + +# Exposure + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**assetAddress** | **String** | On-chain address of the exposure asset. | [optional] | +|**symbol** | **String** | Ticker for the exposure asset. | [optional] | +|**amount** | **String** | Human-readable decimal string (raw on-chain value scaled by 10^decimals). | [optional] | + + + diff --git a/docs/FailureReason.md b/docs/FailureReason.md index 44c00025..d39db1ea 100644 --- a/docs/FailureReason.md +++ b/docs/FailureReason.md @@ -41,5 +41,21 @@ * `TRANSACTION_BLOCKED` (value: `"TRANSACTION_BLOCKED"`) +* `PROVIDER_INTERNAL_ERROR` (value: `"PROVIDER_INTERNAL_ERROR"`) + +* `UNSUPPORTED_SOURCE_ASSET` (value: `"UNSUPPORTED_SOURCE_ASSET"`) + +* `UNSUPPORTED_DESTINATION_ASSET` (value: `"UNSUPPORTED_DESTINATION_ASSET"`) + +* `AMOUNT_BELOW_MINIMUM` (value: `"AMOUNT_BELOW_MINIMUM"`) + +* `PII_MISSING` (value: `"PII_MISSING"`) + +* `EXTERNAL_SOURCE_NOT_SUPPORTED` (value: `"EXTERNAL_SOURCE_NOT_SUPPORTED"`) + +* `UNSUPPORTED_REGION` (value: `"UNSUPPORTED_REGION"`) + +* `DESTINATION_NOT_WHITELISTED` (value: `"DESTINATION_NOT_WHITELISTED"`) + diff --git a/docs/FlowDirection.md b/docs/FlowDirection.md new file mode 100644 index 00000000..c02920a6 --- /dev/null +++ b/docs/FlowDirection.md @@ -0,0 +1,17 @@ + + +# FlowDirection + +## Enum + + +* `FIAT_TO_CRYPTO` (value: `"FIAT_TO_CRYPTO"`) + +* `CRYPTO_TO_FIAT` (value: `"CRYPTO_TO_FIAT"`) + +* `CRYPTO_TO_CRYPTO` (value: `"CRYPTO_TO_CRYPTO"`) + +* `FIAT_TO_FIAT` (value: `"FIAT_TO_FIAT"`) + + + diff --git a/docs/GetActionResponse.md b/docs/GetActionResponse.md new file mode 100644 index 00000000..1b57bde7 --- /dev/null +++ b/docs/GetActionResponse.md @@ -0,0 +1,41 @@ + + +# GetActionResponse + +Single lending action (intent plus per-step execution rows). + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | Action sequence id (UUID). | | +|**status** | **String** | Intent status (e.g. CREATED, IN_PROGRESS, COMPLETED). | | +|**providerId** | [**ProviderIdEnum**](#ProviderIdEnum) | Lending protocol identifier. | | +|**actionType** | [**ActionTypeEnum**](#ActionTypeEnum) | Whether this action is a deposit or withdraw flow. | | +|**opportunityId** | **String** | Target lending opportunity identifier. | | +|**positionId** | **String** | Position id in the system when applicable. | [optional] | +|**amount** | **String** | Human-readable amount for the action. | | +|**createdAt** | **String** | Creation time (ISO-8601). | | +|**updatedAt** | **String** | Last update time (ISO-8601). | | +|**records** | [**List<ActionRecord>**](ActionRecord.md) | Ordered execution steps for this action. | | + + + +## Enum: ProviderIdEnum + +| Name | Value | +|---- | -----| +| MORPHO | "MORPHO" | +| AAVE | "AAVE" | + + + +## Enum: ActionTypeEnum + +| Name | Value | +|---- | -----| +| DEPOSIT | "DEPOSIT" | +| WITHDRAW | "WITHDRAW" | + + + diff --git a/docs/GetActionsResponse.md b/docs/GetActionsResponse.md new file mode 100644 index 00000000..c8d837f8 --- /dev/null +++ b/docs/GetActionsResponse.md @@ -0,0 +1,16 @@ + + +# GetActionsResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**List<GetActionResponse>**](GetActionResponse.md) | Page of lending actions for this query. | | +|**next** | **String** | Opaque cursor for the next page; empty when there is no next page. | [optional] | +|**prev** | **String** | Opaque cursor for the previous page; empty when there is no previous page. | [optional] | +|**total** | **Integer** | Total number of items matching the query. | | + + + diff --git a/docs/GetByorkVerdictResponse.md b/docs/GetByorkVerdictResponse.md new file mode 100644 index 00000000..7a0b21a0 --- /dev/null +++ b/docs/GetByorkVerdictResponse.md @@ -0,0 +1,15 @@ + + +# GetByorkVerdictResponse + +Response for GET BYORK verdict (current verdict/status for a transaction). + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**status** | **ByorkVerdictResponseStatusEnum** | | | +|**verdict** | **ByorkVerdictEnum** | | | + + + diff --git a/docs/GetOpportunitiesResponse.md b/docs/GetOpportunitiesResponse.md new file mode 100644 index 00000000..9007ab3b --- /dev/null +++ b/docs/GetOpportunitiesResponse.md @@ -0,0 +1,16 @@ + + +# GetOpportunitiesResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**List<Opportunity>**](Opportunity.md) | Page of lending opportunities for this query. | | +|**next** | **String** | Opaque cursor for the next page; empty when there is no next page. | [optional] | +|**prev** | **String** | Opaque cursor for the previous page; empty when there is no previous page. | [optional] | +|**total** | **Integer** | Total number of items matching the query. | | + + + diff --git a/docs/GetPositionsResponse.md b/docs/GetPositionsResponse.md new file mode 100644 index 00000000..ad7229e9 --- /dev/null +++ b/docs/GetPositionsResponse.md @@ -0,0 +1,16 @@ + + +# GetPositionsResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**List<Position2>**](Position2.md) | Page of user lending positions for this query. | | +|**next** | **String** | Opaque cursor for the next page; empty when there is no next page. | [optional] | +|**prev** | **String** | Opaque cursor for the previous page; empty when there is no previous page. | [optional] | +|**total** | **Integer** | Total number of items matching the query. | | + + + diff --git a/docs/GetProvidersResponse.md b/docs/GetProvidersResponse.md new file mode 100644 index 00000000..01a06071 --- /dev/null +++ b/docs/GetProvidersResponse.md @@ -0,0 +1,16 @@ + + +# GetProvidersResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**List<EarnProvider>**](EarnProvider.md) | Page of integrated lending providers. | | +|**next** | **String** | Opaque cursor for the next page; empty when there is no next page. | [optional] | +|**prev** | **String** | Opaque cursor for the previous page; empty when there is no previous page. | [optional] | +|**total** | **Integer** | Total number of items matching the query. | | + + + diff --git a/docs/GleifData.md b/docs/GleifData.md index 19127290..c43f4774 100644 --- a/docs/GleifData.md +++ b/docs/GleifData.md @@ -10,7 +10,8 @@ GLEIF (Global Legal Entity Identifier Foundation) data for a legal entity |------------ | ------------- | ------------- | -------------| |**lei** | **String** | Legal Entity Identifier (LEI) code | | |**legalName** | **String** | Official legal name of the entity | | -|**otherNames** | **List<String>** | Alternative names for the entity | [optional] | +|**legalNameLanguage** | **String** | Two-letter ISO 639-1 language code | [optional] | +|**otherNames** | [**List<GleifOtherLegalEntityName>**](GleifOtherLegalEntityName.md) | Alternative names for the entity | [optional] | |**legalAddressRegion** | **String** | Region or state of the legal address | [optional] | |**legalAddressCountry** | **String** | Country code of the legal address (ISO 3166-1 alpha-2) | | |**nextRenewalDate** | **OffsetDateTime** | Date when the LEI registration must be renewed | [optional] | diff --git a/docs/GleifOtherLegalEntityName.md b/docs/GleifOtherLegalEntityName.md new file mode 100644 index 00000000..7cbde8de --- /dev/null +++ b/docs/GleifOtherLegalEntityName.md @@ -0,0 +1,14 @@ + + +# GleifOtherLegalEntityName + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Alternative name of the legal entity | | +|**language** | **String** | Two-letter ISO 639-1 language code | | + + + diff --git a/docs/IdentificationPolicyOverride.md b/docs/IdentificationPolicyOverride.md new file mode 100644 index 00000000..66d95b18 --- /dev/null +++ b/docs/IdentificationPolicyOverride.md @@ -0,0 +1,17 @@ + + +# IdentificationPolicyOverride + +Override scoped by one or more dimensions. More dimensions = higher priority. Equal priority ties are broken by array order. **Validation:** At least one of `asset`, `rail`, or `flowDirection` will be present. Priority (highest to lowest): 1. asset + rail + flowDirection 2. asset + rail 2. asset + flowDirection 2. rail + flowDirection 3. asset only 3. rail only 3. flowDirection only 4. defaultSchema (no override matched) + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**asset** | **String** | Fireblocks asset ID (fiat or crypto). | [optional] | +|**rail** | **TransferRail** | | [optional] | +|**flowDirection** | **FlowDirection** | | [optional] | +|**schema** | **String** | A JSON Schema (draft-07) in string format that validates the ParticipantsIdentification object on requests where the provider manifest lists that endpoint in `participantsIdentificationPolicy.supportedEndpoints` (e.g. POST /orders). Defines which fields from originator and/or beneficiary are required. The schema uses oneOf to discriminate between INDIVIDUAL (PersonalIdentification) and BUSINESS (BusinessIdentification) entity types for each participant. For INDIVIDUAL: fullName, dateOfBirth, postalAddress, email, phone, idNumber, idType, etc. For BUSINESS: businessName, registrationNumber, postalAddress, email, phone, etc. If you constrain `idType` or `additionalIdType` with a JSON Schema `enum`, use the same values as `PersonalIdentificationType` (authoritative list in that schema). The example below mirrors that enum. The string content is expected to be valid JSON (application/json). | | + + + diff --git a/docs/ListLegalEntitiesResponse.md b/docs/ListLegalEntitiesResponse.md index f854c655..7800614f 100644 --- a/docs/ListLegalEntitiesResponse.md +++ b/docs/ListLegalEntitiesResponse.md @@ -11,7 +11,6 @@ Paginated response containing a list of legal entity registrations |**total** | **Integer** | Total number of legal entity registrations (optional) | [optional] | |**data** | [**List<LegalEntityRegistration>**](LegalEntityRegistration.md) | Legal entity registrations for the current page | | |**next** | **String** | Cursor to pass as `pageCursor` to retrieve the next page | [optional] | -|**prev** | **String** | Cursor to pass as `pageCursor` to retrieve the previous page | [optional] | diff --git a/docs/ListUtxosResponse.md b/docs/ListUtxosResponse.md new file mode 100644 index 00000000..73c4d148 --- /dev/null +++ b/docs/ListUtxosResponse.md @@ -0,0 +1,14 @@ + + +# ListUtxosResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**List<UtxoOutput>**](UtxoOutput.md) | List of UTXOs | | +|**next** | **String** | Cursor to the next page | [optional] | + + + diff --git a/docs/ListVaultsForRegistrationResponse.md b/docs/ListVaultsForRegistrationResponse.md index 8f1a91d8..e68832d9 100644 --- a/docs/ListVaultsForRegistrationResponse.md +++ b/docs/ListVaultsForRegistrationResponse.md @@ -11,7 +11,6 @@ Response containing vault account IDs assigned to a legal entity registration |**total** | **Integer** | Total number of legal entity registrations (optional) | [optional] | |**data** | **List<String>** | List of vault account IDs assigned to the legal entity registration | | |**next** | **String** | Cursor to pass as `pageCursor` to retrieve the next page | [optional] | -|**prev** | **String** | Cursor to pass as `pageCursor` to retrieve the previous page | [optional] | diff --git a/docs/Manifest.md b/docs/Manifest.md index 769ea00c..b4248ab3 100644 --- a/docs/Manifest.md +++ b/docs/Manifest.md @@ -11,6 +11,7 @@ The manifest of the provider, describing its supported order, quote, and rate re |**order** | [**ManifestOrder**](ManifestOrder.md) | | | |**quote** | [**ManifestQuote**](ManifestQuote.md) | | | |**rate** | [**ManifestBase**](ManifestBase.md) | | | +|**participantsIdentificationPolicy** | [**ParticipantsIdentificationPolicy**](ParticipantsIdentificationPolicy.md) | | [optional] | diff --git a/docs/Opportunity.md b/docs/Opportunity.md new file mode 100644 index 00000000..91bf3b96 --- /dev/null +++ b/docs/Opportunity.md @@ -0,0 +1,45 @@ + + +# Opportunity + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | Unique opportunity identifier. | [optional] | +|**providerId** | [**ProviderIdEnum**](#ProviderIdEnum) | Lending protocol (`MORPHO` or `AAVE`). | [optional] | +|**type** | [**TypeEnum**](#TypeEnum) | Opportunity kind — vault or market. | [optional] | +|**chainId** | **String** | Chain identifier as a string (e.g. \"1\" for Ethereum mainnet). | [optional] | +|**address** | **String** | Primary contract address for the vault or market. | [optional] | +|**name** | **String** | Display name of the opportunity. | [optional] | +|**symbol** | **String** | Symbol or share token ticker for the position asset. | [optional] | +|**principalAsset** | [**EarnAsset**](EarnAsset.md) | Underlying token the user deposits (principal). | [optional] | +|**positionAsset** | [**EarnAsset**](EarnAsset.md) | Token representing the user’s position in the protocol (e.g. vault share). | [optional] | +|**totalAssets** | **String** | Human-readable total value locked / assets in the opportunity. | [optional] | +|**liquidity** | **String** | Human-readable available liquidity. | [optional] | +|**apy** | [**Apy**](Apy.md) | APY breakdown; values are percentages (e.g. 4.25 means 4.25%). | [optional] | +|**performanceFee** | **String** | Performance fee as a human-readable decimal string. | [optional] | +|**managementFee** | **String** | Management fee as a human-readable decimal string. | [optional] | +|**exposure** | [**List<Exposure>**](Exposure.md) | Optional per-asset exposure breakdown. | [optional] | + + + +## Enum: ProviderIdEnum + +| Name | Value | +|---- | -----| +| MORPHO | "MORPHO" | +| AAVE | "AAVE" | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| VAULT | "VAULT" | +| MARKET | "MARKET" | + + + diff --git a/docs/ParticipantsIdentificationPolicy.md b/docs/ParticipantsIdentificationPolicy.md new file mode 100644 index 00000000..affebffd --- /dev/null +++ b/docs/ParticipantsIdentificationPolicy.md @@ -0,0 +1,16 @@ + + +# ParticipantsIdentificationPolicy + +When present on a provider manifest, specifies KYC/AML identification requirements as JSON Schemas and which flows in `supportedEndpoints` may require `participantsIdentification`. Only endpoints listed in `supportedEndpoints` are in scope for this policy. `defaultSchema` is the baseline; `overrides` refine it by `asset`, `rail`, and/or `flowDirection` (see priority below). The most specific matching override applies its `schema` for that request context: it may fully replace `defaultSchema`, or partially override it—when the override `schema` is not provided as a complete standalone definition, fields and rules omitted there continue to follow `defaultSchema`. If this object is omitted from the manifest, the provider imposes no PII requirements through this policy. FirstParty participants are always exempt. Resolution: from overrides that match the request context, choose the most specific (most dimensions matched); break ties by earlier position in the `overrides` array; if none match, use `defaultSchema`. Priority (highest precedence first): 1. asset + rail + flowDirection 2. Any two dimensions: asset+rail, asset+flowDirection, rail+flowDirection 3. Any single dimension: asset, rail, or flowDirection 4. defaultSchema (no override matches) + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**supportedEndpoints** | **Set<ParticipantsIdentificationSupportedEndpoint>** | API endpoints in scope for this participants identification policy. Values `ORDER`, `QUOTE`, and `RATE` correspond to manifest `order`, `quote`, and `rate` flows. Client requests to those endpoints may need to include `participantsIdentification` when the resolved schema requires it. | | +|**defaultSchema** | **String** | A JSON Schema (draft-07) in string format that validates the ParticipantsIdentification object on requests where the provider manifest lists that endpoint in `participantsIdentificationPolicy.supportedEndpoints` (e.g. POST /orders). Defines which fields from originator and/or beneficiary are required. The schema uses oneOf to discriminate between INDIVIDUAL (PersonalIdentification) and BUSINESS (BusinessIdentification) entity types for each participant. For INDIVIDUAL: fullName, dateOfBirth, postalAddress, email, phone, idNumber, idType, etc. For BUSINESS: businessName, registrationNumber, postalAddress, email, phone, etc. If you constrain `idType` or `additionalIdType` with a JSON Schema `enum`, use the same values as `PersonalIdentificationType` (authoritative list in that schema). The example below mirrors that enum. The string content is expected to be valid JSON (application/json). | | +|**overrides** | [**List<IdentificationPolicyOverride>**](IdentificationPolicyOverride.md) | Contextual overrides scoped by asset, rail, and/or flowDirection. Most specific match wins; ties broken by array order. Replaces the default partially. Each override MUST include at least one of `asset`, `rail`, or `flowDirection` (not `schema` alone); see IdentificationPolicyOverride. | [optional] | + + + diff --git a/docs/ParticipantsIdentificationSupportedEndpoint.md b/docs/ParticipantsIdentificationSupportedEndpoint.md new file mode 100644 index 00000000..af275e01 --- /dev/null +++ b/docs/ParticipantsIdentificationSupportedEndpoint.md @@ -0,0 +1,15 @@ + + +# ParticipantsIdentificationSupportedEndpoint + +## Enum + + +* `ORDER` (value: `"ORDER"`) + +* `QUOTE` (value: `"QUOTE"`) + +* `RATE` (value: `"RATE"`) + + + diff --git a/docs/Position2.md b/docs/Position2.md new file mode 100644 index 00000000..be47bf13 --- /dev/null +++ b/docs/Position2.md @@ -0,0 +1,74 @@ + + +# Position2 + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | Position UUID. | [optional] | +|**status** | [**StatusEnum**](#StatusEnum) | Lifecycle status of the position. | [optional] | +|**inFlight** | **Boolean** | True while an action is in progress for this position. | [optional] | +|**positionType** | [**PositionTypeEnum**](#PositionTypeEnum) | Whether the position is lend- or borrow-side. | [optional] | +|**vaultAccountId** | **String** | Fireblocks vault account holding the position. | [optional] | +|**opportunityId** | **String** | Opportunity / vault or market identifier. | [optional] | +|**chainId** | **String** | Chain identifier as a string (e.g. \"1\"). | [optional] | +|**providerId** | [**ProviderIdEnum**](#ProviderIdEnum) | Lending protocol. | [optional] | +|**origin** | [**OriginEnum**](#OriginEnum) | Whether the position was opened natively in Fireblocks or imported externally. | [optional] | +|**principalAssetId** | **String** | Fireblocks asset id for the principal (underlying) asset. | [optional] | +|**positionAssetId** | **String** | Fireblocks asset id for the position / share token. | [optional] | +|**principalBalance** | **String** | Human-readable principal balance. | [optional] | +|**positionBalance** | **String** | Human-readable position token balance. | [optional] | +|**createdAt** | **String** | Creation time (ISO-8601). | [optional] | +|**updatedAt** | **String** | Last update time (ISO-8601). | [optional] | +|**lastSyncedAt** | **String** | Last successful on-chain sync time (ISO-8601). | [optional] | +|**availableActions** | [**List<AvailableActionsEnum>**](#List<AvailableActionsEnum>) | Actions the API allows next for this position. | [optional] | + + + +## Enum: StatusEnum + +| Name | Value | +|---- | -----| +| ACTIVE | "ACTIVE" | +| INACTIVE | "INACTIVE" | + + + +## Enum: PositionTypeEnum + +| Name | Value | +|---- | -----| +| LEND | "LEND" | +| BORROW | "BORROW" | + + + +## Enum: ProviderIdEnum + +| Name | Value | +|---- | -----| +| MORPHO | "MORPHO" | +| AAVE | "AAVE" | + + + +## Enum: OriginEnum + +| Name | Value | +|---- | -----| +| NATIVE | "NATIVE" | +| EXTERNAL | "EXTERNAL" | + + + +## Enum: List<AvailableActionsEnum> + +| Name | Value | +|---- | -----| +| DEPOSIT | "DEPOSIT" | +| WITHDRAW | "WITHDRAW" | + + + diff --git a/docs/ResendByQueryRequest.md b/docs/ResendByQueryRequest.md new file mode 100644 index 00000000..890cc3fe --- /dev/null +++ b/docs/ResendByQueryRequest.md @@ -0,0 +1,17 @@ + + +# ResendByQueryRequest + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**statuses** | **List<NotificationStatus>** | (optional) List of notification statuses to resend - Default if missing: `[\"FAILED\", \"ON_HOLD\"]` | [optional] | +|**startTime** | **BigDecimal** | (optional) Start time for the resend window in milliseconds since epoch, within the last 72 hours - Default if missing means 24 hours before the current time in milliseconds since epoch - Maximum value is current time in milliseconds since epoch - Minimum value is 72 hours before the current time in milliseconds since epoch | [optional] | +|**endTime** | **BigDecimal** | (optional) End time for the resend window in milliseconds since epoch, within the last 72 hours - Default if missing means current time in milliseconds since epoch - Requires startTime to be provided - Must be after startTime - Time window between startTime and endTime must not exceed 24 hours | [optional] | +|**events** | **List<WebhookEvent>** | (optional) Event types to resend, default is all event types - Default if missing means all events will be included - Empty array means all events will be included | [optional] | +|**resourceId** | **String** | (optional) Resource ID to filter notifications by | [optional] | + + + diff --git a/docs/ResendByQueryResponse.md b/docs/ResendByQueryResponse.md new file mode 100644 index 00000000..f088107b --- /dev/null +++ b/docs/ResendByQueryResponse.md @@ -0,0 +1,13 @@ + + +# ResendByQueryResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**total** | **BigDecimal** | The total number of notifications that are scheduled to be resent. | [optional] | + + + diff --git a/docs/ScreeningPolicyAmount.md b/docs/ScreeningPolicyAmount.md new file mode 100644 index 00000000..22423f6c --- /dev/null +++ b/docs/ScreeningPolicyAmount.md @@ -0,0 +1,15 @@ + + +# ScreeningPolicyAmount + +Amount specification with range and currency type (screening policy rules – BYORK, TRLink, etc.) + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**range** | [**ScreeningPolicyAmountRange**](ScreeningPolicyAmountRange.md) | | | +|**currency** | **ScreeningPolicyCurrency** | | | + + + diff --git a/docs/TRLinkAmountRange.md b/docs/ScreeningPolicyAmountRange.md similarity index 91% rename from docs/TRLinkAmountRange.md rename to docs/ScreeningPolicyAmountRange.md index f141c175..40fc5fc2 100644 --- a/docs/TRLinkAmountRange.md +++ b/docs/ScreeningPolicyAmountRange.md @@ -1,6 +1,6 @@ -# TRLinkAmountRange +# ScreeningPolicyAmountRange Minimum and maximum amount range specification diff --git a/docs/TRLinkCurrency.md b/docs/ScreeningPolicyCurrency.md similarity index 73% rename from docs/TRLinkCurrency.md rename to docs/ScreeningPolicyCurrency.md index 38a0b2b7..a5319f16 100644 --- a/docs/TRLinkCurrency.md +++ b/docs/ScreeningPolicyCurrency.md @@ -1,6 +1,6 @@ -# TRLinkCurrency +# ScreeningPolicyCurrency ## Enum diff --git a/docs/TRLinkAmount2.md b/docs/TRLinkAmount2.md deleted file mode 100644 index 319d18f3..00000000 --- a/docs/TRLinkAmount2.md +++ /dev/null @@ -1,15 +0,0 @@ - - -# TRLinkAmount2 - -Amount specification with range and currency type - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**range** | [**TRLinkAmountRange**](TRLinkAmountRange.md) | | | -|**currency** | **TRLinkCurrency** | | | - - - diff --git a/docs/TRLinkAssetFormat.md b/docs/TRLinkAssetFormat.md index 6fc537bb..92e623bd 100644 --- a/docs/TRLinkAssetFormat.md +++ b/docs/TRLinkAssetFormat.md @@ -9,7 +9,5 @@ * `COINMARKETCAP` (value: `"coinmarketcap"`) -* `SLIP44` (value: `"slip44"`) - diff --git a/docs/TRLinkMissingTrmRule2.md b/docs/TRLinkMissingTrmRule2.md index 7be00e3a..4b502d15 100644 --- a/docs/TRLinkMissingTrmRule2.md +++ b/docs/TRLinkMissingTrmRule2.md @@ -20,7 +20,7 @@ Rule for handling transactions when TRM screening data is missing or unavailable |**destId** | **String** | Destination identifier | [optional] | |**asset** | **String** | Asset or cryptocurrency type | [optional] | |**baseAsset** | **String** | Base asset for derivatives | [optional] | -|**amount** | [**TRLinkAmount2**](TRLinkAmount2.md) | | [optional] | +|**amount** | [**ScreeningPolicyAmount**](ScreeningPolicyAmount.md) | | [optional] | |**networkProtocol** | **String** | Network protocol identifier | [optional] | |**operation** | **String** | Operation type | [optional] | |**description** | **String** | Rule description | [optional] | diff --git a/docs/TRLinkPostScreeningRule2.md b/docs/TRLinkPostScreeningRule2.md index 3ed58cf4..37a6de8a 100644 --- a/docs/TRLinkPostScreeningRule2.md +++ b/docs/TRLinkPostScreeningRule2.md @@ -20,7 +20,7 @@ Post-screening rule that determines the verdict based on screening results |**destId** | **String** | Destination identifier | [optional] | |**asset** | **String** | Asset or cryptocurrency type | [optional] | |**baseAsset** | **String** | Base asset for derivatives | [optional] | -|**amount** | [**TRLinkAmount2**](TRLinkAmount2.md) | | [optional] | +|**amount** | [**ScreeningPolicyAmount**](ScreeningPolicyAmount.md) | | [optional] | |**networkProtocol** | **String** | Network protocol identifier | [optional] | |**operation** | **String** | Operation type | [optional] | |**description** | **String** | Rule description | [optional] | diff --git a/docs/TRLinkPreScreeningRule2.md b/docs/TRLinkPreScreeningRule2.md index 42c9e405..fae74137 100644 --- a/docs/TRLinkPreScreeningRule2.md +++ b/docs/TRLinkPreScreeningRule2.md @@ -20,7 +20,7 @@ Pre-screening rule that determines if a transaction should be screened |**destId** | **String** | Destination identifier | [optional] | |**asset** | **String** | Asset or cryptocurrency type | [optional] | |**baseAsset** | **String** | Base asset for derivatives | [optional] | -|**amount** | [**TRLinkAmount2**](TRLinkAmount2.md) | | [optional] | +|**amount** | [**ScreeningPolicyAmount**](ScreeningPolicyAmount.md) | | [optional] | |**networkProtocol** | **String** | Network protocol identifier | [optional] | |**operation** | **String** | Operation type | [optional] | |**description** | **String** | Rule description | [optional] | diff --git a/docs/TradingBetaApi.md b/docs/TradingBetaApi.md index 0a7a4f8b..0ba2c782 100644 --- a/docs/TradingBetaApi.md +++ b/docs/TradingBetaApi.md @@ -386,11 +386,11 @@ No authorization required ## getTradingProviderById -> CompletableFuture> getTradingProviderById getTradingProviderById(providerId) +> CompletableFuture> getTradingProviderById getTradingProviderById(providerId) Get trading provider by ID -Retrieve detailed information about a specific provider including its full manifest with order/quote requirements. **Note:** These endpoints are currently in beta and might be subject to changes. If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. **Endpoint Permission:** Owner, Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). +Retrieve a single provider by ID. **Note:** These endpoints are currently in beta and might be subject to changes. If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. **Endpoint Permission:** Owner, Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). ### Example @@ -417,7 +417,7 @@ public class Example { String providerId = "providerId_example"; // String | The unique identifier of the provider. try { - CompletableFuture> response = fireblocks.tradingBeta().getTradingProviderById(providerId); + CompletableFuture> response = fireblocks.tradingBeta().getTradingProviderById(providerId); System.out.println("Status code: " + response.get().getStatusCode()); System.out.println("Response headers: " + response.get().getHeaders()); System.out.println("Response body: " + response.get().getData()); @@ -448,7 +448,7 @@ public class Example { ### Return type -CompletableFuture> +CompletableFuture> ### Authorization @@ -463,7 +463,7 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | Provider details | * X-Request-ID -
| +| **200** | Single provider details. | * X-Request-ID -
| | **401** | Unauthorized. Missing / invalid JWT token in Authorization header. | * X-Request-ID -
| | **403** | Forbidden - insufficient permissions, disabled feature, or restricted access. | * X-Request-ID -
| | **404** | Provider not found. | * X-Request-ID -
| diff --git a/docs/TradingProviderDetails.md b/docs/TradingProviderDetails.md deleted file mode 100644 index e58ec265..00000000 --- a/docs/TradingProviderDetails.md +++ /dev/null @@ -1,37 +0,0 @@ - - -# TradingProviderDetails - -## oneOf schemas -* [AccountBasedProviderDetails](AccountBasedProviderDetails.md) -* [DirectProviderDetails](DirectProviderDetails.md) - -## Example -```java -// Import classes: -import com.fireblocks.sdk.model.TradingProviderDetails; -import com.fireblocks.sdk.model.AccountBasedProviderDetails; -import com.fireblocks.sdk.model.DirectProviderDetails; - -public class Example { - public static void main(String[] args) { - TradingProviderDetails exampleTradingProviderDetails = new TradingProviderDetails(); - - // create a new AccountBasedProviderDetails - AccountBasedProviderDetails exampleAccountBasedProviderDetails = new AccountBasedProviderDetails(); - // set TradingProviderDetails to AccountBasedProviderDetails - exampleTradingProviderDetails.setActualInstance(exampleAccountBasedProviderDetails); - // to get back the AccountBasedProviderDetails set earlier - AccountBasedProviderDetails testAccountBasedProviderDetails = (AccountBasedProviderDetails) exampleTradingProviderDetails.getActualInstance(); - - // create a new DirectProviderDetails - DirectProviderDetails exampleDirectProviderDetails = new DirectProviderDetails(); - // set TradingProviderDetails to DirectProviderDetails - exampleTradingProviderDetails.setActualInstance(exampleDirectProviderDetails); - // to get back the DirectProviderDetails set earlier - DirectProviderDetails testDirectProviderDetails = (DirectProviderDetails) exampleTradingProviderDetails.getActualInstance(); - } -} -``` - - diff --git a/docs/TransactionRequest.md b/docs/TransactionRequest.md index 8c1e8293..828c2373 100644 --- a/docs/TransactionRequest.md +++ b/docs/TransactionRequest.md @@ -28,6 +28,7 @@ |**networkFee** | [**TransactionRequestNetworkFee**](TransactionRequestNetworkFee.md) | | [optional] | |**replaceTxByHash** | **String** | For EVM-based blockchains only. In case a transaction is stuck, specify the hash of the stuck transaction to replace it by this transaction with a higher fee, or to replace it with this transaction with a zero fee and drop it from the blockchain. | [optional] | |**extraParameters** | **ExtraParameters** | | [optional] | +|**utxoSelectionParams** | [**UtxoSelectionParams**](UtxoSelectionParams.md) | | [optional] | |**customerRefId** | **String** | The ID for AML providers to associate the owner of funds with transactions. | [optional] | |**travelRuleMessage** | [**TravelRuleCreateTransactionRequest**](TravelRuleCreateTransactionRequest.md) | | [optional] | |**travelRuleMessageId** | **String** | The ID of the travel rule message from any travel rule provider. Used for travel rule supporting functionality to associate transactions with existing travel rule messages. | [optional] | diff --git a/docs/TransferPeerPathSubType.md b/docs/TransferPeerPathSubType.md index 092bf21c..072beb3b 100644 --- a/docs/TransferPeerPathSubType.md +++ b/docs/TransferPeerPathSubType.md @@ -69,5 +69,7 @@ * `INTERNAL` (value: `"Internal"`) +* `VIRTUAL_ACCOUNT` (value: `"VIRTUAL_ACCOUNT"`) + diff --git a/docs/TransferPeerPathType.md b/docs/TransferPeerPathType.md index 7d2ec76a..118c71d2 100644 --- a/docs/TransferPeerPathType.md +++ b/docs/TransferPeerPathType.md @@ -9,6 +9,8 @@ * `EXCHANGE_ACCOUNT` (value: `"EXCHANGE_ACCOUNT"`) +* `CONNECTED_ACCOUNT` (value: `"CONNECTED_ACCOUNT"`) + * `INTERNAL_WALLET` (value: `"INTERNAL_WALLET"`) * `EXTERNAL_WALLET` (value: `"EXTERNAL_WALLET"`) diff --git a/docs/TransferRail.md b/docs/TransferRail.md index b46f6fc2..7a2f3bc6 100644 --- a/docs/TransferRail.md +++ b/docs/TransferRail.md @@ -9,8 +9,6 @@ * `INTERNAL` (value: `"INTERNAL"`) -* `PEER` (value: `"PEER"`) - * `SWIFT` (value: `"SWIFT"`) * `IBAN` (value: `"IBAN"`) @@ -25,17 +23,17 @@ * `PIX` (value: `"PIX"`) -* `LOCAL_BANK_TRANSFER_AFRICA` (value: `"LOCAL_BANK_TRANSFER_AFRICA"`) - -* `MOBILE_MONEY` (value: `"MOBILE_MONEY"`) +* `LBT` (value: `"LBT"`) -* `INTERNAL_TRANSFER` (value: `"INTERNAL_TRANSFER"`) +* `MOMO` (value: `"MOMO"`) -* `INTERAC` (value: `"INTERAC"`) +* `CHAPS` (value: `"CHAPS"`) * `PAYID` (value: `"PAYID"`) -* `CHAPS` (value: `"CHAPS"`) +* `INTERAC` (value: `"INTERAC"`) + +* `INTERNAL_TRANSFER` (value: `"INTERNAL_TRANSFER"`) diff --git a/docs/UtxoIdentifier.md b/docs/UtxoIdentifier.md new file mode 100644 index 00000000..0348b1d3 --- /dev/null +++ b/docs/UtxoIdentifier.md @@ -0,0 +1,16 @@ + + +# UtxoIdentifier + +Identifies a UTXO by either a Fireblocks transaction ID (targets all outputs of that transaction) or a specific on-chain UTXO (txHash + vout). Exactly one of these two forms must be provided. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**txId** | **String** | Fireblocks transaction ID | [optional] | +|**txHash** | **String** | On-chain transaction hash | [optional] | +|**vout** | **Integer** | Output index | [optional] | + + + diff --git a/docs/UtxoInput.md b/docs/UtxoInput.md new file mode 100644 index 00000000..52e11066 --- /dev/null +++ b/docs/UtxoInput.md @@ -0,0 +1,14 @@ + + +# UtxoInput + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**txHash** | **String** | | | +|**vout** | **Integer** | | | + + + diff --git a/docs/UtxoInput2.md b/docs/UtxoInput2.md new file mode 100644 index 00000000..0dacc7ab --- /dev/null +++ b/docs/UtxoInput2.md @@ -0,0 +1,14 @@ + + +# UtxoInput2 + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**txHash** | **String** | The transaction hash | [optional] | +|**index** | **Integer** | The output index (vout) | [optional] | + + + diff --git a/docs/UtxoInputSelection.md b/docs/UtxoInputSelection.md new file mode 100644 index 00000000..d93c6832 --- /dev/null +++ b/docs/UtxoInputSelection.md @@ -0,0 +1,16 @@ + + +# UtxoInputSelection + +Explicitly control which UTXOs to include or exclude. This feature is currently in beta and might be subject to changes. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**inputsToSpend** | [**List<UtxoInput>**](UtxoInput.md) | Force-include specific UTXOs by txHash and vout. | [optional] | +|**inputsToExclude** | [**List<UtxoInput>**](UtxoInput.md) | Exclude specific UTXOs from selection. | [optional] | +|**fillFeeForSelectedInputs** | **Boolean** | When true and inputsToSpend is provided, automatically add more UTXOs to cover the transaction fee. Requires inputsToSpend. | [optional] | + + + diff --git a/docs/UtxoManagementBetaApi.md b/docs/UtxoManagementBetaApi.md new file mode 100644 index 00000000..4a3aeb8b --- /dev/null +++ b/docs/UtxoManagementBetaApi.md @@ -0,0 +1,210 @@ +# UtxoManagementBetaApi + +All URIs are relative to https://developers.fireblocks.com/reference/ + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getUtxos**](UtxoManagementBetaApi.md#getUtxos) | **GET** /utxo_management/{vaultAccountId}/{assetId}/unspent_outputs | List unspent outputs (UTXOs) | +| [**updateUtxoLabels**](UtxoManagementBetaApi.md#updateUtxoLabels) | **PATCH** /utxo_management/{vaultAccountId}/{assetId}/labels | Attach or detach labels to/from UTXOs | + + + +## getUtxos + +> CompletableFuture> getUtxos getUtxos(vaultAccountId, assetId, pageCursor, pageSize, sort, order, includeAllLabels, includeAnyLabels, excludeAnyLabels, includeStatuses, address, minAmount, maxAmount, useChange, useCoinbase) + +List unspent outputs (UTXOs) + +Returns a paginated list of unspent transaction outputs (UTXOs) for a UTXO-based asset in a vault account, with optional filters for labels, statuses, amounts, and more. **Note:** These endpoints are currently in beta and might be subject to changes. </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. + +### Example + +```java +// Import classes: +import com.fireblocks.sdk.ApiClient; +import com.fireblocks.sdk.ApiException; +import com.fireblocks.sdk.ApiResponse; +import com.fireblocks.sdk.BasePath; +import com.fireblocks.sdk.Fireblocks; +import com.fireblocks.sdk.ConfigurationOptions; +import com.fireblocks.sdk.model.*; +import com.fireblocks.sdk.api.UtxoManagementBetaApi; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; + +public class Example { + public static void main(String[] args) { + ConfigurationOptions configurationOptions = new ConfigurationOptions() + .basePath(BasePath.Sandbox) + .apiKey("my-api-key") + .secretKey("my-secret-key"); + Fireblocks fireblocks = new Fireblocks(configurationOptions); + + String vaultAccountId = "vaultAccountId_example"; // String | The ID of the vault account + String assetId = "assetId_example"; // String | The ID of the asset + String pageCursor = "MjAyNS0wNy0wOSAxMDo1MzoxMy40NTI=:NA=="; // String | Cursor for the next page of results + Integer pageSize = 50; // Integer | Number of results per page (max 250, default 50) + String sort = "AMOUNT"; // String | Field to sort by + String order = "ASC"; // String | Sort order + List includeAllLabels = Arrays.asList(); // List | Only return UTXOs that have ALL of these labels (AND logic). + List includeAnyLabels = Arrays.asList(); // List | Return UTXOs that have ANY of these labels (OR logic). + List excludeAnyLabels = Arrays.asList(); // List | Exclude UTXOs that have ANY of these labels. + List includeStatuses = Arrays.asList(); // List | Filter by UTXO statuses to include. + String address = "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa"; // String | Filter by address + String minAmount = "0.001"; // String | Minimum amount filter + String maxAmount = "1.0"; // String | Maximum amount filter + Boolean useChange = true; // Boolean | Include change outputs + Boolean useCoinbase = true; // Boolean | Include coinbase outputs + try { + CompletableFuture> response = fireblocks.utxoManagementBeta().getUtxos(vaultAccountId, assetId, pageCursor, pageSize, sort, order, includeAllLabels, includeAnyLabels, excludeAnyLabels, includeStatuses, address, minAmount, maxAmount, useChange, useCoinbase); + System.out.println("Status code: " + response.get().getStatusCode()); + System.out.println("Response headers: " + response.get().getHeaders()); + System.out.println("Response body: " + response.get().getData()); + } catch (InterruptedException | ExecutionException e) { + ApiException apiException = (ApiException)e.getCause(); + System.err.println("Exception when calling UtxoManagementBetaApi#getUtxos"); + System.err.println("Status code: " + apiException.getCode()); + System.err.println("Response headers: " + apiException.getResponseHeaders()); + System.err.println("Reason: " + apiException.getResponseBody()); + e.printStackTrace(); + } catch (ApiException e) { + System.err.println("Exception when calling UtxoManagementBetaApi#getUtxos"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Response headers: " + e.getResponseHeaders()); + System.err.println("Reason: " + e.getResponseBody()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **vaultAccountId** | **String**| The ID of the vault account | | +| **assetId** | **String**| The ID of the asset | | +| **pageCursor** | **String**| Cursor for the next page of results | [optional] | +| **pageSize** | **Integer**| Number of results per page (max 250, default 50) | [optional] [default to 50] | +| **sort** | **String**| Field to sort by | [optional] [enum: AMOUNT, CONFIRMATIONS] | +| **order** | **String**| Sort order | [optional] [enum: ASC, DESC] | +| **includeAllLabels** | [**List<String>**](String.md)| Only return UTXOs that have ALL of these labels (AND logic). | [optional] | +| **includeAnyLabels** | [**List<String>**](String.md)| Return UTXOs that have ANY of these labels (OR logic). | [optional] | +| **excludeAnyLabels** | [**List<String>**](String.md)| Exclude UTXOs that have ANY of these labels. | [optional] | +| **includeStatuses** | [**List<String>**](String.md)| Filter by UTXO statuses to include. | [optional] | +| **address** | **String**| Filter by address | [optional] | +| **minAmount** | **String**| Minimum amount filter | [optional] | +| **maxAmount** | **String**| Maximum amount filter | [optional] | +| **useChange** | **Boolean**| Include change outputs | [optional] | +| **useCoinbase** | **Boolean**| Include coinbase outputs | [optional] | + +### Return type + +CompletableFuture> + + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | A paginated list of UTXOs | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| + + +## updateUtxoLabels + +> CompletableFuture> updateUtxoLabels updateUtxoLabels(attachDetachUtxoLabelsRequest, vaultAccountId, assetId, idempotencyKey) + +Attach or detach labels to/from UTXOs + +Attach or detach labels to/from UTXOs in a vault account. Labels can be used for organizing and filtering UTXOs. Labels are applied additively — `labelsToAttach` adds to the existing label set and `labelsToDetach` removes from it. Neither operation replaces the full set. **Note:** These endpoints are currently in beta and might be subject to changes. </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. + +### Example + +```java +// Import classes: +import com.fireblocks.sdk.ApiClient; +import com.fireblocks.sdk.ApiException; +import com.fireblocks.sdk.ApiResponse; +import com.fireblocks.sdk.BasePath; +import com.fireblocks.sdk.Fireblocks; +import com.fireblocks.sdk.ConfigurationOptions; +import com.fireblocks.sdk.model.*; +import com.fireblocks.sdk.api.UtxoManagementBetaApi; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; + +public class Example { + public static void main(String[] args) { + ConfigurationOptions configurationOptions = new ConfigurationOptions() + .basePath(BasePath.Sandbox) + .apiKey("my-api-key") + .secretKey("my-secret-key"); + Fireblocks fireblocks = new Fireblocks(configurationOptions); + + AttachDetachUtxoLabelsRequest attachDetachUtxoLabelsRequest = new AttachDetachUtxoLabelsRequest(); // AttachDetachUtxoLabelsRequest | + String vaultAccountId = "vaultAccountId_example"; // String | The ID of the vault account + String assetId = "assetId_example"; // String | The ID of the asset + String idempotencyKey = "idempotencyKey_example"; // String | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. + try { + CompletableFuture> response = fireblocks.utxoManagementBeta().updateUtxoLabels(attachDetachUtxoLabelsRequest, vaultAccountId, assetId, idempotencyKey); + System.out.println("Status code: " + response.get().getStatusCode()); + System.out.println("Response headers: " + response.get().getHeaders()); + System.out.println("Response body: " + response.get().getData()); + } catch (InterruptedException | ExecutionException e) { + ApiException apiException = (ApiException)e.getCause(); + System.err.println("Exception when calling UtxoManagementBetaApi#updateUtxoLabels"); + System.err.println("Status code: " + apiException.getCode()); + System.err.println("Response headers: " + apiException.getResponseHeaders()); + System.err.println("Reason: " + apiException.getResponseBody()); + e.printStackTrace(); + } catch (ApiException e) { + System.err.println("Exception when calling UtxoManagementBetaApi#updateUtxoLabels"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Response headers: " + e.getResponseHeaders()); + System.err.println("Reason: " + e.getResponseBody()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **attachDetachUtxoLabelsRequest** | [**AttachDetachUtxoLabelsRequest**](AttachDetachUtxoLabelsRequest.md)| | | +| **vaultAccountId** | **String**| The ID of the vault account | | +| **assetId** | **String**| The ID of the asset | | +| **idempotencyKey** | **String**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] | + +### Return type + +CompletableFuture> + + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: application/json +- **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | UTXOs with updated labels | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| + diff --git a/docs/UtxoOutput.md b/docs/UtxoOutput.md new file mode 100644 index 00000000..6b1950d2 --- /dev/null +++ b/docs/UtxoOutput.md @@ -0,0 +1,38 @@ + + +# UtxoOutput + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**input** | [**UtxoInput2**](UtxoInput2.md) | | | +|**utxoId** | **String** | The unique UTXO identifier | | +|**address** | **String** | The address holding this UTXO | | +|**amount** | **String** | The UTXO amount in the asset's native unit | | +|**confirmations** | **Integer** | Number of confirmations | [optional] | +|**status** | [**StatusEnum**](#StatusEnum) | The UTXO status | | +|**isChange** | **Boolean** | Whether this is a change output | [optional] | +|**isCoinbase** | **Boolean** | Whether this is a coinbase output | [optional] | +|**fbTxId** | **String** | The Fireblocks transaction ID that created this UTXO | [optional] | +|**createdByHash** | **String** | The on-chain block hash where this UTXO was created | [optional] | +|**spentByFbTxId** | **List<String>** | Fireblocks transaction IDs that selected/spent this UTXO | [optional] | +|**createdByHeight** | **Integer** | The block height at which this UTXO was created | [optional] | +|**createdAt** | **OffsetDateTime** | The timestamp when this UTXO was created | [optional] | +|**updatedAt** | **OffsetDateTime** | The timestamp when this UTXO was last updated | [optional] | +|**labels** | **List<String>** | Labels attached to this UTXO | [optional] | + + + +## Enum: StatusEnum + +| Name | Value | +|---- | -----| +| PENDING | "PENDING" | +| AVAILABLE | "AVAILABLE" | +| FROZEN | "FROZEN" | +| SELECTED | "SELECTED" | + + + diff --git a/docs/UtxoSelectionFilters.md b/docs/UtxoSelectionFilters.md new file mode 100644 index 00000000..91f01dd8 --- /dev/null +++ b/docs/UtxoSelectionFilters.md @@ -0,0 +1,21 @@ + + +# UtxoSelectionFilters + +Narrow the UTXO candidate pool. All specified filters are AND-ed together. This feature is currently in beta and might be subject to changes. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**includeAllLabels** | **List<String>** | Only include UTXOs that have ALL of these labels. | [optional] | +|**includeAnyLabels** | **List<String>** | Only include UTXOs that have at least one of these labels. | [optional] | +|**excludeAnyLabels** | **List<String>** | Exclude UTXOs that have any of these labels. | [optional] | +|**address** | **String** | Only include UTXOs from this specific address. | [optional] | +|**minAmount** | **String** | Minimum UTXO amount in the asset's base unit (e.g., BTC). | [optional] | +|**maxAmount** | **String** | Maximum UTXO amount in the asset's base unit (e.g., BTC). | [optional] | +|**useChange** | **Boolean** | Set to false to exclude change UTXOs. Default is true. | [optional] | +|**useCoinbase** | **Boolean** | Set to false to exclude coinbase UTXOs. Default is true. | [optional] | + + + diff --git a/docs/UtxoSelectionParams.md b/docs/UtxoSelectionParams.md new file mode 100644 index 00000000..4f35778e --- /dev/null +++ b/docs/UtxoSelectionParams.md @@ -0,0 +1,15 @@ + + +# UtxoSelectionParams + +For UTXO-based blockchains only. Controls which UTXOs are used for automatic selection. Cannot be used together with extraParameters.inputsSelection. This feature is currently in beta and might be subject to changes. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**filters** | [**UtxoSelectionFilters**](UtxoSelectionFilters.md) | | [optional] | +|**inputSelection** | [**UtxoInputSelection**](UtxoInputSelection.md) | | [optional] | + + + diff --git a/docs/WebhooksV2Api.md b/docs/WebhooksV2Api.md index 99b682b4..52958ab4 100644 --- a/docs/WebhooksV2Api.md +++ b/docs/WebhooksV2Api.md @@ -10,11 +10,13 @@ All URIs are relative to https://developers.fireblocks.com/reference/ | [**getNotification**](WebhooksV2Api.md#getNotification) | **GET** /webhooks/{webhookId}/notifications/{notificationId} | Get notification by id | | [**getNotificationAttempts**](WebhooksV2Api.md#getNotificationAttempts) | **GET** /webhooks/{webhookId}/notifications/{notificationId}/attempts | Get notification attempts | | [**getNotifications**](WebhooksV2Api.md#getNotifications) | **GET** /webhooks/{webhookId}/notifications | Get all notifications by webhook id | +| [**getResendByQueryJobStatus**](WebhooksV2Api.md#getResendByQueryJobStatus) | **GET** /webhooks/{webhookId}/notifications/resend_by_query/jobs/{jobId} | Get resend by query job status | | [**getResendJobStatus**](WebhooksV2Api.md#getResendJobStatus) | **GET** /webhooks/{webhookId}/notifications/resend_failed/jobs/{jobId} | Get resend job status | | [**getWebhook**](WebhooksV2Api.md#getWebhook) | **GET** /webhooks/{webhookId} | Get webhook by id | | [**getWebhooks**](WebhooksV2Api.md#getWebhooks) | **GET** /webhooks | Get all webhooks | | [**resendFailedNotifications**](WebhooksV2Api.md#resendFailedNotifications) | **POST** /webhooks/{webhookId}/notifications/resend_failed | Resend failed notifications | | [**resendNotificationById**](WebhooksV2Api.md#resendNotificationById) | **POST** /webhooks/{webhookId}/notifications/{notificationId}/resend | Resend notification by id | +| [**resendNotificationsByQuery**](WebhooksV2Api.md#resendNotificationsByQuery) | **POST** /webhooks/{webhookId}/notifications/resend_by_query | Resend notifications by query | | [**resendNotificationsByResourceId**](WebhooksV2Api.md#resendNotificationsByResourceId) | **POST** /webhooks/{webhookId}/notifications/resend_by_resource | Resend notifications by resource Id | | [**updateWebhook**](WebhooksV2Api.md#updateWebhook) | **PATCH** /webhooks/{webhookId} | Update webhook | @@ -550,6 +552,91 @@ No authorization required | **0** | Error Response | * X-Request-ID -
| +## getResendByQueryJobStatus + +> CompletableFuture> getResendByQueryJobStatus getResendByQueryJobStatus(webhookId, jobId) + +Get resend by query job status + +Get the status of a resend by query job + +### Example + +```java +// Import classes: +import com.fireblocks.sdk.ApiClient; +import com.fireblocks.sdk.ApiException; +import com.fireblocks.sdk.ApiResponse; +import com.fireblocks.sdk.BasePath; +import com.fireblocks.sdk.Fireblocks; +import com.fireblocks.sdk.ConfigurationOptions; +import com.fireblocks.sdk.model.*; +import com.fireblocks.sdk.api.WebhooksV2Api; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; + +public class Example { + public static void main(String[] args) { + ConfigurationOptions configurationOptions = new ConfigurationOptions() + .basePath(BasePath.Sandbox) + .apiKey("my-api-key") + .secretKey("my-secret-key"); + Fireblocks fireblocks = new Fireblocks(configurationOptions); + + String webhookId = "webhookId_example"; // String | The ID of the webhook + String jobId = "jobId_example"; // String | The ID of the resend job + try { + CompletableFuture> response = fireblocks.webhooksV2().getResendByQueryJobStatus(webhookId, jobId); + System.out.println("Status code: " + response.get().getStatusCode()); + System.out.println("Response headers: " + response.get().getHeaders()); + System.out.println("Response body: " + response.get().getData()); + } catch (InterruptedException | ExecutionException e) { + ApiException apiException = (ApiException)e.getCause(); + System.err.println("Exception when calling WebhooksV2Api#getResendByQueryJobStatus"); + System.err.println("Status code: " + apiException.getCode()); + System.err.println("Response headers: " + apiException.getResponseHeaders()); + System.err.println("Reason: " + apiException.getResponseBody()); + e.printStackTrace(); + } catch (ApiException e) { + System.err.println("Exception when calling WebhooksV2Api#getResendByQueryJobStatus"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Response headers: " + e.getResponseHeaders()); + System.err.println("Reason: " + e.getResponseBody()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **webhookId** | **String**| The ID of the webhook | | +| **jobId** | **String**| The ID of the resend job | | + +### Return type + +CompletableFuture> + + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Job status | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| + + ## getResendJobStatus > CompletableFuture> getResendJobStatus getResendJobStatus(webhookId, jobId) @@ -979,6 +1066,94 @@ No authorization required | **0** | Error Response | * X-Request-ID -
| +## resendNotificationsByQuery + +> CompletableFuture> resendNotificationsByQuery resendNotificationsByQuery(resendByQueryRequest, webhookId, idempotencyKey) + +Resend notifications by query + +Resend notifications matching the given query filters (statuses, events, time range, resource ID) Endpoint Permission: Owner, Admin, Non-Signing Admin, Editor, Signer. + +### Example + +```java +// Import classes: +import com.fireblocks.sdk.ApiClient; +import com.fireblocks.sdk.ApiException; +import com.fireblocks.sdk.ApiResponse; +import com.fireblocks.sdk.BasePath; +import com.fireblocks.sdk.Fireblocks; +import com.fireblocks.sdk.ConfigurationOptions; +import com.fireblocks.sdk.model.*; +import com.fireblocks.sdk.api.WebhooksV2Api; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; + +public class Example { + public static void main(String[] args) { + ConfigurationOptions configurationOptions = new ConfigurationOptions() + .basePath(BasePath.Sandbox) + .apiKey("my-api-key") + .secretKey("my-secret-key"); + Fireblocks fireblocks = new Fireblocks(configurationOptions); + + ResendByQueryRequest resendByQueryRequest = new ResendByQueryRequest(); // ResendByQueryRequest | + String webhookId = "webhookId_example"; // String | The ID of the webhook + String idempotencyKey = "idempotencyKey_example"; // String | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. + try { + CompletableFuture> response = fireblocks.webhooksV2().resendNotificationsByQuery(resendByQueryRequest, webhookId, idempotencyKey); + System.out.println("Status code: " + response.get().getStatusCode()); + System.out.println("Response headers: " + response.get().getHeaders()); + System.out.println("Response body: " + response.get().getData()); + } catch (InterruptedException | ExecutionException e) { + ApiException apiException = (ApiException)e.getCause(); + System.err.println("Exception when calling WebhooksV2Api#resendNotificationsByQuery"); + System.err.println("Status code: " + apiException.getCode()); + System.err.println("Response headers: " + apiException.getResponseHeaders()); + System.err.println("Reason: " + apiException.getResponseBody()); + e.printStackTrace(); + } catch (ApiException e) { + System.err.println("Exception when calling WebhooksV2Api#resendNotificationsByQuery"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Response headers: " + e.getResponseHeaders()); + System.err.println("Reason: " + e.getResponseBody()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **resendByQueryRequest** | [**ResendByQueryRequest**](ResendByQueryRequest.md)| | | +| **webhookId** | **String**| The ID of the webhook | | +| **idempotencyKey** | **String**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] | + +### Return type + +CompletableFuture> + + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: application/json +- **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | No matching notifications to resend | * X-Request-ID -
| +| **202** | Resend notifications request was accepted and is being processed | * X-Request-ID -
* Location -
| +| **0** | Error Response | * X-Request-ID -
| + + ## resendNotificationsByResourceId > CompletableFuture> resendNotificationsByResourceId resendNotificationsByResourceId(resendNotificationsByResourceIdRequest, webhookId, idempotencyKey) diff --git a/pom.xml b/pom.xml index 92337fdf..89176ce6 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ fireblocks-sdk jar fireblocks-sdk - 16.0.0 + 0.0.0 https://github.com/fireblocks/java-sdk The Fireblocks Official SDK is a comprehensive software development kit that enables seamless integration and interaction with the Fireblocks platform. Fireblocks is a cutting-edge blockchain infrastructure platform that provides secure and scalable solutions for managing digital assets and transactions. This SDK empowers developers to build robust applications that can interact with the Fireblocks platform's features, including creating and managing vault accounts, initiating secure transactions, managing assets, and more. It abstracts complex interactions with the Fireblocks API, making it easier for developers to leverage the platform's capabilities while adhering to best practices in security and efficiency. diff --git a/src/main/java/com/fireblocks/sdk/Configuration.java b/src/main/java/com/fireblocks/sdk/Configuration.java index a32388f9..aa53bae8 100644 --- a/src/main/java/com/fireblocks/sdk/Configuration.java +++ b/src/main/java/com/fireblocks/sdk/Configuration.java @@ -21,7 +21,7 @@ value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.14.0") public class Configuration { - public static final String VERSION = "16.0.0"; + public static final String VERSION = "0.0.0"; private static final AtomicReference defaultApiClient = new AtomicReference<>(); private static volatile Supplier apiClientFactory = ApiClient::new; diff --git a/src/main/java/com/fireblocks/sdk/Fireblocks.java b/src/main/java/com/fireblocks/sdk/Fireblocks.java index b7d8ab63..df1aef7e 100644 --- a/src/main/java/com/fireblocks/sdk/Fireblocks.java +++ b/src/main/java/com/fireblocks/sdk/Fireblocks.java @@ -48,6 +48,7 @@ public class Fireblocks { private ContractsApi contracts; private CosignersBetaApi cosignersBeta; private DeployedContractsApi deployedContracts; + private EarnBetaApi earnBeta; private EmbeddedWalletsApi embeddedWallets; private ExchangeAccountsApi exchangeAccounts; private ExternalWalletsApi externalWallets; @@ -75,6 +76,7 @@ public class Fireblocks { private TravelRuleApi travelRule; private UserGroupsBetaApi userGroupsBeta; private UsersApi users; + private UtxoManagementBetaApi utxoManagementBeta; private VaultsApi vaults; private Web3ConnectionsApi web3Connections; private WebhooksApi webhooks; @@ -305,6 +307,13 @@ public DeployedContractsApi deployedContracts() { return deployedContracts; } + public EarnBetaApi earnBeta() { + if (earnBeta == null) { + earnBeta = new EarnBetaApi(apiClient); + } + return earnBeta; + } + public EmbeddedWalletsApi embeddedWallets() { if (embeddedWallets == null) { embeddedWallets = new EmbeddedWalletsApi(apiClient); @@ -494,6 +503,13 @@ public UsersApi users() { return users; } + public UtxoManagementBetaApi utxoManagementBeta() { + if (utxoManagementBeta == null) { + utxoManagementBeta = new UtxoManagementBetaApi(apiClient); + } + return utxoManagementBeta; + } + public VaultsApi vaults() { if (vaults == null) { vaults = new VaultsApi(apiClient); diff --git a/src/main/java/com/fireblocks/sdk/api/ComplianceApi.java b/src/main/java/com/fireblocks/sdk/api/ComplianceApi.java index c2dc9d01..f69a6d85 100644 --- a/src/main/java/com/fireblocks/sdk/api/ComplianceApi.java +++ b/src/main/java/com/fireblocks/sdk/api/ComplianceApi.java @@ -24,7 +24,6 @@ import com.fireblocks.sdk.model.AddressRegistryAddVaultOptOutsResponse; import com.fireblocks.sdk.model.AddressRegistryGetVaultOptOutResponse; import com.fireblocks.sdk.model.AddressRegistryLegalEntity; -import com.fireblocks.sdk.model.AddressRegistryLegalEntityLegacy; import com.fireblocks.sdk.model.AddressRegistryListVaultOptOutsResponse; import com.fireblocks.sdk.model.AddressRegistryRemoveAllVaultOptOutsResponse; import com.fireblocks.sdk.model.AddressRegistryRemoveVaultOptOutResponse; @@ -34,8 +33,13 @@ import com.fireblocks.sdk.model.AmlVerdictManualResponse; import com.fireblocks.sdk.model.AssignVaultsToLegalEntityRequest; import com.fireblocks.sdk.model.AssignVaultsToLegalEntityResponse; +import com.fireblocks.sdk.model.ByorkConfigResponse; +import com.fireblocks.sdk.model.ByorkSetTimeoutsRequest; +import com.fireblocks.sdk.model.ByorkVerdictRequest; +import com.fireblocks.sdk.model.ByorkVerdictResponse; import com.fireblocks.sdk.model.ComplianceResultFullPayload; import com.fireblocks.sdk.model.CreateTransactionResponse; +import com.fireblocks.sdk.model.GetByorkVerdictResponse; import com.fireblocks.sdk.model.LegalEntityRegistration; import com.fireblocks.sdk.model.ListLegalEntitiesResponse; import com.fireblocks.sdk.model.ListVaultsForRegistrationResponse; @@ -99,6 +103,78 @@ private String formatExceptionMessage(String operationId, int statusCode, String return operationId + " call failed with: " + statusCode + " - " + body; } + /** + * Activate BYORK Light Activates BYORK Light for the authenticated tenant (sets config.active + * to true). Once activated, BYORK screening applies to matching transactions. Requires BYORK + * Light to be enabled for the tenant (contact your CSM to enable). + * + * @param idempotencyKey A unique identifier for the request. If the request is sent multiple + * times with the same idempotency key, the server will return the same response as the + * first request. The idempotency key is valid for 24 hours. (optional) + * @return CompletableFuture<ApiResponse<ByorkConfigResponse>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> activateByorkConfig( + String idempotencyKey) throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = + activateByorkConfigRequestBuilder(idempotencyKey); + return memberVarHttpClient + .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString()) + .thenComposeAsync( + localVarResponse -> { + if (memberVarAsyncResponseInterceptor != null) { + memberVarAsyncResponseInterceptor.accept(localVarResponse); + } + if (localVarResponse.statusCode() / 100 != 2) { + return CompletableFuture.failedFuture( + getApiException( + "activateByorkConfig", 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< + ByorkConfigResponse>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder activateByorkConfigRequestBuilder(String idempotencyKey) + throws ApiException { + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = "/screening/byork/config/activate"; + + localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath)); + + if (idempotencyKey != null) { + localVarRequestBuilder.header("Idempotency-Key", idempotencyKey.toString()); + } + localVarRequestBuilder.header("Accept", "application/json"); + + localVarRequestBuilder.method("POST", HttpRequest.BodyPublishers.noBody()); + if (memberVarReadTimeout != null) { + localVarRequestBuilder.timeout(memberVarReadTimeout); + } + if (memberVarInterceptor != null) { + memberVarInterceptor.accept(localVarRequestBuilder); + } + return localVarRequestBuilder; + } /** * Add vault accounts to the address registry opt-out list Adds one or more vault account ids to * the workspace opt-out list for the address registry. @@ -288,6 +364,78 @@ private HttpRequest.Builder assignVaultsToLegalEntityRequestBuilder( } return localVarRequestBuilder; } + /** + * Deactivate BYORK Light Deactivates BYORK Light for the authenticated tenant (sets + * config.active to false). Once deactivated, BYORK screening no longer applies until activated + * again. Requires BYORK Light to be enabled for the tenant (contact your CSM to enable). + * + * @param idempotencyKey A unique identifier for the request. If the request is sent multiple + * times with the same idempotency key, the server will return the same response as the + * first request. The idempotency key is valid for 24 hours. (optional) + * @return CompletableFuture<ApiResponse<ByorkConfigResponse>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> deactivateByorkConfig( + String idempotencyKey) throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = + deactivateByorkConfigRequestBuilder(idempotencyKey); + return memberVarHttpClient + .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString()) + .thenComposeAsync( + localVarResponse -> { + if (memberVarAsyncResponseInterceptor != null) { + memberVarAsyncResponseInterceptor.accept(localVarResponse); + } + if (localVarResponse.statusCode() / 100 != 2) { + return CompletableFuture.failedFuture( + getApiException( + "deactivateByorkConfig", 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< + ByorkConfigResponse>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder deactivateByorkConfigRequestBuilder(String idempotencyKey) + throws ApiException { + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = "/screening/byork/config/deactivate"; + + localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath)); + + if (idempotencyKey != null) { + localVarRequestBuilder.header("Idempotency-Key", idempotencyKey.toString()); + } + localVarRequestBuilder.header("Accept", "application/json"); + + localVarRequestBuilder.method("POST", HttpRequest.BodyPublishers.noBody()); + if (memberVarReadTimeout != null) { + localVarRequestBuilder.timeout(memberVarReadTimeout); + } + if (memberVarInterceptor != null) { + memberVarInterceptor.accept(localVarRequestBuilder); + } + return localVarRequestBuilder; + } /** * Get address registry participation status for the authenticated workspace Returns whether the * workspace is `OPTED_IN` or `OPTED_OUT` of the address registry. @@ -555,19 +703,17 @@ private HttpRequest.Builder getAmlScreeningPolicyRequestBuilder() throws ApiExce return localVarRequestBuilder; } /** - * Get a legal entity Returns details of a specific legal entity registration, including GLEIF - * data when available. </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, - * Approver, Editor, Viewer. + * Get BYORK Light configuration Retrieves BYORK Light configuration for the authenticated + * tenant (timeouts, active flag, allowed timeout ranges). Returns default config when none + * exists. Requires BYORK Light to be enabled for the tenant. * - * @param legalEntityId The unique ID of the legal entity registration (required) - * @return CompletableFuture<ApiResponse<LegalEntityRegistration>> + * @return CompletableFuture<ApiResponse<ByorkConfigResponse>> * @throws ApiException if fails to make API call */ - public CompletableFuture> getLegalEntity( - UUID legalEntityId) throws ApiException { + public CompletableFuture> getByorkConfig() + throws ApiException { try { - HttpRequest.Builder localVarRequestBuilder = - getLegalEntityRequestBuilder(legalEntityId); + HttpRequest.Builder localVarRequestBuilder = getByorkConfigRequestBuilder(); return memberVarHttpClient .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString()) .thenComposeAsync( @@ -577,12 +723,12 @@ public CompletableFuture> getLegalEntity( } if (localVarResponse.statusCode() / 100 != 2) { return CompletableFuture.failedFuture( - getApiException("getLegalEntity", localVarResponse)); + getApiException("getByorkConfig", localVarResponse)); } try { String responseBody = localVarResponse.body(); return CompletableFuture.completedFuture( - new ApiResponse( + new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), responseBody == null || responseBody.isBlank() @@ -590,7 +736,7 @@ public CompletableFuture> getLegalEntity( : memberVarObjectMapper.readValue( responseBody, new TypeReference< - LegalEntityRegistration>() {}))); + ByorkConfigResponse>() {}))); } catch (IOException e) { return CompletableFuture.failedFuture(new ApiException(e)); } @@ -600,16 +746,11 @@ public CompletableFuture> getLegalEntity( } } - private HttpRequest.Builder getLegalEntityRequestBuilder(UUID legalEntityId) - throws ApiException { - ValidationUtils.assertParamExistsAndNotEmpty( - "getLegalEntity", "legalEntityId", legalEntityId.toString()); + private HttpRequest.Builder getByorkConfigRequestBuilder() throws ApiException { HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); - String localVarPath = - "/legal_entities/{legalEntityId}" - .replace("{legalEntityId}", ApiClient.urlEncode(legalEntityId.toString())); + String localVarPath = "/screening/byork/config"; localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath)); @@ -625,25 +766,19 @@ private HttpRequest.Builder getLegalEntityRequestBuilder(UUID legalEntityId) return localVarRequestBuilder; } /** - * [Deprecated] Look up legal entity by address (query parameter) **Deprecated** — use `GET - * /v1/address_registry/legal_entities/{address}` instead. Here `address` is a - * **query** parameter; the replacement uses a path segment. The response includes only - * `companyName`, `countryCode`, and `companyId`. The replacement - * returns additional fields documented on that operation. Optional **`asset`** is - * supported here only (not on the replacement path). + * Get BYORK Light verdict Returns the current BYORK verdict and status for a transaction. + * Status can be PRE_ACCEPTED, PENDING, RECEIVED (verdict is final but processing not yet + * complete), or COMPLETED. Requires BYORK Light to be enabled for the tenant. Returns 404 if no + * BYORK verdict is found for the transaction. * - * @param address Blockchain address to look up (required) - * @param asset Optional asset identifier (this deprecated operation only). (optional) - * @return CompletableFuture<ApiResponse<AddressRegistryLegalEntityLegacy>> + * @param txId Transaction ID (required) + * @return CompletableFuture<ApiResponse<GetByorkVerdictResponse>> * @throws ApiException if fails to make API call - * @deprecated */ - @Deprecated - public CompletableFuture> getLegalEntityByAddress( - String address, String asset) throws ApiException { + public CompletableFuture> getByorkVerdict(String txId) + throws ApiException { try { - HttpRequest.Builder localVarRequestBuilder = - getLegalEntityByAddressRequestBuilder(address, asset); + HttpRequest.Builder localVarRequestBuilder = getByorkVerdictRequestBuilder(txId); return memberVarHttpClient .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString()) .thenComposeAsync( @@ -653,13 +788,12 @@ public CompletableFuture> getLegal } if (localVarResponse.statusCode() / 100 != 2) { return CompletableFuture.failedFuture( - getApiException( - "getLegalEntityByAddress", localVarResponse)); + getApiException("getByorkVerdict", localVarResponse)); } try { String responseBody = localVarResponse.body(); return CompletableFuture.completedFuture( - new ApiResponse( + new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), responseBody == null || responseBody.isBlank() @@ -667,7 +801,7 @@ public CompletableFuture> getLegal : memberVarObjectMapper.readValue( responseBody, new TypeReference< - AddressRegistryLegalEntityLegacy>() {}))); + GetByorkVerdictResponse>() {}))); } catch (IOException e) { return CompletableFuture.failedFuture(new ApiException(e)); } @@ -677,21 +811,18 @@ public CompletableFuture> getLegal } } - private HttpRequest.Builder getLegalEntityByAddressRequestBuilder(String address, String asset) - throws ApiException { - ValidationUtils.assertParamExistsAndNotEmpty("getLegalEntityByAddress", "address", address); + private HttpRequest.Builder getByorkVerdictRequestBuilder(String txId) throws ApiException { + ValidationUtils.assertParamExistsAndNotEmpty("getByorkVerdict", "txId", txId); HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); - String localVarPath = "/address_registry/legal_entity"; + String localVarPath = "/screening/byork/verdict"; List localVarQueryParams = new ArrayList<>(); StringJoiner localVarQueryStringJoiner = new StringJoiner("&"); String localVarQueryParameterBaseName; - localVarQueryParameterBaseName = "address"; - localVarQueryParams.addAll(ApiClient.parameterToPairs("address", address)); - localVarQueryParameterBaseName = "asset"; - localVarQueryParams.addAll(ApiClient.parameterToPairs("asset", asset)); + localVarQueryParameterBaseName = "txId"; + localVarQueryParams.addAll(ApiClient.parameterToPairs("txId", txId)); if (!localVarQueryParams.isEmpty() || localVarQueryStringJoiner.length() != 0) { StringJoiner queryJoiner = new StringJoiner("&"); @@ -716,13 +847,80 @@ private HttpRequest.Builder getLegalEntityByAddressRequestBuilder(String address } return localVarRequestBuilder; } + /** + * Get a legal entity Returns details of a specific legal entity registration, including GLEIF + * data when available. </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, + * Approver, Editor, Viewer. + * + * @param legalEntityId The unique ID of the legal entity registration (required) + * @return CompletableFuture<ApiResponse<LegalEntityRegistration>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> getLegalEntity( + UUID legalEntityId) throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = + getLegalEntityRequestBuilder(legalEntityId); + 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("getLegalEntity", 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< + LegalEntityRegistration>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder getLegalEntityRequestBuilder(UUID legalEntityId) + throws ApiException { + ValidationUtils.assertParamExistsAndNotEmpty( + "getLegalEntity", "legalEntityId", legalEntityId.toString()); + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = + "/legal_entities/{legalEntityId}" + .replace("{legalEntityId}", ApiClient.urlEncode(legalEntityId.toString())); + + localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath)); + + localVarRequestBuilder.header("Accept", "application/json"); + + localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody()); + if (memberVarReadTimeout != null) { + localVarRequestBuilder.timeout(memberVarReadTimeout); + } + if (memberVarInterceptor != null) { + memberVarInterceptor.accept(localVarRequestBuilder); + } + return localVarRequestBuilder; + } /** * Look up legal entity by blockchain address Returns legal entity information for the given - * blockchain address. URL-encode `{address}` when required. Prefer this operation - * over the deprecated `GET /v1/address_registry/legal_entity?address=…`, which - * returns only `companyName`, `countryCode`, and `companyId`. - * This operation adds verification status, LEI, Travel Rule providers, and contact email (see - * response properties). + * blockchain address (verification status, LEI, Travel Rule providers, contact email, and + * related fields — see response schema). URL-encode `{address}` when required. * * @param address Blockchain address to look up (required) * @return CompletableFuture<ApiResponse<AddressRegistryLegalEntity>> @@ -1097,20 +1295,14 @@ private HttpRequest.Builder listAddressRegistryVaultOptOutsRequestBuilder( * previous response. Ignored when `vaultAccountId` is provided. (optional) * @param pageSize Maximum number of registrations to return. Ignored when * `vaultAccountId` is provided. (optional, default to 50) - * @param sortBy Field to sort results by. Ignored when `vaultAccountId` is provided. - * (optional) - * @param order Sort order. Ignored when `vaultAccountId` is provided. (optional, - * default to DESC) * @return CompletableFuture<ApiResponse<ListLegalEntitiesResponse>> * @throws ApiException if fails to make API call */ public CompletableFuture> listLegalEntities( - String vaultAccountId, String pageCursor, Integer pageSize, String sortBy, String order) - throws ApiException { + String vaultAccountId, String pageCursor, Integer pageSize) throws ApiException { try { HttpRequest.Builder localVarRequestBuilder = - listLegalEntitiesRequestBuilder( - vaultAccountId, pageCursor, pageSize, sortBy, order); + listLegalEntitiesRequestBuilder(vaultAccountId, pageCursor, pageSize); return memberVarHttpClient .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString()) .thenComposeAsync( @@ -1144,8 +1336,7 @@ public CompletableFuture> listLegalEntiti } private HttpRequest.Builder listLegalEntitiesRequestBuilder( - String vaultAccountId, String pageCursor, Integer pageSize, String sortBy, String order) - throws ApiException { + String vaultAccountId, String pageCursor, Integer pageSize) throws ApiException { HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); @@ -1160,10 +1351,6 @@ private HttpRequest.Builder listLegalEntitiesRequestBuilder( localVarQueryParams.addAll(ApiClient.parameterToPairs("pageCursor", pageCursor)); localVarQueryParameterBaseName = "pageSize"; localVarQueryParams.addAll(ApiClient.parameterToPairs("pageSize", pageSize)); - 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("&"); @@ -1728,8 +1915,10 @@ private HttpRequest.Builder retryRejectedTransactionBypassScreeningChecksRequest return localVarRequestBuilder; } /** - * Set AML Verdict for Manual Screening Verdict. Set AML verdict for incoming transactions when - * Manual Screening Verdict feature is enabled. + * Set AML Verdict (BYORK Super Light) Set AML verdict for incoming transactions when **BYORK + * Super Light** (Manual Screening Verdict) is enabled. This endpoint is for Super Light only. + * For **BYORK Light**, use POST /screening/byork/verdict instead. When Super Light is retired, + * this endpoint will be deprecated; use the BYORK Light verdict API for new integrations. * * @param amlVerdictManualRequest (required) * @param idempotencyKey A unique identifier for the request. If the request is sent multiple @@ -1810,6 +1999,175 @@ private HttpRequest.Builder setAmlVerdictRequestBuilder( } return localVarRequestBuilder; } + /** + * Set BYORK Light timeouts Updates timeout values for BYORK wait-for-response (incoming and/or + * outgoing). At least one of incomingTimeoutSeconds or outgoingTimeoutSeconds is required. + * Values must be within the ranges returned in GET config (timeoutRangeIncoming for + * incomingTimeoutSeconds, timeoutRangeOutgoing for outgoingTimeoutSeconds). Requires BYORK + * Light to be enabled for the tenant (contact your CSM to enable). + * + * @param byorkSetTimeoutsRequest (required) + * @param idempotencyKey A unique identifier for the request. If the request is sent multiple + * times with the same idempotency key, the server will return the same response as the + * first request. The idempotency key is valid for 24 hours. (optional) + * @return CompletableFuture<ApiResponse<ByorkConfigResponse>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> setByorkTimeouts( + ByorkSetTimeoutsRequest byorkSetTimeoutsRequest, String idempotencyKey) + throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = + setByorkTimeoutsRequestBuilder(byorkSetTimeoutsRequest, idempotencyKey); + return memberVarHttpClient + .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString()) + .thenComposeAsync( + localVarResponse -> { + if (memberVarAsyncResponseInterceptor != null) { + memberVarAsyncResponseInterceptor.accept(localVarResponse); + } + if (localVarResponse.statusCode() / 100 != 2) { + return CompletableFuture.failedFuture( + getApiException("setByorkTimeouts", 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< + ByorkConfigResponse>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder setByorkTimeoutsRequestBuilder( + ByorkSetTimeoutsRequest byorkSetTimeoutsRequest, String idempotencyKey) + throws ApiException { + ValidationUtils.assertParamExists( + "setByorkTimeouts", "byorkSetTimeoutsRequest", byorkSetTimeoutsRequest); + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = "/screening/byork/config/timeouts"; + + localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath)); + + if (idempotencyKey != null) { + localVarRequestBuilder.header("Idempotency-Key", idempotencyKey.toString()); + } + localVarRequestBuilder.header("Content-Type", "application/json"); + localVarRequestBuilder.header("Accept", "application/json"); + + try { + byte[] localVarPostBody = + memberVarObjectMapper.writeValueAsBytes(byorkSetTimeoutsRequest); + localVarRequestBuilder.method( + "PUT", HttpRequest.BodyPublishers.ofByteArray(localVarPostBody)); + } catch (IOException e) { + throw new ApiException(e); + } + if (memberVarReadTimeout != null) { + localVarRequestBuilder.timeout(memberVarReadTimeout); + } + if (memberVarInterceptor != null) { + memberVarInterceptor.accept(localVarRequestBuilder); + } + return localVarRequestBuilder; + } + /** + * Set BYORK Light verdict Submit verdict (ACCEPT or REJECT) for a transaction in the BYORK + * Light flow. If the transaction is awaiting your decision, the verdict is applied immediately + * (response status COMPLETED). If processing has not yet reached that point, the verdict is + * stored and applied when it does (response status PRE_ACCEPTED). Requires BYORK Light to be + * enabled for the tenant. + * + * @param byorkVerdictRequest (required) + * @param idempotencyKey A unique identifier for the request. If the request is sent multiple + * times with the same idempotency key, the server will return the same response as the + * first request. The idempotency key is valid for 24 hours. (optional) + * @return CompletableFuture<ApiResponse<ByorkVerdictResponse>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> setByorkVerdict( + ByorkVerdictRequest byorkVerdictRequest, String idempotencyKey) throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = + setByorkVerdictRequestBuilder(byorkVerdictRequest, idempotencyKey); + return memberVarHttpClient + .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString()) + .thenComposeAsync( + localVarResponse -> { + if (memberVarAsyncResponseInterceptor != null) { + memberVarAsyncResponseInterceptor.accept(localVarResponse); + } + if (localVarResponse.statusCode() / 100 != 2) { + return CompletableFuture.failedFuture( + getApiException("setByorkVerdict", 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< + ByorkVerdictResponse>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder setByorkVerdictRequestBuilder( + ByorkVerdictRequest byorkVerdictRequest, String idempotencyKey) throws ApiException { + ValidationUtils.assertParamExists( + "setByorkVerdict", "byorkVerdictRequest", byorkVerdictRequest); + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = "/screening/byork/verdict"; + + localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath)); + + if (idempotencyKey != null) { + localVarRequestBuilder.header("Idempotency-Key", idempotencyKey.toString()); + } + localVarRequestBuilder.header("Content-Type", "application/json"); + localVarRequestBuilder.header("Accept", "application/json"); + + try { + byte[] localVarPostBody = memberVarObjectMapper.writeValueAsBytes(byorkVerdictRequest); + localVarRequestBuilder.method( + "POST", HttpRequest.BodyPublishers.ofByteArray(localVarPostBody)); + } catch (IOException e) { + throw new ApiException(e); + } + if (memberVarReadTimeout != null) { + localVarRequestBuilder.timeout(memberVarReadTimeout); + } + if (memberVarInterceptor != null) { + memberVarInterceptor.accept(localVarRequestBuilder); + } + return localVarRequestBuilder; + } /** * Update AML Configuration Updates bypass screening, inbound delay, or outbound delay * configurations for AML. diff --git a/src/main/java/com/fireblocks/sdk/api/EarnBetaApi.java b/src/main/java/com/fireblocks/sdk/api/EarnBetaApi.java new file mode 100644 index 00000000..c7980f3f --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/api/EarnBetaApi.java @@ -0,0 +1,687 @@ +/* + * 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.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fireblocks.sdk.ApiClient; +import com.fireblocks.sdk.ApiException; +import com.fireblocks.sdk.ApiResponse; +import com.fireblocks.sdk.Pair; +import com.fireblocks.sdk.ValidationUtils; +import com.fireblocks.sdk.model.CreateEarnActionRequest; +import com.fireblocks.sdk.model.CreateEarnActionResponse; +import com.fireblocks.sdk.model.GetActionResponse; +import com.fireblocks.sdk.model.GetActionsResponse; +import com.fireblocks.sdk.model.GetOpportunitiesResponse; +import com.fireblocks.sdk.model.GetPositionsResponse; +import com.fireblocks.sdk.model.GetProvidersResponse; +import java.io.IOException; +import java.io.InputStream; +import java.net.URI; +import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.time.Duration; +import java.util.ArrayList; +import java.util.List; +import java.util.StringJoiner; +import java.util.concurrent.CompletableFuture; +import java.util.function.Consumer; + +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class EarnBetaApi { + private final HttpClient memberVarHttpClient; + private final ObjectMapper memberVarObjectMapper; + private final String memberVarBaseUri; + private final Consumer memberVarInterceptor; + private final Duration memberVarReadTimeout; + private final Consumer> memberVarResponseInterceptor; + private final Consumer> memberVarAsyncResponseInterceptor; + + public EarnBetaApi() { + this(new ApiClient()); + } + + public EarnBetaApi(ApiClient apiClient) { + memberVarHttpClient = apiClient.getHttpClient(); + memberVarObjectMapper = apiClient.getObjectMapper(); + memberVarBaseUri = apiClient.getBaseUri(); + memberVarInterceptor = apiClient.getRequestInterceptor(); + memberVarReadTimeout = apiClient.getReadTimeout(); + memberVarResponseInterceptor = apiClient.getResponseInterceptor(); + memberVarAsyncResponseInterceptor = apiClient.getAsyncResponseInterceptor(); + } + + private ApiException getApiException(String operationId, HttpResponse response) { + String message = + formatExceptionMessage(operationId, response.statusCode(), response.body()); + return new ApiException( + response.statusCode(), message, response.headers(), response.body()); + } + + private String formatExceptionMessage(String operationId, int statusCode, String body) { + if (body == null || body.isEmpty()) { + body = "[no body]"; + } + return operationId + " call failed with: " + statusCode + " - " + body; + } + + /** + * Approve earn provider terms of service Approves the lending provider's terms of service + * for this workspace. When `isTermsApprovalRequired` is true on the provider (see + * list providers), call this once before creating or executing earn actions with that provider. + * After success, `GET /earn/providers` reflects `isTermsOfServiceApproved`. + * **Note:** This endpoint is currently in beta and might be subject to changes. + * + * @param providerId Stable protocol identifier for the earn provider (`MORPHO` or + * `AAVE`). (required) + * @param idempotencyKey A unique identifier for the request. If the request is sent multiple + * times with the same idempotency key, the server will return the same response as the + * first request. The idempotency key is valid for 24 hours. (optional) + * @return CompletableFuture<ApiResponse<Void>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> approveTermsOfService( + String providerId, String idempotencyKey) throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = + approveTermsOfServiceRequestBuilder(providerId, idempotencyKey); + return memberVarHttpClient + .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString()) + .thenComposeAsync( + localVarResponse -> { + if (memberVarAsyncResponseInterceptor != null) { + memberVarAsyncResponseInterceptor.accept(localVarResponse); + } + if (localVarResponse.statusCode() / 100 != 2) { + return CompletableFuture.failedFuture( + getApiException( + "approveTermsOfService", localVarResponse)); + } + return CompletableFuture.completedFuture( + new ApiResponse( + localVarResponse.statusCode(), + localVarResponse.headers().map(), + null)); + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder approveTermsOfServiceRequestBuilder( + String providerId, String idempotencyKey) throws ApiException { + ValidationUtils.assertParamExistsAndNotEmpty( + "approveTermsOfService", "providerId", providerId); + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = + "/earn/providers/{providerId}/approve_terms_of_service" + .replace("{providerId}", ApiClient.urlEncode(providerId.toString())); + + localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath)); + + if (idempotencyKey != null) { + localVarRequestBuilder.header("Idempotency-Key", idempotencyKey.toString()); + } + localVarRequestBuilder.header("Accept", "application/json"); + + localVarRequestBuilder.method("POST", HttpRequest.BodyPublishers.noBody()); + if (memberVarReadTimeout != null) { + localVarRequestBuilder.timeout(memberVarReadTimeout); + } + if (memberVarInterceptor != null) { + memberVarInterceptor.accept(localVarRequestBuilder); + } + return localVarRequestBuilder; + } + /** + * Create and execute a lending action (deposit or withdraw) Creates and runs a sequence of + * on-chain steps for either a deposit into or a withdrawal from an earn vault/market. Specify + * the operation with `action` in the request body (`DEPOSIT` or + * `WITHDRAW`). **Note:** This endpoint is currently in beta and might be subject to + * changes. + * + * @param createEarnActionRequest (required) + * @param idempotencyKey A unique identifier for the request. If the request is sent multiple + * times with the same idempotency key, the server will return the same response as the + * first request. The idempotency key is valid for 24 hours. (optional) + * @return CompletableFuture<ApiResponse<CreateEarnActionResponse>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> createEarnAction( + CreateEarnActionRequest createEarnActionRequest, String idempotencyKey) + throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = + createEarnActionRequestBuilder(createEarnActionRequest, idempotencyKey); + return memberVarHttpClient + .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString()) + .thenComposeAsync( + localVarResponse -> { + if (memberVarAsyncResponseInterceptor != null) { + memberVarAsyncResponseInterceptor.accept(localVarResponse); + } + if (localVarResponse.statusCode() / 100 != 2) { + return CompletableFuture.failedFuture( + getApiException("createEarnAction", 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< + CreateEarnActionResponse>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder createEarnActionRequestBuilder( + CreateEarnActionRequest createEarnActionRequest, String idempotencyKey) + throws ApiException { + ValidationUtils.assertParamExists( + "createEarnAction", "createEarnActionRequest", createEarnActionRequest); + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = "/earn/actions"; + + localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath)); + + if (idempotencyKey != null) { + localVarRequestBuilder.header("Idempotency-Key", idempotencyKey.toString()); + } + localVarRequestBuilder.header("Content-Type", "application/json"); + localVarRequestBuilder.header("Accept", "application/json"); + + try { + byte[] localVarPostBody = + memberVarObjectMapper.writeValueAsBytes(createEarnActionRequest); + localVarRequestBuilder.method( + "POST", HttpRequest.BodyPublishers.ofByteArray(localVarPostBody)); + } catch (IOException e) { + throw new ApiException(e); + } + if (memberVarReadTimeout != null) { + localVarRequestBuilder.timeout(memberVarReadTimeout); + } + if (memberVarInterceptor != null) { + memberVarInterceptor.accept(localVarRequestBuilder); + } + return localVarRequestBuilder; + } + /** + * Get a single earn lending action Returns one lending action by its action sequence id + * (tenant-scoped). **Note:** This endpoint is currently in beta and might be subject to + * changes. + * + * @param id Action sequence id (UUID). (required) + * @return CompletableFuture<ApiResponse<GetActionResponse>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> getEarnAction(String id) + throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = getEarnActionRequestBuilder(id); + 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("getEarnAction", 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< + GetActionResponse>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder getEarnActionRequestBuilder(String id) throws ApiException { + ValidationUtils.assertParamExistsAndNotEmpty("getEarnAction", "id", id); + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = + "/earn/actions/{id}".replace("{id}", ApiClient.urlEncode(id.toString())); + + localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath)); + + localVarRequestBuilder.header("Accept", "application/json"); + + localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody()); + if (memberVarReadTimeout != null) { + localVarRequestBuilder.timeout(memberVarReadTimeout); + } + if (memberVarInterceptor != null) { + memberVarInterceptor.accept(localVarRequestBuilder); + } + return localVarRequestBuilder; + } + /** + * List earn lending actions Returns a paginated list of lending actions (deposits and + * withdrawals) for the authenticated tenant. **Note:** This endpoint is currently in beta and + * might be subject to changes. + * + * @param pageCursor Cursor for the next or previous page of results. (optional) + * @param pageSize Number of items per page (default 100, max 100). (optional, default to 100) + * @param sortBy Field to sort results by. (optional) + * @param order Sort order (ASC or DESC). (optional, default to DESC) + * @return CompletableFuture<ApiResponse<GetActionsResponse>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> getEarnActions( + String pageCursor, Integer pageSize, String sortBy, String order) throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = + getEarnActionsRequestBuilder(pageCursor, pageSize, 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("getEarnActions", 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< + GetActionsResponse>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder getEarnActionsRequestBuilder( + String pageCursor, Integer pageSize, String sortBy, String order) throws ApiException { + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = "/earn/actions"; + + 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 = "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; + } + /** + * Get list of earn opportunities Get list of earn opportunities (vaults). **Note:** This + * endpoint is currently in beta and might be subject to changes. + * + * @param pageCursor Cursor for the next or previous page of results. (optional) + * @param pageSize Number of items per page. (optional, default to 100) + * @param sortBy Field to sort results by. (optional) + * @param order Sort order (ASC or DESC). (optional, default to DESC) + * @return CompletableFuture<ApiResponse<GetOpportunitiesResponse>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> getEarnOpportunities( + String pageCursor, Integer pageSize, String sortBy, String order) throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = + getEarnOpportunitiesRequestBuilder(pageCursor, pageSize, 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( + "getEarnOpportunities", 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< + GetOpportunitiesResponse>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder getEarnOpportunitiesRequestBuilder( + String pageCursor, Integer pageSize, String sortBy, String order) throws ApiException { + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = "/earn/opportunities"; + + 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 = "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; + } + /** + * Get list of earn positions Get list of earn positions for accounts tracked for this + * workspace. Optional query parameters filter by chain, provider, and pagination. **Note:** + * This endpoint is currently in beta and might be subject to changes. + * + * @param chainId (optional) + * @param providerId (optional) + * @param pageCursor Cursor for the next or previous page of results. (optional) + * @param pageSize Number of items per page. (optional, default to 100) + * @param sortBy Field to sort results by. (optional) + * @param order Sort order (ASC or DESC). (optional, default to DESC) + * @return CompletableFuture<ApiResponse<GetPositionsResponse>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> getEarnPositions( + Integer chainId, + String providerId, + String pageCursor, + Integer pageSize, + String sortBy, + String order) + throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = + getEarnPositionsRequestBuilder( + chainId, providerId, pageCursor, pageSize, 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("getEarnPositions", 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< + GetPositionsResponse>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder getEarnPositionsRequestBuilder( + Integer chainId, + String providerId, + String pageCursor, + Integer pageSize, + String sortBy, + String order) + throws ApiException { + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = "/earn/positions"; + + List localVarQueryParams = new ArrayList<>(); + StringJoiner localVarQueryStringJoiner = new StringJoiner("&"); + String localVarQueryParameterBaseName; + localVarQueryParameterBaseName = "chainId"; + localVarQueryParams.addAll(ApiClient.parameterToPairs("chainId", chainId)); + localVarQueryParameterBaseName = "providerId"; + localVarQueryParams.addAll(ApiClient.parameterToPairs("providerId", providerId)); + localVarQueryParameterBaseName = "pageCursor"; + localVarQueryParams.addAll(ApiClient.parameterToPairs("pageCursor", pageCursor)); + localVarQueryParameterBaseName = "pageSize"; + localVarQueryParams.addAll(ApiClient.parameterToPairs("pageSize", pageSize)); + 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; + } + /** + * Get list of earn providers Get list of earn providers. **Note:** This endpoint is currently + * in beta and might be subject to changes. + * + * @param pageCursor Cursor for the next or previous page of results. (optional) + * @param pageSize Number of items per page. (optional, default to 100) + * @param sortBy Field to sort results by. (optional) + * @param order Sort order (ASC or DESC). (optional, default to DESC) + * @return CompletableFuture<ApiResponse<GetProvidersResponse>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> getEarnProviders( + String pageCursor, Integer pageSize, String sortBy, String order) throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = + getEarnProvidersRequestBuilder(pageCursor, pageSize, 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("getEarnProviders", 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< + GetProvidersResponse>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder getEarnProvidersRequestBuilder( + String pageCursor, Integer pageSize, String sortBy, String order) throws ApiException { + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = "/earn/providers"; + + 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 = "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/api/TradingBetaApi.java b/src/main/java/com/fireblocks/sdk/api/TradingBetaApi.java index 1c29ced6..e741f8bc 100644 --- a/src/main/java/com/fireblocks/sdk/api/TradingBetaApi.java +++ b/src/main/java/com/fireblocks/sdk/api/TradingBetaApi.java @@ -27,7 +27,7 @@ import com.fireblocks.sdk.model.OrderStatus; import com.fireblocks.sdk.model.ProvidersListResponse; import com.fireblocks.sdk.model.QuotesResponse; -import com.fireblocks.sdk.model.TradingProviderDetails; +import com.fireblocks.sdk.model.TradingProvider; import java.io.IOException; import java.io.InputStream; import java.net.URI; @@ -460,21 +460,20 @@ private HttpRequest.Builder getOrdersRequestBuilder( return localVarRequestBuilder; } /** - * Get trading provider by ID Retrieve detailed information about a specific provider including - * its full manifest with order/quote requirements. **Note:** These endpoints are currently in - * beta and might be subject to changes. If you want to participate and learn more about the - * Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email - * to CSM@fireblocks.com. **Endpoint Permission:** Owner, Admin, Non-Signing Admin, Signer, - * Approver, Editor, Viewer. For detailed information about error codes and troubleshooting, - * please refer to our [API Error Codes + * Get trading provider by ID Retrieve a single provider by ID. **Note:** These endpoints are + * currently in beta and might be subject to changes. If you want to participate and learn more + * about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send + * an email to CSM@fireblocks.com. **Endpoint Permission:** Owner, Admin, Non-Signing Admin, + * Signer, Approver, Editor, Viewer. For detailed information about error codes and + * troubleshooting, please refer to our [API Error Codes * documentation](https://developers.fireblocks.com/reference/api-error-codes). * * @param providerId The unique identifier of the provider. (required) - * @return CompletableFuture<ApiResponse<TradingProviderDetails>> + * @return CompletableFuture<ApiResponse<TradingProvider>> * @throws ApiException if fails to make API call */ - public CompletableFuture> getTradingProviderById( - String providerId) throws ApiException { + public CompletableFuture> getTradingProviderById(String providerId) + throws ApiException { try { HttpRequest.Builder localVarRequestBuilder = getTradingProviderByIdRequestBuilder(providerId); @@ -493,7 +492,7 @@ public CompletableFuture> getTradingProvider try { String responseBody = localVarResponse.body(); return CompletableFuture.completedFuture( - new ApiResponse( + new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), responseBody == null || responseBody.isBlank() @@ -501,7 +500,7 @@ public CompletableFuture> getTradingProvider : memberVarObjectMapper.readValue( responseBody, new TypeReference< - TradingProviderDetails>() {}))); + TradingProvider>() {}))); } catch (IOException e) { return CompletableFuture.failedFuture(new ApiException(e)); } diff --git a/src/main/java/com/fireblocks/sdk/api/UtxoManagementBetaApi.java b/src/main/java/com/fireblocks/sdk/api/UtxoManagementBetaApi.java new file mode 100644 index 00000000..b899524a --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/api/UtxoManagementBetaApi.java @@ -0,0 +1,358 @@ +/* + * 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.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fireblocks.sdk.ApiClient; +import com.fireblocks.sdk.ApiException; +import com.fireblocks.sdk.ApiResponse; +import com.fireblocks.sdk.Pair; +import com.fireblocks.sdk.ValidationUtils; +import com.fireblocks.sdk.model.AttachDetachUtxoLabelsRequest; +import com.fireblocks.sdk.model.AttachDetachUtxoLabelsResponse; +import com.fireblocks.sdk.model.ListUtxosResponse; +import java.io.IOException; +import java.io.InputStream; +import java.net.URI; +import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.time.Duration; +import java.util.ArrayList; +import java.util.List; +import java.util.StringJoiner; +import java.util.concurrent.CompletableFuture; +import java.util.function.Consumer; + +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class UtxoManagementBetaApi { + private final HttpClient memberVarHttpClient; + private final ObjectMapper memberVarObjectMapper; + private final String memberVarBaseUri; + private final Consumer memberVarInterceptor; + private final Duration memberVarReadTimeout; + private final Consumer> memberVarResponseInterceptor; + private final Consumer> memberVarAsyncResponseInterceptor; + + public UtxoManagementBetaApi() { + this(new ApiClient()); + } + + public UtxoManagementBetaApi(ApiClient apiClient) { + memberVarHttpClient = apiClient.getHttpClient(); + memberVarObjectMapper = apiClient.getObjectMapper(); + memberVarBaseUri = apiClient.getBaseUri(); + memberVarInterceptor = apiClient.getRequestInterceptor(); + memberVarReadTimeout = apiClient.getReadTimeout(); + memberVarResponseInterceptor = apiClient.getResponseInterceptor(); + memberVarAsyncResponseInterceptor = apiClient.getAsyncResponseInterceptor(); + } + + private ApiException getApiException(String operationId, HttpResponse response) { + String message = + formatExceptionMessage(operationId, response.statusCode(), response.body()); + return new ApiException( + response.statusCode(), message, response.headers(), response.body()); + } + + 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 unspent outputs (UTXOs) Returns a paginated list of unspent transaction outputs (UTXOs) + * for a UTXO-based asset in a vault account, with optional filters for labels, statuses, + * amounts, and more. **Note:** These endpoints are currently in beta and might be subject to + * changes. </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, + * Viewer. + * + * @param vaultAccountId The ID of the vault account (required) + * @param assetId The ID of the asset (required) + * @param pageCursor Cursor for the next page of results (optional) + * @param pageSize Number of results per page (max 250, default 50) (optional, default to 50) + * @param sort Field to sort by (optional) + * @param order Sort order (optional) + * @param includeAllLabels Only return UTXOs that have ALL of these labels (AND logic). + * (optional + * @param includeAnyLabels Return UTXOs that have ANY of these labels (OR logic). (optional + * @param excludeAnyLabels Exclude UTXOs that have ANY of these labels. (optional + * @param includeStatuses Filter by UTXO statuses to include. (optional + * @param address Filter by address (optional) + * @param minAmount Minimum amount filter (optional) + * @param maxAmount Maximum amount filter (optional) + * @param useChange Include change outputs (optional) + * @param useCoinbase Include coinbase outputs (optional) + * @return CompletableFuture<ApiResponse<ListUtxosResponse>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> getUtxos( + String vaultAccountId, + String assetId, + String pageCursor, + Integer pageSize, + String sort, + String order, + List includeAllLabels, + List includeAnyLabels, + List excludeAnyLabels, + List includeStatuses, + String address, + String minAmount, + String maxAmount, + Boolean useChange, + Boolean useCoinbase) + throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = + getUtxosRequestBuilder( + vaultAccountId, + assetId, + pageCursor, + pageSize, + sort, + order, + includeAllLabels, + includeAnyLabels, + excludeAnyLabels, + includeStatuses, + address, + minAmount, + maxAmount, + useChange, + useCoinbase); + 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("getUtxos", 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< + ListUtxosResponse>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder getUtxosRequestBuilder( + String vaultAccountId, + String assetId, + String pageCursor, + Integer pageSize, + String sort, + String order, + List includeAllLabels, + List includeAnyLabels, + List excludeAnyLabels, + List includeStatuses, + String address, + String minAmount, + String maxAmount, + Boolean useChange, + Boolean useCoinbase) + throws ApiException { + ValidationUtils.assertParamExistsAndNotEmpty("getUtxos", "vaultAccountId", vaultAccountId); + ValidationUtils.assertParamExistsAndNotEmpty("getUtxos", "assetId", assetId); + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = + "/utxo_management/{vaultAccountId}/{assetId}/unspent_outputs" + .replace("{vaultAccountId}", ApiClient.urlEncode(vaultAccountId.toString())) + .replace("{assetId}", ApiClient.urlEncode(assetId.toString())); + + 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 = "sort"; + localVarQueryParams.addAll(ApiClient.parameterToPairs("sort", sort)); + localVarQueryParameterBaseName = "order"; + localVarQueryParams.addAll(ApiClient.parameterToPairs("order", order)); + localVarQueryParameterBaseName = "includeAllLabels"; + localVarQueryParams.addAll( + ApiClient.parameterToPairs("multi", "includeAllLabels", includeAllLabels)); + localVarQueryParameterBaseName = "includeAnyLabels"; + localVarQueryParams.addAll( + ApiClient.parameterToPairs("multi", "includeAnyLabels", includeAnyLabels)); + localVarQueryParameterBaseName = "excludeAnyLabels"; + localVarQueryParams.addAll( + ApiClient.parameterToPairs("multi", "excludeAnyLabels", excludeAnyLabels)); + localVarQueryParameterBaseName = "includeStatuses"; + localVarQueryParams.addAll( + ApiClient.parameterToPairs("multi", "includeStatuses", includeStatuses)); + localVarQueryParameterBaseName = "address"; + localVarQueryParams.addAll(ApiClient.parameterToPairs("address", address)); + localVarQueryParameterBaseName = "minAmount"; + localVarQueryParams.addAll(ApiClient.parameterToPairs("minAmount", minAmount)); + localVarQueryParameterBaseName = "maxAmount"; + localVarQueryParams.addAll(ApiClient.parameterToPairs("maxAmount", maxAmount)); + localVarQueryParameterBaseName = "useChange"; + localVarQueryParams.addAll(ApiClient.parameterToPairs("useChange", useChange)); + localVarQueryParameterBaseName = "useCoinbase"; + localVarQueryParams.addAll(ApiClient.parameterToPairs("useCoinbase", useCoinbase)); + + 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; + } + /** + * Attach or detach labels to/from UTXOs Attach or detach labels to/from UTXOs in a vault + * account. Labels can be used for organizing and filtering UTXOs. Labels are applied additively + * — `labelsToAttach` adds to the existing label set and `labelsToDetach` + * removes from it. Neither operation replaces the full set. **Note:** These endpoints are + * currently in beta and might be subject to changes. </br>Endpoint Permission: Admin, + * Non-Signing Admin, Signer, Approver, Editor. + * + * @param attachDetachUtxoLabelsRequest (required) + * @param vaultAccountId The ID of the vault account (required) + * @param assetId The ID of the asset (required) + * @param idempotencyKey A unique identifier for the request. If the request is sent multiple + * times with the same idempotency key, the server will return the same response as the + * first request. The idempotency key is valid for 24 hours. (optional) + * @return CompletableFuture<ApiResponse<AttachDetachUtxoLabelsResponse>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> updateUtxoLabels( + AttachDetachUtxoLabelsRequest attachDetachUtxoLabelsRequest, + String vaultAccountId, + String assetId, + String idempotencyKey) + throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = + updateUtxoLabelsRequestBuilder( + attachDetachUtxoLabelsRequest, vaultAccountId, assetId, idempotencyKey); + return memberVarHttpClient + .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString()) + .thenComposeAsync( + localVarResponse -> { + if (memberVarAsyncResponseInterceptor != null) { + memberVarAsyncResponseInterceptor.accept(localVarResponse); + } + if (localVarResponse.statusCode() / 100 != 2) { + return CompletableFuture.failedFuture( + getApiException("updateUtxoLabels", 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< + AttachDetachUtxoLabelsResponse>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder updateUtxoLabelsRequestBuilder( + AttachDetachUtxoLabelsRequest attachDetachUtxoLabelsRequest, + String vaultAccountId, + String assetId, + String idempotencyKey) + throws ApiException { + ValidationUtils.assertParamExists( + "updateUtxoLabels", "attachDetachUtxoLabelsRequest", attachDetachUtxoLabelsRequest); + ValidationUtils.assertParamExistsAndNotEmpty( + "updateUtxoLabels", "vaultAccountId", vaultAccountId); + ValidationUtils.assertParamExistsAndNotEmpty("updateUtxoLabels", "assetId", assetId); + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = + "/utxo_management/{vaultAccountId}/{assetId}/labels" + .replace("{vaultAccountId}", ApiClient.urlEncode(vaultAccountId.toString())) + .replace("{assetId}", ApiClient.urlEncode(assetId.toString())); + + localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath)); + + if (idempotencyKey != null) { + localVarRequestBuilder.header("Idempotency-Key", idempotencyKey.toString()); + } + localVarRequestBuilder.header("Content-Type", "application/json"); + localVarRequestBuilder.header("Accept", "application/json"); + + try { + byte[] localVarPostBody = + memberVarObjectMapper.writeValueAsBytes(attachDetachUtxoLabelsRequest); + localVarRequestBuilder.method( + "PATCH", HttpRequest.BodyPublishers.ofByteArray(localVarPostBody)); + } catch (IOException e) { + throw new ApiException(e); + } + if (memberVarReadTimeout != null) { + localVarRequestBuilder.timeout(memberVarReadTimeout); + } + if (memberVarInterceptor != null) { + memberVarInterceptor.accept(localVarRequestBuilder); + } + return localVarRequestBuilder; + } +} diff --git a/src/main/java/com/fireblocks/sdk/api/WebhooksV2Api.java b/src/main/java/com/fireblocks/sdk/api/WebhooksV2Api.java index e131e9ee..fb843b1e 100644 --- a/src/main/java/com/fireblocks/sdk/api/WebhooksV2Api.java +++ b/src/main/java/com/fireblocks/sdk/api/WebhooksV2Api.java @@ -25,6 +25,8 @@ import com.fireblocks.sdk.model.NotificationPaginatedResponse; import com.fireblocks.sdk.model.NotificationStatus; import com.fireblocks.sdk.model.NotificationWithData; +import com.fireblocks.sdk.model.ResendByQueryRequest; +import com.fireblocks.sdk.model.ResendByQueryResponse; import com.fireblocks.sdk.model.ResendFailedNotificationsJobStatusResponse; import com.fireblocks.sdk.model.ResendFailedNotificationsRequest; import com.fireblocks.sdk.model.ResendFailedNotificationsResponse; @@ -635,6 +637,80 @@ private HttpRequest.Builder getNotificationsRequestBuilder( } return localVarRequestBuilder; } + /** + * Get resend by query job status Get the status of a resend by query job + * + * @param webhookId The ID of the webhook (required) + * @param jobId The ID of the resend job (required) + * @return + * CompletableFuture<ApiResponse<ResendFailedNotificationsJobStatusResponse>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> + getResendByQueryJobStatus(String webhookId, String jobId) throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = + getResendByQueryJobStatusRequestBuilder(webhookId, jobId); + 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( + "getResendByQueryJobStatus", localVarResponse)); + } + try { + String responseBody = localVarResponse.body(); + return CompletableFuture.completedFuture( + new ApiResponse< + ResendFailedNotificationsJobStatusResponse>( + localVarResponse.statusCode(), + localVarResponse.headers().map(), + responseBody == null || responseBody.isBlank() + ? null + : memberVarObjectMapper.readValue( + responseBody, + new TypeReference< + ResendFailedNotificationsJobStatusResponse>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder getResendByQueryJobStatusRequestBuilder( + String webhookId, String jobId) throws ApiException { + ValidationUtils.assertParamExistsAndNotEmpty( + "getResendByQueryJobStatus", "webhookId", webhookId); + ValidationUtils.assertParamExistsAndNotEmpty("getResendByQueryJobStatus", "jobId", jobId); + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = + "/webhooks/{webhookId}/notifications/resend_by_query/jobs/{jobId}" + .replace("{webhookId}", ApiClient.urlEncode(webhookId.toString())) + .replace("{jobId}", ApiClient.urlEncode(jobId.toString())); + + localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath)); + + localVarRequestBuilder.header("Accept", "application/json"); + + localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody()); + if (memberVarReadTimeout != null) { + localVarRequestBuilder.timeout(memberVarReadTimeout); + } + if (memberVarInterceptor != null) { + memberVarInterceptor.accept(localVarRequestBuilder); + } + return localVarRequestBuilder; + } /** * Get resend job status Get the status of a resend job * @@ -1027,6 +1103,97 @@ private HttpRequest.Builder resendNotificationByIdRequestBuilder( } return localVarRequestBuilder; } + /** + * Resend notifications by query Resend notifications matching the given query filters + * (statuses, events, time range, resource ID) Endpoint Permission: Owner, Admin, Non-Signing + * Admin, Editor, Signer. + * + * @param resendByQueryRequest (required) + * @param webhookId The ID of the webhook (required) + * @param idempotencyKey A unique identifier for the request. If the request is sent multiple + * times with the same idempotency key, the server will return the same response as the + * first request. The idempotency key is valid for 24 hours. (optional) + * @return CompletableFuture<ApiResponse<ResendByQueryResponse>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> resendNotificationsByQuery( + ResendByQueryRequest resendByQueryRequest, String webhookId, String idempotencyKey) + throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = + resendNotificationsByQueryRequestBuilder( + resendByQueryRequest, webhookId, idempotencyKey); + return memberVarHttpClient + .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString()) + .thenComposeAsync( + localVarResponse -> { + if (memberVarAsyncResponseInterceptor != null) { + memberVarAsyncResponseInterceptor.accept(localVarResponse); + } + if (localVarResponse.statusCode() / 100 != 2) { + return CompletableFuture.failedFuture( + getApiException( + "resendNotificationsByQuery", + 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< + ResendByQueryResponse>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder resendNotificationsByQueryRequestBuilder( + ResendByQueryRequest resendByQueryRequest, String webhookId, String idempotencyKey) + throws ApiException { + ValidationUtils.assertParamExists( + "resendNotificationsByQuery", "resendByQueryRequest", resendByQueryRequest); + ValidationUtils.assertParamExistsAndNotEmpty( + "resendNotificationsByQuery", "webhookId", webhookId); + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = + "/webhooks/{webhookId}/notifications/resend_by_query" + .replace("{webhookId}", ApiClient.urlEncode(webhookId.toString())); + + localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath)); + + if (idempotencyKey != null) { + localVarRequestBuilder.header("Idempotency-Key", idempotencyKey.toString()); + } + localVarRequestBuilder.header("Content-Type", "application/json"); + localVarRequestBuilder.header("Accept", "application/json"); + + try { + byte[] localVarPostBody = memberVarObjectMapper.writeValueAsBytes(resendByQueryRequest); + localVarRequestBuilder.method( + "POST", HttpRequest.BodyPublishers.ofByteArray(localVarPostBody)); + } catch (IOException e) { + throw new ApiException(e); + } + if (memberVarReadTimeout != null) { + localVarRequestBuilder.timeout(memberVarReadTimeout); + } + if (memberVarInterceptor != null) { + memberVarInterceptor.accept(localVarRequestBuilder); + } + return localVarRequestBuilder; + } /** * Resend notifications by resource Id Resend notifications by resource Id Endpoint Permission: * Owner, Admin, Non-Signing Admin, Editor, Signer. diff --git a/src/main/java/com/fireblocks/sdk/model/AccountBasedAccessProvider.java b/src/main/java/com/fireblocks/sdk/model/AccountBasedAccessProvider.java index 276b8110..9c1aecbb 100644 --- a/src/main/java/com/fireblocks/sdk/model/AccountBasedAccessProvider.java +++ b/src/main/java/com/fireblocks/sdk/model/AccountBasedAccessProvider.java @@ -23,7 +23,10 @@ import java.util.Objects; import java.util.StringJoiner; -/** AccountBasedAccessProvider */ +/** + * Provider integrated via Fireblocks connected accounts (`accountBased` is + * `true`). + */ @JsonPropertyOrder({ AccountBasedAccessProvider.JSON_PROPERTY_ID, AccountBasedAccessProvider.JSON_PROPERTY_NAME, @@ -200,7 +203,7 @@ public AccountBasedAccessProvider connected(@jakarta.annotation.Nonnull Boolean } /** - * Whether the provider is currently connected + * Whether the provider is currently connected. * * @return connected */ diff --git a/src/main/java/com/fireblocks/sdk/model/AccountBasedAccessProviderInfo.java b/src/main/java/com/fireblocks/sdk/model/AccountBasedAccessProviderInfo.java index 6fc0a009..22de7062 100644 --- a/src/main/java/com/fireblocks/sdk/model/AccountBasedAccessProviderInfo.java +++ b/src/main/java/com/fireblocks/sdk/model/AccountBasedAccessProviderInfo.java @@ -55,7 +55,7 @@ public AccountBasedAccessProviderInfo connected(@jakarta.annotation.Nonnull Bool } /** - * Whether the provider is currently connected + * Whether the provider is currently connected. * * @return connected */ diff --git a/src/main/java/com/fireblocks/sdk/model/AccountBasedProviderDetails.java b/src/main/java/com/fireblocks/sdk/model/AccountBasedProviderDetails.java deleted file mode 100644 index 0b8f2fec..00000000 --- a/src/main/java/com/fireblocks/sdk/model/AccountBasedProviderDetails.java +++ /dev/null @@ -1,412 +0,0 @@ -/* - * 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; - -/** AccountBasedProviderDetails */ -@JsonPropertyOrder({ - AccountBasedProviderDetails.JSON_PROPERTY_ID, - AccountBasedProviderDetails.JSON_PROPERTY_NAME, - AccountBasedProviderDetails.JSON_PROPERTY_LOGO, - AccountBasedProviderDetails.JSON_PROPERTY_ACCOUNT_BASED, - AccountBasedProviderDetails.JSON_PROPERTY_MANIFEST, - AccountBasedProviderDetails.JSON_PROPERTY_CONNECTED, - AccountBasedProviderDetails.JSON_PROPERTY_ACCOUNTS -}) -@jakarta.annotation.Generated( - value = "org.openapitools.codegen.languages.JavaClientCodegen", - comments = "Generator version: 7.14.0") -public class AccountBasedProviderDetails { - public static final String JSON_PROPERTY_ID = "id"; - @jakarta.annotation.Nonnull private String id; - - public static final String JSON_PROPERTY_NAME = "name"; - @jakarta.annotation.Nonnull private String name; - - public static final String JSON_PROPERTY_LOGO = "logo"; - @jakarta.annotation.Nullable private String logo; - - public static final String JSON_PROPERTY_ACCOUNT_BASED = "accountBased"; - @jakarta.annotation.Nonnull private Boolean accountBased; - - public static final String JSON_PROPERTY_MANIFEST = "manifest"; - @jakarta.annotation.Nonnull private Manifest manifest; - - public static final String JSON_PROPERTY_CONNECTED = "connected"; - @jakarta.annotation.Nonnull private Boolean connected; - - public static final String JSON_PROPERTY_ACCOUNTS = "accounts"; - @jakarta.annotation.Nonnull private List accounts; - - public AccountBasedProviderDetails() {} - - @JsonCreator - public AccountBasedProviderDetails( - @JsonProperty(value = JSON_PROPERTY_ID, required = true) String id, - @JsonProperty(value = JSON_PROPERTY_NAME, required = true) String name, - @JsonProperty(value = JSON_PROPERTY_ACCOUNT_BASED, required = true) - Boolean accountBased, - @JsonProperty(value = JSON_PROPERTY_MANIFEST, required = true) Manifest manifest, - @JsonProperty(value = JSON_PROPERTY_CONNECTED, required = true) Boolean connected, - @JsonProperty(value = JSON_PROPERTY_ACCOUNTS, required = true) - List accounts) { - this.id = id; - this.name = name; - this.accountBased = accountBased; - this.manifest = manifest; - this.connected = connected; - this.accounts = accounts; - } - - public AccountBasedProviderDetails id(@jakarta.annotation.Nonnull String id) { - this.id = id; - return this; - } - - /** - * Unique identifier for the provider - * - * @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 AccountBasedProviderDetails name(@jakarta.annotation.Nonnull String name) { - this.name = name; - return this; - } - - /** - * Display name of the provider - * - * @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 AccountBasedProviderDetails logo(@jakarta.annotation.Nullable String logo) { - this.logo = logo; - return this; - } - - /** - * URL to the logo image of the provider - * - * @return logo - */ - @jakarta.annotation.Nullable - @JsonProperty(JSON_PROPERTY_LOGO) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public String getLogo() { - return logo; - } - - @JsonProperty(JSON_PROPERTY_LOGO) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setLogo(@jakarta.annotation.Nullable String logo) { - this.logo = logo; - } - - public AccountBasedProviderDetails accountBased( - @jakarta.annotation.Nonnull Boolean accountBased) { - this.accountBased = accountBased; - return this; - } - - /** - * Indicates whether the provider access model is through accounts or directly - * - * @return accountBased - */ - @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_ACCOUNT_BASED) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public Boolean getAccountBased() { - return accountBased; - } - - @JsonProperty(JSON_PROPERTY_ACCOUNT_BASED) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setAccountBased(@jakarta.annotation.Nonnull Boolean accountBased) { - this.accountBased = accountBased; - } - - public AccountBasedProviderDetails manifest(@jakarta.annotation.Nonnull Manifest manifest) { - this.manifest = manifest; - return this; - } - - /** - * Get manifest - * - * @return manifest - */ - @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_MANIFEST) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public Manifest getManifest() { - return manifest; - } - - @JsonProperty(JSON_PROPERTY_MANIFEST) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setManifest(@jakarta.annotation.Nonnull Manifest manifest) { - this.manifest = manifest; - } - - public AccountBasedProviderDetails connected(@jakarta.annotation.Nonnull Boolean connected) { - this.connected = connected; - return this; - } - - /** - * Whether the provider is currently connected - * - * @return connected - */ - @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_CONNECTED) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public Boolean getConnected() { - return connected; - } - - @JsonProperty(JSON_PROPERTY_CONNECTED) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setConnected(@jakarta.annotation.Nonnull Boolean connected) { - this.connected = connected; - } - - public AccountBasedProviderDetails accounts( - @jakarta.annotation.Nonnull List accounts) { - this.accounts = accounts; - return this; - } - - public AccountBasedProviderDetails addAccountsItem(AccountBase accountsItem) { - if (this.accounts == null) { - this.accounts = new ArrayList<>(); - } - this.accounts.add(accountsItem); - return this; - } - - /** - * Get accounts - * - * @return accounts - */ - @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_ACCOUNTS) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public List getAccounts() { - return accounts; - } - - @JsonProperty(JSON_PROPERTY_ACCOUNTS) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setAccounts(@jakarta.annotation.Nonnull List accounts) { - this.accounts = accounts; - } - - /** Return true if this AccountBasedProviderDetails object is equal to o. */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - AccountBasedProviderDetails accountBasedProviderDetails = (AccountBasedProviderDetails) o; - return Objects.equals(this.id, accountBasedProviderDetails.id) - && Objects.equals(this.name, accountBasedProviderDetails.name) - && Objects.equals(this.logo, accountBasedProviderDetails.logo) - && Objects.equals(this.accountBased, accountBasedProviderDetails.accountBased) - && Objects.equals(this.manifest, accountBasedProviderDetails.manifest) - && Objects.equals(this.connected, accountBasedProviderDetails.connected) - && Objects.equals(this.accounts, accountBasedProviderDetails.accounts); - } - - @Override - public int hashCode() { - return Objects.hash(id, name, logo, accountBased, manifest, connected, accounts); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class AccountBasedProviderDetails {\n"); - sb.append(" id: ").append(toIndentedString(id)).append("\n"); - sb.append(" name: ").append(toIndentedString(name)).append("\n"); - sb.append(" logo: ").append(toIndentedString(logo)).append("\n"); - sb.append(" accountBased: ").append(toIndentedString(accountBased)).append("\n"); - sb.append(" manifest: ").append(toIndentedString(manifest)).append("\n"); - sb.append(" connected: ").append(toIndentedString(connected)).append("\n"); - sb.append(" accounts: ").append(toIndentedString(accounts)).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 `logo` to the URL query string - if (getLogo() != null) { - joiner.add( - String.format( - "%slogo%s=%s", - prefix, - suffix, - ApiClient.urlEncode(ApiClient.valueToString(getLogo())))); - } - - // add `accountBased` to the URL query string - if (getAccountBased() != null) { - joiner.add( - String.format( - "%saccountBased%s=%s", - prefix, - suffix, - ApiClient.urlEncode(ApiClient.valueToString(getAccountBased())))); - } - - // add `manifest` to the URL query string - if (getManifest() != null) { - joiner.add(getManifest().toUrlQueryString(prefix + "manifest" + suffix)); - } - - // add `connected` to the URL query string - if (getConnected() != null) { - joiner.add( - String.format( - "%sconnected%s=%s", - prefix, - suffix, - ApiClient.urlEncode(ApiClient.valueToString(getConnected())))); - } - - // add `accounts` to the URL query string - if (getAccounts() != null) { - for (int i = 0; i < getAccounts().size(); i++) { - if (getAccounts().get(i) != null) { - joiner.add( - getAccounts() - .get(i) - .toUrlQueryString( - String.format( - "%saccounts%s%s", - prefix, - suffix, - "".equals(suffix) - ? "" - : String.format( - "%s%d%s", - containerPrefix, - i, - containerSuffix)))); - } - } - } - - return joiner.toString(); - } -} diff --git a/src/main/java/com/fireblocks/sdk/model/ActionRecord.java b/src/main/java/com/fireblocks/sdk/model/ActionRecord.java new file mode 100644 index 00000000..9bfcdceb --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/ActionRecord.java @@ -0,0 +1,429 @@ +/* + * 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; + +/** One row in the lending action execution sequence. */ +@JsonPropertyOrder({ + ActionRecord.JSON_PROPERTY_ACTION_TYPE, + ActionRecord.JSON_PROPERTY_STATUS, + ActionRecord.JSON_PROPERTY_TX_ID, + ActionRecord.JSON_PROPERTY_TX_HASH, + ActionRecord.JSON_PROPERTY_ERROR_MESSAGE, + ActionRecord.JSON_PROPERTY_UPDATED_AT +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class ActionRecord { + /** Kind of step in the lending sequence. */ + public enum ActionTypeEnum { + APPROVE(String.valueOf("APPROVE")), + + DEPOSIT(String.valueOf("DEPOSIT")), + + WITHDRAW(String.valueOf("WITHDRAW")); + + private String value; + + ActionTypeEnum(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static ActionTypeEnum fromValue(String value) { + for (ActionTypeEnum b : ActionTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + } + + public static final String JSON_PROPERTY_ACTION_TYPE = "actionType"; + @jakarta.annotation.Nonnull private ActionTypeEnum actionType; + + /** Step lifecycle status. */ + public enum StatusEnum { + NOT_STARTED(String.valueOf("NOT_STARTED")), + + PROCESSING(String.valueOf("PROCESSING")), + + PENDING_SIGNATURE(String.valueOf("PENDING_SIGNATURE")), + + BROADCASTING(String.valueOf("BROADCASTING")), + + CONFIRMING(String.valueOf("CONFIRMING")), + + COMPLETED(String.valueOf("COMPLETED")), + + FAILED(String.valueOf("FAILED")), + + CANCELED(String.valueOf("CANCELED")); + + private String value; + + StatusEnum(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static StatusEnum fromValue(String value) { + for (StatusEnum b : StatusEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + } + + public static final String JSON_PROPERTY_STATUS = "status"; + @jakarta.annotation.Nonnull private StatusEnum status; + + public static final String JSON_PROPERTY_TX_ID = "txId"; + @jakarta.annotation.Nullable private String txId; + + public static final String JSON_PROPERTY_TX_HASH = "txHash"; + @jakarta.annotation.Nullable private String txHash; + + public static final String JSON_PROPERTY_ERROR_MESSAGE = "errorMessage"; + @jakarta.annotation.Nullable private String errorMessage; + + public static final String JSON_PROPERTY_UPDATED_AT = "updatedAt"; + @jakarta.annotation.Nonnull private String updatedAt; + + public ActionRecord() {} + + @JsonCreator + public ActionRecord( + @JsonProperty(value = JSON_PROPERTY_ACTION_TYPE, required = true) + ActionTypeEnum actionType, + @JsonProperty(value = JSON_PROPERTY_STATUS, required = true) StatusEnum status, + @JsonProperty(value = JSON_PROPERTY_UPDATED_AT, required = true) String updatedAt) { + this.actionType = actionType; + this.status = status; + this.updatedAt = updatedAt; + } + + public ActionRecord actionType(@jakarta.annotation.Nonnull ActionTypeEnum actionType) { + this.actionType = actionType; + return this; + } + + /** + * Kind of step in the lending sequence. + * + * @return actionType + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_ACTION_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public ActionTypeEnum getActionType() { + return actionType; + } + + @JsonProperty(JSON_PROPERTY_ACTION_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setActionType(@jakarta.annotation.Nonnull ActionTypeEnum actionType) { + this.actionType = actionType; + } + + public ActionRecord status(@jakarta.annotation.Nonnull StatusEnum status) { + this.status = status; + return this; + } + + /** + * Step lifecycle status. + * + * @return status + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_STATUS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public StatusEnum getStatus() { + return status; + } + + @JsonProperty(JSON_PROPERTY_STATUS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setStatus(@jakarta.annotation.Nonnull StatusEnum status) { + this.status = status; + } + + public ActionRecord txId(@jakarta.annotation.Nullable String txId) { + this.txId = txId; + return this; + } + + /** + * Fireblocks transaction id when applicable (unset when NOT_STARTED). + * + * @return txId + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TX_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getTxId() { + return txId; + } + + @JsonProperty(JSON_PROPERTY_TX_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setTxId(@jakarta.annotation.Nullable String txId) { + this.txId = txId; + } + + public ActionRecord txHash(@jakarta.annotation.Nullable String txHash) { + this.txHash = txHash; + return this; + } + + /** + * On-chain transaction hash when applicable (unset when NOT_STARTED). + * + * @return txHash + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TX_HASH) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getTxHash() { + return txHash; + } + + @JsonProperty(JSON_PROPERTY_TX_HASH) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setTxHash(@jakarta.annotation.Nullable String txHash) { + this.txHash = txHash; + } + + public ActionRecord errorMessage(@jakarta.annotation.Nullable String errorMessage) { + this.errorMessage = errorMessage; + return this; + } + + /** + * Error detail when the step failed. + * + * @return errorMessage + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ERROR_MESSAGE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getErrorMessage() { + return errorMessage; + } + + @JsonProperty(JSON_PROPERTY_ERROR_MESSAGE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setErrorMessage(@jakarta.annotation.Nullable String errorMessage) { + this.errorMessage = errorMessage; + } + + public ActionRecord updatedAt(@jakarta.annotation.Nonnull String updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + /** + * Last update time (ISO-8601); may be empty when status is NOT_STARTED. + * + * @return updatedAt + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_UPDATED_AT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getUpdatedAt() { + return updatedAt; + } + + @JsonProperty(JSON_PROPERTY_UPDATED_AT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setUpdatedAt(@jakarta.annotation.Nonnull String updatedAt) { + this.updatedAt = updatedAt; + } + + /** Return true if this ActionRecord object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ActionRecord actionRecord = (ActionRecord) o; + return Objects.equals(this.actionType, actionRecord.actionType) + && Objects.equals(this.status, actionRecord.status) + && Objects.equals(this.txId, actionRecord.txId) + && Objects.equals(this.txHash, actionRecord.txHash) + && Objects.equals(this.errorMessage, actionRecord.errorMessage) + && Objects.equals(this.updatedAt, actionRecord.updatedAt); + } + + @Override + public int hashCode() { + return Objects.hash(actionType, status, txId, txHash, errorMessage, updatedAt); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ActionRecord {\n"); + sb.append(" actionType: ").append(toIndentedString(actionType)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" txId: ").append(toIndentedString(txId)).append("\n"); + sb.append(" txHash: ").append(toIndentedString(txHash)).append("\n"); + sb.append(" errorMessage: ").append(toIndentedString(errorMessage)).append("\n"); + sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).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 `actionType` to the URL query string + if (getActionType() != null) { + joiner.add( + String.format( + "%sactionType%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getActionType())))); + } + + // add `status` to the URL query string + if (getStatus() != null) { + joiner.add( + String.format( + "%sstatus%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getStatus())))); + } + + // add `txId` to the URL query string + if (getTxId() != null) { + joiner.add( + String.format( + "%stxId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getTxId())))); + } + + // add `txHash` to the URL query string + if (getTxHash() != null) { + joiner.add( + String.format( + "%stxHash%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getTxHash())))); + } + + // add `errorMessage` to the URL query string + if (getErrorMessage() != null) { + joiner.add( + String.format( + "%serrorMessage%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getErrorMessage())))); + } + + // add `updatedAt` to the URL query string + if (getUpdatedAt() != null) { + joiner.add( + String.format( + "%supdatedAt%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getUpdatedAt())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/AddressRegistryError.java b/src/main/java/com/fireblocks/sdk/model/AddressRegistryError.java index 6ea3c86a..76a5096e 100644 --- a/src/main/java/com/fireblocks/sdk/model/AddressRegistryError.java +++ b/src/main/java/com/fireblocks/sdk/model/AddressRegistryError.java @@ -50,9 +50,10 @@ public AddressRegistryError code(@jakarta.annotation.Nullable Integer code) { } /** - * Application error code when present. Typical values include **2140** (403 — workspace not - * opted in to the address registry) and **2142** (404 — not found). Other codes may appear, - * including on server errors. + * Application error code when present. For HTTP 400 on legal-entity lookup, distinguish: 4100 — + * request validation (e.g. missing, empty, or whitespace-only `address` after trim); + * 2140 — workspace not opted in to the address registry (`AR_OPT_IN_REQUIRED`). 2142 + * — not found (404). Other codes may appear, including on server errors. * * @return code */ diff --git a/src/main/java/com/fireblocks/sdk/model/AddressRegistryLegalEntityLegacy.java b/src/main/java/com/fireblocks/sdk/model/AddressRegistryLegalEntityLegacy.java deleted file mode 100644 index a7250bc6..00000000 --- a/src/main/java/com/fireblocks/sdk/model/AddressRegistryLegalEntityLegacy.java +++ /dev/null @@ -1,238 +0,0 @@ -/* - * 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; - -/** - * Narrow legacy response for deprecated `GET - * /v1/address_registry/legal_entity?address=…`. Use `GET - * /v1/address_registry/legal_entities/{address}` for the full field set. - */ -@JsonPropertyOrder({ - AddressRegistryLegalEntityLegacy.JSON_PROPERTY_COMPANY_NAME, - AddressRegistryLegalEntityLegacy.JSON_PROPERTY_COUNTRY_CODE, - AddressRegistryLegalEntityLegacy.JSON_PROPERTY_COMPANY_ID -}) -@jakarta.annotation.Generated( - value = "org.openapitools.codegen.languages.JavaClientCodegen", - comments = "Generator version: 7.14.0") -public class AddressRegistryLegalEntityLegacy { - public static final String JSON_PROPERTY_COMPANY_NAME = "companyName"; - @jakarta.annotation.Nonnull private String companyName; - - public static final String JSON_PROPERTY_COUNTRY_CODE = "countryCode"; - @jakarta.annotation.Nonnull private String countryCode; - - public static final String JSON_PROPERTY_COMPANY_ID = "companyId"; - @jakarta.annotation.Nonnull private UUID companyId; - - public AddressRegistryLegalEntityLegacy() {} - - @JsonCreator - public AddressRegistryLegalEntityLegacy( - @JsonProperty(value = JSON_PROPERTY_COMPANY_NAME, required = true) String companyName, - @JsonProperty(value = JSON_PROPERTY_COUNTRY_CODE, required = true) String countryCode, - @JsonProperty(value = JSON_PROPERTY_COMPANY_ID, required = true) UUID companyId) { - this.companyName = companyName; - this.countryCode = countryCode; - this.companyId = companyId; - } - - public AddressRegistryLegalEntityLegacy companyName( - @jakarta.annotation.Nonnull String companyName) { - this.companyName = companyName; - return this; - } - - /** - * Legal entity / company display name - * - * @return companyName - */ - @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_COMPANY_NAME) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public String getCompanyName() { - return companyName; - } - - @JsonProperty(JSON_PROPERTY_COMPANY_NAME) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setCompanyName(@jakarta.annotation.Nonnull String companyName) { - this.companyName = companyName; - } - - public AddressRegistryLegalEntityLegacy countryCode( - @jakarta.annotation.Nonnull String countryCode) { - this.countryCode = countryCode; - return this; - } - - /** - * Jurisdiction country code (e.g. ISO 3166-1 alpha-2) - * - * @return countryCode - */ - @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_COUNTRY_CODE) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public String getCountryCode() { - return countryCode; - } - - @JsonProperty(JSON_PROPERTY_COUNTRY_CODE) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setCountryCode(@jakarta.annotation.Nonnull String countryCode) { - this.countryCode = countryCode; - } - - public AddressRegistryLegalEntityLegacy companyId(@jakarta.annotation.Nonnull UUID companyId) { - this.companyId = companyId; - return this; - } - - /** - * Company identifier for the resolved legal entity (UUID) - * - * @return companyId - */ - @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_COMPANY_ID) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public UUID getCompanyId() { - return companyId; - } - - @JsonProperty(JSON_PROPERTY_COMPANY_ID) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setCompanyId(@jakarta.annotation.Nonnull UUID companyId) { - this.companyId = companyId; - } - - /** Return true if this AddressRegistryLegalEntityLegacy object is equal to o. */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - AddressRegistryLegalEntityLegacy addressRegistryLegalEntityLegacy = - (AddressRegistryLegalEntityLegacy) o; - return Objects.equals(this.companyName, addressRegistryLegalEntityLegacy.companyName) - && Objects.equals(this.countryCode, addressRegistryLegalEntityLegacy.countryCode) - && Objects.equals(this.companyId, addressRegistryLegalEntityLegacy.companyId); - } - - @Override - public int hashCode() { - return Objects.hash(companyName, countryCode, companyId); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class AddressRegistryLegalEntityLegacy {\n"); - sb.append(" companyName: ").append(toIndentedString(companyName)).append("\n"); - sb.append(" countryCode: ").append(toIndentedString(countryCode)).append("\n"); - sb.append(" companyId: ").append(toIndentedString(companyId)).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 `companyName` to the URL query string - if (getCompanyName() != null) { - joiner.add( - String.format( - "%scompanyName%s=%s", - prefix, - suffix, - ApiClient.urlEncode(ApiClient.valueToString(getCompanyName())))); - } - - // add `countryCode` to the URL query string - if (getCountryCode() != null) { - joiner.add( - String.format( - "%scountryCode%s=%s", - prefix, - suffix, - ApiClient.urlEncode(ApiClient.valueToString(getCountryCode())))); - } - - // add `companyId` to the URL query string - if (getCompanyId() != null) { - joiner.add( - String.format( - "%scompanyId%s=%s", - prefix, - suffix, - ApiClient.urlEncode(ApiClient.valueToString(getCompanyId())))); - } - - return joiner.toString(); - } -} diff --git a/src/main/java/com/fireblocks/sdk/model/Apy.java b/src/main/java/com/fireblocks/sdk/model/Apy.java new file mode 100644 index 00000000..0e00d48e --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/Apy.java @@ -0,0 +1,215 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fireblocks.sdk.ApiClient; +import java.util.Objects; +import java.util.StringJoiner; + +/** Apy */ +@JsonPropertyOrder({Apy.JSON_PROPERTY_NATIVE, Apy.JSON_PROPERTY_GROSS, Apy.JSON_PROPERTY_NET}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class Apy { + public static final String JSON_PROPERTY_NATIVE = "native"; + @jakarta.annotation.Nullable private Double _native; + + public static final String JSON_PROPERTY_GROSS = "gross"; + @jakarta.annotation.Nullable private Double gross; + + public static final String JSON_PROPERTY_NET = "net"; + @jakarta.annotation.Nullable private Double net; + + public Apy() {} + + public Apy _native(@jakarta.annotation.Nullable Double _native) { + this._native = _native; + return this; + } + + /** + * APY in native format (before fees), as a percentage (e.g. 4.25 means 4.25%, not 0.0425). + * + * @return _native + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_NATIVE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Double getNative() { + return _native; + } + + @JsonProperty(JSON_PROPERTY_NATIVE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setNative(@jakarta.annotation.Nullable Double _native) { + this._native = _native; + } + + public Apy gross(@jakarta.annotation.Nullable Double gross) { + this.gross = gross; + return this; + } + + /** + * Gross APY before fees, as a percentage (e.g. 4.25 means 4.25%, not 0.0425). + * + * @return gross + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_GROSS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Double getGross() { + return gross; + } + + @JsonProperty(JSON_PROPERTY_GROSS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setGross(@jakarta.annotation.Nullable Double gross) { + this.gross = gross; + } + + public Apy net(@jakarta.annotation.Nullable Double net) { + this.net = net; + return this; + } + + /** + * Net APY after fees, as a percentage (e.g. 4.25 means 4.25%, not 0.0425). + * + * @return net + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_NET) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Double getNet() { + return net; + } + + @JsonProperty(JSON_PROPERTY_NET) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setNet(@jakarta.annotation.Nullable Double net) { + this.net = net; + } + + /** Return true if this Apy object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Apy apy = (Apy) o; + return Objects.equals(this._native, apy._native) + && Objects.equals(this.gross, apy.gross) + && Objects.equals(this.net, apy.net); + } + + @Override + public int hashCode() { + return Objects.hash(_native, gross, net); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Apy {\n"); + sb.append(" _native: ").append(toIndentedString(_native)).append("\n"); + sb.append(" gross: ").append(toIndentedString(gross)).append("\n"); + sb.append(" net: ").append(toIndentedString(net)).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 `native` to the URL query string + if (getNative() != null) { + joiner.add( + String.format( + "%snative%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getNative())))); + } + + // add `gross` to the URL query string + if (getGross() != null) { + joiner.add( + String.format( + "%sgross%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getGross())))); + } + + // add `net` to the URL query string + if (getNet() != null) { + joiner.add( + String.format( + "%snet%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getNet())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/AttachDetachUtxoLabelsRequest.java b/src/main/java/com/fireblocks/sdk/model/AttachDetachUtxoLabelsRequest.java new file mode 100644 index 00000000..7992fe06 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/AttachDetachUtxoLabelsRequest.java @@ -0,0 +1,289 @@ +/* + * 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; + +/** AttachDetachUtxoLabelsRequest */ +@JsonPropertyOrder({ + AttachDetachUtxoLabelsRequest.JSON_PROPERTY_UTXO_IDENTIFIERS, + AttachDetachUtxoLabelsRequest.JSON_PROPERTY_LABELS_TO_ATTACH, + AttachDetachUtxoLabelsRequest.JSON_PROPERTY_LABELS_TO_DETACH +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class AttachDetachUtxoLabelsRequest { + public static final String JSON_PROPERTY_UTXO_IDENTIFIERS = "utxoIdentifiers"; + @jakarta.annotation.Nonnull private List utxoIdentifiers; + + public static final String JSON_PROPERTY_LABELS_TO_ATTACH = "labelsToAttach"; + @jakarta.annotation.Nullable private List labelsToAttach; + + public static final String JSON_PROPERTY_LABELS_TO_DETACH = "labelsToDetach"; + @jakarta.annotation.Nullable private List labelsToDetach; + + public AttachDetachUtxoLabelsRequest() {} + + @JsonCreator + public AttachDetachUtxoLabelsRequest( + @JsonProperty(value = JSON_PROPERTY_UTXO_IDENTIFIERS, required = true) + List utxoIdentifiers) { + this.utxoIdentifiers = utxoIdentifiers; + } + + public AttachDetachUtxoLabelsRequest utxoIdentifiers( + @jakarta.annotation.Nonnull List utxoIdentifiers) { + this.utxoIdentifiers = utxoIdentifiers; + return this; + } + + public AttachDetachUtxoLabelsRequest addUtxoIdentifiersItem( + UtxoIdentifier utxoIdentifiersItem) { + if (this.utxoIdentifiers == null) { + this.utxoIdentifiers = new ArrayList<>(); + } + this.utxoIdentifiers.add(utxoIdentifiersItem); + return this; + } + + /** + * List of UTXO identifiers to apply label changes to + * + * @return utxoIdentifiers + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_UTXO_IDENTIFIERS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getUtxoIdentifiers() { + return utxoIdentifiers; + } + + @JsonProperty(JSON_PROPERTY_UTXO_IDENTIFIERS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setUtxoIdentifiers( + @jakarta.annotation.Nonnull List utxoIdentifiers) { + this.utxoIdentifiers = utxoIdentifiers; + } + + public AttachDetachUtxoLabelsRequest labelsToAttach( + @jakarta.annotation.Nullable List labelsToAttach) { + this.labelsToAttach = labelsToAttach; + return this; + } + + public AttachDetachUtxoLabelsRequest addLabelsToAttachItem(String labelsToAttachItem) { + if (this.labelsToAttach == null) { + this.labelsToAttach = new ArrayList<>(); + } + this.labelsToAttach.add(labelsToAttachItem); + return this; + } + + /** + * Labels to attach to the specified UTXOs. At least one of labelsToAttach or labelsToDetach + * must be provided. + * + * @return labelsToAttach + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_LABELS_TO_ATTACH) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getLabelsToAttach() { + return labelsToAttach; + } + + @JsonProperty(JSON_PROPERTY_LABELS_TO_ATTACH) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setLabelsToAttach(@jakarta.annotation.Nullable List labelsToAttach) { + this.labelsToAttach = labelsToAttach; + } + + public AttachDetachUtxoLabelsRequest labelsToDetach( + @jakarta.annotation.Nullable List labelsToDetach) { + this.labelsToDetach = labelsToDetach; + return this; + } + + public AttachDetachUtxoLabelsRequest addLabelsToDetachItem(String labelsToDetachItem) { + if (this.labelsToDetach == null) { + this.labelsToDetach = new ArrayList<>(); + } + this.labelsToDetach.add(labelsToDetachItem); + return this; + } + + /** + * Labels to detach from the specified UTXOs. At least one of labelsToAttach or labelsToDetach + * must be provided. + * + * @return labelsToDetach + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_LABELS_TO_DETACH) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getLabelsToDetach() { + return labelsToDetach; + } + + @JsonProperty(JSON_PROPERTY_LABELS_TO_DETACH) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setLabelsToDetach(@jakarta.annotation.Nullable List labelsToDetach) { + this.labelsToDetach = labelsToDetach; + } + + /** Return true if this AttachDetachUtxoLabelsRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AttachDetachUtxoLabelsRequest attachDetachUtxoLabelsRequest = + (AttachDetachUtxoLabelsRequest) o; + return Objects.equals(this.utxoIdentifiers, attachDetachUtxoLabelsRequest.utxoIdentifiers) + && Objects.equals(this.labelsToAttach, attachDetachUtxoLabelsRequest.labelsToAttach) + && Objects.equals( + this.labelsToDetach, attachDetachUtxoLabelsRequest.labelsToDetach); + } + + @Override + public int hashCode() { + return Objects.hash(utxoIdentifiers, labelsToAttach, labelsToDetach); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AttachDetachUtxoLabelsRequest {\n"); + sb.append(" utxoIdentifiers: ").append(toIndentedString(utxoIdentifiers)).append("\n"); + sb.append(" labelsToAttach: ").append(toIndentedString(labelsToAttach)).append("\n"); + sb.append(" labelsToDetach: ").append(toIndentedString(labelsToDetach)).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 `utxoIdentifiers` to the URL query string + if (getUtxoIdentifiers() != null) { + for (int i = 0; i < getUtxoIdentifiers().size(); i++) { + if (getUtxoIdentifiers().get(i) != null) { + joiner.add( + getUtxoIdentifiers() + .get(i) + .toUrlQueryString( + String.format( + "%sutxoIdentifiers%s%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", + containerPrefix, + i, + containerSuffix)))); + } + } + } + + // add `labelsToAttach` to the URL query string + if (getLabelsToAttach() != null) { + for (int i = 0; i < getLabelsToAttach().size(); i++) { + joiner.add( + String.format( + "%slabelsToAttach%s%s=%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", containerPrefix, i, containerSuffix), + ApiClient.urlEncode( + ApiClient.valueToString(getLabelsToAttach().get(i))))); + } + } + + // add `labelsToDetach` to the URL query string + if (getLabelsToDetach() != null) { + for (int i = 0; i < getLabelsToDetach().size(); i++) { + joiner.add( + String.format( + "%slabelsToDetach%s%s=%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", containerPrefix, i, containerSuffix), + ApiClient.urlEncode( + ApiClient.valueToString(getLabelsToDetach().get(i))))); + } + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/AttachDetachUtxoLabelsResponse.java b/src/main/java/com/fireblocks/sdk/model/AttachDetachUtxoLabelsResponse.java new file mode 100644 index 00000000..9d93ca85 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/AttachDetachUtxoLabelsResponse.java @@ -0,0 +1,163 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.StringJoiner; + +/** AttachDetachUtxoLabelsResponse */ +@JsonPropertyOrder({AttachDetachUtxoLabelsResponse.JSON_PROPERTY_UTXOS}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class AttachDetachUtxoLabelsResponse { + public static final String JSON_PROPERTY_UTXOS = "utxos"; + @jakarta.annotation.Nullable private List utxos; + + public AttachDetachUtxoLabelsResponse() {} + + public AttachDetachUtxoLabelsResponse utxos( + @jakarta.annotation.Nullable List utxos) { + this.utxos = utxos; + return this; + } + + public AttachDetachUtxoLabelsResponse addUtxosItem(UtxoOutput utxosItem) { + if (this.utxos == null) { + this.utxos = new ArrayList<>(); + } + this.utxos.add(utxosItem); + return this; + } + + /** + * Modified UTXOs with updated labels + * + * @return utxos + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_UTXOS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getUtxos() { + return utxos; + } + + @JsonProperty(JSON_PROPERTY_UTXOS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setUtxos(@jakarta.annotation.Nullable List utxos) { + this.utxos = utxos; + } + + /** Return true if this AttachDetachUtxoLabelsResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AttachDetachUtxoLabelsResponse attachDetachUtxoLabelsResponse = + (AttachDetachUtxoLabelsResponse) o; + return Objects.equals(this.utxos, attachDetachUtxoLabelsResponse.utxos); + } + + @Override + public int hashCode() { + return Objects.hash(utxos); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AttachDetachUtxoLabelsResponse {\n"); + sb.append(" utxos: ").append(toIndentedString(utxos)).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 `utxos` to the URL query string + if (getUtxos() != null) { + for (int i = 0; i < getUtxos().size(); i++) { + if (getUtxos().get(i) != null) { + joiner.add( + getUtxos() + .get(i) + .toUrlQueryString( + String.format( + "%sutxos%s%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", + containerPrefix, + i, + containerSuffix)))); + } + } + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/ByorkConfigResponse.java b/src/main/java/com/fireblocks/sdk/model/ByorkConfigResponse.java new file mode 100644 index 00000000..7bee231b --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/ByorkConfigResponse.java @@ -0,0 +1,402 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fireblocks.sdk.ApiClient; +import java.time.OffsetDateTime; +import java.util.Objects; +import java.util.StringJoiner; + +/** + * BYORK Light configuration for the tenant: wait-for-response timeouts, active flag, provider, last + * update time, and allowed timeout ranges for validation. + */ +@JsonPropertyOrder({ + ByorkConfigResponse.JSON_PROPERTY_INCOMING_TIMEOUT_SECONDS, + ByorkConfigResponse.JSON_PROPERTY_OUTGOING_TIMEOUT_SECONDS, + ByorkConfigResponse.JSON_PROPERTY_ACTIVE, + ByorkConfigResponse.JSON_PROPERTY_PROVIDER, + ByorkConfigResponse.JSON_PROPERTY_LAST_UPDATE, + ByorkConfigResponse.JSON_PROPERTY_TIMEOUT_RANGE_INCOMING, + ByorkConfigResponse.JSON_PROPERTY_TIMEOUT_RANGE_OUTGOING +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class ByorkConfigResponse { + public static final String JSON_PROPERTY_INCOMING_TIMEOUT_SECONDS = "incomingTimeoutSeconds"; + @jakarta.annotation.Nullable private Integer incomingTimeoutSeconds; + + public static final String JSON_PROPERTY_OUTGOING_TIMEOUT_SECONDS = "outgoingTimeoutSeconds"; + @jakarta.annotation.Nullable private Integer outgoingTimeoutSeconds; + + public static final String JSON_PROPERTY_ACTIVE = "active"; + @jakarta.annotation.Nullable private Boolean active; + + public static final String JSON_PROPERTY_PROVIDER = "provider"; + @jakarta.annotation.Nullable private String provider; + + public static final String JSON_PROPERTY_LAST_UPDATE = "lastUpdate"; + @jakarta.annotation.Nullable private OffsetDateTime lastUpdate; + + public static final String JSON_PROPERTY_TIMEOUT_RANGE_INCOMING = "timeoutRangeIncoming"; + @jakarta.annotation.Nullable private ByorkTimeoutRange timeoutRangeIncoming; + + public static final String JSON_PROPERTY_TIMEOUT_RANGE_OUTGOING = "timeoutRangeOutgoing"; + @jakarta.annotation.Nullable private ByorkTimeoutRange timeoutRangeOutgoing; + + public ByorkConfigResponse() {} + + public ByorkConfigResponse incomingTimeoutSeconds( + @jakarta.annotation.Nullable Integer incomingTimeoutSeconds) { + this.incomingTimeoutSeconds = incomingTimeoutSeconds; + return this; + } + + /** + * Timeout in seconds for incoming BYORK wait-for-response + * + * @return incomingTimeoutSeconds + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_INCOMING_TIMEOUT_SECONDS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Integer getIncomingTimeoutSeconds() { + return incomingTimeoutSeconds; + } + + @JsonProperty(JSON_PROPERTY_INCOMING_TIMEOUT_SECONDS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setIncomingTimeoutSeconds( + @jakarta.annotation.Nullable Integer incomingTimeoutSeconds) { + this.incomingTimeoutSeconds = incomingTimeoutSeconds; + } + + public ByorkConfigResponse outgoingTimeoutSeconds( + @jakarta.annotation.Nullable Integer outgoingTimeoutSeconds) { + this.outgoingTimeoutSeconds = outgoingTimeoutSeconds; + return this; + } + + /** + * Timeout in seconds for outgoing BYORK wait-for-response + * + * @return outgoingTimeoutSeconds + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_OUTGOING_TIMEOUT_SECONDS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Integer getOutgoingTimeoutSeconds() { + return outgoingTimeoutSeconds; + } + + @JsonProperty(JSON_PROPERTY_OUTGOING_TIMEOUT_SECONDS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setOutgoingTimeoutSeconds( + @jakarta.annotation.Nullable Integer outgoingTimeoutSeconds) { + this.outgoingTimeoutSeconds = outgoingTimeoutSeconds; + } + + public ByorkConfigResponse active(@jakarta.annotation.Nullable Boolean active) { + this.active = active; + return this; + } + + /** + * Whether BYORK Light is active for the tenant + * + * @return active + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ACTIVE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getActive() { + return active; + } + + @JsonProperty(JSON_PROPERTY_ACTIVE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setActive(@jakarta.annotation.Nullable Boolean active) { + this.active = active; + } + + public ByorkConfigResponse provider(@jakarta.annotation.Nullable String provider) { + this.provider = provider; + return this; + } + + /** + * Provider identifier + * + * @return provider + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_PROVIDER) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getProvider() { + return provider; + } + + @JsonProperty(JSON_PROPERTY_PROVIDER) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setProvider(@jakarta.annotation.Nullable String provider) { + this.provider = provider; + } + + public ByorkConfigResponse lastUpdate(@jakarta.annotation.Nullable OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + return this; + } + + /** + * Last update timestamp of the configuration + * + * @return lastUpdate + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_LAST_UPDATE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public OffsetDateTime getLastUpdate() { + return lastUpdate; + } + + @JsonProperty(JSON_PROPERTY_LAST_UPDATE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setLastUpdate(@jakarta.annotation.Nullable OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + } + + public ByorkConfigResponse timeoutRangeIncoming( + @jakarta.annotation.Nullable ByorkTimeoutRange timeoutRangeIncoming) { + this.timeoutRangeIncoming = timeoutRangeIncoming; + return this; + } + + /** + * Get timeoutRangeIncoming + * + * @return timeoutRangeIncoming + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TIMEOUT_RANGE_INCOMING) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public ByorkTimeoutRange getTimeoutRangeIncoming() { + return timeoutRangeIncoming; + } + + @JsonProperty(JSON_PROPERTY_TIMEOUT_RANGE_INCOMING) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setTimeoutRangeIncoming( + @jakarta.annotation.Nullable ByorkTimeoutRange timeoutRangeIncoming) { + this.timeoutRangeIncoming = timeoutRangeIncoming; + } + + public ByorkConfigResponse timeoutRangeOutgoing( + @jakarta.annotation.Nullable ByorkTimeoutRange timeoutRangeOutgoing) { + this.timeoutRangeOutgoing = timeoutRangeOutgoing; + return this; + } + + /** + * Get timeoutRangeOutgoing + * + * @return timeoutRangeOutgoing + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TIMEOUT_RANGE_OUTGOING) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public ByorkTimeoutRange getTimeoutRangeOutgoing() { + return timeoutRangeOutgoing; + } + + @JsonProperty(JSON_PROPERTY_TIMEOUT_RANGE_OUTGOING) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setTimeoutRangeOutgoing( + @jakarta.annotation.Nullable ByorkTimeoutRange timeoutRangeOutgoing) { + this.timeoutRangeOutgoing = timeoutRangeOutgoing; + } + + /** Return true if this ByorkConfigResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ByorkConfigResponse byorkConfigResponse = (ByorkConfigResponse) o; + return Objects.equals( + this.incomingTimeoutSeconds, byorkConfigResponse.incomingTimeoutSeconds) + && Objects.equals( + this.outgoingTimeoutSeconds, byorkConfigResponse.outgoingTimeoutSeconds) + && Objects.equals(this.active, byorkConfigResponse.active) + && Objects.equals(this.provider, byorkConfigResponse.provider) + && Objects.equals(this.lastUpdate, byorkConfigResponse.lastUpdate) + && Objects.equals( + this.timeoutRangeIncoming, byorkConfigResponse.timeoutRangeIncoming) + && Objects.equals( + this.timeoutRangeOutgoing, byorkConfigResponse.timeoutRangeOutgoing); + } + + @Override + public int hashCode() { + return Objects.hash( + incomingTimeoutSeconds, + outgoingTimeoutSeconds, + active, + provider, + lastUpdate, + timeoutRangeIncoming, + timeoutRangeOutgoing); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ByorkConfigResponse {\n"); + sb.append(" incomingTimeoutSeconds: ") + .append(toIndentedString(incomingTimeoutSeconds)) + .append("\n"); + sb.append(" outgoingTimeoutSeconds: ") + .append(toIndentedString(outgoingTimeoutSeconds)) + .append("\n"); + sb.append(" active: ").append(toIndentedString(active)).append("\n"); + sb.append(" provider: ").append(toIndentedString(provider)).append("\n"); + sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).append("\n"); + sb.append(" timeoutRangeIncoming: ") + .append(toIndentedString(timeoutRangeIncoming)) + .append("\n"); + sb.append(" timeoutRangeOutgoing: ") + .append(toIndentedString(timeoutRangeOutgoing)) + .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 `incomingTimeoutSeconds` to the URL query string + if (getIncomingTimeoutSeconds() != null) { + joiner.add( + String.format( + "%sincomingTimeoutSeconds%s=%s", + prefix, + suffix, + ApiClient.urlEncode( + ApiClient.valueToString(getIncomingTimeoutSeconds())))); + } + + // add `outgoingTimeoutSeconds` to the URL query string + if (getOutgoingTimeoutSeconds() != null) { + joiner.add( + String.format( + "%soutgoingTimeoutSeconds%s=%s", + prefix, + suffix, + ApiClient.urlEncode( + ApiClient.valueToString(getOutgoingTimeoutSeconds())))); + } + + // add `active` to the URL query string + if (getActive() != null) { + joiner.add( + String.format( + "%sactive%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getActive())))); + } + + // add `provider` to the URL query string + if (getProvider() != null) { + joiner.add( + String.format( + "%sprovider%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getProvider())))); + } + + // add `lastUpdate` to the URL query string + if (getLastUpdate() != null) { + joiner.add( + String.format( + "%slastUpdate%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getLastUpdate())))); + } + + // add `timeoutRangeIncoming` to the URL query string + if (getTimeoutRangeIncoming() != null) { + joiner.add( + getTimeoutRangeIncoming() + .toUrlQueryString(prefix + "timeoutRangeIncoming" + suffix)); + } + + // add `timeoutRangeOutgoing` to the URL query string + if (getTimeoutRangeOutgoing() != null) { + joiner.add( + getTimeoutRangeOutgoing() + .toUrlQueryString(prefix + "timeoutRangeOutgoing" + suffix)); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/ByorkSetTimeoutsRequest.java b/src/main/java/com/fireblocks/sdk/model/ByorkSetTimeoutsRequest.java new file mode 100644 index 00000000..7aa9c931 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/ByorkSetTimeoutsRequest.java @@ -0,0 +1,199 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fireblocks.sdk.ApiClient; +import java.util.Objects; +import java.util.StringJoiner; + +/** + * Request body for setting BYORK timeout values. At least one of incomingTimeoutSeconds or + * outgoingTimeoutSeconds is required. Allowed range per direction is returned in GET config + * (timeoutRangeIncoming, timeoutRangeOutgoing). + */ +@JsonPropertyOrder({ + ByorkSetTimeoutsRequest.JSON_PROPERTY_INCOMING_TIMEOUT_SECONDS, + ByorkSetTimeoutsRequest.JSON_PROPERTY_OUTGOING_TIMEOUT_SECONDS +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class ByorkSetTimeoutsRequest { + public static final String JSON_PROPERTY_INCOMING_TIMEOUT_SECONDS = "incomingTimeoutSeconds"; + @jakarta.annotation.Nullable private Integer incomingTimeoutSeconds; + + public static final String JSON_PROPERTY_OUTGOING_TIMEOUT_SECONDS = "outgoingTimeoutSeconds"; + @jakarta.annotation.Nullable private Integer outgoingTimeoutSeconds; + + public ByorkSetTimeoutsRequest() {} + + public ByorkSetTimeoutsRequest incomingTimeoutSeconds( + @jakarta.annotation.Nullable Integer incomingTimeoutSeconds) { + this.incomingTimeoutSeconds = incomingTimeoutSeconds; + return this; + } + + /** + * Timeout in seconds for incoming BYORK wait-for-response. Allowed range in GET config + * (timeoutRangeIncoming). + * + * @return incomingTimeoutSeconds + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_INCOMING_TIMEOUT_SECONDS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Integer getIncomingTimeoutSeconds() { + return incomingTimeoutSeconds; + } + + @JsonProperty(JSON_PROPERTY_INCOMING_TIMEOUT_SECONDS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setIncomingTimeoutSeconds( + @jakarta.annotation.Nullable Integer incomingTimeoutSeconds) { + this.incomingTimeoutSeconds = incomingTimeoutSeconds; + } + + public ByorkSetTimeoutsRequest outgoingTimeoutSeconds( + @jakarta.annotation.Nullable Integer outgoingTimeoutSeconds) { + this.outgoingTimeoutSeconds = outgoingTimeoutSeconds; + return this; + } + + /** + * Timeout in seconds for outgoing BYORK wait-for-response. Allowed range in GET config + * (timeoutRangeOutgoing). + * + * @return outgoingTimeoutSeconds + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_OUTGOING_TIMEOUT_SECONDS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Integer getOutgoingTimeoutSeconds() { + return outgoingTimeoutSeconds; + } + + @JsonProperty(JSON_PROPERTY_OUTGOING_TIMEOUT_SECONDS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setOutgoingTimeoutSeconds( + @jakarta.annotation.Nullable Integer outgoingTimeoutSeconds) { + this.outgoingTimeoutSeconds = outgoingTimeoutSeconds; + } + + /** Return true if this ByorkSetTimeoutsRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ByorkSetTimeoutsRequest byorkSetTimeoutsRequest = (ByorkSetTimeoutsRequest) o; + return Objects.equals( + this.incomingTimeoutSeconds, byorkSetTimeoutsRequest.incomingTimeoutSeconds) + && Objects.equals( + this.outgoingTimeoutSeconds, + byorkSetTimeoutsRequest.outgoingTimeoutSeconds); + } + + @Override + public int hashCode() { + return Objects.hash(incomingTimeoutSeconds, outgoingTimeoutSeconds); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ByorkSetTimeoutsRequest {\n"); + sb.append(" incomingTimeoutSeconds: ") + .append(toIndentedString(incomingTimeoutSeconds)) + .append("\n"); + sb.append(" outgoingTimeoutSeconds: ") + .append(toIndentedString(outgoingTimeoutSeconds)) + .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 `incomingTimeoutSeconds` to the URL query string + if (getIncomingTimeoutSeconds() != null) { + joiner.add( + String.format( + "%sincomingTimeoutSeconds%s=%s", + prefix, + suffix, + ApiClient.urlEncode( + ApiClient.valueToString(getIncomingTimeoutSeconds())))); + } + + // add `outgoingTimeoutSeconds` to the URL query string + if (getOutgoingTimeoutSeconds() != null) { + joiner.add( + String.format( + "%soutgoingTimeoutSeconds%s=%s", + prefix, + suffix, + ApiClient.urlEncode( + ApiClient.valueToString(getOutgoingTimeoutSeconds())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/ByorkSetVerdictEnum.java b/src/main/java/com/fireblocks/sdk/model/ByorkSetVerdictEnum.java new file mode 100644 index 00000000..12305067 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/ByorkSetVerdictEnum.java @@ -0,0 +1,64 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** Verdict to apply (ACCEPT or REJECT). */ +public enum ByorkSetVerdictEnum { + ACCEPT("ACCEPT"), + + REJECT("REJECT"); + + private String value; + + ByorkSetVerdictEnum(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static ByorkSetVerdictEnum fromValue(String value) { + for (ByorkSetVerdictEnum b : ByorkSetVerdictEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + if (prefix == null) { + prefix = ""; + } + + return String.format("%s=%s", prefix, this.toString()); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/ByorkTimeoutRange.java b/src/main/java/com/fireblocks/sdk/model/ByorkTimeoutRange.java new file mode 100644 index 00000000..61942a56 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/ByorkTimeoutRange.java @@ -0,0 +1,180 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import com.fasterxml.jackson.annotation.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; + +/** Allowed range for timeout values (seconds). Use when calling PUT config/timeouts. */ +@JsonPropertyOrder({ + ByorkTimeoutRange.JSON_PROPERTY_MIN_SECONDS, + ByorkTimeoutRange.JSON_PROPERTY_MAX_SECONDS +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class ByorkTimeoutRange { + public static final String JSON_PROPERTY_MIN_SECONDS = "minSeconds"; + @jakarta.annotation.Nullable private Integer minSeconds; + + public static final String JSON_PROPERTY_MAX_SECONDS = "maxSeconds"; + @jakarta.annotation.Nullable private Integer maxSeconds; + + public ByorkTimeoutRange() {} + + public ByorkTimeoutRange minSeconds(@jakarta.annotation.Nullable Integer minSeconds) { + this.minSeconds = minSeconds; + return this; + } + + /** + * Get minSeconds + * + * @return minSeconds + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_MIN_SECONDS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Integer getMinSeconds() { + return minSeconds; + } + + @JsonProperty(JSON_PROPERTY_MIN_SECONDS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setMinSeconds(@jakarta.annotation.Nullable Integer minSeconds) { + this.minSeconds = minSeconds; + } + + public ByorkTimeoutRange maxSeconds(@jakarta.annotation.Nullable Integer maxSeconds) { + this.maxSeconds = maxSeconds; + return this; + } + + /** + * Get maxSeconds + * + * @return maxSeconds + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_MAX_SECONDS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Integer getMaxSeconds() { + return maxSeconds; + } + + @JsonProperty(JSON_PROPERTY_MAX_SECONDS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setMaxSeconds(@jakarta.annotation.Nullable Integer maxSeconds) { + this.maxSeconds = maxSeconds; + } + + /** Return true if this ByorkTimeoutRange object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ByorkTimeoutRange byorkTimeoutRange = (ByorkTimeoutRange) o; + return Objects.equals(this.minSeconds, byorkTimeoutRange.minSeconds) + && Objects.equals(this.maxSeconds, byorkTimeoutRange.maxSeconds); + } + + @Override + public int hashCode() { + return Objects.hash(minSeconds, maxSeconds); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ByorkTimeoutRange {\n"); + sb.append(" minSeconds: ").append(toIndentedString(minSeconds)).append("\n"); + sb.append(" maxSeconds: ").append(toIndentedString(maxSeconds)).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 `minSeconds` to the URL query string + if (getMinSeconds() != null) { + joiner.add( + String.format( + "%sminSeconds%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getMinSeconds())))); + } + + // add `maxSeconds` to the URL query string + if (getMaxSeconds() != null) { + joiner.add( + String.format( + "%smaxSeconds%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getMaxSeconds())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/ByorkVerdictEnum.java b/src/main/java/com/fireblocks/sdk/model/ByorkVerdictEnum.java new file mode 100644 index 00000000..aa7cc5c1 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/ByorkVerdictEnum.java @@ -0,0 +1,69 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * ACCEPT/REJECT - Final or pre-accepted verdict. WAIT - When status is PENDING (transaction + * awaiting decision). + */ +public enum ByorkVerdictEnum { + ACCEPT("ACCEPT"), + + REJECT("REJECT"), + + WAIT("WAIT"); + + private String value; + + ByorkVerdictEnum(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static ByorkVerdictEnum fromValue(String value) { + for (ByorkVerdictEnum b : ByorkVerdictEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + if (prefix == null) { + prefix = ""; + } + + return String.format("%s=%s", prefix, this.toString()); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/ByorkVerdictRequest.java b/src/main/java/com/fireblocks/sdk/model/ByorkVerdictRequest.java new file mode 100644 index 00000000..6b783189 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/ByorkVerdictRequest.java @@ -0,0 +1,190 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fireblocks.sdk.ApiClient; +import java.util.Objects; +import java.util.StringJoiner; + +/** ByorkVerdictRequest */ +@JsonPropertyOrder({ + ByorkVerdictRequest.JSON_PROPERTY_TX_ID, + ByorkVerdictRequest.JSON_PROPERTY_VERDICT +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class ByorkVerdictRequest { + public static final String JSON_PROPERTY_TX_ID = "txId"; + @jakarta.annotation.Nonnull private String txId; + + public static final String JSON_PROPERTY_VERDICT = "verdict"; + @jakarta.annotation.Nonnull private ByorkSetVerdictEnum verdict; + + public ByorkVerdictRequest() {} + + @JsonCreator + public ByorkVerdictRequest( + @JsonProperty(value = JSON_PROPERTY_TX_ID, required = true) String txId, + @JsonProperty(value = JSON_PROPERTY_VERDICT, required = true) + ByorkSetVerdictEnum verdict) { + this.txId = txId; + this.verdict = verdict; + } + + public ByorkVerdictRequest txId(@jakarta.annotation.Nonnull String txId) { + this.txId = txId; + return this; + } + + /** + * Transaction ID to set the verdict for + * + * @return txId + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_TX_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getTxId() { + return txId; + } + + @JsonProperty(JSON_PROPERTY_TX_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setTxId(@jakarta.annotation.Nonnull String txId) { + this.txId = txId; + } + + public ByorkVerdictRequest verdict(@jakarta.annotation.Nonnull ByorkSetVerdictEnum verdict) { + this.verdict = verdict; + return this; + } + + /** + * Get verdict + * + * @return verdict + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_VERDICT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public ByorkSetVerdictEnum getVerdict() { + return verdict; + } + + @JsonProperty(JSON_PROPERTY_VERDICT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setVerdict(@jakarta.annotation.Nonnull ByorkSetVerdictEnum verdict) { + this.verdict = verdict; + } + + /** Return true if this ByorkVerdictRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ByorkVerdictRequest byorkVerdictRequest = (ByorkVerdictRequest) o; + return Objects.equals(this.txId, byorkVerdictRequest.txId) + && Objects.equals(this.verdict, byorkVerdictRequest.verdict); + } + + @Override + public int hashCode() { + return Objects.hash(txId, verdict); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ByorkVerdictRequest {\n"); + sb.append(" txId: ").append(toIndentedString(txId)).append("\n"); + sb.append(" verdict: ").append(toIndentedString(verdict)).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 `txId` to the URL query string + if (getTxId() != null) { + joiner.add( + String.format( + "%stxId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getTxId())))); + } + + // add `verdict` to the URL query string + if (getVerdict() != null) { + joiner.add( + String.format( + "%sverdict%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getVerdict())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/ByorkVerdictResponse.java b/src/main/java/com/fireblocks/sdk/model/ByorkVerdictResponse.java new file mode 100644 index 00000000..e6eb4b68 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/ByorkVerdictResponse.java @@ -0,0 +1,191 @@ +/* + * 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; + +/** ByorkVerdictResponse */ +@JsonPropertyOrder({ + ByorkVerdictResponse.JSON_PROPERTY_STATUS, + ByorkVerdictResponse.JSON_PROPERTY_MESSAGE +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class ByorkVerdictResponse { + public static final String JSON_PROPERTY_STATUS = "status"; + @jakarta.annotation.Nonnull private ByorkVerdictResponseStatusEnum status; + + public static final String JSON_PROPERTY_MESSAGE = "message"; + @jakarta.annotation.Nonnull private String message; + + public ByorkVerdictResponse() {} + + @JsonCreator + public ByorkVerdictResponse( + @JsonProperty(value = JSON_PROPERTY_STATUS, required = true) + ByorkVerdictResponseStatusEnum status, + @JsonProperty(value = JSON_PROPERTY_MESSAGE, required = true) String message) { + this.status = status; + this.message = message; + } + + public ByorkVerdictResponse status( + @jakarta.annotation.Nonnull ByorkVerdictResponseStatusEnum status) { + this.status = status; + return this; + } + + /** + * Get status + * + * @return status + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_STATUS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public ByorkVerdictResponseStatusEnum getStatus() { + return status; + } + + @JsonProperty(JSON_PROPERTY_STATUS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setStatus(@jakarta.annotation.Nonnull ByorkVerdictResponseStatusEnum status) { + this.status = status; + } + + public ByorkVerdictResponse message(@jakarta.annotation.Nonnull String message) { + this.message = message; + return this; + } + + /** + * Human-readable message + * + * @return message + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_MESSAGE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getMessage() { + return message; + } + + @JsonProperty(JSON_PROPERTY_MESSAGE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setMessage(@jakarta.annotation.Nonnull String message) { + this.message = message; + } + + /** Return true if this ByorkVerdictResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ByorkVerdictResponse byorkVerdictResponse = (ByorkVerdictResponse) o; + return Objects.equals(this.status, byorkVerdictResponse.status) + && Objects.equals(this.message, byorkVerdictResponse.message); + } + + @Override + public int hashCode() { + return Objects.hash(status, message); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ByorkVerdictResponse {\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" message: ").append(toIndentedString(message)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first + * line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + /** + * Convert the instance into URL query string. + * + * @return URL query string + */ + public String toUrlQueryString() { + return toUrlQueryString(null); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + String suffix = ""; + String containerSuffix = ""; + String containerPrefix = ""; + if (prefix == null) { + // style=form, explode=true, e.g. /pet?name=cat&type=manx + prefix = ""; + } else { + // deepObject style e.g. /pet?id[name]=cat&id[type]=manx + prefix = prefix + "["; + suffix = "]"; + containerSuffix = "]"; + containerPrefix = "["; + } + + StringJoiner joiner = new StringJoiner("&"); + + // add `status` to the URL query string + if (getStatus() != null) { + joiner.add( + String.format( + "%sstatus%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getStatus())))); + } + + // add `message` to the URL query string + if (getMessage() != null) { + joiner.add( + String.format( + "%smessage%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getMessage())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/ByorkVerdictResponseStatusEnum.java b/src/main/java/com/fireblocks/sdk/model/ByorkVerdictResponseStatusEnum.java new file mode 100644 index 00000000..671faa4a --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/ByorkVerdictResponseStatusEnum.java @@ -0,0 +1,73 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * PRE_ACCEPTED - Verdict stored and will be applied when processing reaches the point where your + * decision is needed. COMPLETED - Verdict final and processing complete. PENDING - Transaction in + * BYORK flow; no final verdict yet (awaiting decision or processing). RECEIVED - Verdict final and + * stored; processing not yet complete. + */ +public enum ByorkVerdictResponseStatusEnum { + PRE_ACCEPTED("PRE_ACCEPTED"), + + COMPLETED("COMPLETED"), + + PENDING("PENDING"), + + RECEIVED("RECEIVED"); + + private String value; + + ByorkVerdictResponseStatusEnum(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static ByorkVerdictResponseStatusEnum fromValue(String value) { + for (ByorkVerdictResponseStatusEnum b : ByorkVerdictResponseStatusEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + if (prefix == null) { + prefix = ""; + } + + return String.format("%s=%s", prefix, this.toString()); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/CreateEarnActionRequest.java b/src/main/java/com/fireblocks/sdk/model/CreateEarnActionRequest.java new file mode 100644 index 00000000..cbb95b4c --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/CreateEarnActionRequest.java @@ -0,0 +1,309 @@ +/* + * 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; + +/** CreateEarnActionRequest */ +@JsonPropertyOrder({ + CreateEarnActionRequest.JSON_PROPERTY_ACTION, + CreateEarnActionRequest.JSON_PROPERTY_OPPORTUNITY_ID, + CreateEarnActionRequest.JSON_PROPERTY_VAULT_ACCOUNT_ID, + CreateEarnActionRequest.JSON_PROPERTY_AMOUNT +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class CreateEarnActionRequest { + /** Whether to deposit into or withdraw from the lending opportunity. */ + public enum ActionEnum { + DEPOSIT(String.valueOf("DEPOSIT")), + + WITHDRAW(String.valueOf("WITHDRAW")); + + 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_OPPORTUNITY_ID = "opportunityId"; + @jakarta.annotation.Nonnull private String opportunityId; + + public static final String JSON_PROPERTY_VAULT_ACCOUNT_ID = "vaultAccountId"; + @jakarta.annotation.Nonnull private String vaultAccountId; + + public static final String JSON_PROPERTY_AMOUNT = "amount"; + @jakarta.annotation.Nonnull private String amount; + + public CreateEarnActionRequest() {} + + @JsonCreator + public CreateEarnActionRequest( + @JsonProperty(value = JSON_PROPERTY_ACTION, required = true) ActionEnum action, + @JsonProperty(value = JSON_PROPERTY_OPPORTUNITY_ID, required = true) + String opportunityId, + @JsonProperty(value = JSON_PROPERTY_VAULT_ACCOUNT_ID, required = true) + String vaultAccountId, + @JsonProperty(value = JSON_PROPERTY_AMOUNT, required = true) String amount) { + this.action = action; + this.opportunityId = opportunityId; + this.vaultAccountId = vaultAccountId; + this.amount = amount; + } + + public CreateEarnActionRequest action(@jakarta.annotation.Nonnull ActionEnum action) { + this.action = action; + return this; + } + + /** + * Whether to deposit into or withdraw from the lending opportunity. + * + * @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 CreateEarnActionRequest opportunityId(@jakarta.annotation.Nonnull String opportunityId) { + this.opportunityId = opportunityId; + return this; + } + + /** + * Identifier of the vault or market (lending opportunity). + * + * @return opportunityId + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_OPPORTUNITY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getOpportunityId() { + return opportunityId; + } + + @JsonProperty(JSON_PROPERTY_OPPORTUNITY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setOpportunityId(@jakarta.annotation.Nonnull String opportunityId) { + this.opportunityId = opportunityId; + } + + public CreateEarnActionRequest vaultAccountId( + @jakarta.annotation.Nonnull String vaultAccountId) { + this.vaultAccountId = vaultAccountId; + return this; + } + + /** + * Fireblocks vault account that will execute the action. + * + * @return vaultAccountId + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_VAULT_ACCOUNT_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getVaultAccountId() { + return vaultAccountId; + } + + @JsonProperty(JSON_PROPERTY_VAULT_ACCOUNT_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setVaultAccountId(@jakarta.annotation.Nonnull String vaultAccountId) { + this.vaultAccountId = vaultAccountId; + } + + public CreateEarnActionRequest amount(@jakarta.annotation.Nonnull String amount) { + this.amount = amount; + return this; + } + + /** + * Human-readable token amount (e.g. \"1.6\") or the keyword \"max\" for the + * full position or available balance. + * + * @return amount + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_AMOUNT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getAmount() { + return amount; + } + + @JsonProperty(JSON_PROPERTY_AMOUNT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setAmount(@jakarta.annotation.Nonnull String amount) { + this.amount = amount; + } + + /** Return true if this CreateEarnActionRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateEarnActionRequest createEarnActionRequest = (CreateEarnActionRequest) o; + return Objects.equals(this.action, createEarnActionRequest.action) + && Objects.equals(this.opportunityId, createEarnActionRequest.opportunityId) + && Objects.equals(this.vaultAccountId, createEarnActionRequest.vaultAccountId) + && Objects.equals(this.amount, createEarnActionRequest.amount); + } + + @Override + public int hashCode() { + return Objects.hash(action, opportunityId, vaultAccountId, amount); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CreateEarnActionRequest {\n"); + sb.append(" action: ").append(toIndentedString(action)).append("\n"); + sb.append(" opportunityId: ").append(toIndentedString(opportunityId)).append("\n"); + sb.append(" vaultAccountId: ").append(toIndentedString(vaultAccountId)).append("\n"); + sb.append(" amount: ").append(toIndentedString(amount)).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 `opportunityId` to the URL query string + if (getOpportunityId() != null) { + joiner.add( + String.format( + "%sopportunityId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getOpportunityId())))); + } + + // add `vaultAccountId` to the URL query string + if (getVaultAccountId() != null) { + joiner.add( + String.format( + "%svaultAccountId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getVaultAccountId())))); + } + + // add `amount` to the URL query string + if (getAmount() != null) { + joiner.add( + String.format( + "%samount%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getAmount())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/CreateEarnActionResponse.java b/src/main/java/com/fireblocks/sdk/model/CreateEarnActionResponse.java new file mode 100644 index 00000000..3ffd2fc0 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/CreateEarnActionResponse.java @@ -0,0 +1,227 @@ +/* + * 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; + +/** CreateEarnActionResponse */ +@JsonPropertyOrder({ + CreateEarnActionResponse.JSON_PROPERTY_ID, + CreateEarnActionResponse.JSON_PROPERTY_STATUS +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class CreateEarnActionResponse { + public static final String JSON_PROPERTY_ID = "id"; + @jakarta.annotation.Nonnull private String id; + + /** Lifecycle status (e.g. CREATED, IN_PROGRESS, COMPLETED). */ + public enum StatusEnum { + CREATED(String.valueOf("CREATED")), + + IN_PROGRESS(String.valueOf("IN_PROGRESS")), + + COMPLETED(String.valueOf("COMPLETED")), + + CANCELED(String.valueOf("CANCELED")), + + FAILED(String.valueOf("FAILED")); + + private String value; + + StatusEnum(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static StatusEnum fromValue(String value) { + for (StatusEnum b : StatusEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + } + + public static final String JSON_PROPERTY_STATUS = "status"; + @jakarta.annotation.Nonnull private StatusEnum status; + + public CreateEarnActionResponse() {} + + @JsonCreator + public CreateEarnActionResponse( + @JsonProperty(value = JSON_PROPERTY_ID, required = true) String id, + @JsonProperty(value = JSON_PROPERTY_STATUS, required = true) StatusEnum status) { + this.id = id; + this.status = status; + } + + public CreateEarnActionResponse id(@jakarta.annotation.Nonnull String id) { + this.id = id; + return this; + } + + /** + * ActionIntent UUID for tracking the lending action workflow. + * + * @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 CreateEarnActionResponse status(@jakarta.annotation.Nonnull StatusEnum status) { + this.status = status; + return this; + } + + /** + * Lifecycle status (e.g. CREATED, IN_PROGRESS, COMPLETED). + * + * @return status + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_STATUS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public StatusEnum getStatus() { + return status; + } + + @JsonProperty(JSON_PROPERTY_STATUS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setStatus(@jakarta.annotation.Nonnull StatusEnum status) { + this.status = status; + } + + /** Return true if this CreateEarnActionResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateEarnActionResponse createEarnActionResponse = (CreateEarnActionResponse) o; + return Objects.equals(this.id, createEarnActionResponse.id) + && Objects.equals(this.status, createEarnActionResponse.status); + } + + @Override + public int hashCode() { + return Objects.hash(id, status); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CreateEarnActionResponse {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first + * line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + /** + * Convert the instance into URL query string. + * + * @return URL query string + */ + public String toUrlQueryString() { + return toUrlQueryString(null); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + String suffix = ""; + String containerSuffix = ""; + String containerPrefix = ""; + if (prefix == null) { + // style=form, explode=true, e.g. /pet?name=cat&type=manx + prefix = ""; + } else { + // deepObject style e.g. /pet?id[name]=cat&id[type]=manx + prefix = prefix + "["; + suffix = "]"; + containerSuffix = "]"; + containerPrefix = "["; + } + + StringJoiner joiner = new StringJoiner("&"); + + // add `id` to the URL query string + if (getId() != null) { + joiner.add( + String.format( + "%sid%s=%s", + prefix, suffix, ApiClient.urlEncode(ApiClient.valueToString(getId())))); + } + + // add `status` to the URL query string + if (getStatus() != null) { + joiner.add( + String.format( + "%sstatus%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getStatus())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/DirectAccessProvider.java b/src/main/java/com/fireblocks/sdk/model/DirectAccessProvider.java index abda8c55..a833e2a4 100644 --- a/src/main/java/com/fireblocks/sdk/model/DirectAccessProvider.java +++ b/src/main/java/com/fireblocks/sdk/model/DirectAccessProvider.java @@ -21,7 +21,7 @@ import java.util.Objects; import java.util.StringJoiner; -/** DirectAccessProvider */ +/** Provider used without per-account linking (`accountBased` is `false`). */ @JsonPropertyOrder({ DirectAccessProvider.JSON_PROPERTY_ID, DirectAccessProvider.JSON_PROPERTY_NAME, diff --git a/src/main/java/com/fireblocks/sdk/model/DirectProviderDetails.java b/src/main/java/com/fireblocks/sdk/model/DirectProviderDetails.java deleted file mode 100644 index e9f35dea..00000000 --- a/src/main/java/com/fireblocks/sdk/model/DirectProviderDetails.java +++ /dev/null @@ -1,479 +0,0 @@ -/* - * 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; - -/** DirectProviderDetails */ -@JsonPropertyOrder({ - DirectProviderDetails.JSON_PROPERTY_ID, - DirectProviderDetails.JSON_PROPERTY_NAME, - DirectProviderDetails.JSON_PROPERTY_LOGO, - DirectProviderDetails.JSON_PROPERTY_ACCOUNT_BASED, - DirectProviderDetails.JSON_PROPERTY_MANIFEST, - DirectProviderDetails.JSON_PROPERTY_APPROVED, - DirectProviderDetails.JSON_PROPERTY_HAS_TERMS_OF_SERVICE, - DirectProviderDetails.JSON_PROPERTY_TERMS_OF_SERVICE_URL, - DirectProviderDetails.JSON_PROPERTY_PRIVACY_POLICY_URL -}) -@jakarta.annotation.Generated( - value = "org.openapitools.codegen.languages.JavaClientCodegen", - comments = "Generator version: 7.14.0") -public class DirectProviderDetails { - public static final String JSON_PROPERTY_ID = "id"; - @jakarta.annotation.Nonnull private String id; - - public static final String JSON_PROPERTY_NAME = "name"; - @jakarta.annotation.Nonnull private String name; - - public static final String JSON_PROPERTY_LOGO = "logo"; - @jakarta.annotation.Nullable private String logo; - - public static final String JSON_PROPERTY_ACCOUNT_BASED = "accountBased"; - @jakarta.annotation.Nonnull private Boolean accountBased; - - public static final String JSON_PROPERTY_MANIFEST = "manifest"; - @jakarta.annotation.Nonnull private Manifest manifest; - - public static final String JSON_PROPERTY_APPROVED = "approved"; - @jakarta.annotation.Nullable private Boolean approved; - - public static final String JSON_PROPERTY_HAS_TERMS_OF_SERVICE = "hasTermsOfService"; - @jakarta.annotation.Nonnull private Boolean hasTermsOfService; - - public static final String JSON_PROPERTY_TERMS_OF_SERVICE_URL = "termsOfServiceUrl"; - @jakarta.annotation.Nullable private String termsOfServiceUrl; - - public static final String JSON_PROPERTY_PRIVACY_POLICY_URL = "privacyPolicyUrl"; - @jakarta.annotation.Nullable private String privacyPolicyUrl; - - public DirectProviderDetails() {} - - @JsonCreator - public DirectProviderDetails( - @JsonProperty(value = JSON_PROPERTY_ID, required = true) String id, - @JsonProperty(value = JSON_PROPERTY_NAME, required = true) String name, - @JsonProperty(value = JSON_PROPERTY_ACCOUNT_BASED, required = true) - Boolean accountBased, - @JsonProperty(value = JSON_PROPERTY_MANIFEST, required = true) Manifest manifest, - @JsonProperty(value = JSON_PROPERTY_HAS_TERMS_OF_SERVICE, required = true) - Boolean hasTermsOfService) { - this.id = id; - this.name = name; - this.accountBased = accountBased; - this.manifest = manifest; - this.hasTermsOfService = hasTermsOfService; - } - - public DirectProviderDetails id(@jakarta.annotation.Nonnull String id) { - this.id = id; - return this; - } - - /** - * Unique identifier for the provider - * - * @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 DirectProviderDetails name(@jakarta.annotation.Nonnull String name) { - this.name = name; - return this; - } - - /** - * Display name of the provider - * - * @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 DirectProviderDetails logo(@jakarta.annotation.Nullable String logo) { - this.logo = logo; - return this; - } - - /** - * URL to the logo image of the provider - * - * @return logo - */ - @jakarta.annotation.Nullable - @JsonProperty(JSON_PROPERTY_LOGO) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public String getLogo() { - return logo; - } - - @JsonProperty(JSON_PROPERTY_LOGO) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setLogo(@jakarta.annotation.Nullable String logo) { - this.logo = logo; - } - - public DirectProviderDetails accountBased(@jakarta.annotation.Nonnull Boolean accountBased) { - this.accountBased = accountBased; - return this; - } - - /** - * Indicates whether the provider access model is through accounts or directly - * - * @return accountBased - */ - @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_ACCOUNT_BASED) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public Boolean getAccountBased() { - return accountBased; - } - - @JsonProperty(JSON_PROPERTY_ACCOUNT_BASED) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setAccountBased(@jakarta.annotation.Nonnull Boolean accountBased) { - this.accountBased = accountBased; - } - - public DirectProviderDetails manifest(@jakarta.annotation.Nonnull Manifest manifest) { - this.manifest = manifest; - return this; - } - - /** - * Get manifest - * - * @return manifest - */ - @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_MANIFEST) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public Manifest getManifest() { - return manifest; - } - - @JsonProperty(JSON_PROPERTY_MANIFEST) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setManifest(@jakarta.annotation.Nonnull Manifest manifest) { - this.manifest = manifest; - } - - public DirectProviderDetails approved(@jakarta.annotation.Nullable Boolean approved) { - this.approved = approved; - return this; - } - - /** - * Whether the provider was approved for use - * - * @return approved - */ - @jakarta.annotation.Nullable - @JsonProperty(JSON_PROPERTY_APPROVED) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public Boolean getApproved() { - return approved; - } - - @JsonProperty(JSON_PROPERTY_APPROVED) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setApproved(@jakarta.annotation.Nullable Boolean approved) { - this.approved = approved; - } - - public DirectProviderDetails hasTermsOfService( - @jakarta.annotation.Nonnull Boolean hasTermsOfService) { - this.hasTermsOfService = hasTermsOfService; - return this; - } - - /** - * Whether the provider has terms of service - * - * @return hasTermsOfService - */ - @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_HAS_TERMS_OF_SERVICE) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public Boolean getHasTermsOfService() { - return hasTermsOfService; - } - - @JsonProperty(JSON_PROPERTY_HAS_TERMS_OF_SERVICE) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setHasTermsOfService(@jakarta.annotation.Nonnull Boolean hasTermsOfService) { - this.hasTermsOfService = hasTermsOfService; - } - - public DirectProviderDetails termsOfServiceUrl( - @jakarta.annotation.Nullable String termsOfServiceUrl) { - this.termsOfServiceUrl = termsOfServiceUrl; - return this; - } - - /** - * URL to the terms of service document - * - * @return termsOfServiceUrl - */ - @jakarta.annotation.Nullable - @JsonProperty(JSON_PROPERTY_TERMS_OF_SERVICE_URL) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public String getTermsOfServiceUrl() { - return termsOfServiceUrl; - } - - @JsonProperty(JSON_PROPERTY_TERMS_OF_SERVICE_URL) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setTermsOfServiceUrl(@jakarta.annotation.Nullable String termsOfServiceUrl) { - this.termsOfServiceUrl = termsOfServiceUrl; - } - - public DirectProviderDetails privacyPolicyUrl( - @jakarta.annotation.Nullable String privacyPolicyUrl) { - this.privacyPolicyUrl = privacyPolicyUrl; - return this; - } - - /** - * URL to the privacy policy document - * - * @return privacyPolicyUrl - */ - @jakarta.annotation.Nullable - @JsonProperty(JSON_PROPERTY_PRIVACY_POLICY_URL) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public String getPrivacyPolicyUrl() { - return privacyPolicyUrl; - } - - @JsonProperty(JSON_PROPERTY_PRIVACY_POLICY_URL) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setPrivacyPolicyUrl(@jakarta.annotation.Nullable String privacyPolicyUrl) { - this.privacyPolicyUrl = privacyPolicyUrl; - } - - /** Return true if this DirectProviderDetails object is equal to o. */ - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - DirectProviderDetails directProviderDetails = (DirectProviderDetails) o; - return Objects.equals(this.id, directProviderDetails.id) - && Objects.equals(this.name, directProviderDetails.name) - && Objects.equals(this.logo, directProviderDetails.logo) - && Objects.equals(this.accountBased, directProviderDetails.accountBased) - && Objects.equals(this.manifest, directProviderDetails.manifest) - && Objects.equals(this.approved, directProviderDetails.approved) - && Objects.equals(this.hasTermsOfService, directProviderDetails.hasTermsOfService) - && Objects.equals(this.termsOfServiceUrl, directProviderDetails.termsOfServiceUrl) - && Objects.equals(this.privacyPolicyUrl, directProviderDetails.privacyPolicyUrl); - } - - @Override - public int hashCode() { - return Objects.hash( - id, - name, - logo, - accountBased, - manifest, - approved, - hasTermsOfService, - termsOfServiceUrl, - privacyPolicyUrl); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class DirectProviderDetails {\n"); - sb.append(" id: ").append(toIndentedString(id)).append("\n"); - sb.append(" name: ").append(toIndentedString(name)).append("\n"); - sb.append(" logo: ").append(toIndentedString(logo)).append("\n"); - sb.append(" accountBased: ").append(toIndentedString(accountBased)).append("\n"); - sb.append(" manifest: ").append(toIndentedString(manifest)).append("\n"); - sb.append(" approved: ").append(toIndentedString(approved)).append("\n"); - sb.append(" hasTermsOfService: ") - .append(toIndentedString(hasTermsOfService)) - .append("\n"); - sb.append(" termsOfServiceUrl: ") - .append(toIndentedString(termsOfServiceUrl)) - .append("\n"); - sb.append(" privacyPolicyUrl: ").append(toIndentedString(privacyPolicyUrl)).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 `logo` to the URL query string - if (getLogo() != null) { - joiner.add( - String.format( - "%slogo%s=%s", - prefix, - suffix, - ApiClient.urlEncode(ApiClient.valueToString(getLogo())))); - } - - // add `accountBased` to the URL query string - if (getAccountBased() != null) { - joiner.add( - String.format( - "%saccountBased%s=%s", - prefix, - suffix, - ApiClient.urlEncode(ApiClient.valueToString(getAccountBased())))); - } - - // add `manifest` to the URL query string - if (getManifest() != null) { - joiner.add(getManifest().toUrlQueryString(prefix + "manifest" + suffix)); - } - - // add `approved` to the URL query string - if (getApproved() != null) { - joiner.add( - String.format( - "%sapproved%s=%s", - prefix, - suffix, - ApiClient.urlEncode(ApiClient.valueToString(getApproved())))); - } - - // add `hasTermsOfService` to the URL query string - if (getHasTermsOfService() != null) { - joiner.add( - String.format( - "%shasTermsOfService%s=%s", - prefix, - suffix, - ApiClient.urlEncode(ApiClient.valueToString(getHasTermsOfService())))); - } - - // add `termsOfServiceUrl` to the URL query string - if (getTermsOfServiceUrl() != null) { - joiner.add( - String.format( - "%stermsOfServiceUrl%s=%s", - prefix, - suffix, - ApiClient.urlEncode(ApiClient.valueToString(getTermsOfServiceUrl())))); - } - - // add `privacyPolicyUrl` to the URL query string - if (getPrivacyPolicyUrl() != null) { - joiner.add( - String.format( - "%sprivacyPolicyUrl%s=%s", - prefix, - suffix, - ApiClient.urlEncode(ApiClient.valueToString(getPrivacyPolicyUrl())))); - } - - return joiner.toString(); - } -} diff --git a/src/main/java/com/fireblocks/sdk/model/EarnAsset.java b/src/main/java/com/fireblocks/sdk/model/EarnAsset.java new file mode 100644 index 00000000..dc06a0cf --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/EarnAsset.java @@ -0,0 +1,258 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fireblocks.sdk.ApiClient; +import java.util.Objects; +import java.util.StringJoiner; + +/** EarnAsset */ +@JsonPropertyOrder({ + EarnAsset.JSON_PROPERTY_ADDRESS, + EarnAsset.JSON_PROPERTY_SYMBOL, + EarnAsset.JSON_PROPERTY_DECIMALS, + EarnAsset.JSON_PROPERTY_ASSET_ID +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class EarnAsset { + public static final String JSON_PROPERTY_ADDRESS = "address"; + @jakarta.annotation.Nullable private String address; + + public static final String JSON_PROPERTY_SYMBOL = "symbol"; + @jakarta.annotation.Nullable private String symbol; + + public static final String JSON_PROPERTY_DECIMALS = "decimals"; + @jakarta.annotation.Nullable private Integer decimals; + + public static final String JSON_PROPERTY_ASSET_ID = "assetId"; + @jakarta.annotation.Nullable private String assetId; + + public EarnAsset() {} + + public EarnAsset address(@jakarta.annotation.Nullable String address) { + this.address = address; + return this; + } + + /** + * Contract address of the token on-chain. + * + * @return address + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ADDRESS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getAddress() { + return address; + } + + @JsonProperty(JSON_PROPERTY_ADDRESS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setAddress(@jakarta.annotation.Nullable String address) { + this.address = address; + } + + public EarnAsset symbol(@jakarta.annotation.Nullable String symbol) { + this.symbol = symbol; + return this; + } + + /** + * Human-readable ticker (e.g. USDC). + * + * @return symbol + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_SYMBOL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getSymbol() { + return symbol; + } + + @JsonProperty(JSON_PROPERTY_SYMBOL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setSymbol(@jakarta.annotation.Nullable String symbol) { + this.symbol = symbol; + } + + public EarnAsset decimals(@jakarta.annotation.Nullable Integer decimals) { + this.decimals = decimals; + return this; + } + + /** + * Token decimals used when interpreting on-chain amounts. + * + * @return decimals + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DECIMALS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Integer getDecimals() { + return decimals; + } + + @JsonProperty(JSON_PROPERTY_DECIMALS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setDecimals(@jakarta.annotation.Nullable Integer decimals) { + this.decimals = decimals; + } + + public EarnAsset assetId(@jakarta.annotation.Nullable String assetId) { + this.assetId = assetId; + return this; + } + + /** + * Fireblocks legacy asset identifier (e.g. USDC_ETH, PYUSD). + * + * @return assetId + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ASSET_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getAssetId() { + return assetId; + } + + @JsonProperty(JSON_PROPERTY_ASSET_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setAssetId(@jakarta.annotation.Nullable String assetId) { + this.assetId = assetId; + } + + /** Return true if this EarnAsset object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EarnAsset earnAsset = (EarnAsset) o; + return Objects.equals(this.address, earnAsset.address) + && Objects.equals(this.symbol, earnAsset.symbol) + && Objects.equals(this.decimals, earnAsset.decimals) + && Objects.equals(this.assetId, earnAsset.assetId); + } + + @Override + public int hashCode() { + return Objects.hash(address, symbol, decimals, assetId); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EarnAsset {\n"); + sb.append(" address: ").append(toIndentedString(address)).append("\n"); + sb.append(" symbol: ").append(toIndentedString(symbol)).append("\n"); + sb.append(" decimals: ").append(toIndentedString(decimals)).append("\n"); + sb.append(" assetId: ").append(toIndentedString(assetId)).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 `address` to the URL query string + if (getAddress() != null) { + joiner.add( + String.format( + "%saddress%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getAddress())))); + } + + // add `symbol` to the URL query string + if (getSymbol() != null) { + joiner.add( + String.format( + "%ssymbol%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getSymbol())))); + } + + // add `decimals` to the URL query string + if (getDecimals() != null) { + joiner.add( + String.format( + "%sdecimals%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getDecimals())))); + } + + // add `assetId` to the URL query string + if (getAssetId() != null) { + joiner.add( + String.format( + "%sassetId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getAssetId())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/EarnProvider.java b/src/main/java/com/fireblocks/sdk/model/EarnProvider.java new file mode 100644 index 00000000..72af3a5b --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/EarnProvider.java @@ -0,0 +1,452 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fireblocks.sdk.ApiClient; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.StringJoiner; + +/** EarnProvider */ +@JsonPropertyOrder({ + EarnProvider.JSON_PROPERTY_PROVIDER_ID, + EarnProvider.JSON_PROPERTY_DISPLAY_NAME, + EarnProvider.JSON_PROPERTY_LOGO_URL, + EarnProvider.JSON_PROPERTY_SUPPORTED_CHAIN_IDS, + EarnProvider.JSON_PROPERTY_IS_TERMS_APPROVAL_REQUIRED, + EarnProvider.JSON_PROPERTY_TERMS_OF_SERVICE_URL, + EarnProvider.JSON_PROPERTY_IS_TERMS_OF_SERVICE_APPROVED +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class EarnProvider { + /** Stable protocol identifier (`MORPHO` or `AAVE`). */ + public enum ProviderIdEnum { + MORPHO(String.valueOf("MORPHO")), + + AAVE(String.valueOf("AAVE")); + + private String value; + + ProviderIdEnum(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static ProviderIdEnum fromValue(String value) { + for (ProviderIdEnum b : ProviderIdEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + } + + public static final String JSON_PROPERTY_PROVIDER_ID = "providerId"; + @jakarta.annotation.Nullable private ProviderIdEnum providerId; + + public static final String JSON_PROPERTY_DISPLAY_NAME = "displayName"; + @jakarta.annotation.Nullable private String displayName; + + public static final String JSON_PROPERTY_LOGO_URL = "logoUrl"; + @jakarta.annotation.Nullable private String logoUrl; + + public static final String JSON_PROPERTY_SUPPORTED_CHAIN_IDS = "supportedChainIds"; + @jakarta.annotation.Nullable private List supportedChainIds; + + public static final String JSON_PROPERTY_IS_TERMS_APPROVAL_REQUIRED = "isTermsApprovalRequired"; + @jakarta.annotation.Nullable private Boolean isTermsApprovalRequired; + + public static final String JSON_PROPERTY_TERMS_OF_SERVICE_URL = "termsOfServiceUrl"; + @jakarta.annotation.Nullable private String termsOfServiceUrl; + + public static final String JSON_PROPERTY_IS_TERMS_OF_SERVICE_APPROVED = + "isTermsOfServiceApproved"; + @jakarta.annotation.Nullable private Boolean isTermsOfServiceApproved; + + public EarnProvider() {} + + public EarnProvider providerId(@jakarta.annotation.Nullable ProviderIdEnum providerId) { + this.providerId = providerId; + return this; + } + + /** + * Stable protocol identifier (`MORPHO` or `AAVE`). + * + * @return providerId + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_PROVIDER_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public ProviderIdEnum getProviderId() { + return providerId; + } + + @JsonProperty(JSON_PROPERTY_PROVIDER_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setProviderId(@jakarta.annotation.Nullable ProviderIdEnum providerId) { + this.providerId = providerId; + } + + public EarnProvider displayName(@jakarta.annotation.Nullable String displayName) { + this.displayName = displayName; + return this; + } + + /** + * Human-readable protocol name for UI. + * + * @return displayName + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DISPLAY_NAME) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getDisplayName() { + return displayName; + } + + @JsonProperty(JSON_PROPERTY_DISPLAY_NAME) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setDisplayName(@jakarta.annotation.Nullable String displayName) { + this.displayName = displayName; + } + + public EarnProvider logoUrl(@jakarta.annotation.Nullable String logoUrl) { + this.logoUrl = logoUrl; + return this; + } + + /** + * URL for the provider logo asset. + * + * @return logoUrl + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_LOGO_URL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getLogoUrl() { + return logoUrl; + } + + @JsonProperty(JSON_PROPERTY_LOGO_URL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setLogoUrl(@jakarta.annotation.Nullable String logoUrl) { + this.logoUrl = logoUrl; + } + + public EarnProvider supportedChainIds( + @jakarta.annotation.Nullable List supportedChainIds) { + this.supportedChainIds = supportedChainIds; + return this; + } + + public EarnProvider addSupportedChainIdsItem(Integer supportedChainIdsItem) { + if (this.supportedChainIds == null) { + this.supportedChainIds = new ArrayList<>(); + } + this.supportedChainIds.add(supportedChainIdsItem); + return this; + } + + /** + * EVM chain IDs where this provider is supported. + * + * @return supportedChainIds + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_SUPPORTED_CHAIN_IDS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getSupportedChainIds() { + return supportedChainIds; + } + + @JsonProperty(JSON_PROPERTY_SUPPORTED_CHAIN_IDS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setSupportedChainIds(@jakarta.annotation.Nullable List supportedChainIds) { + this.supportedChainIds = supportedChainIds; + } + + public EarnProvider isTermsApprovalRequired( + @jakarta.annotation.Nullable Boolean isTermsApprovalRequired) { + this.isTermsApprovalRequired = isTermsApprovalRequired; + return this; + } + + /** + * Whether the user must accept terms before using this provider. + * + * @return isTermsApprovalRequired + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_IS_TERMS_APPROVAL_REQUIRED) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getIsTermsApprovalRequired() { + return isTermsApprovalRequired; + } + + @JsonProperty(JSON_PROPERTY_IS_TERMS_APPROVAL_REQUIRED) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setIsTermsApprovalRequired( + @jakarta.annotation.Nullable Boolean isTermsApprovalRequired) { + this.isTermsApprovalRequired = isTermsApprovalRequired; + } + + public EarnProvider termsOfServiceUrl(@jakarta.annotation.Nullable String termsOfServiceUrl) { + this.termsOfServiceUrl = termsOfServiceUrl; + return this; + } + + /** + * URL to the provider terms of service, when applicable. + * + * @return termsOfServiceUrl + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TERMS_OF_SERVICE_URL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getTermsOfServiceUrl() { + return termsOfServiceUrl; + } + + @JsonProperty(JSON_PROPERTY_TERMS_OF_SERVICE_URL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setTermsOfServiceUrl(@jakarta.annotation.Nullable String termsOfServiceUrl) { + this.termsOfServiceUrl = termsOfServiceUrl; + } + + public EarnProvider isTermsOfServiceApproved( + @jakarta.annotation.Nullable Boolean isTermsOfServiceApproved) { + this.isTermsOfServiceApproved = isTermsOfServiceApproved; + return this; + } + + /** + * Whether terms have been approved for this workspace / context. + * + * @return isTermsOfServiceApproved + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_IS_TERMS_OF_SERVICE_APPROVED) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getIsTermsOfServiceApproved() { + return isTermsOfServiceApproved; + } + + @JsonProperty(JSON_PROPERTY_IS_TERMS_OF_SERVICE_APPROVED) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setIsTermsOfServiceApproved( + @jakarta.annotation.Nullable Boolean isTermsOfServiceApproved) { + this.isTermsOfServiceApproved = isTermsOfServiceApproved; + } + + /** Return true if this EarnProvider object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EarnProvider earnProvider = (EarnProvider) o; + return Objects.equals(this.providerId, earnProvider.providerId) + && Objects.equals(this.displayName, earnProvider.displayName) + && Objects.equals(this.logoUrl, earnProvider.logoUrl) + && Objects.equals(this.supportedChainIds, earnProvider.supportedChainIds) + && Objects.equals( + this.isTermsApprovalRequired, earnProvider.isTermsApprovalRequired) + && Objects.equals(this.termsOfServiceUrl, earnProvider.termsOfServiceUrl) + && Objects.equals( + this.isTermsOfServiceApproved, earnProvider.isTermsOfServiceApproved); + } + + @Override + public int hashCode() { + return Objects.hash( + providerId, + displayName, + logoUrl, + supportedChainIds, + isTermsApprovalRequired, + termsOfServiceUrl, + isTermsOfServiceApproved); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EarnProvider {\n"); + sb.append(" providerId: ").append(toIndentedString(providerId)).append("\n"); + sb.append(" displayName: ").append(toIndentedString(displayName)).append("\n"); + sb.append(" logoUrl: ").append(toIndentedString(logoUrl)).append("\n"); + sb.append(" supportedChainIds: ") + .append(toIndentedString(supportedChainIds)) + .append("\n"); + sb.append(" isTermsApprovalRequired: ") + .append(toIndentedString(isTermsApprovalRequired)) + .append("\n"); + sb.append(" termsOfServiceUrl: ") + .append(toIndentedString(termsOfServiceUrl)) + .append("\n"); + sb.append(" isTermsOfServiceApproved: ") + .append(toIndentedString(isTermsOfServiceApproved)) + .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 `providerId` to the URL query string + if (getProviderId() != null) { + joiner.add( + String.format( + "%sproviderId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getProviderId())))); + } + + // add `displayName` to the URL query string + if (getDisplayName() != null) { + joiner.add( + String.format( + "%sdisplayName%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getDisplayName())))); + } + + // add `logoUrl` to the URL query string + if (getLogoUrl() != null) { + joiner.add( + String.format( + "%slogoUrl%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getLogoUrl())))); + } + + // add `supportedChainIds` to the URL query string + if (getSupportedChainIds() != null) { + for (int i = 0; i < getSupportedChainIds().size(); i++) { + joiner.add( + String.format( + "%ssupportedChainIds%s%s=%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", containerPrefix, i, containerSuffix), + ApiClient.urlEncode( + ApiClient.valueToString(getSupportedChainIds().get(i))))); + } + } + + // add `isTermsApprovalRequired` to the URL query string + if (getIsTermsApprovalRequired() != null) { + joiner.add( + String.format( + "%sisTermsApprovalRequired%s=%s", + prefix, + suffix, + ApiClient.urlEncode( + ApiClient.valueToString(getIsTermsApprovalRequired())))); + } + + // add `termsOfServiceUrl` to the URL query string + if (getTermsOfServiceUrl() != null) { + joiner.add( + String.format( + "%stermsOfServiceUrl%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getTermsOfServiceUrl())))); + } + + // add `isTermsOfServiceApproved` to the URL query string + if (getIsTermsOfServiceApproved() != null) { + joiner.add( + String.format( + "%sisTermsOfServiceApproved%s=%s", + prefix, + suffix, + ApiClient.urlEncode( + ApiClient.valueToString(getIsTermsOfServiceApproved())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/Exposure.java b/src/main/java/com/fireblocks/sdk/model/Exposure.java new file mode 100644 index 00000000..e2bf9ba7 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/Exposure.java @@ -0,0 +1,219 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import com.fasterxml.jackson.annotation.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; + +/** Exposure */ +@JsonPropertyOrder({ + Exposure.JSON_PROPERTY_ASSET_ADDRESS, + Exposure.JSON_PROPERTY_SYMBOL, + Exposure.JSON_PROPERTY_AMOUNT +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class Exposure { + public static final String JSON_PROPERTY_ASSET_ADDRESS = "assetAddress"; + @jakarta.annotation.Nullable private String assetAddress; + + public static final String JSON_PROPERTY_SYMBOL = "symbol"; + @jakarta.annotation.Nullable private String symbol; + + public static final String JSON_PROPERTY_AMOUNT = "amount"; + @jakarta.annotation.Nullable private String amount; + + public Exposure() {} + + public Exposure assetAddress(@jakarta.annotation.Nullable String assetAddress) { + this.assetAddress = assetAddress; + return this; + } + + /** + * On-chain address of the exposure asset. + * + * @return assetAddress + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ASSET_ADDRESS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getAssetAddress() { + return assetAddress; + } + + @JsonProperty(JSON_PROPERTY_ASSET_ADDRESS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setAssetAddress(@jakarta.annotation.Nullable String assetAddress) { + this.assetAddress = assetAddress; + } + + public Exposure symbol(@jakarta.annotation.Nullable String symbol) { + this.symbol = symbol; + return this; + } + + /** + * Ticker for the exposure asset. + * + * @return symbol + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_SYMBOL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getSymbol() { + return symbol; + } + + @JsonProperty(JSON_PROPERTY_SYMBOL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setSymbol(@jakarta.annotation.Nullable String symbol) { + this.symbol = symbol; + } + + public Exposure amount(@jakarta.annotation.Nullable String amount) { + this.amount = amount; + return this; + } + + /** + * Human-readable decimal string (raw on-chain value scaled by 10^decimals). + * + * @return amount + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_AMOUNT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getAmount() { + return amount; + } + + @JsonProperty(JSON_PROPERTY_AMOUNT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setAmount(@jakarta.annotation.Nullable String amount) { + this.amount = amount; + } + + /** Return true if this Exposure object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Exposure exposure = (Exposure) o; + return Objects.equals(this.assetAddress, exposure.assetAddress) + && Objects.equals(this.symbol, exposure.symbol) + && Objects.equals(this.amount, exposure.amount); + } + + @Override + public int hashCode() { + return Objects.hash(assetAddress, symbol, amount); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Exposure {\n"); + sb.append(" assetAddress: ").append(toIndentedString(assetAddress)).append("\n"); + sb.append(" symbol: ").append(toIndentedString(symbol)).append("\n"); + sb.append(" amount: ").append(toIndentedString(amount)).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 `assetAddress` to the URL query string + if (getAssetAddress() != null) { + joiner.add( + String.format( + "%sassetAddress%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getAssetAddress())))); + } + + // add `symbol` to the URL query string + if (getSymbol() != null) { + joiner.add( + String.format( + "%ssymbol%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getSymbol())))); + } + + // add `amount` to the URL query string + if (getAmount() != null) { + joiner.add( + String.format( + "%samount%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getAmount())))); + } + + 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 cf5ce2cd..c49606c9 100644 --- a/src/main/java/com/fireblocks/sdk/model/FailureReason.java +++ b/src/main/java/com/fireblocks/sdk/model/FailureReason.java @@ -52,7 +52,23 @@ public enum FailureReason { TRANSACTION_REJECTED("TRANSACTION_REJECTED"), - TRANSACTION_BLOCKED("TRANSACTION_BLOCKED"); + TRANSACTION_BLOCKED("TRANSACTION_BLOCKED"), + + PROVIDER_INTERNAL_ERROR("PROVIDER_INTERNAL_ERROR"), + + UNSUPPORTED_SOURCE_ASSET("UNSUPPORTED_SOURCE_ASSET"), + + UNSUPPORTED_DESTINATION_ASSET("UNSUPPORTED_DESTINATION_ASSET"), + + AMOUNT_BELOW_MINIMUM("AMOUNT_BELOW_MINIMUM"), + + PII_MISSING("PII_MISSING"), + + EXTERNAL_SOURCE_NOT_SUPPORTED("EXTERNAL_SOURCE_NOT_SUPPORTED"), + + UNSUPPORTED_REGION("UNSUPPORTED_REGION"), + + DESTINATION_NOT_WHITELISTED("DESTINATION_NOT_WHITELISTED"); private String value; diff --git a/src/main/java/com/fireblocks/sdk/model/FlowDirection.java b/src/main/java/com/fireblocks/sdk/model/FlowDirection.java new file mode 100644 index 00000000..105c088c --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/FlowDirection.java @@ -0,0 +1,68 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** The direction of asset conversion in an order. */ +public enum FlowDirection { + FIAT_TO_CRYPTO("FIAT_TO_CRYPTO"), + + CRYPTO_TO_FIAT("CRYPTO_TO_FIAT"), + + CRYPTO_TO_CRYPTO("CRYPTO_TO_CRYPTO"), + + FIAT_TO_FIAT("FIAT_TO_FIAT"); + + private String value; + + FlowDirection(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static FlowDirection fromValue(String value) { + for (FlowDirection b : FlowDirection.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + if (prefix == null) { + prefix = ""; + } + + return String.format("%s=%s", prefix, this.toString()); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/GetActionResponse.java b/src/main/java/com/fireblocks/sdk/model/GetActionResponse.java new file mode 100644 index 00000000..5de02ba3 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/GetActionResponse.java @@ -0,0 +1,617 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fireblocks.sdk.ApiClient; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.StringJoiner; + +/** Single lending action (intent plus per-step execution rows). */ +@JsonPropertyOrder({ + GetActionResponse.JSON_PROPERTY_ID, + GetActionResponse.JSON_PROPERTY_STATUS, + GetActionResponse.JSON_PROPERTY_PROVIDER_ID, + GetActionResponse.JSON_PROPERTY_ACTION_TYPE, + GetActionResponse.JSON_PROPERTY_OPPORTUNITY_ID, + GetActionResponse.JSON_PROPERTY_POSITION_ID, + GetActionResponse.JSON_PROPERTY_AMOUNT, + GetActionResponse.JSON_PROPERTY_CREATED_AT, + GetActionResponse.JSON_PROPERTY_UPDATED_AT, + GetActionResponse.JSON_PROPERTY_RECORDS +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class GetActionResponse { + public static final String JSON_PROPERTY_ID = "id"; + @jakarta.annotation.Nonnull private String id; + + public static final String JSON_PROPERTY_STATUS = "status"; + @jakarta.annotation.Nonnull private String status; + + /** Lending protocol identifier. */ + public enum ProviderIdEnum { + MORPHO(String.valueOf("MORPHO")), + + AAVE(String.valueOf("AAVE")); + + private String value; + + ProviderIdEnum(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static ProviderIdEnum fromValue(String value) { + for (ProviderIdEnum b : ProviderIdEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + } + + public static final String JSON_PROPERTY_PROVIDER_ID = "providerId"; + @jakarta.annotation.Nonnull private ProviderIdEnum providerId; + + /** Whether this action is a deposit or withdraw flow. */ + public enum ActionTypeEnum { + DEPOSIT(String.valueOf("DEPOSIT")), + + WITHDRAW(String.valueOf("WITHDRAW")); + + private String value; + + ActionTypeEnum(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static ActionTypeEnum fromValue(String value) { + for (ActionTypeEnum b : ActionTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + } + + public static final String JSON_PROPERTY_ACTION_TYPE = "actionType"; + @jakarta.annotation.Nonnull private ActionTypeEnum actionType; + + public static final String JSON_PROPERTY_OPPORTUNITY_ID = "opportunityId"; + @jakarta.annotation.Nonnull private String opportunityId; + + public static final String JSON_PROPERTY_POSITION_ID = "positionId"; + @jakarta.annotation.Nullable private String positionId; + + public static final String JSON_PROPERTY_AMOUNT = "amount"; + @jakarta.annotation.Nonnull private String amount; + + public static final String JSON_PROPERTY_CREATED_AT = "createdAt"; + @jakarta.annotation.Nonnull private String createdAt; + + public static final String JSON_PROPERTY_UPDATED_AT = "updatedAt"; + @jakarta.annotation.Nonnull private String updatedAt; + + public static final String JSON_PROPERTY_RECORDS = "records"; + @jakarta.annotation.Nonnull private List records; + + public GetActionResponse() {} + + @JsonCreator + public GetActionResponse( + @JsonProperty(value = JSON_PROPERTY_ID, required = true) String id, + @JsonProperty(value = JSON_PROPERTY_STATUS, required = true) String status, + @JsonProperty(value = JSON_PROPERTY_PROVIDER_ID, required = true) + ProviderIdEnum providerId, + @JsonProperty(value = JSON_PROPERTY_ACTION_TYPE, required = true) + ActionTypeEnum actionType, + @JsonProperty(value = JSON_PROPERTY_OPPORTUNITY_ID, required = true) + String opportunityId, + @JsonProperty(value = JSON_PROPERTY_AMOUNT, required = true) String amount, + @JsonProperty(value = JSON_PROPERTY_CREATED_AT, required = true) String createdAt, + @JsonProperty(value = JSON_PROPERTY_UPDATED_AT, required = true) String updatedAt, + @JsonProperty(value = JSON_PROPERTY_RECORDS, required = true) + List records) { + this.id = id; + this.status = status; + this.providerId = providerId; + this.actionType = actionType; + this.opportunityId = opportunityId; + this.amount = amount; + this.createdAt = createdAt; + this.updatedAt = updatedAt; + this.records = records; + } + + public GetActionResponse id(@jakarta.annotation.Nonnull String id) { + this.id = id; + return this; + } + + /** + * Action sequence id (UUID). + * + * @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 GetActionResponse status(@jakarta.annotation.Nonnull String status) { + this.status = status; + return this; + } + + /** + * Intent status (e.g. CREATED, IN_PROGRESS, COMPLETED). + * + * @return status + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_STATUS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getStatus() { + return status; + } + + @JsonProperty(JSON_PROPERTY_STATUS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setStatus(@jakarta.annotation.Nonnull String status) { + this.status = status; + } + + public GetActionResponse providerId(@jakarta.annotation.Nonnull ProviderIdEnum providerId) { + this.providerId = providerId; + return this; + } + + /** + * Lending protocol identifier. + * + * @return providerId + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_PROVIDER_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public ProviderIdEnum getProviderId() { + return providerId; + } + + @JsonProperty(JSON_PROPERTY_PROVIDER_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setProviderId(@jakarta.annotation.Nonnull ProviderIdEnum providerId) { + this.providerId = providerId; + } + + public GetActionResponse actionType(@jakarta.annotation.Nonnull ActionTypeEnum actionType) { + this.actionType = actionType; + return this; + } + + /** + * Whether this action is a deposit or withdraw flow. + * + * @return actionType + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_ACTION_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public ActionTypeEnum getActionType() { + return actionType; + } + + @JsonProperty(JSON_PROPERTY_ACTION_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setActionType(@jakarta.annotation.Nonnull ActionTypeEnum actionType) { + this.actionType = actionType; + } + + public GetActionResponse opportunityId(@jakarta.annotation.Nonnull String opportunityId) { + this.opportunityId = opportunityId; + return this; + } + + /** + * Target lending opportunity identifier. + * + * @return opportunityId + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_OPPORTUNITY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getOpportunityId() { + return opportunityId; + } + + @JsonProperty(JSON_PROPERTY_OPPORTUNITY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setOpportunityId(@jakarta.annotation.Nonnull String opportunityId) { + this.opportunityId = opportunityId; + } + + public GetActionResponse positionId(@jakarta.annotation.Nullable String positionId) { + this.positionId = positionId; + return this; + } + + /** + * Position id in the system when applicable. + * + * @return positionId + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_POSITION_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getPositionId() { + return positionId; + } + + @JsonProperty(JSON_PROPERTY_POSITION_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setPositionId(@jakarta.annotation.Nullable String positionId) { + this.positionId = positionId; + } + + public GetActionResponse amount(@jakarta.annotation.Nonnull String amount) { + this.amount = amount; + return this; + } + + /** + * Human-readable amount for the action. + * + * @return amount + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_AMOUNT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getAmount() { + return amount; + } + + @JsonProperty(JSON_PROPERTY_AMOUNT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setAmount(@jakarta.annotation.Nonnull String amount) { + this.amount = amount; + } + + public GetActionResponse createdAt(@jakarta.annotation.Nonnull String createdAt) { + this.createdAt = createdAt; + return this; + } + + /** + * Creation time (ISO-8601). + * + * @return createdAt + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_CREATED_AT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getCreatedAt() { + return createdAt; + } + + @JsonProperty(JSON_PROPERTY_CREATED_AT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setCreatedAt(@jakarta.annotation.Nonnull String createdAt) { + this.createdAt = createdAt; + } + + public GetActionResponse updatedAt(@jakarta.annotation.Nonnull String updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + /** + * Last update time (ISO-8601). + * + * @return updatedAt + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_UPDATED_AT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getUpdatedAt() { + return updatedAt; + } + + @JsonProperty(JSON_PROPERTY_UPDATED_AT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setUpdatedAt(@jakarta.annotation.Nonnull String updatedAt) { + this.updatedAt = updatedAt; + } + + public GetActionResponse records(@jakarta.annotation.Nonnull List records) { + this.records = records; + return this; + } + + public GetActionResponse addRecordsItem(ActionRecord recordsItem) { + if (this.records == null) { + this.records = new ArrayList<>(); + } + this.records.add(recordsItem); + return this; + } + + /** + * Ordered execution steps for this action. + * + * @return records + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_RECORDS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getRecords() { + return records; + } + + @JsonProperty(JSON_PROPERTY_RECORDS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setRecords(@jakarta.annotation.Nonnull List records) { + this.records = records; + } + + /** Return true if this GetActionResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetActionResponse getActionResponse = (GetActionResponse) o; + return Objects.equals(this.id, getActionResponse.id) + && Objects.equals(this.status, getActionResponse.status) + && Objects.equals(this.providerId, getActionResponse.providerId) + && Objects.equals(this.actionType, getActionResponse.actionType) + && Objects.equals(this.opportunityId, getActionResponse.opportunityId) + && Objects.equals(this.positionId, getActionResponse.positionId) + && Objects.equals(this.amount, getActionResponse.amount) + && Objects.equals(this.createdAt, getActionResponse.createdAt) + && Objects.equals(this.updatedAt, getActionResponse.updatedAt) + && Objects.equals(this.records, getActionResponse.records); + } + + @Override + public int hashCode() { + return Objects.hash( + id, + status, + providerId, + actionType, + opportunityId, + positionId, + amount, + createdAt, + updatedAt, + records); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GetActionResponse {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" providerId: ").append(toIndentedString(providerId)).append("\n"); + sb.append(" actionType: ").append(toIndentedString(actionType)).append("\n"); + sb.append(" opportunityId: ").append(toIndentedString(opportunityId)).append("\n"); + sb.append(" positionId: ").append(toIndentedString(positionId)).append("\n"); + sb.append(" amount: ").append(toIndentedString(amount)).append("\n"); + sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); + sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); + sb.append(" records: ").append(toIndentedString(records)).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 `status` to the URL query string + if (getStatus() != null) { + joiner.add( + String.format( + "%sstatus%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getStatus())))); + } + + // add `providerId` to the URL query string + if (getProviderId() != null) { + joiner.add( + String.format( + "%sproviderId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getProviderId())))); + } + + // add `actionType` to the URL query string + if (getActionType() != null) { + joiner.add( + String.format( + "%sactionType%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getActionType())))); + } + + // add `opportunityId` to the URL query string + if (getOpportunityId() != null) { + joiner.add( + String.format( + "%sopportunityId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getOpportunityId())))); + } + + // add `positionId` to the URL query string + if (getPositionId() != null) { + joiner.add( + String.format( + "%spositionId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getPositionId())))); + } + + // add `amount` to the URL query string + if (getAmount() != null) { + joiner.add( + String.format( + "%samount%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getAmount())))); + } + + // add `createdAt` to the URL query string + if (getCreatedAt() != null) { + joiner.add( + String.format( + "%screatedAt%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getCreatedAt())))); + } + + // add `updatedAt` to the URL query string + if (getUpdatedAt() != null) { + joiner.add( + String.format( + "%supdatedAt%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getUpdatedAt())))); + } + + // add `records` to the URL query string + if (getRecords() != null) { + for (int i = 0; i < getRecords().size(); i++) { + if (getRecords().get(i) != null) { + joiner.add( + getRecords() + .get(i) + .toUrlQueryString( + String.format( + "%srecords%s%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", + containerPrefix, + i, + containerSuffix)))); + } + } + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/GetActionsResponse.java b/src/main/java/com/fireblocks/sdk/model/GetActionsResponse.java new file mode 100644 index 00000000..a19cbd4a --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/GetActionsResponse.java @@ -0,0 +1,290 @@ +/* + * 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; + +/** GetActionsResponse */ +@JsonPropertyOrder({ + GetActionsResponse.JSON_PROPERTY_DATA, + GetActionsResponse.JSON_PROPERTY_NEXT, + GetActionsResponse.JSON_PROPERTY_PREV, + GetActionsResponse.JSON_PROPERTY_TOTAL +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class GetActionsResponse { + 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_PREV = "prev"; + @jakarta.annotation.Nullable private String prev; + + public static final String JSON_PROPERTY_TOTAL = "total"; + @jakarta.annotation.Nonnull private Integer total; + + public GetActionsResponse() {} + + @JsonCreator + public GetActionsResponse( + @JsonProperty(value = JSON_PROPERTY_DATA, required = true) List data, + @JsonProperty(value = JSON_PROPERTY_TOTAL, required = true) Integer total) { + this.data = data; + this.total = total; + } + + public GetActionsResponse data(@jakarta.annotation.Nonnull List data) { + this.data = data; + return this; + } + + public GetActionsResponse addDataItem(GetActionResponse dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * Page of lending actions for this query. + * + * @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 GetActionsResponse next(@jakarta.annotation.Nullable String next) { + this.next = next; + return this; + } + + /** + * Opaque cursor for the next page; empty when there is no next page. + * + * @return next + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_NEXT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getNext() { + return next; + } + + @JsonProperty(JSON_PROPERTY_NEXT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setNext(@jakarta.annotation.Nullable String next) { + this.next = next; + } + + public GetActionsResponse prev(@jakarta.annotation.Nullable String prev) { + this.prev = prev; + return this; + } + + /** + * Opaque cursor for the previous page; empty when there is no previous page. + * + * @return prev + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_PREV) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getPrev() { + return prev; + } + + @JsonProperty(JSON_PROPERTY_PREV) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setPrev(@jakarta.annotation.Nullable String prev) { + this.prev = prev; + } + + public GetActionsResponse total(@jakarta.annotation.Nonnull Integer total) { + this.total = total; + return this; + } + + /** + * Total number of items matching the query. + * + * @return total + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_TOTAL) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Integer getTotal() { + return total; + } + + @JsonProperty(JSON_PROPERTY_TOTAL) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setTotal(@jakarta.annotation.Nonnull Integer total) { + this.total = total; + } + + /** Return true if this GetActionsResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetActionsResponse getActionsResponse = (GetActionsResponse) o; + return Objects.equals(this.data, getActionsResponse.data) + && Objects.equals(this.next, getActionsResponse.next) + && Objects.equals(this.prev, getActionsResponse.prev) + && Objects.equals(this.total, getActionsResponse.total); + } + + @Override + public int hashCode() { + return Objects.hash(data, next, prev, total); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GetActionsResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" next: ").append(toIndentedString(next)).append("\n"); + sb.append(" prev: ").append(toIndentedString(prev)).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 `prev` to the URL query string + if (getPrev() != null) { + joiner.add( + String.format( + "%sprev%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getPrev())))); + } + + // 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/GetByorkVerdictResponse.java b/src/main/java/com/fireblocks/sdk/model/GetByorkVerdictResponse.java new file mode 100644 index 00000000..4c9a6d8a --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/GetByorkVerdictResponse.java @@ -0,0 +1,192 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fireblocks.sdk.ApiClient; +import java.util.Objects; +import java.util.StringJoiner; + +/** Response for GET BYORK verdict (current verdict/status for a transaction). */ +@JsonPropertyOrder({ + GetByorkVerdictResponse.JSON_PROPERTY_STATUS, + GetByorkVerdictResponse.JSON_PROPERTY_VERDICT +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class GetByorkVerdictResponse { + public static final String JSON_PROPERTY_STATUS = "status"; + @jakarta.annotation.Nonnull private ByorkVerdictResponseStatusEnum status; + + public static final String JSON_PROPERTY_VERDICT = "verdict"; + @jakarta.annotation.Nonnull private ByorkVerdictEnum verdict; + + public GetByorkVerdictResponse() {} + + @JsonCreator + public GetByorkVerdictResponse( + @JsonProperty(value = JSON_PROPERTY_STATUS, required = true) + ByorkVerdictResponseStatusEnum status, + @JsonProperty(value = JSON_PROPERTY_VERDICT, required = true) + ByorkVerdictEnum verdict) { + this.status = status; + this.verdict = verdict; + } + + public GetByorkVerdictResponse status( + @jakarta.annotation.Nonnull ByorkVerdictResponseStatusEnum status) { + this.status = status; + return this; + } + + /** + * Get status + * + * @return status + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_STATUS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public ByorkVerdictResponseStatusEnum getStatus() { + return status; + } + + @JsonProperty(JSON_PROPERTY_STATUS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setStatus(@jakarta.annotation.Nonnull ByorkVerdictResponseStatusEnum status) { + this.status = status; + } + + public GetByorkVerdictResponse verdict(@jakarta.annotation.Nonnull ByorkVerdictEnum verdict) { + this.verdict = verdict; + return this; + } + + /** + * Get verdict + * + * @return verdict + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_VERDICT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public ByorkVerdictEnum getVerdict() { + return verdict; + } + + @JsonProperty(JSON_PROPERTY_VERDICT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setVerdict(@jakarta.annotation.Nonnull ByorkVerdictEnum verdict) { + this.verdict = verdict; + } + + /** Return true if this GetByorkVerdictResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetByorkVerdictResponse getByorkVerdictResponse = (GetByorkVerdictResponse) o; + return Objects.equals(this.status, getByorkVerdictResponse.status) + && Objects.equals(this.verdict, getByorkVerdictResponse.verdict); + } + + @Override + public int hashCode() { + return Objects.hash(status, verdict); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GetByorkVerdictResponse {\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" verdict: ").append(toIndentedString(verdict)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first + * line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + /** + * Convert the instance into URL query string. + * + * @return URL query string + */ + public String toUrlQueryString() { + return toUrlQueryString(null); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + String suffix = ""; + String containerSuffix = ""; + String containerPrefix = ""; + if (prefix == null) { + // style=form, explode=true, e.g. /pet?name=cat&type=manx + prefix = ""; + } else { + // deepObject style e.g. /pet?id[name]=cat&id[type]=manx + prefix = prefix + "["; + suffix = "]"; + containerSuffix = "]"; + containerPrefix = "["; + } + + StringJoiner joiner = new StringJoiner("&"); + + // add `status` to the URL query string + if (getStatus() != null) { + joiner.add( + String.format( + "%sstatus%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getStatus())))); + } + + // add `verdict` to the URL query string + if (getVerdict() != null) { + joiner.add( + String.format( + "%sverdict%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getVerdict())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/GetOpportunitiesResponse.java b/src/main/java/com/fireblocks/sdk/model/GetOpportunitiesResponse.java new file mode 100644 index 00000000..d551c0f0 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/GetOpportunitiesResponse.java @@ -0,0 +1,290 @@ +/* + * 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; + +/** GetOpportunitiesResponse */ +@JsonPropertyOrder({ + GetOpportunitiesResponse.JSON_PROPERTY_DATA, + GetOpportunitiesResponse.JSON_PROPERTY_NEXT, + GetOpportunitiesResponse.JSON_PROPERTY_PREV, + GetOpportunitiesResponse.JSON_PROPERTY_TOTAL +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class GetOpportunitiesResponse { + 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_PREV = "prev"; + @jakarta.annotation.Nullable private String prev; + + public static final String JSON_PROPERTY_TOTAL = "total"; + @jakarta.annotation.Nonnull private Integer total; + + public GetOpportunitiesResponse() {} + + @JsonCreator + public GetOpportunitiesResponse( + @JsonProperty(value = JSON_PROPERTY_DATA, required = true) List data, + @JsonProperty(value = JSON_PROPERTY_TOTAL, required = true) Integer total) { + this.data = data; + this.total = total; + } + + public GetOpportunitiesResponse data(@jakarta.annotation.Nonnull List data) { + this.data = data; + return this; + } + + public GetOpportunitiesResponse addDataItem(Opportunity dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * Page of lending opportunities for this query. + * + * @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 GetOpportunitiesResponse next(@jakarta.annotation.Nullable String next) { + this.next = next; + return this; + } + + /** + * Opaque cursor for the next page; empty when there is no next page. + * + * @return next + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_NEXT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getNext() { + return next; + } + + @JsonProperty(JSON_PROPERTY_NEXT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setNext(@jakarta.annotation.Nullable String next) { + this.next = next; + } + + public GetOpportunitiesResponse prev(@jakarta.annotation.Nullable String prev) { + this.prev = prev; + return this; + } + + /** + * Opaque cursor for the previous page; empty when there is no previous page. + * + * @return prev + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_PREV) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getPrev() { + return prev; + } + + @JsonProperty(JSON_PROPERTY_PREV) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setPrev(@jakarta.annotation.Nullable String prev) { + this.prev = prev; + } + + public GetOpportunitiesResponse total(@jakarta.annotation.Nonnull Integer total) { + this.total = total; + return this; + } + + /** + * Total number of items matching the query. + * + * @return total + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_TOTAL) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Integer getTotal() { + return total; + } + + @JsonProperty(JSON_PROPERTY_TOTAL) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setTotal(@jakarta.annotation.Nonnull Integer total) { + this.total = total; + } + + /** Return true if this GetOpportunitiesResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetOpportunitiesResponse getOpportunitiesResponse = (GetOpportunitiesResponse) o; + return Objects.equals(this.data, getOpportunitiesResponse.data) + && Objects.equals(this.next, getOpportunitiesResponse.next) + && Objects.equals(this.prev, getOpportunitiesResponse.prev) + && Objects.equals(this.total, getOpportunitiesResponse.total); + } + + @Override + public int hashCode() { + return Objects.hash(data, next, prev, total); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GetOpportunitiesResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" next: ").append(toIndentedString(next)).append("\n"); + sb.append(" prev: ").append(toIndentedString(prev)).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 `prev` to the URL query string + if (getPrev() != null) { + joiner.add( + String.format( + "%sprev%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getPrev())))); + } + + // 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/GetPositionsResponse.java b/src/main/java/com/fireblocks/sdk/model/GetPositionsResponse.java new file mode 100644 index 00000000..0fdc27f7 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/GetPositionsResponse.java @@ -0,0 +1,290 @@ +/* + * 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; + +/** GetPositionsResponse */ +@JsonPropertyOrder({ + GetPositionsResponse.JSON_PROPERTY_DATA, + GetPositionsResponse.JSON_PROPERTY_NEXT, + GetPositionsResponse.JSON_PROPERTY_PREV, + GetPositionsResponse.JSON_PROPERTY_TOTAL +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class GetPositionsResponse { + 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_PREV = "prev"; + @jakarta.annotation.Nullable private String prev; + + public static final String JSON_PROPERTY_TOTAL = "total"; + @jakarta.annotation.Nonnull private Integer total; + + public GetPositionsResponse() {} + + @JsonCreator + public GetPositionsResponse( + @JsonProperty(value = JSON_PROPERTY_DATA, required = true) List data, + @JsonProperty(value = JSON_PROPERTY_TOTAL, required = true) Integer total) { + this.data = data; + this.total = total; + } + + public GetPositionsResponse data(@jakarta.annotation.Nonnull List data) { + this.data = data; + return this; + } + + public GetPositionsResponse addDataItem(Position2 dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * Page of user lending positions for this query. + * + * @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 GetPositionsResponse next(@jakarta.annotation.Nullable String next) { + this.next = next; + return this; + } + + /** + * Opaque cursor for the next page; empty when there is no next page. + * + * @return next + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_NEXT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getNext() { + return next; + } + + @JsonProperty(JSON_PROPERTY_NEXT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setNext(@jakarta.annotation.Nullable String next) { + this.next = next; + } + + public GetPositionsResponse prev(@jakarta.annotation.Nullable String prev) { + this.prev = prev; + return this; + } + + /** + * Opaque cursor for the previous page; empty when there is no previous page. + * + * @return prev + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_PREV) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getPrev() { + return prev; + } + + @JsonProperty(JSON_PROPERTY_PREV) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setPrev(@jakarta.annotation.Nullable String prev) { + this.prev = prev; + } + + public GetPositionsResponse total(@jakarta.annotation.Nonnull Integer total) { + this.total = total; + return this; + } + + /** + * Total number of items matching the query. + * + * @return total + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_TOTAL) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Integer getTotal() { + return total; + } + + @JsonProperty(JSON_PROPERTY_TOTAL) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setTotal(@jakarta.annotation.Nonnull Integer total) { + this.total = total; + } + + /** Return true if this GetPositionsResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetPositionsResponse getPositionsResponse = (GetPositionsResponse) o; + return Objects.equals(this.data, getPositionsResponse.data) + && Objects.equals(this.next, getPositionsResponse.next) + && Objects.equals(this.prev, getPositionsResponse.prev) + && Objects.equals(this.total, getPositionsResponse.total); + } + + @Override + public int hashCode() { + return Objects.hash(data, next, prev, total); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GetPositionsResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" next: ").append(toIndentedString(next)).append("\n"); + sb.append(" prev: ").append(toIndentedString(prev)).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 `prev` to the URL query string + if (getPrev() != null) { + joiner.add( + String.format( + "%sprev%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getPrev())))); + } + + // 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/GetProvidersResponse.java b/src/main/java/com/fireblocks/sdk/model/GetProvidersResponse.java new file mode 100644 index 00000000..ae9b7730 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/GetProvidersResponse.java @@ -0,0 +1,290 @@ +/* + * 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; + +/** GetProvidersResponse */ +@JsonPropertyOrder({ + GetProvidersResponse.JSON_PROPERTY_DATA, + GetProvidersResponse.JSON_PROPERTY_NEXT, + GetProvidersResponse.JSON_PROPERTY_PREV, + GetProvidersResponse.JSON_PROPERTY_TOTAL +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class GetProvidersResponse { + 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_PREV = "prev"; + @jakarta.annotation.Nullable private String prev; + + public static final String JSON_PROPERTY_TOTAL = "total"; + @jakarta.annotation.Nonnull private Integer total; + + public GetProvidersResponse() {} + + @JsonCreator + public GetProvidersResponse( + @JsonProperty(value = JSON_PROPERTY_DATA, required = true) List data, + @JsonProperty(value = JSON_PROPERTY_TOTAL, required = true) Integer total) { + this.data = data; + this.total = total; + } + + public GetProvidersResponse data(@jakarta.annotation.Nonnull List data) { + this.data = data; + return this; + } + + public GetProvidersResponse addDataItem(EarnProvider dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * Page of integrated lending providers. + * + * @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 GetProvidersResponse next(@jakarta.annotation.Nullable String next) { + this.next = next; + return this; + } + + /** + * Opaque cursor for the next page; empty when there is no next page. + * + * @return next + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_NEXT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getNext() { + return next; + } + + @JsonProperty(JSON_PROPERTY_NEXT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setNext(@jakarta.annotation.Nullable String next) { + this.next = next; + } + + public GetProvidersResponse prev(@jakarta.annotation.Nullable String prev) { + this.prev = prev; + return this; + } + + /** + * Opaque cursor for the previous page; empty when there is no previous page. + * + * @return prev + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_PREV) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getPrev() { + return prev; + } + + @JsonProperty(JSON_PROPERTY_PREV) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setPrev(@jakarta.annotation.Nullable String prev) { + this.prev = prev; + } + + public GetProvidersResponse total(@jakarta.annotation.Nonnull Integer total) { + this.total = total; + return this; + } + + /** + * Total number of items matching the query. + * + * @return total + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_TOTAL) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Integer getTotal() { + return total; + } + + @JsonProperty(JSON_PROPERTY_TOTAL) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setTotal(@jakarta.annotation.Nonnull Integer total) { + this.total = total; + } + + /** Return true if this GetProvidersResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetProvidersResponse getProvidersResponse = (GetProvidersResponse) o; + return Objects.equals(this.data, getProvidersResponse.data) + && Objects.equals(this.next, getProvidersResponse.next) + && Objects.equals(this.prev, getProvidersResponse.prev) + && Objects.equals(this.total, getProvidersResponse.total); + } + + @Override + public int hashCode() { + return Objects.hash(data, next, prev, total); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GetProvidersResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" next: ").append(toIndentedString(next)).append("\n"); + sb.append(" prev: ").append(toIndentedString(prev)).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 `prev` to the URL query string + if (getPrev() != null) { + joiner.add( + String.format( + "%sprev%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getPrev())))); + } + + // 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/GleifData.java b/src/main/java/com/fireblocks/sdk/model/GleifData.java index da1d2eeb..77c1fab3 100644 --- a/src/main/java/com/fireblocks/sdk/model/GleifData.java +++ b/src/main/java/com/fireblocks/sdk/model/GleifData.java @@ -28,6 +28,7 @@ @JsonPropertyOrder({ GleifData.JSON_PROPERTY_LEI, GleifData.JSON_PROPERTY_LEGAL_NAME, + GleifData.JSON_PROPERTY_LEGAL_NAME_LANGUAGE, GleifData.JSON_PROPERTY_OTHER_NAMES, GleifData.JSON_PROPERTY_LEGAL_ADDRESS_REGION, GleifData.JSON_PROPERTY_LEGAL_ADDRESS_COUNTRY, @@ -43,8 +44,11 @@ public class GleifData { public static final String JSON_PROPERTY_LEGAL_NAME = "legalName"; @jakarta.annotation.Nonnull private String legalName; + public static final String JSON_PROPERTY_LEGAL_NAME_LANGUAGE = "legalNameLanguage"; + @jakarta.annotation.Nullable private String legalNameLanguage; + public static final String JSON_PROPERTY_OTHER_NAMES = "otherNames"; - @jakarta.annotation.Nullable private List otherNames; + @jakarta.annotation.Nullable private List otherNames; public static final String JSON_PROPERTY_LEGAL_ADDRESS_REGION = "legalAddressRegion"; @jakarta.annotation.Nullable private String legalAddressRegion; @@ -114,12 +118,36 @@ public void setLegalName(@jakarta.annotation.Nonnull String legalName) { this.legalName = legalName; } - public GleifData otherNames(@jakarta.annotation.Nullable List otherNames) { + public GleifData legalNameLanguage(@jakarta.annotation.Nullable String legalNameLanguage) { + this.legalNameLanguage = legalNameLanguage; + return this; + } + + /** + * Two-letter ISO 639-1 language code + * + * @return legalNameLanguage + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_LEGAL_NAME_LANGUAGE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getLegalNameLanguage() { + return legalNameLanguage; + } + + @JsonProperty(JSON_PROPERTY_LEGAL_NAME_LANGUAGE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setLegalNameLanguage(@jakarta.annotation.Nullable String legalNameLanguage) { + this.legalNameLanguage = legalNameLanguage; + } + + public GleifData otherNames( + @jakarta.annotation.Nullable List otherNames) { this.otherNames = otherNames; return this; } - public GleifData addOtherNamesItem(String otherNamesItem) { + public GleifData addOtherNamesItem(GleifOtherLegalEntityName otherNamesItem) { if (this.otherNames == null) { this.otherNames = new ArrayList<>(); } @@ -135,13 +163,14 @@ public GleifData addOtherNamesItem(String otherNamesItem) { @jakarta.annotation.Nullable @JsonProperty(JSON_PROPERTY_OTHER_NAMES) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public List getOtherNames() { + public List getOtherNames() { return otherNames; } @JsonProperty(JSON_PROPERTY_OTHER_NAMES) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setOtherNames(@jakarta.annotation.Nullable List otherNames) { + public void setOtherNames( + @jakarta.annotation.Nullable List otherNames) { this.otherNames = otherNames; } @@ -226,6 +255,7 @@ public boolean equals(Object o) { GleifData gleifData = (GleifData) o; return Objects.equals(this.lei, gleifData.lei) && Objects.equals(this.legalName, gleifData.legalName) + && Objects.equals(this.legalNameLanguage, gleifData.legalNameLanguage) && Objects.equals(this.otherNames, gleifData.otherNames) && Objects.equals(this.legalAddressRegion, gleifData.legalAddressRegion) && Objects.equals(this.legalAddressCountry, gleifData.legalAddressCountry) @@ -237,6 +267,7 @@ public int hashCode() { return Objects.hash( lei, legalName, + legalNameLanguage, otherNames, legalAddressRegion, legalAddressCountry, @@ -249,6 +280,9 @@ public String toString() { sb.append("class GleifData {\n"); sb.append(" lei: ").append(toIndentedString(lei)).append("\n"); sb.append(" legalName: ").append(toIndentedString(legalName)).append("\n"); + sb.append(" legalNameLanguage: ") + .append(toIndentedString(legalNameLanguage)) + .append("\n"); sb.append(" otherNames: ").append(toIndentedString(otherNames)).append("\n"); sb.append(" legalAddressRegion: ") .append(toIndentedString(legalAddressRegion)) @@ -324,20 +358,36 @@ public String toUrlQueryString(String prefix) { ApiClient.urlEncode(ApiClient.valueToString(getLegalName())))); } + // add `legalNameLanguage` to the URL query string + if (getLegalNameLanguage() != null) { + joiner.add( + String.format( + "%slegalNameLanguage%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getLegalNameLanguage())))); + } + // add `otherNames` to the URL query string if (getOtherNames() != null) { for (int i = 0; i < getOtherNames().size(); i++) { - joiner.add( - String.format( - "%sotherNames%s%s=%s", - prefix, - suffix, - "".equals(suffix) - ? "" - : String.format( - "%s%d%s", containerPrefix, i, containerSuffix), - ApiClient.urlEncode( - ApiClient.valueToString(getOtherNames().get(i))))); + if (getOtherNames().get(i) != null) { + joiner.add( + getOtherNames() + .get(i) + .toUrlQueryString( + String.format( + "%sotherNames%s%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", + containerPrefix, + i, + containerSuffix)))); + } } } diff --git a/src/main/java/com/fireblocks/sdk/model/GleifOtherLegalEntityName.java b/src/main/java/com/fireblocks/sdk/model/GleifOtherLegalEntityName.java new file mode 100644 index 00000000..79faa726 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/GleifOtherLegalEntityName.java @@ -0,0 +1,189 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fireblocks.sdk.ApiClient; +import java.util.Objects; +import java.util.StringJoiner; + +/** GleifOtherLegalEntityName */ +@JsonPropertyOrder({ + GleifOtherLegalEntityName.JSON_PROPERTY_NAME, + GleifOtherLegalEntityName.JSON_PROPERTY_LANGUAGE +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class GleifOtherLegalEntityName { + public static final String JSON_PROPERTY_NAME = "name"; + @jakarta.annotation.Nonnull private String name; + + public static final String JSON_PROPERTY_LANGUAGE = "language"; + @jakarta.annotation.Nonnull private String language; + + public GleifOtherLegalEntityName() {} + + @JsonCreator + public GleifOtherLegalEntityName( + @JsonProperty(value = JSON_PROPERTY_NAME, required = true) String name, + @JsonProperty(value = JSON_PROPERTY_LANGUAGE, required = true) String language) { + this.name = name; + this.language = language; + } + + public GleifOtherLegalEntityName name(@jakarta.annotation.Nonnull String name) { + this.name = name; + return this; + } + + /** + * Alternative name of the legal entity + * + * @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 GleifOtherLegalEntityName language(@jakarta.annotation.Nonnull String language) { + this.language = language; + return this; + } + + /** + * Two-letter ISO 639-1 language code + * + * @return language + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_LANGUAGE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getLanguage() { + return language; + } + + @JsonProperty(JSON_PROPERTY_LANGUAGE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setLanguage(@jakarta.annotation.Nonnull String language) { + this.language = language; + } + + /** Return true if this GleifOtherLegalEntityName object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GleifOtherLegalEntityName gleifOtherLegalEntityName = (GleifOtherLegalEntityName) o; + return Objects.equals(this.name, gleifOtherLegalEntityName.name) + && Objects.equals(this.language, gleifOtherLegalEntityName.language); + } + + @Override + public int hashCode() { + return Objects.hash(name, language); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GleifOtherLegalEntityName {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" language: ").append(toIndentedString(language)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first + * line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + /** + * Convert the instance into URL query string. + * + * @return URL query string + */ + public String toUrlQueryString() { + return toUrlQueryString(null); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + String suffix = ""; + String containerSuffix = ""; + String containerPrefix = ""; + if (prefix == null) { + // style=form, explode=true, e.g. /pet?name=cat&type=manx + prefix = ""; + } else { + // deepObject style e.g. /pet?id[name]=cat&id[type]=manx + prefix = prefix + "["; + suffix = "]"; + containerSuffix = "]"; + containerPrefix = "["; + } + + StringJoiner joiner = new StringJoiner("&"); + + // add `name` to the URL query string + if (getName() != null) { + joiner.add( + String.format( + "%sname%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getName())))); + } + + // add `language` to the URL query string + if (getLanguage() != null) { + joiner.add( + String.format( + "%slanguage%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getLanguage())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/IdentificationPolicyOverride.java b/src/main/java/com/fireblocks/sdk/model/IdentificationPolicyOverride.java new file mode 100644 index 00000000..cfa0b80a --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/IdentificationPolicyOverride.java @@ -0,0 +1,283 @@ +/* + * 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; + +/** + * Override scoped by one or more dimensions. More dimensions = higher priority. Equal priority + * ties are broken by array order. **Validation:** At least one of `asset`, + * `rail`, or `flowDirection` will be present. Priority (highest to lowest): 1. + * asset + rail + flowDirection 2. asset + rail 2. asset + flowDirection 2. rail + flowDirection 3. + * asset only 3. rail only 3. flowDirection only 4. defaultSchema (no override matched) + */ +@JsonPropertyOrder({ + IdentificationPolicyOverride.JSON_PROPERTY_ASSET, + IdentificationPolicyOverride.JSON_PROPERTY_RAIL, + IdentificationPolicyOverride.JSON_PROPERTY_FLOW_DIRECTION, + IdentificationPolicyOverride.JSON_PROPERTY_SCHEMA +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class IdentificationPolicyOverride { + public static final String JSON_PROPERTY_ASSET = "asset"; + @jakarta.annotation.Nullable private String asset; + + public static final String JSON_PROPERTY_RAIL = "rail"; + @jakarta.annotation.Nullable private TransferRail rail; + + public static final String JSON_PROPERTY_FLOW_DIRECTION = "flowDirection"; + @jakarta.annotation.Nullable private FlowDirection flowDirection; + + public static final String JSON_PROPERTY_SCHEMA = "schema"; + @jakarta.annotation.Nonnull private String schema; + + public IdentificationPolicyOverride() {} + + @JsonCreator + public IdentificationPolicyOverride( + @JsonProperty(value = JSON_PROPERTY_SCHEMA, required = true) String schema) { + this.schema = schema; + } + + public IdentificationPolicyOverride asset(@jakarta.annotation.Nullable String asset) { + this.asset = asset; + return this; + } + + /** + * Fireblocks asset ID (fiat or crypto). + * + * @return asset + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ASSET) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getAsset() { + return asset; + } + + @JsonProperty(JSON_PROPERTY_ASSET) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setAsset(@jakarta.annotation.Nullable String asset) { + this.asset = asset; + } + + public IdentificationPolicyOverride rail(@jakarta.annotation.Nullable TransferRail rail) { + this.rail = rail; + return this; + } + + /** + * Get rail + * + * @return rail + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_RAIL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public TransferRail getRail() { + return rail; + } + + @JsonProperty(JSON_PROPERTY_RAIL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setRail(@jakarta.annotation.Nullable TransferRail rail) { + this.rail = rail; + } + + public IdentificationPolicyOverride flowDirection( + @jakarta.annotation.Nullable FlowDirection flowDirection) { + this.flowDirection = flowDirection; + return this; + } + + /** + * Get flowDirection + * + * @return flowDirection + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_FLOW_DIRECTION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public FlowDirection getFlowDirection() { + return flowDirection; + } + + @JsonProperty(JSON_PROPERTY_FLOW_DIRECTION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setFlowDirection(@jakarta.annotation.Nullable FlowDirection flowDirection) { + this.flowDirection = flowDirection; + } + + public IdentificationPolicyOverride schema(@jakarta.annotation.Nonnull String schema) { + this.schema = schema; + return this; + } + + /** + * A JSON Schema (draft-07) in string format that validates the ParticipantsIdentification + * object on requests where the provider manifest lists that endpoint in + * `participantsIdentificationPolicy.supportedEndpoints` (e.g. POST /orders). Defines + * which fields from originator and/or beneficiary are required. The schema uses oneOf to + * discriminate between INDIVIDUAL (PersonalIdentification) and BUSINESS + * (BusinessIdentification) entity types for each participant. For INDIVIDUAL: fullName, + * dateOfBirth, postalAddress, email, phone, idNumber, idType, etc. For BUSINESS: businessName, + * registrationNumber, postalAddress, email, phone, etc. If you constrain `idType` or + * `additionalIdType` with a JSON Schema `enum`, use the same values as + * `PersonalIdentificationType` (authoritative list in that schema). The example below + * mirrors that enum. The string content is expected to be valid JSON (application/json). + * + * @return schema + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_SCHEMA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getSchema() { + return schema; + } + + @JsonProperty(JSON_PROPERTY_SCHEMA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setSchema(@jakarta.annotation.Nonnull String schema) { + this.schema = schema; + } + + /** Return true if this IdentificationPolicyOverride object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IdentificationPolicyOverride identificationPolicyOverride = + (IdentificationPolicyOverride) o; + return Objects.equals(this.asset, identificationPolicyOverride.asset) + && Objects.equals(this.rail, identificationPolicyOverride.rail) + && Objects.equals(this.flowDirection, identificationPolicyOverride.flowDirection) + && Objects.equals(this.schema, identificationPolicyOverride.schema); + } + + @Override + public int hashCode() { + return Objects.hash(asset, rail, flowDirection, schema); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class IdentificationPolicyOverride {\n"); + sb.append(" asset: ").append(toIndentedString(asset)).append("\n"); + sb.append(" rail: ").append(toIndentedString(rail)).append("\n"); + sb.append(" flowDirection: ").append(toIndentedString(flowDirection)).append("\n"); + sb.append(" schema: ").append(toIndentedString(schema)).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 `asset` to the URL query string + if (getAsset() != null) { + joiner.add( + String.format( + "%sasset%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getAsset())))); + } + + // add `rail` to the URL query string + if (getRail() != null) { + joiner.add( + String.format( + "%srail%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getRail())))); + } + + // add `flowDirection` to the URL query string + if (getFlowDirection() != null) { + joiner.add( + String.format( + "%sflowDirection%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getFlowDirection())))); + } + + // add `schema` to the URL query string + if (getSchema() != null) { + joiner.add( + String.format( + "%sschema%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getSchema())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/ListLegalEntitiesResponse.java b/src/main/java/com/fireblocks/sdk/model/ListLegalEntitiesResponse.java index ece6ac57..4eb46b31 100644 --- a/src/main/java/com/fireblocks/sdk/model/ListLegalEntitiesResponse.java +++ b/src/main/java/com/fireblocks/sdk/model/ListLegalEntitiesResponse.java @@ -27,8 +27,7 @@ @JsonPropertyOrder({ ListLegalEntitiesResponse.JSON_PROPERTY_TOTAL, ListLegalEntitiesResponse.JSON_PROPERTY_DATA, - ListLegalEntitiesResponse.JSON_PROPERTY_NEXT, - ListLegalEntitiesResponse.JSON_PROPERTY_PREV + ListLegalEntitiesResponse.JSON_PROPERTY_NEXT }) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", @@ -43,9 +42,6 @@ public class ListLegalEntitiesResponse { public static final String JSON_PROPERTY_NEXT = "next"; @jakarta.annotation.Nullable private String next; - public static final String JSON_PROPERTY_PREV = "prev"; - @jakarta.annotation.Nullable private String prev; - public ListLegalEntitiesResponse() {} @JsonCreator @@ -133,29 +129,6 @@ public void setNext(@jakarta.annotation.Nullable String next) { this.next = next; } - public ListLegalEntitiesResponse prev(@jakarta.annotation.Nullable String prev) { - this.prev = prev; - return this; - } - - /** - * Cursor to pass as `pageCursor` to retrieve the previous page - * - * @return prev - */ - @jakarta.annotation.Nullable - @JsonProperty(JSON_PROPERTY_PREV) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public String getPrev() { - return prev; - } - - @JsonProperty(JSON_PROPERTY_PREV) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setPrev(@jakarta.annotation.Nullable String prev) { - this.prev = prev; - } - /** Return true if this ListLegalEntitiesResponse object is equal to o. */ @Override public boolean equals(Object o) { @@ -168,13 +141,12 @@ public boolean equals(Object o) { ListLegalEntitiesResponse listLegalEntitiesResponse = (ListLegalEntitiesResponse) o; return Objects.equals(this.total, listLegalEntitiesResponse.total) && Objects.equals(this.data, listLegalEntitiesResponse.data) - && Objects.equals(this.next, listLegalEntitiesResponse.next) - && Objects.equals(this.prev, listLegalEntitiesResponse.prev); + && Objects.equals(this.next, listLegalEntitiesResponse.next); } @Override public int hashCode() { - return Objects.hash(total, data, next, prev); + return Objects.hash(total, data, next); } @Override @@ -184,7 +156,6 @@ public String toString() { sb.append(" total: ").append(toIndentedString(total)).append("\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" next: ").append(toIndentedString(next)).append("\n"); - sb.append(" prev: ").append(toIndentedString(prev)).append("\n"); sb.append("}"); return sb.toString(); } @@ -275,16 +246,6 @@ public String toUrlQueryString(String prefix) { ApiClient.urlEncode(ApiClient.valueToString(getNext())))); } - // add `prev` to the URL query string - if (getPrev() != null) { - joiner.add( - String.format( - "%sprev%s=%s", - prefix, - suffix, - ApiClient.urlEncode(ApiClient.valueToString(getPrev())))); - } - return joiner.toString(); } } diff --git a/src/main/java/com/fireblocks/sdk/model/ListUtxosResponse.java b/src/main/java/com/fireblocks/sdk/model/ListUtxosResponse.java new file mode 100644 index 00000000..e1190f9d --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/ListUtxosResponse.java @@ -0,0 +1,207 @@ +/* + * 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; + +/** ListUtxosResponse */ +@JsonPropertyOrder({ListUtxosResponse.JSON_PROPERTY_DATA, ListUtxosResponse.JSON_PROPERTY_NEXT}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class ListUtxosResponse { + 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 ListUtxosResponse() {} + + @JsonCreator + public ListUtxosResponse( + @JsonProperty(value = JSON_PROPERTY_DATA, required = true) List data) { + this.data = data; + } + + public ListUtxosResponse data(@jakarta.annotation.Nonnull List data) { + this.data = data; + return this; + } + + public ListUtxosResponse addDataItem(UtxoOutput dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * List of UTXOs + * + * @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 ListUtxosResponse next(@jakarta.annotation.Nullable String next) { + this.next = next; + return this; + } + + /** + * Cursor to the next page + * + * @return next + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_NEXT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getNext() { + return next; + } + + @JsonProperty(JSON_PROPERTY_NEXT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setNext(@jakarta.annotation.Nullable String next) { + this.next = next; + } + + /** Return true if this ListUtxosResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ListUtxosResponse listUtxosResponse = (ListUtxosResponse) o; + return Objects.equals(this.data, listUtxosResponse.data) + && Objects.equals(this.next, listUtxosResponse.next); + } + + @Override + public int hashCode() { + return Objects.hash(data, next); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ListUtxosResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" next: ").append(toIndentedString(next)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first + * line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + /** + * Convert the instance into URL query string. + * + * @return URL query string + */ + public String toUrlQueryString() { + return toUrlQueryString(null); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + String suffix = ""; + String containerSuffix = ""; + String containerPrefix = ""; + if (prefix == null) { + // style=form, explode=true, e.g. /pet?name=cat&type=manx + prefix = ""; + } else { + // deepObject style e.g. /pet?id[name]=cat&id[type]=manx + prefix = prefix + "["; + suffix = "]"; + containerSuffix = "]"; + containerPrefix = "["; + } + + StringJoiner joiner = new StringJoiner("&"); + + // add `data` to the URL query string + if (getData() != null) { + for (int i = 0; i < getData().size(); i++) { + if (getData().get(i) != null) { + joiner.add( + getData() + .get(i) + .toUrlQueryString( + String.format( + "%sdata%s%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", + containerPrefix, + i, + containerSuffix)))); + } + } + } + + // add `next` to the URL query string + if (getNext() != null) { + joiner.add( + String.format( + "%snext%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getNext())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/ListVaultsForRegistrationResponse.java b/src/main/java/com/fireblocks/sdk/model/ListVaultsForRegistrationResponse.java index 5674a7c2..491ea64d 100644 --- a/src/main/java/com/fireblocks/sdk/model/ListVaultsForRegistrationResponse.java +++ b/src/main/java/com/fireblocks/sdk/model/ListVaultsForRegistrationResponse.java @@ -27,8 +27,7 @@ @JsonPropertyOrder({ ListVaultsForRegistrationResponse.JSON_PROPERTY_TOTAL, ListVaultsForRegistrationResponse.JSON_PROPERTY_DATA, - ListVaultsForRegistrationResponse.JSON_PROPERTY_NEXT, - ListVaultsForRegistrationResponse.JSON_PROPERTY_PREV + ListVaultsForRegistrationResponse.JSON_PROPERTY_NEXT }) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", @@ -43,9 +42,6 @@ public class ListVaultsForRegistrationResponse { public static final String JSON_PROPERTY_NEXT = "next"; @jakarta.annotation.Nullable private String next; - public static final String JSON_PROPERTY_PREV = "prev"; - @jakarta.annotation.Nullable private String prev; - public ListVaultsForRegistrationResponse() {} @JsonCreator @@ -131,29 +127,6 @@ public void setNext(@jakarta.annotation.Nullable String next) { this.next = next; } - public ListVaultsForRegistrationResponse prev(@jakarta.annotation.Nullable String prev) { - this.prev = prev; - return this; - } - - /** - * Cursor to pass as `pageCursor` to retrieve the previous page - * - * @return prev - */ - @jakarta.annotation.Nullable - @JsonProperty(JSON_PROPERTY_PREV) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public String getPrev() { - return prev; - } - - @JsonProperty(JSON_PROPERTY_PREV) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setPrev(@jakarta.annotation.Nullable String prev) { - this.prev = prev; - } - /** Return true if this ListVaultsForRegistrationResponse object is equal to o. */ @Override public boolean equals(Object o) { @@ -167,13 +140,12 @@ public boolean equals(Object o) { (ListVaultsForRegistrationResponse) o; return Objects.equals(this.total, listVaultsForRegistrationResponse.total) && Objects.equals(this.data, listVaultsForRegistrationResponse.data) - && Objects.equals(this.next, listVaultsForRegistrationResponse.next) - && Objects.equals(this.prev, listVaultsForRegistrationResponse.prev); + && Objects.equals(this.next, listVaultsForRegistrationResponse.next); } @Override public int hashCode() { - return Objects.hash(total, data, next, prev); + return Objects.hash(total, data, next); } @Override @@ -183,7 +155,6 @@ public String toString() { sb.append(" total: ").append(toIndentedString(total)).append("\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" next: ").append(toIndentedString(next)).append("\n"); - sb.append(" prev: ").append(toIndentedString(prev)).append("\n"); sb.append("}"); return sb.toString(); } @@ -267,16 +238,6 @@ public String toUrlQueryString(String prefix) { ApiClient.urlEncode(ApiClient.valueToString(getNext())))); } - // add `prev` to the URL query string - if (getPrev() != null) { - joiner.add( - String.format( - "%sprev%s=%s", - prefix, - suffix, - ApiClient.urlEncode(ApiClient.valueToString(getPrev())))); - } - return joiner.toString(); } } diff --git a/src/main/java/com/fireblocks/sdk/model/Manifest.java b/src/main/java/com/fireblocks/sdk/model/Manifest.java index bc8dc455..d3ba6010 100644 --- a/src/main/java/com/fireblocks/sdk/model/Manifest.java +++ b/src/main/java/com/fireblocks/sdk/model/Manifest.java @@ -24,7 +24,8 @@ @JsonPropertyOrder({ Manifest.JSON_PROPERTY_ORDER, Manifest.JSON_PROPERTY_QUOTE, - Manifest.JSON_PROPERTY_RATE + Manifest.JSON_PROPERTY_RATE, + Manifest.JSON_PROPERTY_PARTICIPANTS_IDENTIFICATION_POLICY }) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", @@ -39,6 +40,12 @@ public class Manifest { public static final String JSON_PROPERTY_RATE = "rate"; @jakarta.annotation.Nonnull private ManifestBase rate; + public static final String JSON_PROPERTY_PARTICIPANTS_IDENTIFICATION_POLICY = + "participantsIdentificationPolicy"; + + @jakarta.annotation.Nullable + private ParticipantsIdentificationPolicy participantsIdentificationPolicy; + public Manifest() {} @JsonCreator @@ -120,6 +127,33 @@ public void setRate(@jakarta.annotation.Nonnull ManifestBase rate) { this.rate = rate; } + public Manifest participantsIdentificationPolicy( + @jakarta.annotation.Nullable + ParticipantsIdentificationPolicy participantsIdentificationPolicy) { + this.participantsIdentificationPolicy = participantsIdentificationPolicy; + return this; + } + + /** + * Get participantsIdentificationPolicy + * + * @return participantsIdentificationPolicy + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_PARTICIPANTS_IDENTIFICATION_POLICY) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public ParticipantsIdentificationPolicy getParticipantsIdentificationPolicy() { + return participantsIdentificationPolicy; + } + + @JsonProperty(JSON_PROPERTY_PARTICIPANTS_IDENTIFICATION_POLICY) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setParticipantsIdentificationPolicy( + @jakarta.annotation.Nullable + ParticipantsIdentificationPolicy participantsIdentificationPolicy) { + this.participantsIdentificationPolicy = participantsIdentificationPolicy; + } + /** Return true if this Manifest object is equal to o. */ @Override public boolean equals(Object o) { @@ -132,12 +166,15 @@ public boolean equals(Object o) { Manifest manifest = (Manifest) o; return Objects.equals(this.order, manifest.order) && Objects.equals(this.quote, manifest.quote) - && Objects.equals(this.rate, manifest.rate); + && Objects.equals(this.rate, manifest.rate) + && Objects.equals( + this.participantsIdentificationPolicy, + manifest.participantsIdentificationPolicy); } @Override public int hashCode() { - return Objects.hash(order, quote, rate); + return Objects.hash(order, quote, rate, participantsIdentificationPolicy); } @Override @@ -147,6 +184,9 @@ public String toString() { sb.append(" order: ").append(toIndentedString(order)).append("\n"); sb.append(" quote: ").append(toIndentedString(quote)).append("\n"); sb.append(" rate: ").append(toIndentedString(rate)).append("\n"); + sb.append(" participantsIdentificationPolicy: ") + .append(toIndentedString(participantsIdentificationPolicy)) + .append("\n"); sb.append("}"); return sb.toString(); } @@ -209,6 +249,14 @@ public String toUrlQueryString(String prefix) { joiner.add(getRate().toUrlQueryString(prefix + "rate" + suffix)); } + // add `participantsIdentificationPolicy` to the URL query string + if (getParticipantsIdentificationPolicy() != null) { + joiner.add( + getParticipantsIdentificationPolicy() + .toUrlQueryString( + prefix + "participantsIdentificationPolicy" + suffix)); + } + return joiner.toString(); } } diff --git a/src/main/java/com/fireblocks/sdk/model/Opportunity.java b/src/main/java/com/fireblocks/sdk/model/Opportunity.java new file mode 100644 index 00000000..466efbe3 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/Opportunity.java @@ -0,0 +1,776 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fireblocks.sdk.ApiClient; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.StringJoiner; + +/** Opportunity */ +@JsonPropertyOrder({ + Opportunity.JSON_PROPERTY_ID, + Opportunity.JSON_PROPERTY_PROVIDER_ID, + Opportunity.JSON_PROPERTY_TYPE, + Opportunity.JSON_PROPERTY_CHAIN_ID, + Opportunity.JSON_PROPERTY_ADDRESS, + Opportunity.JSON_PROPERTY_NAME, + Opportunity.JSON_PROPERTY_SYMBOL, + Opportunity.JSON_PROPERTY_PRINCIPAL_ASSET, + Opportunity.JSON_PROPERTY_POSITION_ASSET, + Opportunity.JSON_PROPERTY_TOTAL_ASSETS, + Opportunity.JSON_PROPERTY_LIQUIDITY, + Opportunity.JSON_PROPERTY_APY, + Opportunity.JSON_PROPERTY_PERFORMANCE_FEE, + Opportunity.JSON_PROPERTY_MANAGEMENT_FEE, + Opportunity.JSON_PROPERTY_EXPOSURE +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class Opportunity { + public static final String JSON_PROPERTY_ID = "id"; + @jakarta.annotation.Nullable private String id; + + /** Lending protocol (`MORPHO` or `AAVE`). */ + public enum ProviderIdEnum { + MORPHO(String.valueOf("MORPHO")), + + AAVE(String.valueOf("AAVE")); + + private String value; + + ProviderIdEnum(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static ProviderIdEnum fromValue(String value) { + for (ProviderIdEnum b : ProviderIdEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + } + + public static final String JSON_PROPERTY_PROVIDER_ID = "providerId"; + @jakarta.annotation.Nullable private ProviderIdEnum providerId; + + /** Opportunity kind — vault or market. */ + public enum TypeEnum { + VAULT(String.valueOf("VAULT")), + + MARKET(String.valueOf("MARKET")); + + 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; + + public static final String JSON_PROPERTY_CHAIN_ID = "chainId"; + @jakarta.annotation.Nullable private String chainId; + + public static final String JSON_PROPERTY_ADDRESS = "address"; + @jakarta.annotation.Nullable private String address; + + public static final String JSON_PROPERTY_NAME = "name"; + @jakarta.annotation.Nullable private String name; + + public static final String JSON_PROPERTY_SYMBOL = "symbol"; + @jakarta.annotation.Nullable private String symbol; + + public static final String JSON_PROPERTY_PRINCIPAL_ASSET = "principalAsset"; + @jakarta.annotation.Nullable private EarnAsset principalAsset; + + public static final String JSON_PROPERTY_POSITION_ASSET = "positionAsset"; + @jakarta.annotation.Nullable private EarnAsset positionAsset; + + public static final String JSON_PROPERTY_TOTAL_ASSETS = "totalAssets"; + @jakarta.annotation.Nullable private String totalAssets; + + public static final String JSON_PROPERTY_LIQUIDITY = "liquidity"; + @jakarta.annotation.Nullable private String liquidity; + + public static final String JSON_PROPERTY_APY = "apy"; + @jakarta.annotation.Nullable private Apy apy; + + public static final String JSON_PROPERTY_PERFORMANCE_FEE = "performanceFee"; + @jakarta.annotation.Nullable private String performanceFee; + + public static final String JSON_PROPERTY_MANAGEMENT_FEE = "managementFee"; + @jakarta.annotation.Nullable private String managementFee; + + public static final String JSON_PROPERTY_EXPOSURE = "exposure"; + @jakarta.annotation.Nullable private List exposure; + + public Opportunity() {} + + public Opportunity id(@jakarta.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Unique opportunity identifier. + * + * @return id + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getId() { + return id; + } + + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setId(@jakarta.annotation.Nullable String id) { + this.id = id; + } + + public Opportunity providerId(@jakarta.annotation.Nullable ProviderIdEnum providerId) { + this.providerId = providerId; + return this; + } + + /** + * Lending protocol (`MORPHO` or `AAVE`). + * + * @return providerId + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_PROVIDER_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public ProviderIdEnum getProviderId() { + return providerId; + } + + @JsonProperty(JSON_PROPERTY_PROVIDER_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setProviderId(@jakarta.annotation.Nullable ProviderIdEnum providerId) { + this.providerId = providerId; + } + + public Opportunity type(@jakarta.annotation.Nullable TypeEnum type) { + this.type = type; + return this; + } + + /** + * Opportunity kind — vault or market. + * + * @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 Opportunity chainId(@jakarta.annotation.Nullable String chainId) { + this.chainId = chainId; + return this; + } + + /** + * Chain identifier as a string (e.g. \"1\" for Ethereum mainnet). + * + * @return chainId + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_CHAIN_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getChainId() { + return chainId; + } + + @JsonProperty(JSON_PROPERTY_CHAIN_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setChainId(@jakarta.annotation.Nullable String chainId) { + this.chainId = chainId; + } + + public Opportunity address(@jakarta.annotation.Nullable String address) { + this.address = address; + return this; + } + + /** + * Primary contract address for the vault or market. + * + * @return address + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ADDRESS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getAddress() { + return address; + } + + @JsonProperty(JSON_PROPERTY_ADDRESS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setAddress(@jakarta.annotation.Nullable String address) { + this.address = address; + } + + public Opportunity name(@jakarta.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Display name of the opportunity. + * + * @return name + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getName() { + return name; + } + + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setName(@jakarta.annotation.Nullable String name) { + this.name = name; + } + + public Opportunity symbol(@jakarta.annotation.Nullable String symbol) { + this.symbol = symbol; + return this; + } + + /** + * Symbol or share token ticker for the position asset. + * + * @return symbol + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_SYMBOL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getSymbol() { + return symbol; + } + + @JsonProperty(JSON_PROPERTY_SYMBOL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setSymbol(@jakarta.annotation.Nullable String symbol) { + this.symbol = symbol; + } + + public Opportunity principalAsset(@jakarta.annotation.Nullable EarnAsset principalAsset) { + this.principalAsset = principalAsset; + return this; + } + + /** + * Underlying token the user deposits (principal). + * + * @return principalAsset + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_PRINCIPAL_ASSET) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public EarnAsset getPrincipalAsset() { + return principalAsset; + } + + @JsonProperty(JSON_PROPERTY_PRINCIPAL_ASSET) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setPrincipalAsset(@jakarta.annotation.Nullable EarnAsset principalAsset) { + this.principalAsset = principalAsset; + } + + public Opportunity positionAsset(@jakarta.annotation.Nullable EarnAsset positionAsset) { + this.positionAsset = positionAsset; + return this; + } + + /** + * Token representing the user’s position in the protocol (e.g. vault share). + * + * @return positionAsset + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_POSITION_ASSET) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public EarnAsset getPositionAsset() { + return positionAsset; + } + + @JsonProperty(JSON_PROPERTY_POSITION_ASSET) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setPositionAsset(@jakarta.annotation.Nullable EarnAsset positionAsset) { + this.positionAsset = positionAsset; + } + + public Opportunity totalAssets(@jakarta.annotation.Nullable String totalAssets) { + this.totalAssets = totalAssets; + return this; + } + + /** + * Human-readable total value locked / assets in the opportunity. + * + * @return totalAssets + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TOTAL_ASSETS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getTotalAssets() { + return totalAssets; + } + + @JsonProperty(JSON_PROPERTY_TOTAL_ASSETS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setTotalAssets(@jakarta.annotation.Nullable String totalAssets) { + this.totalAssets = totalAssets; + } + + public Opportunity liquidity(@jakarta.annotation.Nullable String liquidity) { + this.liquidity = liquidity; + return this; + } + + /** + * Human-readable available liquidity. + * + * @return liquidity + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_LIQUIDITY) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getLiquidity() { + return liquidity; + } + + @JsonProperty(JSON_PROPERTY_LIQUIDITY) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setLiquidity(@jakarta.annotation.Nullable String liquidity) { + this.liquidity = liquidity; + } + + public Opportunity apy(@jakarta.annotation.Nullable Apy apy) { + this.apy = apy; + return this; + } + + /** + * APY breakdown; values are percentages (e.g. 4.25 means 4.25%). + * + * @return apy + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_APY) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Apy getApy() { + return apy; + } + + @JsonProperty(JSON_PROPERTY_APY) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setApy(@jakarta.annotation.Nullable Apy apy) { + this.apy = apy; + } + + public Opportunity performanceFee(@jakarta.annotation.Nullable String performanceFee) { + this.performanceFee = performanceFee; + return this; + } + + /** + * Performance fee as a human-readable decimal string. + * + * @return performanceFee + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_PERFORMANCE_FEE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getPerformanceFee() { + return performanceFee; + } + + @JsonProperty(JSON_PROPERTY_PERFORMANCE_FEE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setPerformanceFee(@jakarta.annotation.Nullable String performanceFee) { + this.performanceFee = performanceFee; + } + + public Opportunity managementFee(@jakarta.annotation.Nullable String managementFee) { + this.managementFee = managementFee; + return this; + } + + /** + * Management fee as a human-readable decimal string. + * + * @return managementFee + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_MANAGEMENT_FEE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getManagementFee() { + return managementFee; + } + + @JsonProperty(JSON_PROPERTY_MANAGEMENT_FEE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setManagementFee(@jakarta.annotation.Nullable String managementFee) { + this.managementFee = managementFee; + } + + public Opportunity exposure(@jakarta.annotation.Nullable List exposure) { + this.exposure = exposure; + return this; + } + + public Opportunity addExposureItem(Exposure exposureItem) { + if (this.exposure == null) { + this.exposure = new ArrayList<>(); + } + this.exposure.add(exposureItem); + return this; + } + + /** + * Optional per-asset exposure breakdown. + * + * @return exposure + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_EXPOSURE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getExposure() { + return exposure; + } + + @JsonProperty(JSON_PROPERTY_EXPOSURE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setExposure(@jakarta.annotation.Nullable List exposure) { + this.exposure = exposure; + } + + /** Return true if this Opportunity object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Opportunity opportunity = (Opportunity) o; + return Objects.equals(this.id, opportunity.id) + && Objects.equals(this.providerId, opportunity.providerId) + && Objects.equals(this.type, opportunity.type) + && Objects.equals(this.chainId, opportunity.chainId) + && Objects.equals(this.address, opportunity.address) + && Objects.equals(this.name, opportunity.name) + && Objects.equals(this.symbol, opportunity.symbol) + && Objects.equals(this.principalAsset, opportunity.principalAsset) + && Objects.equals(this.positionAsset, opportunity.positionAsset) + && Objects.equals(this.totalAssets, opportunity.totalAssets) + && Objects.equals(this.liquidity, opportunity.liquidity) + && Objects.equals(this.apy, opportunity.apy) + && Objects.equals(this.performanceFee, opportunity.performanceFee) + && Objects.equals(this.managementFee, opportunity.managementFee) + && Objects.equals(this.exposure, opportunity.exposure); + } + + @Override + public int hashCode() { + return Objects.hash( + id, + providerId, + type, + chainId, + address, + name, + symbol, + principalAsset, + positionAsset, + totalAssets, + liquidity, + apy, + performanceFee, + managementFee, + exposure); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Opportunity {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" providerId: ").append(toIndentedString(providerId)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" chainId: ").append(toIndentedString(chainId)).append("\n"); + sb.append(" address: ").append(toIndentedString(address)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" symbol: ").append(toIndentedString(symbol)).append("\n"); + sb.append(" principalAsset: ").append(toIndentedString(principalAsset)).append("\n"); + sb.append(" positionAsset: ").append(toIndentedString(positionAsset)).append("\n"); + sb.append(" totalAssets: ").append(toIndentedString(totalAssets)).append("\n"); + sb.append(" liquidity: ").append(toIndentedString(liquidity)).append("\n"); + sb.append(" apy: ").append(toIndentedString(apy)).append("\n"); + sb.append(" performanceFee: ").append(toIndentedString(performanceFee)).append("\n"); + sb.append(" managementFee: ").append(toIndentedString(managementFee)).append("\n"); + sb.append(" exposure: ").append(toIndentedString(exposure)).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 `providerId` to the URL query string + if (getProviderId() != null) { + joiner.add( + String.format( + "%sproviderId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getProviderId())))); + } + + // 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 `chainId` to the URL query string + if (getChainId() != null) { + joiner.add( + String.format( + "%schainId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getChainId())))); + } + + // add `address` to the URL query string + if (getAddress() != null) { + joiner.add( + String.format( + "%saddress%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getAddress())))); + } + + // add `name` to the URL query string + if (getName() != null) { + joiner.add( + String.format( + "%sname%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getName())))); + } + + // add `symbol` to the URL query string + if (getSymbol() != null) { + joiner.add( + String.format( + "%ssymbol%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getSymbol())))); + } + + // add `principalAsset` to the URL query string + if (getPrincipalAsset() != null) { + joiner.add(getPrincipalAsset().toUrlQueryString(prefix + "principalAsset" + suffix)); + } + + // add `positionAsset` to the URL query string + if (getPositionAsset() != null) { + joiner.add(getPositionAsset().toUrlQueryString(prefix + "positionAsset" + suffix)); + } + + // add `totalAssets` to the URL query string + if (getTotalAssets() != null) { + joiner.add( + String.format( + "%stotalAssets%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getTotalAssets())))); + } + + // add `liquidity` to the URL query string + if (getLiquidity() != null) { + joiner.add( + String.format( + "%sliquidity%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getLiquidity())))); + } + + // add `apy` to the URL query string + if (getApy() != null) { + joiner.add(getApy().toUrlQueryString(prefix + "apy" + suffix)); + } + + // add `performanceFee` to the URL query string + if (getPerformanceFee() != null) { + joiner.add( + String.format( + "%sperformanceFee%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getPerformanceFee())))); + } + + // add `managementFee` to the URL query string + if (getManagementFee() != null) { + joiner.add( + String.format( + "%smanagementFee%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getManagementFee())))); + } + + // add `exposure` to the URL query string + if (getExposure() != null) { + for (int i = 0; i < getExposure().size(); i++) { + if (getExposure().get(i) != null) { + joiner.add( + getExposure() + .get(i) + .toUrlQueryString( + String.format( + "%sexposure%s%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", + containerPrefix, + i, + containerSuffix)))); + } + } + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/ParticipantsIdentificationPolicy.java b/src/main/java/com/fireblocks/sdk/model/ParticipantsIdentificationPolicy.java new file mode 100644 index 00000000..6b2db094 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/ParticipantsIdentificationPolicy.java @@ -0,0 +1,325 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fireblocks.sdk.ApiClient; +import java.util.ArrayList; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Objects; +import java.util.Set; +import java.util.StringJoiner; + +/** + * When present on a provider manifest, specifies KYC/AML identification requirements as JSON + * Schemas and which flows in `supportedEndpoints` may require + * `participantsIdentification`. Only endpoints listed in `supportedEndpoints` + * are in scope for this policy. `defaultSchema` is the baseline; `overrides` + * refine it by `asset`, `rail`, and/or `flowDirection` (see priority + * below). The most specific matching override applies its `schema` for that request + * context: it may fully replace `defaultSchema`, or partially override it—when the + * override `schema` is not provided as a complete standalone definition, fields and rules + * omitted there continue to follow `defaultSchema`. If this object is omitted from the + * manifest, the provider imposes no PII requirements through this policy. FirstParty participants + * are always exempt. Resolution: from overrides that match the request context, choose the most + * specific (most dimensions matched); break ties by earlier position in the `overrides` + * array; if none match, use `defaultSchema`. Priority (highest precedence first): 1. + * asset + rail + flowDirection 2. Any two dimensions: asset+rail, asset+flowDirection, + * rail+flowDirection 3. Any single dimension: asset, rail, or flowDirection 4. defaultSchema (no + * override matches) + */ +@JsonPropertyOrder({ + ParticipantsIdentificationPolicy.JSON_PROPERTY_SUPPORTED_ENDPOINTS, + ParticipantsIdentificationPolicy.JSON_PROPERTY_DEFAULT_SCHEMA, + ParticipantsIdentificationPolicy.JSON_PROPERTY_OVERRIDES +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class ParticipantsIdentificationPolicy { + public static final String JSON_PROPERTY_SUPPORTED_ENDPOINTS = "supportedEndpoints"; + + @jakarta.annotation.Nonnull + private Set supportedEndpoints; + + public static final String JSON_PROPERTY_DEFAULT_SCHEMA = "defaultSchema"; + @jakarta.annotation.Nonnull private String defaultSchema; + + public static final String JSON_PROPERTY_OVERRIDES = "overrides"; + @jakarta.annotation.Nullable private List overrides; + + public ParticipantsIdentificationPolicy() {} + + @JsonCreator + public ParticipantsIdentificationPolicy( + @JsonProperty(value = JSON_PROPERTY_SUPPORTED_ENDPOINTS, required = true) + Set supportedEndpoints, + @JsonProperty(value = JSON_PROPERTY_DEFAULT_SCHEMA, required = true) + String defaultSchema) { + this.supportedEndpoints = supportedEndpoints; + this.defaultSchema = defaultSchema; + } + + public ParticipantsIdentificationPolicy supportedEndpoints( + @jakarta.annotation.Nonnull + Set supportedEndpoints) { + this.supportedEndpoints = supportedEndpoints; + return this; + } + + public ParticipantsIdentificationPolicy addSupportedEndpointsItem( + ParticipantsIdentificationSupportedEndpoint supportedEndpointsItem) { + if (this.supportedEndpoints == null) { + this.supportedEndpoints = new LinkedHashSet<>(); + } + this.supportedEndpoints.add(supportedEndpointsItem); + return this; + } + + /** + * API endpoints in scope for this participants identification policy. Values `ORDER`, + * `QUOTE`, and `RATE` correspond to manifest `order`, + * `quote`, and `rate` flows. Client requests to those endpoints may need to + * include `participantsIdentification` when the resolved schema requires it. + * + * @return supportedEndpoints + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_SUPPORTED_ENDPOINTS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Set getSupportedEndpoints() { + return supportedEndpoints; + } + + @JsonDeserialize(as = LinkedHashSet.class) + @JsonProperty(JSON_PROPERTY_SUPPORTED_ENDPOINTS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setSupportedEndpoints( + @jakarta.annotation.Nonnull + Set supportedEndpoints) { + this.supportedEndpoints = supportedEndpoints; + } + + public ParticipantsIdentificationPolicy defaultSchema( + @jakarta.annotation.Nonnull String defaultSchema) { + this.defaultSchema = defaultSchema; + return this; + } + + /** + * A JSON Schema (draft-07) in string format that validates the ParticipantsIdentification + * object on requests where the provider manifest lists that endpoint in + * `participantsIdentificationPolicy.supportedEndpoints` (e.g. POST /orders). Defines + * which fields from originator and/or beneficiary are required. The schema uses oneOf to + * discriminate between INDIVIDUAL (PersonalIdentification) and BUSINESS + * (BusinessIdentification) entity types for each participant. For INDIVIDUAL: fullName, + * dateOfBirth, postalAddress, email, phone, idNumber, idType, etc. For BUSINESS: businessName, + * registrationNumber, postalAddress, email, phone, etc. If you constrain `idType` or + * `additionalIdType` with a JSON Schema `enum`, use the same values as + * `PersonalIdentificationType` (authoritative list in that schema). The example below + * mirrors that enum. The string content is expected to be valid JSON (application/json). + * + * @return defaultSchema + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_DEFAULT_SCHEMA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getDefaultSchema() { + return defaultSchema; + } + + @JsonProperty(JSON_PROPERTY_DEFAULT_SCHEMA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setDefaultSchema(@jakarta.annotation.Nonnull String defaultSchema) { + this.defaultSchema = defaultSchema; + } + + public ParticipantsIdentificationPolicy overrides( + @jakarta.annotation.Nullable List overrides) { + this.overrides = overrides; + return this; + } + + public ParticipantsIdentificationPolicy addOverridesItem( + IdentificationPolicyOverride overridesItem) { + if (this.overrides == null) { + this.overrides = new ArrayList<>(); + } + this.overrides.add(overridesItem); + return this; + } + + /** + * Contextual overrides scoped by asset, rail, and/or flowDirection. Most specific match wins; + * ties broken by array order. Replaces the default partially. Each override MUST include at + * least one of `asset`, `rail`, or `flowDirection` (not + * `schema` alone); see IdentificationPolicyOverride. + * + * @return overrides + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_OVERRIDES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getOverrides() { + return overrides; + } + + @JsonProperty(JSON_PROPERTY_OVERRIDES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setOverrides( + @jakarta.annotation.Nullable List overrides) { + this.overrides = overrides; + } + + /** Return true if this ParticipantsIdentificationPolicy object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ParticipantsIdentificationPolicy participantsIdentificationPolicy = + (ParticipantsIdentificationPolicy) o; + return Objects.equals( + this.supportedEndpoints, + participantsIdentificationPolicy.supportedEndpoints) + && Objects.equals( + this.defaultSchema, participantsIdentificationPolicy.defaultSchema) + && Objects.equals(this.overrides, participantsIdentificationPolicy.overrides); + } + + @Override + public int hashCode() { + return Objects.hash(supportedEndpoints, defaultSchema, overrides); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ParticipantsIdentificationPolicy {\n"); + sb.append(" supportedEndpoints: ") + .append(toIndentedString(supportedEndpoints)) + .append("\n"); + sb.append(" defaultSchema: ").append(toIndentedString(defaultSchema)).append("\n"); + sb.append(" overrides: ").append(toIndentedString(overrides)).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 `supportedEndpoints` to the URL query string + if (getSupportedEndpoints() != null) { + int i = 0; + for (ParticipantsIdentificationSupportedEndpoint _item : getSupportedEndpoints()) { + if (_item != null) { + joiner.add( + String.format( + "%ssupportedEndpoints%s%s=%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", containerPrefix, i, containerSuffix), + ApiClient.urlEncode(ApiClient.valueToString(_item)))); + } + i++; + } + } + + // add `defaultSchema` to the URL query string + if (getDefaultSchema() != null) { + joiner.add( + String.format( + "%sdefaultSchema%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getDefaultSchema())))); + } + + // add `overrides` to the URL query string + if (getOverrides() != null) { + for (int i = 0; i < getOverrides().size(); i++) { + if (getOverrides().get(i) != null) { + joiner.add( + getOverrides() + .get(i) + .toUrlQueryString( + String.format( + "%soverrides%s%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", + containerPrefix, + i, + containerSuffix)))); + } + } + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/ParticipantsIdentificationSupportedEndpoint.java b/src/main/java/com/fireblocks/sdk/model/ParticipantsIdentificationSupportedEndpoint.java new file mode 100644 index 00000000..f08c3387 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/ParticipantsIdentificationSupportedEndpoint.java @@ -0,0 +1,71 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * Trading API endpoint category where `participantsIdentification` may be required when + * this policy is present. Corresponds to manifest `order`, `quote`, and + * `rate`: ORDER, QUOTE, and RATE respectively. + */ +public enum ParticipantsIdentificationSupportedEndpoint { + ORDER("ORDER"), + + QUOTE("QUOTE"), + + RATE("RATE"); + + private String value; + + ParticipantsIdentificationSupportedEndpoint(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static ParticipantsIdentificationSupportedEndpoint fromValue(String value) { + for (ParticipantsIdentificationSupportedEndpoint b : + ParticipantsIdentificationSupportedEndpoint.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + if (prefix == null) { + prefix = ""; + } + + return String.format("%s=%s", prefix, this.toString()); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/Position2.java b/src/main/java/com/fireblocks/sdk/model/Position2.java new file mode 100644 index 00000000..cd1e4d76 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/Position2.java @@ -0,0 +1,966 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fireblocks.sdk.ApiClient; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.StringJoiner; + +/** Position2 */ +@JsonPropertyOrder({ + Position2.JSON_PROPERTY_ID, + Position2.JSON_PROPERTY_STATUS, + Position2.JSON_PROPERTY_IN_FLIGHT, + Position2.JSON_PROPERTY_POSITION_TYPE, + Position2.JSON_PROPERTY_VAULT_ACCOUNT_ID, + Position2.JSON_PROPERTY_OPPORTUNITY_ID, + Position2.JSON_PROPERTY_CHAIN_ID, + Position2.JSON_PROPERTY_PROVIDER_ID, + Position2.JSON_PROPERTY_ORIGIN, + Position2.JSON_PROPERTY_PRINCIPAL_ASSET_ID, + Position2.JSON_PROPERTY_POSITION_ASSET_ID, + Position2.JSON_PROPERTY_PRINCIPAL_BALANCE, + Position2.JSON_PROPERTY_POSITION_BALANCE, + Position2.JSON_PROPERTY_CREATED_AT, + Position2.JSON_PROPERTY_UPDATED_AT, + Position2.JSON_PROPERTY_LAST_SYNCED_AT, + Position2.JSON_PROPERTY_AVAILABLE_ACTIONS +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class Position2 { + public static final String JSON_PROPERTY_ID = "id"; + @jakarta.annotation.Nullable private String id; + + /** Lifecycle status of the position. */ + public enum StatusEnum { + ACTIVE(String.valueOf("ACTIVE")), + + INACTIVE(String.valueOf("INACTIVE")); + + private String value; + + StatusEnum(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static StatusEnum fromValue(String value) { + for (StatusEnum b : StatusEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + } + + public static final String JSON_PROPERTY_STATUS = "status"; + @jakarta.annotation.Nullable private StatusEnum status; + + public static final String JSON_PROPERTY_IN_FLIGHT = "inFlight"; + @jakarta.annotation.Nullable private Boolean inFlight; + + /** Whether the position is lend- or borrow-side. */ + public enum PositionTypeEnum { + LEND(String.valueOf("LEND")), + + BORROW(String.valueOf("BORROW")); + + private String value; + + PositionTypeEnum(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static PositionTypeEnum fromValue(String value) { + for (PositionTypeEnum b : PositionTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + } + + public static final String JSON_PROPERTY_POSITION_TYPE = "positionType"; + @jakarta.annotation.Nullable private PositionTypeEnum positionType; + + public static final String JSON_PROPERTY_VAULT_ACCOUNT_ID = "vaultAccountId"; + @jakarta.annotation.Nullable private String vaultAccountId; + + public static final String JSON_PROPERTY_OPPORTUNITY_ID = "opportunityId"; + @jakarta.annotation.Nullable private String opportunityId; + + public static final String JSON_PROPERTY_CHAIN_ID = "chainId"; + @jakarta.annotation.Nullable private String chainId; + + /** Lending protocol. */ + public enum ProviderIdEnum { + MORPHO(String.valueOf("MORPHO")), + + AAVE(String.valueOf("AAVE")); + + private String value; + + ProviderIdEnum(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static ProviderIdEnum fromValue(String value) { + for (ProviderIdEnum b : ProviderIdEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + } + + public static final String JSON_PROPERTY_PROVIDER_ID = "providerId"; + @jakarta.annotation.Nullable private ProviderIdEnum providerId; + + /** Whether the position was opened natively in Fireblocks or imported externally. */ + public enum OriginEnum { + NATIVE(String.valueOf("NATIVE")), + + EXTERNAL(String.valueOf("EXTERNAL")); + + private String value; + + OriginEnum(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static OriginEnum fromValue(String value) { + for (OriginEnum b : OriginEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + } + + public static final String JSON_PROPERTY_ORIGIN = "origin"; + @jakarta.annotation.Nullable private OriginEnum origin; + + public static final String JSON_PROPERTY_PRINCIPAL_ASSET_ID = "principalAssetId"; + @jakarta.annotation.Nullable private String principalAssetId; + + public static final String JSON_PROPERTY_POSITION_ASSET_ID = "positionAssetId"; + @jakarta.annotation.Nullable private String positionAssetId; + + public static final String JSON_PROPERTY_PRINCIPAL_BALANCE = "principalBalance"; + @jakarta.annotation.Nullable private String principalBalance; + + public static final String JSON_PROPERTY_POSITION_BALANCE = "positionBalance"; + @jakarta.annotation.Nullable private String positionBalance; + + public static final String JSON_PROPERTY_CREATED_AT = "createdAt"; + @jakarta.annotation.Nullable private String createdAt; + + public static final String JSON_PROPERTY_UPDATED_AT = "updatedAt"; + @jakarta.annotation.Nullable private String updatedAt; + + public static final String JSON_PROPERTY_LAST_SYNCED_AT = "lastSyncedAt"; + @jakarta.annotation.Nullable private String lastSyncedAt; + + /** Gets or Sets availableActions */ + public enum AvailableActionsEnum { + DEPOSIT(String.valueOf("DEPOSIT")), + + WITHDRAW(String.valueOf("WITHDRAW")); + + private String value; + + AvailableActionsEnum(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static AvailableActionsEnum fromValue(String value) { + for (AvailableActionsEnum b : AvailableActionsEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + } + + public static final String JSON_PROPERTY_AVAILABLE_ACTIONS = "availableActions"; + @jakarta.annotation.Nullable private List availableActions; + + public Position2() {} + + public Position2 id(@jakarta.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Position UUID. + * + * @return id + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getId() { + return id; + } + + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setId(@jakarta.annotation.Nullable String id) { + this.id = id; + } + + public Position2 status(@jakarta.annotation.Nullable StatusEnum status) { + this.status = status; + return this; + } + + /** + * Lifecycle status of the position. + * + * @return status + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_STATUS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public StatusEnum getStatus() { + return status; + } + + @JsonProperty(JSON_PROPERTY_STATUS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setStatus(@jakarta.annotation.Nullable StatusEnum status) { + this.status = status; + } + + public Position2 inFlight(@jakarta.annotation.Nullable Boolean inFlight) { + this.inFlight = inFlight; + return this; + } + + /** + * True while an action is in progress for this position. + * + * @return inFlight + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_IN_FLIGHT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getInFlight() { + return inFlight; + } + + @JsonProperty(JSON_PROPERTY_IN_FLIGHT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setInFlight(@jakarta.annotation.Nullable Boolean inFlight) { + this.inFlight = inFlight; + } + + public Position2 positionType(@jakarta.annotation.Nullable PositionTypeEnum positionType) { + this.positionType = positionType; + return this; + } + + /** + * Whether the position is lend- or borrow-side. + * + * @return positionType + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_POSITION_TYPE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public PositionTypeEnum getPositionType() { + return positionType; + } + + @JsonProperty(JSON_PROPERTY_POSITION_TYPE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setPositionType(@jakarta.annotation.Nullable PositionTypeEnum positionType) { + this.positionType = positionType; + } + + public Position2 vaultAccountId(@jakarta.annotation.Nullable String vaultAccountId) { + this.vaultAccountId = vaultAccountId; + return this; + } + + /** + * Fireblocks vault account holding the position. + * + * @return vaultAccountId + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_VAULT_ACCOUNT_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getVaultAccountId() { + return vaultAccountId; + } + + @JsonProperty(JSON_PROPERTY_VAULT_ACCOUNT_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setVaultAccountId(@jakarta.annotation.Nullable String vaultAccountId) { + this.vaultAccountId = vaultAccountId; + } + + public Position2 opportunityId(@jakarta.annotation.Nullable String opportunityId) { + this.opportunityId = opportunityId; + return this; + } + + /** + * Opportunity / vault or market identifier. + * + * @return opportunityId + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_OPPORTUNITY_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getOpportunityId() { + return opportunityId; + } + + @JsonProperty(JSON_PROPERTY_OPPORTUNITY_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setOpportunityId(@jakarta.annotation.Nullable String opportunityId) { + this.opportunityId = opportunityId; + } + + public Position2 chainId(@jakarta.annotation.Nullable String chainId) { + this.chainId = chainId; + return this; + } + + /** + * Chain identifier as a string (e.g. \"1\"). + * + * @return chainId + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_CHAIN_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getChainId() { + return chainId; + } + + @JsonProperty(JSON_PROPERTY_CHAIN_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setChainId(@jakarta.annotation.Nullable String chainId) { + this.chainId = chainId; + } + + public Position2 providerId(@jakarta.annotation.Nullable ProviderIdEnum providerId) { + this.providerId = providerId; + return this; + } + + /** + * Lending protocol. + * + * @return providerId + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_PROVIDER_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public ProviderIdEnum getProviderId() { + return providerId; + } + + @JsonProperty(JSON_PROPERTY_PROVIDER_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setProviderId(@jakarta.annotation.Nullable ProviderIdEnum providerId) { + this.providerId = providerId; + } + + public Position2 origin(@jakarta.annotation.Nullable OriginEnum origin) { + this.origin = origin; + return this; + } + + /** + * Whether the position was opened natively in Fireblocks or imported externally. + * + * @return origin + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ORIGIN) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public OriginEnum getOrigin() { + return origin; + } + + @JsonProperty(JSON_PROPERTY_ORIGIN) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setOrigin(@jakarta.annotation.Nullable OriginEnum origin) { + this.origin = origin; + } + + public Position2 principalAssetId(@jakarta.annotation.Nullable String principalAssetId) { + this.principalAssetId = principalAssetId; + return this; + } + + /** + * Fireblocks asset id for the principal (underlying) asset. + * + * @return principalAssetId + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_PRINCIPAL_ASSET_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getPrincipalAssetId() { + return principalAssetId; + } + + @JsonProperty(JSON_PROPERTY_PRINCIPAL_ASSET_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setPrincipalAssetId(@jakarta.annotation.Nullable String principalAssetId) { + this.principalAssetId = principalAssetId; + } + + public Position2 positionAssetId(@jakarta.annotation.Nullable String positionAssetId) { + this.positionAssetId = positionAssetId; + return this; + } + + /** + * Fireblocks asset id for the position / share token. + * + * @return positionAssetId + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_POSITION_ASSET_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getPositionAssetId() { + return positionAssetId; + } + + @JsonProperty(JSON_PROPERTY_POSITION_ASSET_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setPositionAssetId(@jakarta.annotation.Nullable String positionAssetId) { + this.positionAssetId = positionAssetId; + } + + public Position2 principalBalance(@jakarta.annotation.Nullable String principalBalance) { + this.principalBalance = principalBalance; + return this; + } + + /** + * Human-readable principal balance. + * + * @return principalBalance + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_PRINCIPAL_BALANCE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getPrincipalBalance() { + return principalBalance; + } + + @JsonProperty(JSON_PROPERTY_PRINCIPAL_BALANCE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setPrincipalBalance(@jakarta.annotation.Nullable String principalBalance) { + this.principalBalance = principalBalance; + } + + public Position2 positionBalance(@jakarta.annotation.Nullable String positionBalance) { + this.positionBalance = positionBalance; + return this; + } + + /** + * Human-readable position token balance. + * + * @return positionBalance + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_POSITION_BALANCE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getPositionBalance() { + return positionBalance; + } + + @JsonProperty(JSON_PROPERTY_POSITION_BALANCE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setPositionBalance(@jakarta.annotation.Nullable String positionBalance) { + this.positionBalance = positionBalance; + } + + public Position2 createdAt(@jakarta.annotation.Nullable String createdAt) { + this.createdAt = createdAt; + return this; + } + + /** + * Creation time (ISO-8601). + * + * @return createdAt + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_CREATED_AT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getCreatedAt() { + return createdAt; + } + + @JsonProperty(JSON_PROPERTY_CREATED_AT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setCreatedAt(@jakarta.annotation.Nullable String createdAt) { + this.createdAt = createdAt; + } + + public Position2 updatedAt(@jakarta.annotation.Nullable String updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + /** + * Last update time (ISO-8601). + * + * @return updatedAt + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_UPDATED_AT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getUpdatedAt() { + return updatedAt; + } + + @JsonProperty(JSON_PROPERTY_UPDATED_AT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setUpdatedAt(@jakarta.annotation.Nullable String updatedAt) { + this.updatedAt = updatedAt; + } + + public Position2 lastSyncedAt(@jakarta.annotation.Nullable String lastSyncedAt) { + this.lastSyncedAt = lastSyncedAt; + return this; + } + + /** + * Last successful on-chain sync time (ISO-8601). + * + * @return lastSyncedAt + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_LAST_SYNCED_AT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getLastSyncedAt() { + return lastSyncedAt; + } + + @JsonProperty(JSON_PROPERTY_LAST_SYNCED_AT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setLastSyncedAt(@jakarta.annotation.Nullable String lastSyncedAt) { + this.lastSyncedAt = lastSyncedAt; + } + + public Position2 availableActions( + @jakarta.annotation.Nullable List availableActions) { + this.availableActions = availableActions; + return this; + } + + public Position2 addAvailableActionsItem(AvailableActionsEnum availableActionsItem) { + if (this.availableActions == null) { + this.availableActions = new ArrayList<>(); + } + this.availableActions.add(availableActionsItem); + return this; + } + + /** + * Actions the API allows next for this position. + * + * @return availableActions + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_AVAILABLE_ACTIONS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getAvailableActions() { + return availableActions; + } + + @JsonProperty(JSON_PROPERTY_AVAILABLE_ACTIONS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setAvailableActions( + @jakarta.annotation.Nullable List availableActions) { + this.availableActions = availableActions; + } + + /** Return true if this Position-2 object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Position2 position2 = (Position2) o; + return Objects.equals(this.id, position2.id) + && Objects.equals(this.status, position2.status) + && Objects.equals(this.inFlight, position2.inFlight) + && Objects.equals(this.positionType, position2.positionType) + && Objects.equals(this.vaultAccountId, position2.vaultAccountId) + && Objects.equals(this.opportunityId, position2.opportunityId) + && Objects.equals(this.chainId, position2.chainId) + && Objects.equals(this.providerId, position2.providerId) + && Objects.equals(this.origin, position2.origin) + && Objects.equals(this.principalAssetId, position2.principalAssetId) + && Objects.equals(this.positionAssetId, position2.positionAssetId) + && Objects.equals(this.principalBalance, position2.principalBalance) + && Objects.equals(this.positionBalance, position2.positionBalance) + && Objects.equals(this.createdAt, position2.createdAt) + && Objects.equals(this.updatedAt, position2.updatedAt) + && Objects.equals(this.lastSyncedAt, position2.lastSyncedAt) + && Objects.equals(this.availableActions, position2.availableActions); + } + + @Override + public int hashCode() { + return Objects.hash( + id, + status, + inFlight, + positionType, + vaultAccountId, + opportunityId, + chainId, + providerId, + origin, + principalAssetId, + positionAssetId, + principalBalance, + positionBalance, + createdAt, + updatedAt, + lastSyncedAt, + availableActions); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Position2 {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" inFlight: ").append(toIndentedString(inFlight)).append("\n"); + sb.append(" positionType: ").append(toIndentedString(positionType)).append("\n"); + sb.append(" vaultAccountId: ").append(toIndentedString(vaultAccountId)).append("\n"); + sb.append(" opportunityId: ").append(toIndentedString(opportunityId)).append("\n"); + sb.append(" chainId: ").append(toIndentedString(chainId)).append("\n"); + sb.append(" providerId: ").append(toIndentedString(providerId)).append("\n"); + sb.append(" origin: ").append(toIndentedString(origin)).append("\n"); + sb.append(" principalAssetId: ").append(toIndentedString(principalAssetId)).append("\n"); + sb.append(" positionAssetId: ").append(toIndentedString(positionAssetId)).append("\n"); + sb.append(" principalBalance: ").append(toIndentedString(principalBalance)).append("\n"); + sb.append(" positionBalance: ").append(toIndentedString(positionBalance)).append("\n"); + sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); + sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); + sb.append(" lastSyncedAt: ").append(toIndentedString(lastSyncedAt)).append("\n"); + sb.append(" availableActions: ").append(toIndentedString(availableActions)).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 `status` to the URL query string + if (getStatus() != null) { + joiner.add( + String.format( + "%sstatus%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getStatus())))); + } + + // add `inFlight` to the URL query string + if (getInFlight() != null) { + joiner.add( + String.format( + "%sinFlight%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getInFlight())))); + } + + // add `positionType` to the URL query string + if (getPositionType() != null) { + joiner.add( + String.format( + "%spositionType%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getPositionType())))); + } + + // add `vaultAccountId` to the URL query string + if (getVaultAccountId() != null) { + joiner.add( + String.format( + "%svaultAccountId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getVaultAccountId())))); + } + + // add `opportunityId` to the URL query string + if (getOpportunityId() != null) { + joiner.add( + String.format( + "%sopportunityId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getOpportunityId())))); + } + + // add `chainId` to the URL query string + if (getChainId() != null) { + joiner.add( + String.format( + "%schainId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getChainId())))); + } + + // add `providerId` to the URL query string + if (getProviderId() != null) { + joiner.add( + String.format( + "%sproviderId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getProviderId())))); + } + + // add `origin` to the URL query string + if (getOrigin() != null) { + joiner.add( + String.format( + "%sorigin%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getOrigin())))); + } + + // add `principalAssetId` to the URL query string + if (getPrincipalAssetId() != null) { + joiner.add( + String.format( + "%sprincipalAssetId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getPrincipalAssetId())))); + } + + // add `positionAssetId` to the URL query string + if (getPositionAssetId() != null) { + joiner.add( + String.format( + "%spositionAssetId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getPositionAssetId())))); + } + + // add `principalBalance` to the URL query string + if (getPrincipalBalance() != null) { + joiner.add( + String.format( + "%sprincipalBalance%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getPrincipalBalance())))); + } + + // add `positionBalance` to the URL query string + if (getPositionBalance() != null) { + joiner.add( + String.format( + "%spositionBalance%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getPositionBalance())))); + } + + // add `createdAt` to the URL query string + if (getCreatedAt() != null) { + joiner.add( + String.format( + "%screatedAt%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getCreatedAt())))); + } + + // add `updatedAt` to the URL query string + if (getUpdatedAt() != null) { + joiner.add( + String.format( + "%supdatedAt%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getUpdatedAt())))); + } + + // add `lastSyncedAt` to the URL query string + if (getLastSyncedAt() != null) { + joiner.add( + String.format( + "%slastSyncedAt%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getLastSyncedAt())))); + } + + // add `availableActions` to the URL query string + if (getAvailableActions() != null) { + for (int i = 0; i < getAvailableActions().size(); i++) { + joiner.add( + String.format( + "%savailableActions%s%s=%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", containerPrefix, i, containerSuffix), + ApiClient.urlEncode( + ApiClient.valueToString(getAvailableActions().get(i))))); + } + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/ResendByQueryRequest.java b/src/main/java/com/fireblocks/sdk/model/ResendByQueryRequest.java new file mode 100644 index 00000000..b960729e --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/ResendByQueryRequest.java @@ -0,0 +1,343 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fireblocks.sdk.ApiClient; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.StringJoiner; + +/** ResendByQueryRequest */ +@JsonPropertyOrder({ + ResendByQueryRequest.JSON_PROPERTY_STATUSES, + ResendByQueryRequest.JSON_PROPERTY_START_TIME, + ResendByQueryRequest.JSON_PROPERTY_END_TIME, + ResendByQueryRequest.JSON_PROPERTY_EVENTS, + ResendByQueryRequest.JSON_PROPERTY_RESOURCE_ID +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class ResendByQueryRequest { + public static final String JSON_PROPERTY_STATUSES = "statuses"; + @jakarta.annotation.Nullable private List statuses; + + public static final String JSON_PROPERTY_START_TIME = "startTime"; + @jakarta.annotation.Nullable private BigDecimal startTime; + + public static final String JSON_PROPERTY_END_TIME = "endTime"; + @jakarta.annotation.Nullable private BigDecimal endTime; + + public static final String JSON_PROPERTY_EVENTS = "events"; + @jakarta.annotation.Nullable private List events; + + public static final String JSON_PROPERTY_RESOURCE_ID = "resourceId"; + @jakarta.annotation.Nullable private String resourceId; + + public ResendByQueryRequest() {} + + public ResendByQueryRequest statuses( + @jakarta.annotation.Nullable List statuses) { + this.statuses = statuses; + return this; + } + + public ResendByQueryRequest addStatusesItem(NotificationStatus statusesItem) { + if (this.statuses == null) { + this.statuses = new ArrayList<>(); + } + this.statuses.add(statusesItem); + return this; + } + + /** + * (optional) List of notification statuses to resend - Default if missing: + * `[\"FAILED\", \"ON_HOLD\"]` + * + * @return statuses + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_STATUSES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getStatuses() { + return statuses; + } + + @JsonProperty(JSON_PROPERTY_STATUSES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setStatuses(@jakarta.annotation.Nullable List statuses) { + this.statuses = statuses; + } + + public ResendByQueryRequest startTime(@jakarta.annotation.Nullable BigDecimal startTime) { + this.startTime = startTime; + return this; + } + + /** + * (optional) Start time for the resend window in milliseconds since epoch, within the last 72 + * hours - Default if missing means 24 hours before the current time in milliseconds since epoch + * - Maximum value is current time in milliseconds since epoch - Minimum value is 72 hours + * before the current time in milliseconds since epoch + * + * @return startTime + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_START_TIME) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public BigDecimal getStartTime() { + return startTime; + } + + @JsonProperty(JSON_PROPERTY_START_TIME) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setStartTime(@jakarta.annotation.Nullable BigDecimal startTime) { + this.startTime = startTime; + } + + public ResendByQueryRequest endTime(@jakarta.annotation.Nullable BigDecimal endTime) { + this.endTime = endTime; + return this; + } + + /** + * (optional) End time for the resend window in milliseconds since epoch, within the last 72 + * hours - Default if missing means current time in milliseconds since epoch - Requires + * startTime to be provided - Must be after startTime - Time window between startTime and + * endTime must not exceed 24 hours + * + * @return endTime + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_END_TIME) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public BigDecimal getEndTime() { + return endTime; + } + + @JsonProperty(JSON_PROPERTY_END_TIME) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setEndTime(@jakarta.annotation.Nullable BigDecimal endTime) { + this.endTime = endTime; + } + + public ResendByQueryRequest events(@jakarta.annotation.Nullable List events) { + this.events = events; + return this; + } + + public ResendByQueryRequest addEventsItem(WebhookEvent eventsItem) { + if (this.events == null) { + this.events = new ArrayList<>(); + } + this.events.add(eventsItem); + return this; + } + + /** + * (optional) Event types to resend, default is all event types - Default if missing means all + * events will be included - Empty array means all events will be included + * + * @return events + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_EVENTS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getEvents() { + return events; + } + + @JsonProperty(JSON_PROPERTY_EVENTS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setEvents(@jakarta.annotation.Nullable List events) { + this.events = events; + } + + public ResendByQueryRequest resourceId(@jakarta.annotation.Nullable String resourceId) { + this.resourceId = resourceId; + return this; + } + + /** + * (optional) Resource ID to filter notifications by + * + * @return resourceId + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_RESOURCE_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getResourceId() { + return resourceId; + } + + @JsonProperty(JSON_PROPERTY_RESOURCE_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setResourceId(@jakarta.annotation.Nullable String resourceId) { + this.resourceId = resourceId; + } + + /** Return true if this ResendByQueryRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResendByQueryRequest resendByQueryRequest = (ResendByQueryRequest) o; + return Objects.equals(this.statuses, resendByQueryRequest.statuses) + && Objects.equals(this.startTime, resendByQueryRequest.startTime) + && Objects.equals(this.endTime, resendByQueryRequest.endTime) + && Objects.equals(this.events, resendByQueryRequest.events) + && Objects.equals(this.resourceId, resendByQueryRequest.resourceId); + } + + @Override + public int hashCode() { + return Objects.hash(statuses, startTime, endTime, events, resourceId); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResendByQueryRequest {\n"); + sb.append(" statuses: ").append(toIndentedString(statuses)).append("\n"); + sb.append(" startTime: ").append(toIndentedString(startTime)).append("\n"); + sb.append(" endTime: ").append(toIndentedString(endTime)).append("\n"); + sb.append(" events: ").append(toIndentedString(events)).append("\n"); + sb.append(" resourceId: ").append(toIndentedString(resourceId)).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 `statuses` to the URL query string + if (getStatuses() != null) { + for (int i = 0; i < getStatuses().size(); i++) { + if (getStatuses().get(i) != null) { + joiner.add( + String.format( + "%sstatuses%s%s=%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", containerPrefix, i, containerSuffix), + ApiClient.urlEncode( + ApiClient.valueToString(getStatuses().get(i))))); + } + } + } + + // add `startTime` to the URL query string + if (getStartTime() != null) { + joiner.add( + String.format( + "%sstartTime%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getStartTime())))); + } + + // add `endTime` to the URL query string + if (getEndTime() != null) { + joiner.add( + String.format( + "%sendTime%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getEndTime())))); + } + + // add `events` to the URL query string + if (getEvents() != null) { + for (int i = 0; i < getEvents().size(); i++) { + if (getEvents().get(i) != null) { + joiner.add( + String.format( + "%sevents%s%s=%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", containerPrefix, i, containerSuffix), + ApiClient.urlEncode( + ApiClient.valueToString(getEvents().get(i))))); + } + } + } + + // add `resourceId` to the URL query string + if (getResourceId() != null) { + joiner.add( + String.format( + "%sresourceId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getResourceId())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/ResendByQueryResponse.java b/src/main/java/com/fireblocks/sdk/model/ResendByQueryResponse.java new file mode 100644 index 00000000..2d3640c0 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/ResendByQueryResponse.java @@ -0,0 +1,140 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fireblocks.sdk.ApiClient; +import java.math.BigDecimal; +import java.util.Objects; +import java.util.StringJoiner; + +/** ResendByQueryResponse */ +@JsonPropertyOrder({ResendByQueryResponse.JSON_PROPERTY_TOTAL}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class ResendByQueryResponse { + public static final String JSON_PROPERTY_TOTAL = "total"; + @jakarta.annotation.Nullable private BigDecimal total; + + public ResendByQueryResponse() {} + + public ResendByQueryResponse total(@jakarta.annotation.Nullable BigDecimal total) { + this.total = total; + return this; + } + + /** + * The total number of notifications that are scheduled to be resent. + * + * @return total + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TOTAL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public BigDecimal getTotal() { + return total; + } + + @JsonProperty(JSON_PROPERTY_TOTAL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setTotal(@jakarta.annotation.Nullable BigDecimal total) { + this.total = total; + } + + /** Return true if this ResendByQueryResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResendByQueryResponse resendByQueryResponse = (ResendByQueryResponse) o; + return Objects.equals(this.total, resendByQueryResponse.total); + } + + @Override + public int hashCode() { + return Objects.hash(total); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResendByQueryResponse {\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 `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/TRLinkAmount2.java b/src/main/java/com/fireblocks/sdk/model/ScreeningPolicyAmount.java similarity index 76% rename from src/main/java/com/fireblocks/sdk/model/TRLinkAmount2.java rename to src/main/java/com/fireblocks/sdk/model/ScreeningPolicyAmount.java index 39bffb19..ae9d868c 100644 --- a/src/main/java/com/fireblocks/sdk/model/TRLinkAmount2.java +++ b/src/main/java/com/fireblocks/sdk/model/ScreeningPolicyAmount.java @@ -21,30 +21,37 @@ import java.util.Objects; import java.util.StringJoiner; -/** Amount specification with range and currency type */ -@JsonPropertyOrder({TRLinkAmount2.JSON_PROPERTY_RANGE, TRLinkAmount2.JSON_PROPERTY_CURRENCY}) +/** + * Amount specification with range and currency type (screening policy rules – BYORK, TRLink, etc.) + */ +@JsonPropertyOrder({ + ScreeningPolicyAmount.JSON_PROPERTY_RANGE, + ScreeningPolicyAmount.JSON_PROPERTY_CURRENCY +}) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.14.0") -public class TRLinkAmount2 { +public class ScreeningPolicyAmount { public static final String JSON_PROPERTY_RANGE = "range"; - @jakarta.annotation.Nonnull private TRLinkAmountRange range; + @jakarta.annotation.Nonnull private ScreeningPolicyAmountRange range; public static final String JSON_PROPERTY_CURRENCY = "currency"; - @jakarta.annotation.Nonnull private TRLinkCurrency currency; + @jakarta.annotation.Nonnull private ScreeningPolicyCurrency currency; - public TRLinkAmount2() {} + public ScreeningPolicyAmount() {} @JsonCreator - public TRLinkAmount2( - @JsonProperty(value = JSON_PROPERTY_RANGE, required = true) TRLinkAmountRange range, + public ScreeningPolicyAmount( + @JsonProperty(value = JSON_PROPERTY_RANGE, required = true) + ScreeningPolicyAmountRange range, @JsonProperty(value = JSON_PROPERTY_CURRENCY, required = true) - TRLinkCurrency currency) { + ScreeningPolicyCurrency currency) { this.range = range; this.currency = currency; } - public TRLinkAmount2 range(@jakarta.annotation.Nonnull TRLinkAmountRange range) { + public ScreeningPolicyAmount range( + @jakarta.annotation.Nonnull ScreeningPolicyAmountRange range) { this.range = range; return this; } @@ -57,17 +64,18 @@ public TRLinkAmount2 range(@jakarta.annotation.Nonnull TRLinkAmountRange range) @jakarta.annotation.Nonnull @JsonProperty(JSON_PROPERTY_RANGE) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public TRLinkAmountRange getRange() { + public ScreeningPolicyAmountRange getRange() { return range; } @JsonProperty(JSON_PROPERTY_RANGE) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setRange(@jakarta.annotation.Nonnull TRLinkAmountRange range) { + public void setRange(@jakarta.annotation.Nonnull ScreeningPolicyAmountRange range) { this.range = range; } - public TRLinkAmount2 currency(@jakarta.annotation.Nonnull TRLinkCurrency currency) { + public ScreeningPolicyAmount currency( + @jakarta.annotation.Nonnull ScreeningPolicyCurrency currency) { this.currency = currency; return this; } @@ -80,17 +88,17 @@ public TRLinkAmount2 currency(@jakarta.annotation.Nonnull TRLinkCurrency currenc @jakarta.annotation.Nonnull @JsonProperty(JSON_PROPERTY_CURRENCY) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public TRLinkCurrency getCurrency() { + public ScreeningPolicyCurrency getCurrency() { return currency; } @JsonProperty(JSON_PROPERTY_CURRENCY) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setCurrency(@jakarta.annotation.Nonnull TRLinkCurrency currency) { + public void setCurrency(@jakarta.annotation.Nonnull ScreeningPolicyCurrency currency) { this.currency = currency; } - /** Return true if this TRLinkAmount-2 object is equal to o. */ + /** Return true if this ScreeningPolicyAmount object is equal to o. */ @Override public boolean equals(Object o) { if (this == o) { @@ -99,9 +107,9 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) { return false; } - TRLinkAmount2 trLinkAmount2 = (TRLinkAmount2) o; - return Objects.equals(this.range, trLinkAmount2.range) - && Objects.equals(this.currency, trLinkAmount2.currency); + ScreeningPolicyAmount screeningPolicyAmount = (ScreeningPolicyAmount) o; + return Objects.equals(this.range, screeningPolicyAmount.range) + && Objects.equals(this.currency, screeningPolicyAmount.currency); } @Override @@ -112,7 +120,7 @@ public int hashCode() { @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class TRLinkAmount2 {\n"); + sb.append("class ScreeningPolicyAmount {\n"); sb.append(" range: ").append(toIndentedString(range)).append("\n"); sb.append(" currency: ").append(toIndentedString(currency)).append("\n"); sb.append("}"); diff --git a/src/main/java/com/fireblocks/sdk/model/TRLinkAmountRange.java b/src/main/java/com/fireblocks/sdk/model/ScreeningPolicyAmountRange.java similarity index 86% rename from src/main/java/com/fireblocks/sdk/model/TRLinkAmountRange.java rename to src/main/java/com/fireblocks/sdk/model/ScreeningPolicyAmountRange.java index 10776bc6..0376b11f 100644 --- a/src/main/java/com/fireblocks/sdk/model/TRLinkAmountRange.java +++ b/src/main/java/com/fireblocks/sdk/model/ScreeningPolicyAmountRange.java @@ -21,20 +21,23 @@ import java.util.StringJoiner; /** Minimum and maximum amount range specification */ -@JsonPropertyOrder({TRLinkAmountRange.JSON_PROPERTY_MIN, TRLinkAmountRange.JSON_PROPERTY_MAX}) +@JsonPropertyOrder({ + ScreeningPolicyAmountRange.JSON_PROPERTY_MIN, + ScreeningPolicyAmountRange.JSON_PROPERTY_MAX +}) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.14.0") -public class TRLinkAmountRange { +public class ScreeningPolicyAmountRange { public static final String JSON_PROPERTY_MIN = "min"; @jakarta.annotation.Nullable private String min; public static final String JSON_PROPERTY_MAX = "max"; @jakarta.annotation.Nullable private String max; - public TRLinkAmountRange() {} + public ScreeningPolicyAmountRange() {} - public TRLinkAmountRange min(@jakarta.annotation.Nullable String min) { + public ScreeningPolicyAmountRange min(@jakarta.annotation.Nullable String min) { this.min = min; return this; } @@ -57,7 +60,7 @@ public void setMin(@jakarta.annotation.Nullable String min) { this.min = min; } - public TRLinkAmountRange max(@jakarta.annotation.Nullable String max) { + public ScreeningPolicyAmountRange max(@jakarta.annotation.Nullable String max) { this.max = max; return this; } @@ -80,7 +83,7 @@ public void setMax(@jakarta.annotation.Nullable String max) { this.max = max; } - /** Return true if this TRLinkAmountRange object is equal to o. */ + /** Return true if this ScreeningPolicyAmountRange object is equal to o. */ @Override public boolean equals(Object o) { if (this == o) { @@ -89,9 +92,9 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) { return false; } - TRLinkAmountRange trLinkAmountRange = (TRLinkAmountRange) o; - return Objects.equals(this.min, trLinkAmountRange.min) - && Objects.equals(this.max, trLinkAmountRange.max); + ScreeningPolicyAmountRange screeningPolicyAmountRange = (ScreeningPolicyAmountRange) o; + return Objects.equals(this.min, screeningPolicyAmountRange.min) + && Objects.equals(this.max, screeningPolicyAmountRange.max); } @Override @@ -102,7 +105,7 @@ public int hashCode() { @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class TRLinkAmountRange {\n"); + sb.append("class ScreeningPolicyAmountRange {\n"); sb.append(" min: ").append(toIndentedString(min)).append("\n"); sb.append(" max: ").append(toIndentedString(max)).append("\n"); sb.append("}"); diff --git a/src/main/java/com/fireblocks/sdk/model/TRLinkCurrency.java b/src/main/java/com/fireblocks/sdk/model/ScreeningPolicyCurrency.java similarity index 85% rename from src/main/java/com/fireblocks/sdk/model/TRLinkCurrency.java rename to src/main/java/com/fireblocks/sdk/model/ScreeningPolicyCurrency.java index 3222c143..922970d2 100644 --- a/src/main/java/com/fireblocks/sdk/model/TRLinkCurrency.java +++ b/src/main/java/com/fireblocks/sdk/model/ScreeningPolicyCurrency.java @@ -16,15 +16,15 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; -/** Gets or Sets TRLinkCurrency */ -public enum TRLinkCurrency { +/** Gets or Sets ScreeningPolicyCurrency */ +public enum ScreeningPolicyCurrency { USD("USD"), NATIVE("NATIVE"); private String value; - TRLinkCurrency(String value) { + ScreeningPolicyCurrency(String value) { this.value = value; } @@ -39,8 +39,8 @@ public String toString() { } @JsonCreator - public static TRLinkCurrency fromValue(String value) { - for (TRLinkCurrency b : TRLinkCurrency.values()) { + public static ScreeningPolicyCurrency fromValue(String value) { + for (ScreeningPolicyCurrency b : ScreeningPolicyCurrency.values()) { if (b.value.equals(value)) { return b; } diff --git a/src/main/java/com/fireblocks/sdk/model/TRLinkAssetFormat.java b/src/main/java/com/fireblocks/sdk/model/TRLinkAssetFormat.java index 81a190cf..f579cd6e 100644 --- a/src/main/java/com/fireblocks/sdk/model/TRLinkAssetFormat.java +++ b/src/main/java/com/fireblocks/sdk/model/TRLinkAssetFormat.java @@ -20,9 +20,7 @@ public enum TRLinkAssetFormat { FIREBLOCKS("fireblocks"), - COINMARKETCAP("coinmarketcap"), - - SLIP44("slip44"); + COINMARKETCAP("coinmarketcap"); private String value; diff --git a/src/main/java/com/fireblocks/sdk/model/TRLinkMissingTrmRule2.java b/src/main/java/com/fireblocks/sdk/model/TRLinkMissingTrmRule2.java index eb1f124f..dc664d33 100644 --- a/src/main/java/com/fireblocks/sdk/model/TRLinkMissingTrmRule2.java +++ b/src/main/java/com/fireblocks/sdk/model/TRLinkMissingTrmRule2.java @@ -85,7 +85,7 @@ public class TRLinkMissingTrmRule2 { @jakarta.annotation.Nullable private String baseAsset; public static final String JSON_PROPERTY_AMOUNT = "amount"; - @jakarta.annotation.Nullable private TRLinkAmount2 amount; + @jakarta.annotation.Nullable private ScreeningPolicyAmount amount; public static final String JSON_PROPERTY_NETWORK_PROTOCOL = "networkProtocol"; @jakarta.annotation.Nullable private String networkProtocol; @@ -394,7 +394,7 @@ public void setBaseAsset(@jakarta.annotation.Nullable String baseAsset) { this.baseAsset = baseAsset; } - public TRLinkMissingTrmRule2 amount(@jakarta.annotation.Nullable TRLinkAmount2 amount) { + public TRLinkMissingTrmRule2 amount(@jakarta.annotation.Nullable ScreeningPolicyAmount amount) { this.amount = amount; return this; } @@ -407,13 +407,13 @@ public TRLinkMissingTrmRule2 amount(@jakarta.annotation.Nullable TRLinkAmount2 a @jakarta.annotation.Nullable @JsonProperty(JSON_PROPERTY_AMOUNT) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public TRLinkAmount2 getAmount() { + public ScreeningPolicyAmount getAmount() { return amount; } @JsonProperty(JSON_PROPERTY_AMOUNT) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setAmount(@jakarta.annotation.Nullable TRLinkAmount2 amount) { + public void setAmount(@jakarta.annotation.Nullable ScreeningPolicyAmount amount) { this.amount = amount; } diff --git a/src/main/java/com/fireblocks/sdk/model/TRLinkPostScreeningRule2.java b/src/main/java/com/fireblocks/sdk/model/TRLinkPostScreeningRule2.java index c53b369b..4780d1e6 100644 --- a/src/main/java/com/fireblocks/sdk/model/TRLinkPostScreeningRule2.java +++ b/src/main/java/com/fireblocks/sdk/model/TRLinkPostScreeningRule2.java @@ -87,7 +87,7 @@ public class TRLinkPostScreeningRule2 { @jakarta.annotation.Nullable private String baseAsset; public static final String JSON_PROPERTY_AMOUNT = "amount"; - @jakarta.annotation.Nullable private TRLinkAmount2 amount; + @jakarta.annotation.Nullable private ScreeningPolicyAmount amount; public static final String JSON_PROPERTY_NETWORK_PROTOCOL = "networkProtocol"; @jakarta.annotation.Nullable private String networkProtocol; @@ -404,7 +404,8 @@ public void setBaseAsset(@jakarta.annotation.Nullable String baseAsset) { this.baseAsset = baseAsset; } - public TRLinkPostScreeningRule2 amount(@jakarta.annotation.Nullable TRLinkAmount2 amount) { + public TRLinkPostScreeningRule2 amount( + @jakarta.annotation.Nullable ScreeningPolicyAmount amount) { this.amount = amount; return this; } @@ -417,13 +418,13 @@ public TRLinkPostScreeningRule2 amount(@jakarta.annotation.Nullable TRLinkAmount @jakarta.annotation.Nullable @JsonProperty(JSON_PROPERTY_AMOUNT) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public TRLinkAmount2 getAmount() { + public ScreeningPolicyAmount getAmount() { return amount; } @JsonProperty(JSON_PROPERTY_AMOUNT) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setAmount(@jakarta.annotation.Nullable TRLinkAmount2 amount) { + public void setAmount(@jakarta.annotation.Nullable ScreeningPolicyAmount amount) { this.amount = amount; } diff --git a/src/main/java/com/fireblocks/sdk/model/TRLinkPreScreeningRule2.java b/src/main/java/com/fireblocks/sdk/model/TRLinkPreScreeningRule2.java index b6dae9f7..a97c13f6 100644 --- a/src/main/java/com/fireblocks/sdk/model/TRLinkPreScreeningRule2.java +++ b/src/main/java/com/fireblocks/sdk/model/TRLinkPreScreeningRule2.java @@ -83,7 +83,7 @@ public class TRLinkPreScreeningRule2 { @jakarta.annotation.Nullable private String baseAsset; public static final String JSON_PROPERTY_AMOUNT = "amount"; - @jakarta.annotation.Nullable private TRLinkAmount2 amount; + @jakarta.annotation.Nullable private ScreeningPolicyAmount amount; public static final String JSON_PROPERTY_NETWORK_PROTOCOL = "networkProtocol"; @jakarta.annotation.Nullable private String networkProtocol; @@ -388,7 +388,8 @@ public void setBaseAsset(@jakarta.annotation.Nullable String baseAsset) { this.baseAsset = baseAsset; } - public TRLinkPreScreeningRule2 amount(@jakarta.annotation.Nullable TRLinkAmount2 amount) { + public TRLinkPreScreeningRule2 amount( + @jakarta.annotation.Nullable ScreeningPolicyAmount amount) { this.amount = amount; return this; } @@ -401,13 +402,13 @@ public TRLinkPreScreeningRule2 amount(@jakarta.annotation.Nullable TRLinkAmount2 @jakarta.annotation.Nullable @JsonProperty(JSON_PROPERTY_AMOUNT) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public TRLinkAmount2 getAmount() { + public ScreeningPolicyAmount getAmount() { return amount; } @JsonProperty(JSON_PROPERTY_AMOUNT) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setAmount(@jakarta.annotation.Nullable TRLinkAmount2 amount) { + public void setAmount(@jakarta.annotation.Nullable ScreeningPolicyAmount amount) { this.amount = amount; } diff --git a/src/main/java/com/fireblocks/sdk/model/TradingProviderDetails.java b/src/main/java/com/fireblocks/sdk/model/TradingProviderDetails.java deleted file mode 100644 index 6ce88b5b..00000000 --- a/src/main/java/com/fireblocks/sdk/model/TradingProviderDetails.java +++ /dev/null @@ -1,333 +0,0 @@ -/* - * Fireblocks API - * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - * - * The version of the OpenAPI document: 1.6.2 - * Contact: developers@fireblocks.com - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package com.fireblocks.sdk.model; - - -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.core.JsonToken; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonMappingException; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.MapperFeature; -import com.fasterxml.jackson.databind.SerializerProvider; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import com.fasterxml.jackson.databind.deser.std.StdDeserializer; -import com.fasterxml.jackson.databind.ser.std.StdSerializer; -import com.fireblocks.sdk.JSON; -import java.io.IOException; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.StringJoiner; -import java.util.logging.Level; -import java.util.logging.Logger; - -@jakarta.annotation.Generated( - value = "org.openapitools.codegen.languages.JavaClientCodegen", - comments = "Generator version: 7.14.0") -@JsonDeserialize(using = TradingProviderDetails.TradingProviderDetailsDeserializer.class) -@JsonSerialize(using = TradingProviderDetails.TradingProviderDetailsSerializer.class) -public class TradingProviderDetails extends AbstractOpenApiSchema { - private static final Logger log = Logger.getLogger(TradingProviderDetails.class.getName()); - - public static class TradingProviderDetailsSerializer - extends StdSerializer { - public TradingProviderDetailsSerializer(Class t) { - super(t); - } - - public TradingProviderDetailsSerializer() { - this(null); - } - - @Override - public void serialize( - TradingProviderDetails value, JsonGenerator jgen, SerializerProvider provider) - throws IOException, JsonProcessingException { - jgen.writeObject(value.getActualInstance()); - } - } - - public static class TradingProviderDetailsDeserializer - extends StdDeserializer { - public TradingProviderDetailsDeserializer() { - this(TradingProviderDetails.class); - } - - public TradingProviderDetailsDeserializer(Class vc) { - super(vc); - } - - @Override - public TradingProviderDetails deserialize(JsonParser jp, DeserializationContext ctxt) - throws IOException, JsonProcessingException { - JsonNode tree = jp.readValueAsTree(); - Object deserialized = null; - boolean typeCoercion = ctxt.isEnabled(MapperFeature.ALLOW_COERCION_OF_SCALARS); - int match = 0; - JsonToken token = tree.traverse(jp.getCodec()).nextToken(); - // deserialize AccountBasedProviderDetails - try { - boolean attemptParsing = true; - // ensure that we respect type coercion as set on the client ObjectMapper - if (AccountBasedProviderDetails.class.equals(Integer.class) - || AccountBasedProviderDetails.class.equals(Long.class) - || AccountBasedProviderDetails.class.equals(Float.class) - || AccountBasedProviderDetails.class.equals(Double.class) - || AccountBasedProviderDetails.class.equals(Boolean.class) - || AccountBasedProviderDetails.class.equals(String.class)) { - attemptParsing = typeCoercion; - if (!attemptParsing) { - attemptParsing |= - ((AccountBasedProviderDetails.class.equals(Integer.class) - || AccountBasedProviderDetails.class.equals( - Long.class)) - && token == JsonToken.VALUE_NUMBER_INT); - attemptParsing |= - ((AccountBasedProviderDetails.class.equals(Float.class) - || AccountBasedProviderDetails.class.equals( - Double.class)) - && token == JsonToken.VALUE_NUMBER_FLOAT); - attemptParsing |= - (AccountBasedProviderDetails.class.equals(Boolean.class) - && (token == JsonToken.VALUE_FALSE - || token == JsonToken.VALUE_TRUE)); - attemptParsing |= - (AccountBasedProviderDetails.class.equals(String.class) - && token == JsonToken.VALUE_STRING); - } - } - if (attemptParsing) { - deserialized = - tree.traverse(jp.getCodec()) - .readValueAs(AccountBasedProviderDetails.class); - // TODO: there is no validation against JSON schema constraints - // (min, max, enum, pattern...), this does not perform a strict JSON - // validation, which means the 'match' count may be higher than it should be. - match++; - log.log(Level.FINER, "Input data matches schema 'AccountBasedProviderDetails'"); - } - } catch (Exception e) { - // deserialization failed, continue - log.log( - Level.FINER, - "Input data does not match schema 'AccountBasedProviderDetails'", - e); - } - - // deserialize DirectProviderDetails - try { - boolean attemptParsing = true; - // ensure that we respect type coercion as set on the client ObjectMapper - if (DirectProviderDetails.class.equals(Integer.class) - || DirectProviderDetails.class.equals(Long.class) - || DirectProviderDetails.class.equals(Float.class) - || DirectProviderDetails.class.equals(Double.class) - || DirectProviderDetails.class.equals(Boolean.class) - || DirectProviderDetails.class.equals(String.class)) { - attemptParsing = typeCoercion; - if (!attemptParsing) { - attemptParsing |= - ((DirectProviderDetails.class.equals(Integer.class) - || DirectProviderDetails.class.equals(Long.class)) - && token == JsonToken.VALUE_NUMBER_INT); - attemptParsing |= - ((DirectProviderDetails.class.equals(Float.class) - || DirectProviderDetails.class.equals(Double.class)) - && token == JsonToken.VALUE_NUMBER_FLOAT); - attemptParsing |= - (DirectProviderDetails.class.equals(Boolean.class) - && (token == JsonToken.VALUE_FALSE - || token == JsonToken.VALUE_TRUE)); - attemptParsing |= - (DirectProviderDetails.class.equals(String.class) - && token == JsonToken.VALUE_STRING); - } - } - if (attemptParsing) { - deserialized = - tree.traverse(jp.getCodec()).readValueAs(DirectProviderDetails.class); - // TODO: there is no validation against JSON schema constraints - // (min, max, enum, pattern...), this does not perform a strict JSON - // validation, which means the 'match' count may be higher than it should be. - match++; - log.log(Level.FINER, "Input data matches schema 'DirectProviderDetails'"); - } - } catch (Exception e) { - // deserialization failed, continue - log.log(Level.FINER, "Input data does not match schema 'DirectProviderDetails'", e); - } - - if (match == 1) { - TradingProviderDetails ret = new TradingProviderDetails(); - ret.setActualInstance(deserialized); - return ret; - } - throw new IOException( - String.format( - "Failed deserialization for TradingProviderDetails: %d classes match" - + " result, expected 1", - match)); - } - - /** Handle deserialization of the 'null' value. */ - @Override - public TradingProviderDetails getNullValue(DeserializationContext ctxt) - throws JsonMappingException { - throw new JsonMappingException( - ctxt.getParser(), "TradingProviderDetails cannot be null"); - } - } - - // store a list of schema names defined in oneOf - public static final Map> schemas = new HashMap<>(); - - public TradingProviderDetails() { - super("oneOf", Boolean.FALSE); - } - - public TradingProviderDetails(AccountBasedProviderDetails o) { - super("oneOf", Boolean.FALSE); - setActualInstance(o); - } - - public TradingProviderDetails(DirectProviderDetails o) { - super("oneOf", Boolean.FALSE); - setActualInstance(o); - } - - static { - schemas.put("AccountBasedProviderDetails", AccountBasedProviderDetails.class); - schemas.put("DirectProviderDetails", DirectProviderDetails.class); - JSON.registerDescendants( - TradingProviderDetails.class, Collections.unmodifiableMap(schemas)); - } - - @Override - public Map> getSchemas() { - return TradingProviderDetails.schemas; - } - - /** - * Set the instance that matches the oneOf child schema, check the instance parameter is valid - * against the oneOf child schemas: AccountBasedProviderDetails, DirectProviderDetails - * - *

It could be an instance of the 'oneOf' schemas. The oneOf child schemas may themselves be - * a composed schema (allOf, anyOf, oneOf). - */ - @Override - public void setActualInstance(Object instance) { - if (JSON.isInstanceOf( - AccountBasedProviderDetails.class, instance, new HashSet>())) { - super.setActualInstance(instance); - return; - } - - if (JSON.isInstanceOf(DirectProviderDetails.class, instance, new HashSet>())) { - super.setActualInstance(instance); - return; - } - - throw new RuntimeException( - "Invalid instance type. Must be AccountBasedProviderDetails," - + " DirectProviderDetails"); - } - - /** - * Get the actual instance, which can be the following: AccountBasedProviderDetails, - * DirectProviderDetails - * - * @return The actual instance (AccountBasedProviderDetails, DirectProviderDetails) - */ - @Override - public Object getActualInstance() { - return super.getActualInstance(); - } - - /** - * Get the actual instance of `AccountBasedProviderDetails`. If the actual instance is not - * `AccountBasedProviderDetails`, the ClassCastException will be thrown. - * - * @return The actual instance of `AccountBasedProviderDetails` - * @throws ClassCastException if the instance is not `AccountBasedProviderDetails` - */ - public AccountBasedProviderDetails getAccountBasedProviderDetails() throws ClassCastException { - return (AccountBasedProviderDetails) super.getActualInstance(); - } - - /** - * Get the actual instance of `DirectProviderDetails`. If the actual instance is not - * `DirectProviderDetails`, the ClassCastException will be thrown. - * - * @return The actual instance of `DirectProviderDetails` - * @throws ClassCastException if the instance is not `DirectProviderDetails` - */ - public DirectProviderDetails getDirectProviderDetails() throws ClassCastException { - return (DirectProviderDetails) super.getActualInstance(); - } - - /** - * Convert the instance into URL query string. - * - * @return URL query string - */ - public String toUrlQueryString() { - return toUrlQueryString(null); - } - - /** - * Convert the instance into URL query string. - * - * @param prefix prefix of the query string - * @return URL query string - */ - public String toUrlQueryString(String prefix) { - String suffix = ""; - String containerSuffix = ""; - String containerPrefix = ""; - if (prefix == null) { - // style=form, explode=true, e.g. /pet?name=cat&type=manx - prefix = ""; - } else { - // deepObject style e.g. /pet?id[name]=cat&id[type]=manx - prefix = prefix + "["; - suffix = "]"; - containerSuffix = "]"; - containerPrefix = "["; - } - - StringJoiner joiner = new StringJoiner("&"); - - if (getActualInstance() instanceof AccountBasedProviderDetails) { - if (getActualInstance() != null) { - joiner.add( - ((AccountBasedProviderDetails) getActualInstance()) - .toUrlQueryString(prefix + "one_of_0" + suffix)); - } - return joiner.toString(); - } - if (getActualInstance() instanceof DirectProviderDetails) { - if (getActualInstance() != null) { - joiner.add( - ((DirectProviderDetails) getActualInstance()) - .toUrlQueryString(prefix + "one_of_1" + suffix)); - } - return joiner.toString(); - } - return null; - } -} diff --git a/src/main/java/com/fireblocks/sdk/model/TransactionRequest.java b/src/main/java/com/fireblocks/sdk/model/TransactionRequest.java index b2b38fde..51d370ce 100644 --- a/src/main/java/com/fireblocks/sdk/model/TransactionRequest.java +++ b/src/main/java/com/fireblocks/sdk/model/TransactionRequest.java @@ -47,6 +47,7 @@ TransactionRequest.JSON_PROPERTY_NETWORK_FEE, TransactionRequest.JSON_PROPERTY_REPLACE_TX_BY_HASH, TransactionRequest.JSON_PROPERTY_EXTRA_PARAMETERS, + TransactionRequest.JSON_PROPERTY_UTXO_SELECTION_PARAMS, TransactionRequest.JSON_PROPERTY_CUSTOMER_REF_ID, TransactionRequest.JSON_PROPERTY_TRAVEL_RULE_MESSAGE, TransactionRequest.JSON_PROPERTY_TRAVEL_RULE_MESSAGE_ID, @@ -162,6 +163,9 @@ public static FeeLevelEnum fromValue(String value) { public static final String JSON_PROPERTY_EXTRA_PARAMETERS = "extraParameters"; @jakarta.annotation.Nullable private ExtraParameters extraParameters; + public static final String JSON_PROPERTY_UTXO_SELECTION_PARAMS = "utxoSelectionParams"; + @jakarta.annotation.Nullable private UtxoSelectionParams utxoSelectionParams; + public static final String JSON_PROPERTY_CUSTOMER_REF_ID = "customerRefId"; @jakarta.annotation.Nullable private String customerRefId; @@ -715,6 +719,31 @@ public void setExtraParameters(@jakarta.annotation.Nullable ExtraParameters extr this.extraParameters = extraParameters; } + public TransactionRequest utxoSelectionParams( + @jakarta.annotation.Nullable UtxoSelectionParams utxoSelectionParams) { + this.utxoSelectionParams = utxoSelectionParams; + return this; + } + + /** + * Get utxoSelectionParams + * + * @return utxoSelectionParams + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_UTXO_SELECTION_PARAMS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public UtxoSelectionParams getUtxoSelectionParams() { + return utxoSelectionParams; + } + + @JsonProperty(JSON_PROPERTY_UTXO_SELECTION_PARAMS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setUtxoSelectionParams( + @jakarta.annotation.Nullable UtxoSelectionParams utxoSelectionParams) { + this.utxoSelectionParams = utxoSelectionParams; + } + public TransactionRequest customerRefId(@jakarta.annotation.Nullable String customerRefId) { this.customerRefId = customerRefId; return this; @@ -921,6 +950,7 @@ public boolean equals(Object o) { && Objects.equals(this.networkFee, transactionRequest.networkFee) && Objects.equals(this.replaceTxByHash, transactionRequest.replaceTxByHash) && Objects.equals(this.extraParameters, transactionRequest.extraParameters) + && Objects.equals(this.utxoSelectionParams, transactionRequest.utxoSelectionParams) && Objects.equals(this.customerRefId, transactionRequest.customerRefId) && Objects.equals(this.travelRuleMessage, transactionRequest.travelRuleMessage) && Objects.equals(this.travelRuleMessageId, transactionRequest.travelRuleMessageId) @@ -954,6 +984,7 @@ public int hashCode() { networkFee, replaceTxByHash, extraParameters, + utxoSelectionParams, customerRefId, travelRuleMessage, travelRuleMessageId, @@ -990,6 +1021,9 @@ public String toString() { sb.append(" networkFee: ").append(toIndentedString(networkFee)).append("\n"); sb.append(" replaceTxByHash: ").append(toIndentedString(replaceTxByHash)).append("\n"); sb.append(" extraParameters: ").append(toIndentedString(extraParameters)).append("\n"); + sb.append(" utxoSelectionParams: ") + .append(toIndentedString(utxoSelectionParams)) + .append("\n"); sb.append(" customerRefId: ").append(toIndentedString(customerRefId)).append("\n"); sb.append(" travelRuleMessage: ") .append(toIndentedString(travelRuleMessage)) @@ -1231,6 +1265,13 @@ public String toUrlQueryString(String prefix) { ApiClient.urlEncode(ApiClient.valueToString(getExtraParameters())))); } + // add `utxoSelectionParams` to the URL query string + if (getUtxoSelectionParams() != null) { + joiner.add( + getUtxoSelectionParams() + .toUrlQueryString(prefix + "utxoSelectionParams" + suffix)); + } + // add `customerRefId` to the URL query string if (getCustomerRefId() != null) { joiner.add( diff --git a/src/main/java/com/fireblocks/sdk/model/TransferPeerPathSubType.java b/src/main/java/com/fireblocks/sdk/model/TransferPeerPathSubType.java index ff869c22..1624981e 100644 --- a/src/main/java/com/fireblocks/sdk/model/TransferPeerPathSubType.java +++ b/src/main/java/com/fireblocks/sdk/model/TransferPeerPathSubType.java @@ -80,7 +80,9 @@ public enum TransferPeerPathSubType { EXTERNAL("External"), - INTERNAL("Internal"); + INTERNAL("Internal"), + + VIRTUAL_ACCOUNT("VIRTUAL_ACCOUNT"); private String value; diff --git a/src/main/java/com/fireblocks/sdk/model/TransferPeerPathType.java b/src/main/java/com/fireblocks/sdk/model/TransferPeerPathType.java index fda1043e..52ac3c62 100644 --- a/src/main/java/com/fireblocks/sdk/model/TransferPeerPathType.java +++ b/src/main/java/com/fireblocks/sdk/model/TransferPeerPathType.java @@ -22,6 +22,8 @@ public enum TransferPeerPathType { EXCHANGE_ACCOUNT("EXCHANGE_ACCOUNT"), + CONNECTED_ACCOUNT("CONNECTED_ACCOUNT"), + INTERNAL_WALLET("INTERNAL_WALLET"), EXTERNAL_WALLET("EXTERNAL_WALLET"), diff --git a/src/main/java/com/fireblocks/sdk/model/TransferRail.java b/src/main/java/com/fireblocks/sdk/model/TransferRail.java index a2442ad1..7ea1cdf5 100644 --- a/src/main/java/com/fireblocks/sdk/model/TransferRail.java +++ b/src/main/java/com/fireblocks/sdk/model/TransferRail.java @@ -18,25 +18,22 @@ /** * Transfer rail: * **BLOCKCHAIN** - Transfer over the public blockchain * **INTERNAL** - Internal - * transfer within the same account (e.g. sub-accounts or same api key) * **PEER** - Peer transfer - * within the same provider network * **SWIFT** - International wire transfer * **IBAN** - - * International Bank Account Number transfer * **US_WIRE** - Domestic wire transfer within the - * United States (e.g. FedWire) * **ACH** - Automated Clearing House transfer, typically takes - * longer but not as expensive as wire transfers * **SEPA** - Euro transfers within the SEPA zone * - * **SPEI** - Mexican interbank electronic payment system * **PIX** - Brazilian instant payment - * system * **LOCAL_BANK_TRANSFER_AFRICA** - Local bank transfers within Africa * **MOBILE_MONEY** - - * Mobile money transfers (e.g. M-Pesa) * **INTERNAL_TRANSFER** - Internal transfer within the same - * account * **INTERAC** - Canadian interbank transfer system * **PAYID** - Australian PayID payment - * system * **CHAPS** - The Clearing House Automated Payment System (CHAPS) is a real-time gross - * settlement payment system used for transactions in the United Kingdom + * transfer within the same account (e.g. sub-accounts or same api key) * **SWIFT** - International + * wire transfer * **IBAN** - International Bank Account Number transfer * **US_WIRE** - Domestic + * wire transfer within the United States (e.g. FedWire) * **ACH** - Automated Clearing House + * transfer, typically takes longer but not as expensive as wire transfers * **SEPA** - Euro + * transfers within the SEPA zone * **SPEI** - Mexican interbank electronic payment system * **PIX** + * - Brazilian instant payment system * **LBT** - Local bank transfers within Africa * **MOMO** - + * Mobile money transfers (e.g. M-Pesa) * **CHAPS** - The Clearing House Automated Payment System + * (CHAPS) is a real-time gross settlement payment system used for transactions in the United + * Kingdom * **PAYID** - PayID payment identifier system (Australia) * **INTERAC** - Interac + * electronic funds transfer (Canada) * **INTERNAL_TRANSFER** - Internal transfer between accounts */ public enum TransferRail { BLOCKCHAIN("BLOCKCHAIN"), INTERNAL("INTERNAL"), - PEER("PEER"), - SWIFT("SWIFT"), IBAN("IBAN"), @@ -51,17 +48,17 @@ public enum TransferRail { PIX("PIX"), - LOCAL_BANK_TRANSFER_AFRICA("LOCAL_BANK_TRANSFER_AFRICA"), - - MOBILE_MONEY("MOBILE_MONEY"), + LBT("LBT"), - INTERNAL_TRANSFER("INTERNAL_TRANSFER"), + MOMO("MOMO"), - INTERAC("INTERAC"), + CHAPS("CHAPS"), PAYID("PAYID"), - CHAPS("CHAPS"); + INTERAC("INTERAC"), + + INTERNAL_TRANSFER("INTERNAL_TRANSFER"); private String value; diff --git a/src/main/java/com/fireblocks/sdk/model/UtxoIdentifier.java b/src/main/java/com/fireblocks/sdk/model/UtxoIdentifier.java new file mode 100644 index 00000000..d2ee261e --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/UtxoIdentifier.java @@ -0,0 +1,222 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fireblocks.sdk.ApiClient; +import java.util.Objects; +import java.util.StringJoiner; + +/** + * Identifies a UTXO by either a Fireblocks transaction ID (targets all outputs of that transaction) + * or a specific on-chain UTXO (txHash + vout). Exactly one of these two forms must be provided. + */ +@JsonPropertyOrder({ + UtxoIdentifier.JSON_PROPERTY_TX_ID, + UtxoIdentifier.JSON_PROPERTY_TX_HASH, + UtxoIdentifier.JSON_PROPERTY_VOUT +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class UtxoIdentifier { + public static final String JSON_PROPERTY_TX_ID = "txId"; + @jakarta.annotation.Nullable private String txId; + + public static final String JSON_PROPERTY_TX_HASH = "txHash"; + @jakarta.annotation.Nullable private String txHash; + + public static final String JSON_PROPERTY_VOUT = "vout"; + @jakarta.annotation.Nullable private Integer vout; + + public UtxoIdentifier() {} + + public UtxoIdentifier txId(@jakarta.annotation.Nullable String txId) { + this.txId = txId; + return this; + } + + /** + * Fireblocks transaction ID + * + * @return txId + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TX_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getTxId() { + return txId; + } + + @JsonProperty(JSON_PROPERTY_TX_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setTxId(@jakarta.annotation.Nullable String txId) { + this.txId = txId; + } + + public UtxoIdentifier txHash(@jakarta.annotation.Nullable String txHash) { + this.txHash = txHash; + return this; + } + + /** + * On-chain transaction hash + * + * @return txHash + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TX_HASH) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getTxHash() { + return txHash; + } + + @JsonProperty(JSON_PROPERTY_TX_HASH) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setTxHash(@jakarta.annotation.Nullable String txHash) { + this.txHash = txHash; + } + + public UtxoIdentifier vout(@jakarta.annotation.Nullable Integer vout) { + this.vout = vout; + return this; + } + + /** + * Output index + * + * @return vout + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_VOUT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Integer getVout() { + return vout; + } + + @JsonProperty(JSON_PROPERTY_VOUT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setVout(@jakarta.annotation.Nullable Integer vout) { + this.vout = vout; + } + + /** Return true if this UtxoIdentifier object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UtxoIdentifier utxoIdentifier = (UtxoIdentifier) o; + return Objects.equals(this.txId, utxoIdentifier.txId) + && Objects.equals(this.txHash, utxoIdentifier.txHash) + && Objects.equals(this.vout, utxoIdentifier.vout); + } + + @Override + public int hashCode() { + return Objects.hash(txId, txHash, vout); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UtxoIdentifier {\n"); + sb.append(" txId: ").append(toIndentedString(txId)).append("\n"); + sb.append(" txHash: ").append(toIndentedString(txHash)).append("\n"); + sb.append(" vout: ").append(toIndentedString(vout)).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 `txId` to the URL query string + if (getTxId() != null) { + joiner.add( + String.format( + "%stxId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getTxId())))); + } + + // add `txHash` to the URL query string + if (getTxHash() != null) { + joiner.add( + String.format( + "%stxHash%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getTxHash())))); + } + + // add `vout` to the URL query string + if (getVout() != null) { + joiner.add( + String.format( + "%svout%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getVout())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/UtxoInput.java b/src/main/java/com/fireblocks/sdk/model/UtxoInput.java new file mode 100644 index 00000000..88483395 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/UtxoInput.java @@ -0,0 +1,186 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fireblocks.sdk.ApiClient; +import java.util.Objects; +import java.util.StringJoiner; + +/** UtxoInput */ +@JsonPropertyOrder({UtxoInput.JSON_PROPERTY_TX_HASH, UtxoInput.JSON_PROPERTY_VOUT}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class UtxoInput { + public static final String JSON_PROPERTY_TX_HASH = "txHash"; + @jakarta.annotation.Nonnull private String txHash; + + public static final String JSON_PROPERTY_VOUT = "vout"; + @jakarta.annotation.Nonnull private Integer vout; + + public UtxoInput() {} + + @JsonCreator + public UtxoInput( + @JsonProperty(value = JSON_PROPERTY_TX_HASH, required = true) String txHash, + @JsonProperty(value = JSON_PROPERTY_VOUT, required = true) Integer vout) { + this.txHash = txHash; + this.vout = vout; + } + + public UtxoInput txHash(@jakarta.annotation.Nonnull String txHash) { + this.txHash = txHash; + return this; + } + + /** + * Get txHash + * + * @return txHash + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_TX_HASH) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getTxHash() { + return txHash; + } + + @JsonProperty(JSON_PROPERTY_TX_HASH) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setTxHash(@jakarta.annotation.Nonnull String txHash) { + this.txHash = txHash; + } + + public UtxoInput vout(@jakarta.annotation.Nonnull Integer vout) { + this.vout = vout; + return this; + } + + /** + * Get vout + * + * @return vout + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_VOUT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Integer getVout() { + return vout; + } + + @JsonProperty(JSON_PROPERTY_VOUT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setVout(@jakarta.annotation.Nonnull Integer vout) { + this.vout = vout; + } + + /** Return true if this UtxoInput object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UtxoInput utxoInput = (UtxoInput) o; + return Objects.equals(this.txHash, utxoInput.txHash) + && Objects.equals(this.vout, utxoInput.vout); + } + + @Override + public int hashCode() { + return Objects.hash(txHash, vout); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UtxoInput {\n"); + sb.append(" txHash: ").append(toIndentedString(txHash)).append("\n"); + sb.append(" vout: ").append(toIndentedString(vout)).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 `txHash` to the URL query string + if (getTxHash() != null) { + joiner.add( + String.format( + "%stxHash%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getTxHash())))); + } + + // add `vout` to the URL query string + if (getVout() != null) { + joiner.add( + String.format( + "%svout%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getVout())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/UtxoInput2.java b/src/main/java/com/fireblocks/sdk/model/UtxoInput2.java new file mode 100644 index 00000000..475d8ada --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/UtxoInput2.java @@ -0,0 +1,177 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fireblocks.sdk.ApiClient; +import java.util.Objects; +import java.util.StringJoiner; + +/** UtxoInput2 */ +@JsonPropertyOrder({UtxoInput2.JSON_PROPERTY_TX_HASH, UtxoInput2.JSON_PROPERTY_INDEX}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class UtxoInput2 { + public static final String JSON_PROPERTY_TX_HASH = "txHash"; + @jakarta.annotation.Nullable private String txHash; + + public static final String JSON_PROPERTY_INDEX = "index"; + @jakarta.annotation.Nullable private Integer index; + + public UtxoInput2() {} + + public UtxoInput2 txHash(@jakarta.annotation.Nullable String txHash) { + this.txHash = txHash; + return this; + } + + /** + * The transaction hash + * + * @return txHash + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TX_HASH) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getTxHash() { + return txHash; + } + + @JsonProperty(JSON_PROPERTY_TX_HASH) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setTxHash(@jakarta.annotation.Nullable String txHash) { + this.txHash = txHash; + } + + public UtxoInput2 index(@jakarta.annotation.Nullable Integer index) { + this.index = index; + return this; + } + + /** + * The output index (vout) + * + * @return index + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_INDEX) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Integer getIndex() { + return index; + } + + @JsonProperty(JSON_PROPERTY_INDEX) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setIndex(@jakarta.annotation.Nullable Integer index) { + this.index = index; + } + + /** Return true if this UtxoInput-2 object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UtxoInput2 utxoInput2 = (UtxoInput2) o; + return Objects.equals(this.txHash, utxoInput2.txHash) + && Objects.equals(this.index, utxoInput2.index); + } + + @Override + public int hashCode() { + return Objects.hash(txHash, index); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UtxoInput2 {\n"); + sb.append(" txHash: ").append(toIndentedString(txHash)).append("\n"); + sb.append(" index: ").append(toIndentedString(index)).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 `txHash` to the URL query string + if (getTxHash() != null) { + joiner.add( + String.format( + "%stxHash%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getTxHash())))); + } + + // add `index` to the URL query string + if (getIndex() != null) { + joiner.add( + String.format( + "%sindex%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getIndex())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/UtxoInputSelection.java b/src/main/java/com/fireblocks/sdk/model/UtxoInputSelection.java new file mode 100644 index 00000000..68765ae3 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/UtxoInputSelection.java @@ -0,0 +1,276 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fireblocks.sdk.ApiClient; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.StringJoiner; + +/** + * Explicitly control which UTXOs to include or exclude. This feature is currently in beta and might + * be subject to changes. + */ +@JsonPropertyOrder({ + UtxoInputSelection.JSON_PROPERTY_INPUTS_TO_SPEND, + UtxoInputSelection.JSON_PROPERTY_INPUTS_TO_EXCLUDE, + UtxoInputSelection.JSON_PROPERTY_FILL_FEE_FOR_SELECTED_INPUTS +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class UtxoInputSelection { + public static final String JSON_PROPERTY_INPUTS_TO_SPEND = "inputsToSpend"; + @jakarta.annotation.Nullable private List inputsToSpend; + + public static final String JSON_PROPERTY_INPUTS_TO_EXCLUDE = "inputsToExclude"; + @jakarta.annotation.Nullable private List inputsToExclude; + + public static final String JSON_PROPERTY_FILL_FEE_FOR_SELECTED_INPUTS = + "fillFeeForSelectedInputs"; + @jakarta.annotation.Nullable private Boolean fillFeeForSelectedInputs; + + public UtxoInputSelection() {} + + public UtxoInputSelection inputsToSpend( + @jakarta.annotation.Nullable List inputsToSpend) { + this.inputsToSpend = inputsToSpend; + return this; + } + + public UtxoInputSelection addInputsToSpendItem(UtxoInput inputsToSpendItem) { + if (this.inputsToSpend == null) { + this.inputsToSpend = new ArrayList<>(); + } + this.inputsToSpend.add(inputsToSpendItem); + return this; + } + + /** + * Force-include specific UTXOs by txHash and vout. + * + * @return inputsToSpend + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_INPUTS_TO_SPEND) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getInputsToSpend() { + return inputsToSpend; + } + + @JsonProperty(JSON_PROPERTY_INPUTS_TO_SPEND) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setInputsToSpend(@jakarta.annotation.Nullable List inputsToSpend) { + this.inputsToSpend = inputsToSpend; + } + + public UtxoInputSelection inputsToExclude( + @jakarta.annotation.Nullable List inputsToExclude) { + this.inputsToExclude = inputsToExclude; + return this; + } + + public UtxoInputSelection addInputsToExcludeItem(UtxoInput inputsToExcludeItem) { + if (this.inputsToExclude == null) { + this.inputsToExclude = new ArrayList<>(); + } + this.inputsToExclude.add(inputsToExcludeItem); + return this; + } + + /** + * Exclude specific UTXOs from selection. + * + * @return inputsToExclude + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_INPUTS_TO_EXCLUDE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getInputsToExclude() { + return inputsToExclude; + } + + @JsonProperty(JSON_PROPERTY_INPUTS_TO_EXCLUDE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setInputsToExclude(@jakarta.annotation.Nullable List inputsToExclude) { + this.inputsToExclude = inputsToExclude; + } + + public UtxoInputSelection fillFeeForSelectedInputs( + @jakarta.annotation.Nullable Boolean fillFeeForSelectedInputs) { + this.fillFeeForSelectedInputs = fillFeeForSelectedInputs; + return this; + } + + /** + * When true and inputsToSpend is provided, automatically add more UTXOs to cover the + * transaction fee. Requires inputsToSpend. + * + * @return fillFeeForSelectedInputs + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_FILL_FEE_FOR_SELECTED_INPUTS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getFillFeeForSelectedInputs() { + return fillFeeForSelectedInputs; + } + + @JsonProperty(JSON_PROPERTY_FILL_FEE_FOR_SELECTED_INPUTS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setFillFeeForSelectedInputs( + @jakarta.annotation.Nullable Boolean fillFeeForSelectedInputs) { + this.fillFeeForSelectedInputs = fillFeeForSelectedInputs; + } + + /** Return true if this UtxoInputSelection object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UtxoInputSelection utxoInputSelection = (UtxoInputSelection) o; + return Objects.equals(this.inputsToSpend, utxoInputSelection.inputsToSpend) + && Objects.equals(this.inputsToExclude, utxoInputSelection.inputsToExclude) + && Objects.equals( + this.fillFeeForSelectedInputs, utxoInputSelection.fillFeeForSelectedInputs); + } + + @Override + public int hashCode() { + return Objects.hash(inputsToSpend, inputsToExclude, fillFeeForSelectedInputs); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UtxoInputSelection {\n"); + sb.append(" inputsToSpend: ").append(toIndentedString(inputsToSpend)).append("\n"); + sb.append(" inputsToExclude: ").append(toIndentedString(inputsToExclude)).append("\n"); + sb.append(" fillFeeForSelectedInputs: ") + .append(toIndentedString(fillFeeForSelectedInputs)) + .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 `inputsToSpend` to the URL query string + if (getInputsToSpend() != null) { + for (int i = 0; i < getInputsToSpend().size(); i++) { + if (getInputsToSpend().get(i) != null) { + joiner.add( + getInputsToSpend() + .get(i) + .toUrlQueryString( + String.format( + "%sinputsToSpend%s%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", + containerPrefix, + i, + containerSuffix)))); + } + } + } + + // add `inputsToExclude` to the URL query string + if (getInputsToExclude() != null) { + for (int i = 0; i < getInputsToExclude().size(); i++) { + if (getInputsToExclude().get(i) != null) { + joiner.add( + getInputsToExclude() + .get(i) + .toUrlQueryString( + String.format( + "%sinputsToExclude%s%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", + containerPrefix, + i, + containerSuffix)))); + } + } + } + + // add `fillFeeForSelectedInputs` to the URL query string + if (getFillFeeForSelectedInputs() != null) { + joiner.add( + String.format( + "%sfillFeeForSelectedInputs%s=%s", + prefix, + suffix, + ApiClient.urlEncode( + ApiClient.valueToString(getFillFeeForSelectedInputs())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/UtxoOutput.java b/src/main/java/com/fireblocks/sdk/model/UtxoOutput.java new file mode 100644 index 00000000..262e25b8 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/UtxoOutput.java @@ -0,0 +1,782 @@ +/* + * 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; + +/** UtxoOutput */ +@JsonPropertyOrder({ + UtxoOutput.JSON_PROPERTY_INPUT, + UtxoOutput.JSON_PROPERTY_UTXO_ID, + UtxoOutput.JSON_PROPERTY_ADDRESS, + UtxoOutput.JSON_PROPERTY_AMOUNT, + UtxoOutput.JSON_PROPERTY_CONFIRMATIONS, + UtxoOutput.JSON_PROPERTY_STATUS, + UtxoOutput.JSON_PROPERTY_IS_CHANGE, + UtxoOutput.JSON_PROPERTY_IS_COINBASE, + UtxoOutput.JSON_PROPERTY_FB_TX_ID, + UtxoOutput.JSON_PROPERTY_CREATED_BY_HASH, + UtxoOutput.JSON_PROPERTY_SPENT_BY_FB_TX_ID, + UtxoOutput.JSON_PROPERTY_CREATED_BY_HEIGHT, + UtxoOutput.JSON_PROPERTY_CREATED_AT, + UtxoOutput.JSON_PROPERTY_UPDATED_AT, + UtxoOutput.JSON_PROPERTY_LABELS +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class UtxoOutput { + public static final String JSON_PROPERTY_INPUT = "input"; + @jakarta.annotation.Nonnull private UtxoInput2 input; + + public static final String JSON_PROPERTY_UTXO_ID = "utxoId"; + @jakarta.annotation.Nonnull private String utxoId; + + public static final String JSON_PROPERTY_ADDRESS = "address"; + @jakarta.annotation.Nonnull private String address; + + public static final String JSON_PROPERTY_AMOUNT = "amount"; + @jakarta.annotation.Nonnull private String amount; + + public static final String JSON_PROPERTY_CONFIRMATIONS = "confirmations"; + @jakarta.annotation.Nullable private Integer confirmations; + + /** The UTXO status */ + public enum StatusEnum { + PENDING(String.valueOf("PENDING")), + + AVAILABLE(String.valueOf("AVAILABLE")), + + FROZEN(String.valueOf("FROZEN")), + + SELECTED(String.valueOf("SELECTED")); + + private String value; + + StatusEnum(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static StatusEnum fromValue(String value) { + for (StatusEnum b : StatusEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + } + + public static final String JSON_PROPERTY_STATUS = "status"; + @jakarta.annotation.Nonnull private StatusEnum status; + + public static final String JSON_PROPERTY_IS_CHANGE = "isChange"; + @jakarta.annotation.Nullable private Boolean isChange; + + public static final String JSON_PROPERTY_IS_COINBASE = "isCoinbase"; + @jakarta.annotation.Nullable private Boolean isCoinbase; + + public static final String JSON_PROPERTY_FB_TX_ID = "fbTxId"; + @jakarta.annotation.Nullable private String fbTxId; + + public static final String JSON_PROPERTY_CREATED_BY_HASH = "createdByHash"; + @jakarta.annotation.Nullable private String createdByHash; + + public static final String JSON_PROPERTY_SPENT_BY_FB_TX_ID = "spentByFbTxId"; + @jakarta.annotation.Nullable private List spentByFbTxId; + + public static final String JSON_PROPERTY_CREATED_BY_HEIGHT = "createdByHeight"; + @jakarta.annotation.Nullable private Integer createdByHeight; + + public static final String JSON_PROPERTY_CREATED_AT = "createdAt"; + @jakarta.annotation.Nullable private OffsetDateTime createdAt; + + public static final String JSON_PROPERTY_UPDATED_AT = "updatedAt"; + @jakarta.annotation.Nullable private OffsetDateTime updatedAt; + + public static final String JSON_PROPERTY_LABELS = "labels"; + @jakarta.annotation.Nullable private List labels; + + public UtxoOutput() {} + + @JsonCreator + public UtxoOutput( + @JsonProperty(value = JSON_PROPERTY_INPUT, required = true) UtxoInput2 input, + @JsonProperty(value = JSON_PROPERTY_UTXO_ID, required = true) String utxoId, + @JsonProperty(value = JSON_PROPERTY_ADDRESS, required = true) String address, + @JsonProperty(value = JSON_PROPERTY_AMOUNT, required = true) String amount, + @JsonProperty(value = JSON_PROPERTY_STATUS, required = true) StatusEnum status) { + this.input = input; + this.utxoId = utxoId; + this.address = address; + this.amount = amount; + this.status = status; + } + + public UtxoOutput input(@jakarta.annotation.Nonnull UtxoInput2 input) { + this.input = input; + return this; + } + + /** + * Get input + * + * @return input + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_INPUT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public UtxoInput2 getInput() { + return input; + } + + @JsonProperty(JSON_PROPERTY_INPUT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setInput(@jakarta.annotation.Nonnull UtxoInput2 input) { + this.input = input; + } + + public UtxoOutput utxoId(@jakarta.annotation.Nonnull String utxoId) { + this.utxoId = utxoId; + return this; + } + + /** + * The unique UTXO identifier + * + * @return utxoId + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_UTXO_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getUtxoId() { + return utxoId; + } + + @JsonProperty(JSON_PROPERTY_UTXO_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setUtxoId(@jakarta.annotation.Nonnull String utxoId) { + this.utxoId = utxoId; + } + + public UtxoOutput address(@jakarta.annotation.Nonnull String address) { + this.address = address; + return this; + } + + /** + * The address holding this UTXO + * + * @return address + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_ADDRESS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getAddress() { + return address; + } + + @JsonProperty(JSON_PROPERTY_ADDRESS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setAddress(@jakarta.annotation.Nonnull String address) { + this.address = address; + } + + public UtxoOutput amount(@jakarta.annotation.Nonnull String amount) { + this.amount = amount; + return this; + } + + /** + * The UTXO amount in the asset's native unit + * + * @return amount + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_AMOUNT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getAmount() { + return amount; + } + + @JsonProperty(JSON_PROPERTY_AMOUNT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setAmount(@jakarta.annotation.Nonnull String amount) { + this.amount = amount; + } + + public UtxoOutput confirmations(@jakarta.annotation.Nullable Integer confirmations) { + this.confirmations = confirmations; + return this; + } + + /** + * Number of confirmations + * + * @return confirmations + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_CONFIRMATIONS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Integer getConfirmations() { + return confirmations; + } + + @JsonProperty(JSON_PROPERTY_CONFIRMATIONS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setConfirmations(@jakarta.annotation.Nullable Integer confirmations) { + this.confirmations = confirmations; + } + + public UtxoOutput status(@jakarta.annotation.Nonnull StatusEnum status) { + this.status = status; + return this; + } + + /** + * The UTXO status + * + * @return status + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_STATUS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public StatusEnum getStatus() { + return status; + } + + @JsonProperty(JSON_PROPERTY_STATUS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setStatus(@jakarta.annotation.Nonnull StatusEnum status) { + this.status = status; + } + + public UtxoOutput isChange(@jakarta.annotation.Nullable Boolean isChange) { + this.isChange = isChange; + return this; + } + + /** + * Whether this is a change output + * + * @return isChange + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_IS_CHANGE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getIsChange() { + return isChange; + } + + @JsonProperty(JSON_PROPERTY_IS_CHANGE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setIsChange(@jakarta.annotation.Nullable Boolean isChange) { + this.isChange = isChange; + } + + public UtxoOutput isCoinbase(@jakarta.annotation.Nullable Boolean isCoinbase) { + this.isCoinbase = isCoinbase; + return this; + } + + /** + * Whether this is a coinbase output + * + * @return isCoinbase + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_IS_COINBASE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getIsCoinbase() { + return isCoinbase; + } + + @JsonProperty(JSON_PROPERTY_IS_COINBASE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setIsCoinbase(@jakarta.annotation.Nullable Boolean isCoinbase) { + this.isCoinbase = isCoinbase; + } + + public UtxoOutput fbTxId(@jakarta.annotation.Nullable String fbTxId) { + this.fbTxId = fbTxId; + return this; + } + + /** + * The Fireblocks transaction ID that created this UTXO + * + * @return fbTxId + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_FB_TX_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getFbTxId() { + return fbTxId; + } + + @JsonProperty(JSON_PROPERTY_FB_TX_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setFbTxId(@jakarta.annotation.Nullable String fbTxId) { + this.fbTxId = fbTxId; + } + + public UtxoOutput createdByHash(@jakarta.annotation.Nullable String createdByHash) { + this.createdByHash = createdByHash; + return this; + } + + /** + * The on-chain block hash where this UTXO was created + * + * @return createdByHash + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_CREATED_BY_HASH) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getCreatedByHash() { + return createdByHash; + } + + @JsonProperty(JSON_PROPERTY_CREATED_BY_HASH) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setCreatedByHash(@jakarta.annotation.Nullable String createdByHash) { + this.createdByHash = createdByHash; + } + + public UtxoOutput spentByFbTxId(@jakarta.annotation.Nullable List spentByFbTxId) { + this.spentByFbTxId = spentByFbTxId; + return this; + } + + public UtxoOutput addSpentByFbTxIdItem(String spentByFbTxIdItem) { + if (this.spentByFbTxId == null) { + this.spentByFbTxId = new ArrayList<>(); + } + this.spentByFbTxId.add(spentByFbTxIdItem); + return this; + } + + /** + * Fireblocks transaction IDs that selected/spent this UTXO + * + * @return spentByFbTxId + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_SPENT_BY_FB_TX_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getSpentByFbTxId() { + return spentByFbTxId; + } + + @JsonProperty(JSON_PROPERTY_SPENT_BY_FB_TX_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setSpentByFbTxId(@jakarta.annotation.Nullable List spentByFbTxId) { + this.spentByFbTxId = spentByFbTxId; + } + + public UtxoOutput createdByHeight(@jakarta.annotation.Nullable Integer createdByHeight) { + this.createdByHeight = createdByHeight; + return this; + } + + /** + * The block height at which this UTXO was created + * + * @return createdByHeight + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_CREATED_BY_HEIGHT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Integer getCreatedByHeight() { + return createdByHeight; + } + + @JsonProperty(JSON_PROPERTY_CREATED_BY_HEIGHT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setCreatedByHeight(@jakarta.annotation.Nullable Integer createdByHeight) { + this.createdByHeight = createdByHeight; + } + + public UtxoOutput createdAt(@jakarta.annotation.Nullable OffsetDateTime createdAt) { + this.createdAt = createdAt; + return this; + } + + /** + * The timestamp when this UTXO was created + * + * @return createdAt + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_CREATED_AT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public OffsetDateTime getCreatedAt() { + return createdAt; + } + + @JsonProperty(JSON_PROPERTY_CREATED_AT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setCreatedAt(@jakarta.annotation.Nullable OffsetDateTime createdAt) { + this.createdAt = createdAt; + } + + public UtxoOutput updatedAt(@jakarta.annotation.Nullable OffsetDateTime updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + /** + * The timestamp when this UTXO was last updated + * + * @return updatedAt + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_UPDATED_AT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public OffsetDateTime getUpdatedAt() { + return updatedAt; + } + + @JsonProperty(JSON_PROPERTY_UPDATED_AT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setUpdatedAt(@jakarta.annotation.Nullable OffsetDateTime updatedAt) { + this.updatedAt = updatedAt; + } + + public UtxoOutput labels(@jakarta.annotation.Nullable List labels) { + this.labels = labels; + return this; + } + + public UtxoOutput addLabelsItem(String labelsItem) { + if (this.labels == null) { + this.labels = new ArrayList<>(); + } + this.labels.add(labelsItem); + return this; + } + + /** + * Labels attached to this UTXO + * + * @return labels + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_LABELS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getLabels() { + return labels; + } + + @JsonProperty(JSON_PROPERTY_LABELS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setLabels(@jakarta.annotation.Nullable List labels) { + this.labels = labels; + } + + /** Return true if this UtxoOutput object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UtxoOutput utxoOutput = (UtxoOutput) o; + return Objects.equals(this.input, utxoOutput.input) + && Objects.equals(this.utxoId, utxoOutput.utxoId) + && Objects.equals(this.address, utxoOutput.address) + && Objects.equals(this.amount, utxoOutput.amount) + && Objects.equals(this.confirmations, utxoOutput.confirmations) + && Objects.equals(this.status, utxoOutput.status) + && Objects.equals(this.isChange, utxoOutput.isChange) + && Objects.equals(this.isCoinbase, utxoOutput.isCoinbase) + && Objects.equals(this.fbTxId, utxoOutput.fbTxId) + && Objects.equals(this.createdByHash, utxoOutput.createdByHash) + && Objects.equals(this.spentByFbTxId, utxoOutput.spentByFbTxId) + && Objects.equals(this.createdByHeight, utxoOutput.createdByHeight) + && Objects.equals(this.createdAt, utxoOutput.createdAt) + && Objects.equals(this.updatedAt, utxoOutput.updatedAt) + && Objects.equals(this.labels, utxoOutput.labels); + } + + @Override + public int hashCode() { + return Objects.hash( + input, + utxoId, + address, + amount, + confirmations, + status, + isChange, + isCoinbase, + fbTxId, + createdByHash, + spentByFbTxId, + createdByHeight, + createdAt, + updatedAt, + labels); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UtxoOutput {\n"); + sb.append(" input: ").append(toIndentedString(input)).append("\n"); + sb.append(" utxoId: ").append(toIndentedString(utxoId)).append("\n"); + sb.append(" address: ").append(toIndentedString(address)).append("\n"); + sb.append(" amount: ").append(toIndentedString(amount)).append("\n"); + sb.append(" confirmations: ").append(toIndentedString(confirmations)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" isChange: ").append(toIndentedString(isChange)).append("\n"); + sb.append(" isCoinbase: ").append(toIndentedString(isCoinbase)).append("\n"); + sb.append(" fbTxId: ").append(toIndentedString(fbTxId)).append("\n"); + sb.append(" createdByHash: ").append(toIndentedString(createdByHash)).append("\n"); + sb.append(" spentByFbTxId: ").append(toIndentedString(spentByFbTxId)).append("\n"); + sb.append(" createdByHeight: ").append(toIndentedString(createdByHeight)).append("\n"); + sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); + sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); + sb.append(" labels: ").append(toIndentedString(labels)).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 `input` to the URL query string + if (getInput() != null) { + joiner.add(getInput().toUrlQueryString(prefix + "input" + suffix)); + } + + // add `utxoId` to the URL query string + if (getUtxoId() != null) { + joiner.add( + String.format( + "%sutxoId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getUtxoId())))); + } + + // add `address` to the URL query string + if (getAddress() != null) { + joiner.add( + String.format( + "%saddress%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getAddress())))); + } + + // add `amount` to the URL query string + if (getAmount() != null) { + joiner.add( + String.format( + "%samount%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getAmount())))); + } + + // add `confirmations` to the URL query string + if (getConfirmations() != null) { + joiner.add( + String.format( + "%sconfirmations%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getConfirmations())))); + } + + // add `status` to the URL query string + if (getStatus() != null) { + joiner.add( + String.format( + "%sstatus%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getStatus())))); + } + + // add `isChange` to the URL query string + if (getIsChange() != null) { + joiner.add( + String.format( + "%sisChange%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getIsChange())))); + } + + // add `isCoinbase` to the URL query string + if (getIsCoinbase() != null) { + joiner.add( + String.format( + "%sisCoinbase%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getIsCoinbase())))); + } + + // add `fbTxId` to the URL query string + if (getFbTxId() != null) { + joiner.add( + String.format( + "%sfbTxId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getFbTxId())))); + } + + // add `createdByHash` to the URL query string + if (getCreatedByHash() != null) { + joiner.add( + String.format( + "%screatedByHash%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getCreatedByHash())))); + } + + // add `spentByFbTxId` to the URL query string + if (getSpentByFbTxId() != null) { + for (int i = 0; i < getSpentByFbTxId().size(); i++) { + joiner.add( + String.format( + "%sspentByFbTxId%s%s=%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", containerPrefix, i, containerSuffix), + ApiClient.urlEncode( + ApiClient.valueToString(getSpentByFbTxId().get(i))))); + } + } + + // add `createdByHeight` to the URL query string + if (getCreatedByHeight() != null) { + joiner.add( + String.format( + "%screatedByHeight%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getCreatedByHeight())))); + } + + // add `createdAt` to the URL query string + if (getCreatedAt() != null) { + joiner.add( + String.format( + "%screatedAt%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getCreatedAt())))); + } + + // add `updatedAt` to the URL query string + if (getUpdatedAt() != null) { + joiner.add( + String.format( + "%supdatedAt%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getUpdatedAt())))); + } + + // add `labels` to the URL query string + if (getLabels() != null) { + for (int i = 0; i < getLabels().size(); i++) { + joiner.add( + String.format( + "%slabels%s%s=%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", containerPrefix, i, containerSuffix), + ApiClient.urlEncode(ApiClient.valueToString(getLabels().get(i))))); + } + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/UtxoSelectionFilters.java b/src/main/java/com/fireblocks/sdk/model/UtxoSelectionFilters.java new file mode 100644 index 00000000..af2bc58d --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/UtxoSelectionFilters.java @@ -0,0 +1,475 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fireblocks.sdk.ApiClient; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.StringJoiner; + +/** + * Narrow the UTXO candidate pool. All specified filters are AND-ed together. This feature is + * currently in beta and might be subject to changes. + */ +@JsonPropertyOrder({ + UtxoSelectionFilters.JSON_PROPERTY_INCLUDE_ALL_LABELS, + UtxoSelectionFilters.JSON_PROPERTY_INCLUDE_ANY_LABELS, + UtxoSelectionFilters.JSON_PROPERTY_EXCLUDE_ANY_LABELS, + UtxoSelectionFilters.JSON_PROPERTY_ADDRESS, + UtxoSelectionFilters.JSON_PROPERTY_MIN_AMOUNT, + UtxoSelectionFilters.JSON_PROPERTY_MAX_AMOUNT, + UtxoSelectionFilters.JSON_PROPERTY_USE_CHANGE, + UtxoSelectionFilters.JSON_PROPERTY_USE_COINBASE +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class UtxoSelectionFilters { + public static final String JSON_PROPERTY_INCLUDE_ALL_LABELS = "includeAllLabels"; + @jakarta.annotation.Nullable private List includeAllLabels; + + public static final String JSON_PROPERTY_INCLUDE_ANY_LABELS = "includeAnyLabels"; + @jakarta.annotation.Nullable private List includeAnyLabels; + + public static final String JSON_PROPERTY_EXCLUDE_ANY_LABELS = "excludeAnyLabels"; + @jakarta.annotation.Nullable private List excludeAnyLabels; + + public static final String JSON_PROPERTY_ADDRESS = "address"; + @jakarta.annotation.Nullable private String address; + + public static final String JSON_PROPERTY_MIN_AMOUNT = "minAmount"; + @jakarta.annotation.Nullable private String minAmount; + + public static final String JSON_PROPERTY_MAX_AMOUNT = "maxAmount"; + @jakarta.annotation.Nullable private String maxAmount; + + public static final String JSON_PROPERTY_USE_CHANGE = "useChange"; + @jakarta.annotation.Nullable private Boolean useChange; + + public static final String JSON_PROPERTY_USE_COINBASE = "useCoinbase"; + @jakarta.annotation.Nullable private Boolean useCoinbase; + + public UtxoSelectionFilters() {} + + public UtxoSelectionFilters includeAllLabels( + @jakarta.annotation.Nullable List includeAllLabels) { + this.includeAllLabels = includeAllLabels; + return this; + } + + public UtxoSelectionFilters addIncludeAllLabelsItem(String includeAllLabelsItem) { + if (this.includeAllLabels == null) { + this.includeAllLabels = new ArrayList<>(); + } + this.includeAllLabels.add(includeAllLabelsItem); + return this; + } + + /** + * Only include UTXOs that have ALL of these labels. + * + * @return includeAllLabels + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_INCLUDE_ALL_LABELS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getIncludeAllLabels() { + return includeAllLabels; + } + + @JsonProperty(JSON_PROPERTY_INCLUDE_ALL_LABELS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setIncludeAllLabels(@jakarta.annotation.Nullable List includeAllLabels) { + this.includeAllLabels = includeAllLabels; + } + + public UtxoSelectionFilters includeAnyLabels( + @jakarta.annotation.Nullable List includeAnyLabels) { + this.includeAnyLabels = includeAnyLabels; + return this; + } + + public UtxoSelectionFilters addIncludeAnyLabelsItem(String includeAnyLabelsItem) { + if (this.includeAnyLabels == null) { + this.includeAnyLabels = new ArrayList<>(); + } + this.includeAnyLabels.add(includeAnyLabelsItem); + return this; + } + + /** + * Only include UTXOs that have at least one of these labels. + * + * @return includeAnyLabels + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_INCLUDE_ANY_LABELS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getIncludeAnyLabels() { + return includeAnyLabels; + } + + @JsonProperty(JSON_PROPERTY_INCLUDE_ANY_LABELS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setIncludeAnyLabels(@jakarta.annotation.Nullable List includeAnyLabels) { + this.includeAnyLabels = includeAnyLabels; + } + + public UtxoSelectionFilters excludeAnyLabels( + @jakarta.annotation.Nullable List excludeAnyLabels) { + this.excludeAnyLabels = excludeAnyLabels; + return this; + } + + public UtxoSelectionFilters addExcludeAnyLabelsItem(String excludeAnyLabelsItem) { + if (this.excludeAnyLabels == null) { + this.excludeAnyLabels = new ArrayList<>(); + } + this.excludeAnyLabels.add(excludeAnyLabelsItem); + return this; + } + + /** + * Exclude UTXOs that have any of these labels. + * + * @return excludeAnyLabels + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_EXCLUDE_ANY_LABELS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getExcludeAnyLabels() { + return excludeAnyLabels; + } + + @JsonProperty(JSON_PROPERTY_EXCLUDE_ANY_LABELS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setExcludeAnyLabels(@jakarta.annotation.Nullable List excludeAnyLabels) { + this.excludeAnyLabels = excludeAnyLabels; + } + + public UtxoSelectionFilters address(@jakarta.annotation.Nullable String address) { + this.address = address; + return this; + } + + /** + * Only include UTXOs from this specific address. + * + * @return address + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ADDRESS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getAddress() { + return address; + } + + @JsonProperty(JSON_PROPERTY_ADDRESS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setAddress(@jakarta.annotation.Nullable String address) { + this.address = address; + } + + public UtxoSelectionFilters minAmount(@jakarta.annotation.Nullable String minAmount) { + this.minAmount = minAmount; + return this; + } + + /** + * Minimum UTXO amount in the asset's base unit (e.g., BTC). + * + * @return minAmount + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_MIN_AMOUNT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getMinAmount() { + return minAmount; + } + + @JsonProperty(JSON_PROPERTY_MIN_AMOUNT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setMinAmount(@jakarta.annotation.Nullable String minAmount) { + this.minAmount = minAmount; + } + + public UtxoSelectionFilters maxAmount(@jakarta.annotation.Nullable String maxAmount) { + this.maxAmount = maxAmount; + return this; + } + + /** + * Maximum UTXO amount in the asset's base unit (e.g., BTC). + * + * @return maxAmount + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_MAX_AMOUNT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getMaxAmount() { + return maxAmount; + } + + @JsonProperty(JSON_PROPERTY_MAX_AMOUNT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setMaxAmount(@jakarta.annotation.Nullable String maxAmount) { + this.maxAmount = maxAmount; + } + + public UtxoSelectionFilters useChange(@jakarta.annotation.Nullable Boolean useChange) { + this.useChange = useChange; + return this; + } + + /** + * Set to false to exclude change UTXOs. Default is true. + * + * @return useChange + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_USE_CHANGE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getUseChange() { + return useChange; + } + + @JsonProperty(JSON_PROPERTY_USE_CHANGE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setUseChange(@jakarta.annotation.Nullable Boolean useChange) { + this.useChange = useChange; + } + + public UtxoSelectionFilters useCoinbase(@jakarta.annotation.Nullable Boolean useCoinbase) { + this.useCoinbase = useCoinbase; + return this; + } + + /** + * Set to false to exclude coinbase UTXOs. Default is true. + * + * @return useCoinbase + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_USE_COINBASE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getUseCoinbase() { + return useCoinbase; + } + + @JsonProperty(JSON_PROPERTY_USE_COINBASE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setUseCoinbase(@jakarta.annotation.Nullable Boolean useCoinbase) { + this.useCoinbase = useCoinbase; + } + + /** Return true if this UtxoSelectionFilters object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UtxoSelectionFilters utxoSelectionFilters = (UtxoSelectionFilters) o; + return Objects.equals(this.includeAllLabels, utxoSelectionFilters.includeAllLabels) + && Objects.equals(this.includeAnyLabels, utxoSelectionFilters.includeAnyLabels) + && Objects.equals(this.excludeAnyLabels, utxoSelectionFilters.excludeAnyLabels) + && Objects.equals(this.address, utxoSelectionFilters.address) + && Objects.equals(this.minAmount, utxoSelectionFilters.minAmount) + && Objects.equals(this.maxAmount, utxoSelectionFilters.maxAmount) + && Objects.equals(this.useChange, utxoSelectionFilters.useChange) + && Objects.equals(this.useCoinbase, utxoSelectionFilters.useCoinbase); + } + + @Override + public int hashCode() { + return Objects.hash( + includeAllLabels, + includeAnyLabels, + excludeAnyLabels, + address, + minAmount, + maxAmount, + useChange, + useCoinbase); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UtxoSelectionFilters {\n"); + sb.append(" includeAllLabels: ").append(toIndentedString(includeAllLabels)).append("\n"); + sb.append(" includeAnyLabels: ").append(toIndentedString(includeAnyLabels)).append("\n"); + sb.append(" excludeAnyLabels: ").append(toIndentedString(excludeAnyLabels)).append("\n"); + sb.append(" address: ").append(toIndentedString(address)).append("\n"); + sb.append(" minAmount: ").append(toIndentedString(minAmount)).append("\n"); + sb.append(" maxAmount: ").append(toIndentedString(maxAmount)).append("\n"); + sb.append(" useChange: ").append(toIndentedString(useChange)).append("\n"); + sb.append(" useCoinbase: ").append(toIndentedString(useCoinbase)).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 `includeAllLabels` to the URL query string + if (getIncludeAllLabels() != null) { + for (int i = 0; i < getIncludeAllLabels().size(); i++) { + joiner.add( + String.format( + "%sincludeAllLabels%s%s=%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", containerPrefix, i, containerSuffix), + ApiClient.urlEncode( + ApiClient.valueToString(getIncludeAllLabels().get(i))))); + } + } + + // add `includeAnyLabels` to the URL query string + if (getIncludeAnyLabels() != null) { + for (int i = 0; i < getIncludeAnyLabels().size(); i++) { + joiner.add( + String.format( + "%sincludeAnyLabels%s%s=%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", containerPrefix, i, containerSuffix), + ApiClient.urlEncode( + ApiClient.valueToString(getIncludeAnyLabels().get(i))))); + } + } + + // add `excludeAnyLabels` to the URL query string + if (getExcludeAnyLabels() != null) { + for (int i = 0; i < getExcludeAnyLabels().size(); i++) { + joiner.add( + String.format( + "%sexcludeAnyLabels%s%s=%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", containerPrefix, i, containerSuffix), + ApiClient.urlEncode( + ApiClient.valueToString(getExcludeAnyLabels().get(i))))); + } + } + + // add `address` to the URL query string + if (getAddress() != null) { + joiner.add( + String.format( + "%saddress%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getAddress())))); + } + + // add `minAmount` to the URL query string + if (getMinAmount() != null) { + joiner.add( + String.format( + "%sminAmount%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getMinAmount())))); + } + + // add `maxAmount` to the URL query string + if (getMaxAmount() != null) { + joiner.add( + String.format( + "%smaxAmount%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getMaxAmount())))); + } + + // add `useChange` to the URL query string + if (getUseChange() != null) { + joiner.add( + String.format( + "%suseChange%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getUseChange())))); + } + + // add `useCoinbase` to the URL query string + if (getUseCoinbase() != null) { + joiner.add( + String.format( + "%suseCoinbase%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getUseCoinbase())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/UtxoSelectionParams.java b/src/main/java/com/fireblocks/sdk/model/UtxoSelectionParams.java new file mode 100644 index 00000000..4ae31a47 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/UtxoSelectionParams.java @@ -0,0 +1,174 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.Objects; +import java.util.StringJoiner; + +/** + * For UTXO-based blockchains only. Controls which UTXOs are used for automatic selection. Cannot be + * used together with extraParameters.inputsSelection. This feature is currently in beta and might + * be subject to changes. + */ +@JsonPropertyOrder({ + UtxoSelectionParams.JSON_PROPERTY_FILTERS, + UtxoSelectionParams.JSON_PROPERTY_INPUT_SELECTION +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class UtxoSelectionParams { + public static final String JSON_PROPERTY_FILTERS = "filters"; + @jakarta.annotation.Nullable private UtxoSelectionFilters filters; + + public static final String JSON_PROPERTY_INPUT_SELECTION = "inputSelection"; + @jakarta.annotation.Nullable private UtxoInputSelection inputSelection; + + public UtxoSelectionParams() {} + + public UtxoSelectionParams filters(@jakarta.annotation.Nullable UtxoSelectionFilters filters) { + this.filters = filters; + return this; + } + + /** + * Get filters + * + * @return filters + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_FILTERS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public UtxoSelectionFilters getFilters() { + return filters; + } + + @JsonProperty(JSON_PROPERTY_FILTERS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setFilters(@jakarta.annotation.Nullable UtxoSelectionFilters filters) { + this.filters = filters; + } + + public UtxoSelectionParams inputSelection( + @jakarta.annotation.Nullable UtxoInputSelection inputSelection) { + this.inputSelection = inputSelection; + return this; + } + + /** + * Get inputSelection + * + * @return inputSelection + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_INPUT_SELECTION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public UtxoInputSelection getInputSelection() { + return inputSelection; + } + + @JsonProperty(JSON_PROPERTY_INPUT_SELECTION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setInputSelection(@jakarta.annotation.Nullable UtxoInputSelection inputSelection) { + this.inputSelection = inputSelection; + } + + /** Return true if this UtxoSelectionParams object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UtxoSelectionParams utxoSelectionParams = (UtxoSelectionParams) o; + return Objects.equals(this.filters, utxoSelectionParams.filters) + && Objects.equals(this.inputSelection, utxoSelectionParams.inputSelection); + } + + @Override + public int hashCode() { + return Objects.hash(filters, inputSelection); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UtxoSelectionParams {\n"); + sb.append(" filters: ").append(toIndentedString(filters)).append("\n"); + sb.append(" inputSelection: ").append(toIndentedString(inputSelection)).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 `filters` to the URL query string + if (getFilters() != null) { + joiner.add(getFilters().toUrlQueryString(prefix + "filters" + suffix)); + } + + // add `inputSelection` to the URL query string + if (getInputSelection() != null) { + joiner.add(getInputSelection().toUrlQueryString(prefix + "inputSelection" + suffix)); + } + + return joiner.toString(); + } +} diff --git a/src/test/java/com/fireblocks/sdk/FireblocksTest.java b/src/test/java/com/fireblocks/sdk/FireblocksTest.java index 04d9e225..f5190107 100644 --- a/src/test/java/com/fireblocks/sdk/FireblocksTest.java +++ b/src/test/java/com/fireblocks/sdk/FireblocksTest.java @@ -453,6 +453,14 @@ public void testGetDeployedContractsApi() { Assert.assertSame(deployedContracts, fireblocks.deployedContracts()); } + @Test + public void testGetEarnBetaApi() { + setupFireblocks(true, null, null); + EarnBetaApi earnBeta = fireblocks.earnBeta(); + Assert.assertNotNull(earnBeta); + Assert.assertSame(earnBeta, fireblocks.earnBeta()); + } + @Test public void testGetEmbeddedWalletsApi() { setupFireblocks(true, null, null); @@ -669,6 +677,14 @@ public void testGetUsersApi() { Assert.assertSame(users, fireblocks.users()); } + @Test + public void testGetUtxoManagementBetaApi() { + setupFireblocks(true, null, null); + UtxoManagementBetaApi utxoManagementBeta = fireblocks.utxoManagementBeta(); + Assert.assertNotNull(utxoManagementBeta); + Assert.assertSame(utxoManagementBeta, fireblocks.utxoManagementBeta()); + } + @Test public void testGetVaultsApi() { setupFireblocks(true, null, null); diff --git a/src/test/java/com/fireblocks/sdk/api/ComplianceApiTest.java b/src/test/java/com/fireblocks/sdk/api/ComplianceApiTest.java index 6ded7d35..81e425f3 100644 --- a/src/test/java/com/fireblocks/sdk/api/ComplianceApiTest.java +++ b/src/test/java/com/fireblocks/sdk/api/ComplianceApiTest.java @@ -19,7 +19,6 @@ import com.fireblocks.sdk.model.AddressRegistryAddVaultOptOutsResponse; import com.fireblocks.sdk.model.AddressRegistryGetVaultOptOutResponse; import com.fireblocks.sdk.model.AddressRegistryLegalEntity; -import com.fireblocks.sdk.model.AddressRegistryLegalEntityLegacy; import com.fireblocks.sdk.model.AddressRegistryListVaultOptOutsResponse; import com.fireblocks.sdk.model.AddressRegistryRemoveAllVaultOptOutsResponse; import com.fireblocks.sdk.model.AddressRegistryRemoveVaultOptOutResponse; @@ -29,8 +28,13 @@ import com.fireblocks.sdk.model.AmlVerdictManualResponse; import com.fireblocks.sdk.model.AssignVaultsToLegalEntityRequest; import com.fireblocks.sdk.model.AssignVaultsToLegalEntityResponse; +import com.fireblocks.sdk.model.ByorkConfigResponse; +import com.fireblocks.sdk.model.ByorkSetTimeoutsRequest; +import com.fireblocks.sdk.model.ByorkVerdictRequest; +import com.fireblocks.sdk.model.ByorkVerdictResponse; import com.fireblocks.sdk.model.ComplianceResultFullPayload; import com.fireblocks.sdk.model.CreateTransactionResponse; +import com.fireblocks.sdk.model.GetByorkVerdictResponse; import com.fireblocks.sdk.model.LegalEntityRegistration; import com.fireblocks.sdk.model.ListLegalEntitiesResponse; import com.fireblocks.sdk.model.ListVaultsForRegistrationResponse; @@ -51,6 +55,22 @@ public class ComplianceApiTest { private final ComplianceApi api = new ComplianceApi(); + /** + * Activate BYORK Light + * + *

Activates BYORK Light for the authenticated tenant (sets config.active to true). Once + * activated, BYORK screening applies to matching transactions. Requires BYORK Light to be + * enabled for the tenant (contact your CSM to enable). + * + * @throws ApiException if the Api call fails + */ + @Test + public void activateByorkConfigTest() throws ApiException { + String idempotencyKey = null; + CompletableFuture> response = + api.activateByorkConfig(idempotencyKey); + } + /** * Add vault accounts to the address registry opt-out list * @@ -86,6 +106,22 @@ public void assignVaultsToLegalEntityTest() throws ApiException { assignVaultsToLegalEntityRequest, legalEntityId, idempotencyKey); } + /** + * Deactivate BYORK Light + * + *

Deactivates BYORK Light for the authenticated tenant (sets config.active to false). Once + * deactivated, BYORK screening no longer applies until activated again. Requires BYORK Light to + * be enabled for the tenant (contact your CSM to enable). + * + * @throws ApiException if the Api call fails + */ + @Test + public void deactivateByorkConfigTest() throws ApiException { + String idempotencyKey = null; + CompletableFuture> response = + api.deactivateByorkConfig(idempotencyKey); + } + /** * Get address registry participation status for the authenticated workspace * @@ -143,50 +179,58 @@ public void getAmlScreeningPolicyTest() throws ApiException { } /** - * Get a legal entity + * Get BYORK Light configuration * - *

Returns details of a specific legal entity registration, including GLEIF data when - * available. </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, - * Editor, Viewer. + *

Retrieves BYORK Light configuration for the authenticated tenant (timeouts, active flag, + * allowed timeout ranges). Returns default config when none exists. Requires BYORK Light to be + * enabled for the tenant. * * @throws ApiException if the Api call fails */ @Test - public void getLegalEntityTest() throws ApiException { - UUID legalEntityId = null; - CompletableFuture> response = - api.getLegalEntity(legalEntityId); + public void getByorkConfigTest() throws ApiException { + CompletableFuture> response = api.getByorkConfig(); } /** - * [Deprecated] Look up legal entity by address (query parameter) + * Get BYORK Light verdict * - *

**Deprecated** — use `GET /v1/address_registry/legal_entities/{address}` - * instead. Here `address` is a **query** parameter; the replacement uses a path - * segment. The response includes only `companyName`, `countryCode`, and - * `companyId`. The replacement returns additional fields documented on that - * operation. Optional **`asset`** is supported here only (not on the replacement - * path). + *

Returns the current BYORK verdict and status for a transaction. Status can be + * PRE_ACCEPTED, PENDING, RECEIVED (verdict is final but processing not yet complete), or + * COMPLETED. Requires BYORK Light to be enabled for the tenant. Returns 404 if no BYORK verdict + * is found for the transaction. * * @throws ApiException if the Api call fails */ @Test - public void getLegalEntityByAddressTest() throws ApiException { - String address = null; - String asset = null; - CompletableFuture> response = - api.getLegalEntityByAddress(address, asset); + public void getByorkVerdictTest() throws ApiException { + String txId = null; + CompletableFuture> response = + api.getByorkVerdict(txId); + } + + /** + * Get a legal entity + * + *

Returns details of a specific legal entity registration, including GLEIF data when + * available. </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, + * Editor, Viewer. + * + * @throws ApiException if the Api call fails + */ + @Test + public void getLegalEntityTest() throws ApiException { + UUID legalEntityId = null; + CompletableFuture> response = + api.getLegalEntity(legalEntityId); } /** * Look up legal entity by blockchain address * - *

Returns legal entity information for the given blockchain address. URL-encode - * `{address}` when required. Prefer this operation over the deprecated `GET - * /v1/address_registry/legal_entity?address=…`, which returns only - * `companyName`, `countryCode`, and `companyId`. This operation - * adds verification status, LEI, Travel Rule providers, and contact email (see response - * properties). + *

Returns legal entity information for the given blockchain address (verification status, + * LEI, Travel Rule providers, contact email, and related fields — see response schema). + * URL-encode `{address}` when required. * * @throws ApiException if the Api call fails */ @@ -273,10 +317,8 @@ public void listLegalEntitiesTest() throws ApiException { String vaultAccountId = null; String pageCursor = null; Integer pageSize = null; - String sortBy = null; - String order = null; CompletableFuture> response = - api.listLegalEntities(vaultAccountId, pageCursor, pageSize, sortBy, order); + api.listLegalEntities(vaultAccountId, pageCursor, pageSize); } /** @@ -390,10 +432,12 @@ public void retryRejectedTransactionBypassScreeningChecksTest() throws ApiExcept } /** - * Set AML Verdict for Manual Screening Verdict. + * Set AML Verdict (BYORK Super Light) * - *

Set AML verdict for incoming transactions when Manual Screening Verdict feature is - * enabled. + *

Set AML verdict for incoming transactions when **BYORK Super Light** (Manual Screening + * Verdict) is enabled. This endpoint is for Super Light only. For **BYORK Light**, use POST + * /screening/byork/verdict instead. When Super Light is retired, this endpoint will be + * deprecated; use the BYORK Light verdict API for new integrations. * * @throws ApiException if the Api call fails */ @@ -405,6 +449,44 @@ public void setAmlVerdictTest() throws ApiException { api.setAmlVerdict(amlVerdictManualRequest, idempotencyKey); } + /** + * Set BYORK Light timeouts + * + *

Updates timeout values for BYORK wait-for-response (incoming and/or outgoing). At least + * one of incomingTimeoutSeconds or outgoingTimeoutSeconds is required. Values must be within + * the ranges returned in GET config (timeoutRangeIncoming for incomingTimeoutSeconds, + * timeoutRangeOutgoing for outgoingTimeoutSeconds). Requires BYORK Light to be enabled for the + * tenant (contact your CSM to enable). + * + * @throws ApiException if the Api call fails + */ + @Test + public void setByorkTimeoutsTest() throws ApiException { + ByorkSetTimeoutsRequest byorkSetTimeoutsRequest = null; + String idempotencyKey = null; + CompletableFuture> response = + api.setByorkTimeouts(byorkSetTimeoutsRequest, idempotencyKey); + } + + /** + * Set BYORK Light verdict + * + *

Submit verdict (ACCEPT or REJECT) for a transaction in the BYORK Light flow. If the + * transaction is awaiting your decision, the verdict is applied immediately (response status + * COMPLETED). If processing has not yet reached that point, the verdict is stored and applied + * when it does (response status PRE_ACCEPTED). Requires BYORK Light to be enabled for the + * tenant. + * + * @throws ApiException if the Api call fails + */ + @Test + public void setByorkVerdictTest() throws ApiException { + ByorkVerdictRequest byorkVerdictRequest = null; + String idempotencyKey = null; + CompletableFuture> response = + api.setByorkVerdict(byorkVerdictRequest, idempotencyKey); + } + /** * Update AML Configuration * diff --git a/src/test/java/com/fireblocks/sdk/api/EarnBetaApiTest.java b/src/test/java/com/fireblocks/sdk/api/EarnBetaApiTest.java new file mode 100644 index 00000000..9a109ac7 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/api/EarnBetaApiTest.java @@ -0,0 +1,162 @@ +/* + * 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.ApiException; +import com.fireblocks.sdk.ApiResponse; +import com.fireblocks.sdk.model.CreateEarnActionRequest; +import com.fireblocks.sdk.model.CreateEarnActionResponse; +import com.fireblocks.sdk.model.GetActionResponse; +import com.fireblocks.sdk.model.GetActionsResponse; +import com.fireblocks.sdk.model.GetOpportunitiesResponse; +import com.fireblocks.sdk.model.GetPositionsResponse; +import com.fireblocks.sdk.model.GetProvidersResponse; +import java.util.concurrent.CompletableFuture; +import org.junit.Ignore; +import org.junit.Test; + +/** API tests for EarnBetaApi */ +@Ignore +public class EarnBetaApiTest { + + private final EarnBetaApi api = new EarnBetaApi(); + + /** + * Approve earn provider terms of service + * + *

Approves the lending provider's terms of service for this workspace. When + * `isTermsApprovalRequired` is true on the provider (see list providers), call this + * once before creating or executing earn actions with that provider. After success, `GET + * /earn/providers` reflects `isTermsOfServiceApproved`. **Note:** This endpoint + * is currently in beta and might be subject to changes. + * + * @throws ApiException if the Api call fails + */ + @Test + public void approveTermsOfServiceTest() throws ApiException { + String providerId = null; + String idempotencyKey = null; + + CompletableFuture> response = + api.approveTermsOfService(providerId, idempotencyKey); + } + + /** + * Create and execute a lending action (deposit or withdraw) + * + *

Creates and runs a sequence of on-chain steps for either a deposit into or a withdrawal + * from an earn vault/market. Specify the operation with `action` in the request body + * (`DEPOSIT` or `WITHDRAW`). **Note:** This endpoint is currently in beta + * and might be subject to changes. + * + * @throws ApiException if the Api call fails + */ + @Test + public void createEarnActionTest() throws ApiException { + CreateEarnActionRequest createEarnActionRequest = null; + String idempotencyKey = null; + CompletableFuture> response = + api.createEarnAction(createEarnActionRequest, idempotencyKey); + } + + /** + * Get a single earn lending action + * + *

Returns one lending action by its action sequence id (tenant-scoped). **Note:** This + * endpoint is currently in beta and might be subject to changes. + * + * @throws ApiException if the Api call fails + */ + @Test + public void getEarnActionTest() throws ApiException { + String id = null; + CompletableFuture> response = api.getEarnAction(id); + } + + /** + * List earn lending actions + * + *

Returns a paginated list of lending actions (deposits and withdrawals) for the + * authenticated tenant. **Note:** This endpoint is currently in beta and might be subject to + * changes. + * + * @throws ApiException if the Api call fails + */ + @Test + public void getEarnActionsTest() throws ApiException { + String pageCursor = null; + Integer pageSize = null; + String sortBy = null; + String order = null; + CompletableFuture> response = + api.getEarnActions(pageCursor, pageSize, sortBy, order); + } + + /** + * Get list of earn opportunities + * + *

Get list of earn opportunities (vaults). **Note:** This endpoint is currently in beta and + * might be subject to changes. + * + * @throws ApiException if the Api call fails + */ + @Test + public void getEarnOpportunitiesTest() throws ApiException { + String pageCursor = null; + Integer pageSize = null; + String sortBy = null; + String order = null; + CompletableFuture> response = + api.getEarnOpportunities(pageCursor, pageSize, sortBy, order); + } + + /** + * Get list of earn positions + * + *

Get list of earn positions for accounts tracked for this workspace. Optional query + * parameters filter by chain, provider, and pagination. **Note:** This endpoint is currently in + * beta and might be subject to changes. + * + * @throws ApiException if the Api call fails + */ + @Test + public void getEarnPositionsTest() throws ApiException { + Integer chainId = null; + String providerId = null; + String pageCursor = null; + Integer pageSize = null; + String sortBy = null; + String order = null; + CompletableFuture> response = + api.getEarnPositions(chainId, providerId, pageCursor, pageSize, sortBy, order); + } + + /** + * Get list of earn providers + * + *

Get list of earn providers. **Note:** This endpoint is currently in beta and might be + * subject to changes. + * + * @throws ApiException if the Api call fails + */ + @Test + public void getEarnProvidersTest() throws ApiException { + String pageCursor = null; + Integer pageSize = null; + String sortBy = null; + String order = null; + CompletableFuture> response = + api.getEarnProviders(pageCursor, pageSize, sortBy, order); + } +} diff --git a/src/test/java/com/fireblocks/sdk/api/TradingBetaApiTest.java b/src/test/java/com/fireblocks/sdk/api/TradingBetaApiTest.java index 683da867..29566cf2 100644 --- a/src/test/java/com/fireblocks/sdk/api/TradingBetaApiTest.java +++ b/src/test/java/com/fireblocks/sdk/api/TradingBetaApiTest.java @@ -22,7 +22,7 @@ import com.fireblocks.sdk.model.OrderStatus; import com.fireblocks.sdk.model.ProvidersListResponse; import com.fireblocks.sdk.model.QuotesResponse; -import com.fireblocks.sdk.model.TradingProviderDetails; +import com.fireblocks.sdk.model.TradingProvider; import java.util.List; import java.util.concurrent.CompletableFuture; import org.junit.Ignore; @@ -135,10 +135,9 @@ public void getOrdersTest() throws ApiException { /** * Get trading provider by ID * - *

Retrieve detailed information about a specific provider including its full manifest with - * order/quote requirements. **Note:** These endpoints are currently in beta and might be - * subject to changes. If you want to participate and learn more about the Fireblocks Trading, - * please contact your Fireblocks Customer Success Manager or send an email to + *

Retrieve a single provider by ID. **Note:** These endpoints are currently in beta and + * might be subject to changes. If you want to participate and learn more about the Fireblocks + * Trading, please contact your Fireblocks Customer Success Manager or send an email to * CSM@fireblocks.com. **Endpoint Permission:** Owner, Admin, Non-Signing Admin, Signer, * Approver, Editor, Viewer. For detailed information about error codes and troubleshooting, * please refer to our [API Error Codes @@ -149,7 +148,7 @@ public void getOrdersTest() throws ApiException { @Test public void getTradingProviderByIdTest() throws ApiException { String providerId = null; - CompletableFuture> response = + CompletableFuture> response = api.getTradingProviderById(providerId); } diff --git a/src/test/java/com/fireblocks/sdk/api/UtxoManagementBetaApiTest.java b/src/test/java/com/fireblocks/sdk/api/UtxoManagementBetaApiTest.java new file mode 100644 index 00000000..a016e21a --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/api/UtxoManagementBetaApiTest.java @@ -0,0 +1,100 @@ +/* + * 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.ApiException; +import com.fireblocks.sdk.ApiResponse; +import com.fireblocks.sdk.model.AttachDetachUtxoLabelsRequest; +import com.fireblocks.sdk.model.AttachDetachUtxoLabelsResponse; +import com.fireblocks.sdk.model.ListUtxosResponse; +import java.util.List; +import java.util.concurrent.CompletableFuture; +import org.junit.Ignore; +import org.junit.Test; + +/** API tests for UtxoManagementBetaApi */ +@Ignore +public class UtxoManagementBetaApiTest { + + private final UtxoManagementBetaApi api = new UtxoManagementBetaApi(); + + /** + * List unspent outputs (UTXOs) + * + *

Returns a paginated list of unspent transaction outputs (UTXOs) for a UTXO-based asset in + * a vault account, with optional filters for labels, statuses, amounts, and more. **Note:** + * These endpoints are currently in beta and might be subject to changes. </br>Endpoint + * Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. + * + * @throws ApiException if the Api call fails + */ + @Test + public void getUtxosTest() throws ApiException { + String vaultAccountId = null; + String assetId = null; + String pageCursor = null; + Integer pageSize = null; + String sort = null; + String order = null; + List includeAllLabels = null; + List includeAnyLabels = null; + List excludeAnyLabels = null; + List includeStatuses = null; + String address = null; + String minAmount = null; + String maxAmount = null; + Boolean useChange = null; + Boolean useCoinbase = null; + CompletableFuture> response = + api.getUtxos( + vaultAccountId, + assetId, + pageCursor, + pageSize, + sort, + order, + includeAllLabels, + includeAnyLabels, + excludeAnyLabels, + includeStatuses, + address, + minAmount, + maxAmount, + useChange, + useCoinbase); + } + + /** + * Attach or detach labels to/from UTXOs + * + *

Attach or detach labels to/from UTXOs in a vault account. Labels can be used for + * organizing and filtering UTXOs. Labels are applied additively — `labelsToAttach` + * adds to the existing label set and `labelsToDetach` removes from it. Neither + * operation replaces the full set. **Note:** These endpoints are currently in beta and might be + * subject to changes. </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, + * Approver, Editor. + * + * @throws ApiException if the Api call fails + */ + @Test + public void updateUtxoLabelsTest() throws ApiException { + AttachDetachUtxoLabelsRequest attachDetachUtxoLabelsRequest = null; + String vaultAccountId = null; + String assetId = null; + String idempotencyKey = null; + CompletableFuture> response = + api.updateUtxoLabels( + attachDetachUtxoLabelsRequest, vaultAccountId, assetId, idempotencyKey); + } +} diff --git a/src/test/java/com/fireblocks/sdk/api/WebhooksV2ApiTest.java b/src/test/java/com/fireblocks/sdk/api/WebhooksV2ApiTest.java index 5b4ed88f..299010b3 100644 --- a/src/test/java/com/fireblocks/sdk/api/WebhooksV2ApiTest.java +++ b/src/test/java/com/fireblocks/sdk/api/WebhooksV2ApiTest.java @@ -20,6 +20,8 @@ import com.fireblocks.sdk.model.NotificationPaginatedResponse; import com.fireblocks.sdk.model.NotificationStatus; import com.fireblocks.sdk.model.NotificationWithData; +import com.fireblocks.sdk.model.ResendByQueryRequest; +import com.fireblocks.sdk.model.ResendByQueryResponse; import com.fireblocks.sdk.model.ResendFailedNotificationsJobStatusResponse; import com.fireblocks.sdk.model.ResendFailedNotificationsRequest; import com.fireblocks.sdk.model.ResendFailedNotificationsResponse; @@ -152,6 +154,21 @@ public void getNotificationsTest() throws ApiException { resourceId); } + /** + * Get resend by query job status + * + *

Get the status of a resend by query job + * + * @throws ApiException if the Api call fails + */ + @Test + public void getResendByQueryJobStatusTest() throws ApiException { + String webhookId = null; + String jobId = null; + CompletableFuture> response = + api.getResendByQueryJobStatus(webhookId, jobId); + } + /** * Get resend job status * @@ -232,6 +249,23 @@ public void resendNotificationByIdTest() throws ApiException { api.resendNotificationById(webhookId, notificationId, idempotencyKey); } + /** + * Resend notifications by query + * + *

Resend notifications matching the given query filters (statuses, events, time range, + * resource ID) Endpoint Permission: Owner, Admin, Non-Signing Admin, Editor, Signer. + * + * @throws ApiException if the Api call fails + */ + @Test + public void resendNotificationsByQueryTest() throws ApiException { + ResendByQueryRequest resendByQueryRequest = null; + String webhookId = null; + String idempotencyKey = null; + CompletableFuture> response = + api.resendNotificationsByQuery(resendByQueryRequest, webhookId, idempotencyKey); + } + /** * Resend notifications by resource Id * diff --git a/src/test/java/com/fireblocks/sdk/model/AccountBasedProviderDetailsTest.java b/src/test/java/com/fireblocks/sdk/model/AccountBasedProviderDetailsTest.java deleted file mode 100644 index f663ba98..00000000 --- a/src/test/java/com/fireblocks/sdk/model/AccountBasedProviderDetailsTest.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * 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 AccountBasedProviderDetails */ -class AccountBasedProviderDetailsTest { - private final AccountBasedProviderDetails model = new AccountBasedProviderDetails(); - - /** Model tests for AccountBasedProviderDetails */ - @Test - void testAccountBasedProviderDetails() { - // TODO: test AccountBasedProviderDetails - } - - /** Test the property 'id' */ - @Test - void idTest() { - // TODO: test id - } - - /** Test the property 'name' */ - @Test - void nameTest() { - // TODO: test name - } - - /** Test the property 'logo' */ - @Test - void logoTest() { - // TODO: test logo - } - - /** Test the property 'accountBased' */ - @Test - void accountBasedTest() { - // TODO: test accountBased - } - - /** Test the property 'manifest' */ - @Test - void manifestTest() { - // TODO: test manifest - } - - /** Test the property 'connected' */ - @Test - void connectedTest() { - // TODO: test connected - } - - /** Test the property 'accounts' */ - @Test - void accountsTest() { - // TODO: test accounts - } -} diff --git a/src/test/java/com/fireblocks/sdk/model/ActionRecordTest.java b/src/test/java/com/fireblocks/sdk/model/ActionRecordTest.java new file mode 100644 index 00000000..e37674dc --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/ActionRecordTest.java @@ -0,0 +1,63 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import org.junit.jupiter.api.Test; + +/** Model tests for ActionRecord */ +class ActionRecordTest { + private final ActionRecord model = new ActionRecord(); + + /** Model tests for ActionRecord */ + @Test + void testActionRecord() { + // TODO: test ActionRecord + } + + /** Test the property 'actionType' */ + @Test + void actionTypeTest() { + // TODO: test actionType + } + + /** Test the property 'status' */ + @Test + void statusTest() { + // TODO: test status + } + + /** Test the property 'txId' */ + @Test + void txIdTest() { + // TODO: test txId + } + + /** Test the property 'txHash' */ + @Test + void txHashTest() { + // TODO: test txHash + } + + /** Test the property 'errorMessage' */ + @Test + void errorMessageTest() { + // TODO: test errorMessage + } + + /** Test the property 'updatedAt' */ + @Test + void updatedAtTest() { + // TODO: test updatedAt + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/AddressRegistryLegalEntityLegacyTest.java b/src/test/java/com/fireblocks/sdk/model/ApyTest.java similarity index 52% rename from src/test/java/com/fireblocks/sdk/model/AddressRegistryLegalEntityLegacyTest.java rename to src/test/java/com/fireblocks/sdk/model/ApyTest.java index e0312a3b..4ea8f63e 100644 --- a/src/test/java/com/fireblocks/sdk/model/AddressRegistryLegalEntityLegacyTest.java +++ b/src/test/java/com/fireblocks/sdk/model/ApyTest.java @@ -15,31 +15,31 @@ import org.junit.jupiter.api.Test; -/** Model tests for AddressRegistryLegalEntityLegacy */ -class AddressRegistryLegalEntityLegacyTest { - private final AddressRegistryLegalEntityLegacy model = new AddressRegistryLegalEntityLegacy(); +/** Model tests for Apy */ +class ApyTest { + private final Apy model = new Apy(); - /** Model tests for AddressRegistryLegalEntityLegacy */ + /** Model tests for Apy */ @Test - void testAddressRegistryLegalEntityLegacy() { - // TODO: test AddressRegistryLegalEntityLegacy + void testApy() { + // TODO: test Apy } - /** Test the property 'companyName' */ + /** Test the property '_native' */ @Test - void companyNameTest() { - // TODO: test companyName + void _nativeTest() { + // TODO: test _native } - /** Test the property 'countryCode' */ + /** Test the property 'gross' */ @Test - void countryCodeTest() { - // TODO: test countryCode + void grossTest() { + // TODO: test gross } - /** Test the property 'companyId' */ + /** Test the property 'net' */ @Test - void companyIdTest() { - // TODO: test companyId + void netTest() { + // TODO: test net } } diff --git a/src/test/java/com/fireblocks/sdk/model/AttachDetachUtxoLabelsRequestTest.java b/src/test/java/com/fireblocks/sdk/model/AttachDetachUtxoLabelsRequestTest.java new file mode 100644 index 00000000..9aa448a7 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/AttachDetachUtxoLabelsRequestTest.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 AttachDetachUtxoLabelsRequest */ +class AttachDetachUtxoLabelsRequestTest { + private final AttachDetachUtxoLabelsRequest model = new AttachDetachUtxoLabelsRequest(); + + /** Model tests for AttachDetachUtxoLabelsRequest */ + @Test + void testAttachDetachUtxoLabelsRequest() { + // TODO: test AttachDetachUtxoLabelsRequest + } + + /** Test the property 'utxoIdentifiers' */ + @Test + void utxoIdentifiersTest() { + // TODO: test utxoIdentifiers + } + + /** Test the property 'labelsToAttach' */ + @Test + void labelsToAttachTest() { + // TODO: test labelsToAttach + } + + /** Test the property 'labelsToDetach' */ + @Test + void labelsToDetachTest() { + // TODO: test labelsToDetach + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/AttachDetachUtxoLabelsResponseTest.java b/src/test/java/com/fireblocks/sdk/model/AttachDetachUtxoLabelsResponseTest.java new file mode 100644 index 00000000..f2ac758a --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/AttachDetachUtxoLabelsResponseTest.java @@ -0,0 +1,33 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import org.junit.jupiter.api.Test; + +/** Model tests for AttachDetachUtxoLabelsResponse */ +class AttachDetachUtxoLabelsResponseTest { + private final AttachDetachUtxoLabelsResponse model = new AttachDetachUtxoLabelsResponse(); + + /** Model tests for AttachDetachUtxoLabelsResponse */ + @Test + void testAttachDetachUtxoLabelsResponse() { + // TODO: test AttachDetachUtxoLabelsResponse + } + + /** Test the property 'utxos' */ + @Test + void utxosTest() { + // TODO: test utxos + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/ByorkConfigResponseTest.java b/src/test/java/com/fireblocks/sdk/model/ByorkConfigResponseTest.java new file mode 100644 index 00000000..1b8d056a --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/ByorkConfigResponseTest.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 ByorkConfigResponse */ +class ByorkConfigResponseTest { + private final ByorkConfigResponse model = new ByorkConfigResponse(); + + /** Model tests for ByorkConfigResponse */ + @Test + void testByorkConfigResponse() { + // TODO: test ByorkConfigResponse + } + + /** Test the property 'incomingTimeoutSeconds' */ + @Test + void incomingTimeoutSecondsTest() { + // TODO: test incomingTimeoutSeconds + } + + /** Test the property 'outgoingTimeoutSeconds' */ + @Test + void outgoingTimeoutSecondsTest() { + // TODO: test outgoingTimeoutSeconds + } + + /** Test the property 'active' */ + @Test + void activeTest() { + // TODO: test active + } + + /** Test the property 'provider' */ + @Test + void providerTest() { + // TODO: test provider + } + + /** Test the property 'lastUpdate' */ + @Test + void lastUpdateTest() { + // TODO: test lastUpdate + } + + /** Test the property 'timeoutRangeIncoming' */ + @Test + void timeoutRangeIncomingTest() { + // TODO: test timeoutRangeIncoming + } + + /** Test the property 'timeoutRangeOutgoing' */ + @Test + void timeoutRangeOutgoingTest() { + // TODO: test timeoutRangeOutgoing + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/ByorkSetTimeoutsRequestTest.java b/src/test/java/com/fireblocks/sdk/model/ByorkSetTimeoutsRequestTest.java new file mode 100644 index 00000000..71ffc49a --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/ByorkSetTimeoutsRequestTest.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 ByorkSetTimeoutsRequest */ +class ByorkSetTimeoutsRequestTest { + private final ByorkSetTimeoutsRequest model = new ByorkSetTimeoutsRequest(); + + /** Model tests for ByorkSetTimeoutsRequest */ + @Test + void testByorkSetTimeoutsRequest() { + // TODO: test ByorkSetTimeoutsRequest + } + + /** Test the property 'incomingTimeoutSeconds' */ + @Test + void incomingTimeoutSecondsTest() { + // TODO: test incomingTimeoutSeconds + } + + /** Test the property 'outgoingTimeoutSeconds' */ + @Test + void outgoingTimeoutSecondsTest() { + // TODO: test outgoingTimeoutSeconds + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/ByorkSetVerdictEnumTest.java b/src/test/java/com/fireblocks/sdk/model/ByorkSetVerdictEnumTest.java new file mode 100644 index 00000000..da1be311 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/ByorkSetVerdictEnumTest.java @@ -0,0 +1,25 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import org.junit.jupiter.api.Test; + +/** Model tests for ByorkSetVerdictEnum */ +class ByorkSetVerdictEnumTest { + /** Model tests for ByorkSetVerdictEnum */ + @Test + void testByorkSetVerdictEnum() { + // TODO: test ByorkSetVerdictEnum + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/ByorkTimeoutRangeTest.java b/src/test/java/com/fireblocks/sdk/model/ByorkTimeoutRangeTest.java new file mode 100644 index 00000000..e48d8888 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/ByorkTimeoutRangeTest.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 ByorkTimeoutRange */ +class ByorkTimeoutRangeTest { + private final ByorkTimeoutRange model = new ByorkTimeoutRange(); + + /** Model tests for ByorkTimeoutRange */ + @Test + void testByorkTimeoutRange() { + // TODO: test ByorkTimeoutRange + } + + /** Test the property 'minSeconds' */ + @Test + void minSecondsTest() { + // TODO: test minSeconds + } + + /** Test the property 'maxSeconds' */ + @Test + void maxSecondsTest() { + // TODO: test maxSeconds + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/ByorkVerdictEnumTest.java b/src/test/java/com/fireblocks/sdk/model/ByorkVerdictEnumTest.java new file mode 100644 index 00000000..67945748 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/ByorkVerdictEnumTest.java @@ -0,0 +1,25 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import org.junit.jupiter.api.Test; + +/** Model tests for ByorkVerdictEnum */ +class ByorkVerdictEnumTest { + /** Model tests for ByorkVerdictEnum */ + @Test + void testByorkVerdictEnum() { + // TODO: test ByorkVerdictEnum + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/ByorkVerdictRequestTest.java b/src/test/java/com/fireblocks/sdk/model/ByorkVerdictRequestTest.java new file mode 100644 index 00000000..b54129f2 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/ByorkVerdictRequestTest.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 ByorkVerdictRequest */ +class ByorkVerdictRequestTest { + private final ByorkVerdictRequest model = new ByorkVerdictRequest(); + + /** Model tests for ByorkVerdictRequest */ + @Test + void testByorkVerdictRequest() { + // TODO: test ByorkVerdictRequest + } + + /** Test the property 'txId' */ + @Test + void txIdTest() { + // TODO: test txId + } + + /** Test the property 'verdict' */ + @Test + void verdictTest() { + // TODO: test verdict + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/ByorkVerdictResponseStatusEnumTest.java b/src/test/java/com/fireblocks/sdk/model/ByorkVerdictResponseStatusEnumTest.java new file mode 100644 index 00000000..25a04046 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/ByorkVerdictResponseStatusEnumTest.java @@ -0,0 +1,25 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import org.junit.jupiter.api.Test; + +/** Model tests for ByorkVerdictResponseStatusEnum */ +class ByorkVerdictResponseStatusEnumTest { + /** Model tests for ByorkVerdictResponseStatusEnum */ + @Test + void testByorkVerdictResponseStatusEnum() { + // TODO: test ByorkVerdictResponseStatusEnum + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/ByorkVerdictResponseTest.java b/src/test/java/com/fireblocks/sdk/model/ByorkVerdictResponseTest.java new file mode 100644 index 00000000..ae3a5829 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/ByorkVerdictResponseTest.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 ByorkVerdictResponse */ +class ByorkVerdictResponseTest { + private final ByorkVerdictResponse model = new ByorkVerdictResponse(); + + /** Model tests for ByorkVerdictResponse */ + @Test + void testByorkVerdictResponse() { + // TODO: test ByorkVerdictResponse + } + + /** Test the property 'status' */ + @Test + void statusTest() { + // TODO: test status + } + + /** Test the property 'message' */ + @Test + void messageTest() { + // TODO: test message + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/CreateEarnActionRequestTest.java b/src/test/java/com/fireblocks/sdk/model/CreateEarnActionRequestTest.java new file mode 100644 index 00000000..c4346fd7 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/CreateEarnActionRequestTest.java @@ -0,0 +1,51 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import org.junit.jupiter.api.Test; + +/** Model tests for CreateEarnActionRequest */ +class CreateEarnActionRequestTest { + private final CreateEarnActionRequest model = new CreateEarnActionRequest(); + + /** Model tests for CreateEarnActionRequest */ + @Test + void testCreateEarnActionRequest() { + // TODO: test CreateEarnActionRequest + } + + /** Test the property 'action' */ + @Test + void actionTest() { + // TODO: test action + } + + /** Test the property 'opportunityId' */ + @Test + void opportunityIdTest() { + // TODO: test opportunityId + } + + /** Test the property 'vaultAccountId' */ + @Test + void vaultAccountIdTest() { + // TODO: test vaultAccountId + } + + /** Test the property 'amount' */ + @Test + void amountTest() { + // TODO: test amount + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/CreateEarnActionResponseTest.java b/src/test/java/com/fireblocks/sdk/model/CreateEarnActionResponseTest.java new file mode 100644 index 00000000..60356349 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/CreateEarnActionResponseTest.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 CreateEarnActionResponse */ +class CreateEarnActionResponseTest { + private final CreateEarnActionResponse model = new CreateEarnActionResponse(); + + /** Model tests for CreateEarnActionResponse */ + @Test + void testCreateEarnActionResponse() { + // TODO: test CreateEarnActionResponse + } + + /** Test the property 'id' */ + @Test + void idTest() { + // TODO: test id + } + + /** Test the property 'status' */ + @Test + void statusTest() { + // TODO: test status + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/DirectProviderDetailsTest.java b/src/test/java/com/fireblocks/sdk/model/DirectProviderDetailsTest.java deleted file mode 100644 index 2bfd8c90..00000000 --- a/src/test/java/com/fireblocks/sdk/model/DirectProviderDetailsTest.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - * 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 DirectProviderDetails */ -class DirectProviderDetailsTest { - private final DirectProviderDetails model = new DirectProviderDetails(); - - /** Model tests for DirectProviderDetails */ - @Test - void testDirectProviderDetails() { - // TODO: test DirectProviderDetails - } - - /** Test the property 'id' */ - @Test - void idTest() { - // TODO: test id - } - - /** Test the property 'name' */ - @Test - void nameTest() { - // TODO: test name - } - - /** Test the property 'logo' */ - @Test - void logoTest() { - // TODO: test logo - } - - /** Test the property 'accountBased' */ - @Test - void accountBasedTest() { - // TODO: test accountBased - } - - /** Test the property 'manifest' */ - @Test - void manifestTest() { - // TODO: test manifest - } - - /** Test the property 'approved' */ - @Test - void approvedTest() { - // TODO: test approved - } - - /** Test the property 'hasTermsOfService' */ - @Test - void hasTermsOfServiceTest() { - // TODO: test hasTermsOfService - } - - /** Test the property 'termsOfServiceUrl' */ - @Test - void termsOfServiceUrlTest() { - // TODO: test termsOfServiceUrl - } - - /** Test the property 'privacyPolicyUrl' */ - @Test - void privacyPolicyUrlTest() { - // TODO: test privacyPolicyUrl - } -} diff --git a/src/test/java/com/fireblocks/sdk/model/EarnAssetTest.java b/src/test/java/com/fireblocks/sdk/model/EarnAssetTest.java new file mode 100644 index 00000000..56a0e322 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/EarnAssetTest.java @@ -0,0 +1,51 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import org.junit.jupiter.api.Test; + +/** Model tests for EarnAsset */ +class EarnAssetTest { + private final EarnAsset model = new EarnAsset(); + + /** Model tests for EarnAsset */ + @Test + void testEarnAsset() { + // TODO: test EarnAsset + } + + /** Test the property 'address' */ + @Test + void addressTest() { + // TODO: test address + } + + /** Test the property 'symbol' */ + @Test + void symbolTest() { + // TODO: test symbol + } + + /** Test the property 'decimals' */ + @Test + void decimalsTest() { + // TODO: test decimals + } + + /** Test the property 'assetId' */ + @Test + void assetIdTest() { + // TODO: test assetId + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/EarnProviderTest.java b/src/test/java/com/fireblocks/sdk/model/EarnProviderTest.java new file mode 100644 index 00000000..75cda4dc --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/EarnProviderTest.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 EarnProvider */ +class EarnProviderTest { + private final EarnProvider model = new EarnProvider(); + + /** Model tests for EarnProvider */ + @Test + void testEarnProvider() { + // TODO: test EarnProvider + } + + /** Test the property 'providerId' */ + @Test + void providerIdTest() { + // TODO: test providerId + } + + /** Test the property 'displayName' */ + @Test + void displayNameTest() { + // TODO: test displayName + } + + /** Test the property 'logoUrl' */ + @Test + void logoUrlTest() { + // TODO: test logoUrl + } + + /** Test the property 'supportedChainIds' */ + @Test + void supportedChainIdsTest() { + // TODO: test supportedChainIds + } + + /** Test the property 'isTermsApprovalRequired' */ + @Test + void isTermsApprovalRequiredTest() { + // TODO: test isTermsApprovalRequired + } + + /** Test the property 'termsOfServiceUrl' */ + @Test + void termsOfServiceUrlTest() { + // TODO: test termsOfServiceUrl + } + + /** Test the property 'isTermsOfServiceApproved' */ + @Test + void isTermsOfServiceApprovedTest() { + // TODO: test isTermsOfServiceApproved + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/ExposureTest.java b/src/test/java/com/fireblocks/sdk/model/ExposureTest.java new file mode 100644 index 00000000..c1226d59 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/ExposureTest.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 Exposure */ +class ExposureTest { + private final Exposure model = new Exposure(); + + /** Model tests for Exposure */ + @Test + void testExposure() { + // TODO: test Exposure + } + + /** Test the property 'assetAddress' */ + @Test + void assetAddressTest() { + // TODO: test assetAddress + } + + /** Test the property 'symbol' */ + @Test + void symbolTest() { + // TODO: test symbol + } + + /** Test the property 'amount' */ + @Test + void amountTest() { + // TODO: test amount + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/TRLinkCurrencyTest.java b/src/test/java/com/fireblocks/sdk/model/FlowDirectionTest.java similarity index 79% rename from src/test/java/com/fireblocks/sdk/model/TRLinkCurrencyTest.java rename to src/test/java/com/fireblocks/sdk/model/FlowDirectionTest.java index 0adcad50..2d653976 100644 --- a/src/test/java/com/fireblocks/sdk/model/TRLinkCurrencyTest.java +++ b/src/test/java/com/fireblocks/sdk/model/FlowDirectionTest.java @@ -15,11 +15,11 @@ import org.junit.jupiter.api.Test; -/** Model tests for TRLinkCurrency */ -class TRLinkCurrencyTest { - /** Model tests for TRLinkCurrency */ +/** Model tests for FlowDirection */ +class FlowDirectionTest { + /** Model tests for FlowDirection */ @Test - void testTRLinkCurrency() { - // TODO: test TRLinkCurrency + void testFlowDirection() { + // TODO: test FlowDirection } } diff --git a/src/test/java/com/fireblocks/sdk/model/GetActionResponseTest.java b/src/test/java/com/fireblocks/sdk/model/GetActionResponseTest.java new file mode 100644 index 00000000..857323de --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/GetActionResponseTest.java @@ -0,0 +1,87 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import org.junit.jupiter.api.Test; + +/** Model tests for GetActionResponse */ +class GetActionResponseTest { + private final GetActionResponse model = new GetActionResponse(); + + /** Model tests for GetActionResponse */ + @Test + void testGetActionResponse() { + // TODO: test GetActionResponse + } + + /** Test the property 'id' */ + @Test + void idTest() { + // TODO: test id + } + + /** Test the property 'status' */ + @Test + void statusTest() { + // TODO: test status + } + + /** Test the property 'providerId' */ + @Test + void providerIdTest() { + // TODO: test providerId + } + + /** Test the property 'actionType' */ + @Test + void actionTypeTest() { + // TODO: test actionType + } + + /** Test the property 'opportunityId' */ + @Test + void opportunityIdTest() { + // TODO: test opportunityId + } + + /** Test the property 'positionId' */ + @Test + void positionIdTest() { + // TODO: test positionId + } + + /** Test the property 'amount' */ + @Test + void amountTest() { + // TODO: test amount + } + + /** Test the property 'createdAt' */ + @Test + void createdAtTest() { + // TODO: test createdAt + } + + /** Test the property 'updatedAt' */ + @Test + void updatedAtTest() { + // TODO: test updatedAt + } + + /** Test the property 'records' */ + @Test + void recordsTest() { + // TODO: test records + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/GetActionsResponseTest.java b/src/test/java/com/fireblocks/sdk/model/GetActionsResponseTest.java new file mode 100644 index 00000000..ec253f2e --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/GetActionsResponseTest.java @@ -0,0 +1,51 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import org.junit.jupiter.api.Test; + +/** Model tests for GetActionsResponse */ +class GetActionsResponseTest { + private final GetActionsResponse model = new GetActionsResponse(); + + /** Model tests for GetActionsResponse */ + @Test + void testGetActionsResponse() { + // TODO: test GetActionsResponse + } + + /** Test the property 'data' */ + @Test + void dataTest() { + // TODO: test data + } + + /** Test the property 'next' */ + @Test + void nextTest() { + // TODO: test next + } + + /** Test the property 'prev' */ + @Test + void prevTest() { + // TODO: test prev + } + + /** Test the property 'total' */ + @Test + void totalTest() { + // TODO: test total + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/GetByorkVerdictResponseTest.java b/src/test/java/com/fireblocks/sdk/model/GetByorkVerdictResponseTest.java new file mode 100644 index 00000000..81cc1408 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/GetByorkVerdictResponseTest.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 GetByorkVerdictResponse */ +class GetByorkVerdictResponseTest { + private final GetByorkVerdictResponse model = new GetByorkVerdictResponse(); + + /** Model tests for GetByorkVerdictResponse */ + @Test + void testGetByorkVerdictResponse() { + // TODO: test GetByorkVerdictResponse + } + + /** Test the property 'status' */ + @Test + void statusTest() { + // TODO: test status + } + + /** Test the property 'verdict' */ + @Test + void verdictTest() { + // TODO: test verdict + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/GetOpportunitiesResponseTest.java b/src/test/java/com/fireblocks/sdk/model/GetOpportunitiesResponseTest.java new file mode 100644 index 00000000..f9982091 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/GetOpportunitiesResponseTest.java @@ -0,0 +1,51 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import org.junit.jupiter.api.Test; + +/** Model tests for GetOpportunitiesResponse */ +class GetOpportunitiesResponseTest { + private final GetOpportunitiesResponse model = new GetOpportunitiesResponse(); + + /** Model tests for GetOpportunitiesResponse */ + @Test + void testGetOpportunitiesResponse() { + // TODO: test GetOpportunitiesResponse + } + + /** Test the property 'data' */ + @Test + void dataTest() { + // TODO: test data + } + + /** Test the property 'next' */ + @Test + void nextTest() { + // TODO: test next + } + + /** Test the property 'prev' */ + @Test + void prevTest() { + // TODO: test prev + } + + /** Test the property 'total' */ + @Test + void totalTest() { + // TODO: test total + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/GetPositionsResponseTest.java b/src/test/java/com/fireblocks/sdk/model/GetPositionsResponseTest.java new file mode 100644 index 00000000..d2dee346 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/GetPositionsResponseTest.java @@ -0,0 +1,51 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import org.junit.jupiter.api.Test; + +/** Model tests for GetPositionsResponse */ +class GetPositionsResponseTest { + private final GetPositionsResponse model = new GetPositionsResponse(); + + /** Model tests for GetPositionsResponse */ + @Test + void testGetPositionsResponse() { + // TODO: test GetPositionsResponse + } + + /** Test the property 'data' */ + @Test + void dataTest() { + // TODO: test data + } + + /** Test the property 'next' */ + @Test + void nextTest() { + // TODO: test next + } + + /** Test the property 'prev' */ + @Test + void prevTest() { + // TODO: test prev + } + + /** Test the property 'total' */ + @Test + void totalTest() { + // TODO: test total + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/GetProvidersResponseTest.java b/src/test/java/com/fireblocks/sdk/model/GetProvidersResponseTest.java new file mode 100644 index 00000000..82f205cf --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/GetProvidersResponseTest.java @@ -0,0 +1,51 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import org.junit.jupiter.api.Test; + +/** Model tests for GetProvidersResponse */ +class GetProvidersResponseTest { + private final GetProvidersResponse model = new GetProvidersResponse(); + + /** Model tests for GetProvidersResponse */ + @Test + void testGetProvidersResponse() { + // TODO: test GetProvidersResponse + } + + /** Test the property 'data' */ + @Test + void dataTest() { + // TODO: test data + } + + /** Test the property 'next' */ + @Test + void nextTest() { + // TODO: test next + } + + /** Test the property 'prev' */ + @Test + void prevTest() { + // TODO: test prev + } + + /** Test the property 'total' */ + @Test + void totalTest() { + // TODO: test total + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/GleifDataTest.java b/src/test/java/com/fireblocks/sdk/model/GleifDataTest.java index 0163ecf3..82314fa1 100644 --- a/src/test/java/com/fireblocks/sdk/model/GleifDataTest.java +++ b/src/test/java/com/fireblocks/sdk/model/GleifDataTest.java @@ -37,6 +37,12 @@ void legalNameTest() { // TODO: test legalName } + /** Test the property 'legalNameLanguage' */ + @Test + void legalNameLanguageTest() { + // TODO: test legalNameLanguage + } + /** Test the property 'otherNames' */ @Test void otherNamesTest() { diff --git a/src/test/java/com/fireblocks/sdk/model/GleifOtherLegalEntityNameTest.java b/src/test/java/com/fireblocks/sdk/model/GleifOtherLegalEntityNameTest.java new file mode 100644 index 00000000..dba0d50a --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/GleifOtherLegalEntityNameTest.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 GleifOtherLegalEntityName */ +class GleifOtherLegalEntityNameTest { + private final GleifOtherLegalEntityName model = new GleifOtherLegalEntityName(); + + /** Model tests for GleifOtherLegalEntityName */ + @Test + void testGleifOtherLegalEntityName() { + // TODO: test GleifOtherLegalEntityName + } + + /** Test the property 'name' */ + @Test + void nameTest() { + // TODO: test name + } + + /** Test the property 'language' */ + @Test + void languageTest() { + // TODO: test language + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/IdentificationPolicyOverrideTest.java b/src/test/java/com/fireblocks/sdk/model/IdentificationPolicyOverrideTest.java new file mode 100644 index 00000000..8eb699ed --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/IdentificationPolicyOverrideTest.java @@ -0,0 +1,51 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import org.junit.jupiter.api.Test; + +/** Model tests for IdentificationPolicyOverride */ +class IdentificationPolicyOverrideTest { + private final IdentificationPolicyOverride model = new IdentificationPolicyOverride(); + + /** Model tests for IdentificationPolicyOverride */ + @Test + void testIdentificationPolicyOverride() { + // TODO: test IdentificationPolicyOverride + } + + /** Test the property 'asset' */ + @Test + void assetTest() { + // TODO: test asset + } + + /** Test the property 'rail' */ + @Test + void railTest() { + // TODO: test rail + } + + /** Test the property 'flowDirection' */ + @Test + void flowDirectionTest() { + // TODO: test flowDirection + } + + /** Test the property 'schema' */ + @Test + void schemaTest() { + // TODO: test schema + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/ListLegalEntitiesResponseTest.java b/src/test/java/com/fireblocks/sdk/model/ListLegalEntitiesResponseTest.java index 3c9d7802..9641e70b 100644 --- a/src/test/java/com/fireblocks/sdk/model/ListLegalEntitiesResponseTest.java +++ b/src/test/java/com/fireblocks/sdk/model/ListLegalEntitiesResponseTest.java @@ -42,10 +42,4 @@ void dataTest() { void nextTest() { // TODO: test next } - - /** Test the property 'prev' */ - @Test - void prevTest() { - // TODO: test prev - } } diff --git a/src/test/java/com/fireblocks/sdk/model/ListUtxosResponseTest.java b/src/test/java/com/fireblocks/sdk/model/ListUtxosResponseTest.java new file mode 100644 index 00000000..f710b012 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/ListUtxosResponseTest.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 ListUtxosResponse */ +class ListUtxosResponseTest { + private final ListUtxosResponse model = new ListUtxosResponse(); + + /** Model tests for ListUtxosResponse */ + @Test + void testListUtxosResponse() { + // TODO: test ListUtxosResponse + } + + /** Test the property 'data' */ + @Test + void dataTest() { + // TODO: test data + } + + /** Test the property 'next' */ + @Test + void nextTest() { + // TODO: test next + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/ListVaultsForRegistrationResponseTest.java b/src/test/java/com/fireblocks/sdk/model/ListVaultsForRegistrationResponseTest.java index 17aed368..687a55c6 100644 --- a/src/test/java/com/fireblocks/sdk/model/ListVaultsForRegistrationResponseTest.java +++ b/src/test/java/com/fireblocks/sdk/model/ListVaultsForRegistrationResponseTest.java @@ -42,10 +42,4 @@ void dataTest() { void nextTest() { // TODO: test next } - - /** Test the property 'prev' */ - @Test - void prevTest() { - // TODO: test prev - } } diff --git a/src/test/java/com/fireblocks/sdk/model/ManifestTest.java b/src/test/java/com/fireblocks/sdk/model/ManifestTest.java index 8286a7bc..a09d5527 100644 --- a/src/test/java/com/fireblocks/sdk/model/ManifestTest.java +++ b/src/test/java/com/fireblocks/sdk/model/ManifestTest.java @@ -42,4 +42,10 @@ void quoteTest() { void rateTest() { // TODO: test rate } + + /** Test the property 'participantsIdentificationPolicy' */ + @Test + void participantsIdentificationPolicyTest() { + // TODO: test participantsIdentificationPolicy + } } diff --git a/src/test/java/com/fireblocks/sdk/model/OpportunityTest.java b/src/test/java/com/fireblocks/sdk/model/OpportunityTest.java new file mode 100644 index 00000000..001960b1 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/OpportunityTest.java @@ -0,0 +1,117 @@ +/* + * 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 Opportunity */ +class OpportunityTest { + private final Opportunity model = new Opportunity(); + + /** Model tests for Opportunity */ + @Test + void testOpportunity() { + // TODO: test Opportunity + } + + /** Test the property 'id' */ + @Test + void idTest() { + // TODO: test id + } + + /** Test the property 'providerId' */ + @Test + void providerIdTest() { + // TODO: test providerId + } + + /** Test the property 'type' */ + @Test + void typeTest() { + // TODO: test type + } + + /** Test the property 'chainId' */ + @Test + void chainIdTest() { + // TODO: test chainId + } + + /** Test the property 'address' */ + @Test + void addressTest() { + // TODO: test address + } + + /** Test the property 'name' */ + @Test + void nameTest() { + // TODO: test name + } + + /** Test the property 'symbol' */ + @Test + void symbolTest() { + // TODO: test symbol + } + + /** Test the property 'principalAsset' */ + @Test + void principalAssetTest() { + // TODO: test principalAsset + } + + /** Test the property 'positionAsset' */ + @Test + void positionAssetTest() { + // TODO: test positionAsset + } + + /** Test the property 'totalAssets' */ + @Test + void totalAssetsTest() { + // TODO: test totalAssets + } + + /** Test the property 'liquidity' */ + @Test + void liquidityTest() { + // TODO: test liquidity + } + + /** Test the property 'apy' */ + @Test + void apyTest() { + // TODO: test apy + } + + /** Test the property 'performanceFee' */ + @Test + void performanceFeeTest() { + // TODO: test performanceFee + } + + /** Test the property 'managementFee' */ + @Test + void managementFeeTest() { + // TODO: test managementFee + } + + /** Test the property 'exposure' */ + @Test + void exposureTest() { + // TODO: test exposure + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/ParticipantsIdentificationPolicyTest.java b/src/test/java/com/fireblocks/sdk/model/ParticipantsIdentificationPolicyTest.java new file mode 100644 index 00000000..1faa2bf7 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/ParticipantsIdentificationPolicyTest.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 ParticipantsIdentificationPolicy */ +class ParticipantsIdentificationPolicyTest { + private final ParticipantsIdentificationPolicy model = new ParticipantsIdentificationPolicy(); + + /** Model tests for ParticipantsIdentificationPolicy */ + @Test + void testParticipantsIdentificationPolicy() { + // TODO: test ParticipantsIdentificationPolicy + } + + /** Test the property 'supportedEndpoints' */ + @Test + void supportedEndpointsTest() { + // TODO: test supportedEndpoints + } + + /** Test the property 'defaultSchema' */ + @Test + void defaultSchemaTest() { + // TODO: test defaultSchema + } + + /** Test the property 'overrides' */ + @Test + void overridesTest() { + // TODO: test overrides + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/ParticipantsIdentificationSupportedEndpointTest.java b/src/test/java/com/fireblocks/sdk/model/ParticipantsIdentificationSupportedEndpointTest.java new file mode 100644 index 00000000..c755c017 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/ParticipantsIdentificationSupportedEndpointTest.java @@ -0,0 +1,25 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import org.junit.jupiter.api.Test; + +/** Model tests for ParticipantsIdentificationSupportedEndpoint */ +class ParticipantsIdentificationSupportedEndpointTest { + /** Model tests for ParticipantsIdentificationSupportedEndpoint */ + @Test + void testParticipantsIdentificationSupportedEndpoint() { + // TODO: test ParticipantsIdentificationSupportedEndpoint + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/Position2Test.java b/src/test/java/com/fireblocks/sdk/model/Position2Test.java new file mode 100644 index 00000000..ff8bb13f --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/Position2Test.java @@ -0,0 +1,129 @@ +/* + * 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 Position2 */ +class Position2Test { + private final Position2 model = new Position2(); + + /** Model tests for Position2 */ + @Test + void testPosition2() { + // TODO: test Position2 + } + + /** Test the property 'id' */ + @Test + void idTest() { + // TODO: test id + } + + /** Test the property 'status' */ + @Test + void statusTest() { + // TODO: test status + } + + /** Test the property 'inFlight' */ + @Test + void inFlightTest() { + // TODO: test inFlight + } + + /** Test the property 'positionType' */ + @Test + void positionTypeTest() { + // TODO: test positionType + } + + /** Test the property 'vaultAccountId' */ + @Test + void vaultAccountIdTest() { + // TODO: test vaultAccountId + } + + /** Test the property 'opportunityId' */ + @Test + void opportunityIdTest() { + // TODO: test opportunityId + } + + /** Test the property 'chainId' */ + @Test + void chainIdTest() { + // TODO: test chainId + } + + /** Test the property 'providerId' */ + @Test + void providerIdTest() { + // TODO: test providerId + } + + /** Test the property 'origin' */ + @Test + void originTest() { + // TODO: test origin + } + + /** Test the property 'principalAssetId' */ + @Test + void principalAssetIdTest() { + // TODO: test principalAssetId + } + + /** Test the property 'positionAssetId' */ + @Test + void positionAssetIdTest() { + // TODO: test positionAssetId + } + + /** Test the property 'principalBalance' */ + @Test + void principalBalanceTest() { + // TODO: test principalBalance + } + + /** Test the property 'positionBalance' */ + @Test + void positionBalanceTest() { + // TODO: test positionBalance + } + + /** Test the property 'createdAt' */ + @Test + void createdAtTest() { + // TODO: test createdAt + } + + /** Test the property 'updatedAt' */ + @Test + void updatedAtTest() { + // TODO: test updatedAt + } + + /** Test the property 'lastSyncedAt' */ + @Test + void lastSyncedAtTest() { + // TODO: test lastSyncedAt + } + + /** Test the property 'availableActions' */ + @Test + void availableActionsTest() { + // TODO: test availableActions + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/ResendByQueryRequestTest.java b/src/test/java/com/fireblocks/sdk/model/ResendByQueryRequestTest.java new file mode 100644 index 00000000..bc1a2cc4 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/ResendByQueryRequestTest.java @@ -0,0 +1,57 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import org.junit.jupiter.api.Test; + +/** Model tests for ResendByQueryRequest */ +class ResendByQueryRequestTest { + private final ResendByQueryRequest model = new ResendByQueryRequest(); + + /** Model tests for ResendByQueryRequest */ + @Test + void testResendByQueryRequest() { + // TODO: test ResendByQueryRequest + } + + /** Test the property 'statuses' */ + @Test + void statusesTest() { + // TODO: test statuses + } + + /** Test the property 'startTime' */ + @Test + void startTimeTest() { + // TODO: test startTime + } + + /** Test the property 'endTime' */ + @Test + void endTimeTest() { + // TODO: test endTime + } + + /** Test the property 'events' */ + @Test + void eventsTest() { + // TODO: test events + } + + /** Test the property 'resourceId' */ + @Test + void resourceIdTest() { + // TODO: test resourceId + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/ResendByQueryResponseTest.java b/src/test/java/com/fireblocks/sdk/model/ResendByQueryResponseTest.java new file mode 100644 index 00000000..4d7e1edc --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/ResendByQueryResponseTest.java @@ -0,0 +1,33 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import org.junit.jupiter.api.Test; + +/** Model tests for ResendByQueryResponse */ +class ResendByQueryResponseTest { + private final ResendByQueryResponse model = new ResendByQueryResponse(); + + /** Model tests for ResendByQueryResponse */ + @Test + void testResendByQueryResponse() { + // TODO: test ResendByQueryResponse + } + + /** Test the property 'total' */ + @Test + void totalTest() { + // TODO: test total + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/TRLinkAmountRangeTest.java b/src/test/java/com/fireblocks/sdk/model/ScreeningPolicyAmountRangeTest.java similarity index 73% rename from src/test/java/com/fireblocks/sdk/model/TRLinkAmountRangeTest.java rename to src/test/java/com/fireblocks/sdk/model/ScreeningPolicyAmountRangeTest.java index e6dbe544..c4fd0705 100644 --- a/src/test/java/com/fireblocks/sdk/model/TRLinkAmountRangeTest.java +++ b/src/test/java/com/fireblocks/sdk/model/ScreeningPolicyAmountRangeTest.java @@ -15,14 +15,14 @@ import org.junit.jupiter.api.Test; -/** Model tests for TRLinkAmountRange */ -class TRLinkAmountRangeTest { - private final TRLinkAmountRange model = new TRLinkAmountRange(); +/** Model tests for ScreeningPolicyAmountRange */ +class ScreeningPolicyAmountRangeTest { + private final ScreeningPolicyAmountRange model = new ScreeningPolicyAmountRange(); - /** Model tests for TRLinkAmountRange */ + /** Model tests for ScreeningPolicyAmountRange */ @Test - void testTRLinkAmountRange() { - // TODO: test TRLinkAmountRange + void testScreeningPolicyAmountRange() { + // TODO: test ScreeningPolicyAmountRange } /** Test the property 'min' */ diff --git a/src/test/java/com/fireblocks/sdk/model/TRLinkAmount2Test.java b/src/test/java/com/fireblocks/sdk/model/ScreeningPolicyAmountTest.java similarity index 76% rename from src/test/java/com/fireblocks/sdk/model/TRLinkAmount2Test.java rename to src/test/java/com/fireblocks/sdk/model/ScreeningPolicyAmountTest.java index a04305b7..aff9f61f 100644 --- a/src/test/java/com/fireblocks/sdk/model/TRLinkAmount2Test.java +++ b/src/test/java/com/fireblocks/sdk/model/ScreeningPolicyAmountTest.java @@ -15,14 +15,14 @@ import org.junit.jupiter.api.Test; -/** Model tests for TRLinkAmount2 */ -class TRLinkAmount2Test { - private final TRLinkAmount2 model = new TRLinkAmount2(); +/** Model tests for ScreeningPolicyAmount */ +class ScreeningPolicyAmountTest { + private final ScreeningPolicyAmount model = new ScreeningPolicyAmount(); - /** Model tests for TRLinkAmount2 */ + /** Model tests for ScreeningPolicyAmount */ @Test - void testTRLinkAmount2() { - // TODO: test TRLinkAmount2 + void testScreeningPolicyAmount() { + // TODO: test ScreeningPolicyAmount } /** Test the property 'range' */ diff --git a/src/test/java/com/fireblocks/sdk/model/ScreeningPolicyCurrencyTest.java b/src/test/java/com/fireblocks/sdk/model/ScreeningPolicyCurrencyTest.java new file mode 100644 index 00000000..51bf1255 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/ScreeningPolicyCurrencyTest.java @@ -0,0 +1,25 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import org.junit.jupiter.api.Test; + +/** Model tests for ScreeningPolicyCurrency */ +class ScreeningPolicyCurrencyTest { + /** Model tests for ScreeningPolicyCurrency */ + @Test + void testScreeningPolicyCurrency() { + // TODO: test ScreeningPolicyCurrency + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/TradingProviderDetailsTest.java b/src/test/java/com/fireblocks/sdk/model/TradingProviderDetailsTest.java deleted file mode 100644 index a6aa66ec..00000000 --- a/src/test/java/com/fireblocks/sdk/model/TradingProviderDetailsTest.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * 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 TradingProviderDetails */ -class TradingProviderDetailsTest { - private final TradingProviderDetails model = new TradingProviderDetails(); - - /** Model tests for TradingProviderDetails */ - @Test - void testTradingProviderDetails() { - // TODO: test TradingProviderDetails - } - - /** Test the property 'id' */ - @Test - void idTest() { - // TODO: test id - } - - /** Test the property 'name' */ - @Test - void nameTest() { - // TODO: test name - } - - /** Test the property 'logo' */ - @Test - void logoTest() { - // TODO: test logo - } - - /** Test the property 'accountBased' */ - @Test - void accountBasedTest() { - // TODO: test accountBased - } - - /** Test the property 'manifest' */ - @Test - void manifestTest() { - // TODO: test manifest - } - - /** Test the property 'connected' */ - @Test - void connectedTest() { - // TODO: test connected - } - - /** Test the property 'accounts' */ - @Test - void accountsTest() { - // TODO: test accounts - } - - /** Test the property 'approved' */ - @Test - void approvedTest() { - // TODO: test approved - } - - /** Test the property 'hasTermsOfService' */ - @Test - void hasTermsOfServiceTest() { - // TODO: test hasTermsOfService - } - - /** Test the property 'termsOfServiceUrl' */ - @Test - void termsOfServiceUrlTest() { - // TODO: test termsOfServiceUrl - } - - /** Test the property 'privacyPolicyUrl' */ - @Test - void privacyPolicyUrlTest() { - // TODO: test privacyPolicyUrl - } -} diff --git a/src/test/java/com/fireblocks/sdk/model/TransactionRequestTest.java b/src/test/java/com/fireblocks/sdk/model/TransactionRequestTest.java index 5e11a217..0366692d 100644 --- a/src/test/java/com/fireblocks/sdk/model/TransactionRequestTest.java +++ b/src/test/java/com/fireblocks/sdk/model/TransactionRequestTest.java @@ -151,6 +151,12 @@ void extraParametersTest() { // TODO: test extraParameters } + /** Test the property 'utxoSelectionParams' */ + @Test + void utxoSelectionParamsTest() { + // TODO: test utxoSelectionParams + } + /** Test the property 'customerRefId' */ @Test void customerRefIdTest() { diff --git a/src/test/java/com/fireblocks/sdk/model/UtxoIdentifierTest.java b/src/test/java/com/fireblocks/sdk/model/UtxoIdentifierTest.java new file mode 100644 index 00000000..9d4aa307 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/UtxoIdentifierTest.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 UtxoIdentifier */ +class UtxoIdentifierTest { + private final UtxoIdentifier model = new UtxoIdentifier(); + + /** Model tests for UtxoIdentifier */ + @Test + void testUtxoIdentifier() { + // TODO: test UtxoIdentifier + } + + /** Test the property 'txId' */ + @Test + void txIdTest() { + // TODO: test txId + } + + /** Test the property 'txHash' */ + @Test + void txHashTest() { + // TODO: test txHash + } + + /** Test the property 'vout' */ + @Test + void voutTest() { + // TODO: test vout + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/UtxoInput2Test.java b/src/test/java/com/fireblocks/sdk/model/UtxoInput2Test.java new file mode 100644 index 00000000..bce9020b --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/UtxoInput2Test.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 UtxoInput2 */ +class UtxoInput2Test { + private final UtxoInput2 model = new UtxoInput2(); + + /** Model tests for UtxoInput2 */ + @Test + void testUtxoInput2() { + // TODO: test UtxoInput2 + } + + /** Test the property 'txHash' */ + @Test + void txHashTest() { + // TODO: test txHash + } + + /** Test the property 'index' */ + @Test + void indexTest() { + // TODO: test index + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/UtxoInputSelectionTest.java b/src/test/java/com/fireblocks/sdk/model/UtxoInputSelectionTest.java new file mode 100644 index 00000000..10314a7a --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/UtxoInputSelectionTest.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 UtxoInputSelection */ +class UtxoInputSelectionTest { + private final UtxoInputSelection model = new UtxoInputSelection(); + + /** Model tests for UtxoInputSelection */ + @Test + void testUtxoInputSelection() { + // TODO: test UtxoInputSelection + } + + /** Test the property 'inputsToSpend' */ + @Test + void inputsToSpendTest() { + // TODO: test inputsToSpend + } + + /** Test the property 'inputsToExclude' */ + @Test + void inputsToExcludeTest() { + // TODO: test inputsToExclude + } + + /** Test the property 'fillFeeForSelectedInputs' */ + @Test + void fillFeeForSelectedInputsTest() { + // TODO: test fillFeeForSelectedInputs + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/UtxoInputTest.java b/src/test/java/com/fireblocks/sdk/model/UtxoInputTest.java new file mode 100644 index 00000000..ec63a11c --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/UtxoInputTest.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 UtxoInput */ +class UtxoInputTest { + private final UtxoInput model = new UtxoInput(); + + /** Model tests for UtxoInput */ + @Test + void testUtxoInput() { + // TODO: test UtxoInput + } + + /** Test the property 'txHash' */ + @Test + void txHashTest() { + // TODO: test txHash + } + + /** Test the property 'vout' */ + @Test + void voutTest() { + // TODO: test vout + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/UtxoOutputTest.java b/src/test/java/com/fireblocks/sdk/model/UtxoOutputTest.java new file mode 100644 index 00000000..bebaea45 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/UtxoOutputTest.java @@ -0,0 +1,117 @@ +/* + * 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 UtxoOutput */ +class UtxoOutputTest { + private final UtxoOutput model = new UtxoOutput(); + + /** Model tests for UtxoOutput */ + @Test + void testUtxoOutput() { + // TODO: test UtxoOutput + } + + /** Test the property 'input' */ + @Test + void inputTest() { + // TODO: test input + } + + /** Test the property 'utxoId' */ + @Test + void utxoIdTest() { + // TODO: test utxoId + } + + /** Test the property 'address' */ + @Test + void addressTest() { + // TODO: test address + } + + /** Test the property 'amount' */ + @Test + void amountTest() { + // TODO: test amount + } + + /** Test the property 'confirmations' */ + @Test + void confirmationsTest() { + // TODO: test confirmations + } + + /** Test the property 'status' */ + @Test + void statusTest() { + // TODO: test status + } + + /** Test the property 'isChange' */ + @Test + void isChangeTest() { + // TODO: test isChange + } + + /** Test the property 'isCoinbase' */ + @Test + void isCoinbaseTest() { + // TODO: test isCoinbase + } + + /** Test the property 'fbTxId' */ + @Test + void fbTxIdTest() { + // TODO: test fbTxId + } + + /** Test the property 'createdByHash' */ + @Test + void createdByHashTest() { + // TODO: test createdByHash + } + + /** Test the property 'spentByFbTxId' */ + @Test + void spentByFbTxIdTest() { + // TODO: test spentByFbTxId + } + + /** Test the property 'createdByHeight' */ + @Test + void createdByHeightTest() { + // TODO: test createdByHeight + } + + /** Test the property 'createdAt' */ + @Test + void createdAtTest() { + // TODO: test createdAt + } + + /** Test the property 'updatedAt' */ + @Test + void updatedAtTest() { + // TODO: test updatedAt + } + + /** Test the property 'labels' */ + @Test + void labelsTest() { + // TODO: test labels + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/UtxoSelectionFiltersTest.java b/src/test/java/com/fireblocks/sdk/model/UtxoSelectionFiltersTest.java new file mode 100644 index 00000000..3213df35 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/UtxoSelectionFiltersTest.java @@ -0,0 +1,75 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import org.junit.jupiter.api.Test; + +/** Model tests for UtxoSelectionFilters */ +class UtxoSelectionFiltersTest { + private final UtxoSelectionFilters model = new UtxoSelectionFilters(); + + /** Model tests for UtxoSelectionFilters */ + @Test + void testUtxoSelectionFilters() { + // TODO: test UtxoSelectionFilters + } + + /** Test the property 'includeAllLabels' */ + @Test + void includeAllLabelsTest() { + // TODO: test includeAllLabels + } + + /** Test the property 'includeAnyLabels' */ + @Test + void includeAnyLabelsTest() { + // TODO: test includeAnyLabels + } + + /** Test the property 'excludeAnyLabels' */ + @Test + void excludeAnyLabelsTest() { + // TODO: test excludeAnyLabels + } + + /** Test the property 'address' */ + @Test + void addressTest() { + // TODO: test address + } + + /** Test the property 'minAmount' */ + @Test + void minAmountTest() { + // TODO: test minAmount + } + + /** Test the property 'maxAmount' */ + @Test + void maxAmountTest() { + // TODO: test maxAmount + } + + /** Test the property 'useChange' */ + @Test + void useChangeTest() { + // TODO: test useChange + } + + /** Test the property 'useCoinbase' */ + @Test + void useCoinbaseTest() { + // TODO: test useCoinbase + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/UtxoSelectionParamsTest.java b/src/test/java/com/fireblocks/sdk/model/UtxoSelectionParamsTest.java new file mode 100644 index 00000000..9750c4b3 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/UtxoSelectionParamsTest.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 UtxoSelectionParams */ +class UtxoSelectionParamsTest { + private final UtxoSelectionParams model = new UtxoSelectionParams(); + + /** Model tests for UtxoSelectionParams */ + @Test + void testUtxoSelectionParams() { + // TODO: test UtxoSelectionParams + } + + /** Test the property 'filters' */ + @Test + void filtersTest() { + // TODO: test filters + } + + /** Test the property 'inputSelection' */ + @Test + void inputSelectionTest() { + // TODO: test inputSelection + } +}