diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES index 6b99e9b0..20d520d2 100644 --- a/.openapi-generator/FILES +++ b/.openapi-generator/FILES @@ -19,7 +19,8 @@ docs/Account.md docs/AccountAccess.md docs/AccountBase.md docs/AccountBasedAccessProvider.md -docs/AccountBasedAccessProviderDetails.md +docs/AccountBasedAccessProviderInfo.md +docs/AccountBasedProviderDetails.md docs/AccountConfig.md docs/AccountHolderDetails.md docs/AccountIdentifier.md @@ -45,8 +46,20 @@ docs/AdditionalInfoRequestAdditionalInfo.md docs/AddressBalanceItemDto.md docs/AddressBalancePagedResponse.md docs/AddressNotAvailableError.md +docs/AddressRegistryAddVaultOptOutsRequest.md +docs/AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner.md +docs/AddressRegistryAddVaultOptOutsResponse.md docs/AddressRegistryError.md +docs/AddressRegistryGetVaultOptOutResponse.md docs/AddressRegistryLegalEntity.md +docs/AddressRegistryLegalEntityLegacy.md +docs/AddressRegistryListVaultOptOutsResponse.md +docs/AddressRegistryRemoveAllVaultOptOutsResponse.md +docs/AddressRegistryRemoveVaultOptOutResponse.md +docs/AddressRegistryTenantRegistryResponse.md +docs/AddressRegistryTravelRuleProvider.md +docs/AddressRegistryVaultListOrder.md +docs/AddressRegistryVaultOptOutItem.md docs/AlertExposureTypeEnum.md docs/AlertLevelEnum.md docs/AmlAlert.md @@ -98,10 +111,11 @@ docs/AssetPriceNotFoundErrorResponse.md docs/AssetPriceResponse.md docs/AssetResponse.md docs/AssetScope.md -docs/AssetTypeEnum.md docs/AssetTypeResponse.md docs/AssetTypesConfigInner.md docs/AssetWallet.md +docs/AssignVaultsToLegalEntityRequest.md +docs/AssignVaultsToLegalEntityResponse.md docs/AuditLogData.md docs/AuditLogsApi.md docs/AuditorData.md @@ -129,7 +143,6 @@ docs/BusinessIdentification.md docs/CallbackHandler.md docs/CallbackHandlerRequest.md docs/CancelTransactionResponse.md -docs/Capability.md docs/ChainDescriptor.md docs/ChainInfoResponse.md docs/ChannelDvnConfigWithConfirmations.md @@ -288,7 +301,8 @@ docs/DestinationTransferPeerPath.md docs/DestinationTransferPeerPathResponse.md docs/DirectAccess.md docs/DirectAccessProvider.md -docs/DirectAccessProviderDetails.md +docs/DirectAccessProviderInfo.md +docs/DirectProviderDetails.md docs/DisbursementAmountInstruction.md docs/DisbursementConfigOperation.md docs/DisbursementInstruction.md @@ -356,6 +370,7 @@ docs/ExecutionDisbursementOperation.md docs/ExecutionOperationStatus.md docs/ExecutionRequestBaseDetails.md docs/ExecutionRequestDetails.md +docs/ExecutionRequestDetailsType.md docs/ExecutionResponseBaseDetails.md docs/ExecutionResponseDetails.md docs/ExecutionScreeningOperation.md @@ -425,6 +440,7 @@ docs/GetTransactionOperation.md docs/GetValidationKeyResponseDto.md docs/GetWhitelistIpAddressesResponse.md docs/GetWorkspaceStatusResponse.md +docs/GleifData.md docs/HttpContractDoesNotExistError.md docs/IbanAddress.md docs/IbanDestination.md @@ -481,14 +497,23 @@ docs/LegacyPolicyValidation.md docs/LegacyPublishDraftRequest.md docs/LegacyPublishResult.md docs/LegacySrcOrDestAttributesInner.md +docs/LegalEntityRegistration.md +docs/LeiStatus.md docs/LinkedTokensCount.md docs/ListAssetsResponse.md docs/ListBlockchainsResponse.md +docs/ListLegalEntitiesResponse.md docs/ListOwnedCollectionsResponse.md docs/ListOwnedTokensResponse.md +docs/ListVaultsForRegistrationResponse.md docs/LocalBankTransferAfricaAddress.md docs/LocalBankTransferAfricaDestination.md docs/Manifest.md +docs/ManifestBase.md +docs/ManifestOrder.md +docs/ManifestOrderInfo.md +docs/ManifestQuote.md +docs/ManifestQuoteInfo.md docs/MarketExecutionRequestDetails.md docs/MarketExecutionResponseDetails.md docs/MarketRequoteRequestDetails.md @@ -603,6 +628,7 @@ docs/PolicyType.md docs/PolicyValidation.md docs/PolicyVerdictActionEnum.md docs/PolicyVerdictActionEnum2.md +docs/Position.md docs/PostalAddress.md docs/PreScreening.md docs/PrefundedSettlement.md @@ -630,6 +656,7 @@ docs/ReadCallFunctionDto.md docs/ReadCallFunctionDtoAbiFunction.md docs/RecipientHandle.md docs/RedeemFundsToLinkedDDAResponse.md +docs/RegisterLegalEntityRequest.md docs/RegisterNewAssetRequest.md docs/ReissueMultichainTokenRequest.md docs/RelatedRequest.md @@ -676,7 +703,6 @@ docs/ScreeningOperationFailure.md docs/ScreeningOperationType.md docs/ScreeningPolicyResponse.md docs/ScreeningProviderRulesConfigurationResponse.md -docs/ScreeningRiskLevelEnum.md docs/ScreeningTRLinkAmount.md docs/ScreeningTRLinkMissingTrmDecision.md docs/ScreeningTRLinkMissingTrmRule.md @@ -720,6 +746,7 @@ docs/Settlement.md docs/SettlementRequestBody.md docs/SettlementResponse.md docs/SettlementSourceAccount.md +docs/SettlementTypeEnum.md docs/Side.md docs/SignedMessage.md docs/SignedMessageSignature.md @@ -772,6 +799,7 @@ docs/StEthBlockchainData.md docs/StakeRequest.md docs/StakeResponse.md docs/StakingApi.md +docs/StakingPositionsPaginatedResponse.md docs/StakingProvider.md docs/Status.md docs/StellarRippleCreateParamsDto.md @@ -892,6 +920,7 @@ docs/TradingAccountType.md docs/TradingBetaApi.md docs/TradingErrorSchema.md docs/TradingProvider.md +docs/TradingProviderDetails.md docs/Transaction.md docs/TransactionDirection.md docs/TransactionFee.md @@ -951,6 +980,7 @@ docs/TravelRulePerson.md docs/TravelRulePiiIVMS.md docs/TravelRulePolicyRuleResponse.md docs/TravelRulePrescreeningRule.md +docs/TravelRuleProvider.md docs/TravelRuleResult.md docs/TravelRuleStatusEnum.md docs/TravelRuleTransactionBlockchainInfo.md @@ -987,6 +1017,7 @@ docs/UpdateAssetUserMetadataRequest.md docs/UpdateCallbackHandlerRequest.md docs/UpdateCallbackHandlerResponse.md docs/UpdateDraftRequest.md +docs/UpdateLegalEntityRequest.md docs/UpdateTagRequest.md docs/UpdateTokenOwnershipStatusDto.md docs/UpdateVaultAccountAssetAddressRequest.md @@ -1129,7 +1160,8 @@ src/main/java/com/fireblocks/sdk/model/Account.java 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/AccountBasedAccessProviderDetails.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 @@ -1155,8 +1187,20 @@ src/main/java/com/fireblocks/sdk/model/AdditionalInfoRequestAdditionalInfo.java src/main/java/com/fireblocks/sdk/model/AddressBalanceItemDto.java src/main/java/com/fireblocks/sdk/model/AddressBalancePagedResponse.java src/main/java/com/fireblocks/sdk/model/AddressNotAvailableError.java +src/main/java/com/fireblocks/sdk/model/AddressRegistryAddVaultOptOutsRequest.java +src/main/java/com/fireblocks/sdk/model/AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner.java +src/main/java/com/fireblocks/sdk/model/AddressRegistryAddVaultOptOutsResponse.java 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 +src/main/java/com/fireblocks/sdk/model/AddressRegistryTenantRegistryResponse.java +src/main/java/com/fireblocks/sdk/model/AddressRegistryTravelRuleProvider.java +src/main/java/com/fireblocks/sdk/model/AddressRegistryVaultListOrder.java +src/main/java/com/fireblocks/sdk/model/AddressRegistryVaultOptOutItem.java src/main/java/com/fireblocks/sdk/model/AlertExposureTypeEnum.java src/main/java/com/fireblocks/sdk/model/AlertLevelEnum.java src/main/java/com/fireblocks/sdk/model/AmlAlert.java @@ -1207,10 +1251,11 @@ src/main/java/com/fireblocks/sdk/model/AssetPriceNotFoundErrorResponse.java src/main/java/com/fireblocks/sdk/model/AssetPriceResponse.java src/main/java/com/fireblocks/sdk/model/AssetResponse.java src/main/java/com/fireblocks/sdk/model/AssetScope.java -src/main/java/com/fireblocks/sdk/model/AssetTypeEnum.java src/main/java/com/fireblocks/sdk/model/AssetTypeResponse.java 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/AuditLogData.java src/main/java/com/fireblocks/sdk/model/AuditorData.java src/main/java/com/fireblocks/sdk/model/AuthorizationGroups.java @@ -1236,7 +1281,6 @@ src/main/java/com/fireblocks/sdk/model/BusinessIdentification.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 -src/main/java/com/fireblocks/sdk/model/Capability.java src/main/java/com/fireblocks/sdk/model/ChainDescriptor.java src/main/java/com/fireblocks/sdk/model/ChainInfoResponse.java src/main/java/com/fireblocks/sdk/model/ChannelDvnConfigWithConfirmations.java @@ -1386,7 +1430,8 @@ src/main/java/com/fireblocks/sdk/model/DestinationTransferPeerPath.java 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/DirectAccessProviderDetails.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 @@ -1452,6 +1497,7 @@ src/main/java/com/fireblocks/sdk/model/ExecutionDisbursementOperation.java src/main/java/com/fireblocks/sdk/model/ExecutionOperationStatus.java src/main/java/com/fireblocks/sdk/model/ExecutionRequestBaseDetails.java src/main/java/com/fireblocks/sdk/model/ExecutionRequestDetails.java +src/main/java/com/fireblocks/sdk/model/ExecutionRequestDetailsType.java src/main/java/com/fireblocks/sdk/model/ExecutionResponseBaseDetails.java src/main/java/com/fireblocks/sdk/model/ExecutionResponseDetails.java src/main/java/com/fireblocks/sdk/model/ExecutionScreeningOperation.java @@ -1518,6 +1564,7 @@ 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/HttpContractDoesNotExistError.java src/main/java/com/fireblocks/sdk/model/IbanAddress.java src/main/java/com/fireblocks/sdk/model/IbanDestination.java @@ -1571,14 +1618,23 @@ src/main/java/com/fireblocks/sdk/model/LegacyPolicyValidation.java src/main/java/com/fireblocks/sdk/model/LegacyPublishDraftRequest.java src/main/java/com/fireblocks/sdk/model/LegacyPublishResult.java src/main/java/com/fireblocks/sdk/model/LegacySrcOrDestAttributesInner.java +src/main/java/com/fireblocks/sdk/model/LegalEntityRegistration.java +src/main/java/com/fireblocks/sdk/model/LeiStatus.java src/main/java/com/fireblocks/sdk/model/LinkedTokensCount.java src/main/java/com/fireblocks/sdk/model/ListAssetsResponse.java 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/ListVaultsForRegistrationResponse.java src/main/java/com/fireblocks/sdk/model/LocalBankTransferAfricaAddress.java src/main/java/com/fireblocks/sdk/model/LocalBankTransferAfricaDestination.java src/main/java/com/fireblocks/sdk/model/Manifest.java +src/main/java/com/fireblocks/sdk/model/ManifestBase.java +src/main/java/com/fireblocks/sdk/model/ManifestOrder.java +src/main/java/com/fireblocks/sdk/model/ManifestOrderInfo.java +src/main/java/com/fireblocks/sdk/model/ManifestQuote.java +src/main/java/com/fireblocks/sdk/model/ManifestQuoteInfo.java src/main/java/com/fireblocks/sdk/model/MarketExecutionRequestDetails.java src/main/java/com/fireblocks/sdk/model/MarketExecutionResponseDetails.java src/main/java/com/fireblocks/sdk/model/MarketRequoteRequestDetails.java @@ -1685,6 +1741,7 @@ src/main/java/com/fireblocks/sdk/model/PolicyType.java 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/PostalAddress.java src/main/java/com/fireblocks/sdk/model/PreScreening.java src/main/java/com/fireblocks/sdk/model/PrefundedSettlement.java @@ -1712,6 +1769,7 @@ src/main/java/com/fireblocks/sdk/model/ReadCallFunctionDto.java src/main/java/com/fireblocks/sdk/model/ReadCallFunctionDtoAbiFunction.java src/main/java/com/fireblocks/sdk/model/RecipientHandle.java src/main/java/com/fireblocks/sdk/model/RedeemFundsToLinkedDDAResponse.java +src/main/java/com/fireblocks/sdk/model/RegisterLegalEntityRequest.java src/main/java/com/fireblocks/sdk/model/RegisterNewAssetRequest.java src/main/java/com/fireblocks/sdk/model/ReissueMultichainTokenRequest.java src/main/java/com/fireblocks/sdk/model/RelatedRequest.java @@ -1757,7 +1815,6 @@ 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/ScreeningPolicyResponse.java src/main/java/com/fireblocks/sdk/model/ScreeningProviderRulesConfigurationResponse.java -src/main/java/com/fireblocks/sdk/model/ScreeningRiskLevelEnum.java src/main/java/com/fireblocks/sdk/model/ScreeningTRLinkAmount.java src/main/java/com/fireblocks/sdk/model/ScreeningTRLinkMissingTrmDecision.java src/main/java/com/fireblocks/sdk/model/ScreeningTRLinkMissingTrmRule.java @@ -1801,6 +1858,7 @@ src/main/java/com/fireblocks/sdk/model/Settlement.java src/main/java/com/fireblocks/sdk/model/SettlementRequestBody.java src/main/java/com/fireblocks/sdk/model/SettlementResponse.java src/main/java/com/fireblocks/sdk/model/SettlementSourceAccount.java +src/main/java/com/fireblocks/sdk/model/SettlementTypeEnum.java src/main/java/com/fireblocks/sdk/model/Side.java src/main/java/com/fireblocks/sdk/model/SignedMessage.java src/main/java/com/fireblocks/sdk/model/SignedMessageSignature.java @@ -1851,6 +1909,7 @@ src/main/java/com/fireblocks/sdk/model/SplitResponse.java src/main/java/com/fireblocks/sdk/model/StEthBlockchainData.java src/main/java/com/fireblocks/sdk/model/StakeRequest.java src/main/java/com/fireblocks/sdk/model/StakeResponse.java +src/main/java/com/fireblocks/sdk/model/StakingPositionsPaginatedResponse.java src/main/java/com/fireblocks/sdk/model/StakingProvider.java src/main/java/com/fireblocks/sdk/model/Status.java src/main/java/com/fireblocks/sdk/model/StellarRippleCreateParamsDto.java @@ -1967,6 +2026,7 @@ 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 @@ -2024,6 +2084,7 @@ src/main/java/com/fireblocks/sdk/model/TravelRulePerson.java src/main/java/com/fireblocks/sdk/model/TravelRulePiiIVMS.java src/main/java/com/fireblocks/sdk/model/TravelRulePolicyRuleResponse.java src/main/java/com/fireblocks/sdk/model/TravelRulePrescreeningRule.java +src/main/java/com/fireblocks/sdk/model/TravelRuleProvider.java src/main/java/com/fireblocks/sdk/model/TravelRuleResult.java src/main/java/com/fireblocks/sdk/model/TravelRuleStatusEnum.java src/main/java/com/fireblocks/sdk/model/TravelRuleTransactionBlockchainInfo.java @@ -2060,6 +2121,7 @@ src/main/java/com/fireblocks/sdk/model/UpdateAssetUserMetadataRequest.java src/main/java/com/fireblocks/sdk/model/UpdateCallbackHandlerRequest.java src/main/java/com/fireblocks/sdk/model/UpdateCallbackHandlerResponse.java src/main/java/com/fireblocks/sdk/model/UpdateDraftRequest.java +src/main/java/com/fireblocks/sdk/model/UpdateLegalEntityRequest.java src/main/java/com/fireblocks/sdk/model/UpdateTagRequest.java src/main/java/com/fireblocks/sdk/model/UpdateTokenOwnershipStatusDto.java src/main/java/com/fireblocks/sdk/model/UpdateVaultAccountAssetAddressRequest.java @@ -2169,8 +2231,9 @@ src/test/java/com/fireblocks/sdk/model/AccessRegistrySummaryResponseTest.java src/test/java/com/fireblocks/sdk/model/AccessTypeTest.java 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/AccountBasedAccessProviderDetailsTest.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 @@ -2197,8 +2260,20 @@ src/test/java/com/fireblocks/sdk/model/AdditionalInfoTest.java src/test/java/com/fireblocks/sdk/model/AddressBalanceItemDtoTest.java src/test/java/com/fireblocks/sdk/model/AddressBalancePagedResponseTest.java src/test/java/com/fireblocks/sdk/model/AddressNotAvailableErrorTest.java +src/test/java/com/fireblocks/sdk/model/AddressRegistryAddVaultOptOutsRequestTest.java +src/test/java/com/fireblocks/sdk/model/AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInnerTest.java +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 +src/test/java/com/fireblocks/sdk/model/AddressRegistryRemoveVaultOptOutResponseTest.java +src/test/java/com/fireblocks/sdk/model/AddressRegistryTenantRegistryResponseTest.java +src/test/java/com/fireblocks/sdk/model/AddressRegistryTravelRuleProviderTest.java +src/test/java/com/fireblocks/sdk/model/AddressRegistryVaultListOrderTest.java +src/test/java/com/fireblocks/sdk/model/AddressRegistryVaultOptOutItemTest.java src/test/java/com/fireblocks/sdk/model/AlertExposureTypeEnumTest.java src/test/java/com/fireblocks/sdk/model/AlertLevelEnumTest.java src/test/java/com/fireblocks/sdk/model/AmlAlertTest.java @@ -2249,10 +2324,11 @@ src/test/java/com/fireblocks/sdk/model/AssetPriceResponseTest.java src/test/java/com/fireblocks/sdk/model/AssetResponseTest.java src/test/java/com/fireblocks/sdk/model/AssetScopeTest.java src/test/java/com/fireblocks/sdk/model/AssetTest.java -src/test/java/com/fireblocks/sdk/model/AssetTypeEnumTest.java src/test/java/com/fireblocks/sdk/model/AssetTypeResponseTest.java 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/AuditLogDataTest.java src/test/java/com/fireblocks/sdk/model/AuditorDataTest.java src/test/java/com/fireblocks/sdk/model/AuthorizationGroupsTest.java @@ -2278,7 +2354,6 @@ src/test/java/com/fireblocks/sdk/model/BusinessIdentificationTest.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 -src/test/java/com/fireblocks/sdk/model/CapabilityTest.java src/test/java/com/fireblocks/sdk/model/ChainDescriptorTest.java src/test/java/com/fireblocks/sdk/model/ChainInfoResponseTest.java src/test/java/com/fireblocks/sdk/model/ChannelDvnConfigWithConfirmationsTest.java @@ -2426,9 +2501,10 @@ src/test/java/com/fireblocks/sdk/model/DestinationConfigTest.java src/test/java/com/fireblocks/sdk/model/DestinationTest.java src/test/java/com/fireblocks/sdk/model/DestinationTransferPeerPathResponseTest.java src/test/java/com/fireblocks/sdk/model/DestinationTransferPeerPathTest.java -src/test/java/com/fireblocks/sdk/model/DirectAccessProviderDetailsTest.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 @@ -2494,6 +2570,7 @@ src/test/java/com/fireblocks/sdk/model/ExecutionDisbursementOperationTest.java src/test/java/com/fireblocks/sdk/model/ExecutionOperationStatusTest.java src/test/java/com/fireblocks/sdk/model/ExecutionRequestBaseDetailsTest.java src/test/java/com/fireblocks/sdk/model/ExecutionRequestDetailsTest.java +src/test/java/com/fireblocks/sdk/model/ExecutionRequestDetailsTypeTest.java src/test/java/com/fireblocks/sdk/model/ExecutionResponseBaseDetailsTest.java src/test/java/com/fireblocks/sdk/model/ExecutionResponseDetailsTest.java src/test/java/com/fireblocks/sdk/model/ExecutionScreeningOperationTest.java @@ -2560,6 +2637,7 @@ 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/HttpContractDoesNotExistErrorTest.java src/test/java/com/fireblocks/sdk/model/IbanAddressTest.java src/test/java/com/fireblocks/sdk/model/IbanDestinationTest.java @@ -2613,13 +2691,22 @@ src/test/java/com/fireblocks/sdk/model/LegacyPolicyValidationTest.java src/test/java/com/fireblocks/sdk/model/LegacyPublishDraftRequestTest.java src/test/java/com/fireblocks/sdk/model/LegacyPublishResultTest.java src/test/java/com/fireblocks/sdk/model/LegacySrcOrDestAttributesInnerTest.java +src/test/java/com/fireblocks/sdk/model/LegalEntityRegistrationTest.java +src/test/java/com/fireblocks/sdk/model/LeiStatusTest.java src/test/java/com/fireblocks/sdk/model/LinkedTokensCountTest.java src/test/java/com/fireblocks/sdk/model/ListAssetsResponseTest.java 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/ListVaultsForRegistrationResponseTest.java src/test/java/com/fireblocks/sdk/model/LocalBankTransferAfricaAddressTest.java src/test/java/com/fireblocks/sdk/model/LocalBankTransferAfricaDestinationTest.java +src/test/java/com/fireblocks/sdk/model/ManifestBaseTest.java +src/test/java/com/fireblocks/sdk/model/ManifestOrderInfoTest.java +src/test/java/com/fireblocks/sdk/model/ManifestOrderTest.java +src/test/java/com/fireblocks/sdk/model/ManifestQuoteInfoTest.java +src/test/java/com/fireblocks/sdk/model/ManifestQuoteTest.java src/test/java/com/fireblocks/sdk/model/ManifestTest.java src/test/java/com/fireblocks/sdk/model/MarketExecutionRequestDetailsTest.java src/test/java/com/fireblocks/sdk/model/MarketExecutionResponseDetailsTest.java @@ -2727,6 +2814,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/PositionTest.java src/test/java/com/fireblocks/sdk/model/PostalAddressTest.java src/test/java/com/fireblocks/sdk/model/PreScreeningTest.java src/test/java/com/fireblocks/sdk/model/PrefundedSettlementTest.java @@ -2754,6 +2842,7 @@ src/test/java/com/fireblocks/sdk/model/ReadCallFunctionDtoAbiFunctionTest.java src/test/java/com/fireblocks/sdk/model/ReadCallFunctionDtoTest.java src/test/java/com/fireblocks/sdk/model/RecipientHandleTest.java src/test/java/com/fireblocks/sdk/model/RedeemFundsToLinkedDDAResponseTest.java +src/test/java/com/fireblocks/sdk/model/RegisterLegalEntityRequestTest.java src/test/java/com/fireblocks/sdk/model/RegisterNewAssetRequestTest.java src/test/java/com/fireblocks/sdk/model/ReissueMultichainTokenRequestTest.java src/test/java/com/fireblocks/sdk/model/RelatedRequestTest.java @@ -2799,7 +2888,6 @@ 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/ScreeningPolicyResponseTest.java src/test/java/com/fireblocks/sdk/model/ScreeningProviderRulesConfigurationResponseTest.java -src/test/java/com/fireblocks/sdk/model/ScreeningRiskLevelEnumTest.java src/test/java/com/fireblocks/sdk/model/ScreeningTRLinkAmountTest.java src/test/java/com/fireblocks/sdk/model/ScreeningTRLinkMissingTrmDecisionTest.java src/test/java/com/fireblocks/sdk/model/ScreeningTRLinkMissingTrmRuleTest.java @@ -2843,6 +2931,7 @@ src/test/java/com/fireblocks/sdk/model/SettlementRequestBodyTest.java src/test/java/com/fireblocks/sdk/model/SettlementResponseTest.java src/test/java/com/fireblocks/sdk/model/SettlementSourceAccountTest.java src/test/java/com/fireblocks/sdk/model/SettlementTest.java +src/test/java/com/fireblocks/sdk/model/SettlementTypeEnumTest.java src/test/java/com/fireblocks/sdk/model/SideTest.java src/test/java/com/fireblocks/sdk/model/SignedMessageSignatureTest.java src/test/java/com/fireblocks/sdk/model/SignedMessageTest.java @@ -2893,6 +2982,7 @@ src/test/java/com/fireblocks/sdk/model/SplitResponseTest.java src/test/java/com/fireblocks/sdk/model/StEthBlockchainDataTest.java src/test/java/com/fireblocks/sdk/model/StakeRequestTest.java src/test/java/com/fireblocks/sdk/model/StakeResponseTest.java +src/test/java/com/fireblocks/sdk/model/StakingPositionsPaginatedResponseTest.java src/test/java/com/fireblocks/sdk/model/StakingProviderTest.java src/test/java/com/fireblocks/sdk/model/StatusTest.java src/test/java/com/fireblocks/sdk/model/StellarRippleCreateParamsDtoTest.java @@ -3008,6 +3098,7 @@ 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 @@ -3066,6 +3157,7 @@ src/test/java/com/fireblocks/sdk/model/TravelRulePersonTest.java src/test/java/com/fireblocks/sdk/model/TravelRulePiiIVMSTest.java src/test/java/com/fireblocks/sdk/model/TravelRulePolicyRuleResponseTest.java src/test/java/com/fireblocks/sdk/model/TravelRulePrescreeningRuleTest.java +src/test/java/com/fireblocks/sdk/model/TravelRuleProviderTest.java src/test/java/com/fireblocks/sdk/model/TravelRuleResultTest.java src/test/java/com/fireblocks/sdk/model/TravelRuleStatusEnumTest.java src/test/java/com/fireblocks/sdk/model/TravelRuleTransactionBlockchainInfoTest.java @@ -3102,6 +3194,7 @@ src/test/java/com/fireblocks/sdk/model/UpdateAssetUserMetadataRequestTest.java src/test/java/com/fireblocks/sdk/model/UpdateCallbackHandlerRequestTest.java src/test/java/com/fireblocks/sdk/model/UpdateCallbackHandlerResponseTest.java src/test/java/com/fireblocks/sdk/model/UpdateDraftRequestTest.java +src/test/java/com/fireblocks/sdk/model/UpdateLegalEntityRequestTest.java src/test/java/com/fireblocks/sdk/model/UpdateTagRequestTest.java src/test/java/com/fireblocks/sdk/model/UpdateTokenOwnershipStatusDtoTest.java src/test/java/com/fireblocks/sdk/model/UpdateVaultAccountAssetAddressRequestTest.java diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index a91e22cb..00000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,227 +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). - -## [v15.0.0](https://github.com/fireblocks/java-sdk/compare/v14.0.0...v15.0.0) - 2026-03-15 - -### Commits - -- Update publish-maven.yml [`68ddbeb`](https://github.com/fireblocks/java-sdk/commit/68ddbeba4e1034cb7f220dd96665da3d44765ec6) - -## [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 7c23f007..9a21d969 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ Add this dependency to your project's POM: com.fireblocks.sdk fireblocks-sdk - 15.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:15.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-15.0.0.jar` +- `target/fireblocks-sdk-0.0.0.jar` - `target/lib/*.jar` @@ -152,15 +152,30 @@ 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* | [**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* | [**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* | [**getLegalEntityByAddress**](docs/ComplianceApi.md#getLegalEntityByAddress) | **GET** /address_registry/legal_entity | Look up legal entity by address and asset +*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. *ComplianceApi* | [**getScreeningPolicy**](docs/ComplianceApi.md#getScreeningPolicy) | **GET** /screening/travel_rule/screening_policy | Travel Rule - View Screening Policy +*ComplianceApi* | [**listAddressRegistryVaultOptOuts**](docs/ComplianceApi.md#listAddressRegistryVaultOptOuts) | **GET** /address_registry/vaults | List vault-level address registry opt-outs (paginated) +*ComplianceApi* | [**listLegalEntities**](docs/ComplianceApi.md#listLegalEntities) | **GET** /legal_entities | List legal entities (Paginated) +*ComplianceApi* | [**listVaultsForLegalEntity**](docs/ComplianceApi.md#listVaultsForLegalEntity) | **GET** /legal_entities/{legalEntityId}/vaults | List vault accounts for a legal entity (Paginated) +*ComplianceApi* | [**optInAddressRegistryTenant**](docs/ComplianceApi.md#optInAddressRegistryTenant) | **POST** /address_registry/tenant | Opt the workspace in to the address registry +*ComplianceApi* | [**optOutAddressRegistryTenant**](docs/ComplianceApi.md#optOutAddressRegistryTenant) | **DELETE** /address_registry/tenant | Opt the workspace out of the address registry +*ComplianceApi* | [**registerLegalEntity**](docs/ComplianceApi.md#registerLegalEntity) | **POST** /legal_entities | Register a new legal entity +*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* | [**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 *ComplianceApi* | [**updateTravelRuleConfig**](docs/ComplianceApi.md#updateTravelRuleConfig) | **PUT** /screening/travel_rule/policy_configuration | Update Travel Rule Configuration *ComplianceScreeningConfigurationApi* | [**getAmlScreeningConfiguration**](docs/ComplianceScreeningConfigurationApi.md#getAmlScreeningConfiguration) | **GET** /screening/aml/policy_configuration | Get AML Screening Policy Configuration @@ -354,6 +369,7 @@ Class | Method | HTTP request | Description *StakingApi* | [**getChainInfo**](docs/StakingApi.md#getChainInfo) | **GET** /staking/chains/{chainDescriptor}/chainInfo | Get chain-level staking parameters *StakingApi* | [**getChains**](docs/StakingApi.md#getChains) | **GET** /staking/chains | List supported staking chains *StakingApi* | [**getDelegationById**](docs/StakingApi.md#getDelegationById) | **GET** /staking/positions/{id} | Get position details +*StakingApi* | [**getPositions**](docs/StakingApi.md#getPositions) | **GET** /staking/positions_paginated | List staking positions (Paginated) *StakingApi* | [**getProviders**](docs/StakingApi.md#getProviders) | **GET** /staking/providers | List staking providers *StakingApi* | [**getSummary**](docs/StakingApi.md#getSummary) | **GET** /staking/positions/summary | Get positions summary *StakingApi* | [**getSummaryByVault**](docs/StakingApi.md#getSummaryByVault) | **GET** /staking/positions/summary/vaults | Get positions summary by vault @@ -422,6 +438,7 @@ Class | Method | HTTP request | Description *TradingBetaApi* | [**createQuote**](docs/TradingBetaApi.md#createQuote) | **POST** /trading/quotes | Create a quote *TradingBetaApi* | [**getOrder**](docs/TradingBetaApi.md#getOrder) | **GET** /trading/orders/{orderId} | Get order details *TradingBetaApi* | [**getOrders**](docs/TradingBetaApi.md#getOrders) | **GET** /trading/orders | Get orders +*TradingBetaApi* | [**getTradingProviderById**](docs/TradingBetaApi.md#getTradingProviderById) | **GET** /trading/providers/{providerId} | Get trading provider by ID *TradingBetaApi* | [**getTradingProviders**](docs/TradingBetaApi.md#getTradingProviders) | **GET** /trading/providers | Get providers *TransactionsApi* | [**cancelTransaction**](docs/TransactionsApi.md#cancelTransaction) | **POST** /transactions/{txId}/cancel | Cancel a transaction *TransactionsApi* | [**createTransaction**](docs/TransactionsApi.md#createTransaction) | **POST** /transactions | Create a new transaction @@ -517,7 +534,8 @@ Class | Method | HTTP request | Description - [AccountAccess](docs/AccountAccess.md) - [AccountBase](docs/AccountBase.md) - [AccountBasedAccessProvider](docs/AccountBasedAccessProvider.md) - - [AccountBasedAccessProviderDetails](docs/AccountBasedAccessProviderDetails.md) + - [AccountBasedAccessProviderInfo](docs/AccountBasedAccessProviderInfo.md) + - [AccountBasedProviderDetails](docs/AccountBasedProviderDetails.md) - [AccountConfig](docs/AccountConfig.md) - [AccountHolderDetails](docs/AccountHolderDetails.md) - [AccountIdentifier](docs/AccountIdentifier.md) @@ -543,8 +561,20 @@ Class | Method | HTTP request | Description - [AddressBalanceItemDto](docs/AddressBalanceItemDto.md) - [AddressBalancePagedResponse](docs/AddressBalancePagedResponse.md) - [AddressNotAvailableError](docs/AddressNotAvailableError.md) + - [AddressRegistryAddVaultOptOutsRequest](docs/AddressRegistryAddVaultOptOutsRequest.md) + - [AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner](docs/AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner.md) + - [AddressRegistryAddVaultOptOutsResponse](docs/AddressRegistryAddVaultOptOutsResponse.md) - [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) + - [AddressRegistryTenantRegistryResponse](docs/AddressRegistryTenantRegistryResponse.md) + - [AddressRegistryTravelRuleProvider](docs/AddressRegistryTravelRuleProvider.md) + - [AddressRegistryVaultListOrder](docs/AddressRegistryVaultListOrder.md) + - [AddressRegistryVaultOptOutItem](docs/AddressRegistryVaultOptOutItem.md) - [AlertExposureTypeEnum](docs/AlertExposureTypeEnum.md) - [AlertLevelEnum](docs/AlertLevelEnum.md) - [AmlAlert](docs/AmlAlert.md) @@ -595,10 +625,11 @@ Class | Method | HTTP request | Description - [AssetPriceResponse](docs/AssetPriceResponse.md) - [AssetResponse](docs/AssetResponse.md) - [AssetScope](docs/AssetScope.md) - - [AssetTypeEnum](docs/AssetTypeEnum.md) - [AssetTypeResponse](docs/AssetTypeResponse.md) - [AssetTypesConfigInner](docs/AssetTypesConfigInner.md) - [AssetWallet](docs/AssetWallet.md) + - [AssignVaultsToLegalEntityRequest](docs/AssignVaultsToLegalEntityRequest.md) + - [AssignVaultsToLegalEntityResponse](docs/AssignVaultsToLegalEntityResponse.md) - [AuditLogData](docs/AuditLogData.md) - [AuditorData](docs/AuditorData.md) - [AuthorizationGroups](docs/AuthorizationGroups.md) @@ -624,7 +655,6 @@ Class | Method | HTTP request | Description - [CallbackHandler](docs/CallbackHandler.md) - [CallbackHandlerRequest](docs/CallbackHandlerRequest.md) - [CancelTransactionResponse](docs/CancelTransactionResponse.md) - - [Capability](docs/Capability.md) - [ChainDescriptor](docs/ChainDescriptor.md) - [ChainInfoResponse](docs/ChainInfoResponse.md) - [ChannelDvnConfigWithConfirmations](docs/ChannelDvnConfigWithConfirmations.md) @@ -774,7 +804,8 @@ Class | Method | HTTP request | Description - [DestinationTransferPeerPathResponse](docs/DestinationTransferPeerPathResponse.md) - [DirectAccess](docs/DirectAccess.md) - [DirectAccessProvider](docs/DirectAccessProvider.md) - - [DirectAccessProviderDetails](docs/DirectAccessProviderDetails.md) + - [DirectAccessProviderInfo](docs/DirectAccessProviderInfo.md) + - [DirectProviderDetails](docs/DirectProviderDetails.md) - [DisbursementAmountInstruction](docs/DisbursementAmountInstruction.md) - [DisbursementConfigOperation](docs/DisbursementConfigOperation.md) - [DisbursementInstruction](docs/DisbursementInstruction.md) @@ -840,6 +871,7 @@ Class | Method | HTTP request | Description - [ExecutionOperationStatus](docs/ExecutionOperationStatus.md) - [ExecutionRequestBaseDetails](docs/ExecutionRequestBaseDetails.md) - [ExecutionRequestDetails](docs/ExecutionRequestDetails.md) + - [ExecutionRequestDetailsType](docs/ExecutionRequestDetailsType.md) - [ExecutionResponseBaseDetails](docs/ExecutionResponseBaseDetails.md) - [ExecutionResponseDetails](docs/ExecutionResponseDetails.md) - [ExecutionScreeningOperation](docs/ExecutionScreeningOperation.md) @@ -906,6 +938,7 @@ Class | Method | HTTP request | Description - [GetValidationKeyResponseDto](docs/GetValidationKeyResponseDto.md) - [GetWhitelistIpAddressesResponse](docs/GetWhitelistIpAddressesResponse.md) - [GetWorkspaceStatusResponse](docs/GetWorkspaceStatusResponse.md) + - [GleifData](docs/GleifData.md) - [HttpContractDoesNotExistError](docs/HttpContractDoesNotExistError.md) - [IbanAddress](docs/IbanAddress.md) - [IbanDestination](docs/IbanDestination.md) @@ -959,14 +992,23 @@ Class | Method | HTTP request | Description - [LegacyPublishDraftRequest](docs/LegacyPublishDraftRequest.md) - [LegacyPublishResult](docs/LegacyPublishResult.md) - [LegacySrcOrDestAttributesInner](docs/LegacySrcOrDestAttributesInner.md) + - [LegalEntityRegistration](docs/LegalEntityRegistration.md) + - [LeiStatus](docs/LeiStatus.md) - [LinkedTokensCount](docs/LinkedTokensCount.md) - [ListAssetsResponse](docs/ListAssetsResponse.md) - [ListBlockchainsResponse](docs/ListBlockchainsResponse.md) + - [ListLegalEntitiesResponse](docs/ListLegalEntitiesResponse.md) - [ListOwnedCollectionsResponse](docs/ListOwnedCollectionsResponse.md) - [ListOwnedTokensResponse](docs/ListOwnedTokensResponse.md) + - [ListVaultsForRegistrationResponse](docs/ListVaultsForRegistrationResponse.md) - [LocalBankTransferAfricaAddress](docs/LocalBankTransferAfricaAddress.md) - [LocalBankTransferAfricaDestination](docs/LocalBankTransferAfricaDestination.md) - [Manifest](docs/Manifest.md) + - [ManifestBase](docs/ManifestBase.md) + - [ManifestOrder](docs/ManifestOrder.md) + - [ManifestOrderInfo](docs/ManifestOrderInfo.md) + - [ManifestQuote](docs/ManifestQuote.md) + - [ManifestQuoteInfo](docs/ManifestQuoteInfo.md) - [MarketExecutionRequestDetails](docs/MarketExecutionRequestDetails.md) - [MarketExecutionResponseDetails](docs/MarketExecutionResponseDetails.md) - [MarketRequoteRequestDetails](docs/MarketRequoteRequestDetails.md) @@ -1073,6 +1115,7 @@ Class | Method | HTTP request | Description - [PolicyValidation](docs/PolicyValidation.md) - [PolicyVerdictActionEnum](docs/PolicyVerdictActionEnum.md) - [PolicyVerdictActionEnum2](docs/PolicyVerdictActionEnum2.md) + - [Position](docs/Position.md) - [PostalAddress](docs/PostalAddress.md) - [PreScreening](docs/PreScreening.md) - [PrefundedSettlement](docs/PrefundedSettlement.md) @@ -1100,6 +1143,7 @@ Class | Method | HTTP request | Description - [ReadCallFunctionDtoAbiFunction](docs/ReadCallFunctionDtoAbiFunction.md) - [RecipientHandle](docs/RecipientHandle.md) - [RedeemFundsToLinkedDDAResponse](docs/RedeemFundsToLinkedDDAResponse.md) + - [RegisterLegalEntityRequest](docs/RegisterLegalEntityRequest.md) - [RegisterNewAssetRequest](docs/RegisterNewAssetRequest.md) - [ReissueMultichainTokenRequest](docs/ReissueMultichainTokenRequest.md) - [RelatedRequest](docs/RelatedRequest.md) @@ -1145,7 +1189,6 @@ Class | Method | HTTP request | Description - [ScreeningOperationType](docs/ScreeningOperationType.md) - [ScreeningPolicyResponse](docs/ScreeningPolicyResponse.md) - [ScreeningProviderRulesConfigurationResponse](docs/ScreeningProviderRulesConfigurationResponse.md) - - [ScreeningRiskLevelEnum](docs/ScreeningRiskLevelEnum.md) - [ScreeningTRLinkAmount](docs/ScreeningTRLinkAmount.md) - [ScreeningTRLinkMissingTrmDecision](docs/ScreeningTRLinkMissingTrmDecision.md) - [ScreeningTRLinkMissingTrmRule](docs/ScreeningTRLinkMissingTrmRule.md) @@ -1189,6 +1232,7 @@ Class | Method | HTTP request | Description - [SettlementRequestBody](docs/SettlementRequestBody.md) - [SettlementResponse](docs/SettlementResponse.md) - [SettlementSourceAccount](docs/SettlementSourceAccount.md) + - [SettlementTypeEnum](docs/SettlementTypeEnum.md) - [Side](docs/Side.md) - [SignedMessage](docs/SignedMessage.md) - [SignedMessageSignature](docs/SignedMessageSignature.md) @@ -1239,6 +1283,7 @@ Class | Method | HTTP request | Description - [StEthBlockchainData](docs/StEthBlockchainData.md) - [StakeRequest](docs/StakeRequest.md) - [StakeResponse](docs/StakeResponse.md) + - [StakingPositionsPaginatedResponse](docs/StakingPositionsPaginatedResponse.md) - [StakingProvider](docs/StakingProvider.md) - [Status](docs/Status.md) - [StellarRippleCreateParamsDto](docs/StellarRippleCreateParamsDto.md) @@ -1355,6 +1400,7 @@ 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) @@ -1412,6 +1458,7 @@ Class | Method | HTTP request | Description - [TravelRulePiiIVMS](docs/TravelRulePiiIVMS.md) - [TravelRulePolicyRuleResponse](docs/TravelRulePolicyRuleResponse.md) - [TravelRulePrescreeningRule](docs/TravelRulePrescreeningRule.md) + - [TravelRuleProvider](docs/TravelRuleProvider.md) - [TravelRuleResult](docs/TravelRuleResult.md) - [TravelRuleStatusEnum](docs/TravelRuleStatusEnum.md) - [TravelRuleTransactionBlockchainInfo](docs/TravelRuleTransactionBlockchainInfo.md) @@ -1448,6 +1495,7 @@ Class | Method | HTTP request | Description - [UpdateCallbackHandlerRequest](docs/UpdateCallbackHandlerRequest.md) - [UpdateCallbackHandlerResponse](docs/UpdateCallbackHandlerResponse.md) - [UpdateDraftRequest](docs/UpdateDraftRequest.md) + - [UpdateLegalEntityRequest](docs/UpdateLegalEntityRequest.md) - [UpdateTagRequest](docs/UpdateTagRequest.md) - [UpdateTokenOwnershipStatusDto](docs/UpdateTokenOwnershipStatusDto.md) - [UpdateVaultAccountAssetAddressRequest](docs/UpdateVaultAccountAssetAddressRequest.md) diff --git a/api/openapi.yaml b/api/openapi.yaml index 1d6e3638..50e8db36 100644 --- a/api/openapi.yaml +++ b/api/openapi.yaml @@ -18932,8 +18932,9 @@ paths: /staking/chains/{chainDescriptor}/consolidate: post: description: |- - Consolidates the source staking position into the destination, merging the balance into the destination and closing the source position once complete. Both positions must be from the same validator provider and same vault account. On chain, this translates into a consolidation transaction, where the source validator is consolidated into the destination validator. Supported chains: Ethereum (ETH) only. + Consolidates the source staking position into the destination, merging the balance into the destination and closing the source position once complete. Both positions must be from the same funding vaults account (i.e. same withdrawals credentials). On chain, this translates into a consolidation transaction, where the source validator is consolidated into the destination validator. Supported chains: Ethereum (ETH) only.
Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, Editor. + **Note:** This endpoint is currently in beta and might be subject to changes. operationId: consolidate parameters: - description: "Protocol identifier for the staking operation (e.g., ETH)." @@ -19075,6 +19076,17 @@ paths: schema: $ref: "#/components/schemas/ChainDescriptor" style: form + - description: Filter positions by vault account ID. + explode: true + in: query + name: vaultAccountId + required: false + schema: + example: "1" + format: numeric + type: string + x-fb-entity: vault_account + style: form responses: "200": content: @@ -19146,19 +19158,181 @@ paths: \ = fireblocks.staking.getAllDelegations(stakingApiGetAllDelegationsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture>> response = fireblocks.staking().getAllDelegations(chainDescriptor); + code: "CompletableFuture>> response = fireblocks.staking().getAllDelegations(chainDescriptor,\ + \ vaultAccountId);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.staking.get_all_delegations(chain_descriptor); + code: "response = fireblocks.staking.get_all_delegations(chain_descriptor,\ + \ vault_account_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript source: "const response: Promise>\ \ = fireblocks.staking.getAllDelegations(stakingApiGetAllDelegationsRequest);" - lang: Java - source: CompletableFuture>> response = fireblocks.staking().getAllDelegations(chainDescriptor); + source: "CompletableFuture>> response = fireblocks.staking().getAllDelegations(chainDescriptor,\ + \ vaultAccountId);" - lang: Python - source: response = fireblocks.staking.get_all_delegations(chain_descriptor); + source: "response = fireblocks.staking.get_all_delegations(chain_descriptor,\ + \ vault_account_id);" + x-accepts: + - application/json + /staking/positions_paginated: + get: + description: |- + Returns staking positions with core details: amounts, rewards, status, chain, and vault. It supports cursor-based pagination for efficient data retrieval. This endpoint always returns a paginated response with {data, next} structure. +
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. + operationId: getPositions + parameters: + - description: "Protocol identifier to filter positions (e.g., ATOM_COS/AXL/CELESTIA}).\ + \ If omitted, positions across all supported chains are returned." + explode: true + in: query + name: chainDescriptor + required: false + schema: + $ref: "#/components/schemas/ChainDescriptor" + style: form + - description: "Filter positions by Fireblocks vault account ID. If omitted,\ + \ positions across all vault accounts are returned." + example: "10" + explode: true + in: query + name: vaultAccountId + required: false + schema: + format: numeric + type: string + x-fb-entity: vault_account + style: form + - description: "Number of results per page. When provided, the response returns\ + \ a paginated object with {data, next}. If omitted, all results are returned\ + \ as an array." + explode: true + in: query + name: pageSize + required: true + schema: + default: 10 + example: 10 + format: int32 + maximum: 100 + minimum: 1 + type: integer + style: form + - description: Cursor for the next page of results. Use the value from the 'next' + field in the previous response. + explode: true + in: query + name: pageCursor + required: false + schema: + example: eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9 + type: string + style: form + - description: ASC / DESC ordering (default 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/StakingPositionsPaginatedResponse" + description: Positions retrieved successfully with pagination. + 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: List staking positions (Paginated) + tags: + - Staking + x-rate-limit-category: query + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.staking.getPositions(stakingApiGetPositionsRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture>\ + \ response = fireblocks.staking().getPositions(pageSize, chainDescriptor,\ + \ vaultAccountId, pageCursor, order);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.staking.get_positions(page_size, chain_descriptor,\ + \ vault_account_id, page_cursor, order);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.staking.getPositions(stakingApiGetPositionsRequest);" + - lang: Java + source: "CompletableFuture>\ + \ response = fireblocks.staking().getPositions(pageSize, chainDescriptor,\ + \ vaultAccountId, pageCursor, order);" + - lang: Python + source: "response = fireblocks.staking.get_positions(page_size, chain_descriptor,\ + \ vault_account_id, page_cursor, order);" x-accepts: - application/json /staking/positions/summary: @@ -19781,6 +19955,114 @@ paths: \ page_cursor);" x-accepts: - application/json + /trading/providers/{providerId}: + get: + description: | + 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). + operationId: getTradingProviderById + parameters: + - description: The unique identifier of the provider. + explode: false + in: path + name: providerId + required: true + schema: + minLength: 1 + type: string + style: simple + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingProviderDetails" + description: Provider details + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: Unauthorized. Missing / invalid JWT token in Authorization + header. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + 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/TradingErrorSchema" + description: Provider not found. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "429": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: Rate limit exceeded - slow down and retry later. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "5XX": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: Internal error while processing the request. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Get trading provider by ID + tags: + - Trading (Beta) + x-rate-limit-category: read + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.tradingBeta.getTradingProviderById(tradingBetaApiGetTradingProviderByIdRequest);" + name: Fireblocks SDK TypeScript example + - language: java + 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);" + - lang: Java + source: CompletableFuture> response = + fireblocks.tradingBeta().getTradingProviderById(providerId); + - lang: Python + source: response = fireblocks.trading_beta.get_trading_provider_by_id(provider_id); + x-accepts: + - application/json /trading/quotes: post: description: |- @@ -20399,6 +20681,7 @@ paths: - APECHAIN_TEST - CRONOS - CRONOS_TEST + - ROBINHOOD_CHAIN_TESTNET_TEST type: string style: form - description: A comma separated list of Vault Account IDs. Up to 100 are allowed @@ -20623,6 +20906,7 @@ paths: - KLAY_KAIA_TEST - APECHAIN - APECHAIN_TEST + - ROBINHOOD_CHAIN_TESTNET_TEST type: string style: form - description: Vault account filter @@ -21795,9 +22079,12 @@ paths: - application/json /address_registry/legal_entity: get: - description: "Returns the legal entity (company name, jurisdiction, companyId)\ - \ for the given blockchain address and optional asset. Both the requester\ - \ and the owner of the address must be opted in to the address registry." + 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 @@ -21809,7 +22096,7 @@ paths: example: 0x742d35cc6634c0532925a3b844bc9e7595f0beb0 type: string style: form - - description: "Asset ID (e.g. ETH, BTC). Optional." + - description: Optional asset identifier (this deprecated operation only). explode: true in: query name: asset @@ -21818,6 +22105,95 @@ paths: 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). + operationId: getLegalEntityForAddress + parameters: + - description: Blockchain address to look up + explode: false + in: path + name: address + required: true + schema: + example: 0x742d35cc6634c0532925a3b844bc9e7595f0beb0 + type: string + style: simple responses: "200": content: @@ -21833,7 +22209,7 @@ paths: application/json: schema: $ref: "#/components/schemas/AddressRegistryError" - description: Bad request – missing or invalid address or asset + description: Bad request – missing or invalid address headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" @@ -21842,8 +22218,8 @@ paths: application/json: schema: $ref: "#/components/schemas/AddressRegistryError" - description: "Forbidden – requester or address owner not opted in to the\ - \ address registry (error codes 2140, 2141)" + 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" @@ -21852,40 +22228,534 @@ paths: application/json: schema: $ref: "#/components/schemas/AddressRegistryError" - description: Address not resolved or entity not found (error code 2142) + 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: Look up legal entity by address and asset + summary: Look up legal entity by blockchain address tags: - Compliance - x-rate-limit-category: read + x-rate-limit-category: high_compute x-readme: code-samples: - language: typescript code: "const response: Promise>\ - \ = fireblocks.compliance.getLegalEntityByAddress(complianceApiGetLegalEntityByAddressRequest);" + \ = fireblocks.compliance.getLegalEntityForAddress(complianceApiGetLegalEntityForAddressRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.compliance().getLegalEntityByAddress(address, asset);" + code: CompletableFuture> response + = fireblocks.compliance().getLegalEntityForAddress(address); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.compliance.get_legal_entity_by_address(address,\ - \ asset);" + code: response = fireblocks.compliance.get_legal_entity_for_address(address); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript source: "const response: Promise>\ - \ = fireblocks.compliance.getLegalEntityByAddress(complianceApiGetLegalEntityByAddressRequest);" + \ = fireblocks.compliance.getLegalEntityForAddress(complianceApiGetLegalEntityForAddressRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.compliance().getLegalEntityByAddress(address, asset);" + source: CompletableFuture> response + = fireblocks.compliance().getLegalEntityForAddress(address); - lang: Python - source: "response = fireblocks.compliance.get_legal_entity_by_address(address,\ - \ asset);" + source: response = fireblocks.compliance.get_legal_entity_for_address(address); + x-accepts: + - application/json + /address_registry/tenant: + delete: + description: Opts the workspace out. No request body. Response uses the same + JSON shape as GET; status is OPTED_OUT. + operationId: optOutAddressRegistryTenant + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/AddressRegistryTenantRegistryResponse" + description: Success; response body includes status OPTED_OUT + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Opt the workspace out of the address registry + tags: + - Compliance + x-rate-limit-category: write + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.compliance.optOutAddressRegistryTenant();" + name: Fireblocks SDK TypeScript example + - language: java + code: CompletableFuture> + response = fireblocks.compliance().optOutAddressRegistryTenant(); + name: Fireblocks SDK Java example + - language: python + code: response = fireblocks.compliance.opt_out_address_registry_tenant(); + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.compliance.optOutAddressRegistryTenant();" + - lang: Java + source: CompletableFuture> + response = fireblocks.compliance().optOutAddressRegistryTenant(); + - lang: Python + source: response = fireblocks.compliance.opt_out_address_registry_tenant(); + x-accepts: + - application/json + get: + description: Returns whether the workspace is `OPTED_IN` or `OPTED_OUT` of the + address registry. + operationId: getAddressRegistryTenantParticipationStatus + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/AddressRegistryTenantRegistryResponse" + description: Participation status in the response body + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Get address registry participation status for the authenticated workspace + tags: + - Compliance + x-rate-limit-category: read + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.compliance.getAddressRegistryTenantParticipationStatus();" + name: Fireblocks SDK TypeScript example + - language: java + code: CompletableFuture> + response = fireblocks.compliance().getAddressRegistryTenantParticipationStatus(); + name: Fireblocks SDK Java example + - language: python + code: response = fireblocks.compliance.get_address_registry_tenant_participation_status(); + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.compliance.getAddressRegistryTenantParticipationStatus();" + - lang: Java + source: CompletableFuture> + response = fireblocks.compliance().getAddressRegistryTenantParticipationStatus(); + - lang: Python + source: response = fireblocks.compliance.get_address_registry_tenant_participation_status(); + x-accepts: + - application/json + post: + description: Opts the workspace in. No request body. Response uses the same + JSON shape as GET; status is OPTED_IN. + operationId: optInAddressRegistryTenant + 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/AddressRegistryTenantRegistryResponse" + description: Success; response body includes status OPTED_IN + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Opt the workspace in to the address registry + tags: + - Compliance + x-rate-limit-category: write + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.compliance.optInAddressRegistryTenant(complianceApiOptInAddressRegistryTenantRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: CompletableFuture> + response = fireblocks.compliance().optInAddressRegistryTenant(idempotencyKey); + name: Fireblocks SDK Java example + - language: python + code: response = fireblocks.compliance.opt_in_address_registry_tenant(idempotency_key); + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.compliance.optInAddressRegistryTenant(complianceApiOptInAddressRegistryTenantRequest);" + - lang: Java + source: CompletableFuture> + response = fireblocks.compliance().optInAddressRegistryTenant(idempotencyKey); + - lang: Python + source: response = fireblocks.compliance.opt_in_address_registry_tenant(idempotency_key); + x-accepts: + - application/json + /address_registry/vaults: + delete: + description: Removes all vault accounts from the workspace opt-out list. + operationId: removeAllAddressRegistryVaultOptOuts + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/AddressRegistryRemoveAllVaultOptOutsResponse" + description: All opt-outs cleared; response body includes `removedCount`. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Remove all vault-level address registry opt-outs for the workspace + tags: + - Compliance + x-rate-limit-category: write + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.compliance.removeAllAddressRegistryVaultOptOuts();" + name: Fireblocks SDK TypeScript example + - language: java + code: CompletableFuture> + response = fireblocks.compliance().removeAllAddressRegistryVaultOptOuts(); + name: Fireblocks SDK Java example + - language: python + code: response = fireblocks.compliance.remove_all_address_registry_vault_opt_outs(); + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.compliance.removeAllAddressRegistryVaultOptOuts();" + - lang: Java + source: CompletableFuture> + response = fireblocks.compliance().removeAllAddressRegistryVaultOptOuts(); + - lang: Python + source: response = fireblocks.compliance.remove_all_address_registry_vault_opt_outs(); + x-accepts: + - application/json + get: + description: "Lists vault accounts that are opted out of the address registry\ + \ for this workspace. Pagination uses `next` and `prev` cursors from the response.\ + \ If `pageSize` is omitted, **50** items are returned per page; allowed range\ + \ is **1–100** per request." + operationId: listAddressRegistryVaultOptOuts + parameters: + - description: Opaque cursor from a previous response (`next` or `prev`). Omit + for the first page. + explode: true + in: query + name: pageCursor + required: false + schema: + example: eyJvZmZzZXQiOjAsInBhZ2VTaXplIjoxMH0 + type: string + style: form + - description: Page size. Default **50** if omitted; must be between **1** and + **100**. + explode: true + in: query + name: pageSize + required: false + schema: + default: 50 + example: 50 + format: int32 + maximum: 100 + minimum: 1 + type: integer + style: form + - description: Sort direction by vault account id. Omit for ascending; use the + enum value for descending. + explode: true + in: query + name: order + required: false + schema: + $ref: "#/components/schemas/AddressRegistryVaultListOrder" + style: form + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/AddressRegistryListVaultOptOutsResponse" + description: Page of vault opt-out rows + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/AddressRegistryError" + description: Validation error (e.g. invalid or malformed pageCursor) + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: List vault-level address registry opt-outs (paginated) + tags: + - Compliance + x-rate-limit-category: read + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.compliance.listAddressRegistryVaultOptOuts(complianceApiListAddressRegistryVaultOptOutsRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture>\ + \ response = fireblocks.compliance().listAddressRegistryVaultOptOuts(pageCursor,\ + \ pageSize, order);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.compliance.list_address_registry_vault_opt_outs(page_cursor,\ + \ page_size, order);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.compliance.listAddressRegistryVaultOptOuts(complianceApiListAddressRegistryVaultOptOutsRequest);" + - lang: Java + source: "CompletableFuture>\ + \ response = fireblocks.compliance().listAddressRegistryVaultOptOuts(pageCursor,\ + \ pageSize, order);" + - lang: Python + source: "response = fireblocks.compliance.list_address_registry_vault_opt_outs(page_cursor,\ + \ page_size, order);" + x-accepts: + - application/json + post: + description: Adds one or more vault account ids to the workspace opt-out list + for the address registry. + operationId: addAddressRegistryVaultOptOuts + 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/AddressRegistryAddVaultOptOutsRequest" + required: true + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/AddressRegistryAddVaultOptOutsResponse" + description: Opt-outs recorded; response body includes `acceptedCount`. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/AddressRegistryError" + description: Validation error (e.g. empty list or invalid vault ids) + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Add vault accounts to the address registry opt-out list + tags: + - Compliance + x-rate-limit-category: write + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.compliance.addAddressRegistryVaultOptOuts(complianceApiAddAddressRegistryVaultOptOutsRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture>\ + \ response = fireblocks.compliance().addAddressRegistryVaultOptOuts(addressRegistryAddVaultOptOutsRequest,\ + \ idempotencyKey);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.compliance.add_address_registry_vault_opt_outs(address_registry_add_vault_opt_outs_request,\ + \ idempotency_key);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.compliance.addAddressRegistryVaultOptOuts(complianceApiAddAddressRegistryVaultOptOutsRequest);" + - lang: Java + source: "CompletableFuture>\ + \ response = fireblocks.compliance().addAddressRegistryVaultOptOuts(addressRegistryAddVaultOptOutsRequest,\ + \ idempotencyKey);" + - lang: Python + source: "response = fireblocks.compliance.add_address_registry_vault_opt_outs(address_registry_add_vault_opt_outs_request,\ + \ idempotency_key);" + x-content-type: application/json + x-accepts: + - application/json + /address_registry/vaults/{vaultAccountId}: + delete: + description: "Removes this vault account id from the workspace opt-out list\ + \ if it is present; otherwise the call still succeeds. Response body matches\ + \ GET (`optedOut` is `false` after success). To clear the whole list, use\ + \ `DELETE /v1/address_registry/vaults`." + operationId: removeAddressRegistryVaultOptOut + parameters: + - description: Vault account id (non-negative integer). + explode: false + in: path + name: vaultAccountId + required: true + schema: + example: 10001 + format: int32 + minimum: 0 + type: integer + style: simple + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/AddressRegistryRemoveVaultOptOutResponse" + description: Success; `optedOut` is false (list entry removed if it existed) + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/AddressRegistryError" + description: Invalid path parameter (e.g. negative or out-of-range vault + account id) + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Remove a single vault account from the address registry opt-out list + tags: + - Compliance + x-rate-limit-category: write + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.compliance.removeAddressRegistryVaultOptOut(complianceApiRemoveAddressRegistryVaultOptOutRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: CompletableFuture> + response = fireblocks.compliance().removeAddressRegistryVaultOptOut(vaultAccountId); + name: Fireblocks SDK Java example + - language: python + code: response = fireblocks.compliance.remove_address_registry_vault_opt_out(vault_account_id); + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.compliance.removeAddressRegistryVaultOptOut(complianceApiRemoveAddressRegistryVaultOptOutRequest);" + - lang: Java + source: CompletableFuture> + response = fireblocks.compliance().removeAddressRegistryVaultOptOut(vaultAccountId); + - lang: Python + source: response = fireblocks.compliance.remove_address_registry_vault_opt_out(vault_account_id); + x-accepts: + - application/json + get: + description: "Returns whether this vault account is on the workspace opt-out\ + \ list (`optedOut` true or false). List, add, and clear-all are available\ + \ on `/v1/address_registry/vaults`; this path reads or removes one vault." + operationId: getAddressRegistryVaultOptOut + parameters: + - description: Vault account id (non-negative integer). + explode: false + in: path + name: vaultAccountId + required: true + schema: + example: 10001 + format: int32 + minimum: 0 + type: integer + style: simple + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/AddressRegistryGetVaultOptOutResponse" + description: Current opt-out flag for the vault + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/AddressRegistryError" + description: Invalid path parameter (e.g. negative or out-of-range vault + account id) + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Get whether a vault account is opted out of the address registry + tags: + - Compliance + x-rate-limit-category: read + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.compliance.getAddressRegistryVaultOptOut(complianceApiGetAddressRegistryVaultOptOutRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: CompletableFuture> + response = fireblocks.compliance().getAddressRegistryVaultOptOut(vaultAccountId); + name: Fireblocks SDK Java example + - language: python + code: response = fireblocks.compliance.get_address_registry_vault_opt_out(vault_account_id); + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.compliance.getAddressRegistryVaultOptOut(complianceApiGetAddressRegistryVaultOptOutRequest);" + - lang: Java + source: CompletableFuture> + response = fireblocks.compliance().getAddressRegistryVaultOptOut(vaultAccountId); + - lang: Python + source: response = fireblocks.compliance.get_address_registry_vault_opt_out(vault_account_id); x-accepts: - application/json /screening/travel_rule/transaction/validate: @@ -23163,6 +24033,9 @@ paths: schema: $ref: "#/components/schemas/TRLinkPartnersListResponse" description: List of partners retrieved successfully + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" summary: List available TRSupport partners @@ -23205,6 +24078,9 @@ paths: schema: $ref: "#/components/schemas/TRLinkCustomersListResponse" description: Customers retrieved successfully + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" summary: Get all customers @@ -23265,6 +24141,9 @@ paths: schema: $ref: "#/components/schemas/TRLinkCustomerResponse" description: Customer created successfully + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" summary: Create customer @@ -23319,6 +24198,9 @@ paths: responses: "204": description: Customer deleted successfully + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" summary: Delete customer @@ -23367,6 +24249,9 @@ paths: schema: $ref: "#/components/schemas/TRLinkCustomerResponse" description: Customer retrieved successfully + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" summary: Get customer by ID @@ -23436,6 +24321,9 @@ paths: schema: $ref: "#/components/schemas/TRLinkCustomerResponse" description: Customer updated successfully + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" summary: Update customer @@ -23494,6 +24382,9 @@ paths: schema: $ref: "#/components/schemas/TRLinkCustomerIntegrationsListResponse" description: Customer integrations retrieved successfully + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" summary: Get customer integrations @@ -23556,6 +24447,9 @@ paths: schema: $ref: "#/components/schemas/TRLinkCustomerIntegrationResponse" description: Customer integration retrieved successfully + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" summary: Get customer integration by ID @@ -23594,7 +24488,9 @@ paths: post: description: Creates a new TRSupport integration for a customer. This establishes a connection placeholder between a customer and a Travel Rule partner. Use - the connect endpoint to provide credentials after creation. + the connect endpoint to provide credentials after creation. You may optionally + supply `customerIntegrationId` in the request body when your tenant is enabled + for client-provided integration ids. operationId: createTRLinkIntegration parameters: - description: "A unique identifier for the request. If the request is sent\ @@ -23621,6 +24517,9 @@ paths: schema: $ref: "#/components/schemas/TRLinkCustomerIntegrationResponse" description: Customer integration created successfully + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" summary: Create customer integration @@ -23658,8 +24557,11 @@ paths: - application/json /screening/trlink/customers/integration/{customerIntegrationId}: delete: - description: Disconnects a customer integration by removing stored credentials. - The integration record is deleted and cannot be recovered. + description: "Disconnects the integration for the authenticated workspace (tenant):\ + \ removes stored credentials and deletes this tenant's integration record.\ + \ The operation is scoped to the caller's tenant; it does not remove partner-side\ + \ state for other workspaces that reuse the same logical customer integration.\ + \ The record cannot be recovered after delete." operationId: disconnectTRLinkIntegration parameters: - description: Customer integration unique identifier @@ -23675,6 +24577,9 @@ paths: responses: "204": description: Customer integration disconnected successfully + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" summary: Disconnect customer integration @@ -23740,6 +24645,9 @@ paths: schema: $ref: "#/components/schemas/TRLinkCustomerIntegrationResponse" description: Customer integration connected successfully + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" summary: Connect customer integration @@ -23799,6 +24707,9 @@ paths: schema: $ref: "#/components/schemas/TRLinkPublicKeyResponse" description: Public key retrieved successfully + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" summary: Get public key for PII encryption @@ -23865,6 +24776,9 @@ paths: $ref: "#/components/schemas/TRLinkTestConnectionResponse" description: Connection test completed (success or failure details in response body) + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" summary: Test connection @@ -23940,6 +24854,9 @@ paths: schema: $ref: "#/components/schemas/TRLinkAPIPagedResponse" description: VASPs retrieved successfully + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" summary: List VASPs @@ -24003,6 +24920,9 @@ paths: schema: $ref: "#/components/schemas/TRLinkVaspDto" description: VASP retrieved successfully + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" summary: Get VASP by ID @@ -24075,6 +24995,9 @@ paths: schema: $ref: "#/components/schemas/TRLinkAssetsListPagedResponse" description: Supported assets retrieved successfully + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" summary: List supported assets @@ -24140,6 +25063,9 @@ paths: schema: $ref: "#/components/schemas/TRLinkGetSupportedAssetResponse" description: Asset retrieved successfully + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" summary: Get supported asset by ID @@ -24213,6 +25139,9 @@ paths: schema: $ref: "#/components/schemas/TRLinkAssessTravelRuleResponse" description: Travel rule assessment completed + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" summary: Assess Travel Rule requirement @@ -24288,6 +25217,9 @@ paths: schema: $ref: "#/components/schemas/TRLinkTrmInfoResponse" description: TRM created successfully + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" summary: Create Travel Rule Message @@ -24354,6 +25286,9 @@ paths: schema: $ref: "#/components/schemas/TRLinkTrmInfoResponse" description: TRM retrieved successfully + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" summary: Get TRM by ID @@ -24433,6 +25368,9 @@ paths: schema: $ref: "#/components/schemas/TRLinkTrmInfoResponse" description: Transaction cancellation request accepted + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" summary: Cancel Travel Rule Message @@ -24515,6 +25453,9 @@ paths: schema: $ref: "#/components/schemas/TRLinkTrmInfoResponse" description: Transaction redirect request accepted + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" summary: Redirect Travel Rule Message @@ -24565,6 +25506,9 @@ paths: schema: $ref: "#/components/schemas/TRLinkPolicyResponse" description: Policy retrieved successfully + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" summary: Get TRLink policy @@ -24632,6 +25576,9 @@ paths: schema: $ref: "#/components/schemas/TRLinkSetTransactionTravelRuleMessageIdResponse" description: Travel rule message ID set successfully + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" summary: Set transaction travel rule message ID @@ -24707,6 +25654,9 @@ paths: schema: $ref: "#/components/schemas/TRLinkSetDestinationTravelRuleMessageIdResponse" description: Destination travel rule message ID set successfully + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" summary: Set destination travel rule message ID @@ -28863,6 +29813,554 @@ paths: \ api_key_id, request_id);" 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 + - description: Field to sort results by. Ignored when `vaultAccountId` is provided. + explode: true + in: query + name: sortBy + required: false + schema: + enum: + - createdAt + - updatedAt + type: string + style: form + - description: Sort order. Ignored when `vaultAccountId` is provided. + explode: true + in: query + name: order + required: false + schema: + default: DESC + enum: + - ASC + - DESC + type: string + style: form + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/ListLegalEntitiesResponse" + description: "A paginated list of legal entity registrations. When `vaultAccountId`\ + \ is provided, `data` contains at most one item." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: List legal entities (Paginated) + tags: + - Compliance + x-rate-limit-category: query + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.compliance.listLegalEntities(complianceApiListLegalEntitiesRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response\ + \ = fireblocks.compliance().listLegalEntities(vaultAccountId, pageCursor,\ + \ pageSize, sortBy, order);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.compliance.list_legal_entities(vault_account_id,\ + \ page_cursor, page_size, sort_by, order);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.compliance.listLegalEntities(complianceApiListLegalEntitiesRequest);" + - lang: Java + source: "CompletableFuture> response\ + \ = fireblocks.compliance().listLegalEntities(vaultAccountId, pageCursor,\ + \ pageSize, sortBy, order);" + - lang: Python + source: "response = fireblocks.compliance.list_legal_entities(vault_account_id,\ + \ page_cursor, page_size, sort_by, order);" + x-accepts: + - application/json + post: + description: |- + Registers a new legal entity for the workspace using its LEI (Legal Entity Identifier) code. The LEI is validated against the GLEIF registry. Each workspace can register multiple legal entities. +
Endpoint Permission: Admin, Non-Signing Admin. + operationId: registerLegalEntity + 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/RegisterLegalEntityRequest" + required: true + responses: + "201": + content: + application/json: + schema: + $ref: "#/components/schemas/LegalEntityRegistration" + description: Legal entity registered successfully + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: Invalid LEI or request parameters + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: LEI not found in the GLEIF registry + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: A legal entity with this LEI is already registered for the + workspace + 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: Register a new legal entity + tags: + - Compliance + x-rate-limit-category: write + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.compliance.registerLegalEntity(complianceApiRegisterLegalEntityRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response\ + \ = fireblocks.compliance().registerLegalEntity(registerLegalEntityRequest,\ + \ idempotencyKey);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.compliance.register_legal_entity(register_legal_entity_request,\ + \ idempotency_key);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.compliance.registerLegalEntity(complianceApiRegisterLegalEntityRequest);" + - lang: Java + source: "CompletableFuture> response\ + \ = fireblocks.compliance().registerLegalEntity(registerLegalEntityRequest,\ + \ idempotencyKey);" + - lang: Python + source: "response = fireblocks.compliance.register_legal_entity(register_legal_entity_request,\ + \ idempotency_key);" + x-content-type: application/json + x-accepts: + - application/json + /legal_entities/{legalEntityId}: + get: + description: |- + Returns details of a specific legal entity registration, including GLEIF data when available. +
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. + operationId: getLegalEntity + parameters: + - description: The unique ID of the legal entity registration + explode: false + in: path + name: legalEntityId + required: true + schema: + format: uuid + type: string + style: simple + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/LegalEntityRegistration" + description: Legal entity registration details + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: Legal entity registration not found + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Get a legal entity + tags: + - Compliance + x-rate-limit-category: read + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.compliance.getLegalEntity(complianceApiGetLegalEntityRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: CompletableFuture> response = + fireblocks.compliance().getLegalEntity(legalEntityId); + name: Fireblocks SDK Java example + - language: python + code: response = fireblocks.compliance.get_legal_entity(legal_entity_id); + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.compliance.getLegalEntity(complianceApiGetLegalEntityRequest);" + - lang: Java + source: CompletableFuture> response = + fireblocks.compliance().getLegalEntity(legalEntityId); + - lang: Python + source: response = fireblocks.compliance.get_legal_entity(legal_entity_id); + x-accepts: + - application/json + put: + description: |- + Updates the status of a legal entity registration. Setting isDefault to true marks the registration as the workspace default, which is applied to vault accounts that have no explicit legal entity mapping. +
Endpoint Permission: Admin, Non-Signing Admin. + operationId: updateLegalEntity + parameters: + - description: The unique ID of the legal entity registration + explode: false + in: path + name: legalEntityId + required: true + schema: + format: uuid + 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\ + \ 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/UpdateLegalEntityRequest" + required: true + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/LegalEntityRegistration" + description: Updated legal entity registration + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: Registration is not in APPROVED status + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: Legal entity registration not found + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Update legal entity + tags: + - Compliance + x-rate-limit-category: write + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.compliance.updateLegalEntity(complianceApiUpdateLegalEntityRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response\ + \ = fireblocks.compliance().updateLegalEntity(updateLegalEntityRequest,\ + \ legalEntityId, idempotencyKey);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.compliance.update_legal_entity(update_legal_entity_request,\ + \ legal_entity_id, idempotency_key);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.compliance.updateLegalEntity(complianceApiUpdateLegalEntityRequest);" + - lang: Java + source: "CompletableFuture> response\ + \ = fireblocks.compliance().updateLegalEntity(updateLegalEntityRequest,\ + \ legalEntityId, idempotencyKey);" + - lang: Python + source: "response = fireblocks.compliance.update_legal_entity(update_legal_entity_request,\ + \ legal_entity_id, idempotency_key);" + x-content-type: application/json + x-accepts: + - application/json + /legal_entities/{legalEntityId}/vaults: + get: + description: |- + Returns vault account IDs explicitly assigned to a specific legal entity registration, with cursor-based pagination. +
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. + operationId: listVaultsForLegalEntity + parameters: + - description: The unique ID of the legal entity registration + explode: false + in: path + name: legalEntityId + required: true + schema: + format: uuid + type: string + style: simple + - description: Cursor string returned in `next` or `prev` of a previous response + explode: true + in: query + name: pageCursor + required: false + schema: + type: string + style: form + - description: Maximum number of registrations to return + explode: true + in: query + name: pageSize + required: false + schema: + default: 50 + maximum: 100 + minimum: 1 + type: integer + style: form + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/ListVaultsForRegistrationResponse" + description: Paginated list of vault account IDs assigned to the legal entity + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: Legal entity registration not found + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: List vault accounts for a legal entity (Paginated) + tags: + - Compliance + x-rate-limit-category: read + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.compliance.listVaultsForLegalEntity(complianceApiListVaultsForLegalEntityRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture>\ + \ response = fireblocks.compliance().listVaultsForLegalEntity(legalEntityId,\ + \ pageCursor, pageSize);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.compliance.list_vaults_for_legal_entity(legal_entity_id,\ + \ page_cursor, page_size);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.compliance.listVaultsForLegalEntity(complianceApiListVaultsForLegalEntityRequest);" + - lang: Java + source: "CompletableFuture>\ + \ response = fireblocks.compliance().listVaultsForLegalEntity(legalEntityId,\ + \ pageCursor, pageSize);" + - lang: Python + source: "response = fireblocks.compliance.list_vaults_for_legal_entity(legal_entity_id,\ + \ page_cursor, page_size);" + x-accepts: + - application/json + post: + description: |- + Assigns one or more vault accounts to a specific legal entity registration. Explicitly mapped vault accounts take precedence over the workspace default legal entity. +
Endpoint Permission: Admin, Non-Signing Admin. + operationId: assignVaultsToLegalEntity + parameters: + - description: The unique ID of the legal entity registration + explode: false + in: path + name: legalEntityId + required: true + schema: + format: uuid + 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\ + \ 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/AssignVaultsToLegalEntityRequest" + required: true + responses: + "201": + content: + application/json: + schema: + $ref: "#/components/schemas/AssignVaultsToLegalEntityResponse" + description: Vault accounts assigned successfully + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: Legal entity registration not found + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Assign vault accounts to a legal entity + tags: + - Compliance + x-rate-limit-category: write + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.compliance.assignVaultsToLegalEntity(complianceApiAssignVaultsToLegalEntityRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture>\ + \ response = fireblocks.compliance().assignVaultsToLegalEntity(assignVaultsToLegalEntityRequest,\ + \ legalEntityId, idempotencyKey);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.compliance.assign_vaults_to_legal_entity(assign_vaults_to_legal_entity_request,\ + \ legal_entity_id, idempotency_key);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.compliance.assignVaultsToLegalEntity(complianceApiAssignVaultsToLegalEntityRequest);" + - lang: Java + source: "CompletableFuture>\ + \ response = fireblocks.compliance().assignVaultsToLegalEntity(assignVaultsToLegalEntityRequest,\ + \ legalEntityId, idempotencyKey);" + - lang: Python + source: "response = fireblocks.compliance.assign_vaults_to_legal_entity(assign_vaults_to_legal_entity_request,\ + \ legal_entity_id, idempotency_key);" + x-content-type: application/json + x-accepts: + - application/json components: headers: X-Request-ID: @@ -29999,6 +31497,9 @@ components: - first va - client 65502e71-ecdf-48da-a074-c1753befc7fb prefix: "Copied from: " + tagIds: + - a1b2c3d4-e5f6-7890-abcd-ef1234567890 + - b2c3d4e5-f6a7-8901-bcde-f12345678901 count: 1000 baseAssetIds: - BTC @@ -30038,6 +31539,16 @@ components: then adding a prefix to the names. If names array is used it'll fail example: "Copied from: " type: string + tagIds: + description: Optional list of tag IDs to attach to all created vault accounts + example: + - a1b2c3d4-e5f6-7890-abcd-ef1234567890 + - b2c3d4e5-f6a7-8901-bcde-f12345678901 + items: + format: uuid + type: string + maxItems: 20 + type: array required: - baseAssetIds - count @@ -30045,9 +31556,14 @@ components: JobCreated: example: jobId: jobId + approvalRequestId: approvalRequestId properties: jobId: type: string + approvalRequestId: + description: Approval request ID. Returned when a tag triggers an approval + flow. + type: string type: object CreateMultipleVaultAccountsJobStatus: example: @@ -34916,11 +36432,6 @@ components: * `RAW` - An off-chain message with no predefined format. Use it to sign any message with your private key, including protocols such as blockchains and custom transaction types that are not natively supported by Fireblocks. [Learn more about raw signing transactions.](https://developers.fireblocks.com/docs/raw-message-signing) * `ENABLE_ASSET` - Algorand, DigitalBits, Solana, and Stellar require an on-chain transaction to create an asset wallet and enable the deposit address. This transaction is automatically created when adding assets on these blockchains at a vault account. * `STAKE` - Assign assets to a staking pool managed by a staking validator. Supported for Stellar and EVM-based blockchains. This transaction is automatically created when performing staking operations. - * `UNSTAKE` - Remove assets from a staking pool managed by a staking validator. Supported for Stellar and EVM-based blockchains. This transaction is automatically created when performing staking operations. - * `WITHDRAW` - Transfer assets from a dedicated staking vault account to another address. Supported for Stellar and EVM-based blockchains. This transaction is automatically created when performing staking operations. - - **Note:** Fireblocks will rename this type from `WITHDRAW` to a different type name soon. There will be a 7-day notice regarding the new type name. - * `SUPPLY_TO_COMPOUND` - Deprecated since April 1st, 2023. Older transactions may have this as their operation, in case users in the workspace have used the direct integration between Fireblocks and the Compound DeFI protocol. * `REDEEM_FROM_COMPOUND` - Deprecated since April 1st, 2023. Older transactions may have this as their operation, in case users in the workspace have used the direct integration between Fireblocks and the Compound DeFI protocol. * `PROGRAM_CALL` - In Solana refers to invoking on-chain programs (smart contracts) to execute transactions and interact with the blockchain. @@ -34934,8 +36445,6 @@ components: - TYPED_MESSAGE - ENABLE_ASSET - STAKE - - UNSTAKE - - WITHDRAW - REDEEM_FROM_COMPOUND - SUPPLY_TO_COMPOUND - PROGRAM_CALL @@ -35293,7 +36802,10 @@ components: $ref: "#/components/schemas/RewardInfo" type: object AmlStatusEnum: - description: AML screening status + deprecated: true + description: | + Deprecated: Use screeningStatus instead. + AML screening status. enum: - COMPLETED - PENDING @@ -35320,19 +36832,6 @@ components: - REVIEW example: PASS type: string - ScreeningRiskLevelEnum: - description: | - Risk level assessment for screening results. - Possible values vary by provider and context. - enum: - - VERY_HIGH - - SEVERE - - HIGH - - MEDIUM - - LOW - - UNKNOWN - example: LOW - type: string AlertLevelEnum: description: Alert level severity enum: @@ -35434,7 +36933,9 @@ components: $ref: "#/components/schemas/PolicyVerdictActionEnum" type: object AmlResult: + deprecated: true description: | + Deprecated: This field is not currently returned in the API response. Detailed AML screening result information. Contains alerts, risk scores, and other AML-specific data from provider-specific responses. example: @@ -35512,6 +37013,9 @@ components: - REJECT - ALERT - REVIEW + - WAIT + - FREEZE + - CANCEL example: ACCEPT type: string TravelRuleStatusEnum: @@ -35522,6 +37026,9 @@ components: - BYPASSED - FAILED - FROZEN + - REJECTED + - CANCELED + - BLOCKING_TIME_EXPIRED example: COMPLETED type: string TravelRuleMatchedRule: @@ -35554,7 +37061,9 @@ components: $ref: "#/components/schemas/TravelRuleVerdictEnum" type: object TravelRuleResult: + deprecated: true description: | + Deprecated: This field is not currently returned in the API response. Detailed Travel Rule screening result containing provider-specific data. Contains Travel Rule specific information like verified status, rule type, and actions. example: @@ -35648,6 +37157,8 @@ components: - SCREEN - BYPASS - BLOCK + - PASS + - FREEZE example: SCREEN type: string TravelRulePrescreeningRule: @@ -35727,6 +37238,19 @@ components: action: $ref: "#/components/schemas/TravelRuleActionEnum" type: object + ScreeningProviderResponse: + additionalProperties: true + description: | + Complete response from the screening provider. This is a dynamic object that varies + significantly between different providers (Chainalysis, Elliptic, NOTABENE, etc.). + Each provider has their own proprietary response format and schema. + + For AML providers: Contains risk scores, alerts, entity information + For Travel Rule providers: Contains VASP information, PII data, protocol-specific fields + + The structure is provider-dependent and cannot be standardized as each + vendor implements their own proprietary data models and response formats. + type: object ComplianceScreeningResult: description: | The result of the AML/Travel Rule screening. @@ -35794,6 +37318,8 @@ components: providerResponse: key: "" matchedAlert: "{}" + providerResponse: + key: "" timestamp: 1753459111824 matchedPrescreeningRule: sourceId: "0" @@ -35815,12 +37341,12 @@ components: networkProtocol: ETH detailsMessage: Travel rule screening completed successfully externalId: aml_screening_12345 - bypassReason: BELOW_THRESHOLD - extendedRisk: LOW + bypassReason: UNSUPPORTED_ASSET + extendedRisk: lowRisk customerRefId: customer_ref_789 customerShortName: ACME Corp verdict: PASS - risk: LOW + risk: lowRisk refId: ref_12345 category: EXCHANGE screeningStatus: COMPLETED @@ -35831,8 +37357,8 @@ components: provider: description: | The AML/Travel Rule provider name. - For AML: ELLIPTIC, CHAINALYSIS, SCORECHAIN, MERKLE_SCIENCE, etc. - For Travel Rule: NOTABENE, SYGNA, or any TRLink provider name + For AML: ELLIPTIC, CHAINALYSIS, etc. + For Travel Rule: NOTABENE, SUMSUB, GTR, or any TRLink provider name. example: NOTABENE type: string payload: @@ -35861,24 +37387,43 @@ components: bypassReason: description: | Reason for bypassing the screening, if applicable. - For AML: SANCTIONS_SCREENING_BYPASS, SANCTIONS_RECIPIENT_BYPASS, etc. - For Travel Rule: BELOW_THRESHOLD, NO_TRM_AVAILABLE, etc. - example: BELOW_THRESHOLD + For AML: UNSUPPORTED_ASSET, PASSED_BY_POLICY. + For Travel Rule: UNSUPPORTED_ASSET, NO_TRAVEL_RULE_MESSAGE, TRANSACTION_ZERO_AMOUNT. + example: UNSUPPORTED_ASSET type: string status: $ref: "#/components/schemas/AmlStatusEnum" prevStatus: $ref: "#/components/schemas/AmlStatusEnum" prevBypassReason: - description: Previous bypass reason before the current bypass reason change + deprecated: true + description: | + Deprecated: This field is not currently returned in the API response. + Previous bypass reason before the current bypass reason change. example: BELOW_THRESHOLD type: string verdict: $ref: "#/components/schemas/ScreeningVerdictEnum" risk: - $ref: "#/components/schemas/ScreeningRiskLevelEnum" + description: | + Risk level assessment for screening results. + Values vary by provider and are not managed by this service. + + Known values by provider: + - Chainalysis: severeRisk, highRisk, mediumRisk, lowRisk, noRiskInfo + - Elliptic: noRiskDetected + + Legacy values (SCREAMING_SNAKE_CASE, may appear in old transactions): + VERY_HIGH, SEVERE, HIGH, MEDIUM, LOW, NO_RISK_INFO, UNKNOWN + example: lowRisk + type: string extendedRisk: - $ref: "#/components/schemas/ScreeningRiskLevelEnum" + deprecated: true + description: | + Deprecated: This field is not currently returned in the API response. + Use risk instead. + example: lowRisk + type: string externalId: description: External identifier for the screening (provider-specific) example: aml_screening_12345 @@ -35888,7 +37433,10 @@ components: example: customer_ref_789 type: string refId: - description: Internal reference identifier + deprecated: true + description: | + Deprecated: This field is not currently returned in the API response. + Internal reference identifier. example: ref_12345 type: string category: @@ -35911,11 +37459,17 @@ components: example: memo_12345 type: string destRecordId: - description: The destination record identifier used by the screening provider + deprecated: true + description: | + Deprecated: This field is not currently returned in the API response. + The destination record identifier used by the screening provider. example: record_001 type: string addressResolutionSignature: - description: Cryptographic signature for address resolution verification + deprecated: true + description: | + Deprecated: This field is not currently returned in the API response. + Cryptographic signature for address resolution verification. example: 0x1234567890abcdef type: string amlResult: @@ -35957,6 +37511,19 @@ components: providers example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 type: string + providerResponse: + additionalProperties: true + description: | + Complete response from the screening provider. This is a dynamic object that varies + significantly between different providers (Chainalysis, Elliptic, NOTABENE, etc.). + Each provider has their own proprietary response format and schema. + + For AML providers: Contains risk scores, alerts, entity information + For Travel Rule providers: Contains VASP information, PII data, protocol-specific fields + + The structure is provider-dependent and cannot be standardized as each + vendor implements their own proprietary data models and response formats. + type: object type: object ComplianceResultStatusesEnum: description: Status of compliance result screening @@ -36661,6 +38228,8 @@ components: providerResponse: key: "" matchedAlert: "{}" + providerResponse: + key: "" timestamp: 1753459111824 matchedPrescreeningRule: sourceId: "0" @@ -36682,12 +38251,12 @@ components: networkProtocol: ETH detailsMessage: Travel rule screening completed successfully externalId: aml_screening_12345 - bypassReason: BELOW_THRESHOLD - extendedRisk: LOW + bypassReason: UNSUPPORTED_ASSET + extendedRisk: lowRisk customerRefId: customer_ref_789 customerShortName: ACME Corp verdict: PASS - risk: LOW + risk: lowRisk refId: ref_12345 category: EXCHANGE screeningStatus: COMPLETED @@ -36977,6 +38546,8 @@ components: providerResponse: key: "" matchedAlert: "{}" + providerResponse: + key: "" timestamp: 1753459111824 matchedPrescreeningRule: sourceId: "0" @@ -36998,12 +38569,12 @@ components: networkProtocol: ETH detailsMessage: Travel rule screening completed successfully externalId: aml_screening_12345 - bypassReason: BELOW_THRESHOLD - extendedRisk: LOW + bypassReason: UNSUPPORTED_ASSET + extendedRisk: lowRisk customerRefId: customer_ref_789 customerShortName: ACME Corp verdict: PASS - risk: LOW + risk: lowRisk refId: ref_12345 category: EXCHANGE screeningStatus: COMPLETED @@ -37071,6 +38642,8 @@ components: providerResponse: key: "" matchedAlert: "{}" + providerResponse: + key: "" timestamp: 1753459111824 matchedPrescreeningRule: sourceId: "0" @@ -37092,12 +38665,12 @@ components: networkProtocol: ETH detailsMessage: Travel rule screening completed successfully externalId: aml_screening_12345 - bypassReason: BELOW_THRESHOLD - extendedRisk: LOW + bypassReason: UNSUPPORTED_ASSET + extendedRisk: lowRisk customerRefId: customer_ref_789 customerShortName: ACME Corp verdict: PASS - risk: LOW + risk: lowRisk refId: ref_12345 category: EXCHANGE screeningStatus: COMPLETED @@ -37166,6 +38739,8 @@ components: providerResponse: key: "" matchedAlert: "{}" + providerResponse: + key: "" timestamp: 1753459111824 matchedPrescreeningRule: sourceId: "0" @@ -37187,12 +38762,12 @@ components: networkProtocol: ETH detailsMessage: Travel rule screening completed successfully externalId: aml_screening_12345 - bypassReason: BELOW_THRESHOLD - extendedRisk: LOW + bypassReason: UNSUPPORTED_ASSET + extendedRisk: lowRisk customerRefId: customer_ref_789 customerShortName: ACME Corp verdict: PASS - risk: LOW + risk: lowRisk refId: ref_12345 category: EXCHANGE screeningStatus: COMPLETED @@ -37227,7 +38802,7 @@ components: description: | Additional protocol / operation specific key-value parameters: - For UTXO-based blockchain input selection, add the key `inputsSelection` with the value set to the [input selection structure.](https://developers.fireblocks.com/reference/transaction-objects#inputsselection) The inputs can be retrieved from the [Retrieve Unspent Inputs endpoint.](https://developers.fireblocks.com/reference/get_vault-accounts-vaultaccountid-assetid-unspent-inputs) + For UTXO-based blockchain input selection, add the key `inputsSelection` with the value set to the [input selection structure.](https://developers.fireblocks.com/reference/transaction-objects#inputsselection) The inputs can be retrieved from the [Retrieve Unspent Inputs endpoint.](https://developers.fireblocks.com/reference/getunspentinputs) For `RAW` operations, add the key `rawMessageData` with the value set to the [raw message data structure.](https://developers.fireblocks.com/reference/raw-signing-objects#rawmessagedata) @@ -37650,6 +39225,8 @@ components: providerResponse: key: "" matchedAlert: "{}" + providerResponse: + key: "" timestamp: 1753459111824 matchedPrescreeningRule: sourceId: "0" @@ -37671,12 +39248,12 @@ components: networkProtocol: ETH detailsMessage: Travel rule screening completed successfully externalId: aml_screening_12345 - bypassReason: BELOW_THRESHOLD - extendedRisk: LOW + bypassReason: UNSUPPORTED_ASSET + extendedRisk: lowRisk customerRefId: customer_ref_789 customerShortName: ACME Corp verdict: PASS - risk: LOW + risk: lowRisk refId: ref_12345 category: EXCHANGE screeningStatus: COMPLETED @@ -37966,6 +39543,8 @@ components: providerResponse: key: "" matchedAlert: "{}" + providerResponse: + key: "" timestamp: 1753459111824 matchedPrescreeningRule: sourceId: "0" @@ -37987,12 +39566,12 @@ components: networkProtocol: ETH detailsMessage: Travel rule screening completed successfully externalId: aml_screening_12345 - bypassReason: BELOW_THRESHOLD - extendedRisk: LOW + bypassReason: UNSUPPORTED_ASSET + extendedRisk: lowRisk customerRefId: customer_ref_789 customerShortName: ACME Corp verdict: PASS - risk: LOW + risk: lowRisk refId: ref_12345 category: EXCHANGE screeningStatus: COMPLETED @@ -38060,6 +39639,8 @@ components: providerResponse: key: "" matchedAlert: "{}" + providerResponse: + key: "" timestamp: 1753459111824 matchedPrescreeningRule: sourceId: "0" @@ -38081,12 +39662,12 @@ components: networkProtocol: ETH detailsMessage: Travel rule screening completed successfully externalId: aml_screening_12345 - bypassReason: BELOW_THRESHOLD - extendedRisk: LOW + bypassReason: UNSUPPORTED_ASSET + extendedRisk: lowRisk customerRefId: customer_ref_789 customerShortName: ACME Corp verdict: PASS - risk: LOW + risk: lowRisk refId: ref_12345 category: EXCHANGE screeningStatus: COMPLETED @@ -38155,6 +39736,8 @@ components: providerResponse: key: "" matchedAlert: "{}" + providerResponse: + key: "" timestamp: 1753459111824 matchedPrescreeningRule: sourceId: "0" @@ -38176,12 +39759,12 @@ components: networkProtocol: ETH detailsMessage: Travel rule screening completed successfully externalId: aml_screening_12345 - bypassReason: BELOW_THRESHOLD - extendedRisk: LOW + bypassReason: UNSUPPORTED_ASSET + extendedRisk: lowRisk customerRefId: customer_ref_789 customerShortName: ACME Corp verdict: PASS - risk: LOW + risk: lowRisk refId: ref_12345 category: EXCHANGE screeningStatus: COMPLETED @@ -38236,9 +39819,9 @@ components: \ transaction at your Fireblocks workspace." type: string assetId: - description: "The ID of the asset to transfer, for `TRANSFER`, `MINT`, `BURN`,\ - \ `ENABLE_ASSET`,`STAKE` ,`UNSTAKE` or `WITHDRAW` operations. [See the\ - \ list of supported assets and their IDs on Fireblocks.](https://developers.fireblocks.com/reference/get_supported-assets)" + description: "The ID of the asset to transfer for `TRANSFER`, `MINT`, `BURN`,\ + \ `ENABLE_ASSET`, or `STAKE` operations. [See the list of supported assets\ + \ and their IDs on Fireblocks](https://developers.fireblocks.com/reference/get_supported-assets)." type: string x-fb-entity: asset assetType: @@ -39787,6 +41370,8 @@ components: wallet_provider: Metamask confirmed: true url: https://example.com/uploaded_image.png + did: did:key:z6Mkf12345Zabcdef12345 + status: verified properties: type: description: "The type of ownership proof. Example values: - `eip-191`:\ @@ -39825,6 +41410,15 @@ components: \ types only). Example: `https://example.com/uploaded_image.png`" example: https://example.com/uploaded_image.png type: string + did: + description: The Decentralized Identifier (DID) associated with the ownership + proof. + example: did:key:z6Mkf12345Zabcdef12345 + type: string + status: + description: The status of the ownership proof verification. + example: verified + type: string confirmed: description: "Whether the user confirmed ownership of the wallet (for `self-declaration`\ \ proofs). Example: `true`" @@ -39843,6 +41437,8 @@ components: wallet_provider: Metamask confirmed: true url: https://example.com/uploaded_image.png + did: did:key:z6Mkf12345Zabcdef12345 + status: verified isNonCustodial: true beneficiaryRef: BEN654321 originator: @@ -40974,6 +42570,8 @@ components: wallet_provider: Metamask confirmed: true url: https://example.com/uploaded_image.png + did: did:key:z6Mkf12345Zabcdef12345 + status: verified originatorVASPdid: did:ethr:0x44957e75d6ce4a5bf37aae117da86422c848f7c2 beneficiaryDid: did:key:z6Mkf67890Zghijkl67890 beneficiaryVASPdid: did:ethr:0x17fe2dd11a2daa7f6c1fdf22532a4763f963aea6 @@ -41165,6 +42763,8 @@ components: wallet_provider: Metamask confirmed: true url: https://example.com/uploaded_image.png + did: did:key:z6Mkf12345Zabcdef12345 + status: verified isNonCustodial: true beneficiaryRef: BEN654321 originator: @@ -42296,6 +43896,8 @@ components: wallet_provider: Metamask confirmed: true url: https://example.com/uploaded_image.png + did: did:key:z6Mkf12345Zabcdef12345 + status: verified originatorVASPdid: did:ethr:0x44957e75d6ce4a5bf37aae117da86422c848f7c2 beneficiaryDid: did:key:z6Mkf67890Zghijkl67890 beneficiaryVASPdid: did:ethr:0x17fe2dd11a2daa7f6c1fdf22532a4763f963aea6 @@ -44332,6 +45934,8 @@ components: wallet_provider: Metamask confirmed: true url: https://example.com/uploaded_image.png + did: did:key:z6Mkf12345Zabcdef12345 + status: verified isNonCustodial: true beneficiaryRef: BEN654321 originator: @@ -45463,6 +47067,8 @@ components: wallet_provider: Metamask confirmed: true url: https://example.com/uploaded_image.png + did: did:key:z6Mkf12345Zabcdef12345 + status: verified originatorVASPdid: did:ethr:0x44957e75d6ce4a5bf37aae117da86422c848f7c2 beneficiaryDid: did:key:z6Mkf67890Zghijkl67890 beneficiaryVASPdid: did:ethr:0x17fe2dd11a2daa7f6c1fdf22532a4763f963aea6 @@ -45566,6 +47172,8 @@ components: wallet_provider: Metamask confirmed: true url: https://example.com/uploaded_image.png + did: did:key:z6Mkf12345Zabcdef12345 + status: verified isNonCustodial: true beneficiaryRef: BEN654321 originator: @@ -46697,6 +48305,8 @@ components: wallet_provider: Metamask confirmed: true url: https://example.com/uploaded_image.png + did: did:key:z6Mkf12345Zabcdef12345 + status: verified originatorVASPdid: did:ethr:0x44957e75d6ce4a5bf37aae117da86422c848f7c2 beneficiaryDid: did:key:z6Mkf67890Zghijkl67890 beneficiaryVASPdid: did:ethr:0x17fe2dd11a2daa7f6c1fdf22532a4763f963aea6 @@ -52430,6 +54040,191 @@ components: items: $ref: "#/components/schemas/Delegation" type: array + Position: + example: + availableActions: + - UNSTAKE + blockchainPositionInfo: + stakeAccountAddress: 3Ru67FyzMTcdENmmRL4Eve4dtPd6AdpuypR21q5EQCdq + chainDescriptor: SOL + amount: "0.05" + inProgress: true + inProgressTxId: c80601f4-d7b1-4795-a8ee-b09cdb5b450c + validatorAddress: FwR3PbjS5iyqzLiLugrBqKSa5EKZ4vK9SKs7eQXtT59f + vaultAccountId: "2" + dateUpdated: 2023-07-13T15:55:34.256Z + rewardsAmount: "0.000856038" + dateCreated: 2023-07-13T15:55:34.256Z + providerId: kiln + validatorName: FwR3P......tT59f + id: b70701f4-d7b1-4795-a8ee-b09cdb5b850a + providerName: Kiln + status: ACTIVE + properties: + id: + description: The unique identifier of the staking position + example: b70701f4-d7b1-4795-a8ee-b09cdb5b850a + type: string + vaultAccountId: + description: The source vault account to stake from + example: "2" + type: string + validatorName: + description: The destination validator address name + example: FwR3P......tT59f + type: string + providerName: + description: The destination validator provider name + example: Kiln + type: string + chainDescriptor: + description: The protocol identifier (e.g. "ETH"/ "SOL") to use + example: SOL + type: string + amount: + description: "Total value of the staking position. For Solana, Lido and\ + \ Ethereum (compounding validator): includes the original stake plus accumulated\ + \ rewards. For MATIC, Cosmos and Ethereum (legacy validator): refers to\ + \ the amount currently staked." + example: "0.05" + type: string + rewardsAmount: + description: "The amount staked in the position, measured in the staked\ + \ asset unit." + example: "0.000856038" + type: string + dateCreated: + description: When was the request made (ISO Date). + example: 2023-07-13T15:55:34.256Z + format: date-time + type: string + dateUpdated: + description: When has the position last changed (ISO Date). + example: 2023-07-13T15:55:34.256Z + format: date-time + type: string + status: + description: The current status. + enum: + - CREATING + - PENDING + - ACTIVATING + - ACTIVE + - DEACTIVATING + - DEACTIVATED + - WITHDRAWING + - WITHDRAWN + - MERGED + - CONSOLIDATED + - CANCELED + - FAILED + example: ACTIVE + type: string + validatorAddress: + description: The destination address of the staking transaction. + example: FwR3PbjS5iyqzLiLugrBqKSa5EKZ4vK9SKs7eQXtT59f + type: string + providerId: + $ref: "#/components/schemas/StakingProvider" + availableActions: + description: "An array of available actions that can be performed. for example,\ + \ actions like \"UNSTAKE\" or \"WITHDRAW\"." + example: + - UNSTAKE + items: + enum: + - UNSTAKE + - WITHDRAW + - ADD_TO_STAKE + - SPLIT + - MERGE + - CLAIM_REWARDS + - CONSOLIDATE + type: string + type: array + inProgress: + description: Indicates whether there is an ongoing action for this position + related to this request + example: true + type: boolean + inProgressTxId: + description: The transaction ID of the initial stake position request only. + Only present when there is an active initial stake transaction. + example: c80601f4-d7b1-4795-a8ee-b09cdb5b450c + type: string + blockchainPositionInfo: + $ref: "#/components/schemas/Delegation_blockchainPositionInfo" + required: + - amount + - availableActions + - blockchainPositionInfo + - chainDescriptor + - dateCreated + - dateUpdated + - id + - inProgress + - providerId + - providerName + - rewardsAmount + - status + - validatorAddress + - validatorName + - vaultAccountId + type: object + StakingPositionsPaginatedResponse: + example: + next: eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9 + data: + - availableActions: + - UNSTAKE + blockchainPositionInfo: + stakeAccountAddress: 3Ru67FyzMTcdENmmRL4Eve4dtPd6AdpuypR21q5EQCdq + chainDescriptor: SOL + amount: "0.05" + inProgress: true + inProgressTxId: c80601f4-d7b1-4795-a8ee-b09cdb5b450c + validatorAddress: FwR3PbjS5iyqzLiLugrBqKSa5EKZ4vK9SKs7eQXtT59f + vaultAccountId: "2" + dateUpdated: 2023-07-13T15:55:34.256Z + rewardsAmount: "0.000856038" + dateCreated: 2023-07-13T15:55:34.256Z + providerId: kiln + validatorName: FwR3P......tT59f + id: b70701f4-d7b1-4795-a8ee-b09cdb5b850a + providerName: Kiln + status: ACTIVE + - availableActions: + - UNSTAKE + blockchainPositionInfo: + stakeAccountAddress: 3Ru67FyzMTcdENmmRL4Eve4dtPd6AdpuypR21q5EQCdq + chainDescriptor: SOL + amount: "0.05" + inProgress: true + inProgressTxId: c80601f4-d7b1-4795-a8ee-b09cdb5b450c + validatorAddress: FwR3PbjS5iyqzLiLugrBqKSa5EKZ4vK9SKs7eQXtT59f + vaultAccountId: "2" + dateUpdated: 2023-07-13T15:55:34.256Z + rewardsAmount: "0.000856038" + dateCreated: 2023-07-13T15:55:34.256Z + providerId: kiln + validatorName: FwR3P......tT59f + id: b70701f4-d7b1-4795-a8ee-b09cdb5b850a + providerName: Kiln + status: ACTIVE + properties: + data: + description: The data of the current page of staking positions + items: + $ref: "#/components/schemas/Position" + type: array + next: + description: The cursor for the next page + example: eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9 + nullable: true + type: string + required: + - data + type: object AmountAndChainDescriptor: example: chainDescriptor: ETH @@ -52588,12 +54383,98 @@ components: items: $ref: "#/components/schemas/Provider" type: array - BaseProvider: + ManifestBase: + description: Base manifest schema with common properties + properties: + supported: + description: Indicates whether the endpoint is supported by the provider + type: boolean + required: + - supported + type: object + SettlementTypeEnum: + description: Settlement type supported by the provider + enum: + - DVP + - PREFUNDED + type: string + ExecutionRequestDetailsType: + description: Execution type supported by the provider + enum: + - QUOTE + - MARKET + type: string + ManifestOrderInfo: + description: Defines requirements for the POST /orders endpoint. + properties: + settlementTypes: + description: | + Supported settlement types when creating an order. + If present - settlement is required. If absent - no need to provide settlement. + items: + $ref: "#/components/schemas/SettlementTypeEnum" + type: array + executionTypes: + description: Supported execution types when creating an order. + items: + $ref: "#/components/schemas/ExecutionRequestDetailsType" + type: array + required: + - executionTypes + type: object + ManifestOrder: + allOf: + - $ref: "#/components/schemas/ManifestBase" + - $ref: "#/components/schemas/ManifestOrderInfo" + DVPSettlementType: + enum: + - DVP + type: string + ManifestQuoteInfo: + description: Defines requirements for the POST /quotes endpoint. + properties: + settlementTypes: + description: | + Supported settlement types when requesting a quote. + If present - settlement is required. If absent - no need to provide settlement. + items: + $ref: "#/components/schemas/DVPSettlementType" + type: array + type: object + ManifestQuote: + allOf: + - $ref: "#/components/schemas/ManifestBase" + - $ref: "#/components/schemas/ManifestQuoteInfo" + Manifest: + description: "The manifest of the provider, describing its supported order,\ + \ quote, and rate requirements." example: - id: prov_7b4e2d9f1c8a5e3b - name: Global Exchange Partners - logo: https://example.com/logos/global-exchange-partners.png - accountBased: false + order: + supported: true + executionTypes: + - MARKET + - QUOTE + settlementTypes: + - DVP + quote: + supported: true + settlementTypes: + - DVP + rate: + supported: true + properties: + order: + $ref: "#/components/schemas/ManifestOrder" + quote: + $ref: "#/components/schemas/ManifestQuote" + rate: + $ref: "#/components/schemas/ManifestBase" + required: + - order + - quote + - rate + type: object + BaseProvider: properties: id: description: Unique identifier for the provider @@ -52608,44 +54489,14 @@ components: description: Indicates whether the provider access model is through accounts or directly type: boolean + manifest: + $ref: "#/components/schemas/Manifest" required: - accountBased - id + - manifest - name type: object - AssetTypeEnum: - enum: - - DIGITAL - - FIAT - type: string - Capability: - enum: - - WITHDRAWALS - - DEPOSITS - - TRADING - example: TRADING - type: string - Manifest: - example: - assetTypes: - - DIGITAL - - FIAT - capabilities: - - SPOT_TRADING - - LIMIT_ORDERS - properties: - assetTypes: - items: - $ref: "#/components/schemas/AssetTypeEnum" - type: array - capabilities: - items: - $ref: "#/components/schemas/Capability" - type: array - required: - - assetTypes - - capabilities - type: object AccountBase: example: id: acc_9f4e2d8b1c6a5e73 @@ -52661,10 +54512,8 @@ components: - id - name type: object - AccountBasedAccessProviderDetails: + AccountBasedAccessProviderInfo: properties: - manifest: - $ref: "#/components/schemas/Manifest" connected: description: Whether the provider is currently connected type: boolean @@ -52673,31 +54522,34 @@ components: $ref: "#/components/schemas/AccountBase" type: array required: - - accountBased + - accounts - connected - - manifest type: object AccountBasedAccessProvider: allOf: - $ref: "#/components/schemas/BaseProvider" - - $ref: "#/components/schemas/AccountBasedAccessProviderDetails" + - $ref: "#/components/schemas/AccountBasedAccessProviderInfo" example: - id: prov_9a2c4e8f7b1d3a6e - name: Premium Trading Co - logo: https://example.com/logos/premium-trading-co.png + id: BRIDGE + name: Bridge + logo: https://example.com/logos/bridge.png accountBased: true manifest: - assetTypes: - - DIGITAL - - FIAT - capabilities: - - SPOT_TRADING + order: + supported: true + executionTypes: + - MARKET + settlementTypes: + - DVP + quote: + supported: false + rate: + supported: true connected: true accounts: - - id: acc_5f8e2d9c1a7b4e36 - name: Trading Account 1 - description: Primary trading account - DirectAccessProviderDetails: + - id: acc_5e9a2d1c4b7f3e8a + name: Main Trading Account + DirectAccessProviderInfo: properties: approved: description: Whether the provider was approved for use @@ -52708,22 +54560,38 @@ components: termsOfServiceUrl: description: URL to the terms of service document type: string + privacyPolicyUrl: + description: URL to the privacy policy document + type: string required: - - accountBased - hasTermsOfService type: object DirectAccessProvider: allOf: - $ref: "#/components/schemas/BaseProvider" - - $ref: "#/components/schemas/DirectAccessProviderDetails" + - $ref: "#/components/schemas/DirectAccessProviderInfo" example: - id: prov_2f8e1d9b4c7a5e3f - name: DirectTrade Solutions - logo: https://example.com/logos/directtrade-solutions.png + id: UNISWAP_CLASSIC + name: Uniswap Classic + logo: https://example.com/logos/uniswap.png accountBased: false + manifest: + order: + supported: true + executionTypes: + - MARKET + - QUOTE + settlementTypes: + - DVP + quote: + supported: true + settlementTypes: + - DVP + rate: + supported: true approved: true hasTermsOfService: true - termsOfServiceUrl: https://directtrade.example.com/terms + termsOfServiceUrl: https://uniswap.org/terms TradingProvider: oneOf: - $ref: "#/components/schemas/AccountBasedAccessProvider" @@ -52731,25 +54599,40 @@ components: ProvidersListResponse: example: data: - - id: bridge-provider-001 - name: Bridge Provider + - id: BRIDGE + name: Bridge logo: https://example.com/logos/bridge.png accountBased: true manifest: - assetTypes: - - DIGITAL - - FIAT - capabilities: - - TRADING - - WITHDRAWALS + order: + supported: true + executionTypes: + - MARKET + settlementTypes: + - DVP + quote: + supported: false + rate: + supported: true connected: true accounts: - - id: acc_9f4e2d8b1c6a5e73 + - id: acc_5e9a2d1c4b7f3e8a name: Main Trading Account - - id: uniswap-v3-provider - name: Uniswap V3 + - 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 @@ -52786,6 +54669,58 @@ 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: @@ -52836,10 +54771,6 @@ components: - CHAPS example: BLOCKCHAIN type: string - DVPSettlementType: - enum: - - DVP - type: string PlatformPeerType: enum: - VAULT_ACCOUNT @@ -54904,6 +56835,9 @@ components: - value type: object InteracAddress: + description: |- + When true, funds are deposited directly into the recipient's bank account without a security question. + When false, a security question and answer are required to complete the transfer example: accountHolder: name: John Smith @@ -54916,6 +56850,7 @@ components: type: EMAIL value: john.smith@email.com message: Please deposit the funds into the account + autoDeposit: true securityQuestion: What is your mother's maiden name? securityAnswer: Jane Smith properties: @@ -54927,8 +56862,21 @@ components: description: The message to be sent to the recipient example: Please deposit the funds into the account type: string + autoDeposit: + description: Whether to automatically deposit the funds into the account + example: true + type: boolean + securityQuestion: + description: The security question to be used for the security answer + example: What is your mother's maiden name? + type: string + securityAnswer: + description: The security answer to be used for the security question + example: Jane Smith + type: string required: - accountHolder + - autoDeposit - recipientHandle type: object InteracDestination: @@ -55379,6 +57327,7 @@ components: - APECHAIN_TEST - CRONOS - CRONOS_TEST + - ROBINHOOD_CHAIN_TESTNET_TEST type: string description: type: string @@ -55546,6 +57495,7 @@ components: - APECHAIN_TEST - CRONOS - CRONOS_TEST + - ROBINHOOD_CHAIN_TESTNET_TEST type: string description: type: string @@ -55651,6 +57601,7 @@ components: - APECHAIN_TEST - CRONOS - CRONOS_TEST + - ROBINHOOD_CHAIN_TESTNET_TEST type: string contractAddress: description: Collection contract standard @@ -56017,8 +57968,10 @@ components: required: - approve type: object - AddressRegistryLegalEntity: - description: Legal entity resolved for an address-registry lookup + 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 @@ -56043,20 +57996,229 @@ components: - countryCode type: object AddressRegistryError: - description: Error body for address-registry 4xx and 5xx. + description: Error body for address registry operations (4xx and 5xx). example: - code: 0 - message: message + code: 2140 + message: Address registry opt-in required for this workspace. properties: code: - description: "Numeric error code (2140–2143) for 403, 404 and 5xx responses." + 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: + - TRAVEL_RULE_PROVIDER_NOTABENE + - TRAVEL_RULE_PROVIDER_SYGNA + - TRAVEL_RULE_PROVIDER_TRISA + - TRAVEL_RULE_PROVIDER_OPENVASP + example: TRAVEL_RULE_PROVIDER_NOTABENE + type: string + AddressRegistryLegalEntity: + description: Legal entity details for a blockchain address. + example: + lei: 254900GC33RBE6FQA817 + entityName: ACME Corporation + jurisdiction: US + verified: true + travelRuleProviders: + - TRAVEL_RULE_PROVIDER_NOTABENE + - TRAVEL_RULE_PROVIDER_SYGNA + email: compliance@example.com + properties: + verified: + description: Whether the entity was resolved from verified public registry + data (e.g. LEI sources). + example: true + type: boolean + entityName: + description: Legal entity display name. + example: ACME Corporation + type: string + jurisdiction: + description: Jurisdiction (e.g. ISO 3166-1 alpha-2 country code). + example: US + type: string + lei: + description: Legal Entity Identifier when available; may be empty when unverified. + example: 254900GC33RBE6FQA817 + type: string + travelRuleProviders: + example: + - TRAVEL_RULE_PROVIDER_NOTABENE + - TRAVEL_RULE_PROVIDER_SYGNA + items: + $ref: "#/components/schemas/AddressRegistryTravelRuleProvider" + type: array + email: + description: Travel Rule contact email when available. + example: compliance@example.com + type: string + required: + - email + - entityName + - jurisdiction + - lei + - travelRuleProviders + - verified + type: object + AddressRegistryTenantRegistryResponse: + description: "Workspace participation in the address registry. Same shape for\ + \ GET, POST (opt in), and DELETE (opt out)." + example: + status: OPTED_IN + properties: + status: + description: OPTED_IN or OPTED_OUT. + enum: + - OPTED_IN + - OPTED_OUT + example: OPTED_IN + type: string + required: + - status + type: object + AddressRegistryVaultListOrder: + default: VAULT_OPT_OUT_LIST_ORDER_ASC + description: Sort order for the vault opt-out list by vault account id (ascending + is the default when omitted). + enum: + - VAULT_OPT_OUT_LIST_ORDER_ASC + - VAULT_OPT_OUT_LIST_ORDER_DESC + example: VAULT_OPT_OUT_LIST_ORDER_ASC + type: string + AddressRegistryVaultOptOutItem: + description: A vault account excluded from the address registry for your workspace. + properties: + vaultAccountId: + description: Vault account ID. + example: 10001 + format: int32 + type: integer + required: + - vaultAccountId + type: object + AddressRegistryListVaultOptOutsResponse: + example: + next: eyJvZmZzZXQiOjEwLCJwYWdlU2l6ZSI6MTB9 + total: 2 + data: + - vaultAccountId: 10001 + - vaultAccountId: 10002 + prev: "" + properties: + total: + description: Total number of vault accounts excluded from the address registry + for your workspace. + example: 2 + format: int32 + type: integer + data: + example: + - vaultAccountId: 10001 + - vaultAccountId: 10002 + items: + $ref: "#/components/schemas/AddressRegistryVaultOptOutItem" + type: array + next: + description: Opaque cursor for the next page; empty when there is no next + page. + example: eyJvZmZzZXQiOjEwLCJwYWdlU2l6ZSI6MTB9 + type: string + prev: + description: Opaque cursor for the previous page; empty when there is no + previous page. + example: "" + type: string + required: + - data + - total + type: object + AddressRegistryAddVaultOptOutsRequest: + example: + vaultAccountIds: + - 10001 + - "10002" + properties: + vaultAccountIds: + description: | + Vault account ids to add to the opt-out list (non-empty). Each element may be a JSON number or a decimal string; both forms are accepted. + example: + - 10001 + - "10002" + items: + $ref: "#/components/schemas/AddressRegistryAddVaultOptOutsRequest_vaultAccountIds_inner" + minItems: 1 + type: array + required: + - vaultAccountIds + type: object + AddressRegistryAddVaultOptOutsResponse: + description: Result of adding vault account ids to the workspace opt-out list + for the address registry. + example: + acceptedCount: 3 + properties: + acceptedCount: + description: "Number of vault ids from the request that were processed.\ + \ An empty `vaultAccountIds` list is rejected with HTTP 400, not a 200\ + \ with zero." + example: 3 + format: int32 + type: integer + required: + - acceptedCount + type: object + AddressRegistryRemoveAllVaultOptOutsResponse: + description: Result of clearing all vault-level opt-outs for the address registry + on this workspace. + example: + removedCount: 5 + properties: + removedCount: + description: Number of opt-out rows deleted (0 if none existed). + example: 5 + format: int32 + type: integer + required: + - removedCount + type: object + AddressRegistryGetVaultOptOutResponse: + description: Whether the given vault account is excluded from the address registry + for your workspace. + example: + optedOut: false + properties: + optedOut: + description: | + `true` if this vault account is excluded from the address registry; `false` if it is not excluded. + example: false + type: boolean + required: + - optedOut + type: object + AddressRegistryRemoveVaultOptOutResponse: + description: Body after removing one vault from the opt-out list; same fields + as GET for that vault (`optedOut` is false). + example: + optedOut: false + properties: + optedOut: + description: Always false after a successful remove — the vault is not on + the opt-out list. + example: false + type: boolean + required: + - optedOut + type: object TravelRuleNotationEnum: items: enum: @@ -57440,6 +59602,8 @@ components: wallet_provider: Metamask confirmed: true url: https://example.com/uploaded_image.png + did: did:key:z6Mkf12345Zabcdef12345 + status: verified isNonCustodial: true transactionAsset: BTC beneficiaryRef: BEN654321 @@ -59191,6 +61355,8 @@ components: wallet_provider: Metamask confirmed: true url: https://example.com/uploaded_image.png + did: did:key:z6Mkf12345Zabcdef12345 + status: verified originatorVASPdid: did:ethr:0x44957e75d6ce4a5bf37aae117da86422c848f7c2 beneficiaryDid: did:key:z6Mkf67890Zghijkl67890 beneficiaryVASPdid: did:ethr:0x17fe2dd11a2daa7f6c1fdf22532a4763f963aea6 @@ -60284,7 +62450,9 @@ components: $ref: "#/components/schemas/PolicyVerdictActionEnum-2" type: object ScreeningAmlResult: + deprecated: true description: | + Deprecated: This field is not currently returned in the API response. Detailed AML screening result information. Contains alerts, risk scores, and other AML-specific data from provider-specific responses. example: @@ -60378,7 +62546,9 @@ components: $ref: "#/components/schemas/TravelRuleVerdictEnum" type: object ScreeningTravelRuleResult: + deprecated: true description: | + Deprecated: This field is not currently returned in the API response. Detailed Travel Rule screening result containing provider-specific data. Contains Travel Rule specific information like verified status, rule type, and actions. example: @@ -60563,6 +62733,8 @@ components: providerResponse: key: "" matchedAlert: "{}" + providerResponse: + key: "" timestamp: 1753459111824 matchedPrescreeningRule: sourceId: "0" @@ -60584,12 +62756,12 @@ components: networkProtocol: ETH detailsMessage: Travel rule screening completed successfully externalId: aml_screening_12345 - bypassReason: BELOW_THRESHOLD - extendedRisk: LOW + bypassReason: UNSUPPORTED_ASSET + extendedRisk: lowRisk customerRefId: customer_ref_789 customerShortName: ACME Corp verdict: PASS - risk: LOW + risk: lowRisk refId: ref_12345 category: EXCHANGE screeningStatus: COMPLETED @@ -60601,7 +62773,7 @@ components: description: | The AML/Travel Rule provider name. For AML: ELLIPTIC, CHAINALYSIS, etc. - For Travel Rule: NOTABENE, SUMSUB, or any TRLink provider name + For Travel Rule: NOTABENE, SUMSUB, GTR, or any TRLink provider name example: NOTABENE type: string payload: @@ -60630,24 +62802,43 @@ components: bypassReason: description: | Reason for bypassing the screening, if applicable. - For AML: SANCTIONS_SCREENING_BYPASS, SANCTIONS_RECIPIENT_BYPASS, etc. - For Travel Rule: BELOW_THRESHOLD, NO_TRM_AVAILABLE, etc. - example: BELOW_THRESHOLD + For AML: UNSUPPORTED_ASSET, PASSED_BY_POLICY. + For Travel Rule: UNSUPPORTED_ASSET, NO_TRAVEL_RULE_MESSAGE, TRANSACTION_ZERO_AMOUNT. + example: UNSUPPORTED_ASSET type: string status: $ref: "#/components/schemas/AmlStatusEnum" prevStatus: $ref: "#/components/schemas/AmlStatusEnum" prevBypassReason: - description: Previous bypass reason before the current bypass reason change + deprecated: true + description: | + Deprecated: This field is not currently returned in the API response. + Previous bypass reason before the current bypass reason change. example: BELOW_THRESHOLD type: string verdict: $ref: "#/components/schemas/ScreeningVerdictEnum" risk: - $ref: "#/components/schemas/ScreeningRiskLevelEnum" + description: | + Risk level assessment for screening results. + Values vary by provider and are not managed by this service. + + Known values by provider: + - Chainalysis: severeRisk, highRisk, mediumRisk, lowRisk, noRiskInfo + - Elliptic: noRiskDetected + + Legacy values (SCREAMING_SNAKE_CASE, may appear in old transactions): + VERY_HIGH, SEVERE, HIGH, MEDIUM, LOW, NO_RISK_INFO, UNKNOWN + example: lowRisk + type: string extendedRisk: - $ref: "#/components/schemas/ScreeningRiskLevelEnum" + deprecated: true + description: | + Deprecated: This field is not currently returned in the API response. + Use risk instead. + example: lowRisk + type: string externalId: description: External identifier for the screening (provider-specific) example: aml_screening_12345 @@ -60657,7 +62848,10 @@ components: example: customer_ref_789 type: string refId: - description: Internal reference identifier + deprecated: true + description: | + Deprecated: This field is not currently returned in the API response. + Internal reference identifier. example: ref_12345 type: string category: @@ -60680,11 +62874,17 @@ components: example: memo_12345 type: string destRecordId: - description: The destination record identifier used by the screening provider + deprecated: true + description: | + Deprecated: This field is not currently returned in the API response. + The destination record identifier used by the screening provider. example: record_001 type: string addressResolutionSignature: - description: Cryptographic signature for address resolution verification + deprecated: true + description: | + Deprecated: This field is not currently returned in the API response. + Cryptographic signature for address resolution verification. example: 0x1234567890abcdef type: string amlResult: @@ -60726,6 +62926,19 @@ components: providers example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 type: string + providerResponse: + additionalProperties: true + description: | + Complete response from the screening provider. This is a dynamic object that varies + significantly between different providers (Chainalysis, Elliptic, NOTABENE, etc.). + Each provider has their own proprietary response format and schema. + + For AML providers: Contains risk scores, alerts, entity information + For Travel Rule providers: Contains VASP information, PII data, protocol-specific fields + + The structure is provider-dependent and cannot be standardized as each + vendor implements their own proprietary data models and response formats. + type: object type: object AmlRegistrationResultFullPayload: description: The results of the AML address registration. @@ -61349,6 +63562,8 @@ components: providerResponse: key: "" matchedAlert: "{}" + providerResponse: + key: "" timestamp: 1753459111824 matchedPrescreeningRule: sourceId: "0" @@ -61370,12 +63585,12 @@ components: networkProtocol: ETH detailsMessage: Travel rule screening completed successfully externalId: aml_screening_12345 - bypassReason: BELOW_THRESHOLD - extendedRisk: LOW + bypassReason: UNSUPPORTED_ASSET + extendedRisk: lowRisk customerRefId: customer_ref_789 customerShortName: ACME Corp verdict: PASS - risk: LOW + risk: lowRisk refId: ref_12345 category: EXCHANGE screeningStatus: COMPLETED @@ -61665,6 +63880,8 @@ components: providerResponse: key: "" matchedAlert: "{}" + providerResponse: + key: "" timestamp: 1753459111824 matchedPrescreeningRule: sourceId: "0" @@ -61686,12 +63903,12 @@ components: networkProtocol: ETH detailsMessage: Travel rule screening completed successfully externalId: aml_screening_12345 - bypassReason: BELOW_THRESHOLD - extendedRisk: LOW + bypassReason: UNSUPPORTED_ASSET + extendedRisk: lowRisk customerRefId: customer_ref_789 customerShortName: ACME Corp verdict: PASS - risk: LOW + risk: lowRisk refId: ref_12345 category: EXCHANGE screeningStatus: COMPLETED @@ -61759,6 +63976,8 @@ components: providerResponse: key: "" matchedAlert: "{}" + providerResponse: + key: "" timestamp: 1753459111824 matchedPrescreeningRule: sourceId: "0" @@ -61780,12 +63999,12 @@ components: networkProtocol: ETH detailsMessage: Travel rule screening completed successfully externalId: aml_screening_12345 - bypassReason: BELOW_THRESHOLD - extendedRisk: LOW + bypassReason: UNSUPPORTED_ASSET + extendedRisk: lowRisk customerRefId: customer_ref_789 customerShortName: ACME Corp verdict: PASS - risk: LOW + risk: lowRisk refId: ref_12345 category: EXCHANGE screeningStatus: COMPLETED @@ -61854,6 +64073,8 @@ components: providerResponse: key: "" matchedAlert: "{}" + providerResponse: + key: "" timestamp: 1753459111824 matchedPrescreeningRule: sourceId: "0" @@ -61875,12 +64096,12 @@ components: networkProtocol: ETH detailsMessage: Travel rule screening completed successfully externalId: aml_screening_12345 - bypassReason: BELOW_THRESHOLD - extendedRisk: LOW + bypassReason: UNSUPPORTED_ASSET + extendedRisk: lowRisk customerRefId: customer_ref_789 customerShortName: ACME Corp verdict: PASS - risk: LOW + risk: lowRisk refId: ref_12345 category: EXCHANGE screeningStatus: COMPLETED @@ -62436,6 +64657,7 @@ components: example: partnerIdent: sumsub customerId: 550e8400-e29b-41d4-a716-446655440001 + customerIntegrationId: 660e8400-e29b-41d4-a716-446655440099 properties: customerId: description: Customer unique identifier @@ -62447,6 +64669,16 @@ components: )" example: sumsub type: string + customerIntegrationId: + description: "Optional. When supplied and permitted for the tenant (feature\ + \ flag / CSM arrangement), this value is used as the TRLink integration\ + \ identifier instead of a server-generated UUID. If omitted, the API generates\ + \ a UUID. If supplied when the tenant is not permitted to set a custom\ + \ id, the request fails with 400. Contact your CSM if you need a custom\ + \ integration id." + example: 660e8400-e29b-41d4-a716-446655440099 + format: uuid + type: string required: - customerId - partnerIdent @@ -69606,6 +71838,8 @@ components: - AUDITOR - NCW_ADMIN - NCW_SIGNER + - SECURITY_ADMIN + - SECURITY_AUDITOR type: string UserEnabled: description: Whether the user is enabled @@ -71289,6 +73523,319 @@ components: - status - type type: object + LeiStatus: + description: Approval status of a legal entity registration + enum: + - PENDING + - APPROVED + - DENIED + - REVOKED + type: string + TravelRuleProvider: + description: Travel rule compliance provider + enum: + - CODE + - GTR + - MY_OWN + - NOTABENE + - SYGNA + - SUMSUB + - TRISA + - TRUST + - TWENTY_ONE_ANALYTICS + - VERIFY_VASP + type: string + GleifData: + description: GLEIF (Global Legal Entity Identifier Foundation) data for a legal + entity + example: + legalName: Example Corporation Ltd. + lei: 529900HNOAA1KXQJUQ27 + otherNames: + - ExCorp + - Example Corp + legalAddressRegion: NY + nextRenewalDate: 2025-12-31T00:00:00Z + legalAddressCountry: US + properties: + lei: + description: Legal Entity Identifier (LEI) code + example: 529900HNOAA1KXQJUQ27 + type: string + legalName: + description: Official legal name of the entity + example: Example Corporation Ltd. + type: string + otherNames: + description: Alternative names for the entity + example: + - ExCorp + - Example Corp + items: + type: string + maxItems: 20 + minItems: 0 + type: array + legalAddressRegion: + description: Region or state of the legal address + example: NY + type: string + legalAddressCountry: + description: Country code of the legal address (ISO 3166-1 alpha-2) + example: US + type: string + nextRenewalDate: + description: Date when the LEI registration must be renewed + example: 2025-12-31T00:00:00Z + format: date-time + type: string + required: + - legalAddressCountry + - legalName + - lei + type: object + LegalEntityRegistration: + description: Legal entity registration record + example: + gleifData: + legalName: Example Corporation Ltd. + lei: 529900HNOAA1KXQJUQ27 + otherNames: + - ExCorp + - Example Corp + legalAddressRegion: NY + nextRenewalDate: 2025-12-31T00:00:00Z + legalAddressCountry: US + lei: 529900HNOAA1KXQJUQ27 + createdAt: "1700000000000" + isDefault: false + travelRuleContactEmail: compliance@example.com + id: 550e8400-e29b-41d4-a716-446655440000 + travelRuleProviders: + - MY_OWN + status: PENDING + updatedAt: "1700000000000" + properties: + id: + description: Unique registration identifier + example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid + type: string + lei: + description: Legal Entity Identifier (LEI) code + example: 529900HNOAA1KXQJUQ27 + type: string + status: + $ref: "#/components/schemas/LeiStatus" + isDefault: + description: Whether this is the default legal entity for the workspace + example: false + type: boolean + travelRuleProviders: + description: Travel rule providers configured for this registration + example: + - MY_OWN + items: + $ref: "#/components/schemas/TravelRuleProvider" + maxItems: 20 + minItems: 0 + type: array + travelRuleContactEmail: + description: Contact email for travel rule communications + example: compliance@example.com + format: email + type: string + gleifData: + $ref: "#/components/schemas/GleifData" + createdAt: + description: Creation timestamp in milliseconds since epoch + example: "1700000000000" + type: string + updatedAt: + description: Last update timestamp in milliseconds since epoch + example: "1700000000000" + type: string + required: + - createdAt + - id + - isDefault + - lei + - status + - tenantId + - travelRuleProviders + - updatedAt + type: object + ListLegalEntitiesResponse: + description: Paginated response containing a list of legal entity registrations + example: + next: eyJpZCI6IjEyMyJ9 + total: 5 + data: + - gleifData: + legalName: Example Corporation Ltd. + lei: 529900HNOAA1KXQJUQ27 + otherNames: + - ExCorp + - Example Corp + legalAddressRegion: NY + nextRenewalDate: 2025-12-31T00:00:00Z + legalAddressCountry: US + lei: 529900HNOAA1KXQJUQ27 + createdAt: "1700000000000" + isDefault: false + travelRuleContactEmail: compliance@example.com + id: 550e8400-e29b-41d4-a716-446655440000 + travelRuleProviders: + - MY_OWN + status: PENDING + updatedAt: "1700000000000" + - gleifData: + legalName: Example Corporation Ltd. + lei: 529900HNOAA1KXQJUQ27 + otherNames: + - ExCorp + - Example Corp + legalAddressRegion: NY + nextRenewalDate: 2025-12-31T00:00:00Z + legalAddressCountry: US + lei: 529900HNOAA1KXQJUQ27 + createdAt: "1700000000000" + isDefault: false + travelRuleContactEmail: compliance@example.com + id: 550e8400-e29b-41d4-a716-446655440000 + travelRuleProviders: + - MY_OWN + status: PENDING + updatedAt: "1700000000000" + prev: eyJpZCI6IjEyMCJ9 + properties: + total: + description: Total number of legal entity registrations (optional) + example: 5 + type: integer + data: + description: Legal entity registrations for the current page + items: + $ref: "#/components/schemas/LegalEntityRegistration" + type: array + next: + 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 + RegisterLegalEntityRequest: + description: Request body to register a new legal entity + example: + lei: 529900HNOAA1KXQJUQ27 + travelRuleContactEmail: compliance@example.com + travelRuleProviders: + - MY_OWN + properties: + lei: + description: Legal Entity Identifier (LEI) code to register. Must be a valid + 20-character LEI present in the GLEIF registry. + example: 529900HNOAA1KXQJUQ27 + type: string + travelRuleProviders: + description: Travel rule providers to associate with this registration + example: + - MY_OWN + items: + $ref: "#/components/schemas/TravelRuleProvider" + type: array + travelRuleContactEmail: + description: Contact email for travel rule communications + example: compliance@example.com + format: email + type: string + required: + - lei + type: object + UpdateLegalEntityRequest: + example: + isDefault: true + properties: + isDefault: + description: Whether to set this registration as the workspace default + type: boolean + required: + - isDefault + type: object + ListVaultsForRegistrationResponse: + description: Response containing vault account IDs assigned to a legal entity + registration + example: + next: eyJpZCI6IjEyMyJ9 + total: 5 + data: + - "23" + - "12" + - "1" + prev: eyJpZCI6IjEyMCJ9 + properties: + total: + description: Total number of legal entity registrations (optional) + example: 5 + type: integer + data: + description: List of vault account IDs assigned to the legal entity registration + example: + - "23" + - "12" + - "1" + items: + type: string + type: array + next: + 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 + AssignVaultsToLegalEntityRequest: + description: Request body to assign vault accounts to a legal entity + example: + vaultAccountIds: + - "0" + - "1" + - "2" + properties: + vaultAccountIds: + description: List of vault account IDs to assign to the legal entity + example: + - "0" + - "1" + - "2" + items: + type: string + minItems: 1 + type: array + required: + - vaultAccountIds + type: object + AssignVaultsToLegalEntityResponse: + description: Response after assigning vault accounts to a legal entity + example: + assignedCount: 3 + properties: + assignedCount: + description: Number of vault accounts successfully assigned + example: 3 + type: integer + required: + - assignedCount + type: object get_filter_parameter: properties: id: @@ -71725,6 +74272,13 @@ components: allOf: - $ref: "#/components/schemas/FiatDestination" - $ref: "#/components/schemas/FiatPaymentMetadata" + AddressRegistryAddVaultOptOutsRequest_vaultAccountIds_inner: + oneOf: + - example: 10001 + format: int32 + type: integer + - example: "10001" + type: string SetOtaStatusResponse_oneOf: example: message: No change needed. The current status is false diff --git a/build.gradle b/build.gradle index c2543c89..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 = '15.0.0' +version = '0.0.0' buildscript { repositories { diff --git a/docs/AccountBasedAccessProvider.md b/docs/AccountBasedAccessProvider.md index 4273f56f..9b20a27b 100644 --- a/docs/AccountBasedAccessProvider.md +++ b/docs/AccountBasedAccessProvider.md @@ -13,7 +13,7 @@ |**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) | | [optional] | +|**accounts** | [**List<AccountBase>**](AccountBase.md) | | | diff --git a/docs/AccountBasedAccessProviderDetails.md b/docs/AccountBasedAccessProviderInfo.md similarity index 71% rename from docs/AccountBasedAccessProviderDetails.md rename to docs/AccountBasedAccessProviderInfo.md index 2375ca00..7afe8eb5 100644 --- a/docs/AccountBasedAccessProviderDetails.md +++ b/docs/AccountBasedAccessProviderInfo.md @@ -1,15 +1,14 @@ -# AccountBasedAccessProviderDetails +# AccountBasedAccessProviderInfo ## Properties | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**manifest** | [**Manifest**](Manifest.md) | | | |**connected** | **Boolean** | Whether the provider is currently connected | | -|**accounts** | [**List<AccountBase>**](AccountBase.md) | | [optional] | +|**accounts** | [**List<AccountBase>**](AccountBase.md) | | | diff --git a/docs/AccountBasedProviderDetails.md b/docs/AccountBasedProviderDetails.md new file mode 100644 index 00000000..27ee28ca --- /dev/null +++ b/docs/AccountBasedProviderDetails.md @@ -0,0 +1,19 @@ + + +# 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/AddressRegistryAddVaultOptOutsRequest.md b/docs/AddressRegistryAddVaultOptOutsRequest.md new file mode 100644 index 00000000..a25c209b --- /dev/null +++ b/docs/AddressRegistryAddVaultOptOutsRequest.md @@ -0,0 +1,13 @@ + + +# AddressRegistryAddVaultOptOutsRequest + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**vaultAccountIds** | [**List<AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner>**](AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner.md) | Vault account ids to add to the opt-out list (non-empty). Each element may be a JSON number or a decimal string; both forms are accepted. | | + + + diff --git a/docs/AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner.md b/docs/AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner.md new file mode 100644 index 00000000..137380b0 --- /dev/null +++ b/docs/AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner.md @@ -0,0 +1,37 @@ + + +# AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner + +## oneOf schemas +* [Integer](Integer.md) +* [String](String.md) + +## Example +```java +// Import classes: +import com.fireblocks.sdk.model.AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner; +import com.fireblocks.sdk.model.Integer; +import com.fireblocks.sdk.model.String; + +public class Example { + public static void main(String[] args) { + AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner exampleAddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner = new AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner(); + + // create a new Integer + Integer exampleInteger = new Integer(); + // set AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner to Integer + exampleAddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner.setActualInstance(exampleInteger); + // to get back the Integer set earlier + Integer testInteger = (Integer) exampleAddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner.getActualInstance(); + + // create a new String + String exampleString = new String(); + // set AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner to String + exampleAddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner.setActualInstance(exampleString); + // to get back the String set earlier + String testString = (String) exampleAddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner.getActualInstance(); + } +} +``` + + diff --git a/docs/AddressRegistryAddVaultOptOutsResponse.md b/docs/AddressRegistryAddVaultOptOutsResponse.md new file mode 100644 index 00000000..195b32b3 --- /dev/null +++ b/docs/AddressRegistryAddVaultOptOutsResponse.md @@ -0,0 +1,14 @@ + + +# AddressRegistryAddVaultOptOutsResponse + +Result of adding vault account ids to the workspace opt-out list for the address registry. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**acceptedCount** | **Integer** | Number of vault ids from the request that were processed. An empty `vaultAccountIds` list is rejected with HTTP 400, not a 200 with zero. | | + + + diff --git a/docs/AddressRegistryError.md b/docs/AddressRegistryError.md index b4237b4d..8779cfeb 100644 --- a/docs/AddressRegistryError.md +++ b/docs/AddressRegistryError.md @@ -2,13 +2,13 @@ # AddressRegistryError -Error body for address-registry 4xx and 5xx. +Error body for address registry operations (4xx and 5xx). ## Properties | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**code** | **Integer** | Numeric error code (2140–2143) for 403, 404 and 5xx responses. | [optional] | +|**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] | |**message** | **String** | Human-readable error message | | diff --git a/docs/AddressRegistryGetVaultOptOutResponse.md b/docs/AddressRegistryGetVaultOptOutResponse.md new file mode 100644 index 00000000..e088cf66 --- /dev/null +++ b/docs/AddressRegistryGetVaultOptOutResponse.md @@ -0,0 +1,14 @@ + + +# AddressRegistryGetVaultOptOutResponse + +Whether the given vault account is excluded from the address registry for your workspace. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**optedOut** | **Boolean** | `true` if this vault account is excluded from the address registry; `false` if it is not excluded. | | + + + diff --git a/docs/AddressRegistryLegalEntity.md b/docs/AddressRegistryLegalEntity.md index 1be29916..7db67ac7 100644 --- a/docs/AddressRegistryLegalEntity.md +++ b/docs/AddressRegistryLegalEntity.md @@ -2,15 +2,18 @@ # AddressRegistryLegalEntity -Legal entity resolved for an address-registry lookup +Legal entity details for a blockchain address. ## 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) | | +|**verified** | **Boolean** | Whether the entity was resolved from verified public registry data (e.g. LEI sources). | | +|**entityName** | **String** | Legal entity display name. | | +|**jurisdiction** | **String** | Jurisdiction (e.g. ISO 3166-1 alpha-2 country code). | | +|**lei** | **String** | Legal Entity Identifier when available; may be empty when unverified. | | +|**travelRuleProviders** | **List<AddressRegistryTravelRuleProvider>** | | | +|**email** | **String** | Travel Rule contact email when available. | | diff --git a/docs/AddressRegistryLegalEntityLegacy.md b/docs/AddressRegistryLegalEntityLegacy.md new file mode 100644 index 00000000..fc8a3152 --- /dev/null +++ b/docs/AddressRegistryLegalEntityLegacy.md @@ -0,0 +1,16 @@ + + +# 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/AddressRegistryListVaultOptOutsResponse.md b/docs/AddressRegistryListVaultOptOutsResponse.md new file mode 100644 index 00000000..77ffb53f --- /dev/null +++ b/docs/AddressRegistryListVaultOptOutsResponse.md @@ -0,0 +1,16 @@ + + +# AddressRegistryListVaultOptOutsResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**total** | **Integer** | Total number of vault accounts excluded from the address registry for your workspace. | | +|**data** | [**List<AddressRegistryVaultOptOutItem>**](AddressRegistryVaultOptOutItem.md) | | | +|**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] | + + + diff --git a/docs/AddressRegistryRemoveAllVaultOptOutsResponse.md b/docs/AddressRegistryRemoveAllVaultOptOutsResponse.md new file mode 100644 index 00000000..3ca9aa3d --- /dev/null +++ b/docs/AddressRegistryRemoveAllVaultOptOutsResponse.md @@ -0,0 +1,14 @@ + + +# AddressRegistryRemoveAllVaultOptOutsResponse + +Result of clearing all vault-level opt-outs for the address registry on this workspace. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**removedCount** | **Integer** | Number of opt-out rows deleted (0 if none existed). | | + + + diff --git a/docs/AddressRegistryRemoveVaultOptOutResponse.md b/docs/AddressRegistryRemoveVaultOptOutResponse.md new file mode 100644 index 00000000..c34064c2 --- /dev/null +++ b/docs/AddressRegistryRemoveVaultOptOutResponse.md @@ -0,0 +1,14 @@ + + +# AddressRegistryRemoveVaultOptOutResponse + +Body after removing one vault from the opt-out list; same fields as GET for that vault (`optedOut` is false). + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**optedOut** | **Boolean** | Always false after a successful remove — the vault is not on the opt-out list. | | + + + diff --git a/docs/AddressRegistryTenantRegistryResponse.md b/docs/AddressRegistryTenantRegistryResponse.md new file mode 100644 index 00000000..2187cf9d --- /dev/null +++ b/docs/AddressRegistryTenantRegistryResponse.md @@ -0,0 +1,23 @@ + + +# AddressRegistryTenantRegistryResponse + +Workspace participation in the address registry. Same shape for GET, POST (opt in), and DELETE (opt out). + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**status** | [**StatusEnum**](#StatusEnum) | OPTED_IN or OPTED_OUT. | | + + + +## Enum: StatusEnum + +| Name | Value | +|---- | -----| +| OPTED_IN | "OPTED_IN" | +| OPTED_OUT | "OPTED_OUT" | + + + diff --git a/docs/AddressRegistryTravelRuleProvider.md b/docs/AddressRegistryTravelRuleProvider.md new file mode 100644 index 00000000..e2a95a96 --- /dev/null +++ b/docs/AddressRegistryTravelRuleProvider.md @@ -0,0 +1,17 @@ + + +# AddressRegistryTravelRuleProvider + +## Enum + + +* `TRAVEL_RULE_PROVIDER_NOTABENE` (value: `"TRAVEL_RULE_PROVIDER_NOTABENE"`) + +* `TRAVEL_RULE_PROVIDER_SYGNA` (value: `"TRAVEL_RULE_PROVIDER_SYGNA"`) + +* `TRAVEL_RULE_PROVIDER_TRISA` (value: `"TRAVEL_RULE_PROVIDER_TRISA"`) + +* `TRAVEL_RULE_PROVIDER_OPENVASP` (value: `"TRAVEL_RULE_PROVIDER_OPENVASP"`) + + + diff --git a/docs/AddressRegistryVaultListOrder.md b/docs/AddressRegistryVaultListOrder.md new file mode 100644 index 00000000..5d84cbcf --- /dev/null +++ b/docs/AddressRegistryVaultListOrder.md @@ -0,0 +1,13 @@ + + +# AddressRegistryVaultListOrder + +## Enum + + +* `VAULT_OPT_OUT_LIST_ORDER_ASC` (value: `"VAULT_OPT_OUT_LIST_ORDER_ASC"`) + +* `VAULT_OPT_OUT_LIST_ORDER_DESC` (value: `"VAULT_OPT_OUT_LIST_ORDER_DESC"`) + + + diff --git a/docs/AddressRegistryVaultOptOutItem.md b/docs/AddressRegistryVaultOptOutItem.md new file mode 100644 index 00000000..a1c5ca52 --- /dev/null +++ b/docs/AddressRegistryVaultOptOutItem.md @@ -0,0 +1,14 @@ + + +# AddressRegistryVaultOptOutItem + +A vault account excluded from the address registry for your workspace. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**vaultAccountId** | **Integer** | Vault account ID. | | + + + diff --git a/docs/AmlResult.md b/docs/AmlResult.md index a7c31bd8..c075f86e 100644 --- a/docs/AmlResult.md +++ b/docs/AmlResult.md @@ -2,7 +2,7 @@ # AmlResult -Detailed AML screening result information. Contains alerts, risk scores, and other AML-specific data from provider-specific responses. +Deprecated: This field is not currently returned in the API response. Detailed AML screening result information. Contains alerts, risk scores, and other AML-specific data from provider-specific responses. ## Properties diff --git a/docs/AssetTypeEnum.md b/docs/AssetTypeEnum.md deleted file mode 100644 index 8e9f20d1..00000000 --- a/docs/AssetTypeEnum.md +++ /dev/null @@ -1,13 +0,0 @@ - - -# AssetTypeEnum - -## Enum - - -* `DIGITAL` (value: `"DIGITAL"`) - -* `FIAT` (value: `"FIAT"`) - - - diff --git a/docs/AssignVaultsToLegalEntityRequest.md b/docs/AssignVaultsToLegalEntityRequest.md new file mode 100644 index 00000000..b986db73 --- /dev/null +++ b/docs/AssignVaultsToLegalEntityRequest.md @@ -0,0 +1,14 @@ + + +# AssignVaultsToLegalEntityRequest + +Request body to assign vault accounts to a legal entity + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**vaultAccountIds** | **List<String>** | List of vault account IDs to assign to the legal entity | | + + + diff --git a/docs/AssignVaultsToLegalEntityResponse.md b/docs/AssignVaultsToLegalEntityResponse.md new file mode 100644 index 00000000..86d25330 --- /dev/null +++ b/docs/AssignVaultsToLegalEntityResponse.md @@ -0,0 +1,14 @@ + + +# AssignVaultsToLegalEntityResponse + +Response after assigning vault accounts to a legal entity + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**assignedCount** | **Integer** | Number of vault accounts successfully assigned | | + + + diff --git a/docs/BaseProvider.md b/docs/BaseProvider.md index 50b9722c..64037935 100644 --- a/docs/BaseProvider.md +++ b/docs/BaseProvider.md @@ -11,6 +11,7 @@ |**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) | | | diff --git a/docs/Capability.md b/docs/Capability.md deleted file mode 100644 index a567b4b1..00000000 --- a/docs/Capability.md +++ /dev/null @@ -1,15 +0,0 @@ - - -# Capability - -## Enum - - -* `WITHDRAWALS` (value: `"WITHDRAWALS"`) - -* `DEPOSITS` (value: `"DEPOSITS"`) - -* `TRADING` (value: `"TRADING"`) - - - diff --git a/docs/CollectionOwnershipResponse.md b/docs/CollectionOwnershipResponse.md index 74a05b84..4ac43cde 100644 --- a/docs/CollectionOwnershipResponse.md +++ b/docs/CollectionOwnershipResponse.md @@ -47,6 +47,7 @@ | APECHAIN_TEST | "APECHAIN_TEST" | | CRONOS | "CRONOS" | | CRONOS_TEST | "CRONOS_TEST" | +| ROBINHOOD_CHAIN_TESTNET_TEST | "ROBINHOOD_CHAIN_TESTNET_TEST" | diff --git a/docs/ComplianceApi.md b/docs/ComplianceApi.md index 6923a8af..72a85e5f 100644 --- a/docs/ComplianceApi.md +++ b/docs/ComplianceApi.md @@ -4,27 +4,1120 @@ All URIs are relative to https://developers.fireblocks.com/reference/ | Method | HTTP request | Description | |------------- | ------------- | -------------| +| [**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 | +| [**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 | -| [**getLegalEntityByAddress**](ComplianceApi.md#getLegalEntityByAddress) | **GET** /address_registry/legal_entity | Look up legal entity by address and asset | +| [**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. | | [**getScreeningPolicy**](ComplianceApi.md#getScreeningPolicy) | **GET** /screening/travel_rule/screening_policy | Travel Rule - View Screening Policy | +| [**listAddressRegistryVaultOptOuts**](ComplianceApi.md#listAddressRegistryVaultOptOuts) | **GET** /address_registry/vaults | List vault-level address registry opt-outs (paginated) | +| [**listLegalEntities**](ComplianceApi.md#listLegalEntities) | **GET** /legal_entities | List legal entities (Paginated) | +| [**listVaultsForLegalEntity**](ComplianceApi.md#listVaultsForLegalEntity) | **GET** /legal_entities/{legalEntityId}/vaults | List vault accounts for a legal entity (Paginated) | +| [**optInAddressRegistryTenant**](ComplianceApi.md#optInAddressRegistryTenant) | **POST** /address_registry/tenant | Opt the workspace in to the address registry | +| [**optOutAddressRegistryTenant**](ComplianceApi.md#optOutAddressRegistryTenant) | **DELETE** /address_registry/tenant | Opt the workspace out of the address registry | +| [**registerLegalEntity**](ComplianceApi.md#registerLegalEntity) | **POST** /legal_entities | Register a new legal entity | +| [**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. | | [**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 | | [**updateTravelRuleConfig**](ComplianceApi.md#updateTravelRuleConfig) | **PUT** /screening/travel_rule/policy_configuration | Update Travel Rule Configuration | +## addAddressRegistryVaultOptOuts + +> CompletableFuture> addAddressRegistryVaultOptOuts addAddressRegistryVaultOptOuts(addressRegistryAddVaultOptOutsRequest, idempotencyKey) + +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. + +### 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); + + AddressRegistryAddVaultOptOutsRequest addressRegistryAddVaultOptOutsRequest = new AddressRegistryAddVaultOptOutsRequest(); // AddressRegistryAddVaultOptOutsRequest | + 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().addAddressRegistryVaultOptOuts(addressRegistryAddVaultOptOutsRequest, 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#addAddressRegistryVaultOptOuts"); + 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#addAddressRegistryVaultOptOuts"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **addressRegistryAddVaultOptOutsRequest** | [**AddressRegistryAddVaultOptOutsRequest**](AddressRegistryAddVaultOptOutsRequest.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** | Opt-outs recorded; response body includes `acceptedCount`. | * X-Request-ID -
| +| **400** | Validation error (e.g. empty list or invalid vault ids) | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| + + +## assignVaultsToLegalEntity + +> CompletableFuture> assignVaultsToLegalEntity assignVaultsToLegalEntity(assignVaultsToLegalEntityRequest, legalEntityId, idempotencyKey) + +Assign vault accounts to a legal entity + +Assigns one or more vault accounts to a specific legal entity registration. Explicitly mapped vault accounts take precedence over the workspace default legal entity. </br>Endpoint Permission: Admin, Non-Signing Admin. + +### 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); + + AssignVaultsToLegalEntityRequest assignVaultsToLegalEntityRequest = new AssignVaultsToLegalEntityRequest(); // AssignVaultsToLegalEntityRequest | + UUID legalEntityId = UUID.randomUUID(); // UUID | The unique ID of the legal entity registration + 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().assignVaultsToLegalEntity(assignVaultsToLegalEntityRequest, legalEntityId, 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#assignVaultsToLegalEntity"); + 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#assignVaultsToLegalEntity"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **assignVaultsToLegalEntityRequest** | [**AssignVaultsToLegalEntityRequest**](AssignVaultsToLegalEntityRequest.md)| | | +| **legalEntityId** | **UUID**| The unique ID of the legal entity registration | | +| **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 | +|-------------|-------------|------------------| +| **201** | Vault accounts assigned successfully | * X-Request-ID -
| +| **404** | Legal entity registration not found | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| + + +## getAddressRegistryTenantParticipationStatus + +> CompletableFuture> getAddressRegistryTenantParticipationStatus getAddressRegistryTenantParticipationStatus() + +Get address registry participation status for the authenticated workspace + +Returns whether the workspace is `OPTED_IN` or `OPTED_OUT` of the address registry. + +### 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); + + try { + CompletableFuture> response = fireblocks.compliance().getAddressRegistryTenantParticipationStatus(); + 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#getAddressRegistryTenantParticipationStatus"); + 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#getAddressRegistryTenantParticipationStatus"); + 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** | Participation status in the response body | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| + + +## getAddressRegistryVaultOptOut + +> CompletableFuture> getAddressRegistryVaultOptOut getAddressRegistryVaultOptOut(vaultAccountId) + +Get whether a vault account is opted out of the address registry + +Returns whether this vault account is on the workspace opt-out list (`optedOut` true or false). List, add, and clear-all are available on `/v1/address_registry/vaults`; this path reads or removes one vault. + +### 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); + + Integer vaultAccountId = 10001; // Integer | Vault account id (non-negative integer). + try { + CompletableFuture> response = fireblocks.compliance().getAddressRegistryVaultOptOut(vaultAccountId); + 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#getAddressRegistryVaultOptOut"); + 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#getAddressRegistryVaultOptOut"); + 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** | **Integer**| Vault account id (non-negative integer). | | + +### 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** | Current opt-out flag for the vault | * X-Request-ID -
| +| **400** | Invalid path parameter (e.g. negative or out-of-range vault account id) | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| + + ## getAmlPostScreeningPolicy -> CompletableFuture> getAmlPostScreeningPolicy getAmlPostScreeningPolicy() +> CompletableFuture> getAmlPostScreeningPolicy getAmlPostScreeningPolicy() + +AML - View Post-Screening Policy + +Get the post-screening policy for AML. + +### 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); + + try { + CompletableFuture> response = fireblocks.compliance().getAmlPostScreeningPolicy(); + 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#getAmlPostScreeningPolicy"); + 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#getAmlPostScreeningPolicy"); + 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** | Post-screening policy retrieved successfully. | - | + + +## getAmlScreeningPolicy + +> CompletableFuture> getAmlScreeningPolicy getAmlScreeningPolicy() + +AML - View Screening Policy + +Get the screening policy for AML. + +### 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); + + try { + CompletableFuture> response = fireblocks.compliance().getAmlScreeningPolicy(); + 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#getAmlScreeningPolicy"); + 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#getAmlScreeningPolicy"); + 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** | Screening policy retrieved successfully. | - | + + +## getLegalEntity + +> CompletableFuture> getLegalEntity getLegalEntity(legalEntityId) + +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. + +### 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); + + UUID legalEntityId = UUID.randomUUID(); // UUID | The unique ID of the legal entity registration + try { + 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#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#getLegalEntity"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **legalEntityId** | **UUID**| The unique ID of the legal entity registration | | + +### 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** | Legal entity registration details | * X-Request-ID -
| +| **404** | Legal entity registration not found | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| + + +## getLegalEntityByAddress + +> CompletableFuture> getLegalEntityByAddress getLegalEntityByAddress(address, asset) + +[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). + +### 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 address = "0x742d35cc6634c0532925a3b844bc9e7595f0beb0"; // String | Blockchain address to look up + String asset = "ETH"; // String | Optional asset identifier (this deprecated operation only). + try { + CompletableFuture> response = fireblocks.compliance().getLegalEntityByAddress(address, asset); + 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("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("Status code: " + e.getCode()); + System.err.println("Response headers: " + e.getResponseHeaders()); + System.err.println("Reason: " + e.getResponseBody()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **address** | **String**| Blockchain address to look up | | +| **asset** | **String**| Optional asset identifier (this deprecated operation only). | [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** | 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 -
| +| **0** | Error Response | * X-Request-ID -
| + + +## getLegalEntityForAddress + +> CompletableFuture> getLegalEntityForAddress getLegalEntityForAddress(address) + +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). + +### 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 address = "0x742d35cc6634c0532925a3b844bc9e7595f0beb0"; // String | Blockchain address to look up + try { + CompletableFuture> response = fireblocks.compliance().getLegalEntityForAddress(address); + 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#getLegalEntityForAddress"); + 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#getLegalEntityForAddress"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **address** | **String**| Blockchain address to look up | | + +### 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** | 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 -
| +| **0** | Error Response | * X-Request-ID -
| + + +## getPostScreeningPolicy + +> CompletableFuture> getPostScreeningPolicy getPostScreeningPolicy() + +Travel Rule - View Post-Screening Policy + +Get the post-screening policy for Travel Rule. + +### 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); + + try { + CompletableFuture> response = fireblocks.compliance().getPostScreeningPolicy(); + 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#getPostScreeningPolicy"); + 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#getPostScreeningPolicy"); + 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** | Post-screening policy retrieved successfully. | - | + + +## getScreeningFullDetails + +> CompletableFuture> getScreeningFullDetails getScreeningFullDetails(txId) + +Provides all the compliance details for the given screened transaction. + +Provides all the compliance details for the given screened 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 | Fireblocks transaction ID of the screened transaction + try { + CompletableFuture> response = fireblocks.compliance().getScreeningFullDetails(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#getScreeningFullDetails"); + 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#getScreeningFullDetails"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **txId** | **String**| Fireblocks transaction ID of the screened transaction | | + +### 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 compliance object | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| + + +## getScreeningPolicy + +> CompletableFuture> getScreeningPolicy getScreeningPolicy() + +Travel Rule - View Screening Policy + +Get the screening policy for Travel Rule. + +### 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); + + try { + CompletableFuture> response = fireblocks.compliance().getScreeningPolicy(); + 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#getScreeningPolicy"); + 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#getScreeningPolicy"); + 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** | Screening policy retrieved successfully. | - | + + +## listAddressRegistryVaultOptOuts + +> CompletableFuture> listAddressRegistryVaultOptOuts listAddressRegistryVaultOptOuts(pageCursor, pageSize, order) + +List vault-level address registry opt-outs (paginated) + +Lists vault accounts that are opted out of the address registry for this workspace. Pagination uses `next` and `prev` cursors from the response. If `pageSize` is omitted, **50** items are returned per page; allowed range is **1–100** per request. + +### 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 pageCursor = "eyJvZmZzZXQiOjAsInBhZ2VTaXplIjoxMH0"; // String | Opaque cursor from a previous response (`next` or `prev`). Omit for the first page. + Integer pageSize = 50; // Integer | Page size. Default **50** if omitted; must be between **1** and **100**. + AddressRegistryVaultListOrder order = AddressRegistryVaultListOrder.fromValue("VAULT_OPT_OUT_LIST_ORDER_ASC"); // AddressRegistryVaultListOrder | Sort direction by vault account id. Omit for ascending; use the enum value for descending. + try { + CompletableFuture> response = fireblocks.compliance().listAddressRegistryVaultOptOuts(pageCursor, pageSize, 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 ComplianceApi#listAddressRegistryVaultOptOuts"); + 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#listAddressRegistryVaultOptOuts"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Response headers: " + e.getResponseHeaders()); + System.err.println("Reason: " + e.getResponseBody()); + e.printStackTrace(); + } + } +} +``` + +### Parameters -AML - View Post-Screening Policy -Get the post-screening policy for AML. +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **pageCursor** | **String**| Opaque cursor from a previous response (`next` or `prev`). Omit for the first page. | [optional] | +| **pageSize** | **Integer**| Page size. Default **50** if omitted; must be between **1** and **100**. | [optional] [default to 50] | +| **order** | [**AddressRegistryVaultListOrder**](.md)| Sort direction by vault account id. Omit for ascending; use the enum value for descending. | [optional] [default to VAULT_OPT_OUT_LIST_ORDER_ASC] [enum: VAULT_OPT_OUT_LIST_ORDER_ASC, VAULT_OPT_OUT_LIST_ORDER_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** | Page of vault opt-out rows | * X-Request-ID -
| +| **400** | Validation error (e.g. invalid or malformed pageCursor) | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| + + +## listLegalEntities + +> CompletableFuture> listLegalEntities listLegalEntities(vaultAccountId, pageCursor, pageSize, sortBy, order) + +List legal entities (Paginated) + +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. </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. ### Example @@ -49,20 +1142,25 @@ public class Example { .secretKey("my-secret-key"); Fireblocks fireblocks = new Fireblocks(configurationOptions); + 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().getAmlPostScreeningPolicy(); + CompletableFuture> response = fireblocks.compliance().listLegalEntities(vaultAccountId, 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 ComplianceApi#getAmlPostScreeningPolicy"); + System.err.println("Exception when calling ComplianceApi#listLegalEntities"); 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#getAmlPostScreeningPolicy"); + System.err.println("Exception when calling ComplianceApi#listLegalEntities"); System.err.println("Status code: " + e.getCode()); System.err.println("Response headers: " + e.getResponseHeaders()); System.err.println("Reason: " + e.getResponseBody()); @@ -74,11 +1172,18 @@ public class Example { ### Parameters -This endpoint does not need any parameter. + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **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 -CompletableFuture> +CompletableFuture> ### Authorization @@ -93,16 +1198,17 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | Post-screening policy retrieved successfully. | - | +| **200** | A paginated list of legal entity registrations. When `vaultAccountId` is provided, `data` contains at most one item. | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| -## getAmlScreeningPolicy +## listVaultsForLegalEntity -> CompletableFuture> getAmlScreeningPolicy getAmlScreeningPolicy() +> CompletableFuture> listVaultsForLegalEntity listVaultsForLegalEntity(legalEntityId, pageCursor, pageSize) -AML - View Screening Policy +List vault accounts for a legal entity (Paginated) -Get the screening policy for AML. +Returns vault account IDs explicitly assigned to a specific legal entity registration, with cursor-based pagination. </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. ### Example @@ -127,20 +1233,23 @@ 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 + String pageCursor = "pageCursor_example"; // String | Cursor string returned in `next` or `prev` of a previous response + Integer pageSize = 50; // Integer | Maximum number of registrations to return try { - CompletableFuture> response = fireblocks.compliance().getAmlScreeningPolicy(); + CompletableFuture> response = fireblocks.compliance().listVaultsForLegalEntity(legalEntityId, 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()); } catch (InterruptedException | ExecutionException e) { ApiException apiException = (ApiException)e.getCause(); - System.err.println("Exception when calling ComplianceApi#getAmlScreeningPolicy"); + System.err.println("Exception when calling ComplianceApi#listVaultsForLegalEntity"); 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#getAmlScreeningPolicy"); + System.err.println("Exception when calling ComplianceApi#listVaultsForLegalEntity"); System.err.println("Status code: " + e.getCode()); System.err.println("Response headers: " + e.getResponseHeaders()); System.err.println("Reason: " + e.getResponseBody()); @@ -152,11 +1261,16 @@ public class Example { ### Parameters -This endpoint does not need any parameter. + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **legalEntityId** | **UUID**| The unique ID of the legal entity registration | | +| **pageCursor** | **String**| Cursor string returned in `next` or `prev` of a previous response | [optional] | +| **pageSize** | **Integer**| Maximum number of registrations to return | [optional] [default to 50] | ### Return type -CompletableFuture> +CompletableFuture> ### Authorization @@ -171,16 +1285,18 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | Screening policy retrieved successfully. | - | +| **200** | Paginated list of vault account IDs assigned to the legal entity | * X-Request-ID -
| +| **404** | Legal entity registration not found | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| -## getLegalEntityByAddress +## optInAddressRegistryTenant -> CompletableFuture> getLegalEntityByAddress getLegalEntityByAddress(address, asset) +> CompletableFuture> optInAddressRegistryTenant optInAddressRegistryTenant(idempotencyKey) -Look up legal entity by address and asset +Opt the workspace in to the address registry -Returns the legal entity (company name, jurisdiction, companyId) for the given blockchain address and optional asset. Both the requester and the owner of the address must be opted in to the address registry. +Opts the workspace in. No request body. Response uses the same JSON shape as GET; status is OPTED_IN. ### Example @@ -205,22 +1321,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 | Asset ID (e.g. ETH, BTC). Optional. + 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().getLegalEntityByAddress(address, asset); + CompletableFuture> response = fireblocks.compliance().optInAddressRegistryTenant(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#getLegalEntityByAddress"); + System.err.println("Exception when calling ComplianceApi#optInAddressRegistryTenant"); 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#optInAddressRegistryTenant"); System.err.println("Status code: " + e.getCode()); System.err.println("Response headers: " + e.getResponseHeaders()); System.err.println("Reason: " + e.getResponseBody()); @@ -235,12 +1350,11 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| -| **address** | **String**| Blockchain address to look up | | -| **asset** | **String**| Asset ID (e.g. ETH, BTC). Optional. | [optional] | +| **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> +CompletableFuture> ### Authorization @@ -255,20 +1369,17 @@ 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 or asset | * X-Request-ID -
| -| **403** | Forbidden – requester or address owner not opted in to the address registry (error codes 2140, 2141) | * X-Request-ID -
| -| **404** | Address not resolved or entity not found (error code 2142) | * X-Request-ID -
| +| **200** | Success; response body includes status OPTED_IN | * X-Request-ID -
| | **0** | Error Response | * X-Request-ID -
| -## getPostScreeningPolicy +## optOutAddressRegistryTenant -> CompletableFuture> getPostScreeningPolicy getPostScreeningPolicy() +> CompletableFuture> optOutAddressRegistryTenant optOutAddressRegistryTenant() -Travel Rule - View Post-Screening Policy +Opt the workspace out of the address registry -Get the post-screening policy for Travel Rule. +Opts the workspace out. No request body. Response uses the same JSON shape as GET; status is OPTED_OUT. ### Example @@ -294,19 +1405,19 @@ public class Example { Fireblocks fireblocks = new Fireblocks(configurationOptions); try { - CompletableFuture> response = fireblocks.compliance().getPostScreeningPolicy(); + CompletableFuture> response = fireblocks.compliance().optOutAddressRegistryTenant(); 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#getPostScreeningPolicy"); + System.err.println("Exception when calling ComplianceApi#optOutAddressRegistryTenant"); 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#getPostScreeningPolicy"); + System.err.println("Exception when calling ComplianceApi#optOutAddressRegistryTenant"); System.err.println("Status code: " + e.getCode()); System.err.println("Response headers: " + e.getResponseHeaders()); System.err.println("Reason: " + e.getResponseBody()); @@ -322,7 +1433,7 @@ This endpoint does not need any parameter. ### Return type -CompletableFuture> +CompletableFuture> ### Authorization @@ -337,16 +1448,17 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | Post-screening policy retrieved successfully. | - | +| **200** | Success; response body includes status OPTED_OUT | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| -## getScreeningFullDetails +## registerLegalEntity -> CompletableFuture> getScreeningFullDetails getScreeningFullDetails(txId) +> CompletableFuture> registerLegalEntity registerLegalEntity(registerLegalEntityRequest, idempotencyKey) -Provides all the compliance details for the given screened transaction. +Register a new legal entity -Provides all the compliance details for the given screened transaction. +Registers a new legal entity for the workspace using its LEI (Legal Entity Identifier) code. The LEI is validated against the GLEIF registry. Each workspace can register multiple legal entities. </br>Endpoint Permission: Admin, Non-Signing Admin. ### Example @@ -371,21 +1483,22 @@ public class Example { .secretKey("my-secret-key"); Fireblocks fireblocks = new Fireblocks(configurationOptions); - String txId = "550e8400-e29b-41d4-a716-446655440000"; // String | Fireblocks transaction ID of the screened transaction + RegisterLegalEntityRequest registerLegalEntityRequest = new RegisterLegalEntityRequest(); // RegisterLegalEntityRequest | + 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().getScreeningFullDetails(txId); + CompletableFuture> response = fireblocks.compliance().registerLegalEntity(registerLegalEntityRequest, 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#getScreeningFullDetails"); + System.err.println("Exception when calling ComplianceApi#registerLegalEntity"); 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#getScreeningFullDetails"); + System.err.println("Exception when calling ComplianceApi#registerLegalEntity"); System.err.println("Status code: " + e.getCode()); System.err.println("Response headers: " + e.getResponseHeaders()); System.err.println("Reason: " + e.getResponseBody()); @@ -400,11 +1513,99 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| -| **txId** | **String**| Fireblocks transaction ID of the screened transaction | | +| **registerLegalEntityRequest** | [**RegisterLegalEntityRequest**](RegisterLegalEntityRequest.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> +CompletableFuture> + + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: application/json +- **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **201** | Legal entity registered successfully | * X-Request-ID -
| +| **400** | Invalid LEI or request parameters | * X-Request-ID -
| +| **404** | LEI not found in the GLEIF registry | * X-Request-ID -
| +| **409** | A legal entity with this LEI is already registered for the workspace | * X-Request-ID -
| +| **500** | Internal Server Error | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| + + +## removeAddressRegistryVaultOptOut + +> CompletableFuture> removeAddressRegistryVaultOptOut removeAddressRegistryVaultOptOut(vaultAccountId) + +Remove a single vault account from the address registry opt-out list + +Removes this vault account id from the workspace opt-out list if it is present; otherwise the call still succeeds. Response body matches GET (`optedOut` is `false` after success). To clear the whole list, use `DELETE /v1/address_registry/vaults`. + +### 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); + + Integer vaultAccountId = 10001; // Integer | Vault account id (non-negative integer). + try { + CompletableFuture> response = fireblocks.compliance().removeAddressRegistryVaultOptOut(vaultAccountId); + 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#removeAddressRegistryVaultOptOut"); + 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#removeAddressRegistryVaultOptOut"); + 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** | **Integer**| Vault account id (non-negative integer). | | + +### Return type + +CompletableFuture> ### Authorization @@ -419,17 +1620,18 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | A compliance object | * X-Request-ID -
| +| **200** | Success; `optedOut` is false (list entry removed if it existed) | * X-Request-ID -
| +| **400** | Invalid path parameter (e.g. negative or out-of-range vault account id) | * X-Request-ID -
| | **0** | Error Response | * X-Request-ID -
| -## getScreeningPolicy +## removeAllAddressRegistryVaultOptOuts -> CompletableFuture> getScreeningPolicy getScreeningPolicy() +> CompletableFuture> removeAllAddressRegistryVaultOptOuts removeAllAddressRegistryVaultOptOuts() -Travel Rule - View Screening Policy +Remove all vault-level address registry opt-outs for the workspace -Get the screening policy for Travel Rule. +Removes all vault accounts from the workspace opt-out list. ### Example @@ -455,19 +1657,19 @@ public class Example { Fireblocks fireblocks = new Fireblocks(configurationOptions); try { - CompletableFuture> response = fireblocks.compliance().getScreeningPolicy(); + CompletableFuture> response = fireblocks.compliance().removeAllAddressRegistryVaultOptOuts(); 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#getScreeningPolicy"); + System.err.println("Exception when calling ComplianceApi#removeAllAddressRegistryVaultOptOuts"); 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#getScreeningPolicy"); + System.err.println("Exception when calling ComplianceApi#removeAllAddressRegistryVaultOptOuts"); System.err.println("Status code: " + e.getCode()); System.err.println("Response headers: " + e.getResponseHeaders()); System.err.println("Reason: " + e.getResponseBody()); @@ -483,7 +1685,7 @@ This endpoint does not need any parameter. ### Return type -CompletableFuture> +CompletableFuture> ### Authorization @@ -498,7 +1700,8 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | Screening policy retrieved successfully. | - | +| **200** | All opt-outs cleared; response body includes `removedCount`. | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| ## retryRejectedTransactionBypassScreeningChecks @@ -756,6 +1959,95 @@ No authorization required | **200** | Configuration updated successfully. | - | +## updateLegalEntity + +> CompletableFuture> updateLegalEntity updateLegalEntity(updateLegalEntityRequest, legalEntityId, idempotencyKey) + +Update legal entity + +Updates the status of a legal entity registration. Setting isDefault to true marks the registration as the workspace default, which is applied to vault accounts that have no explicit legal entity mapping. </br>Endpoint Permission: Admin, Non-Signing Admin. + +### 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); + + UpdateLegalEntityRequest updateLegalEntityRequest = new UpdateLegalEntityRequest(); // UpdateLegalEntityRequest | + UUID legalEntityId = UUID.randomUUID(); // UUID | The unique ID of the legal entity registration + 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().updateLegalEntity(updateLegalEntityRequest, legalEntityId, 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#updateLegalEntity"); + 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#updateLegalEntity"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **updateLegalEntityRequest** | [**UpdateLegalEntityRequest**](UpdateLegalEntityRequest.md)| | | +| **legalEntityId** | **UUID**| The unique ID of the legal entity registration | | +| **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** | Updated legal entity registration | * X-Request-ID -
| +| **400** | Registration is not in APPROVED status | * X-Request-ID -
| +| **404** | Legal entity registration not found | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| + + ## updateScreeningConfiguration > CompletableFuture> updateScreeningConfiguration updateScreeningConfiguration(screeningUpdateConfigurations, idempotencyKey) diff --git a/docs/ComplianceScreeningResult.md b/docs/ComplianceScreeningResult.md index 2526518d..1d9696f5 100644 --- a/docs/ComplianceScreeningResult.md +++ b/docs/ComplianceScreeningResult.md @@ -8,26 +8,26 @@ The result of the AML/Travel Rule screening. This unified schema contains all fi | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**provider** | **String** | The AML/Travel Rule provider name. For AML: ELLIPTIC, CHAINALYSIS, SCORECHAIN, MERKLE_SCIENCE, etc. For Travel Rule: NOTABENE, SYGNA, or any TRLink provider name | [optional] | +|**provider** | **String** | The AML/Travel Rule provider name. For AML: ELLIPTIC, CHAINALYSIS, etc. For Travel Rule: NOTABENE, SUMSUB, GTR, or any TRLink provider name. | [optional] | |**payload** | **Object** | The raw payload of the screening result from the provider. The payload is a JSON object that contains the screening result. The payload structure is different for each screening provider. This field contains the complete, unmodified response from the screening service. | [optional] | |**timestamp** | **BigDecimal** | Unix timestamp in milliseconds when the screening result was generated | [optional] | |**screeningStatus** | [**ScreeningStatusEnum**](#ScreeningStatusEnum) | Current status of the screening process | [optional] | -|**bypassReason** | **String** | Reason for bypassing the screening, if applicable. For AML: SANCTIONS_SCREENING_BYPASS, SANCTIONS_RECIPIENT_BYPASS, etc. For Travel Rule: BELOW_THRESHOLD, NO_TRM_AVAILABLE, etc. | [optional] | +|**bypassReason** | **String** | Reason for bypassing the screening, if applicable. For AML: UNSUPPORTED_ASSET, PASSED_BY_POLICY. For Travel Rule: UNSUPPORTED_ASSET, NO_TRAVEL_RULE_MESSAGE, TRANSACTION_ZERO_AMOUNT. | [optional] | |**status** | **AmlStatusEnum** | | [optional] | |**prevStatus** | **AmlStatusEnum** | | [optional] | -|**prevBypassReason** | **String** | Previous bypass reason before the current bypass reason change | [optional] | +|**prevBypassReason** | **String** | Deprecated: This field is not currently returned in the API response. Previous bypass reason before the current bypass reason change. | [optional] | |**verdict** | **ScreeningVerdictEnum** | | [optional] | -|**risk** | **ScreeningRiskLevelEnum** | | [optional] | -|**extendedRisk** | **ScreeningRiskLevelEnum** | | [optional] | +|**risk** | **String** | Risk level assessment for screening results. Values vary by provider and are not managed by this service. Known values by provider: - Chainalysis: severeRisk, highRisk, mediumRisk, lowRisk, noRiskInfo - Elliptic: noRiskDetected Legacy values (SCREAMING_SNAKE_CASE, may appear in old transactions): VERY_HIGH, SEVERE, HIGH, MEDIUM, LOW, NO_RISK_INFO, UNKNOWN | [optional] | +|**extendedRisk** | **String** | Deprecated: This field is not currently returned in the API response. Use risk instead. | [optional] | |**externalId** | **String** | External identifier for the screening (provider-specific) | [optional] | |**customerRefId** | **String** | Customer-provided reference identifier for tracking | [optional] | -|**refId** | **String** | Internal reference identifier | [optional] | +|**refId** | **String** | Deprecated: This field is not currently returned in the API response. Internal reference identifier. | [optional] | |**category** | **String** | Risk category classification. Examples: EXCHANGE, GAMBLING, MIXER, DARKNET_SERVICE, SANCTIONED_ENTITY | [optional] | |**categoryId** | **BigDecimal** | Numeric identifier for the risk category | [optional] | |**destAddress** | **String** | The destination blockchain address associated with the screening | [optional] | |**destTag** | **String** | Destination tag or memo (for chains that support it like XRP, XLM) | [optional] | -|**destRecordId** | **String** | The destination record identifier used by the screening provider | [optional] | -|**addressResolutionSignature** | **String** | Cryptographic signature for address resolution verification | [optional] | +|**destRecordId** | **String** | Deprecated: This field is not currently returned in the API response. The destination record identifier used by the screening provider. | [optional] | +|**addressResolutionSignature** | **String** | Deprecated: This field is not currently returned in the API response. Cryptographic signature for address resolution verification. | [optional] | |**amlResult** | [**AmlResult**](AmlResult.md) | | [optional] | |**result** | [**TravelRuleResult**](TravelRuleResult.md) | | [optional] | |**detailsMessage** | **String** | Additional human-readable details or message about the screening result | [optional] | @@ -38,6 +38,7 @@ The result of the AML/Travel Rule screening. This unified schema contains all fi |**customerIntegrationId** | **String** | Customer integration identifier used by Travel Rule providers | [optional] | |**customerShortName** | **String** | Customer short name registered with Travel Rule providers | [optional] | |**travelRuleMessageId** | **String** | Travel rule message identifier for linking and tracking across providers | [optional] | +|**providerResponse** | **Map<String, Object>** | Complete response from the screening provider. This is a dynamic object that varies significantly between different providers (Chainalysis, Elliptic, NOTABENE, etc.). Each provider has their own proprietary response format and schema. For AML providers: Contains risk scores, alerts, entity information For Travel Rule providers: Contains VASP information, PII data, protocol-specific fields The structure is provider-dependent and cannot be standardized as each vendor implements their own proprietary data models and response formats. | [optional] | diff --git a/docs/ComplianceScreeningResultFullPayload.md b/docs/ComplianceScreeningResultFullPayload.md index a69a44db..04dfeb84 100644 --- a/docs/ComplianceScreeningResultFullPayload.md +++ b/docs/ComplianceScreeningResultFullPayload.md @@ -8,26 +8,26 @@ The result of the AML/Travel Rule screening. This unified schema contains all fi | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**provider** | **String** | The AML/Travel Rule provider name. For AML: ELLIPTIC, CHAINALYSIS, etc. For Travel Rule: NOTABENE, SUMSUB, or any TRLink provider name | [optional] | +|**provider** | **String** | The AML/Travel Rule provider name. For AML: ELLIPTIC, CHAINALYSIS, etc. For Travel Rule: NOTABENE, SUMSUB, GTR, or any TRLink provider name | [optional] | |**payload** | **Object** | The raw payload of the screening result from the provider. The payload is a JSON object that contains the screening result. The payload structure is different for each screening provider. This field contains the complete, unmodified response from the screening service. | [optional] | |**timestamp** | **BigDecimal** | Unix timestamp in milliseconds when the screening result was generated | [optional] | |**screeningStatus** | [**ScreeningStatusEnum**](#ScreeningStatusEnum) | Current status of the screening process | [optional] | -|**bypassReason** | **String** | Reason for bypassing the screening, if applicable. For AML: SANCTIONS_SCREENING_BYPASS, SANCTIONS_RECIPIENT_BYPASS, etc. For Travel Rule: BELOW_THRESHOLD, NO_TRM_AVAILABLE, etc. | [optional] | +|**bypassReason** | **String** | Reason for bypassing the screening, if applicable. For AML: UNSUPPORTED_ASSET, PASSED_BY_POLICY. For Travel Rule: UNSUPPORTED_ASSET, NO_TRAVEL_RULE_MESSAGE, TRANSACTION_ZERO_AMOUNT. | [optional] | |**status** | **AmlStatusEnum** | | [optional] | |**prevStatus** | **AmlStatusEnum** | | [optional] | -|**prevBypassReason** | **String** | Previous bypass reason before the current bypass reason change | [optional] | +|**prevBypassReason** | **String** | Deprecated: This field is not currently returned in the API response. Previous bypass reason before the current bypass reason change. | [optional] | |**verdict** | **ScreeningVerdictEnum** | | [optional] | -|**risk** | **ScreeningRiskLevelEnum** | | [optional] | -|**extendedRisk** | **ScreeningRiskLevelEnum** | | [optional] | +|**risk** | **String** | Risk level assessment for screening results. Values vary by provider and are not managed by this service. Known values by provider: - Chainalysis: severeRisk, highRisk, mediumRisk, lowRisk, noRiskInfo - Elliptic: noRiskDetected Legacy values (SCREAMING_SNAKE_CASE, may appear in old transactions): VERY_HIGH, SEVERE, HIGH, MEDIUM, LOW, NO_RISK_INFO, UNKNOWN | [optional] | +|**extendedRisk** | **String** | Deprecated: This field is not currently returned in the API response. Use risk instead. | [optional] | |**externalId** | **String** | External identifier for the screening (provider-specific) | [optional] | |**customerRefId** | **String** | Customer-provided reference identifier for tracking | [optional] | -|**refId** | **String** | Internal reference identifier | [optional] | +|**refId** | **String** | Deprecated: This field is not currently returned in the API response. Internal reference identifier. | [optional] | |**category** | **String** | Risk category classification. Examples: EXCHANGE, GAMBLING, MIXER, DARKNET_SERVICE, SANCTIONED_ENTITY | [optional] | |**categoryId** | **BigDecimal** | Numeric identifier for the risk category | [optional] | |**destAddress** | **String** | The destination blockchain address associated with the screening | [optional] | |**destTag** | **String** | Destination tag or memo (for chains that support it like XRP, XLM) | [optional] | -|**destRecordId** | **String** | The destination record identifier used by the screening provider | [optional] | -|**addressResolutionSignature** | **String** | Cryptographic signature for address resolution verification | [optional] | +|**destRecordId** | **String** | Deprecated: This field is not currently returned in the API response. The destination record identifier used by the screening provider. | [optional] | +|**addressResolutionSignature** | **String** | Deprecated: This field is not currently returned in the API response. Cryptographic signature for address resolution verification. | [optional] | |**amlResult** | [**ScreeningAmlResult**](ScreeningAmlResult.md) | | [optional] | |**result** | [**ScreeningTravelRuleResult**](ScreeningTravelRuleResult.md) | | [optional] | |**detailsMessage** | **String** | Additional human-readable details or message about the screening result | [optional] | @@ -38,6 +38,7 @@ The result of the AML/Travel Rule screening. This unified schema contains all fi |**customerIntegrationId** | **String** | Customer integration identifier used by Travel Rule providers | [optional] | |**customerShortName** | **String** | Customer short name registered with Travel Rule providers | [optional] | |**travelRuleMessageId** | **String** | Travel rule message identifier for linking and tracking across providers | [optional] | +|**providerResponse** | **Map<String, Object>** | Complete response from the screening provider. This is a dynamic object that varies significantly between different providers (Chainalysis, Elliptic, NOTABENE, etc.). Each provider has their own proprietary response format and schema. For AML providers: Contains risk scores, alerts, entity information For Travel Rule providers: Contains VASP information, PII data, protocol-specific fields The structure is provider-dependent and cannot be standardized as each vendor implements their own proprietary data models and response formats. | [optional] | diff --git a/docs/CreateMultipleAccountsRequest.md b/docs/CreateMultipleAccountsRequest.md index bcb27cfa..31339e80 100644 --- a/docs/CreateMultipleAccountsRequest.md +++ b/docs/CreateMultipleAccountsRequest.md @@ -12,6 +12,7 @@ |**names** | **List<String>** | Names to assign to vault accounts. if vaultAccountNamesStartingIndex or prefix is used it'll fail | [optional] | |**vaultAccountNamesStartingIndex** | **Integer** | Copy vault accounts names starting from this index. If names array is used it'll fail | [optional] | |**prefix** | **String** | When copying from existing vault accounts (vaultAccountNamesStartingIndex) then adding a prefix to the names. If names array is used it'll fail | [optional] | +|**tagIds** | **List<UUID>** | Optional list of tag IDs to attach to all created vault accounts | [optional] | diff --git a/docs/DirectAccessProvider.md b/docs/DirectAccessProvider.md index 416c2ef2..8bcfbbca 100644 --- a/docs/DirectAccessProvider.md +++ b/docs/DirectAccessProvider.md @@ -11,9 +11,11 @@ |**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/DirectAccessProviderDetails.md b/docs/DirectAccessProviderInfo.md similarity index 77% rename from docs/DirectAccessProviderDetails.md rename to docs/DirectAccessProviderInfo.md index 1edc3893..5dbfe773 100644 --- a/docs/DirectAccessProviderDetails.md +++ b/docs/DirectAccessProviderInfo.md @@ -1,6 +1,6 @@ -# DirectAccessProviderDetails +# DirectAccessProviderInfo ## Properties @@ -10,6 +10,7 @@ |**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/DirectProviderDetails.md b/docs/DirectProviderDetails.md new file mode 100644 index 00000000..fb668d9f --- /dev/null +++ b/docs/DirectProviderDetails.md @@ -0,0 +1,21 @@ + + +# 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/ExecutionRequestDetailsType.md b/docs/ExecutionRequestDetailsType.md new file mode 100644 index 00000000..e69dc4d3 --- /dev/null +++ b/docs/ExecutionRequestDetailsType.md @@ -0,0 +1,13 @@ + + +# ExecutionRequestDetailsType + +## Enum + + +* `QUOTE` (value: `"QUOTE"`) + +* `MARKET` (value: `"MARKET"`) + + + diff --git a/docs/ExtraParameters.md b/docs/ExtraParameters.md index 1cf55364..5ff9d98f 100644 --- a/docs/ExtraParameters.md +++ b/docs/ExtraParameters.md @@ -2,7 +2,7 @@ # ExtraParameters -Additional protocol / operation specific key-value parameters: For UTXO-based blockchain input selection, add the key `inputsSelection` with the value set to the [input selection structure.](https://developers.fireblocks.com/reference/transaction-objects#inputsselection) The inputs can be retrieved from the [Retrieve Unspent Inputs endpoint.](https://developers.fireblocks.com/reference/get_vault-accounts-vaultaccountid-assetid-unspent-inputs) For `RAW` operations, add the key `rawMessageData` with the value set to the [raw message data structure.](https://developers.fireblocks.com/reference/raw-signing-objects#rawmessagedata) For `CONTRACT_CALL` operations, add the key `contractCallData` with the value set to the Ethereum smart contract Application Binary Interface (ABI) payload. The Fireblocks [development libraries](https://developers.fireblocks.com/docs/ethereum-development#convenience-libraries) are recommended for building contract call transactions. For **exchange compliance (e.g., Binance) and Travel Rule purposes**, include the key `piiData` containing a **custom JSON structure** with Personally Identifiable Information (PII) relevant to the transaction. This data must be fully **encrypted by the sender** before being submitted to the Fireblocks API. The recommended encryption method is **hybrid encryption** using AES-256-GCM for the payload and RSA-OAEP for key exchange, with the recipient exchange's public key. [development libraries](https://developers.fireblocks.com/docs/a-developers-guide-to-constructing-encrypted-pii-messages-for-binance-via-fireblocks) **Note:** `rawMessageData`, `contractCallData`, and `inputsSelection` cannot be used together in the same call. +Additional protocol / operation specific key-value parameters: For UTXO-based blockchain input selection, add the key `inputsSelection` with the value set to the [input selection structure.](https://developers.fireblocks.com/reference/transaction-objects#inputsselection) The inputs can be retrieved from the [Retrieve Unspent Inputs endpoint.](https://developers.fireblocks.com/reference/getunspentinputs) For `RAW` operations, add the key `rawMessageData` with the value set to the [raw message data structure.](https://developers.fireblocks.com/reference/raw-signing-objects#rawmessagedata) For `CONTRACT_CALL` operations, add the key `contractCallData` with the value set to the Ethereum smart contract Application Binary Interface (ABI) payload. The Fireblocks [development libraries](https://developers.fireblocks.com/docs/ethereum-development#convenience-libraries) are recommended for building contract call transactions. For **exchange compliance (e.g., Binance) and Travel Rule purposes**, include the key `piiData` containing a **custom JSON structure** with Personally Identifiable Information (PII) relevant to the transaction. This data must be fully **encrypted by the sender** before being submitted to the Fireblocks API. The recommended encryption method is **hybrid encryption** using AES-256-GCM for the payload and RSA-OAEP for key exchange, with the recipient exchange's public key. [development libraries](https://developers.fireblocks.com/docs/a-developers-guide-to-constructing-encrypted-pii-messages-for-binance-via-fireblocks) **Note:** `rawMessageData`, `contractCallData`, and `inputsSelection` cannot be used together in the same call. ## Properties diff --git a/docs/GetTransactionOperation.md b/docs/GetTransactionOperation.md index 77121dfe..b5c2505c 100644 --- a/docs/GetTransactionOperation.md +++ b/docs/GetTransactionOperation.md @@ -21,10 +21,6 @@ * `STAKE` (value: `"STAKE"`) -* `UNSTAKE` (value: `"UNSTAKE"`) - -* `WITHDRAW` (value: `"WITHDRAW"`) - * `REDEEM_FROM_COMPOUND` (value: `"REDEEM_FROM_COMPOUND"`) * `SUPPLY_TO_COMPOUND` (value: `"SUPPLY_TO_COMPOUND"`) diff --git a/docs/GleifData.md b/docs/GleifData.md new file mode 100644 index 00000000..19127290 --- /dev/null +++ b/docs/GleifData.md @@ -0,0 +1,19 @@ + + +# GleifData + +GLEIF (Global Legal Entity Identifier Foundation) data for a legal entity + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**lei** | **String** | Legal Entity Identifier (LEI) code | | +|**legalName** | **String** | Official legal name of the entity | | +|**otherNames** | **List<String>** | 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/InteracAddress.md b/docs/InteracAddress.md index 24b9abb5..17395e76 100644 --- a/docs/InteracAddress.md +++ b/docs/InteracAddress.md @@ -2,6 +2,7 @@ # InteracAddress +When true, funds are deposited directly into the recipient's bank account without a security question. When false, a security question and answer are required to complete the transfer ## Properties @@ -10,6 +11,9 @@ |**accountHolder** | [**AccountHolderDetails**](AccountHolderDetails.md) | | | |**recipientHandle** | [**RecipientHandle**](RecipientHandle.md) | | | |**message** | **String** | The message to be sent to the recipient | [optional] | +|**autoDeposit** | **Boolean** | Whether to automatically deposit the funds into the account | | +|**securityQuestion** | **String** | The security question to be used for the security answer | [optional] | +|**securityAnswer** | **String** | The security answer to be used for the security question | [optional] | diff --git a/docs/JobCreated.md b/docs/JobCreated.md index acbe1693..99cd53eb 100644 --- a/docs/JobCreated.md +++ b/docs/JobCreated.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**jobId** | **String** | | [optional] | +|**approvalRequestId** | **String** | Approval request ID. Returned when a tag triggers an approval flow. | [optional] | diff --git a/docs/LegalEntityRegistration.md b/docs/LegalEntityRegistration.md new file mode 100644 index 00000000..c5b7f3a8 --- /dev/null +++ b/docs/LegalEntityRegistration.md @@ -0,0 +1,22 @@ + + +# LegalEntityRegistration + +Legal entity registration record + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **UUID** | Unique registration identifier | | +|**lei** | **String** | Legal Entity Identifier (LEI) code | | +|**status** | **LeiStatus** | | | +|**isDefault** | **Boolean** | Whether this is the default legal entity for the workspace | | +|**travelRuleProviders** | **List<TravelRuleProvider>** | Travel rule providers configured for this registration | | +|**travelRuleContactEmail** | **String** | Contact email for travel rule communications | [optional] | +|**gleifData** | [**GleifData**](GleifData.md) | | [optional] | +|**createdAt** | **String** | Creation timestamp in milliseconds since epoch | | +|**updatedAt** | **String** | Last update timestamp in milliseconds since epoch | | + + + diff --git a/docs/LeiStatus.md b/docs/LeiStatus.md new file mode 100644 index 00000000..efc0b4df --- /dev/null +++ b/docs/LeiStatus.md @@ -0,0 +1,17 @@ + + +# LeiStatus + +## Enum + + +* `PENDING` (value: `"PENDING"`) + +* `APPROVED` (value: `"APPROVED"`) + +* `DENIED` (value: `"DENIED"`) + +* `REVOKED` (value: `"REVOKED"`) + + + diff --git a/docs/ListLegalEntitiesResponse.md b/docs/ListLegalEntitiesResponse.md new file mode 100644 index 00000000..f854c655 --- /dev/null +++ b/docs/ListLegalEntitiesResponse.md @@ -0,0 +1,17 @@ + + +# ListLegalEntitiesResponse + +Paginated response containing a list of legal entity registrations + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**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/ListVaultsForRegistrationResponse.md b/docs/ListVaultsForRegistrationResponse.md new file mode 100644 index 00000000..8f1a91d8 --- /dev/null +++ b/docs/ListVaultsForRegistrationResponse.md @@ -0,0 +1,17 @@ + + +# ListVaultsForRegistrationResponse + +Response containing vault account IDs assigned to a legal entity registration + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**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 b1095e49..769ea00c 100644 --- a/docs/Manifest.md +++ b/docs/Manifest.md @@ -2,13 +2,15 @@ # Manifest +The manifest of the provider, describing its supported order, quote, and rate requirements. ## Properties | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**assetTypes** | **List<AssetTypeEnum>** | | | -|**capabilities** | **List<Capability>** | | | +|**order** | [**ManifestOrder**](ManifestOrder.md) | | | +|**quote** | [**ManifestQuote**](ManifestQuote.md) | | | +|**rate** | [**ManifestBase**](ManifestBase.md) | | | diff --git a/docs/ManifestBase.md b/docs/ManifestBase.md new file mode 100644 index 00000000..1efaa4f4 --- /dev/null +++ b/docs/ManifestBase.md @@ -0,0 +1,14 @@ + + +# ManifestBase + +Base manifest schema with common properties + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**supported** | **Boolean** | Indicates whether the endpoint is supported by the provider | | + + + diff --git a/docs/ManifestOrder.md b/docs/ManifestOrder.md new file mode 100644 index 00000000..4fd56c5d --- /dev/null +++ b/docs/ManifestOrder.md @@ -0,0 +1,15 @@ + + +# ManifestOrder + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**supported** | **Boolean** | Indicates whether the endpoint is supported by the provider | | +|**settlementTypes** | **List<SettlementTypeEnum>** | Supported settlement types when creating an order. If present - settlement is required. If absent - no need to provide settlement. | [optional] | +|**executionTypes** | **List<ExecutionRequestDetailsType>** | Supported execution types when creating an order. | | + + + diff --git a/docs/ManifestOrderInfo.md b/docs/ManifestOrderInfo.md new file mode 100644 index 00000000..003d8b63 --- /dev/null +++ b/docs/ManifestOrderInfo.md @@ -0,0 +1,15 @@ + + +# ManifestOrderInfo + +Defines requirements for the POST /orders endpoint. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**settlementTypes** | **List<SettlementTypeEnum>** | Supported settlement types when creating an order. If present - settlement is required. If absent - no need to provide settlement. | [optional] | +|**executionTypes** | **List<ExecutionRequestDetailsType>** | Supported execution types when creating an order. | | + + + diff --git a/docs/ManifestQuote.md b/docs/ManifestQuote.md new file mode 100644 index 00000000..18306b0b --- /dev/null +++ b/docs/ManifestQuote.md @@ -0,0 +1,14 @@ + + +# ManifestQuote + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**supported** | **Boolean** | Indicates whether the endpoint is supported by the provider | | +|**settlementTypes** | **List<DVPSettlementType>** | Supported settlement types when requesting a quote. If present - settlement is required. If absent - no need to provide settlement. | [optional] | + + + diff --git a/docs/ManifestQuoteInfo.md b/docs/ManifestQuoteInfo.md new file mode 100644 index 00000000..ed6d24fc --- /dev/null +++ b/docs/ManifestQuoteInfo.md @@ -0,0 +1,14 @@ + + +# ManifestQuoteInfo + +Defines requirements for the POST /quotes endpoint. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**settlementTypes** | **List<DVPSettlementType>** | Supported settlement types when requesting a quote. If present - settlement is required. If absent - no need to provide settlement. | [optional] | + + + diff --git a/docs/NftsApi.md b/docs/NftsApi.md index 33c17dd4..890f09af 100644 --- a/docs/NftsApi.md +++ b/docs/NftsApi.md @@ -262,7 +262,7 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| -| **blockchainDescriptor** | **String**| Blockchain descriptor filter | [optional] [enum: ETH, ETH_TEST3, ETH_TEST5, ETH_TEST6, POLYGON, POLYGON_TEST_MUMBAI, AMOY_POLYGON_TEST, XTZ, XTZ_TEST, BASECHAIN_ETH, BASECHAIN_ETH_TEST3, BASECHAIN_ETH_TEST5, ETHERLINK, ETHERLINK_TEST, MANTLE, MANTLE_TEST, GUN_GUNZILLA, GUN_GUNZILLA_TEST, ETH_SONEIUM, SONEIUM_MINATO_TEST, IOTX_IOTEX, KLAY_KAIA, KLAY_KAIA_TEST, APECHAIN, APECHAIN_TEST, CRONOS, CRONOS_TEST] | +| **blockchainDescriptor** | **String**| Blockchain descriptor filter | [optional] [enum: ETH, ETH_TEST3, ETH_TEST5, ETH_TEST6, POLYGON, POLYGON_TEST_MUMBAI, AMOY_POLYGON_TEST, XTZ, XTZ_TEST, BASECHAIN_ETH, BASECHAIN_ETH_TEST3, BASECHAIN_ETH_TEST5, ETHERLINK, ETHERLINK_TEST, MANTLE, MANTLE_TEST, GUN_GUNZILLA, GUN_GUNZILLA_TEST, ETH_SONEIUM, SONEIUM_MINATO_TEST, IOTX_IOTEX, KLAY_KAIA, KLAY_KAIA_TEST, APECHAIN, APECHAIN_TEST, CRONOS, CRONOS_TEST, ROBINHOOD_CHAIN_TESTNET_TEST] | | **vaultAccountIds** | **String**| A comma separated list of Vault Account IDs. Up to 100 are allowed in a single request. This field will be ignored when walletType=END_USER_WALLET or ncwId is provided. | [optional] | | **ncwId** | **String**| Tenant's Non-Custodial Wallet ID | [optional] | | **ncwAccountIds** | **String**| A comma separated list of Non-Custodial account IDs. Up to 100 are allowed in a single request. This field will be ignored when walletType=VAULT_ACCOUNT or ncwId is not provided. | [optional] | @@ -637,7 +637,7 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| -| **blockchainDescriptor** | **String**| Blockchain descriptor filter | [enum: ETH, ETH_TEST5, ETH_TEST6, POLYGON, POLYGON_TEST_MUMBAI, AMOY_POLYGON_TEST, BASECHAIN_ETH, BASECHAIN_ETH_TEST5, ETHERLINK, ETHERLINK_TEST, MANTLE, MANTLE_TEST, GUN_GUNZILLA, GUN_GUNZILLA_TEST, ETH_SONEIUM, SONEIUM_MINATO_TEST, IOTX_IOTEX, KLAY_KAIA, KLAY_KAIA_TEST, APECHAIN, APECHAIN_TEST] | +| **blockchainDescriptor** | **String**| Blockchain descriptor filter | [enum: ETH, ETH_TEST5, ETH_TEST6, POLYGON, POLYGON_TEST_MUMBAI, AMOY_POLYGON_TEST, BASECHAIN_ETH, BASECHAIN_ETH_TEST5, ETHERLINK, ETHERLINK_TEST, MANTLE, MANTLE_TEST, GUN_GUNZILLA, GUN_GUNZILLA_TEST, ETH_SONEIUM, SONEIUM_MINATO_TEST, IOTX_IOTEX, KLAY_KAIA, KLAY_KAIA_TEST, APECHAIN, APECHAIN_TEST, ROBINHOOD_CHAIN_TESTNET_TEST] | | **vaultAccountId** | **String**| Vault account filter | | | **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] | diff --git a/docs/Position.md b/docs/Position.md new file mode 100644 index 00000000..75d1423f --- /dev/null +++ b/docs/Position.md @@ -0,0 +1,61 @@ + + +# Position + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | The unique identifier of the staking position | | +|**vaultAccountId** | **String** | The source vault account to stake from | | +|**validatorName** | **String** | The destination validator address name | | +|**providerName** | **String** | The destination validator provider name | | +|**chainDescriptor** | **String** | The protocol identifier (e.g. \"ETH\"/ \"SOL\") to use | | +|**amount** | **String** | Total value of the staking position. For Solana, Lido and Ethereum (compounding validator): includes the original stake plus accumulated rewards. For MATIC, Cosmos and Ethereum (legacy validator): refers to the amount currently staked. | | +|**rewardsAmount** | **String** | The amount staked in the position, measured in the staked asset unit. | | +|**dateCreated** | **OffsetDateTime** | When was the request made (ISO Date). | | +|**dateUpdated** | **OffsetDateTime** | When has the position last changed (ISO Date). | | +|**status** | [**StatusEnum**](#StatusEnum) | The current status. | | +|**validatorAddress** | **String** | The destination address of the staking transaction. | | +|**providerId** | **StakingProvider** | | | +|**availableActions** | [**List<AvailableActionsEnum>**](#List<AvailableActionsEnum>) | An array of available actions that can be performed. for example, actions like \"UNSTAKE\" or \"WITHDRAW\". | | +|**inProgress** | **Boolean** | Indicates whether there is an ongoing action for this position related to this request | | +|**inProgressTxId** | **String** | The transaction ID of the initial stake position request only. Only present when there is an active initial stake transaction. | [optional] | +|**blockchainPositionInfo** | [**DelegationBlockchainPositionInfo**](DelegationBlockchainPositionInfo.md) | | | + + + +## Enum: StatusEnum + +| Name | Value | +|---- | -----| +| CREATING | "CREATING" | +| PENDING | "PENDING" | +| ACTIVATING | "ACTIVATING" | +| ACTIVE | "ACTIVE" | +| DEACTIVATING | "DEACTIVATING" | +| DEACTIVATED | "DEACTIVATED" | +| WITHDRAWING | "WITHDRAWING" | +| WITHDRAWN | "WITHDRAWN" | +| MERGED | "MERGED" | +| CONSOLIDATED | "CONSOLIDATED" | +| CANCELED | "CANCELED" | +| FAILED | "FAILED" | + + + +## Enum: List<AvailableActionsEnum> + +| Name | Value | +|---- | -----| +| UNSTAKE | "UNSTAKE" | +| WITHDRAW | "WITHDRAW" | +| ADD_TO_STAKE | "ADD_TO_STAKE" | +| SPLIT | "SPLIT" | +| MERGE | "MERGE" | +| CLAIM_REWARDS | "CLAIM_REWARDS" | +| CONSOLIDATE | "CONSOLIDATE" | + + + diff --git a/docs/RegisterLegalEntityRequest.md b/docs/RegisterLegalEntityRequest.md new file mode 100644 index 00000000..7912747e --- /dev/null +++ b/docs/RegisterLegalEntityRequest.md @@ -0,0 +1,16 @@ + + +# RegisterLegalEntityRequest + +Request body to register a new legal entity + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**lei** | **String** | Legal Entity Identifier (LEI) code to register. Must be a valid 20-character LEI present in the GLEIF registry. | | +|**travelRuleProviders** | **List<TravelRuleProvider>** | Travel rule providers to associate with this registration | [optional] | +|**travelRuleContactEmail** | **String** | Contact email for travel rule communications | [optional] | + + + diff --git a/docs/ScreeningAmlResult.md b/docs/ScreeningAmlResult.md index ae17f445..3366ba26 100644 --- a/docs/ScreeningAmlResult.md +++ b/docs/ScreeningAmlResult.md @@ -2,7 +2,7 @@ # ScreeningAmlResult -Detailed AML screening result information. Contains alerts, risk scores, and other AML-specific data from provider-specific responses. +Deprecated: This field is not currently returned in the API response. Detailed AML screening result information. Contains alerts, risk scores, and other AML-specific data from provider-specific responses. ## Properties diff --git a/docs/ScreeningRiskLevelEnum.md b/docs/ScreeningRiskLevelEnum.md deleted file mode 100644 index 06f4624a..00000000 --- a/docs/ScreeningRiskLevelEnum.md +++ /dev/null @@ -1,21 +0,0 @@ - - -# ScreeningRiskLevelEnum - -## Enum - - -* `VERY_HIGH` (value: `"VERY_HIGH"`) - -* `SEVERE` (value: `"SEVERE"`) - -* `HIGH` (value: `"HIGH"`) - -* `MEDIUM` (value: `"MEDIUM"`) - -* `LOW` (value: `"LOW"`) - -* `UNKNOWN` (value: `"UNKNOWN"`) - - - diff --git a/docs/ScreeningTravelRuleResult.md b/docs/ScreeningTravelRuleResult.md index decc6b25..feb81ef0 100644 --- a/docs/ScreeningTravelRuleResult.md +++ b/docs/ScreeningTravelRuleResult.md @@ -2,7 +2,7 @@ # ScreeningTravelRuleResult -Detailed Travel Rule screening result containing provider-specific data. Contains Travel Rule specific information like verified status, rule type, and actions. +Deprecated: This field is not currently returned in the API response. Detailed Travel Rule screening result containing provider-specific data. Contains Travel Rule specific information like verified status, rule type, and actions. ## Properties diff --git a/docs/SettlementTypeEnum.md b/docs/SettlementTypeEnum.md new file mode 100644 index 00000000..43c9a1f6 --- /dev/null +++ b/docs/SettlementTypeEnum.md @@ -0,0 +1,13 @@ + + +# SettlementTypeEnum + +## Enum + + +* `DVP` (value: `"DVP"`) + +* `PREFUNDED` (value: `"PREFUNDED"`) + + + diff --git a/docs/StakingApi.md b/docs/StakingApi.md index eec08493..9a922f36 100644 --- a/docs/StakingApi.md +++ b/docs/StakingApi.md @@ -11,6 +11,7 @@ All URIs are relative to https://developers.fireblocks.com/reference/ | [**getChainInfo**](StakingApi.md#getChainInfo) | **GET** /staking/chains/{chainDescriptor}/chainInfo | Get chain-level staking parameters | | [**getChains**](StakingApi.md#getChains) | **GET** /staking/chains | List supported staking chains | | [**getDelegationById**](StakingApi.md#getDelegationById) | **GET** /staking/positions/{id} | Get position details | +| [**getPositions**](StakingApi.md#getPositions) | **GET** /staking/positions_paginated | List staking positions (Paginated) | | [**getProviders**](StakingApi.md#getProviders) | **GET** /staking/providers | List staking providers | | [**getSummary**](StakingApi.md#getSummary) | **GET** /staking/positions/summary | Get positions summary | | [**getSummaryByVault**](StakingApi.md#getSummaryByVault) | **GET** /staking/positions/summary/vaults | Get positions summary by vault | @@ -208,7 +209,7 @@ No authorization required Consolidate staking positions (ETH validator consolidation) -Consolidates the source staking position into the destination, merging the balance into the destination and closing the source position once complete. Both positions must be from the same validator provider and same vault account. On chain, this translates into a consolidation transaction, where the source validator is consolidated into the destination validator. Supported chains: Ethereum (ETH) only. </br>Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, Editor. +Consolidates the source staking position into the destination, merging the balance into the destination and closing the source position once complete. Both positions must be from the same funding vaults account (i.e. same withdrawals credentials). On chain, this translates into a consolidation transaction, where the source validator is consolidated into the destination validator. Supported chains: Ethereum (ETH) only. </br>Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, Editor. **Note:** This endpoint is currently in beta and might be subject to changes. ### Example @@ -296,7 +297,7 @@ No authorization required ## getAllDelegations -> CompletableFuture>> getAllDelegations getAllDelegations(chainDescriptor) +> CompletableFuture>> getAllDelegations getAllDelegations(chainDescriptor, vaultAccountId) List staking positions @@ -326,8 +327,9 @@ public class Example { Fireblocks fireblocks = new Fireblocks(configurationOptions); ChainDescriptor chainDescriptor = ChainDescriptor.fromValue("ATOM_COS"); // ChainDescriptor | Protocol identifier to filter positions (e.g., ATOM_COS/AXL/CELESTIA}). If omitted, positions across all supported chains are returned. + String vaultAccountId = "1"; // String | Filter positions by vault account ID. try { - CompletableFuture>> response = fireblocks.staking().getAllDelegations(chainDescriptor); + CompletableFuture>> response = fireblocks.staking().getAllDelegations(chainDescriptor, vaultAccountId); System.out.println("Status code: " + response.get().getStatusCode()); System.out.println("Response headers: " + response.get().getHeaders()); System.out.println("Response body: " + response.get().getData()); @@ -355,6 +357,7 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| | **chainDescriptor** | [**ChainDescriptor**](.md)| Protocol identifier to filter positions (e.g., ATOM_COS/AXL/CELESTIA}). If omitted, positions across all supported chains are returned. | [optional] [enum: ATOM_COS, AXL, AXL_TEST, CELESTIA, DYDX_DYDX, ETH, ETH_TEST6, ETH_TEST_HOODI, INJ_INJ, MANTRA, MATIC, OSMO, SOL, SOL_TEST, STETH_ETH, STETH_ETH_TEST6_DZFA, STETH_ETH_TEST_HOODI] | +| **vaultAccountId** | **String**| Filter positions by vault account ID. | [optional] | ### Return type @@ -641,6 +644,102 @@ No authorization required | **0** | Error Response | * X-Request-ID -
| +## getPositions + +> CompletableFuture> getPositions getPositions(pageSize, chainDescriptor, vaultAccountId, pageCursor, order) + +List staking positions (Paginated) + +Returns staking positions with core details: amounts, rewards, status, chain, and vault. It supports cursor-based pagination for efficient data retrieval. This endpoint always returns a paginated response with {data, next} structure. </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.StakingApi; +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 pageSize = 10; // Integer | Number of results per page. When provided, the response returns a paginated object with {data, next}. If omitted, all results are returned as an array. + ChainDescriptor chainDescriptor = ChainDescriptor.fromValue("ATOM_COS"); // ChainDescriptor | Protocol identifier to filter positions (e.g., ATOM_COS/AXL/CELESTIA}). If omitted, positions across all supported chains are returned. + String vaultAccountId = "10"; // String | Filter positions by Fireblocks vault account ID. If omitted, positions across all vault accounts are returned. + String pageCursor = "eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9"; // String | Cursor for the next page of results. Use the value from the 'next' field in the previous response. + String order = "ASC"; // String | ASC / DESC ordering (default DESC) + try { + CompletableFuture> response = fireblocks.staking().getPositions(pageSize, chainDescriptor, vaultAccountId, pageCursor, 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 StakingApi#getPositions"); + 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 StakingApi#getPositions"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **pageSize** | **Integer**| Number of results per page. When provided, the response returns a paginated object with {data, next}. If omitted, all results are returned as an array. | [default to 10] | +| **chainDescriptor** | [**ChainDescriptor**](.md)| Protocol identifier to filter positions (e.g., ATOM_COS/AXL/CELESTIA}). If omitted, positions across all supported chains are returned. | [optional] [enum: ATOM_COS, AXL, AXL_TEST, CELESTIA, DYDX_DYDX, ETH, ETH_TEST6, ETH_TEST_HOODI, INJ_INJ, MANTRA, MATIC, OSMO, SOL, SOL_TEST, STETH_ETH, STETH_ETH_TEST6_DZFA, STETH_ETH_TEST_HOODI] | +| **vaultAccountId** | **String**| Filter positions by Fireblocks vault account ID. If omitted, positions across all vault accounts are returned. | [optional] | +| **pageCursor** | **String**| Cursor for the next page of results. Use the value from the 'next' field in the previous response. | [optional] | +| **order** | **String**| ASC / DESC ordering (default 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** | Positions retrieved successfully with pagination. | * 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 -
| + + ## getProviders > CompletableFuture>> getProviders getProviders() diff --git a/docs/StakingPositionsPaginatedResponse.md b/docs/StakingPositionsPaginatedResponse.md new file mode 100644 index 00000000..1640b91f --- /dev/null +++ b/docs/StakingPositionsPaginatedResponse.md @@ -0,0 +1,14 @@ + + +# StakingPositionsPaginatedResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**List<Position>**](Position.md) | The data of the current page of staking positions | | +|**next** | **String** | The cursor for the next page | [optional] | + + + diff --git a/docs/TRLinkCreateIntegrationRequest.md b/docs/TRLinkCreateIntegrationRequest.md index adbcddb9..0211a871 100644 --- a/docs/TRLinkCreateIntegrationRequest.md +++ b/docs/TRLinkCreateIntegrationRequest.md @@ -9,6 +9,7 @@ |------------ | ------------- | ------------- | -------------| |**customerId** | **UUID** | Customer unique identifier | | |**partnerIdent** | **String** | Partner identification code (e.g., \"sumsub\", \"notabene\") | | +|**customerIntegrationId** | **UUID** | Optional. When supplied and permitted for the tenant (feature flag / CSM arrangement), this value is used as the TRLink integration identifier instead of a server-generated UUID. If omitted, the API generates a UUID. If supplied when the tenant is not permitted to set a custom id, the request fails with 400. Contact your CSM if you need a custom integration id. | [optional] | diff --git a/docs/TokenOwnershipResponse.md b/docs/TokenOwnershipResponse.md index b38e4229..e6317e85 100644 --- a/docs/TokenOwnershipResponse.md +++ b/docs/TokenOwnershipResponse.md @@ -59,6 +59,7 @@ | APECHAIN_TEST | "APECHAIN_TEST" | | CRONOS | "CRONOS" | | CRONOS_TEST | "CRONOS_TEST" | +| ROBINHOOD_CHAIN_TESTNET_TEST | "ROBINHOOD_CHAIN_TESTNET_TEST" | diff --git a/docs/TokenResponse.md b/docs/TokenResponse.md index 38bc49b2..fab02ae1 100644 --- a/docs/TokenResponse.md +++ b/docs/TokenResponse.md @@ -52,6 +52,7 @@ | APECHAIN_TEST | "APECHAIN_TEST" | | CRONOS | "CRONOS" | | CRONOS_TEST | "CRONOS_TEST" | +| ROBINHOOD_CHAIN_TESTNET_TEST | "ROBINHOOD_CHAIN_TESTNET_TEST" | diff --git a/docs/TrLinkApi.md b/docs/TrLinkApi.md index e5b79e32..11699623 100644 --- a/docs/TrLinkApi.md +++ b/docs/TrLinkApi.md @@ -115,7 +115,7 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | Travel rule assessment completed | - | +| **200** | Travel rule assessment completed | * X-Request-ID -
| | **0** | Error Response | * X-Request-ID -
| @@ -204,7 +204,7 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **202** | Transaction cancellation request accepted | - | +| **202** | Transaction cancellation request accepted | * X-Request-ID -
| | **0** | Error Response | * X-Request-ID -
| @@ -291,7 +291,7 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | Customer integration connected successfully | - | +| **200** | Customer integration connected successfully | * X-Request-ID -
| | **0** | Error Response | * X-Request-ID -
| @@ -376,7 +376,7 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **201** | Customer created successfully | - | +| **201** | Customer created successfully | * X-Request-ID -
| | **0** | Error Response | * X-Request-ID -
| @@ -386,7 +386,7 @@ No authorization required Create customer integration -Creates a new TRSupport integration for a customer. This establishes a connection placeholder between a customer and a Travel Rule partner. Use the connect endpoint to provide credentials after creation. +Creates a new TRSupport integration for a customer. This establishes a connection placeholder between a customer and a Travel Rule partner. Use the connect endpoint to provide credentials after creation. You may optionally supply `customerIntegrationId` in the request body when your tenant is enabled for client-provided integration ids. ### Example @@ -461,7 +461,7 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **201** | Customer integration created successfully | - | +| **201** | Customer integration created successfully | * X-Request-ID -
| | **0** | Error Response | * X-Request-ID -
| @@ -548,7 +548,7 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **201** | TRM created successfully | - | +| **201** | TRM created successfully | * X-Request-ID -
| | **0** | Error Response | * X-Request-ID -
| @@ -630,7 +630,7 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **204** | Customer deleted successfully | - | +| **204** | Customer deleted successfully | * X-Request-ID -
| | **0** | Error Response | * X-Request-ID -
| @@ -640,7 +640,7 @@ No authorization required Disconnect customer integration -Disconnects a customer integration by removing stored credentials. The integration record is deleted and cannot be recovered. +Disconnects the integration for the authenticated workspace (tenant): removes stored credentials and deletes this tenant's integration record. The operation is scoped to the caller's tenant; it does not remove partner-side state for other workspaces that reuse the same logical customer integration. The record cannot be recovered after delete. ### Example @@ -712,7 +712,7 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **204** | Customer integration disconnected successfully | - | +| **204** | Customer integration disconnected successfully | * X-Request-ID -
| | **0** | Error Response | * X-Request-ID -
| @@ -795,7 +795,7 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | Customer retrieved successfully | - | +| **200** | Customer retrieved successfully | * X-Request-ID -
| | **0** | Error Response | * X-Request-ID -
| @@ -880,7 +880,7 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | Customer integration retrieved successfully | - | +| **200** | Customer integration retrieved successfully | * X-Request-ID -
| | **0** | Error Response | * X-Request-ID -
| @@ -963,7 +963,7 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | Customer integrations retrieved successfully | - | +| **200** | Customer integrations retrieved successfully | * X-Request-ID -
| | **0** | Error Response | * X-Request-ID -
| @@ -1042,7 +1042,7 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | Customers retrieved successfully | - | +| **200** | Customers retrieved successfully | * X-Request-ID -
| | **0** | Error Response | * X-Request-ID -
| @@ -1125,7 +1125,7 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | Public key retrieved successfully | - | +| **200** | Public key retrieved successfully | * X-Request-ID -
| | **0** | Error Response | * X-Request-ID -
| @@ -1204,7 +1204,7 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | List of partners retrieved successfully | - | +| **200** | List of partners retrieved successfully | * X-Request-ID -
| | **0** | Error Response | * X-Request-ID -
| @@ -1283,7 +1283,7 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | Policy retrieved successfully | - | +| **200** | Policy retrieved successfully | * X-Request-ID -
| | **0** | Error Response | * X-Request-ID -
| @@ -1368,7 +1368,7 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | Asset retrieved successfully | - | +| **200** | Asset retrieved successfully | * X-Request-ID -
| | **0** | Error Response | * X-Request-ID -
| @@ -1453,7 +1453,7 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | TRM retrieved successfully | - | +| **200** | TRM retrieved successfully | * X-Request-ID -
| | **0** | Error Response | * X-Request-ID -
| @@ -1538,7 +1538,7 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | VASP retrieved successfully | - | +| **200** | VASP retrieved successfully | * X-Request-ID -
| | **0** | Error Response | * X-Request-ID -
| @@ -1625,7 +1625,7 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | Supported assets retrieved successfully | - | +| **200** | Supported assets retrieved successfully | * X-Request-ID -
| | **0** | Error Response | * X-Request-ID -
| @@ -1712,7 +1712,7 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | VASPs retrieved successfully | - | +| **200** | VASPs retrieved successfully | * X-Request-ID -
| | **0** | Error Response | * X-Request-ID -
| @@ -1801,7 +1801,7 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **202** | Transaction redirect request accepted | - | +| **202** | Transaction redirect request accepted | * X-Request-ID -
| | **0** | Error Response | * X-Request-ID -
| @@ -1888,7 +1888,7 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | Destination travel rule message ID set successfully | - | +| **200** | Destination travel rule message ID set successfully | * X-Request-ID -
| | **0** | Error Response | * X-Request-ID -
| @@ -1975,7 +1975,7 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | Travel rule message ID set successfully | - | +| **200** | Travel rule message ID set successfully | * X-Request-ID -
| | **0** | Error Response | * X-Request-ID -
| @@ -2060,7 +2060,7 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | Connection test completed (success or failure details in response body) | - | +| **200** | Connection test completed (success or failure details in response body) | * X-Request-ID -
| | **0** | Error Response | * X-Request-ID -
| @@ -2147,6 +2147,6 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | Customer updated successfully | - | +| **200** | Customer updated successfully | * X-Request-ID -
| | **0** | Error Response | * X-Request-ID -
| diff --git a/docs/TradingBetaApi.md b/docs/TradingBetaApi.md index 0c204c85..0a7a4f8b 100644 --- a/docs/TradingBetaApi.md +++ b/docs/TradingBetaApi.md @@ -8,6 +8,7 @@ All URIs are relative to https://developers.fireblocks.com/reference/ | [**createQuote**](TradingBetaApi.md#createQuote) | **POST** /trading/quotes | Create a quote | | [**getOrder**](TradingBetaApi.md#getOrder) | **GET** /trading/orders/{orderId} | Get order details | | [**getOrders**](TradingBetaApi.md#getOrders) | **GET** /trading/orders | Get orders | +| [**getTradingProviderById**](TradingBetaApi.md#getTradingProviderById) | **GET** /trading/providers/{providerId} | Get trading provider by ID | | [**getTradingProviders**](TradingBetaApi.md#getTradingProviders) | **GET** /trading/providers | Get providers | @@ -383,6 +384,94 @@ No authorization required | **0** | Error Response | * X-Request-ID -
| +## getTradingProviderById + +> 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). + +### 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.TradingBetaApi; +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 = "providerId_example"; // String | The unique identifier of the provider. + try { + 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()); + } catch (InterruptedException | ExecutionException e) { + ApiException apiException = (ApiException)e.getCause(); + System.err.println("Exception when calling TradingBetaApi#getTradingProviderById"); + 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 TradingBetaApi#getTradingProviderById"); + 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**| The unique identifier of the provider. | | + +### 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** | 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 -
| +| **429** | Rate limit exceeded - slow down and retry later. | * X-Request-ID -
| +| **5XX** | Internal error while processing the request. | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| + + ## getTradingProviders > CompletableFuture> getTradingProviders getTradingProviders(pageSize, pageCursor) diff --git a/docs/TradingProviderDetails.md b/docs/TradingProviderDetails.md new file mode 100644 index 00000000..e58ec265 --- /dev/null +++ b/docs/TradingProviderDetails.md @@ -0,0 +1,37 @@ + + +# 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/TransactionResponse.md b/docs/TransactionResponse.md index e974a909..a9cca01c 100644 --- a/docs/TransactionResponse.md +++ b/docs/TransactionResponse.md @@ -14,7 +14,7 @@ |**txHash** | **String** | The hash of the transaction on the blockchain. * This parameter exists if at least one of the following conditions is met: 1. The transaction’s source type is `UNKNOWN`, `WHITELISTED_ADDRESS`, `NETWORK_CONNECTION`, `ONE_TIME_ADDRESS`, `FIAT_ACCOUNT` or `GAS_STATION`. 2. The transaction’s source type is `VAULT` and the status is either: `CONFIRMING`, `COMPLETED`, or was in any of these statuses prior to changing to `FAILED` or `REJECTED`. In some instances, transactions in status `BROADCASTING` will include the txHash as well. 3. The transaction’s source type is `EXCHANGE_ACCOUNT` and the transaction’s destination type is `VAULT`, and the status is either: `CONFIRMING`, `COMPLETED`, or was in any of these status prior to changing to `FAILED`. * In addition, the following conditions must be met: 1. The asset is a crypto asset (not fiat). 2. The transaction operation is not RAW or `TYPED_MESSAGE`. | [optional] | |**operation** | **GetTransactionOperation** | | [optional] | |**note** | **String** | Custom note, not sent to the blockchain, that describes the transaction at your Fireblocks workspace. | [optional] | -|**assetId** | **String** | The ID of the asset to transfer, for `TRANSFER`, `MINT`, `BURN`, `ENABLE_ASSET`,`STAKE` ,`UNSTAKE` or `WITHDRAW` operations. [See the list of supported assets and their IDs on Fireblocks.](https://developers.fireblocks.com/reference/get_supported-assets) | [optional] | +|**assetId** | **String** | The ID of the asset to transfer for `TRANSFER`, `MINT`, `BURN`, `ENABLE_ASSET`, or `STAKE` operations. [See the list of supported assets and their IDs on Fireblocks](https://developers.fireblocks.com/reference/get_supported-assets). | [optional] | |**assetType** | **String** | Type classification of the asset | [optional] | |**source** | [**SourceTransferPeerPathResponse**](SourceTransferPeerPathResponse.md) | | [optional] | |**sourceAddress** | **String** | For account based assets only, the source address of the transaction. **Note:** If the status is `CONFIRMING`, `COMPLETED`, or has been `CONFIRMING`; then moved forward to `FAILED` or `REJECTED`, then this parameter will contain the source address. In any other case, this parameter will be empty. | [optional] | diff --git a/docs/TravelRuleActionEnum.md b/docs/TravelRuleActionEnum.md index 89a4ff7a..25ba7640 100644 --- a/docs/TravelRuleActionEnum.md +++ b/docs/TravelRuleActionEnum.md @@ -11,5 +11,9 @@ * `BLOCK` (value: `"BLOCK"`) +* `PASS` (value: `"PASS"`) + +* `FREEZE` (value: `"FREEZE"`) + diff --git a/docs/TravelRuleOwnershipProof.md b/docs/TravelRuleOwnershipProof.md index 129c6f4c..65d86a21 100644 --- a/docs/TravelRuleOwnershipProof.md +++ b/docs/TravelRuleOwnershipProof.md @@ -14,6 +14,8 @@ Ownership proof related to the originator of the transaction. |**address** | **String** | The wallet address being verified. Examples: - For Ethereum: `0x896B...0b9b` - For Bitcoin: `1442...dxhsQ` | [optional] | |**walletProvider** | **String** | The wallet provider or method used for verification. Examples: - For Metamask: `Metamask` - For manual signature: `manual` | [optional] | |**url** | **String** | The URL for the uploaded screenshot (for `screenshot` proof types only). Example: `https://example.com/uploaded_image.png` | [optional] | +|**did** | **String** | The Decentralized Identifier (DID) associated with the ownership proof. | [optional] | +|**status** | **String** | The status of the ownership proof verification. | [optional] | |**confirmed** | **Boolean** | Whether the user confirmed ownership of the wallet (for `self-declaration` proofs). Example: `true` | [optional] | diff --git a/docs/TravelRuleProvider.md b/docs/TravelRuleProvider.md new file mode 100644 index 00000000..ae4661cd --- /dev/null +++ b/docs/TravelRuleProvider.md @@ -0,0 +1,29 @@ + + +# TravelRuleProvider + +## Enum + + +* `CODE` (value: `"CODE"`) + +* `GTR` (value: `"GTR"`) + +* `MY_OWN` (value: `"MY_OWN"`) + +* `NOTABENE` (value: `"NOTABENE"`) + +* `SYGNA` (value: `"SYGNA"`) + +* `SUMSUB` (value: `"SUMSUB"`) + +* `TRISA` (value: `"TRISA"`) + +* `TRUST` (value: `"TRUST"`) + +* `TWENTY_ONE_ANALYTICS` (value: `"TWENTY_ONE_ANALYTICS"`) + +* `VERIFY_VASP` (value: `"VERIFY_VASP"`) + + + diff --git a/docs/TravelRuleResult.md b/docs/TravelRuleResult.md index 57ce8168..9274e9d6 100644 --- a/docs/TravelRuleResult.md +++ b/docs/TravelRuleResult.md @@ -2,7 +2,7 @@ # TravelRuleResult -Detailed Travel Rule screening result containing provider-specific data. Contains Travel Rule specific information like verified status, rule type, and actions. +Deprecated: This field is not currently returned in the API response. Detailed Travel Rule screening result containing provider-specific data. Contains Travel Rule specific information like verified status, rule type, and actions. ## Properties diff --git a/docs/TravelRuleStatusEnum.md b/docs/TravelRuleStatusEnum.md index fad0c492..7514dacc 100644 --- a/docs/TravelRuleStatusEnum.md +++ b/docs/TravelRuleStatusEnum.md @@ -15,5 +15,11 @@ * `FROZEN` (value: `"FROZEN"`) +* `REJECTED` (value: `"REJECTED"`) + +* `CANCELED` (value: `"CANCELED"`) + +* `BLOCKING_TIME_EXPIRED` (value: `"BLOCKING_TIME_EXPIRED"`) + diff --git a/docs/TravelRuleVerdictEnum.md b/docs/TravelRuleVerdictEnum.md index 347f4b74..5dc2a4c6 100644 --- a/docs/TravelRuleVerdictEnum.md +++ b/docs/TravelRuleVerdictEnum.md @@ -13,5 +13,11 @@ * `REVIEW` (value: `"REVIEW"`) +* `WAIT` (value: `"WAIT"`) + +* `FREEZE` (value: `"FREEZE"`) + +* `CANCEL` (value: `"CANCEL"`) + diff --git a/docs/UpdateLegalEntityRequest.md b/docs/UpdateLegalEntityRequest.md new file mode 100644 index 00000000..95629513 --- /dev/null +++ b/docs/UpdateLegalEntityRequest.md @@ -0,0 +1,13 @@ + + +# UpdateLegalEntityRequest + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**isDefault** | **Boolean** | Whether to set this registration as the workspace default | | + + + diff --git a/docs/UserRole.md b/docs/UserRole.md index b3298574..add71e57 100644 --- a/docs/UserRole.md +++ b/docs/UserRole.md @@ -27,5 +27,9 @@ * `NCW_SIGNER` (value: `"NCW_SIGNER"`) +* `SECURITY_ADMIN` (value: `"SECURITY_ADMIN"`) + +* `SECURITY_AUDITOR` (value: `"SECURITY_AUDITOR"`) + diff --git a/pom.xml b/pom.xml index c28ad97a..89176ce6 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ fireblocks-sdk jar fireblocks-sdk - 15.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 9ca46702..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 = "15.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/api/ComplianceApi.java b/src/main/java/com/fireblocks/sdk/api/ComplianceApi.java index 7760ef1b..c2dc9d01 100644 --- a/src/main/java/com/fireblocks/sdk/api/ComplianceApi.java +++ b/src/main/java/com/fireblocks/sdk/api/ComplianceApi.java @@ -20,15 +20,31 @@ import com.fireblocks.sdk.ApiResponse; import com.fireblocks.sdk.Pair; import com.fireblocks.sdk.ValidationUtils; +import com.fireblocks.sdk.model.AddressRegistryAddVaultOptOutsRequest; +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; +import com.fireblocks.sdk.model.AddressRegistryTenantRegistryResponse; +import com.fireblocks.sdk.model.AddressRegistryVaultListOrder; import com.fireblocks.sdk.model.AmlVerdictManualRequest; import com.fireblocks.sdk.model.AmlVerdictManualResponse; +import com.fireblocks.sdk.model.AssignVaultsToLegalEntityRequest; +import com.fireblocks.sdk.model.AssignVaultsToLegalEntityResponse; import com.fireblocks.sdk.model.ComplianceResultFullPayload; import com.fireblocks.sdk.model.CreateTransactionResponse; +import com.fireblocks.sdk.model.LegalEntityRegistration; +import com.fireblocks.sdk.model.ListLegalEntitiesResponse; +import com.fireblocks.sdk.model.ListVaultsForRegistrationResponse; +import com.fireblocks.sdk.model.RegisterLegalEntityRequest; import com.fireblocks.sdk.model.ScreeningConfigurationsRequest; import com.fireblocks.sdk.model.ScreeningPolicyResponse; import com.fireblocks.sdk.model.ScreeningProviderRulesConfigurationResponse; import com.fireblocks.sdk.model.ScreeningUpdateConfigurations; +import com.fireblocks.sdk.model.UpdateLegalEntityRequest; import java.io.IOException; import java.io.InputStream; import java.net.URI; @@ -39,6 +55,7 @@ import java.util.ArrayList; import java.util.List; import java.util.StringJoiner; +import java.util.UUID; import java.util.concurrent.CompletableFuture; import java.util.function.Consumer; @@ -82,16 +99,1113 @@ private String formatExceptionMessage(String operationId, int statusCode, String return operationId + " call failed with: " + statusCode + " - " + body; } + /** + * 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. + * + * @param addressRegistryAddVaultOptOutsRequest (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<AddressRegistryAddVaultOptOutsResponse>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> + addAddressRegistryVaultOptOuts( + AddressRegistryAddVaultOptOutsRequest addressRegistryAddVaultOptOutsRequest, + String idempotencyKey) + throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = + addAddressRegistryVaultOptOutsRequestBuilder( + addressRegistryAddVaultOptOutsRequest, 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( + "addAddressRegistryVaultOptOuts", + 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< + AddressRegistryAddVaultOptOutsResponse>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder addAddressRegistryVaultOptOutsRequestBuilder( + AddressRegistryAddVaultOptOutsRequest addressRegistryAddVaultOptOutsRequest, + String idempotencyKey) + throws ApiException { + ValidationUtils.assertParamExists( + "addAddressRegistryVaultOptOuts", + "addressRegistryAddVaultOptOutsRequest", + addressRegistryAddVaultOptOutsRequest); + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = "/address_registry/vaults"; + + 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(addressRegistryAddVaultOptOutsRequest); + 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; + } + /** + * Assign vault accounts to a legal entity Assigns one or more vault accounts to a specific + * legal entity registration. Explicitly mapped vault accounts take precedence over the + * workspace default legal entity. </br>Endpoint Permission: Admin, Non-Signing Admin. + * + * @param assignVaultsToLegalEntityRequest (required) + * @param legalEntityId The unique ID of the legal entity registration (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<AssignVaultsToLegalEntityResponse>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> + assignVaultsToLegalEntity( + AssignVaultsToLegalEntityRequest assignVaultsToLegalEntityRequest, + UUID legalEntityId, + String idempotencyKey) + throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = + assignVaultsToLegalEntityRequestBuilder( + assignVaultsToLegalEntityRequest, legalEntityId, 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( + "assignVaultsToLegalEntity", 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< + AssignVaultsToLegalEntityResponse>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder assignVaultsToLegalEntityRequestBuilder( + AssignVaultsToLegalEntityRequest assignVaultsToLegalEntityRequest, + UUID legalEntityId, + String idempotencyKey) + throws ApiException { + ValidationUtils.assertParamExists( + "assignVaultsToLegalEntity", + "assignVaultsToLegalEntityRequest", + assignVaultsToLegalEntityRequest); + ValidationUtils.assertParamExistsAndNotEmpty( + "assignVaultsToLegalEntity", "legalEntityId", legalEntityId.toString()); + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = + "/legal_entities/{legalEntityId}/vaults" + .replace("{legalEntityId}", ApiClient.urlEncode(legalEntityId.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(assignVaultsToLegalEntityRequest); + 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 address registry participation status for the authenticated workspace Returns whether the + * workspace is `OPTED_IN` or `OPTED_OUT` of the address registry. + * + * @return CompletableFuture<ApiResponse<AddressRegistryTenantRegistryResponse>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> + getAddressRegistryTenantParticipationStatus() throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = + getAddressRegistryTenantParticipationStatusRequestBuilder(); + 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( + "getAddressRegistryTenantParticipationStatus", + 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< + AddressRegistryTenantRegistryResponse>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder getAddressRegistryTenantParticipationStatusRequestBuilder() + throws ApiException { + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = "/address_registry/tenant"; + + 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 whether a vault account is opted out of the address registry Returns whether this vault + * account is on the workspace opt-out list (`optedOut` true or false). List, add, and + * clear-all are available on `/v1/address_registry/vaults`; this path reads or + * removes one vault. + * + * @param vaultAccountId Vault account id (non-negative integer). (required) + * @return CompletableFuture<ApiResponse<AddressRegistryGetVaultOptOutResponse>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> + getAddressRegistryVaultOptOut(Integer vaultAccountId) throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = + getAddressRegistryVaultOptOutRequestBuilder(vaultAccountId); + 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( + "getAddressRegistryVaultOptOut", + 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< + AddressRegistryGetVaultOptOutResponse>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder getAddressRegistryVaultOptOutRequestBuilder(Integer vaultAccountId) + throws ApiException { + ValidationUtils.assertParamExists( + "getAddressRegistryVaultOptOut", "vaultAccountId", vaultAccountId); + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = + "/address_registry/vaults/{vaultAccountId}" + .replace( + "{vaultAccountId}", ApiClient.urlEncode(vaultAccountId.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; + } /** * AML - View Post-Screening Policy Get the post-screening policy for AML. * - * @return CompletableFuture<ApiResponse<ScreeningPolicyResponse>> + * @return CompletableFuture<ApiResponse<ScreeningPolicyResponse>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> getAmlPostScreeningPolicy() + throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = getAmlPostScreeningPolicyRequestBuilder(); + 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( + "getAmlPostScreeningPolicy", 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< + ScreeningPolicyResponse>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder getAmlPostScreeningPolicyRequestBuilder() throws ApiException { + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = "/screening/aml/post_screening_policy"; + + 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; + } + /** + * AML - View Screening Policy Get the screening policy for AML. + * + * @return + * CompletableFuture<ApiResponse<ScreeningProviderRulesConfigurationResponse>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> + getAmlScreeningPolicy() throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = getAmlScreeningPolicyRequestBuilder(); + 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( + "getAmlScreeningPolicy", localVarResponse)); + } + try { + String responseBody = localVarResponse.body(); + return CompletableFuture.completedFuture( + new ApiResponse< + ScreeningProviderRulesConfigurationResponse>( + localVarResponse.statusCode(), + localVarResponse.headers().map(), + responseBody == null || responseBody.isBlank() + ? null + : memberVarObjectMapper.readValue( + responseBody, + new TypeReference< + ScreeningProviderRulesConfigurationResponse>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder getAmlScreeningPolicyRequestBuilder() throws ApiException { + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = "/screening/aml/screening_policy"; + + localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath)); + + localVarRequestBuilder.header("Accept", "application/json"); + + localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody()); + if (memberVarReadTimeout != null) { + localVarRequestBuilder.timeout(memberVarReadTimeout); + } + if (memberVarInterceptor != null) { + memberVarInterceptor.accept(localVarRequestBuilder); + } + return localVarRequestBuilder; + } + /** + * Get a 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; + } + /** + * [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). + * + * @param address Blockchain address to look up (required) + * @param asset Optional asset identifier (this deprecated operation only). (optional) + * @return CompletableFuture<ApiResponse<AddressRegistryLegalEntityLegacy>> + * @throws ApiException if fails to make API call + * @deprecated + */ + @Deprecated + public CompletableFuture> getLegalEntityByAddress( + String address, String asset) throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = + getLegalEntityByAddressRequestBuilder(address, asset); + 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( + "getLegalEntityByAddress", 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< + AddressRegistryLegalEntityLegacy>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder getLegalEntityByAddressRequestBuilder(String address, String asset) + throws ApiException { + ValidationUtils.assertParamExistsAndNotEmpty("getLegalEntityByAddress", "address", address); + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = "/address_registry/legal_entity"; + + 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)); + + 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; + } + /** + * 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). + * + * @param address Blockchain address to look up (required) + * @return CompletableFuture<ApiResponse<AddressRegistryLegalEntity>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> getLegalEntityForAddress( + String address) throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = + getLegalEntityForAddressRequestBuilder(address); + 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( + "getLegalEntityForAddress", 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< + AddressRegistryLegalEntity>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder getLegalEntityForAddressRequestBuilder(String address) + throws ApiException { + ValidationUtils.assertParamExistsAndNotEmpty( + "getLegalEntityForAddress", "address", address); + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = + "/address_registry/legal_entities/{address}" + .replace("{address}", ApiClient.urlEncode(address.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; + } + /** + * Travel Rule - View Post-Screening Policy Get the post-screening policy for Travel Rule. + * + * @return CompletableFuture<ApiResponse<ScreeningPolicyResponse>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> getPostScreeningPolicy() + throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = getPostScreeningPolicyRequestBuilder(); + 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( + "getPostScreeningPolicy", 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< + ScreeningPolicyResponse>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder getPostScreeningPolicyRequestBuilder() throws ApiException { + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = "/screening/travel_rule/post_screening_policy"; + + 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; + } + /** + * Provides all the compliance details for the given screened transaction. Provides all the + * compliance details for the given screened transaction. + * + * @param txId Fireblocks transaction ID of the screened transaction (required) + * @return CompletableFuture<ApiResponse<ComplianceResultFullPayload>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> getScreeningFullDetails( + String txId) throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = + getScreeningFullDetailsRequestBuilder(txId); + 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( + "getScreeningFullDetails", 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< + ComplianceResultFullPayload>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder getScreeningFullDetailsRequestBuilder(String txId) + throws ApiException { + ValidationUtils.assertParamExistsAndNotEmpty("getScreeningFullDetails", "txId", txId); + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = + "/screening/transaction/{txId}" + .replace("{txId}", ApiClient.urlEncode(txId.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; + } + /** + * Travel Rule - View Screening Policy Get the screening policy for Travel Rule. + * + * @return + * CompletableFuture<ApiResponse<ScreeningProviderRulesConfigurationResponse>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> + getScreeningPolicy() throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = getScreeningPolicyRequestBuilder(); + 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( + "getScreeningPolicy", localVarResponse)); + } + try { + String responseBody = localVarResponse.body(); + return CompletableFuture.completedFuture( + new ApiResponse< + ScreeningProviderRulesConfigurationResponse>( + localVarResponse.statusCode(), + localVarResponse.headers().map(), + responseBody == null || responseBody.isBlank() + ? null + : memberVarObjectMapper.readValue( + responseBody, + new TypeReference< + ScreeningProviderRulesConfigurationResponse>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder getScreeningPolicyRequestBuilder() throws ApiException { + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = "/screening/travel_rule/screening_policy"; + + 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 vault-level address registry opt-outs (paginated) Lists vault accounts that are opted + * out of the address registry for this workspace. Pagination uses `next` and + * `prev` cursors from the response. If `pageSize` is omitted, **50** items + * are returned per page; allowed range is **1–100** per request. + * + * @param pageCursor Opaque cursor from a previous response (`next` or + * `prev`). Omit for the first page. (optional) + * @param pageSize Page size. Default **50** if omitted; must be between **1** and **100**. + * (optional, default to 50) + * @param order Sort direction by vault account id. Omit for ascending; use the enum value for + * descending. (optional, default to VAULT_OPT_OUT_LIST_ORDER_ASC) + * @return CompletableFuture<ApiResponse<AddressRegistryListVaultOptOutsResponse>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> + listAddressRegistryVaultOptOuts( + String pageCursor, Integer pageSize, AddressRegistryVaultListOrder order) + throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = + listAddressRegistryVaultOptOutsRequestBuilder(pageCursor, pageSize, 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( + "listAddressRegistryVaultOptOuts", + localVarResponse)); + } + try { + String responseBody = localVarResponse.body(); + return CompletableFuture.completedFuture( + new ApiResponse< + AddressRegistryListVaultOptOutsResponse>( + localVarResponse.statusCode(), + localVarResponse.headers().map(), + responseBody == null || responseBody.isBlank() + ? null + : memberVarObjectMapper.readValue( + responseBody, + new TypeReference< + AddressRegistryListVaultOptOutsResponse>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder listAddressRegistryVaultOptOutsRequestBuilder( + String pageCursor, Integer pageSize, AddressRegistryVaultListOrder order) + throws ApiException { + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = "/address_registry/vaults"; + + 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 = "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; + } + /** + * List legal entities (Paginated) 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. </br>Endpoint + * Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. + * + * @param vaultAccountId The ID of the vault account. When provided, returns the legal entity + * associated with that vault account and pagination parameters are ignored. (optional) + * @param pageCursor Cursor string returned in `next` or `prev` of a + * 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 { + try { + HttpRequest.Builder localVarRequestBuilder = + listLegalEntitiesRequestBuilder( + vaultAccountId, 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("listLegalEntities", 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< + ListLegalEntitiesResponse>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder listLegalEntitiesRequestBuilder( + String vaultAccountId, String pageCursor, Integer pageSize, String sortBy, String order) + throws ApiException { + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = "/legal_entities"; + + List localVarQueryParams = new ArrayList<>(); + StringJoiner localVarQueryStringJoiner = new StringJoiner("&"); + String localVarQueryParameterBaseName; + localVarQueryParameterBaseName = "vaultAccountId"; + localVarQueryParams.addAll(ApiClient.parameterToPairs("vaultAccountId", vaultAccountId)); + 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; + } + /** + * List vault accounts for a legal entity (Paginated) Returns vault account IDs explicitly + * assigned to a specific legal entity registration, with cursor-based pagination. + * </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. + * + * @param legalEntityId The unique ID of the legal entity registration (required) + * @param pageCursor Cursor string returned in `next` or `prev` of a + * previous response (optional) + * @param pageSize Maximum number of registrations to return (optional, default to 50) + * @return CompletableFuture<ApiResponse<ListVaultsForRegistrationResponse>> * @throws ApiException if fails to make API call */ - public CompletableFuture> getAmlPostScreeningPolicy() - throws ApiException { + public CompletableFuture> + listVaultsForLegalEntity(UUID legalEntityId, String pageCursor, Integer pageSize) + throws ApiException { try { - HttpRequest.Builder localVarRequestBuilder = getAmlPostScreeningPolicyRequestBuilder(); + HttpRequest.Builder localVarRequestBuilder = + listVaultsForLegalEntityRequestBuilder(legalEntityId, pageCursor, pageSize); return memberVarHttpClient .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString()) .thenComposeAsync( @@ -102,12 +1216,12 @@ public CompletableFuture> getAmlPostScreeni if (localVarResponse.statusCode() / 100 != 2) { return CompletableFuture.failedFuture( getApiException( - "getAmlPostScreeningPolicy", localVarResponse)); + "listVaultsForLegalEntity", localVarResponse)); } try { String responseBody = localVarResponse.body(); return CompletableFuture.completedFuture( - new ApiResponse( + new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), responseBody == null || responseBody.isBlank() @@ -115,7 +1229,7 @@ public CompletableFuture> getAmlPostScreeni : memberVarObjectMapper.readValue( responseBody, new TypeReference< - ScreeningPolicyResponse>() {}))); + ListVaultsForRegistrationResponse>() {}))); } catch (IOException e) { return CompletableFuture.failedFuture(new ApiException(e)); } @@ -125,13 +1239,36 @@ public CompletableFuture> getAmlPostScreeni } } - private HttpRequest.Builder getAmlPostScreeningPolicyRequestBuilder() throws ApiException { + private HttpRequest.Builder listVaultsForLegalEntityRequestBuilder( + UUID legalEntityId, String pageCursor, Integer pageSize) throws ApiException { + ValidationUtils.assertParamExistsAndNotEmpty( + "listVaultsForLegalEntity", "legalEntityId", legalEntityId.toString()); HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); - String localVarPath = "/screening/aml/post_screening_policy"; + String localVarPath = + "/legal_entities/{legalEntityId}/vaults" + .replace("{legalEntityId}", ApiClient.urlEncode(legalEntityId.toString())); - localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath)); + 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)); + + 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"); @@ -145,16 +1282,20 @@ private HttpRequest.Builder getAmlPostScreeningPolicyRequestBuilder() throws Api return localVarRequestBuilder; } /** - * AML - View Screening Policy Get the screening policy for AML. + * Opt the workspace in to the address registry Opts the workspace in. No request body. Response + * uses the same JSON shape as GET; status is OPTED_IN. * - * @return - * CompletableFuture<ApiResponse<ScreeningProviderRulesConfigurationResponse>> + * @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<AddressRegistryTenantRegistryResponse>> * @throws ApiException if fails to make API call */ - public CompletableFuture> - getAmlScreeningPolicy() throws ApiException { + public CompletableFuture> + optInAddressRegistryTenant(String idempotencyKey) throws ApiException { try { - HttpRequest.Builder localVarRequestBuilder = getAmlScreeningPolicyRequestBuilder(); + HttpRequest.Builder localVarRequestBuilder = + optInAddressRegistryTenantRequestBuilder(idempotencyKey); return memberVarHttpClient .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString()) .thenComposeAsync( @@ -165,13 +1306,13 @@ private HttpRequest.Builder getAmlPostScreeningPolicyRequestBuilder() throws Api if (localVarResponse.statusCode() / 100 != 2) { return CompletableFuture.failedFuture( getApiException( - "getAmlScreeningPolicy", localVarResponse)); + "optInAddressRegistryTenant", + localVarResponse)); } try { String responseBody = localVarResponse.body(); return CompletableFuture.completedFuture( - new ApiResponse< - ScreeningProviderRulesConfigurationResponse>( + new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), responseBody == null || responseBody.isBlank() @@ -179,7 +1320,7 @@ private HttpRequest.Builder getAmlPostScreeningPolicyRequestBuilder() throws Api : memberVarObjectMapper.readValue( responseBody, new TypeReference< - ScreeningProviderRulesConfigurationResponse>() {}))); + AddressRegistryTenantRegistryResponse>() {}))); } catch (IOException e) { return CompletableFuture.failedFuture(new ApiException(e)); } @@ -189,17 +1330,21 @@ private HttpRequest.Builder getAmlPostScreeningPolicyRequestBuilder() throws Api } } - private HttpRequest.Builder getAmlScreeningPolicyRequestBuilder() throws ApiException { + private HttpRequest.Builder optInAddressRegistryTenantRequestBuilder(String idempotencyKey) + throws ApiException { HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); - String localVarPath = "/screening/aml/screening_policy"; + String localVarPath = "/address_registry/tenant"; localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath)); + if (idempotencyKey != null) { + localVarRequestBuilder.header("Idempotency-Key", idempotencyKey.toString()); + } localVarRequestBuilder.header("Accept", "application/json"); - localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody()); + localVarRequestBuilder.method("POST", HttpRequest.BodyPublishers.noBody()); if (memberVarReadTimeout != null) { localVarRequestBuilder.timeout(memberVarReadTimeout); } @@ -209,20 +1354,17 @@ private HttpRequest.Builder getAmlScreeningPolicyRequestBuilder() throws ApiExce return localVarRequestBuilder; } /** - * Look up legal entity by address and asset Returns the legal entity (company name, - * jurisdiction, companyId) for the given blockchain address and optional asset. Both the - * requester and the owner of the address must be opted in to the address registry. + * Opt the workspace out of the address registry Opts the workspace out. No request body. + * Response uses the same JSON shape as GET; status is OPTED_OUT. * - * @param address Blockchain address to look up (required) - * @param asset Asset ID (e.g. ETH, BTC). Optional. (optional) - * @return CompletableFuture<ApiResponse<AddressRegistryLegalEntity>> + * @return CompletableFuture<ApiResponse<AddressRegistryTenantRegistryResponse>> * @throws ApiException if fails to make API call */ - public CompletableFuture> getLegalEntityByAddress( - String address, String asset) throws ApiException { + public CompletableFuture> + optOutAddressRegistryTenant() throws ApiException { try { HttpRequest.Builder localVarRequestBuilder = - getLegalEntityByAddressRequestBuilder(address, asset); + optOutAddressRegistryTenantRequestBuilder(); return memberVarHttpClient .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString()) .thenComposeAsync( @@ -233,12 +1375,13 @@ public CompletableFuture> getLegalEntity if (localVarResponse.statusCode() / 100 != 2) { return CompletableFuture.failedFuture( getApiException( - "getLegalEntityByAddress", localVarResponse)); + "optOutAddressRegistryTenant", + localVarResponse)); } try { String responseBody = localVarResponse.body(); return CompletableFuture.completedFuture( - new ApiResponse( + new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), responseBody == null || responseBody.isBlank() @@ -246,7 +1389,7 @@ public CompletableFuture> getLegalEntity : memberVarObjectMapper.readValue( responseBody, new TypeReference< - AddressRegistryLegalEntity>() {}))); + AddressRegistryTenantRegistryResponse>() {}))); } catch (IOException e) { return CompletableFuture.failedFuture(new ApiException(e)); } @@ -256,37 +1399,17 @@ public CompletableFuture> getLegalEntity } } - private HttpRequest.Builder getLegalEntityByAddressRequestBuilder(String address, String asset) - throws ApiException { - ValidationUtils.assertParamExistsAndNotEmpty("getLegalEntityByAddress", "address", address); + private HttpRequest.Builder optOutAddressRegistryTenantRequestBuilder() throws ApiException { HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); - String localVarPath = "/address_registry/legal_entity"; - - 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)); + String localVarPath = "/address_registry/tenant"; - 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.uri(URI.create(memberVarBaseUri + localVarPath)); localVarRequestBuilder.header("Accept", "application/json"); - localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody()); + localVarRequestBuilder.method("DELETE", HttpRequest.BodyPublishers.noBody()); if (memberVarReadTimeout != null) { localVarRequestBuilder.timeout(memberVarReadTimeout); } @@ -296,15 +1419,24 @@ private HttpRequest.Builder getLegalEntityByAddressRequestBuilder(String address return localVarRequestBuilder; } /** - * Travel Rule - View Post-Screening Policy Get the post-screening policy for Travel Rule. + * Register a new legal entity Registers a new legal entity for the workspace using its LEI + * (Legal Entity Identifier) code. The LEI is validated against the GLEIF registry. Each + * workspace can register multiple legal entities. </br>Endpoint Permission: Admin, + * Non-Signing Admin. * - * @return CompletableFuture<ApiResponse<ScreeningPolicyResponse>> + * @param registerLegalEntityRequest (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<LegalEntityRegistration>> * @throws ApiException if fails to make API call */ - public CompletableFuture> getPostScreeningPolicy() + public CompletableFuture> registerLegalEntity( + RegisterLegalEntityRequest registerLegalEntityRequest, String idempotencyKey) throws ApiException { try { - HttpRequest.Builder localVarRequestBuilder = getPostScreeningPolicyRequestBuilder(); + HttpRequest.Builder localVarRequestBuilder = + registerLegalEntityRequestBuilder(registerLegalEntityRequest, idempotencyKey); return memberVarHttpClient .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString()) .thenComposeAsync( @@ -315,12 +1447,12 @@ public CompletableFuture> getPostScreeningP if (localVarResponse.statusCode() / 100 != 2) { return CompletableFuture.failedFuture( getApiException( - "getPostScreeningPolicy", localVarResponse)); + "registerLegalEntity", localVarResponse)); } try { String responseBody = localVarResponse.body(); return CompletableFuture.completedFuture( - new ApiResponse( + new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), responseBody == null || responseBody.isBlank() @@ -328,7 +1460,7 @@ public CompletableFuture> getPostScreeningP : memberVarObjectMapper.readValue( responseBody, new TypeReference< - ScreeningPolicyResponse>() {}))); + LegalEntityRegistration>() {}))); } catch (IOException e) { return CompletableFuture.failedFuture(new ApiException(e)); } @@ -338,17 +1470,32 @@ public CompletableFuture> getPostScreeningP } } - private HttpRequest.Builder getPostScreeningPolicyRequestBuilder() throws ApiException { + private HttpRequest.Builder registerLegalEntityRequestBuilder( + RegisterLegalEntityRequest registerLegalEntityRequest, String idempotencyKey) + throws ApiException { + ValidationUtils.assertParamExists( + "registerLegalEntity", "registerLegalEntityRequest", registerLegalEntityRequest); HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); - String localVarPath = "/screening/travel_rule/post_screening_policy"; + String localVarPath = "/legal_entities"; 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"); - localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody()); + try { + byte[] localVarPostBody = + memberVarObjectMapper.writeValueAsBytes(registerLegalEntityRequest); + localVarRequestBuilder.method( + "POST", HttpRequest.BodyPublishers.ofByteArray(localVarPostBody)); + } catch (IOException e) { + throw new ApiException(e); + } if (memberVarReadTimeout != null) { localVarRequestBuilder.timeout(memberVarReadTimeout); } @@ -358,18 +1505,20 @@ private HttpRequest.Builder getPostScreeningPolicyRequestBuilder() throws ApiExc return localVarRequestBuilder; } /** - * Provides all the compliance details for the given screened transaction. Provides all the - * compliance details for the given screened transaction. + * Remove a single vault account from the address registry opt-out list Removes this vault + * account id from the workspace opt-out list if it is present; otherwise the call still + * succeeds. Response body matches GET (`optedOut` is `false` after + * success). To clear the whole list, use `DELETE /v1/address_registry/vaults`. * - * @param txId Fireblocks transaction ID of the screened transaction (required) - * @return CompletableFuture<ApiResponse<ComplianceResultFullPayload>> + * @param vaultAccountId Vault account id (non-negative integer). (required) + * @return CompletableFuture<ApiResponse<AddressRegistryRemoveVaultOptOutResponse>> * @throws ApiException if fails to make API call */ - public CompletableFuture> getScreeningFullDetails( - String txId) throws ApiException { + public CompletableFuture> + removeAddressRegistryVaultOptOut(Integer vaultAccountId) throws ApiException { try { HttpRequest.Builder localVarRequestBuilder = - getScreeningFullDetailsRequestBuilder(txId); + removeAddressRegistryVaultOptOutRequestBuilder(vaultAccountId); return memberVarHttpClient .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString()) .thenComposeAsync( @@ -380,12 +1529,14 @@ public CompletableFuture> getScreeningF if (localVarResponse.statusCode() / 100 != 2) { return CompletableFuture.failedFuture( getApiException( - "getScreeningFullDetails", localVarResponse)); + "removeAddressRegistryVaultOptOut", + localVarResponse)); } try { String responseBody = localVarResponse.body(); return CompletableFuture.completedFuture( - new ApiResponse( + new ApiResponse< + AddressRegistryRemoveVaultOptOutResponse>( localVarResponse.statusCode(), localVarResponse.headers().map(), responseBody == null || responseBody.isBlank() @@ -393,7 +1544,7 @@ public CompletableFuture> getScreeningF : memberVarObjectMapper.readValue( responseBody, new TypeReference< - ComplianceResultFullPayload>() {}))); + AddressRegistryRemoveVaultOptOutResponse>() {}))); } catch (IOException e) { return CompletableFuture.failedFuture(new ApiException(e)); } @@ -403,21 +1554,23 @@ public CompletableFuture> getScreeningF } } - private HttpRequest.Builder getScreeningFullDetailsRequestBuilder(String txId) - throws ApiException { - ValidationUtils.assertParamExistsAndNotEmpty("getScreeningFullDetails", "txId", txId); + private HttpRequest.Builder removeAddressRegistryVaultOptOutRequestBuilder( + Integer vaultAccountId) throws ApiException { + ValidationUtils.assertParamExists( + "removeAddressRegistryVaultOptOut", "vaultAccountId", vaultAccountId); HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); String localVarPath = - "/screening/transaction/{txId}" - .replace("{txId}", ApiClient.urlEncode(txId.toString())); + "/address_registry/vaults/{vaultAccountId}" + .replace( + "{vaultAccountId}", ApiClient.urlEncode(vaultAccountId.toString())); localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath)); localVarRequestBuilder.header("Accept", "application/json"); - localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody()); + localVarRequestBuilder.method("DELETE", HttpRequest.BodyPublishers.noBody()); if (memberVarReadTimeout != null) { localVarRequestBuilder.timeout(memberVarReadTimeout); } @@ -427,16 +1580,18 @@ private HttpRequest.Builder getScreeningFullDetailsRequestBuilder(String txId) return localVarRequestBuilder; } /** - * Travel Rule - View Screening Policy Get the screening policy for Travel Rule. + * Remove all vault-level address registry opt-outs for the workspace Removes all vault accounts + * from the workspace opt-out list. * * @return - * CompletableFuture<ApiResponse<ScreeningProviderRulesConfigurationResponse>> + * CompletableFuture<ApiResponse<AddressRegistryRemoveAllVaultOptOutsResponse>> * @throws ApiException if fails to make API call */ - public CompletableFuture> - getScreeningPolicy() throws ApiException { + public CompletableFuture> + removeAllAddressRegistryVaultOptOuts() throws ApiException { try { - HttpRequest.Builder localVarRequestBuilder = getScreeningPolicyRequestBuilder(); + HttpRequest.Builder localVarRequestBuilder = + removeAllAddressRegistryVaultOptOutsRequestBuilder(); return memberVarHttpClient .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString()) .thenComposeAsync( @@ -447,13 +1602,14 @@ private HttpRequest.Builder getScreeningFullDetailsRequestBuilder(String txId) if (localVarResponse.statusCode() / 100 != 2) { return CompletableFuture.failedFuture( getApiException( - "getScreeningPolicy", localVarResponse)); + "removeAllAddressRegistryVaultOptOuts", + localVarResponse)); } try { String responseBody = localVarResponse.body(); return CompletableFuture.completedFuture( new ApiResponse< - ScreeningProviderRulesConfigurationResponse>( + AddressRegistryRemoveAllVaultOptOutsResponse>( localVarResponse.statusCode(), localVarResponse.headers().map(), responseBody == null || responseBody.isBlank() @@ -461,7 +1617,7 @@ private HttpRequest.Builder getScreeningFullDetailsRequestBuilder(String txId) : memberVarObjectMapper.readValue( responseBody, new TypeReference< - ScreeningProviderRulesConfigurationResponse>() {}))); + AddressRegistryRemoveAllVaultOptOutsResponse>() {}))); } catch (IOException e) { return CompletableFuture.failedFuture(new ApiException(e)); } @@ -471,17 +1627,18 @@ private HttpRequest.Builder getScreeningFullDetailsRequestBuilder(String txId) } } - private HttpRequest.Builder getScreeningPolicyRequestBuilder() throws ApiException { + private HttpRequest.Builder removeAllAddressRegistryVaultOptOutsRequestBuilder() + throws ApiException { HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); - String localVarPath = "/screening/travel_rule/screening_policy"; + String localVarPath = "/address_registry/vaults"; localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath)); localVarRequestBuilder.header("Accept", "application/json"); - localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody()); + localVarRequestBuilder.method("DELETE", HttpRequest.BodyPublishers.noBody()); if (memberVarReadTimeout != null) { localVarRequestBuilder.timeout(memberVarReadTimeout); } @@ -725,6 +1882,101 @@ private HttpRequest.Builder updateAmlScreeningConfigurationRequestBuilder(String } return localVarRequestBuilder; } + /** + * Update legal entity Updates the status of a legal entity registration. Setting isDefault to + * true marks the registration as the workspace default, which is applied to vault accounts that + * have no explicit legal entity mapping. </br>Endpoint Permission: Admin, Non-Signing + * Admin. + * + * @param updateLegalEntityRequest (required) + * @param legalEntityId The unique ID of the legal entity registration (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<LegalEntityRegistration>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> updateLegalEntity( + UpdateLegalEntityRequest updateLegalEntityRequest, + UUID legalEntityId, + String idempotencyKey) + throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = + updateLegalEntityRequestBuilder( + updateLegalEntityRequest, legalEntityId, 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("updateLegalEntity", 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 updateLegalEntityRequestBuilder( + UpdateLegalEntityRequest updateLegalEntityRequest, + UUID legalEntityId, + String idempotencyKey) + throws ApiException { + ValidationUtils.assertParamExists( + "updateLegalEntity", "updateLegalEntityRequest", updateLegalEntityRequest); + ValidationUtils.assertParamExistsAndNotEmpty( + "updateLegalEntity", "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)); + + 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(updateLegalEntityRequest); + 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; + } /** * Tenant - Screening Configuration Update tenant screening configuration. * diff --git a/src/main/java/com/fireblocks/sdk/api/StakingApi.java b/src/main/java/com/fireblocks/sdk/api/StakingApi.java index 01cf54ce..16f59ae5 100644 --- a/src/main/java/com/fireblocks/sdk/api/StakingApi.java +++ b/src/main/java/com/fireblocks/sdk/api/StakingApi.java @@ -32,6 +32,7 @@ import com.fireblocks.sdk.model.SplitResponse; import com.fireblocks.sdk.model.StakeRequest; import com.fireblocks.sdk.model.StakeResponse; +import com.fireblocks.sdk.model.StakingPositionsPaginatedResponse; import com.fireblocks.sdk.model.StakingProvider; import com.fireblocks.sdk.model.UnstakeRequest; import com.fireblocks.sdk.model.WithdrawRequest; @@ -241,11 +242,12 @@ private HttpRequest.Builder claimRewardsRequestBuilder( /** * Consolidate staking positions (ETH validator consolidation) Consolidates the source staking * position into the destination, merging the balance into the destination and closing the - * source position once complete. Both positions must be from the same validator provider and - * same vault account. On chain, this translates into a consolidation transaction, where the - * source validator is consolidated into the destination validator. Supported chains: Ethereum - * (ETH) only. </br>Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, - * Approver, Editor. + * source position once complete. Both positions must be from the same funding vaults account + * (i.e. same withdrawals credentials). On chain, this translates into a consolidation + * transaction, where the source validator is consolidated into the destination validator. + * Supported chains: Ethereum (ETH) only. </br>Endpoint Permission: Owner, Admin, + * Non-Signing Admin, Signer, Approver, Editor. **Note:** This endpoint is currently in beta and + * might be subject to changes. * * @param mergeStakeAccountsRequest (required) * @param chainDescriptor Protocol identifier for the staking operation (e.g., ETH). (required) @@ -346,14 +348,15 @@ private HttpRequest.Builder consolidateRequestBuilder( * @param chainDescriptor Protocol identifier to filter positions (e.g., * ATOM_COS/AXL/CELESTIA}). If omitted, positions across all supported chains are returned. * (optional) + * @param vaultAccountId Filter positions by vault account ID. (optional) * @return CompletableFuture<ApiResponse<List<Delegation>>> * @throws ApiException if fails to make API call */ public CompletableFuture>> getAllDelegations( - ChainDescriptor chainDescriptor) throws ApiException { + ChainDescriptor chainDescriptor, String vaultAccountId) throws ApiException { try { HttpRequest.Builder localVarRequestBuilder = - getAllDelegationsRequestBuilder(chainDescriptor); + getAllDelegationsRequestBuilder(chainDescriptor, vaultAccountId); return memberVarHttpClient .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString()) .thenComposeAsync( @@ -387,8 +390,8 @@ public CompletableFuture>> getAllDelegations( } } - private HttpRequest.Builder getAllDelegationsRequestBuilder(ChainDescriptor chainDescriptor) - throws ApiException { + private HttpRequest.Builder getAllDelegationsRequestBuilder( + ChainDescriptor chainDescriptor, String vaultAccountId) throws ApiException { HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); @@ -399,6 +402,8 @@ private HttpRequest.Builder getAllDelegationsRequestBuilder(ChainDescriptor chai String localVarQueryParameterBaseName; localVarQueryParameterBaseName = "chainDescriptor"; localVarQueryParams.addAll(ApiClient.parameterToPairs("chainDescriptor", chainDescriptor)); + localVarQueryParameterBaseName = "vaultAccountId"; + localVarQueryParams.addAll(ApiClient.parameterToPairs("vaultAccountId", vaultAccountId)); if (!localVarQueryParams.isEmpty() || localVarQueryStringJoiner.length() != 0) { StringJoiner queryJoiner = new StringJoiner("&"); @@ -623,6 +628,118 @@ private HttpRequest.Builder getDelegationByIdRequestBuilder(String id) throws Ap } return localVarRequestBuilder; } + /** + * List staking positions (Paginated) Returns staking positions with core details: amounts, + * rewards, status, chain, and vault. It supports cursor-based pagination for efficient data + * retrieval. This endpoint always returns a paginated response with {data, next} structure. + * </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. + * + * @param pageSize Number of results per page. When provided, the response returns a paginated + * object with {data, next}. If omitted, all results are returned as an array. (required) + * @param chainDescriptor Protocol identifier to filter positions (e.g., + * ATOM_COS/AXL/CELESTIA}). If omitted, positions across all supported chains are returned. + * (optional) + * @param vaultAccountId Filter positions by Fireblocks vault account ID. If omitted, positions + * across all vault accounts are returned. (optional) + * @param pageCursor Cursor for the next page of results. Use the value from the 'next' + * field in the previous response. (optional) + * @param order ASC / DESC ordering (default DESC) (optional, default to DESC) + * @return CompletableFuture<ApiResponse<StakingPositionsPaginatedResponse>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> getPositions( + Integer pageSize, + ChainDescriptor chainDescriptor, + String vaultAccountId, + String pageCursor, + String order) + throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = + getPositionsRequestBuilder( + pageSize, chainDescriptor, vaultAccountId, pageCursor, 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("getPositions", 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< + StakingPositionsPaginatedResponse>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder getPositionsRequestBuilder( + Integer pageSize, + ChainDescriptor chainDescriptor, + String vaultAccountId, + String pageCursor, + String order) + throws ApiException { + ValidationUtils.assertParamExists("getPositions", "pageSize", pageSize); + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = "/staking/positions_paginated"; + + List localVarQueryParams = new ArrayList<>(); + StringJoiner localVarQueryStringJoiner = new StringJoiner("&"); + String localVarQueryParameterBaseName; + localVarQueryParameterBaseName = "chainDescriptor"; + localVarQueryParams.addAll(ApiClient.parameterToPairs("chainDescriptor", chainDescriptor)); + localVarQueryParameterBaseName = "vaultAccountId"; + localVarQueryParams.addAll(ApiClient.parameterToPairs("vaultAccountId", vaultAccountId)); + localVarQueryParameterBaseName = "pageSize"; + localVarQueryParams.addAll(ApiClient.parameterToPairs("pageSize", pageSize)); + localVarQueryParameterBaseName = "pageCursor"; + localVarQueryParams.addAll(ApiClient.parameterToPairs("pageCursor", pageCursor)); + 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; + } /** * List staking providers Returns all available staking providers with metadata such as name, * ID, and supported chains. </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, diff --git a/src/main/java/com/fireblocks/sdk/api/TrLinkApi.java b/src/main/java/com/fireblocks/sdk/api/TrLinkApi.java index bab6cd8d..56a04c32 100644 --- a/src/main/java/com/fireblocks/sdk/api/TrLinkApi.java +++ b/src/main/java/com/fireblocks/sdk/api/TrLinkApi.java @@ -490,7 +490,9 @@ private HttpRequest.Builder createTRLinkCustomerRequestBuilder( /** * Create customer integration Creates a new TRSupport integration for a customer. This * establishes a connection placeholder between a customer and a Travel Rule partner. Use the - * connect endpoint to provide credentials after creation. + * connect endpoint to provide credentials after creation. You may optionally supply + * `customerIntegrationId` in the request body when your tenant is enabled for + * client-provided integration ids. * * @param trLinkCreateIntegrationRequest (required) * @param idempotencyKey A unique identifier for the request. If the request is sent multiple @@ -733,8 +735,11 @@ private HttpRequest.Builder deleteTRLinkCustomerRequestBuilder(UUID customerId) return localVarRequestBuilder; } /** - * Disconnect customer integration Disconnects a customer integration by removing stored - * credentials. The integration record is deleted and cannot be recovered. + * Disconnect customer integration Disconnects the integration for the authenticated workspace + * (tenant): removes stored credentials and deletes this tenant's integration record. The + * operation is scoped to the caller's tenant; it does not remove partner-side state for + * other workspaces that reuse the same logical customer integration. The record cannot be + * recovered after delete. * * @param customerIntegrationId Customer integration unique identifier (required) * @return CompletableFuture<ApiResponse<Void>> diff --git a/src/main/java/com/fireblocks/sdk/api/TradingBetaApi.java b/src/main/java/com/fireblocks/sdk/api/TradingBetaApi.java index f69cbdbf..1c29ced6 100644 --- a/src/main/java/com/fireblocks/sdk/api/TradingBetaApi.java +++ b/src/main/java/com/fireblocks/sdk/api/TradingBetaApi.java @@ -27,6 +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 java.io.IOException; import java.io.InputStream; import java.net.URI; @@ -458,6 +459,82 @@ 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 + * documentation](https://developers.fireblocks.com/reference/api-error-codes). + * + * @param providerId The unique identifier of the provider. (required) + * @return CompletableFuture<ApiResponse<TradingProviderDetails>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> getTradingProviderById( + String providerId) throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = + getTradingProviderByIdRequestBuilder(providerId); + 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( + "getTradingProviderById", 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< + TradingProviderDetails>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder getTradingProviderByIdRequestBuilder(String providerId) + throws ApiException { + ValidationUtils.assertParamExistsAndNotEmpty( + "getTradingProviderById", "providerId", providerId); + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = + "/trading/providers/{providerId}" + .replace("{providerId}", ApiClient.urlEncode(providerId.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 providers Retrieve a list of all available external providers supporting trading * activities through the platform. **Note:** These endpoints are currently in beta and might be diff --git a/src/main/java/com/fireblocks/sdk/model/AccountBasedAccessProvider.java b/src/main/java/com/fireblocks/sdk/model/AccountBasedAccessProvider.java index 7ec25548..276b8110 100644 --- a/src/main/java/com/fireblocks/sdk/model/AccountBasedAccessProvider.java +++ b/src/main/java/com/fireblocks/sdk/model/AccountBasedAccessProvider.java @@ -56,7 +56,7 @@ public class AccountBasedAccessProvider { @jakarta.annotation.Nonnull private Boolean connected; public static final String JSON_PROPERTY_ACCOUNTS = "accounts"; - @jakarta.annotation.Nullable private List accounts; + @jakarta.annotation.Nonnull private List accounts; public AccountBasedAccessProvider() {} @@ -67,12 +67,15 @@ public AccountBasedAccessProvider( @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_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 AccountBasedAccessProvider id(@jakarta.annotation.Nonnull String id) { @@ -215,7 +218,7 @@ public void setConnected(@jakarta.annotation.Nonnull Boolean connected) { } public AccountBasedAccessProvider accounts( - @jakarta.annotation.Nullable List accounts) { + @jakarta.annotation.Nonnull List accounts) { this.accounts = accounts; return this; } @@ -233,16 +236,16 @@ public AccountBasedAccessProvider addAccountsItem(AccountBase accountsItem) { * * @return accounts */ - @jakarta.annotation.Nullable + @jakarta.annotation.Nonnull @JsonProperty(JSON_PROPERTY_ACCOUNTS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) public List getAccounts() { return accounts; } @JsonProperty(JSON_PROPERTY_ACCOUNTS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setAccounts(@jakarta.annotation.Nullable List accounts) { + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setAccounts(@jakarta.annotation.Nonnull List accounts) { this.accounts = accounts; } diff --git a/src/main/java/com/fireblocks/sdk/model/AccountBasedAccessProviderDetails.java b/src/main/java/com/fireblocks/sdk/model/AccountBasedAccessProviderInfo.java similarity index 70% rename from src/main/java/com/fireblocks/sdk/model/AccountBasedAccessProviderDetails.java rename to src/main/java/com/fireblocks/sdk/model/AccountBasedAccessProviderInfo.java index 8895cc19..6fc0a009 100644 --- a/src/main/java/com/fireblocks/sdk/model/AccountBasedAccessProviderDetails.java +++ b/src/main/java/com/fireblocks/sdk/model/AccountBasedAccessProviderInfo.java @@ -23,61 +23,33 @@ import java.util.Objects; import java.util.StringJoiner; -/** AccountBasedAccessProviderDetails */ +/** AccountBasedAccessProviderInfo */ @JsonPropertyOrder({ - AccountBasedAccessProviderDetails.JSON_PROPERTY_MANIFEST, - AccountBasedAccessProviderDetails.JSON_PROPERTY_CONNECTED, - AccountBasedAccessProviderDetails.JSON_PROPERTY_ACCOUNTS + AccountBasedAccessProviderInfo.JSON_PROPERTY_CONNECTED, + AccountBasedAccessProviderInfo.JSON_PROPERTY_ACCOUNTS }) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.14.0") -public class AccountBasedAccessProviderDetails { - public static final String JSON_PROPERTY_MANIFEST = "manifest"; - @jakarta.annotation.Nonnull private Manifest manifest; - +public class AccountBasedAccessProviderInfo { public static final String JSON_PROPERTY_CONNECTED = "connected"; @jakarta.annotation.Nonnull private Boolean connected; public static final String JSON_PROPERTY_ACCOUNTS = "accounts"; - @jakarta.annotation.Nullable private List accounts; + @jakarta.annotation.Nonnull private List accounts; - public AccountBasedAccessProviderDetails() {} + public AccountBasedAccessProviderInfo() {} @JsonCreator - public AccountBasedAccessProviderDetails( - @JsonProperty(value = JSON_PROPERTY_MANIFEST, required = true) Manifest manifest, - @JsonProperty(value = JSON_PROPERTY_CONNECTED, required = true) Boolean connected) { - this.manifest = manifest; + public AccountBasedAccessProviderInfo( + @JsonProperty(value = JSON_PROPERTY_CONNECTED, required = true) Boolean connected, + @JsonProperty(value = JSON_PROPERTY_ACCOUNTS, required = true) + List accounts) { this.connected = connected; + this.accounts = accounts; } - public AccountBasedAccessProviderDetails 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 AccountBasedAccessProviderDetails connected( - @jakarta.annotation.Nonnull Boolean connected) { + public AccountBasedAccessProviderInfo connected(@jakarta.annotation.Nonnull Boolean connected) { this.connected = connected; return this; } @@ -100,13 +72,13 @@ public void setConnected(@jakarta.annotation.Nonnull Boolean connected) { this.connected = connected; } - public AccountBasedAccessProviderDetails accounts( - @jakarta.annotation.Nullable List accounts) { + public AccountBasedAccessProviderInfo accounts( + @jakarta.annotation.Nonnull List accounts) { this.accounts = accounts; return this; } - public AccountBasedAccessProviderDetails addAccountsItem(AccountBase accountsItem) { + public AccountBasedAccessProviderInfo addAccountsItem(AccountBase accountsItem) { if (this.accounts == null) { this.accounts = new ArrayList<>(); } @@ -119,20 +91,20 @@ public AccountBasedAccessProviderDetails addAccountsItem(AccountBase accountsIte * * @return accounts */ - @jakarta.annotation.Nullable + @jakarta.annotation.Nonnull @JsonProperty(JSON_PROPERTY_ACCOUNTS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) public List getAccounts() { return accounts; } @JsonProperty(JSON_PROPERTY_ACCOUNTS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setAccounts(@jakarta.annotation.Nullable List accounts) { + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setAccounts(@jakarta.annotation.Nonnull List accounts) { this.accounts = accounts; } - /** Return true if this AccountBasedAccessProviderDetails object is equal to o. */ + /** Return true if this AccountBasedAccessProviderInfo object is equal to o. */ @Override public boolean equals(Object o) { if (this == o) { @@ -141,23 +113,21 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) { return false; } - AccountBasedAccessProviderDetails accountBasedAccessProviderDetails = - (AccountBasedAccessProviderDetails) o; - return Objects.equals(this.manifest, accountBasedAccessProviderDetails.manifest) - && Objects.equals(this.connected, accountBasedAccessProviderDetails.connected) - && Objects.equals(this.accounts, accountBasedAccessProviderDetails.accounts); + AccountBasedAccessProviderInfo accountBasedAccessProviderInfo = + (AccountBasedAccessProviderInfo) o; + return Objects.equals(this.connected, accountBasedAccessProviderInfo.connected) + && Objects.equals(this.accounts, accountBasedAccessProviderInfo.accounts); } @Override public int hashCode() { - return Objects.hash(manifest, connected, accounts); + return Objects.hash(connected, accounts); } @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class AccountBasedAccessProviderDetails {\n"); - sb.append(" manifest: ").append(toIndentedString(manifest)).append("\n"); + sb.append("class AccountBasedAccessProviderInfo {\n"); sb.append(" connected: ").append(toIndentedString(connected)).append("\n"); sb.append(" accounts: ").append(toIndentedString(accounts)).append("\n"); sb.append("}"); @@ -207,11 +177,6 @@ public String toUrlQueryString(String prefix) { StringJoiner joiner = new StringJoiner("&"); - // 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( diff --git a/src/main/java/com/fireblocks/sdk/model/AccountBasedProviderDetails.java b/src/main/java/com/fireblocks/sdk/model/AccountBasedProviderDetails.java new file mode 100644 index 00000000..0b8f2fec --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/AccountBasedProviderDetails.java @@ -0,0 +1,412 @@ +/* + * 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/AddressRegistryAddVaultOptOutsRequest.java b/src/main/java/com/fireblocks/sdk/model/AddressRegistryAddVaultOptOutsRequest.java new file mode 100644 index 00000000..fa32deec --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/AddressRegistryAddVaultOptOutsRequest.java @@ -0,0 +1,182 @@ +/* + * 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 java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.StringJoiner; + +/** AddressRegistryAddVaultOptOutsRequest */ +@JsonPropertyOrder({AddressRegistryAddVaultOptOutsRequest.JSON_PROPERTY_VAULT_ACCOUNT_IDS}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class AddressRegistryAddVaultOptOutsRequest { + public static final String JSON_PROPERTY_VAULT_ACCOUNT_IDS = "vaultAccountIds"; + + @jakarta.annotation.Nonnull + private List vaultAccountIds; + + public AddressRegistryAddVaultOptOutsRequest() {} + + @JsonCreator + public AddressRegistryAddVaultOptOutsRequest( + @JsonProperty(value = JSON_PROPERTY_VAULT_ACCOUNT_IDS, required = true) + List + vaultAccountIds) { + this.vaultAccountIds = vaultAccountIds; + } + + public AddressRegistryAddVaultOptOutsRequest vaultAccountIds( + @jakarta.annotation.Nonnull + List + vaultAccountIds) { + this.vaultAccountIds = vaultAccountIds; + return this; + } + + public AddressRegistryAddVaultOptOutsRequest addVaultAccountIdsItem( + AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner vaultAccountIdsItem) { + if (this.vaultAccountIds == null) { + this.vaultAccountIds = new ArrayList<>(); + } + this.vaultAccountIds.add(vaultAccountIdsItem); + return this; + } + + /** + * Vault account ids to add to the opt-out list (non-empty). Each element may be a JSON number + * or a decimal string; both forms are accepted. + * + * @return vaultAccountIds + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_VAULT_ACCOUNT_IDS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getVaultAccountIds() { + return vaultAccountIds; + } + + @JsonProperty(JSON_PROPERTY_VAULT_ACCOUNT_IDS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setVaultAccountIds( + @jakarta.annotation.Nonnull + List + vaultAccountIds) { + this.vaultAccountIds = vaultAccountIds; + } + + /** Return true if this AddressRegistryAddVaultOptOutsRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AddressRegistryAddVaultOptOutsRequest addressRegistryAddVaultOptOutsRequest = + (AddressRegistryAddVaultOptOutsRequest) o; + return Objects.equals( + this.vaultAccountIds, addressRegistryAddVaultOptOutsRequest.vaultAccountIds); + } + + @Override + public int hashCode() { + return Objects.hash(vaultAccountIds); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AddressRegistryAddVaultOptOutsRequest {\n"); + sb.append(" vaultAccountIds: ").append(toIndentedString(vaultAccountIds)).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 `vaultAccountIds` to the URL query string + if (getVaultAccountIds() != null) { + for (int i = 0; i < getVaultAccountIds().size(); i++) { + if (getVaultAccountIds().get(i) != null) { + joiner.add( + getVaultAccountIds() + .get(i) + .toUrlQueryString( + String.format( + "%svaultAccountIds%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/AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner.java b/src/main/java/com/fireblocks/sdk/model/AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner.java new file mode 100644 index 00000000..bbe3c4ea --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner.java @@ -0,0 +1,346 @@ +/* + * 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.ApiClient; +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 = + AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner + .AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInnerDeserializer + .class) +@JsonSerialize( + using = + AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner + .AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInnerSerializer.class) +public class AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner + extends AbstractOpenApiSchema { + private static final Logger log = + Logger.getLogger( + AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner.class.getName()); + + public static class AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInnerSerializer + extends StdSerializer { + public AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInnerSerializer( + Class t) { + super(t); + } + + public AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInnerSerializer() { + this(null); + } + + @Override + public void serialize( + AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner value, + JsonGenerator jgen, + SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.getActualInstance()); + } + } + + public static class AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInnerDeserializer + extends StdDeserializer { + public AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInnerDeserializer() { + this(AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner.class); + } + + public AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInnerDeserializer(Class vc) { + super(vc); + } + + @Override + public AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner 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 Integer + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (Integer.class.equals(Integer.class) + || Integer.class.equals(Long.class) + || Integer.class.equals(Float.class) + || Integer.class.equals(Double.class) + || Integer.class.equals(Boolean.class) + || Integer.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((Integer.class.equals(Integer.class) + || Integer.class.equals(Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((Integer.class.equals(Float.class) + || Integer.class.equals(Double.class)) + && token == JsonToken.VALUE_NUMBER_FLOAT); + attemptParsing |= + (Integer.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE + || token == JsonToken.VALUE_TRUE)); + attemptParsing |= + (Integer.class.equals(String.class) + && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + deserialized = tree.traverse(jp.getCodec()).readValueAs(Integer.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 'Integer'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log(Level.FINER, "Input data does not match schema 'Integer'", e); + } + + // deserialize String + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (String.class.equals(Integer.class) + || String.class.equals(Long.class) + || String.class.equals(Float.class) + || String.class.equals(Double.class) + || String.class.equals(Boolean.class) + || String.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((String.class.equals(Integer.class) + || String.class.equals(Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((String.class.equals(Float.class) + || String.class.equals(Double.class)) + && token == JsonToken.VALUE_NUMBER_FLOAT); + attemptParsing |= + (String.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE + || token == JsonToken.VALUE_TRUE)); + attemptParsing |= + (String.class.equals(String.class) + && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + deserialized = tree.traverse(jp.getCodec()).readValueAs(String.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 'String'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log(Level.FINER, "Input data does not match schema 'String'", e); + } + + if (match == 1) { + AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner ret = + new AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner(); + ret.setActualInstance(deserialized); + return ret; + } + throw new IOException( + String.format( + "Failed deserialization for" + + " AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner: %d" + + " classes match result, expected 1", + match)); + } + + /** Handle deserialization of the 'null' value. */ + @Override + public AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner getNullValue( + DeserializationContext ctxt) throws JsonMappingException { + throw new JsonMappingException( + ctxt.getParser(), + "AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner cannot be null"); + } + } + + // store a list of schema names defined in oneOf + public static final Map> schemas = new HashMap<>(); + + public AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner() { + super("oneOf", Boolean.FALSE); + } + + public AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner(Integer o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + public AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner(String o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("Integer", Integer.class); + schemas.put("String", String.class); + JSON.registerDescendants( + AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner.class, + Collections.unmodifiableMap(schemas)); + } + + @Override + public Map> getSchemas() { + return AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner.schemas; + } + + /** + * Set the instance that matches the oneOf child schema, check the instance parameter is valid + * against the oneOf child schemas: Integer, String + * + *

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(Integer.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } + + if (JSON.isInstanceOf(String.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException("Invalid instance type. Must be Integer, String"); + } + + /** + * Get the actual instance, which can be the following: Integer, String + * + * @return The actual instance (Integer, String) + */ + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `Integer`. If the actual instance is not `Integer`, the + * ClassCastException will be thrown. + * + * @return The actual instance of `Integer` + * @throws ClassCastException if the instance is not `Integer` + */ + public Integer getInteger() throws ClassCastException { + return (Integer) super.getActualInstance(); + } + + /** + * Get the actual instance of `String`. If the actual instance is not `String`, the + * ClassCastException will be thrown. + * + * @return The actual instance of `String` + * @throws ClassCastException if the instance is not `String` + */ + public String getString() throws ClassCastException { + return (String) 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 Integer) { + if (getActualInstance() != null) { + joiner.add( + String.format( + "%sone_of_0%s=%s", + prefix, + suffix, + ApiClient.urlEncode(String.valueOf(getActualInstance())))); + } + return joiner.toString(); + } + if (getActualInstance() instanceof String) { + if (getActualInstance() != null) { + joiner.add( + String.format( + "%sone_of_1%s=%s", + prefix, + suffix, + ApiClient.urlEncode(String.valueOf(getActualInstance())))); + } + return joiner.toString(); + } + return null; + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/AddressRegistryAddVaultOptOutsResponse.java b/src/main/java/com/fireblocks/sdk/model/AddressRegistryAddVaultOptOutsResponse.java new file mode 100644 index 00000000..e52f5e6e --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/AddressRegistryAddVaultOptOutsResponse.java @@ -0,0 +1,151 @@ +/* + * 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; + +/** Result of adding vault account ids to the workspace opt-out list for the address registry. */ +@JsonPropertyOrder({AddressRegistryAddVaultOptOutsResponse.JSON_PROPERTY_ACCEPTED_COUNT}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class AddressRegistryAddVaultOptOutsResponse { + public static final String JSON_PROPERTY_ACCEPTED_COUNT = "acceptedCount"; + @jakarta.annotation.Nonnull private Integer acceptedCount; + + public AddressRegistryAddVaultOptOutsResponse() {} + + @JsonCreator + public AddressRegistryAddVaultOptOutsResponse( + @JsonProperty(value = JSON_PROPERTY_ACCEPTED_COUNT, required = true) + Integer acceptedCount) { + this.acceptedCount = acceptedCount; + } + + public AddressRegistryAddVaultOptOutsResponse acceptedCount( + @jakarta.annotation.Nonnull Integer acceptedCount) { + this.acceptedCount = acceptedCount; + return this; + } + + /** + * Number of vault ids from the request that were processed. An empty + * `vaultAccountIds` list is rejected with HTTP 400, not a 200 with zero. + * + * @return acceptedCount + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_ACCEPTED_COUNT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Integer getAcceptedCount() { + return acceptedCount; + } + + @JsonProperty(JSON_PROPERTY_ACCEPTED_COUNT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setAcceptedCount(@jakarta.annotation.Nonnull Integer acceptedCount) { + this.acceptedCount = acceptedCount; + } + + /** Return true if this AddressRegistryAddVaultOptOutsResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AddressRegistryAddVaultOptOutsResponse addressRegistryAddVaultOptOutsResponse = + (AddressRegistryAddVaultOptOutsResponse) o; + return Objects.equals( + this.acceptedCount, addressRegistryAddVaultOptOutsResponse.acceptedCount); + } + + @Override + public int hashCode() { + return Objects.hash(acceptedCount); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AddressRegistryAddVaultOptOutsResponse {\n"); + sb.append(" acceptedCount: ").append(toIndentedString(acceptedCount)).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 `acceptedCount` to the URL query string + if (getAcceptedCount() != null) { + joiner.add( + String.format( + "%sacceptedCount%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getAcceptedCount())))); + } + + 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 1381f55d..6ea3c86a 100644 --- a/src/main/java/com/fireblocks/sdk/model/AddressRegistryError.java +++ b/src/main/java/com/fireblocks/sdk/model/AddressRegistryError.java @@ -21,7 +21,7 @@ import java.util.Objects; import java.util.StringJoiner; -/** Error body for address-registry 4xx and 5xx. */ +/** Error body for address registry operations (4xx and 5xx). */ @JsonPropertyOrder({ AddressRegistryError.JSON_PROPERTY_CODE, AddressRegistryError.JSON_PROPERTY_MESSAGE @@ -50,7 +50,9 @@ public AddressRegistryError code(@jakarta.annotation.Nullable Integer code) { } /** - * Numeric error code (2140–2143) for 403, 404 and 5xx responses. + * 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. * * @return code */ diff --git a/src/main/java/com/fireblocks/sdk/model/AddressRegistryGetVaultOptOutResponse.java b/src/main/java/com/fireblocks/sdk/model/AddressRegistryGetVaultOptOutResponse.java new file mode 100644 index 00000000..54ecba13 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/AddressRegistryGetVaultOptOutResponse.java @@ -0,0 +1,149 @@ +/* + * 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; + +/** Whether the given vault account is excluded from the address registry for your workspace. */ +@JsonPropertyOrder({AddressRegistryGetVaultOptOutResponse.JSON_PROPERTY_OPTED_OUT}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class AddressRegistryGetVaultOptOutResponse { + public static final String JSON_PROPERTY_OPTED_OUT = "optedOut"; + @jakarta.annotation.Nonnull private Boolean optedOut; + + public AddressRegistryGetVaultOptOutResponse() {} + + @JsonCreator + public AddressRegistryGetVaultOptOutResponse( + @JsonProperty(value = JSON_PROPERTY_OPTED_OUT, required = true) Boolean optedOut) { + this.optedOut = optedOut; + } + + public AddressRegistryGetVaultOptOutResponse optedOut( + @jakarta.annotation.Nonnull Boolean optedOut) { + this.optedOut = optedOut; + return this; + } + + /** + * `true` if this vault account is excluded from the address registry; + * `false` if it is not excluded. + * + * @return optedOut + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_OPTED_OUT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Boolean getOptedOut() { + return optedOut; + } + + @JsonProperty(JSON_PROPERTY_OPTED_OUT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setOptedOut(@jakarta.annotation.Nonnull Boolean optedOut) { + this.optedOut = optedOut; + } + + /** Return true if this AddressRegistryGetVaultOptOutResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AddressRegistryGetVaultOptOutResponse addressRegistryGetVaultOptOutResponse = + (AddressRegistryGetVaultOptOutResponse) o; + return Objects.equals(this.optedOut, addressRegistryGetVaultOptOutResponse.optedOut); + } + + @Override + public int hashCode() { + return Objects.hash(optedOut); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AddressRegistryGetVaultOptOutResponse {\n"); + sb.append(" optedOut: ").append(toIndentedString(optedOut)).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 `optedOut` to the URL query string + if (getOptedOut() != null) { + joiner.add( + String.format( + "%soptedOut%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getOptedOut())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/AddressRegistryLegalEntity.java b/src/main/java/com/fireblocks/sdk/model/AddressRegistryLegalEntity.java index ffd85aaf..77112673 100644 --- a/src/main/java/com/fireblocks/sdk/model/AddressRegistryLegalEntity.java +++ b/src/main/java/com/fireblocks/sdk/model/AddressRegistryLegalEntity.java @@ -18,108 +18,211 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.fireblocks.sdk.ApiClient; +import java.util.ArrayList; +import java.util.List; import java.util.Objects; import java.util.StringJoiner; -import java.util.UUID; -/** Legal entity resolved for an address-registry lookup */ +/** Legal entity details for a blockchain address. */ @JsonPropertyOrder({ - AddressRegistryLegalEntity.JSON_PROPERTY_COMPANY_NAME, - AddressRegistryLegalEntity.JSON_PROPERTY_COUNTRY_CODE, - AddressRegistryLegalEntity.JSON_PROPERTY_COMPANY_ID + AddressRegistryLegalEntity.JSON_PROPERTY_VERIFIED, + AddressRegistryLegalEntity.JSON_PROPERTY_ENTITY_NAME, + AddressRegistryLegalEntity.JSON_PROPERTY_JURISDICTION, + AddressRegistryLegalEntity.JSON_PROPERTY_LEI, + AddressRegistryLegalEntity.JSON_PROPERTY_TRAVEL_RULE_PROVIDERS, + AddressRegistryLegalEntity.JSON_PROPERTY_EMAIL }) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.14.0") public class AddressRegistryLegalEntity { - public static final String JSON_PROPERTY_COMPANY_NAME = "companyName"; - @jakarta.annotation.Nonnull private String companyName; + public static final String JSON_PROPERTY_VERIFIED = "verified"; + @jakarta.annotation.Nonnull private Boolean verified; - public static final String JSON_PROPERTY_COUNTRY_CODE = "countryCode"; - @jakarta.annotation.Nonnull private String countryCode; + public static final String JSON_PROPERTY_ENTITY_NAME = "entityName"; + @jakarta.annotation.Nonnull private String entityName; - public static final String JSON_PROPERTY_COMPANY_ID = "companyId"; - @jakarta.annotation.Nonnull private UUID companyId; + public static final String JSON_PROPERTY_JURISDICTION = "jurisdiction"; + @jakarta.annotation.Nonnull private String jurisdiction; + + public static final String JSON_PROPERTY_LEI = "lei"; + @jakarta.annotation.Nonnull private String lei; + + public static final String JSON_PROPERTY_TRAVEL_RULE_PROVIDERS = "travelRuleProviders"; + @jakarta.annotation.Nonnull private List travelRuleProviders; + + public static final String JSON_PROPERTY_EMAIL = "email"; + @jakarta.annotation.Nonnull private String email; public AddressRegistryLegalEntity() {} @JsonCreator public AddressRegistryLegalEntity( - @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; + @JsonProperty(value = JSON_PROPERTY_VERIFIED, required = true) Boolean verified, + @JsonProperty(value = JSON_PROPERTY_ENTITY_NAME, required = true) String entityName, + @JsonProperty(value = JSON_PROPERTY_JURISDICTION, required = true) String jurisdiction, + @JsonProperty(value = JSON_PROPERTY_LEI, required = true) String lei, + @JsonProperty(value = JSON_PROPERTY_TRAVEL_RULE_PROVIDERS, required = true) + List travelRuleProviders, + @JsonProperty(value = JSON_PROPERTY_EMAIL, required = true) String email) { + this.verified = verified; + this.entityName = entityName; + this.jurisdiction = jurisdiction; + this.lei = lei; + this.travelRuleProviders = travelRuleProviders; + this.email = email; + } + + public AddressRegistryLegalEntity verified(@jakarta.annotation.Nonnull Boolean verified) { + this.verified = verified; + return this; + } + + /** + * Whether the entity was resolved from verified public registry data (e.g. LEI sources). + * + * @return verified + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_VERIFIED) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Boolean getVerified() { + return verified; + } + + @JsonProperty(JSON_PROPERTY_VERIFIED) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setVerified(@jakarta.annotation.Nonnull Boolean verified) { + this.verified = verified; + } + + public AddressRegistryLegalEntity entityName(@jakarta.annotation.Nonnull String entityName) { + this.entityName = entityName; + return this; + } + + /** + * Legal entity display name. + * + * @return entityName + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_ENTITY_NAME) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getEntityName() { + return entityName; + } + + @JsonProperty(JSON_PROPERTY_ENTITY_NAME) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setEntityName(@jakarta.annotation.Nonnull String entityName) { + this.entityName = entityName; + } + + public AddressRegistryLegalEntity jurisdiction( + @jakarta.annotation.Nonnull String jurisdiction) { + this.jurisdiction = jurisdiction; + return this; } - public AddressRegistryLegalEntity companyName(@jakarta.annotation.Nonnull String companyName) { - this.companyName = companyName; + /** + * Jurisdiction (e.g. ISO 3166-1 alpha-2 country code). + * + * @return jurisdiction + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_JURISDICTION) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getJurisdiction() { + return jurisdiction; + } + + @JsonProperty(JSON_PROPERTY_JURISDICTION) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setJurisdiction(@jakarta.annotation.Nonnull String jurisdiction) { + this.jurisdiction = jurisdiction; + } + + public AddressRegistryLegalEntity lei(@jakarta.annotation.Nonnull String lei) { + this.lei = lei; return this; } /** - * Legal entity / company display name + * Legal Entity Identifier when available; may be empty when unverified. * - * @return companyName + * @return lei */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_COMPANY_NAME) + @JsonProperty(JSON_PROPERTY_LEI) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public String getCompanyName() { - return companyName; + public String getLei() { + return lei; } - @JsonProperty(JSON_PROPERTY_COMPANY_NAME) + @JsonProperty(JSON_PROPERTY_LEI) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setCompanyName(@jakarta.annotation.Nonnull String companyName) { - this.companyName = companyName; + public void setLei(@jakarta.annotation.Nonnull String lei) { + this.lei = lei; + } + + public AddressRegistryLegalEntity travelRuleProviders( + @jakarta.annotation.Nonnull + List travelRuleProviders) { + this.travelRuleProviders = travelRuleProviders; + return this; } - public AddressRegistryLegalEntity countryCode(@jakarta.annotation.Nonnull String countryCode) { - this.countryCode = countryCode; + public AddressRegistryLegalEntity addTravelRuleProvidersItem( + AddressRegistryTravelRuleProvider travelRuleProvidersItem) { + if (this.travelRuleProviders == null) { + this.travelRuleProviders = new ArrayList<>(); + } + this.travelRuleProviders.add(travelRuleProvidersItem); return this; } /** - * Jurisdiction country code (e.g. ISO 3166-1 alpha-2) + * Get travelRuleProviders * - * @return countryCode + * @return travelRuleProviders */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_COUNTRY_CODE) + @JsonProperty(JSON_PROPERTY_TRAVEL_RULE_PROVIDERS) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public String getCountryCode() { - return countryCode; + public List getTravelRuleProviders() { + return travelRuleProviders; } - @JsonProperty(JSON_PROPERTY_COUNTRY_CODE) + @JsonProperty(JSON_PROPERTY_TRAVEL_RULE_PROVIDERS) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setCountryCode(@jakarta.annotation.Nonnull String countryCode) { - this.countryCode = countryCode; + public void setTravelRuleProviders( + @jakarta.annotation.Nonnull + List travelRuleProviders) { + this.travelRuleProviders = travelRuleProviders; } - public AddressRegistryLegalEntity companyId(@jakarta.annotation.Nonnull UUID companyId) { - this.companyId = companyId; + public AddressRegistryLegalEntity email(@jakarta.annotation.Nonnull String email) { + this.email = email; return this; } /** - * Company identifier for the resolved legal entity (UUID) + * Travel Rule contact email when available. * - * @return companyId + * @return email */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_COMPANY_ID) + @JsonProperty(JSON_PROPERTY_EMAIL) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public UUID getCompanyId() { - return companyId; + public String getEmail() { + return email; } - @JsonProperty(JSON_PROPERTY_COMPANY_ID) + @JsonProperty(JSON_PROPERTY_EMAIL) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setCompanyId(@jakarta.annotation.Nonnull UUID companyId) { - this.companyId = companyId; + public void setEmail(@jakarta.annotation.Nonnull String email) { + this.email = email; } /** Return true if this AddressRegistryLegalEntity object is equal to o. */ @@ -132,23 +235,32 @@ public boolean equals(Object o) { return false; } AddressRegistryLegalEntity addressRegistryLegalEntity = (AddressRegistryLegalEntity) o; - return Objects.equals(this.companyName, addressRegistryLegalEntity.companyName) - && Objects.equals(this.countryCode, addressRegistryLegalEntity.countryCode) - && Objects.equals(this.companyId, addressRegistryLegalEntity.companyId); + return Objects.equals(this.verified, addressRegistryLegalEntity.verified) + && Objects.equals(this.entityName, addressRegistryLegalEntity.entityName) + && Objects.equals(this.jurisdiction, addressRegistryLegalEntity.jurisdiction) + && Objects.equals(this.lei, addressRegistryLegalEntity.lei) + && Objects.equals( + this.travelRuleProviders, addressRegistryLegalEntity.travelRuleProviders) + && Objects.equals(this.email, addressRegistryLegalEntity.email); } @Override public int hashCode() { - return Objects.hash(companyName, countryCode, companyId); + return Objects.hash(verified, entityName, jurisdiction, lei, travelRuleProviders, email); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class AddressRegistryLegalEntity {\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(" verified: ").append(toIndentedString(verified)).append("\n"); + sb.append(" entityName: ").append(toIndentedString(entityName)).append("\n"); + sb.append(" jurisdiction: ").append(toIndentedString(jurisdiction)).append("\n"); + sb.append(" lei: ").append(toIndentedString(lei)).append("\n"); + sb.append(" travelRuleProviders: ") + .append(toIndentedString(travelRuleProviders)) + .append("\n"); + sb.append(" email: ").append(toIndentedString(email)).append("\n"); sb.append("}"); return sb.toString(); } @@ -196,34 +308,74 @@ public String toUrlQueryString(String prefix) { StringJoiner joiner = new StringJoiner("&"); - // add `companyName` to the URL query string - if (getCompanyName() != null) { + // add `verified` to the URL query string + if (getVerified() != null) { + joiner.add( + String.format( + "%sverified%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getVerified())))); + } + + // add `entityName` to the URL query string + if (getEntityName() != null) { joiner.add( String.format( - "%scompanyName%s=%s", + "%sentityName%s=%s", prefix, suffix, - ApiClient.urlEncode(ApiClient.valueToString(getCompanyName())))); + ApiClient.urlEncode(ApiClient.valueToString(getEntityName())))); } - // add `countryCode` to the URL query string - if (getCountryCode() != null) { + // add `jurisdiction` to the URL query string + if (getJurisdiction() != null) { joiner.add( String.format( - "%scountryCode%s=%s", + "%sjurisdiction%s=%s", prefix, suffix, - ApiClient.urlEncode(ApiClient.valueToString(getCountryCode())))); + ApiClient.urlEncode(ApiClient.valueToString(getJurisdiction())))); + } + + // add `lei` to the URL query string + if (getLei() != null) { + joiner.add( + String.format( + "%slei%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getLei())))); + } + + // add `travelRuleProviders` to the URL query string + if (getTravelRuleProviders() != null) { + for (int i = 0; i < getTravelRuleProviders().size(); i++) { + if (getTravelRuleProviders().get(i) != null) { + joiner.add( + String.format( + "%stravelRuleProviders%s%s=%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", containerPrefix, i, containerSuffix), + ApiClient.urlEncode( + ApiClient.valueToString( + getTravelRuleProviders().get(i))))); + } + } } - // add `companyId` to the URL query string - if (getCompanyId() != null) { + // add `email` to the URL query string + if (getEmail() != null) { joiner.add( String.format( - "%scompanyId%s=%s", + "%semail%s=%s", prefix, suffix, - ApiClient.urlEncode(ApiClient.valueToString(getCompanyId())))); + ApiClient.urlEncode(ApiClient.valueToString(getEmail())))); } return joiner.toString(); diff --git a/src/main/java/com/fireblocks/sdk/model/AddressRegistryLegalEntityLegacy.java b/src/main/java/com/fireblocks/sdk/model/AddressRegistryLegalEntityLegacy.java new file mode 100644 index 00000000..a7250bc6 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/AddressRegistryLegalEntityLegacy.java @@ -0,0 +1,238 @@ +/* + * 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/AddressRegistryListVaultOptOutsResponse.java b/src/main/java/com/fireblocks/sdk/model/AddressRegistryListVaultOptOutsResponse.java new file mode 100644 index 00000000..d944e6d1 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/AddressRegistryListVaultOptOutsResponse.java @@ -0,0 +1,295 @@ +/* + * 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; + +/** AddressRegistryListVaultOptOutsResponse */ +@JsonPropertyOrder({ + AddressRegistryListVaultOptOutsResponse.JSON_PROPERTY_TOTAL, + AddressRegistryListVaultOptOutsResponse.JSON_PROPERTY_DATA, + AddressRegistryListVaultOptOutsResponse.JSON_PROPERTY_NEXT, + AddressRegistryListVaultOptOutsResponse.JSON_PROPERTY_PREV +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class AddressRegistryListVaultOptOutsResponse { + public static final String JSON_PROPERTY_TOTAL = "total"; + @jakarta.annotation.Nonnull private Integer total; + + 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 AddressRegistryListVaultOptOutsResponse() {} + + @JsonCreator + public AddressRegistryListVaultOptOutsResponse( + @JsonProperty(value = JSON_PROPERTY_TOTAL, required = true) Integer total, + @JsonProperty(value = JSON_PROPERTY_DATA, required = true) + List data) { + this.total = total; + this.data = data; + } + + public AddressRegistryListVaultOptOutsResponse total( + @jakarta.annotation.Nonnull Integer total) { + this.total = total; + return this; + } + + /** + * Total number of vault accounts excluded from the address registry for your workspace. + * + * @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; + } + + public AddressRegistryListVaultOptOutsResponse data( + @jakarta.annotation.Nonnull List data) { + this.data = data; + return this; + } + + public AddressRegistryListVaultOptOutsResponse addDataItem( + AddressRegistryVaultOptOutItem dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * Get data + * + * @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 AddressRegistryListVaultOptOutsResponse 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 AddressRegistryListVaultOptOutsResponse 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; + } + + /** Return true if this AddressRegistryListVaultOptOutsResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AddressRegistryListVaultOptOutsResponse addressRegistryListVaultOptOutsResponse = + (AddressRegistryListVaultOptOutsResponse) o; + return Objects.equals(this.total, addressRegistryListVaultOptOutsResponse.total) + && Objects.equals(this.data, addressRegistryListVaultOptOutsResponse.data) + && Objects.equals(this.next, addressRegistryListVaultOptOutsResponse.next) + && Objects.equals(this.prev, addressRegistryListVaultOptOutsResponse.prev); + } + + @Override + public int hashCode() { + return Objects.hash(total, data, next, prev); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AddressRegistryListVaultOptOutsResponse {\n"); + 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(); + } + + /** + * 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())))); + } + + // 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())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/AddressRegistryRemoveAllVaultOptOutsResponse.java b/src/main/java/com/fireblocks/sdk/model/AddressRegistryRemoveAllVaultOptOutsResponse.java new file mode 100644 index 00000000..641f21a0 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/AddressRegistryRemoveAllVaultOptOutsResponse.java @@ -0,0 +1,150 @@ +/* + * 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; + +/** Result of clearing all vault-level opt-outs for the address registry on this workspace. */ +@JsonPropertyOrder({AddressRegistryRemoveAllVaultOptOutsResponse.JSON_PROPERTY_REMOVED_COUNT}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class AddressRegistryRemoveAllVaultOptOutsResponse { + public static final String JSON_PROPERTY_REMOVED_COUNT = "removedCount"; + @jakarta.annotation.Nonnull private Integer removedCount; + + public AddressRegistryRemoveAllVaultOptOutsResponse() {} + + @JsonCreator + public AddressRegistryRemoveAllVaultOptOutsResponse( + @JsonProperty(value = JSON_PROPERTY_REMOVED_COUNT, required = true) + Integer removedCount) { + this.removedCount = removedCount; + } + + public AddressRegistryRemoveAllVaultOptOutsResponse removedCount( + @jakarta.annotation.Nonnull Integer removedCount) { + this.removedCount = removedCount; + return this; + } + + /** + * Number of opt-out rows deleted (0 if none existed). + * + * @return removedCount + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_REMOVED_COUNT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Integer getRemovedCount() { + return removedCount; + } + + @JsonProperty(JSON_PROPERTY_REMOVED_COUNT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setRemovedCount(@jakarta.annotation.Nonnull Integer removedCount) { + this.removedCount = removedCount; + } + + /** Return true if this AddressRegistryRemoveAllVaultOptOutsResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AddressRegistryRemoveAllVaultOptOutsResponse addressRegistryRemoveAllVaultOptOutsResponse = + (AddressRegistryRemoveAllVaultOptOutsResponse) o; + return Objects.equals( + this.removedCount, addressRegistryRemoveAllVaultOptOutsResponse.removedCount); + } + + @Override + public int hashCode() { + return Objects.hash(removedCount); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AddressRegistryRemoveAllVaultOptOutsResponse {\n"); + sb.append(" removedCount: ").append(toIndentedString(removedCount)).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 `removedCount` to the URL query string + if (getRemovedCount() != null) { + joiner.add( + String.format( + "%sremovedCount%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getRemovedCount())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/AddressRegistryRemoveVaultOptOutResponse.java b/src/main/java/com/fireblocks/sdk/model/AddressRegistryRemoveVaultOptOutResponse.java new file mode 100644 index 00000000..4e001045 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/AddressRegistryRemoveVaultOptOutResponse.java @@ -0,0 +1,151 @@ +/* + * 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; + +/** + * Body after removing one vault from the opt-out list; same fields as GET for that vault + * (`optedOut` is false). + */ +@JsonPropertyOrder({AddressRegistryRemoveVaultOptOutResponse.JSON_PROPERTY_OPTED_OUT}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class AddressRegistryRemoveVaultOptOutResponse { + public static final String JSON_PROPERTY_OPTED_OUT = "optedOut"; + @jakarta.annotation.Nonnull private Boolean optedOut; + + public AddressRegistryRemoveVaultOptOutResponse() {} + + @JsonCreator + public AddressRegistryRemoveVaultOptOutResponse( + @JsonProperty(value = JSON_PROPERTY_OPTED_OUT, required = true) Boolean optedOut) { + this.optedOut = optedOut; + } + + public AddressRegistryRemoveVaultOptOutResponse optedOut( + @jakarta.annotation.Nonnull Boolean optedOut) { + this.optedOut = optedOut; + return this; + } + + /** + * Always false after a successful remove — the vault is not on the opt-out list. + * + * @return optedOut + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_OPTED_OUT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Boolean getOptedOut() { + return optedOut; + } + + @JsonProperty(JSON_PROPERTY_OPTED_OUT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setOptedOut(@jakarta.annotation.Nonnull Boolean optedOut) { + this.optedOut = optedOut; + } + + /** Return true if this AddressRegistryRemoveVaultOptOutResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AddressRegistryRemoveVaultOptOutResponse addressRegistryRemoveVaultOptOutResponse = + (AddressRegistryRemoveVaultOptOutResponse) o; + return Objects.equals(this.optedOut, addressRegistryRemoveVaultOptOutResponse.optedOut); + } + + @Override + public int hashCode() { + return Objects.hash(optedOut); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AddressRegistryRemoveVaultOptOutResponse {\n"); + sb.append(" optedOut: ").append(toIndentedString(optedOut)).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 `optedOut` to the URL query string + if (getOptedOut() != null) { + joiner.add( + String.format( + "%soptedOut%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getOptedOut())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/AddressRegistryTenantRegistryResponse.java b/src/main/java/com/fireblocks/sdk/model/AddressRegistryTenantRegistryResponse.java new file mode 100644 index 00000000..921e07b6 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/AddressRegistryTenantRegistryResponse.java @@ -0,0 +1,185 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fireblocks.sdk.ApiClient; +import java.util.Objects; +import java.util.StringJoiner; + +/** + * Workspace participation in the address registry. Same shape for GET, POST (opt in), and DELETE + * (opt out). + */ +@JsonPropertyOrder({AddressRegistryTenantRegistryResponse.JSON_PROPERTY_STATUS}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class AddressRegistryTenantRegistryResponse { + /** OPTED_IN or OPTED_OUT. */ + public enum StatusEnum { + OPTED_IN(String.valueOf("OPTED_IN")), + + OPTED_OUT(String.valueOf("OPTED_OUT")); + + 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 AddressRegistryTenantRegistryResponse() {} + + @JsonCreator + public AddressRegistryTenantRegistryResponse( + @JsonProperty(value = JSON_PROPERTY_STATUS, required = true) StatusEnum status) { + this.status = status; + } + + public AddressRegistryTenantRegistryResponse status( + @jakarta.annotation.Nonnull StatusEnum status) { + this.status = status; + return this; + } + + /** + * OPTED_IN or OPTED_OUT. + * + * @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 AddressRegistryTenantRegistryResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AddressRegistryTenantRegistryResponse addressRegistryTenantRegistryResponse = + (AddressRegistryTenantRegistryResponse) o; + return Objects.equals(this.status, addressRegistryTenantRegistryResponse.status); + } + + @Override + public int hashCode() { + return Objects.hash(status); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AddressRegistryTenantRegistryResponse {\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first + * line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + /** + * Convert the instance into URL query string. + * + * @return URL query string + */ + public String toUrlQueryString() { + return toUrlQueryString(null); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + String suffix = ""; + String containerSuffix = ""; + String containerPrefix = ""; + if (prefix == null) { + // style=form, explode=true, e.g. /pet?name=cat&type=manx + prefix = ""; + } else { + // deepObject style e.g. /pet?id[name]=cat&id[type]=manx + prefix = prefix + "["; + suffix = "]"; + containerSuffix = "]"; + containerPrefix = "["; + } + + StringJoiner joiner = new StringJoiner("&"); + + // add `status` to the URL query string + if (getStatus() != null) { + joiner.add( + String.format( + "%sstatus%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getStatus())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/AddressRegistryTravelRuleProvider.java b/src/main/java/com/fireblocks/sdk/model/AddressRegistryTravelRuleProvider.java new file mode 100644 index 00000000..a270532e --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/AddressRegistryTravelRuleProvider.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; + +/** Travel Rule provider identifier (string enum value). */ +public enum AddressRegistryTravelRuleProvider { + TRAVEL_RULE_PROVIDER_NOTABENE("TRAVEL_RULE_PROVIDER_NOTABENE"), + + TRAVEL_RULE_PROVIDER_SYGNA("TRAVEL_RULE_PROVIDER_SYGNA"), + + TRAVEL_RULE_PROVIDER_TRISA("TRAVEL_RULE_PROVIDER_TRISA"), + + TRAVEL_RULE_PROVIDER_OPENVASP("TRAVEL_RULE_PROVIDER_OPENVASP"); + + private String value; + + AddressRegistryTravelRuleProvider(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static AddressRegistryTravelRuleProvider fromValue(String value) { + for (AddressRegistryTravelRuleProvider b : AddressRegistryTravelRuleProvider.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/AddressRegistryVaultListOrder.java b/src/main/java/com/fireblocks/sdk/model/AddressRegistryVaultListOrder.java new file mode 100644 index 00000000..5f9aff9f --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/AddressRegistryVaultListOrder.java @@ -0,0 +1,67 @@ +/* + * 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; + +/** + * Sort order for the vault opt-out list by vault account id (ascending is the default when + * omitted). + */ +public enum AddressRegistryVaultListOrder { + VAULT_OPT_OUT_LIST_ORDER_ASC("VAULT_OPT_OUT_LIST_ORDER_ASC"), + + VAULT_OPT_OUT_LIST_ORDER_DESC("VAULT_OPT_OUT_LIST_ORDER_DESC"); + + private String value; + + AddressRegistryVaultListOrder(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static AddressRegistryVaultListOrder fromValue(String value) { + for (AddressRegistryVaultListOrder b : AddressRegistryVaultListOrder.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/AddressRegistryVaultOptOutItem.java b/src/main/java/com/fireblocks/sdk/model/AddressRegistryVaultOptOutItem.java new file mode 100644 index 00000000..403aed32 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/AddressRegistryVaultOptOutItem.java @@ -0,0 +1,149 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fireblocks.sdk.ApiClient; +import java.util.Objects; +import java.util.StringJoiner; + +/** A vault account excluded from the address registry for your workspace. */ +@JsonPropertyOrder({AddressRegistryVaultOptOutItem.JSON_PROPERTY_VAULT_ACCOUNT_ID}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class AddressRegistryVaultOptOutItem { + public static final String JSON_PROPERTY_VAULT_ACCOUNT_ID = "vaultAccountId"; + @jakarta.annotation.Nonnull private Integer vaultAccountId; + + public AddressRegistryVaultOptOutItem() {} + + @JsonCreator + public AddressRegistryVaultOptOutItem( + @JsonProperty(value = JSON_PROPERTY_VAULT_ACCOUNT_ID, required = true) + Integer vaultAccountId) { + this.vaultAccountId = vaultAccountId; + } + + public AddressRegistryVaultOptOutItem vaultAccountId( + @jakarta.annotation.Nonnull Integer vaultAccountId) { + this.vaultAccountId = vaultAccountId; + return this; + } + + /** + * Vault account ID. + * + * @return vaultAccountId + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_VAULT_ACCOUNT_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Integer getVaultAccountId() { + return vaultAccountId; + } + + @JsonProperty(JSON_PROPERTY_VAULT_ACCOUNT_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setVaultAccountId(@jakarta.annotation.Nonnull Integer vaultAccountId) { + this.vaultAccountId = vaultAccountId; + } + + /** Return true if this AddressRegistryVaultOptOutItem object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AddressRegistryVaultOptOutItem addressRegistryVaultOptOutItem = + (AddressRegistryVaultOptOutItem) o; + return Objects.equals(this.vaultAccountId, addressRegistryVaultOptOutItem.vaultAccountId); + } + + @Override + public int hashCode() { + return Objects.hash(vaultAccountId); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AddressRegistryVaultOptOutItem {\n"); + sb.append(" vaultAccountId: ").append(toIndentedString(vaultAccountId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first + * line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + /** + * Convert the instance into URL query string. + * + * @return URL query string + */ + public String toUrlQueryString() { + return toUrlQueryString(null); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + String suffix = ""; + String containerSuffix = ""; + String containerPrefix = ""; + if (prefix == null) { + // style=form, explode=true, e.g. /pet?name=cat&type=manx + prefix = ""; + } else { + // deepObject style e.g. /pet?id[name]=cat&id[type]=manx + prefix = prefix + "["; + suffix = "]"; + containerSuffix = "]"; + containerPrefix = "["; + } + + StringJoiner joiner = new StringJoiner("&"); + + // add `vaultAccountId` to the URL query string + if (getVaultAccountId() != null) { + joiner.add( + String.format( + "%svaultAccountId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getVaultAccountId())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/AmlResult.java b/src/main/java/com/fireblocks/sdk/model/AmlResult.java index 65d3f647..2975b327 100644 --- a/src/main/java/com/fireblocks/sdk/model/AmlResult.java +++ b/src/main/java/com/fireblocks/sdk/model/AmlResult.java @@ -25,9 +25,13 @@ import java.util.StringJoiner; /** - * Detailed AML screening result information. Contains alerts, risk scores, and other AML-specific - * data from provider-specific responses. + * Deprecated: This field is not currently returned in the API response. Detailed AML screening + * result information. Contains alerts, risk scores, and other AML-specific data from + * provider-specific responses. + * + * @deprecated */ +@Deprecated @JsonPropertyOrder({ AmlResult.JSON_PROPERTY_ALERTS, AmlResult.JSON_PROPERTY_PROVIDER_RESPONSE, diff --git a/src/main/java/com/fireblocks/sdk/model/AmlStatusEnum.java b/src/main/java/com/fireblocks/sdk/model/AmlStatusEnum.java index a8e8d8a6..43c2bbc3 100644 --- a/src/main/java/com/fireblocks/sdk/model/AmlStatusEnum.java +++ b/src/main/java/com/fireblocks/sdk/model/AmlStatusEnum.java @@ -16,7 +16,7 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; -/** AML screening status */ +/** Deprecated: Use screeningStatus instead. AML screening status. */ public enum AmlStatusEnum { COMPLETED("COMPLETED"), diff --git a/src/main/java/com/fireblocks/sdk/model/AssignVaultsToLegalEntityRequest.java b/src/main/java/com/fireblocks/sdk/model/AssignVaultsToLegalEntityRequest.java new file mode 100644 index 00000000..10ba3adf --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/AssignVaultsToLegalEntityRequest.java @@ -0,0 +1,167 @@ +/* + * 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; + +/** Request body to assign vault accounts to a legal entity */ +@JsonPropertyOrder({AssignVaultsToLegalEntityRequest.JSON_PROPERTY_VAULT_ACCOUNT_IDS}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class AssignVaultsToLegalEntityRequest { + public static final String JSON_PROPERTY_VAULT_ACCOUNT_IDS = "vaultAccountIds"; + @jakarta.annotation.Nonnull private List vaultAccountIds; + + public AssignVaultsToLegalEntityRequest() {} + + @JsonCreator + public AssignVaultsToLegalEntityRequest( + @JsonProperty(value = JSON_PROPERTY_VAULT_ACCOUNT_IDS, required = true) + List vaultAccountIds) { + this.vaultAccountIds = vaultAccountIds; + } + + public AssignVaultsToLegalEntityRequest vaultAccountIds( + @jakarta.annotation.Nonnull List vaultAccountIds) { + this.vaultAccountIds = vaultAccountIds; + return this; + } + + public AssignVaultsToLegalEntityRequest addVaultAccountIdsItem(String vaultAccountIdsItem) { + if (this.vaultAccountIds == null) { + this.vaultAccountIds = new ArrayList<>(); + } + this.vaultAccountIds.add(vaultAccountIdsItem); + return this; + } + + /** + * List of vault account IDs to assign to the legal entity + * + * @return vaultAccountIds + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_VAULT_ACCOUNT_IDS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getVaultAccountIds() { + return vaultAccountIds; + } + + @JsonProperty(JSON_PROPERTY_VAULT_ACCOUNT_IDS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setVaultAccountIds(@jakarta.annotation.Nonnull List vaultAccountIds) { + this.vaultAccountIds = vaultAccountIds; + } + + /** Return true if this AssignVaultsToLegalEntityRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AssignVaultsToLegalEntityRequest assignVaultsToLegalEntityRequest = + (AssignVaultsToLegalEntityRequest) o; + return Objects.equals( + this.vaultAccountIds, assignVaultsToLegalEntityRequest.vaultAccountIds); + } + + @Override + public int hashCode() { + return Objects.hash(vaultAccountIds); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AssignVaultsToLegalEntityRequest {\n"); + sb.append(" vaultAccountIds: ").append(toIndentedString(vaultAccountIds)).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 `vaultAccountIds` to the URL query string + if (getVaultAccountIds() != null) { + for (int i = 0; i < getVaultAccountIds().size(); i++) { + joiner.add( + String.format( + "%svaultAccountIds%s%s=%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", containerPrefix, i, containerSuffix), + ApiClient.urlEncode( + ApiClient.valueToString(getVaultAccountIds().get(i))))); + } + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/AssignVaultsToLegalEntityResponse.java b/src/main/java/com/fireblocks/sdk/model/AssignVaultsToLegalEntityResponse.java new file mode 100644 index 00000000..c92aa784 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/AssignVaultsToLegalEntityResponse.java @@ -0,0 +1,149 @@ +/* + * 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 after assigning vault accounts to a legal entity */ +@JsonPropertyOrder({AssignVaultsToLegalEntityResponse.JSON_PROPERTY_ASSIGNED_COUNT}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class AssignVaultsToLegalEntityResponse { + public static final String JSON_PROPERTY_ASSIGNED_COUNT = "assignedCount"; + @jakarta.annotation.Nonnull private Integer assignedCount; + + public AssignVaultsToLegalEntityResponse() {} + + @JsonCreator + public AssignVaultsToLegalEntityResponse( + @JsonProperty(value = JSON_PROPERTY_ASSIGNED_COUNT, required = true) + Integer assignedCount) { + this.assignedCount = assignedCount; + } + + public AssignVaultsToLegalEntityResponse assignedCount( + @jakarta.annotation.Nonnull Integer assignedCount) { + this.assignedCount = assignedCount; + return this; + } + + /** + * Number of vault accounts successfully assigned + * + * @return assignedCount + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_ASSIGNED_COUNT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Integer getAssignedCount() { + return assignedCount; + } + + @JsonProperty(JSON_PROPERTY_ASSIGNED_COUNT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setAssignedCount(@jakarta.annotation.Nonnull Integer assignedCount) { + this.assignedCount = assignedCount; + } + + /** Return true if this AssignVaultsToLegalEntityResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AssignVaultsToLegalEntityResponse assignVaultsToLegalEntityResponse = + (AssignVaultsToLegalEntityResponse) o; + return Objects.equals(this.assignedCount, assignVaultsToLegalEntityResponse.assignedCount); + } + + @Override + public int hashCode() { + return Objects.hash(assignedCount); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AssignVaultsToLegalEntityResponse {\n"); + sb.append(" assignedCount: ").append(toIndentedString(assignedCount)).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 `assignedCount` to the URL query string + if (getAssignedCount() != null) { + joiner.add( + String.format( + "%sassignedCount%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getAssignedCount())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/BaseProvider.java b/src/main/java/com/fireblocks/sdk/model/BaseProvider.java index 3c7e8694..379bb291 100644 --- a/src/main/java/com/fireblocks/sdk/model/BaseProvider.java +++ b/src/main/java/com/fireblocks/sdk/model/BaseProvider.java @@ -26,7 +26,8 @@ BaseProvider.JSON_PROPERTY_ID, BaseProvider.JSON_PROPERTY_NAME, BaseProvider.JSON_PROPERTY_LOGO, - BaseProvider.JSON_PROPERTY_ACCOUNT_BASED + BaseProvider.JSON_PROPERTY_ACCOUNT_BASED, + BaseProvider.JSON_PROPERTY_MANIFEST }) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", @@ -44,6 +45,9 @@ public class BaseProvider { 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 BaseProvider() {} @JsonCreator @@ -51,10 +55,12 @@ public BaseProvider( @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) { + Boolean accountBased, + @JsonProperty(value = JSON_PROPERTY_MANIFEST, required = true) Manifest manifest) { this.id = id; this.name = name; this.accountBased = accountBased; + this.manifest = manifest; } public BaseProvider id(@jakarta.annotation.Nonnull String id) { @@ -149,6 +155,29 @@ public void setAccountBased(@jakarta.annotation.Nonnull Boolean accountBased) { this.accountBased = accountBased; } + public BaseProvider 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; + } + /** Return true if this BaseProvider object is equal to o. */ @Override public boolean equals(Object o) { @@ -162,12 +191,13 @@ public boolean equals(Object o) { return Objects.equals(this.id, baseProvider.id) && Objects.equals(this.name, baseProvider.name) && Objects.equals(this.logo, baseProvider.logo) - && Objects.equals(this.accountBased, baseProvider.accountBased); + && Objects.equals(this.accountBased, baseProvider.accountBased) + && Objects.equals(this.manifest, baseProvider.manifest); } @Override public int hashCode() { - return Objects.hash(id, name, logo, accountBased); + return Objects.hash(id, name, logo, accountBased, manifest); } @Override @@ -178,6 +208,7 @@ public String toString() { 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("}"); return sb.toString(); } @@ -263,6 +294,11 @@ public String toUrlQueryString(String prefix) { ApiClient.urlEncode(ApiClient.valueToString(getAccountBased())))); } + // add `manifest` to the URL query string + if (getManifest() != null) { + joiner.add(getManifest().toUrlQueryString(prefix + "manifest" + suffix)); + } + return joiner.toString(); } } diff --git a/src/main/java/com/fireblocks/sdk/model/CollectionOwnershipResponse.java b/src/main/java/com/fireblocks/sdk/model/CollectionOwnershipResponse.java index a9a48419..f0fbb83a 100644 --- a/src/main/java/com/fireblocks/sdk/model/CollectionOwnershipResponse.java +++ b/src/main/java/com/fireblocks/sdk/model/CollectionOwnershipResponse.java @@ -101,7 +101,9 @@ public enum BlockchainDescriptorEnum { CRONOS(String.valueOf("CRONOS")), - CRONOS_TEST(String.valueOf("CRONOS_TEST")); + CRONOS_TEST(String.valueOf("CRONOS_TEST")), + + ROBINHOOD_CHAIN_TESTNET_TEST(String.valueOf("ROBINHOOD_CHAIN_TESTNET_TEST")); private String value; diff --git a/src/main/java/com/fireblocks/sdk/model/ComplianceScreeningResult.java b/src/main/java/com/fireblocks/sdk/model/ComplianceScreeningResult.java index 698e1684..4180313d 100644 --- a/src/main/java/com/fireblocks/sdk/model/ComplianceScreeningResult.java +++ b/src/main/java/com/fireblocks/sdk/model/ComplianceScreeningResult.java @@ -20,6 +20,8 @@ import com.fasterxml.jackson.annotation.JsonValue; import com.fireblocks.sdk.ApiClient; import java.math.BigDecimal; +import java.util.HashMap; +import java.util.Map; import java.util.Objects; import java.util.StringJoiner; @@ -58,7 +60,8 @@ ComplianceScreeningResult.JSON_PROPERTY_MATCHED_NO_TRM_SCREENING_RULE, ComplianceScreeningResult.JSON_PROPERTY_CUSTOMER_INTEGRATION_ID, ComplianceScreeningResult.JSON_PROPERTY_CUSTOMER_SHORT_NAME, - ComplianceScreeningResult.JSON_PROPERTY_TRAVEL_RULE_MESSAGE_ID + ComplianceScreeningResult.JSON_PROPERTY_TRAVEL_RULE_MESSAGE_ID, + ComplianceScreeningResult.JSON_PROPERTY_PROVIDER_RESPONSE }) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", @@ -131,10 +134,10 @@ public static ScreeningStatusEnum fromValue(String value) { @jakarta.annotation.Nullable private ScreeningVerdictEnum verdict; public static final String JSON_PROPERTY_RISK = "risk"; - @jakarta.annotation.Nullable private ScreeningRiskLevelEnum risk; + @jakarta.annotation.Nullable private String risk; public static final String JSON_PROPERTY_EXTENDED_RISK = "extendedRisk"; - @jakarta.annotation.Nullable private ScreeningRiskLevelEnum extendedRisk; + @jakarta.annotation.Nullable private String extendedRisk; public static final String JSON_PROPERTY_EXTERNAL_ID = "externalId"; @jakarta.annotation.Nullable private String externalId; @@ -195,6 +198,9 @@ public static ScreeningStatusEnum fromValue(String value) { public static final String JSON_PROPERTY_TRAVEL_RULE_MESSAGE_ID = "travelRuleMessageId"; @jakarta.annotation.Nullable private String travelRuleMessageId; + public static final String JSON_PROPERTY_PROVIDER_RESPONSE = "providerResponse"; + @jakarta.annotation.Nullable private Map providerResponse; + public ComplianceScreeningResult() {} public ComplianceScreeningResult provider(@jakarta.annotation.Nullable String provider) { @@ -203,8 +209,8 @@ public ComplianceScreeningResult provider(@jakarta.annotation.Nullable String pr } /** - * The AML/Travel Rule provider name. For AML: ELLIPTIC, CHAINALYSIS, SCORECHAIN, - * MERKLE_SCIENCE, etc. For Travel Rule: NOTABENE, SYGNA, or any TRLink provider name + * The AML/Travel Rule provider name. For AML: ELLIPTIC, CHAINALYSIS, etc. For Travel Rule: + * NOTABENE, SUMSUB, GTR, or any TRLink provider name. * * @return provider */ @@ -301,8 +307,9 @@ public ComplianceScreeningResult bypassReason( } /** - * Reason for bypassing the screening, if applicable. For AML: SANCTIONS_SCREENING_BYPASS, - * SANCTIONS_RECIPIENT_BYPASS, etc. For Travel Rule: BELOW_THRESHOLD, NO_TRM_AVAILABLE, etc. + * Reason for bypassing the screening, if applicable. For AML: UNSUPPORTED_ASSET, + * PASSED_BY_POLICY. For Travel Rule: UNSUPPORTED_ASSET, NO_TRAVEL_RULE_MESSAGE, + * TRANSACTION_ZERO_AMOUNT. * * @return bypassReason */ @@ -328,7 +335,9 @@ public ComplianceScreeningResult status(@jakarta.annotation.Nullable AmlStatusEn * Get status * * @return status + * @deprecated */ + @Deprecated @jakarta.annotation.Nullable @JsonProperty(JSON_PROPERTY_STATUS) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) @@ -352,7 +361,9 @@ public ComplianceScreeningResult prevStatus( * Get prevStatus * * @return prevStatus + * @deprecated */ + @Deprecated @jakarta.annotation.Nullable @JsonProperty(JSON_PROPERTY_PREV_STATUS) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) @@ -373,10 +384,13 @@ public ComplianceScreeningResult prevBypassReason( } /** - * Previous bypass reason before the current bypass reason change + * Deprecated: This field is not currently returned in the API response. Previous bypass reason + * before the current bypass reason change. * * @return prevBypassReason + * @deprecated */ + @Deprecated @jakarta.annotation.Nullable @JsonProperty(JSON_PROPERTY_PREV_BYPASS_REASON) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) @@ -414,51 +428,55 @@ public void setVerdict(@jakarta.annotation.Nullable ScreeningVerdictEnum verdict this.verdict = verdict; } - public ComplianceScreeningResult risk( - @jakarta.annotation.Nullable ScreeningRiskLevelEnum risk) { + public ComplianceScreeningResult risk(@jakarta.annotation.Nullable String risk) { this.risk = risk; return this; } /** - * Get risk + * Risk level assessment for screening results. Values vary by provider and are not managed by + * this service. Known values by provider: - Chainalysis: severeRisk, highRisk, mediumRisk, + * lowRisk, noRiskInfo - Elliptic: noRiskDetected Legacy values (SCREAMING_SNAKE_CASE, may + * appear in old transactions): VERY_HIGH, SEVERE, HIGH, MEDIUM, LOW, NO_RISK_INFO, UNKNOWN * * @return risk */ @jakarta.annotation.Nullable @JsonProperty(JSON_PROPERTY_RISK) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public ScreeningRiskLevelEnum getRisk() { + public String getRisk() { return risk; } @JsonProperty(JSON_PROPERTY_RISK) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setRisk(@jakarta.annotation.Nullable ScreeningRiskLevelEnum risk) { + public void setRisk(@jakarta.annotation.Nullable String risk) { this.risk = risk; } public ComplianceScreeningResult extendedRisk( - @jakarta.annotation.Nullable ScreeningRiskLevelEnum extendedRisk) { + @jakarta.annotation.Nullable String extendedRisk) { this.extendedRisk = extendedRisk; return this; } /** - * Get extendedRisk + * Deprecated: This field is not currently returned in the API response. Use risk instead. * * @return extendedRisk + * @deprecated */ + @Deprecated @jakarta.annotation.Nullable @JsonProperty(JSON_PROPERTY_EXTENDED_RISK) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public ScreeningRiskLevelEnum getExtendedRisk() { + public String getExtendedRisk() { return extendedRisk; } @JsonProperty(JSON_PROPERTY_EXTENDED_RISK) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setExtendedRisk(@jakarta.annotation.Nullable ScreeningRiskLevelEnum extendedRisk) { + public void setExtendedRisk(@jakarta.annotation.Nullable String extendedRisk) { this.extendedRisk = extendedRisk; } @@ -515,10 +533,13 @@ public ComplianceScreeningResult refId(@jakarta.annotation.Nullable String refId } /** - * Internal reference identifier + * Deprecated: This field is not currently returned in the API response. Internal reference + * identifier. * * @return refId + * @deprecated */ + @Deprecated @jakarta.annotation.Nullable @JsonProperty(JSON_PROPERTY_REF_ID) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) @@ -633,10 +654,13 @@ public ComplianceScreeningResult destRecordId( } /** - * The destination record identifier used by the screening provider + * Deprecated: This field is not currently returned in the API response. The destination record + * identifier used by the screening provider. * * @return destRecordId + * @deprecated */ + @Deprecated @jakarta.annotation.Nullable @JsonProperty(JSON_PROPERTY_DEST_RECORD_ID) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) @@ -657,10 +681,13 @@ public ComplianceScreeningResult addressResolutionSignature( } /** - * Cryptographic signature for address resolution verification + * Deprecated: This field is not currently returned in the API response. Cryptographic signature + * for address resolution verification. * * @return addressResolutionSignature + * @deprecated */ + @Deprecated @jakarta.annotation.Nullable @JsonProperty(JSON_PROPERTY_ADDRESS_RESOLUTION_SIGNATURE) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) @@ -684,7 +711,9 @@ public ComplianceScreeningResult amlResult(@jakarta.annotation.Nullable AmlResul * Get amlResult * * @return amlResult + * @deprecated */ + @Deprecated @jakarta.annotation.Nullable @JsonProperty(JSON_PROPERTY_AML_RESULT) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) @@ -707,7 +736,9 @@ public ComplianceScreeningResult result(@jakarta.annotation.Nullable TravelRuleR * Get result * * @return result + * @deprecated */ + @Deprecated @jakarta.annotation.Nullable @JsonProperty(JSON_PROPERTY_RESULT) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) @@ -918,6 +949,46 @@ public void setTravelRuleMessageId(@jakarta.annotation.Nullable String travelRul this.travelRuleMessageId = travelRuleMessageId; } + public ComplianceScreeningResult providerResponse( + @jakarta.annotation.Nullable Map providerResponse) { + this.providerResponse = providerResponse; + return this; + } + + public ComplianceScreeningResult putProviderResponseItem( + String key, Object providerResponseItem) { + if (this.providerResponse == null) { + this.providerResponse = new HashMap<>(); + } + this.providerResponse.put(key, providerResponseItem); + return this; + } + + /** + * Complete response from the screening provider. This is a dynamic object that varies + * significantly between different providers (Chainalysis, Elliptic, NOTABENE, etc.). Each + * provider has their own proprietary response format and schema. For AML providers: Contains + * risk scores, alerts, entity information For Travel Rule providers: Contains VASP information, + * PII data, protocol-specific fields The structure is provider-dependent and cannot be + * standardized as each vendor implements their own proprietary data models and response + * formats. + * + * @return providerResponse + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_PROVIDER_RESPONSE) + @JsonInclude(content = JsonInclude.Include.ALWAYS, value = JsonInclude.Include.USE_DEFAULTS) + public Map getProviderResponse() { + return providerResponse; + } + + @JsonProperty(JSON_PROPERTY_PROVIDER_RESPONSE) + @JsonInclude(content = JsonInclude.Include.ALWAYS, value = JsonInclude.Include.USE_DEFAULTS) + public void setProviderResponse( + @jakarta.annotation.Nullable Map providerResponse) { + this.providerResponse = providerResponse; + } + /** Return true if this ComplianceScreeningResult object is equal to o. */ @Override public boolean equals(Object o) { @@ -966,7 +1037,9 @@ public boolean equals(Object o) { && Objects.equals( this.customerShortName, complianceScreeningResult.customerShortName) && Objects.equals( - this.travelRuleMessageId, complianceScreeningResult.travelRuleMessageId); + this.travelRuleMessageId, complianceScreeningResult.travelRuleMessageId) + && Objects.equals( + this.providerResponse, complianceScreeningResult.providerResponse); } @Override @@ -1001,7 +1074,8 @@ public int hashCode() { matchedNoTrmScreeningRule, customerIntegrationId, customerShortName, - travelRuleMessageId); + travelRuleMessageId, + providerResponse); } @Override @@ -1050,6 +1124,7 @@ public String toString() { sb.append(" travelRuleMessageId: ") .append(toIndentedString(travelRuleMessageId)) .append("\n"); + sb.append(" providerResponse: ").append(toIndentedString(providerResponse)).append("\n"); sb.append("}"); return sb.toString(); } @@ -1388,6 +1463,24 @@ public String toUrlQueryString(String prefix) { ApiClient.valueToString(getTravelRuleMessageId())))); } + // add `providerResponse` to the URL query string + if (getProviderResponse() != null) { + for (String _key : getProviderResponse().keySet()) { + joiner.add( + String.format( + "%sproviderResponse%s%s=%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", containerPrefix, _key, containerSuffix), + getProviderResponse().get(_key), + ApiClient.urlEncode( + ApiClient.valueToString(getProviderResponse().get(_key))))); + } + } + return joiner.toString(); } } diff --git a/src/main/java/com/fireblocks/sdk/model/ComplianceScreeningResultFullPayload.java b/src/main/java/com/fireblocks/sdk/model/ComplianceScreeningResultFullPayload.java index 001efc58..fa9ab028 100644 --- a/src/main/java/com/fireblocks/sdk/model/ComplianceScreeningResultFullPayload.java +++ b/src/main/java/com/fireblocks/sdk/model/ComplianceScreeningResultFullPayload.java @@ -20,6 +20,8 @@ import com.fasterxml.jackson.annotation.JsonValue; import com.fireblocks.sdk.ApiClient; import java.math.BigDecimal; +import java.util.HashMap; +import java.util.Map; import java.util.Objects; import java.util.StringJoiner; @@ -58,7 +60,8 @@ ComplianceScreeningResultFullPayload.JSON_PROPERTY_MATCHED_NO_TRM_SCREENING_RULE, ComplianceScreeningResultFullPayload.JSON_PROPERTY_CUSTOMER_INTEGRATION_ID, ComplianceScreeningResultFullPayload.JSON_PROPERTY_CUSTOMER_SHORT_NAME, - ComplianceScreeningResultFullPayload.JSON_PROPERTY_TRAVEL_RULE_MESSAGE_ID + ComplianceScreeningResultFullPayload.JSON_PROPERTY_TRAVEL_RULE_MESSAGE_ID, + ComplianceScreeningResultFullPayload.JSON_PROPERTY_PROVIDER_RESPONSE }) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", @@ -131,10 +134,10 @@ public static ScreeningStatusEnum fromValue(String value) { @jakarta.annotation.Nullable private ScreeningVerdictEnum verdict; public static final String JSON_PROPERTY_RISK = "risk"; - @jakarta.annotation.Nullable private ScreeningRiskLevelEnum risk; + @jakarta.annotation.Nullable private String risk; public static final String JSON_PROPERTY_EXTENDED_RISK = "extendedRisk"; - @jakarta.annotation.Nullable private ScreeningRiskLevelEnum extendedRisk; + @jakarta.annotation.Nullable private String extendedRisk; public static final String JSON_PROPERTY_EXTERNAL_ID = "externalId"; @jakarta.annotation.Nullable private String externalId; @@ -197,6 +200,9 @@ public static ScreeningStatusEnum fromValue(String value) { public static final String JSON_PROPERTY_TRAVEL_RULE_MESSAGE_ID = "travelRuleMessageId"; @jakarta.annotation.Nullable private String travelRuleMessageId; + public static final String JSON_PROPERTY_PROVIDER_RESPONSE = "providerResponse"; + @jakarta.annotation.Nullable private Map providerResponse; + public ComplianceScreeningResultFullPayload() {} public ComplianceScreeningResultFullPayload provider( @@ -207,7 +213,7 @@ public ComplianceScreeningResultFullPayload provider( /** * The AML/Travel Rule provider name. For AML: ELLIPTIC, CHAINALYSIS, etc. For Travel Rule: - * NOTABENE, SUMSUB, or any TRLink provider name + * NOTABENE, SUMSUB, GTR, or any TRLink provider name * * @return provider */ @@ -306,8 +312,9 @@ public ComplianceScreeningResultFullPayload bypassReason( } /** - * Reason for bypassing the screening, if applicable. For AML: SANCTIONS_SCREENING_BYPASS, - * SANCTIONS_RECIPIENT_BYPASS, etc. For Travel Rule: BELOW_THRESHOLD, NO_TRM_AVAILABLE, etc. + * Reason for bypassing the screening, if applicable. For AML: UNSUPPORTED_ASSET, + * PASSED_BY_POLICY. For Travel Rule: UNSUPPORTED_ASSET, NO_TRAVEL_RULE_MESSAGE, + * TRANSACTION_ZERO_AMOUNT. * * @return bypassReason */ @@ -334,7 +341,9 @@ public ComplianceScreeningResultFullPayload status( * Get status * * @return status + * @deprecated */ + @Deprecated @jakarta.annotation.Nullable @JsonProperty(JSON_PROPERTY_STATUS) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) @@ -358,7 +367,9 @@ public ComplianceScreeningResultFullPayload prevStatus( * Get prevStatus * * @return prevStatus + * @deprecated */ + @Deprecated @jakarta.annotation.Nullable @JsonProperty(JSON_PROPERTY_PREV_STATUS) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) @@ -379,10 +390,13 @@ public ComplianceScreeningResultFullPayload prevBypassReason( } /** - * Previous bypass reason before the current bypass reason change + * Deprecated: This field is not currently returned in the API response. Previous bypass reason + * before the current bypass reason change. * * @return prevBypassReason + * @deprecated */ + @Deprecated @jakarta.annotation.Nullable @JsonProperty(JSON_PROPERTY_PREV_BYPASS_REASON) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) @@ -420,51 +434,55 @@ public void setVerdict(@jakarta.annotation.Nullable ScreeningVerdictEnum verdict this.verdict = verdict; } - public ComplianceScreeningResultFullPayload risk( - @jakarta.annotation.Nullable ScreeningRiskLevelEnum risk) { + public ComplianceScreeningResultFullPayload risk(@jakarta.annotation.Nullable String risk) { this.risk = risk; return this; } /** - * Get risk + * Risk level assessment for screening results. Values vary by provider and are not managed by + * this service. Known values by provider: - Chainalysis: severeRisk, highRisk, mediumRisk, + * lowRisk, noRiskInfo - Elliptic: noRiskDetected Legacy values (SCREAMING_SNAKE_CASE, may + * appear in old transactions): VERY_HIGH, SEVERE, HIGH, MEDIUM, LOW, NO_RISK_INFO, UNKNOWN * * @return risk */ @jakarta.annotation.Nullable @JsonProperty(JSON_PROPERTY_RISK) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public ScreeningRiskLevelEnum getRisk() { + public String getRisk() { return risk; } @JsonProperty(JSON_PROPERTY_RISK) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setRisk(@jakarta.annotation.Nullable ScreeningRiskLevelEnum risk) { + public void setRisk(@jakarta.annotation.Nullable String risk) { this.risk = risk; } public ComplianceScreeningResultFullPayload extendedRisk( - @jakarta.annotation.Nullable ScreeningRiskLevelEnum extendedRisk) { + @jakarta.annotation.Nullable String extendedRisk) { this.extendedRisk = extendedRisk; return this; } /** - * Get extendedRisk + * Deprecated: This field is not currently returned in the API response. Use risk instead. * * @return extendedRisk + * @deprecated */ + @Deprecated @jakarta.annotation.Nullable @JsonProperty(JSON_PROPERTY_EXTENDED_RISK) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public ScreeningRiskLevelEnum getExtendedRisk() { + public String getExtendedRisk() { return extendedRisk; } @JsonProperty(JSON_PROPERTY_EXTENDED_RISK) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setExtendedRisk(@jakarta.annotation.Nullable ScreeningRiskLevelEnum extendedRisk) { + public void setExtendedRisk(@jakarta.annotation.Nullable String extendedRisk) { this.extendedRisk = extendedRisk; } @@ -522,10 +540,13 @@ public ComplianceScreeningResultFullPayload refId(@jakarta.annotation.Nullable S } /** - * Internal reference identifier + * Deprecated: This field is not currently returned in the API response. Internal reference + * identifier. * * @return refId + * @deprecated */ + @Deprecated @jakarta.annotation.Nullable @JsonProperty(JSON_PROPERTY_REF_ID) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) @@ -643,10 +664,13 @@ public ComplianceScreeningResultFullPayload destRecordId( } /** - * The destination record identifier used by the screening provider + * Deprecated: This field is not currently returned in the API response. The destination record + * identifier used by the screening provider. * * @return destRecordId + * @deprecated */ + @Deprecated @jakarta.annotation.Nullable @JsonProperty(JSON_PROPERTY_DEST_RECORD_ID) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) @@ -667,10 +691,13 @@ public ComplianceScreeningResultFullPayload addressResolutionSignature( } /** - * Cryptographic signature for address resolution verification + * Deprecated: This field is not currently returned in the API response. Cryptographic signature + * for address resolution verification. * * @return addressResolutionSignature + * @deprecated */ + @Deprecated @jakarta.annotation.Nullable @JsonProperty(JSON_PROPERTY_ADDRESS_RESOLUTION_SIGNATURE) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) @@ -695,7 +722,9 @@ public ComplianceScreeningResultFullPayload amlResult( * Get amlResult * * @return amlResult + * @deprecated */ + @Deprecated @jakarta.annotation.Nullable @JsonProperty(JSON_PROPERTY_AML_RESULT) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) @@ -719,7 +748,9 @@ public ComplianceScreeningResultFullPayload result( * Get result * * @return result + * @deprecated */ + @Deprecated @jakarta.annotation.Nullable @JsonProperty(JSON_PROPERTY_RESULT) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) @@ -933,6 +964,46 @@ public void setTravelRuleMessageId(@jakarta.annotation.Nullable String travelRul this.travelRuleMessageId = travelRuleMessageId; } + public ComplianceScreeningResultFullPayload providerResponse( + @jakarta.annotation.Nullable Map providerResponse) { + this.providerResponse = providerResponse; + return this; + } + + public ComplianceScreeningResultFullPayload putProviderResponseItem( + String key, Object providerResponseItem) { + if (this.providerResponse == null) { + this.providerResponse = new HashMap<>(); + } + this.providerResponse.put(key, providerResponseItem); + return this; + } + + /** + * Complete response from the screening provider. This is a dynamic object that varies + * significantly between different providers (Chainalysis, Elliptic, NOTABENE, etc.). Each + * provider has their own proprietary response format and schema. For AML providers: Contains + * risk scores, alerts, entity information For Travel Rule providers: Contains VASP information, + * PII data, protocol-specific fields The structure is provider-dependent and cannot be + * standardized as each vendor implements their own proprietary data models and response + * formats. + * + * @return providerResponse + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_PROVIDER_RESPONSE) + @JsonInclude(content = JsonInclude.Include.ALWAYS, value = JsonInclude.Include.USE_DEFAULTS) + public Map getProviderResponse() { + return providerResponse; + } + + @JsonProperty(JSON_PROPERTY_PROVIDER_RESPONSE) + @JsonInclude(content = JsonInclude.Include.ALWAYS, value = JsonInclude.Include.USE_DEFAULTS) + public void setProviderResponse( + @jakarta.annotation.Nullable Map providerResponse) { + this.providerResponse = providerResponse; + } + /** Return true if this ComplianceScreeningResultFullPayload object is equal to o. */ @Override public boolean equals(Object o) { @@ -996,7 +1067,10 @@ public boolean equals(Object o) { complianceScreeningResultFullPayload.customerShortName) && Objects.equals( this.travelRuleMessageId, - complianceScreeningResultFullPayload.travelRuleMessageId); + complianceScreeningResultFullPayload.travelRuleMessageId) + && Objects.equals( + this.providerResponse, + complianceScreeningResultFullPayload.providerResponse); } @Override @@ -1031,7 +1105,8 @@ public int hashCode() { matchedNoTrmScreeningRule, customerIntegrationId, customerShortName, - travelRuleMessageId); + travelRuleMessageId, + providerResponse); } @Override @@ -1080,6 +1155,7 @@ public String toString() { sb.append(" travelRuleMessageId: ") .append(toIndentedString(travelRuleMessageId)) .append("\n"); + sb.append(" providerResponse: ").append(toIndentedString(providerResponse)).append("\n"); sb.append("}"); return sb.toString(); } @@ -1418,6 +1494,24 @@ public String toUrlQueryString(String prefix) { ApiClient.valueToString(getTravelRuleMessageId())))); } + // add `providerResponse` to the URL query string + if (getProviderResponse() != null) { + for (String _key : getProviderResponse().keySet()) { + joiner.add( + String.format( + "%sproviderResponse%s%s=%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", containerPrefix, _key, containerSuffix), + getProviderResponse().get(_key), + ApiClient.urlEncode( + ApiClient.valueToString(getProviderResponse().get(_key))))); + } + } + return joiner.toString(); } } diff --git a/src/main/java/com/fireblocks/sdk/model/CreateMultipleAccountsRequest.java b/src/main/java/com/fireblocks/sdk/model/CreateMultipleAccountsRequest.java index 1db21134..841f0519 100644 --- a/src/main/java/com/fireblocks/sdk/model/CreateMultipleAccountsRequest.java +++ b/src/main/java/com/fireblocks/sdk/model/CreateMultipleAccountsRequest.java @@ -22,6 +22,7 @@ import java.util.List; import java.util.Objects; import java.util.StringJoiner; +import java.util.UUID; /** CreateMultipleAccountsRequest */ @JsonPropertyOrder({ @@ -29,7 +30,8 @@ CreateMultipleAccountsRequest.JSON_PROPERTY_BASE_ASSET_IDS, CreateMultipleAccountsRequest.JSON_PROPERTY_NAMES, CreateMultipleAccountsRequest.JSON_PROPERTY_VAULT_ACCOUNT_NAMES_STARTING_INDEX, - CreateMultipleAccountsRequest.JSON_PROPERTY_PREFIX + CreateMultipleAccountsRequest.JSON_PROPERTY_PREFIX, + CreateMultipleAccountsRequest.JSON_PROPERTY_TAG_IDS }) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", @@ -51,6 +53,9 @@ public class CreateMultipleAccountsRequest { public static final String JSON_PROPERTY_PREFIX = "prefix"; @jakarta.annotation.Nullable private String prefix; + public static final String JSON_PROPERTY_TAG_IDS = "tagIds"; + @jakarta.annotation.Nullable private List tagIds; + public CreateMultipleAccountsRequest() {} @JsonCreator @@ -198,6 +203,37 @@ public void setPrefix(@jakarta.annotation.Nullable String prefix) { this.prefix = prefix; } + public CreateMultipleAccountsRequest tagIds(@jakarta.annotation.Nullable List tagIds) { + this.tagIds = tagIds; + return this; + } + + public CreateMultipleAccountsRequest addTagIdsItem(UUID tagIdsItem) { + if (this.tagIds == null) { + this.tagIds = new ArrayList<>(); + } + this.tagIds.add(tagIdsItem); + return this; + } + + /** + * Optional list of tag IDs to attach to all created vault accounts + * + * @return tagIds + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TAG_IDS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getTagIds() { + return tagIds; + } + + @JsonProperty(JSON_PROPERTY_TAG_IDS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setTagIds(@jakarta.annotation.Nullable List tagIds) { + this.tagIds = tagIds; + } + /** Return true if this CreateMultipleAccountsRequest object is equal to o. */ @Override public boolean equals(Object o) { @@ -215,12 +251,14 @@ public boolean equals(Object o) { && Objects.equals( this.vaultAccountNamesStartingIndex, createMultipleAccountsRequest.vaultAccountNamesStartingIndex) - && Objects.equals(this.prefix, createMultipleAccountsRequest.prefix); + && Objects.equals(this.prefix, createMultipleAccountsRequest.prefix) + && Objects.equals(this.tagIds, createMultipleAccountsRequest.tagIds); } @Override public int hashCode() { - return Objects.hash(count, baseAssetIds, names, vaultAccountNamesStartingIndex, prefix); + return Objects.hash( + count, baseAssetIds, names, vaultAccountNamesStartingIndex, prefix, tagIds); } @Override @@ -234,6 +272,7 @@ public String toString() { .append(toIndentedString(vaultAccountNamesStartingIndex)) .append("\n"); sb.append(" prefix: ").append(toIndentedString(prefix)).append("\n"); + sb.append(" tagIds: ").append(toIndentedString(tagIds)).append("\n"); sb.append("}"); return sb.toString(); } @@ -345,6 +384,25 @@ public String toUrlQueryString(String prefix) { ApiClient.urlEncode(ApiClient.valueToString(getPrefix())))); } + // add `tagIds` to the URL query string + if (getTagIds() != null) { + for (int i = 0; i < getTagIds().size(); i++) { + if (getTagIds().get(i) != null) { + joiner.add( + String.format( + "%stagIds%s%s=%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", containerPrefix, i, containerSuffix), + ApiClient.urlEncode( + ApiClient.valueToString(getTagIds().get(i))))); + } + } + } + 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 b50b05c8..abda8c55 100644 --- a/src/main/java/com/fireblocks/sdk/model/DirectAccessProvider.java +++ b/src/main/java/com/fireblocks/sdk/model/DirectAccessProvider.java @@ -27,9 +27,11 @@ DirectAccessProvider.JSON_PROPERTY_NAME, DirectAccessProvider.JSON_PROPERTY_LOGO, DirectAccessProvider.JSON_PROPERTY_ACCOUNT_BASED, + DirectAccessProvider.JSON_PROPERTY_MANIFEST, DirectAccessProvider.JSON_PROPERTY_APPROVED, DirectAccessProvider.JSON_PROPERTY_HAS_TERMS_OF_SERVICE, - DirectAccessProvider.JSON_PROPERTY_TERMS_OF_SERVICE_URL + DirectAccessProvider.JSON_PROPERTY_TERMS_OF_SERVICE_URL, + DirectAccessProvider.JSON_PROPERTY_PRIVACY_POLICY_URL }) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", @@ -47,6 +49,9 @@ public class DirectAccessProvider { 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; @@ -56,6 +61,9 @@ public class DirectAccessProvider { 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 DirectAccessProvider() {} @JsonCreator @@ -64,11 +72,13 @@ public DirectAccessProvider( @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; } @@ -164,6 +174,29 @@ public void setAccountBased(@jakarta.annotation.Nonnull Boolean accountBased) { this.accountBased = accountBased; } + public DirectAccessProvider 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 DirectAccessProvider approved(@jakarta.annotation.Nullable Boolean approved) { this.approved = approved; return this; @@ -235,6 +268,30 @@ public void setTermsOfServiceUrl(@jakarta.annotation.Nullable String termsOfServ this.termsOfServiceUrl = termsOfServiceUrl; } + public DirectAccessProvider 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 DirectAccessProvider object is equal to o. */ @Override public boolean equals(Object o) { @@ -249,15 +306,25 @@ public boolean equals(Object o) { && Objects.equals(this.name, directAccessProvider.name) && Objects.equals(this.logo, directAccessProvider.logo) && Objects.equals(this.accountBased, directAccessProvider.accountBased) + && Objects.equals(this.manifest, directAccessProvider.manifest) && Objects.equals(this.approved, directAccessProvider.approved) && Objects.equals(this.hasTermsOfService, directAccessProvider.hasTermsOfService) - && Objects.equals(this.termsOfServiceUrl, directAccessProvider.termsOfServiceUrl); + && Objects.equals(this.termsOfServiceUrl, directAccessProvider.termsOfServiceUrl) + && Objects.equals(this.privacyPolicyUrl, directAccessProvider.privacyPolicyUrl); } @Override public int hashCode() { return Objects.hash( - id, name, logo, accountBased, approved, hasTermsOfService, termsOfServiceUrl); + id, + name, + logo, + accountBased, + manifest, + approved, + hasTermsOfService, + termsOfServiceUrl, + privacyPolicyUrl); } @Override @@ -268,6 +335,7 @@ public String toString() { 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)) @@ -275,6 +343,7 @@ public String toString() { sb.append(" termsOfServiceUrl: ") .append(toIndentedString(termsOfServiceUrl)) .append("\n"); + sb.append(" privacyPolicyUrl: ").append(toIndentedString(privacyPolicyUrl)).append("\n"); sb.append("}"); return sb.toString(); } @@ -360,6 +429,11 @@ public String toUrlQueryString(String prefix) { 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( @@ -390,6 +464,16 @@ public String toUrlQueryString(String prefix) { 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/DirectAccessProviderDetails.java b/src/main/java/com/fireblocks/sdk/model/DirectAccessProviderInfo.java similarity index 74% rename from src/main/java/com/fireblocks/sdk/model/DirectAccessProviderDetails.java rename to src/main/java/com/fireblocks/sdk/model/DirectAccessProviderInfo.java index 6fb50ab5..90e7d9be 100644 --- a/src/main/java/com/fireblocks/sdk/model/DirectAccessProviderDetails.java +++ b/src/main/java/com/fireblocks/sdk/model/DirectAccessProviderInfo.java @@ -21,16 +21,17 @@ import java.util.Objects; import java.util.StringJoiner; -/** DirectAccessProviderDetails */ +/** DirectAccessProviderInfo */ @JsonPropertyOrder({ - DirectAccessProviderDetails.JSON_PROPERTY_APPROVED, - DirectAccessProviderDetails.JSON_PROPERTY_HAS_TERMS_OF_SERVICE, - DirectAccessProviderDetails.JSON_PROPERTY_TERMS_OF_SERVICE_URL + DirectAccessProviderInfo.JSON_PROPERTY_APPROVED, + DirectAccessProviderInfo.JSON_PROPERTY_HAS_TERMS_OF_SERVICE, + DirectAccessProviderInfo.JSON_PROPERTY_TERMS_OF_SERVICE_URL, + DirectAccessProviderInfo.JSON_PROPERTY_PRIVACY_POLICY_URL }) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.14.0") -public class DirectAccessProviderDetails { +public class DirectAccessProviderInfo { public static final String JSON_PROPERTY_APPROVED = "approved"; @jakarta.annotation.Nullable private Boolean approved; @@ -40,16 +41,19 @@ public class DirectAccessProviderDetails { public static final String JSON_PROPERTY_TERMS_OF_SERVICE_URL = "termsOfServiceUrl"; @jakarta.annotation.Nullable private String termsOfServiceUrl; - public DirectAccessProviderDetails() {} + public static final String JSON_PROPERTY_PRIVACY_POLICY_URL = "privacyPolicyUrl"; + @jakarta.annotation.Nullable private String privacyPolicyUrl; + + public DirectAccessProviderInfo() {} @JsonCreator - public DirectAccessProviderDetails( + public DirectAccessProviderInfo( @JsonProperty(value = JSON_PROPERTY_HAS_TERMS_OF_SERVICE, required = true) Boolean hasTermsOfService) { this.hasTermsOfService = hasTermsOfService; } - public DirectAccessProviderDetails approved(@jakarta.annotation.Nullable Boolean approved) { + public DirectAccessProviderInfo approved(@jakarta.annotation.Nullable Boolean approved) { this.approved = approved; return this; } @@ -72,7 +76,7 @@ public void setApproved(@jakarta.annotation.Nullable Boolean approved) { this.approved = approved; } - public DirectAccessProviderDetails hasTermsOfService( + public DirectAccessProviderInfo hasTermsOfService( @jakarta.annotation.Nonnull Boolean hasTermsOfService) { this.hasTermsOfService = hasTermsOfService; return this; @@ -96,7 +100,7 @@ public void setHasTermsOfService(@jakarta.annotation.Nonnull Boolean hasTermsOfS this.hasTermsOfService = hasTermsOfService; } - public DirectAccessProviderDetails termsOfServiceUrl( + public DirectAccessProviderInfo termsOfServiceUrl( @jakarta.annotation.Nullable String termsOfServiceUrl) { this.termsOfServiceUrl = termsOfServiceUrl; return this; @@ -120,7 +124,31 @@ public void setTermsOfServiceUrl(@jakarta.annotation.Nullable String termsOfServ this.termsOfServiceUrl = termsOfServiceUrl; } - /** Return true if this DirectAccessProviderDetails object is equal to o. */ + public DirectAccessProviderInfo 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 DirectAccessProviderInfo object is equal to o. */ @Override public boolean equals(Object o) { if (this == o) { @@ -129,23 +157,24 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) { return false; } - DirectAccessProviderDetails directAccessProviderDetails = (DirectAccessProviderDetails) o; - return Objects.equals(this.approved, directAccessProviderDetails.approved) + DirectAccessProviderInfo directAccessProviderInfo = (DirectAccessProviderInfo) o; + return Objects.equals(this.approved, directAccessProviderInfo.approved) && Objects.equals( - this.hasTermsOfService, directAccessProviderDetails.hasTermsOfService) + this.hasTermsOfService, directAccessProviderInfo.hasTermsOfService) && Objects.equals( - this.termsOfServiceUrl, directAccessProviderDetails.termsOfServiceUrl); + this.termsOfServiceUrl, directAccessProviderInfo.termsOfServiceUrl) + && Objects.equals(this.privacyPolicyUrl, directAccessProviderInfo.privacyPolicyUrl); } @Override public int hashCode() { - return Objects.hash(approved, hasTermsOfService, termsOfServiceUrl); + return Objects.hash(approved, hasTermsOfService, termsOfServiceUrl, privacyPolicyUrl); } @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class DirectAccessProviderDetails {\n"); + sb.append("class DirectAccessProviderInfo {\n"); sb.append(" approved: ").append(toIndentedString(approved)).append("\n"); sb.append(" hasTermsOfService: ") .append(toIndentedString(hasTermsOfService)) @@ -153,6 +182,7 @@ public String toString() { sb.append(" termsOfServiceUrl: ") .append(toIndentedString(termsOfServiceUrl)) .append("\n"); + sb.append(" privacyPolicyUrl: ").append(toIndentedString(privacyPolicyUrl)).append("\n"); sb.append("}"); return sb.toString(); } @@ -230,6 +260,16 @@ public String toUrlQueryString(String prefix) { 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/DirectProviderDetails.java b/src/main/java/com/fireblocks/sdk/model/DirectProviderDetails.java new file mode 100644 index 00000000..e9f35dea --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/DirectProviderDetails.java @@ -0,0 +1,479 @@ +/* + * 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/ScreeningRiskLevelEnum.java b/src/main/java/com/fireblocks/sdk/model/ExecutionRequestDetailsType.java similarity index 77% rename from src/main/java/com/fireblocks/sdk/model/ScreeningRiskLevelEnum.java rename to src/main/java/com/fireblocks/sdk/model/ExecutionRequestDetailsType.java index 6a55254e..c013f7e6 100644 --- a/src/main/java/com/fireblocks/sdk/model/ScreeningRiskLevelEnum.java +++ b/src/main/java/com/fireblocks/sdk/model/ExecutionRequestDetailsType.java @@ -16,23 +16,15 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; -/** Risk level assessment for screening results. Possible values vary by provider and context. */ -public enum ScreeningRiskLevelEnum { - VERY_HIGH("VERY_HIGH"), +/** Execution type supported by the provider */ +public enum ExecutionRequestDetailsType { + QUOTE("QUOTE"), - SEVERE("SEVERE"), - - HIGH("HIGH"), - - MEDIUM("MEDIUM"), - - LOW("LOW"), - - UNKNOWN("UNKNOWN"); + MARKET("MARKET"); private String value; - ScreeningRiskLevelEnum(String value) { + ExecutionRequestDetailsType(String value) { this.value = value; } @@ -47,8 +39,8 @@ public String toString() { } @JsonCreator - public static ScreeningRiskLevelEnum fromValue(String value) { - for (ScreeningRiskLevelEnum b : ScreeningRiskLevelEnum.values()) { + public static ExecutionRequestDetailsType fromValue(String value) { + for (ExecutionRequestDetailsType b : ExecutionRequestDetailsType.values()) { if (b.value.equals(value)) { return b; } diff --git a/src/main/java/com/fireblocks/sdk/model/ExtraParameters.java b/src/main/java/com/fireblocks/sdk/model/ExtraParameters.java index c05a83f0..775bc571 100644 --- a/src/main/java/com/fireblocks/sdk/model/ExtraParameters.java +++ b/src/main/java/com/fireblocks/sdk/model/ExtraParameters.java @@ -29,9 +29,8 @@ * selection, add the key `inputsSelection` with the value set to the [input selection * structure.](https://developers.fireblocks.com/reference/transaction-objects#inputsselection) The * inputs can be retrieved from the [Retrieve Unspent Inputs - * endpoint.](https://developers.fireblocks.com/reference/get_vault-accounts-vaultaccountid-assetid-unspent-inputs) - * For `RAW` operations, add the key `rawMessageData` with the value set to the - * [raw message data + * endpoint.](https://developers.fireblocks.com/reference/getunspentinputs) For `RAW` + * operations, add the key `rawMessageData` with the value set to the [raw message data * structure.](https://developers.fireblocks.com/reference/raw-signing-objects#rawmessagedata) For * `CONTRACT_CALL` operations, add the key `contractCallData` with the value set * to the Ethereum smart contract Application Binary Interface (ABI) payload. The Fireblocks diff --git a/src/main/java/com/fireblocks/sdk/model/GetTransactionOperation.java b/src/main/java/com/fireblocks/sdk/model/GetTransactionOperation.java index bf4a17c7..a3191410 100644 --- a/src/main/java/com/fireblocks/sdk/model/GetTransactionOperation.java +++ b/src/main/java/com/fireblocks/sdk/model/GetTransactionOperation.java @@ -37,21 +37,15 @@ * automatically created when adding assets on these blockchains at a vault account. * * `STAKE` - Assign assets to a staking pool managed by a staking validator. Supported for * Stellar and EVM-based blockchains. This transaction is automatically created when performing - * staking operations. * `UNSTAKE` - Remove assets from a staking pool managed by a - * staking validator. Supported for Stellar and EVM-based blockchains. This transaction is - * automatically created when performing staking operations. * `WITHDRAW` - Transfer - * assets from a dedicated staking vault account to another address. Supported for Stellar and - * EVM-based blockchains. This transaction is automatically created when performing staking - * operations. **Note:** Fireblocks will rename this type from `WITHDRAW` to a different - * type name soon. There will be a 7-day notice regarding the new type name. * - * `SUPPLY_TO_COMPOUND` - Deprecated since April 1st, 2023. Older transactions may have + * staking operations. * `SUPPLY_TO_COMPOUND` - Deprecated since April 1st, 2023. Older + * transactions may have this as their operation, in case users in the workspace have used the + * direct integration between Fireblocks and the Compound DeFI protocol. * + * `REDEEM_FROM_COMPOUND` - Deprecated since April 1st, 2023. Older transactions may have * this as their operation, in case users in the workspace have used the direct integration between - * Fireblocks and the Compound DeFI protocol. * `REDEEM_FROM_COMPOUND` - Deprecated since - * April 1st, 2023. Older transactions may have this as their operation, in case users in the - * workspace have used the direct integration between Fireblocks and the Compound DeFI protocol. * - * `PROGRAM_CALL` - In Solana refers to invoking on-chain programs (smart contracts) to - * execute transactions and interact with the blockchain. * `APPROVE` - Enables the - * approve function for a smart contract or wallet to withdraw from a designated wallet. [Learn + * Fireblocks and the Compound DeFI protocol. * `PROGRAM_CALL` - In Solana refers to + * invoking on-chain programs (smart contracts) to execute transactions and interact with the + * blockchain. * `APPROVE` - Enables the approve function for a smart contract or wallet + * to withdraw from a designated wallet. [Learn * more](https://support.fireblocks.io/hc/en-us/articles/4404616097426-Amount-Cap-for-Approve-transactions). */ public enum GetTransactionOperation { @@ -71,10 +65,6 @@ public enum GetTransactionOperation { STAKE("STAKE"), - UNSTAKE("UNSTAKE"), - - WITHDRAW("WITHDRAW"), - REDEEM_FROM_COMPOUND("REDEEM_FROM_COMPOUND"), SUPPLY_TO_COMPOUND("SUPPLY_TO_COMPOUND"), diff --git a/src/main/java/com/fireblocks/sdk/model/GleifData.java b/src/main/java/com/fireblocks/sdk/model/GleifData.java new file mode 100644 index 00000000..da1d2eeb --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/GleifData.java @@ -0,0 +1,377 @@ +/* + * 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.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.StringJoiner; + +/** GLEIF (Global Legal Entity Identifier Foundation) data for a legal entity */ +@JsonPropertyOrder({ + GleifData.JSON_PROPERTY_LEI, + GleifData.JSON_PROPERTY_LEGAL_NAME, + GleifData.JSON_PROPERTY_OTHER_NAMES, + GleifData.JSON_PROPERTY_LEGAL_ADDRESS_REGION, + GleifData.JSON_PROPERTY_LEGAL_ADDRESS_COUNTRY, + GleifData.JSON_PROPERTY_NEXT_RENEWAL_DATE +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class GleifData { + public static final String JSON_PROPERTY_LEI = "lei"; + @jakarta.annotation.Nonnull private String lei; + + public static final String JSON_PROPERTY_LEGAL_NAME = "legalName"; + @jakarta.annotation.Nonnull private String legalName; + + public static final String JSON_PROPERTY_OTHER_NAMES = "otherNames"; + @jakarta.annotation.Nullable private List otherNames; + + public static final String JSON_PROPERTY_LEGAL_ADDRESS_REGION = "legalAddressRegion"; + @jakarta.annotation.Nullable private String legalAddressRegion; + + public static final String JSON_PROPERTY_LEGAL_ADDRESS_COUNTRY = "legalAddressCountry"; + @jakarta.annotation.Nonnull private String legalAddressCountry; + + public static final String JSON_PROPERTY_NEXT_RENEWAL_DATE = "nextRenewalDate"; + @jakarta.annotation.Nullable private OffsetDateTime nextRenewalDate; + + public GleifData() {} + + @JsonCreator + public GleifData( + @JsonProperty(value = JSON_PROPERTY_LEI, required = true) String lei, + @JsonProperty(value = JSON_PROPERTY_LEGAL_NAME, required = true) String legalName, + @JsonProperty(value = JSON_PROPERTY_LEGAL_ADDRESS_COUNTRY, required = true) + String legalAddressCountry) { + this.lei = lei; + this.legalName = legalName; + this.legalAddressCountry = legalAddressCountry; + } + + public GleifData lei(@jakarta.annotation.Nonnull String lei) { + this.lei = lei; + return this; + } + + /** + * Legal Entity Identifier (LEI) code + * + * @return lei + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_LEI) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getLei() { + return lei; + } + + @JsonProperty(JSON_PROPERTY_LEI) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setLei(@jakarta.annotation.Nonnull String lei) { + this.lei = lei; + } + + public GleifData legalName(@jakarta.annotation.Nonnull String legalName) { + this.legalName = legalName; + return this; + } + + /** + * Official legal name of the entity + * + * @return legalName + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_LEGAL_NAME) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getLegalName() { + return legalName; + } + + @JsonProperty(JSON_PROPERTY_LEGAL_NAME) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setLegalName(@jakarta.annotation.Nonnull String legalName) { + this.legalName = legalName; + } + + public GleifData otherNames(@jakarta.annotation.Nullable List otherNames) { + this.otherNames = otherNames; + return this; + } + + public GleifData addOtherNamesItem(String otherNamesItem) { + if (this.otherNames == null) { + this.otherNames = new ArrayList<>(); + } + this.otherNames.add(otherNamesItem); + return this; + } + + /** + * Alternative names for the entity + * + * @return otherNames + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_OTHER_NAMES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getOtherNames() { + return otherNames; + } + + @JsonProperty(JSON_PROPERTY_OTHER_NAMES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setOtherNames(@jakarta.annotation.Nullable List otherNames) { + this.otherNames = otherNames; + } + + public GleifData legalAddressRegion(@jakarta.annotation.Nullable String legalAddressRegion) { + this.legalAddressRegion = legalAddressRegion; + return this; + } + + /** + * Region or state of the legal address + * + * @return legalAddressRegion + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_LEGAL_ADDRESS_REGION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getLegalAddressRegion() { + return legalAddressRegion; + } + + @JsonProperty(JSON_PROPERTY_LEGAL_ADDRESS_REGION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setLegalAddressRegion(@jakarta.annotation.Nullable String legalAddressRegion) { + this.legalAddressRegion = legalAddressRegion; + } + + public GleifData legalAddressCountry(@jakarta.annotation.Nonnull String legalAddressCountry) { + this.legalAddressCountry = legalAddressCountry; + return this; + } + + /** + * Country code of the legal address (ISO 3166-1 alpha-2) + * + * @return legalAddressCountry + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_LEGAL_ADDRESS_COUNTRY) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getLegalAddressCountry() { + return legalAddressCountry; + } + + @JsonProperty(JSON_PROPERTY_LEGAL_ADDRESS_COUNTRY) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setLegalAddressCountry(@jakarta.annotation.Nonnull String legalAddressCountry) { + this.legalAddressCountry = legalAddressCountry; + } + + public GleifData nextRenewalDate(@jakarta.annotation.Nullable OffsetDateTime nextRenewalDate) { + this.nextRenewalDate = nextRenewalDate; + return this; + } + + /** + * Date when the LEI registration must be renewed + * + * @return nextRenewalDate + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_NEXT_RENEWAL_DATE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public OffsetDateTime getNextRenewalDate() { + return nextRenewalDate; + } + + @JsonProperty(JSON_PROPERTY_NEXT_RENEWAL_DATE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setNextRenewalDate(@jakarta.annotation.Nullable OffsetDateTime nextRenewalDate) { + this.nextRenewalDate = nextRenewalDate; + } + + /** Return true if this GleifData object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GleifData gleifData = (GleifData) o; + return Objects.equals(this.lei, gleifData.lei) + && Objects.equals(this.legalName, gleifData.legalName) + && Objects.equals(this.otherNames, gleifData.otherNames) + && Objects.equals(this.legalAddressRegion, gleifData.legalAddressRegion) + && Objects.equals(this.legalAddressCountry, gleifData.legalAddressCountry) + && Objects.equals(this.nextRenewalDate, gleifData.nextRenewalDate); + } + + @Override + public int hashCode() { + return Objects.hash( + lei, + legalName, + otherNames, + legalAddressRegion, + legalAddressCountry, + nextRenewalDate); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GleifData {\n"); + sb.append(" lei: ").append(toIndentedString(lei)).append("\n"); + sb.append(" legalName: ").append(toIndentedString(legalName)).append("\n"); + sb.append(" otherNames: ").append(toIndentedString(otherNames)).append("\n"); + sb.append(" legalAddressRegion: ") + .append(toIndentedString(legalAddressRegion)) + .append("\n"); + sb.append(" legalAddressCountry: ") + .append(toIndentedString(legalAddressCountry)) + .append("\n"); + sb.append(" nextRenewalDate: ").append(toIndentedString(nextRenewalDate)).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 `lei` to the URL query string + if (getLei() != null) { + joiner.add( + String.format( + "%slei%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getLei())))); + } + + // add `legalName` to the URL query string + if (getLegalName() != null) { + joiner.add( + String.format( + "%slegalName%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getLegalName())))); + } + + // 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))))); + } + } + + // add `legalAddressRegion` to the URL query string + if (getLegalAddressRegion() != null) { + joiner.add( + String.format( + "%slegalAddressRegion%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getLegalAddressRegion())))); + } + + // add `legalAddressCountry` to the URL query string + if (getLegalAddressCountry() != null) { + joiner.add( + String.format( + "%slegalAddressCountry%s=%s", + prefix, + suffix, + ApiClient.urlEncode( + ApiClient.valueToString(getLegalAddressCountry())))); + } + + // add `nextRenewalDate` to the URL query string + if (getNextRenewalDate() != null) { + joiner.add( + String.format( + "%snextRenewalDate%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getNextRenewalDate())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/InteracAddress.java b/src/main/java/com/fireblocks/sdk/model/InteracAddress.java index f5a107fd..25fc6332 100644 --- a/src/main/java/com/fireblocks/sdk/model/InteracAddress.java +++ b/src/main/java/com/fireblocks/sdk/model/InteracAddress.java @@ -21,11 +21,17 @@ import java.util.Objects; import java.util.StringJoiner; -/** InteracAddress */ +/** + * When true, funds are deposited directly into the recipient's bank account without a security + * question. When false, a security question and answer are required to complete the transfer + */ @JsonPropertyOrder({ InteracAddress.JSON_PROPERTY_ACCOUNT_HOLDER, InteracAddress.JSON_PROPERTY_RECIPIENT_HANDLE, - InteracAddress.JSON_PROPERTY_MESSAGE + InteracAddress.JSON_PROPERTY_MESSAGE, + InteracAddress.JSON_PROPERTY_AUTO_DEPOSIT, + InteracAddress.JSON_PROPERTY_SECURITY_QUESTION, + InteracAddress.JSON_PROPERTY_SECURITY_ANSWER }) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", @@ -40,6 +46,15 @@ public class InteracAddress { public static final String JSON_PROPERTY_MESSAGE = "message"; @jakarta.annotation.Nullable private String message; + public static final String JSON_PROPERTY_AUTO_DEPOSIT = "autoDeposit"; + @jakarta.annotation.Nonnull private Boolean autoDeposit; + + public static final String JSON_PROPERTY_SECURITY_QUESTION = "securityQuestion"; + @jakarta.annotation.Nullable private String securityQuestion; + + public static final String JSON_PROPERTY_SECURITY_ANSWER = "securityAnswer"; + @jakarta.annotation.Nullable private String securityAnswer; + public InteracAddress() {} @JsonCreator @@ -47,9 +62,12 @@ public InteracAddress( @JsonProperty(value = JSON_PROPERTY_ACCOUNT_HOLDER, required = true) AccountHolderDetails accountHolder, @JsonProperty(value = JSON_PROPERTY_RECIPIENT_HANDLE, required = true) - RecipientHandle recipientHandle) { + RecipientHandle recipientHandle, + @JsonProperty(value = JSON_PROPERTY_AUTO_DEPOSIT, required = true) + Boolean autoDeposit) { this.accountHolder = accountHolder; this.recipientHandle = recipientHandle; + this.autoDeposit = autoDeposit; } public InteracAddress accountHolder( @@ -123,6 +141,75 @@ public void setMessage(@jakarta.annotation.Nullable String message) { this.message = message; } + public InteracAddress autoDeposit(@jakarta.annotation.Nonnull Boolean autoDeposit) { + this.autoDeposit = autoDeposit; + return this; + } + + /** + * Whether to automatically deposit the funds into the account + * + * @return autoDeposit + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_AUTO_DEPOSIT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Boolean getAutoDeposit() { + return autoDeposit; + } + + @JsonProperty(JSON_PROPERTY_AUTO_DEPOSIT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setAutoDeposit(@jakarta.annotation.Nonnull Boolean autoDeposit) { + this.autoDeposit = autoDeposit; + } + + public InteracAddress securityQuestion(@jakarta.annotation.Nullable String securityQuestion) { + this.securityQuestion = securityQuestion; + return this; + } + + /** + * The security question to be used for the security answer + * + * @return securityQuestion + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_SECURITY_QUESTION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getSecurityQuestion() { + return securityQuestion; + } + + @JsonProperty(JSON_PROPERTY_SECURITY_QUESTION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setSecurityQuestion(@jakarta.annotation.Nullable String securityQuestion) { + this.securityQuestion = securityQuestion; + } + + public InteracAddress securityAnswer(@jakarta.annotation.Nullable String securityAnswer) { + this.securityAnswer = securityAnswer; + return this; + } + + /** + * The security answer to be used for the security question + * + * @return securityAnswer + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_SECURITY_ANSWER) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getSecurityAnswer() { + return securityAnswer; + } + + @JsonProperty(JSON_PROPERTY_SECURITY_ANSWER) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setSecurityAnswer(@jakarta.annotation.Nullable String securityAnswer) { + this.securityAnswer = securityAnswer; + } + /** Return true if this InteracAddress object is equal to o. */ @Override public boolean equals(Object o) { @@ -135,12 +222,21 @@ public boolean equals(Object o) { InteracAddress interacAddress = (InteracAddress) o; return Objects.equals(this.accountHolder, interacAddress.accountHolder) && Objects.equals(this.recipientHandle, interacAddress.recipientHandle) - && Objects.equals(this.message, interacAddress.message); + && Objects.equals(this.message, interacAddress.message) + && Objects.equals(this.autoDeposit, interacAddress.autoDeposit) + && Objects.equals(this.securityQuestion, interacAddress.securityQuestion) + && Objects.equals(this.securityAnswer, interacAddress.securityAnswer); } @Override public int hashCode() { - return Objects.hash(accountHolder, recipientHandle, message); + return Objects.hash( + accountHolder, + recipientHandle, + message, + autoDeposit, + securityQuestion, + securityAnswer); } @Override @@ -150,6 +246,9 @@ public String toString() { sb.append(" accountHolder: ").append(toIndentedString(accountHolder)).append("\n"); sb.append(" recipientHandle: ").append(toIndentedString(recipientHandle)).append("\n"); sb.append(" message: ").append(toIndentedString(message)).append("\n"); + sb.append(" autoDeposit: ").append(toIndentedString(autoDeposit)).append("\n"); + sb.append(" securityQuestion: ").append(toIndentedString(securityQuestion)).append("\n"); + sb.append(" securityAnswer: ").append(toIndentedString(securityAnswer)).append("\n"); sb.append("}"); return sb.toString(); } @@ -217,6 +316,36 @@ public String toUrlQueryString(String prefix) { ApiClient.urlEncode(ApiClient.valueToString(getMessage())))); } + // add `autoDeposit` to the URL query string + if (getAutoDeposit() != null) { + joiner.add( + String.format( + "%sautoDeposit%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getAutoDeposit())))); + } + + // add `securityQuestion` to the URL query string + if (getSecurityQuestion() != null) { + joiner.add( + String.format( + "%ssecurityQuestion%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getSecurityQuestion())))); + } + + // add `securityAnswer` to the URL query string + if (getSecurityAnswer() != null) { + joiner.add( + String.format( + "%ssecurityAnswer%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getSecurityAnswer())))); + } + return joiner.toString(); } } diff --git a/src/main/java/com/fireblocks/sdk/model/JobCreated.java b/src/main/java/com/fireblocks/sdk/model/JobCreated.java index ecc6f3fa..5adec2d7 100644 --- a/src/main/java/com/fireblocks/sdk/model/JobCreated.java +++ b/src/main/java/com/fireblocks/sdk/model/JobCreated.java @@ -21,7 +21,7 @@ import java.util.StringJoiner; /** JobCreated */ -@JsonPropertyOrder({JobCreated.JSON_PROPERTY_JOB_ID}) +@JsonPropertyOrder({JobCreated.JSON_PROPERTY_JOB_ID, JobCreated.JSON_PROPERTY_APPROVAL_REQUEST_ID}) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.14.0") @@ -29,6 +29,9 @@ public class JobCreated { public static final String JSON_PROPERTY_JOB_ID = "jobId"; @jakarta.annotation.Nullable private String jobId; + public static final String JSON_PROPERTY_APPROVAL_REQUEST_ID = "approvalRequestId"; + @jakarta.annotation.Nullable private String approvalRequestId; + public JobCreated() {} public JobCreated jobId(@jakarta.annotation.Nullable String jobId) { @@ -54,6 +57,29 @@ public void setJobId(@jakarta.annotation.Nullable String jobId) { this.jobId = jobId; } + public JobCreated approvalRequestId(@jakarta.annotation.Nullable String approvalRequestId) { + this.approvalRequestId = approvalRequestId; + return this; + } + + /** + * Approval request ID. Returned when a tag triggers an approval flow. + * + * @return approvalRequestId + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_APPROVAL_REQUEST_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getApprovalRequestId() { + return approvalRequestId; + } + + @JsonProperty(JSON_PROPERTY_APPROVAL_REQUEST_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setApprovalRequestId(@jakarta.annotation.Nullable String approvalRequestId) { + this.approvalRequestId = approvalRequestId; + } + /** Return true if this JobCreated object is equal to o. */ @Override public boolean equals(Object o) { @@ -64,12 +90,13 @@ public boolean equals(Object o) { return false; } JobCreated jobCreated = (JobCreated) o; - return Objects.equals(this.jobId, jobCreated.jobId); + return Objects.equals(this.jobId, jobCreated.jobId) + && Objects.equals(this.approvalRequestId, jobCreated.approvalRequestId); } @Override public int hashCode() { - return Objects.hash(jobId); + return Objects.hash(jobId, approvalRequestId); } @Override @@ -77,6 +104,9 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class JobCreated {\n"); sb.append(" jobId: ").append(toIndentedString(jobId)).append("\n"); + sb.append(" approvalRequestId: ") + .append(toIndentedString(approvalRequestId)) + .append("\n"); sb.append("}"); return sb.toString(); } @@ -134,6 +164,16 @@ public String toUrlQueryString(String prefix) { ApiClient.urlEncode(ApiClient.valueToString(getJobId())))); } + // add `approvalRequestId` to the URL query string + if (getApprovalRequestId() != null) { + joiner.add( + String.format( + "%sapprovalRequestId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getApprovalRequestId())))); + } + return joiner.toString(); } } diff --git a/src/main/java/com/fireblocks/sdk/model/LegalEntityRegistration.java b/src/main/java/com/fireblocks/sdk/model/LegalEntityRegistration.java new file mode 100644 index 00000000..2779e111 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/LegalEntityRegistration.java @@ -0,0 +1,508 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fireblocks.sdk.ApiClient; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.StringJoiner; +import java.util.UUID; + +/** Legal entity registration record */ +@JsonPropertyOrder({ + LegalEntityRegistration.JSON_PROPERTY_ID, + LegalEntityRegistration.JSON_PROPERTY_LEI, + LegalEntityRegistration.JSON_PROPERTY_STATUS, + LegalEntityRegistration.JSON_PROPERTY_IS_DEFAULT, + LegalEntityRegistration.JSON_PROPERTY_TRAVEL_RULE_PROVIDERS, + LegalEntityRegistration.JSON_PROPERTY_TRAVEL_RULE_CONTACT_EMAIL, + LegalEntityRegistration.JSON_PROPERTY_GLEIF_DATA, + LegalEntityRegistration.JSON_PROPERTY_CREATED_AT, + LegalEntityRegistration.JSON_PROPERTY_UPDATED_AT +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class LegalEntityRegistration { + public static final String JSON_PROPERTY_ID = "id"; + @jakarta.annotation.Nonnull private UUID id; + + public static final String JSON_PROPERTY_LEI = "lei"; + @jakarta.annotation.Nonnull private String lei; + + public static final String JSON_PROPERTY_STATUS = "status"; + @jakarta.annotation.Nonnull private LeiStatus status; + + public static final String JSON_PROPERTY_IS_DEFAULT = "isDefault"; + @jakarta.annotation.Nonnull private Boolean isDefault; + + public static final String JSON_PROPERTY_TRAVEL_RULE_PROVIDERS = "travelRuleProviders"; + @jakarta.annotation.Nonnull private List travelRuleProviders; + + public static final String JSON_PROPERTY_TRAVEL_RULE_CONTACT_EMAIL = "travelRuleContactEmail"; + @jakarta.annotation.Nullable private String travelRuleContactEmail; + + public static final String JSON_PROPERTY_GLEIF_DATA = "gleifData"; + @jakarta.annotation.Nullable private GleifData gleifData; + + 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 LegalEntityRegistration() {} + + @JsonCreator + public LegalEntityRegistration( + @JsonProperty(value = JSON_PROPERTY_ID, required = true) UUID id, + @JsonProperty(value = JSON_PROPERTY_LEI, required = true) String lei, + @JsonProperty(value = JSON_PROPERTY_STATUS, required = true) LeiStatus status, + @JsonProperty(value = JSON_PROPERTY_IS_DEFAULT, required = true) Boolean isDefault, + @JsonProperty(value = JSON_PROPERTY_TRAVEL_RULE_PROVIDERS, required = true) + List travelRuleProviders, + @JsonProperty(value = JSON_PROPERTY_CREATED_AT, required = true) String createdAt, + @JsonProperty(value = JSON_PROPERTY_UPDATED_AT, required = true) String updatedAt) { + this.id = id; + this.lei = lei; + this.status = status; + this.isDefault = isDefault; + this.travelRuleProviders = travelRuleProviders; + this.createdAt = createdAt; + this.updatedAt = updatedAt; + } + + public LegalEntityRegistration id(@jakarta.annotation.Nonnull UUID id) { + this.id = id; + return this; + } + + /** + * Unique registration identifier + * + * @return id + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public UUID getId() { + return id; + } + + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setId(@jakarta.annotation.Nonnull UUID id) { + this.id = id; + } + + public LegalEntityRegistration lei(@jakarta.annotation.Nonnull String lei) { + this.lei = lei; + return this; + } + + /** + * Legal Entity Identifier (LEI) code + * + * @return lei + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_LEI) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getLei() { + return lei; + } + + @JsonProperty(JSON_PROPERTY_LEI) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setLei(@jakarta.annotation.Nonnull String lei) { + this.lei = lei; + } + + public LegalEntityRegistration status(@jakarta.annotation.Nonnull LeiStatus status) { + this.status = status; + return this; + } + + /** + * Get status + * + * @return status + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_STATUS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LeiStatus getStatus() { + return status; + } + + @JsonProperty(JSON_PROPERTY_STATUS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setStatus(@jakarta.annotation.Nonnull LeiStatus status) { + this.status = status; + } + + public LegalEntityRegistration isDefault(@jakarta.annotation.Nonnull Boolean isDefault) { + this.isDefault = isDefault; + return this; + } + + /** + * Whether this is the default legal entity for the workspace + * + * @return isDefault + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_IS_DEFAULT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Boolean getIsDefault() { + return isDefault; + } + + @JsonProperty(JSON_PROPERTY_IS_DEFAULT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setIsDefault(@jakarta.annotation.Nonnull Boolean isDefault) { + this.isDefault = isDefault; + } + + public LegalEntityRegistration travelRuleProviders( + @jakarta.annotation.Nonnull List travelRuleProviders) { + this.travelRuleProviders = travelRuleProviders; + return this; + } + + public LegalEntityRegistration addTravelRuleProvidersItem( + TravelRuleProvider travelRuleProvidersItem) { + if (this.travelRuleProviders == null) { + this.travelRuleProviders = new ArrayList<>(); + } + this.travelRuleProviders.add(travelRuleProvidersItem); + return this; + } + + /** + * Travel rule providers configured for this registration + * + * @return travelRuleProviders + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_TRAVEL_RULE_PROVIDERS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getTravelRuleProviders() { + return travelRuleProviders; + } + + @JsonProperty(JSON_PROPERTY_TRAVEL_RULE_PROVIDERS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setTravelRuleProviders( + @jakarta.annotation.Nonnull List travelRuleProviders) { + this.travelRuleProviders = travelRuleProviders; + } + + public LegalEntityRegistration travelRuleContactEmail( + @jakarta.annotation.Nullable String travelRuleContactEmail) { + this.travelRuleContactEmail = travelRuleContactEmail; + return this; + } + + /** + * Contact email for travel rule communications + * + * @return travelRuleContactEmail + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TRAVEL_RULE_CONTACT_EMAIL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getTravelRuleContactEmail() { + return travelRuleContactEmail; + } + + @JsonProperty(JSON_PROPERTY_TRAVEL_RULE_CONTACT_EMAIL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setTravelRuleContactEmail( + @jakarta.annotation.Nullable String travelRuleContactEmail) { + this.travelRuleContactEmail = travelRuleContactEmail; + } + + public LegalEntityRegistration gleifData(@jakarta.annotation.Nullable GleifData gleifData) { + this.gleifData = gleifData; + return this; + } + + /** + * Get gleifData + * + * @return gleifData + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_GLEIF_DATA) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public GleifData getGleifData() { + return gleifData; + } + + @JsonProperty(JSON_PROPERTY_GLEIF_DATA) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setGleifData(@jakarta.annotation.Nullable GleifData gleifData) { + this.gleifData = gleifData; + } + + public LegalEntityRegistration createdAt(@jakarta.annotation.Nonnull String createdAt) { + this.createdAt = createdAt; + return this; + } + + /** + * Creation timestamp in milliseconds since epoch + * + * @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 LegalEntityRegistration updatedAt(@jakarta.annotation.Nonnull String updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + /** + * Last update timestamp in milliseconds since epoch + * + * @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 LegalEntityRegistration object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LegalEntityRegistration legalEntityRegistration = (LegalEntityRegistration) o; + return Objects.equals(this.id, legalEntityRegistration.id) + && Objects.equals(this.lei, legalEntityRegistration.lei) + && Objects.equals(this.status, legalEntityRegistration.status) + && Objects.equals(this.isDefault, legalEntityRegistration.isDefault) + && Objects.equals( + this.travelRuleProviders, legalEntityRegistration.travelRuleProviders) + && Objects.equals( + this.travelRuleContactEmail, legalEntityRegistration.travelRuleContactEmail) + && Objects.equals(this.gleifData, legalEntityRegistration.gleifData) + && Objects.equals(this.createdAt, legalEntityRegistration.createdAt) + && Objects.equals(this.updatedAt, legalEntityRegistration.updatedAt); + } + + @Override + public int hashCode() { + return Objects.hash( + id, + lei, + status, + isDefault, + travelRuleProviders, + travelRuleContactEmail, + gleifData, + createdAt, + updatedAt); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LegalEntityRegistration {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" lei: ").append(toIndentedString(lei)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" isDefault: ").append(toIndentedString(isDefault)).append("\n"); + sb.append(" travelRuleProviders: ") + .append(toIndentedString(travelRuleProviders)) + .append("\n"); + sb.append(" travelRuleContactEmail: ") + .append(toIndentedString(travelRuleContactEmail)) + .append("\n"); + sb.append(" gleifData: ").append(toIndentedString(gleifData)).append("\n"); + sb.append(" createdAt: ").append(toIndentedString(createdAt)).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 `id` to the URL query string + if (getId() != null) { + joiner.add( + String.format( + "%sid%s=%s", + prefix, suffix, ApiClient.urlEncode(ApiClient.valueToString(getId())))); + } + + // add `lei` to the URL query string + if (getLei() != null) { + joiner.add( + String.format( + "%slei%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getLei())))); + } + + // 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 `isDefault` to the URL query string + if (getIsDefault() != null) { + joiner.add( + String.format( + "%sisDefault%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getIsDefault())))); + } + + // add `travelRuleProviders` to the URL query string + if (getTravelRuleProviders() != null) { + for (int i = 0; i < getTravelRuleProviders().size(); i++) { + if (getTravelRuleProviders().get(i) != null) { + joiner.add( + String.format( + "%stravelRuleProviders%s%s=%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", containerPrefix, i, containerSuffix), + ApiClient.urlEncode( + ApiClient.valueToString( + getTravelRuleProviders().get(i))))); + } + } + } + + // add `travelRuleContactEmail` to the URL query string + if (getTravelRuleContactEmail() != null) { + joiner.add( + String.format( + "%stravelRuleContactEmail%s=%s", + prefix, + suffix, + ApiClient.urlEncode( + ApiClient.valueToString(getTravelRuleContactEmail())))); + } + + // add `gleifData` to the URL query string + if (getGleifData() != null) { + joiner.add(getGleifData().toUrlQueryString(prefix + "gleifData" + suffix)); + } + + // 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())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/Capability.java b/src/main/java/com/fireblocks/sdk/model/LeiStatus.java similarity index 83% rename from src/main/java/com/fireblocks/sdk/model/Capability.java rename to src/main/java/com/fireblocks/sdk/model/LeiStatus.java index 87d18749..e3847bcd 100644 --- a/src/main/java/com/fireblocks/sdk/model/Capability.java +++ b/src/main/java/com/fireblocks/sdk/model/LeiStatus.java @@ -16,17 +16,19 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; -/** Gets or Sets Capability */ -public enum Capability { - WITHDRAWALS("WITHDRAWALS"), +/** Approval status of a legal entity registration */ +public enum LeiStatus { + PENDING("PENDING"), - DEPOSITS("DEPOSITS"), + APPROVED("APPROVED"), - TRADING("TRADING"); + DENIED("DENIED"), + + REVOKED("REVOKED"); private String value; - Capability(String value) { + LeiStatus(String value) { this.value = value; } @@ -41,8 +43,8 @@ public String toString() { } @JsonCreator - public static Capability fromValue(String value) { - for (Capability b : Capability.values()) { + public static LeiStatus fromValue(String value) { + for (LeiStatus b : LeiStatus.values()) { if (b.value.equals(value)) { return b; } diff --git a/src/main/java/com/fireblocks/sdk/model/ListLegalEntitiesResponse.java b/src/main/java/com/fireblocks/sdk/model/ListLegalEntitiesResponse.java new file mode 100644 index 00000000..ece6ac57 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/ListLegalEntitiesResponse.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; + +/** Paginated response containing a list of legal entity registrations */ +@JsonPropertyOrder({ + ListLegalEntitiesResponse.JSON_PROPERTY_TOTAL, + ListLegalEntitiesResponse.JSON_PROPERTY_DATA, + ListLegalEntitiesResponse.JSON_PROPERTY_NEXT, + ListLegalEntitiesResponse.JSON_PROPERTY_PREV +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class ListLegalEntitiesResponse { + public static final String JSON_PROPERTY_TOTAL = "total"; + @jakarta.annotation.Nullable private Integer total; + + 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 ListLegalEntitiesResponse() {} + + @JsonCreator + public ListLegalEntitiesResponse( + @JsonProperty(value = JSON_PROPERTY_DATA, required = true) + List data) { + this.data = data; + } + + public ListLegalEntitiesResponse total(@jakarta.annotation.Nullable Integer total) { + this.total = total; + return this; + } + + /** + * Total number of legal entity registrations (optional) + * + * @return total + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TOTAL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Integer getTotal() { + return total; + } + + @JsonProperty(JSON_PROPERTY_TOTAL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setTotal(@jakarta.annotation.Nullable Integer total) { + this.total = total; + } + + public ListLegalEntitiesResponse data( + @jakarta.annotation.Nonnull List data) { + this.data = data; + return this; + } + + public ListLegalEntitiesResponse addDataItem(LegalEntityRegistration dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * Legal entity registrations for the current page + * + * @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 ListLegalEntitiesResponse next(@jakarta.annotation.Nullable String next) { + this.next = next; + return this; + } + + /** + * Cursor to pass as `pageCursor` to retrieve 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; + } + + 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) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + 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); + } + + @Override + public int hashCode() { + return Objects.hash(total, data, next, prev); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ListLegalEntitiesResponse {\n"); + 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(); + } + + /** + * 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())))); + } + + // 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())))); + } + + 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 new file mode 100644 index 00000000..5674a7c2 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/ListVaultsForRegistrationResponse.java @@ -0,0 +1,282 @@ +/* + * 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; + +/** Response containing vault account IDs assigned to a legal entity registration */ +@JsonPropertyOrder({ + ListVaultsForRegistrationResponse.JSON_PROPERTY_TOTAL, + ListVaultsForRegistrationResponse.JSON_PROPERTY_DATA, + ListVaultsForRegistrationResponse.JSON_PROPERTY_NEXT, + ListVaultsForRegistrationResponse.JSON_PROPERTY_PREV +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class ListVaultsForRegistrationResponse { + public static final String JSON_PROPERTY_TOTAL = "total"; + @jakarta.annotation.Nullable private Integer total; + + 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 ListVaultsForRegistrationResponse() {} + + @JsonCreator + public ListVaultsForRegistrationResponse( + @JsonProperty(value = JSON_PROPERTY_DATA, required = true) List data) { + this.data = data; + } + + public ListVaultsForRegistrationResponse total(@jakarta.annotation.Nullable Integer total) { + this.total = total; + return this; + } + + /** + * Total number of legal entity registrations (optional) + * + * @return total + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TOTAL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Integer getTotal() { + return total; + } + + @JsonProperty(JSON_PROPERTY_TOTAL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setTotal(@jakarta.annotation.Nullable Integer total) { + this.total = total; + } + + public ListVaultsForRegistrationResponse data(@jakarta.annotation.Nonnull List data) { + this.data = data; + return this; + } + + public ListVaultsForRegistrationResponse addDataItem(String dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * List of vault account IDs assigned to the legal entity registration + * + * @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 ListVaultsForRegistrationResponse next(@jakarta.annotation.Nullable String next) { + this.next = next; + return this; + } + + /** + * Cursor to pass as `pageCursor` to retrieve 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; + } + + 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) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ListVaultsForRegistrationResponse listVaultsForRegistrationResponse = + (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); + } + + @Override + public int hashCode() { + return Objects.hash(total, data, next, prev); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ListVaultsForRegistrationResponse {\n"); + 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(); + } + + /** + * 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())))); + } + + // add `data` to the URL query string + if (getData() != null) { + for (int i = 0; i < getData().size(); i++) { + joiner.add( + String.format( + "%sdata%s%s=%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", containerPrefix, i, containerSuffix), + ApiClient.urlEncode(ApiClient.valueToString(getData().get(i))))); + } + } + + // 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())))); + } + + 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 92e3f6b0..bc8dc455 100644 --- a/src/main/java/com/fireblocks/sdk/model/Manifest.java +++ b/src/main/java/com/fireblocks/sdk/model/Manifest.java @@ -17,96 +17,107 @@ 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; -/** Manifest */ -@JsonPropertyOrder({Manifest.JSON_PROPERTY_ASSET_TYPES, Manifest.JSON_PROPERTY_CAPABILITIES}) +/** The manifest of the provider, describing its supported order, quote, and rate requirements. */ +@JsonPropertyOrder({ + Manifest.JSON_PROPERTY_ORDER, + Manifest.JSON_PROPERTY_QUOTE, + Manifest.JSON_PROPERTY_RATE +}) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.14.0") public class Manifest { - public static final String JSON_PROPERTY_ASSET_TYPES = "assetTypes"; - @jakarta.annotation.Nonnull private List assetTypes; + public static final String JSON_PROPERTY_ORDER = "order"; + @jakarta.annotation.Nonnull private ManifestOrder order; - public static final String JSON_PROPERTY_CAPABILITIES = "capabilities"; - @jakarta.annotation.Nonnull private List capabilities; + public static final String JSON_PROPERTY_QUOTE = "quote"; + @jakarta.annotation.Nonnull private ManifestQuote quote; + + public static final String JSON_PROPERTY_RATE = "rate"; + @jakarta.annotation.Nonnull private ManifestBase rate; public Manifest() {} @JsonCreator public Manifest( - @JsonProperty(value = JSON_PROPERTY_ASSET_TYPES, required = true) - List assetTypes, - @JsonProperty(value = JSON_PROPERTY_CAPABILITIES, required = true) - List capabilities) { - this.assetTypes = assetTypes; - this.capabilities = capabilities; + @JsonProperty(value = JSON_PROPERTY_ORDER, required = true) ManifestOrder order, + @JsonProperty(value = JSON_PROPERTY_QUOTE, required = true) ManifestQuote quote, + @JsonProperty(value = JSON_PROPERTY_RATE, required = true) ManifestBase rate) { + this.order = order; + this.quote = quote; + this.rate = rate; } - public Manifest assetTypes(@jakarta.annotation.Nonnull List assetTypes) { - this.assetTypes = assetTypes; - return this; - } - - public Manifest addAssetTypesItem(AssetTypeEnum assetTypesItem) { - if (this.assetTypes == null) { - this.assetTypes = new ArrayList<>(); - } - this.assetTypes.add(assetTypesItem); + public Manifest order(@jakarta.annotation.Nonnull ManifestOrder order) { + this.order = order; return this; } /** - * Get assetTypes + * Get order * - * @return assetTypes + * @return order */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_ASSET_TYPES) + @JsonProperty(JSON_PROPERTY_ORDER) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public List getAssetTypes() { - return assetTypes; + public ManifestOrder getOrder() { + return order; } - @JsonProperty(JSON_PROPERTY_ASSET_TYPES) + @JsonProperty(JSON_PROPERTY_ORDER) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setAssetTypes(@jakarta.annotation.Nonnull List assetTypes) { - this.assetTypes = assetTypes; + public void setOrder(@jakarta.annotation.Nonnull ManifestOrder order) { + this.order = order; } - public Manifest capabilities(@jakarta.annotation.Nonnull List capabilities) { - this.capabilities = capabilities; + public Manifest quote(@jakarta.annotation.Nonnull ManifestQuote quote) { + this.quote = quote; return this; } - public Manifest addCapabilitiesItem(Capability capabilitiesItem) { - if (this.capabilities == null) { - this.capabilities = new ArrayList<>(); - } - this.capabilities.add(capabilitiesItem); + /** + * Get quote + * + * @return quote + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_QUOTE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public ManifestQuote getQuote() { + return quote; + } + + @JsonProperty(JSON_PROPERTY_QUOTE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setQuote(@jakarta.annotation.Nonnull ManifestQuote quote) { + this.quote = quote; + } + + public Manifest rate(@jakarta.annotation.Nonnull ManifestBase rate) { + this.rate = rate; return this; } /** - * Get capabilities + * Get rate * - * @return capabilities + * @return rate */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_CAPABILITIES) + @JsonProperty(JSON_PROPERTY_RATE) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public List getCapabilities() { - return capabilities; + public ManifestBase getRate() { + return rate; } - @JsonProperty(JSON_PROPERTY_CAPABILITIES) + @JsonProperty(JSON_PROPERTY_RATE) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setCapabilities(@jakarta.annotation.Nonnull List capabilities) { - this.capabilities = capabilities; + public void setRate(@jakarta.annotation.Nonnull ManifestBase rate) { + this.rate = rate; } /** Return true if this Manifest object is equal to o. */ @@ -119,21 +130,23 @@ public boolean equals(Object o) { return false; } Manifest manifest = (Manifest) o; - return Objects.equals(this.assetTypes, manifest.assetTypes) - && Objects.equals(this.capabilities, manifest.capabilities); + return Objects.equals(this.order, manifest.order) + && Objects.equals(this.quote, manifest.quote) + && Objects.equals(this.rate, manifest.rate); } @Override public int hashCode() { - return Objects.hash(assetTypes, capabilities); + return Objects.hash(order, quote, rate); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class Manifest {\n"); - sb.append(" assetTypes: ").append(toIndentedString(assetTypes)).append("\n"); - sb.append(" capabilities: ").append(toIndentedString(capabilities)).append("\n"); + 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("}"); return sb.toString(); } @@ -181,42 +194,19 @@ public String toUrlQueryString(String prefix) { StringJoiner joiner = new StringJoiner("&"); - // add `assetTypes` to the URL query string - if (getAssetTypes() != null) { - for (int i = 0; i < getAssetTypes().size(); i++) { - if (getAssetTypes().get(i) != null) { - joiner.add( - String.format( - "%sassetTypes%s%s=%s", - prefix, - suffix, - "".equals(suffix) - ? "" - : String.format( - "%s%d%s", containerPrefix, i, containerSuffix), - ApiClient.urlEncode( - ApiClient.valueToString(getAssetTypes().get(i))))); - } - } + // add `order` to the URL query string + if (getOrder() != null) { + joiner.add(getOrder().toUrlQueryString(prefix + "order" + suffix)); + } + + // add `quote` to the URL query string + if (getQuote() != null) { + joiner.add(getQuote().toUrlQueryString(prefix + "quote" + suffix)); } - // add `capabilities` to the URL query string - if (getCapabilities() != null) { - for (int i = 0; i < getCapabilities().size(); i++) { - if (getCapabilities().get(i) != null) { - joiner.add( - String.format( - "%scapabilities%s%s=%s", - prefix, - suffix, - "".equals(suffix) - ? "" - : String.format( - "%s%d%s", containerPrefix, i, containerSuffix), - ApiClient.urlEncode( - ApiClient.valueToString(getCapabilities().get(i))))); - } - } + // add `rate` to the URL query string + if (getRate() != null) { + joiner.add(getRate().toUrlQueryString(prefix + "rate" + suffix)); } return joiner.toString(); diff --git a/src/main/java/com/fireblocks/sdk/model/ManifestBase.java b/src/main/java/com/fireblocks/sdk/model/ManifestBase.java new file mode 100644 index 00000000..ebbfcff1 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/ManifestBase.java @@ -0,0 +1,146 @@ +/* + * 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; + +/** Base manifest schema with common properties */ +@JsonPropertyOrder({ManifestBase.JSON_PROPERTY_SUPPORTED}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class ManifestBase { + public static final String JSON_PROPERTY_SUPPORTED = "supported"; + @jakarta.annotation.Nonnull private Boolean supported; + + public ManifestBase() {} + + @JsonCreator + public ManifestBase( + @JsonProperty(value = JSON_PROPERTY_SUPPORTED, required = true) Boolean supported) { + this.supported = supported; + } + + public ManifestBase supported(@jakarta.annotation.Nonnull Boolean supported) { + this.supported = supported; + return this; + } + + /** + * Indicates whether the endpoint is supported by the provider + * + * @return supported + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_SUPPORTED) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Boolean getSupported() { + return supported; + } + + @JsonProperty(JSON_PROPERTY_SUPPORTED) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setSupported(@jakarta.annotation.Nonnull Boolean supported) { + this.supported = supported; + } + + /** Return true if this ManifestBase object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ManifestBase manifestBase = (ManifestBase) o; + return Objects.equals(this.supported, manifestBase.supported); + } + + @Override + public int hashCode() { + return Objects.hash(supported); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ManifestBase {\n"); + sb.append(" supported: ").append(toIndentedString(supported)).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 `supported` to the URL query string + if (getSupported() != null) { + joiner.add( + String.format( + "%ssupported%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getSupported())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/ManifestOrder.java b/src/main/java/com/fireblocks/sdk/model/ManifestOrder.java new file mode 100644 index 00000000..9e238114 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/ManifestOrder.java @@ -0,0 +1,270 @@ +/* + * 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; + +/** ManifestOrder */ +@JsonPropertyOrder({ + ManifestOrder.JSON_PROPERTY_SUPPORTED, + ManifestOrder.JSON_PROPERTY_SETTLEMENT_TYPES, + ManifestOrder.JSON_PROPERTY_EXECUTION_TYPES +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class ManifestOrder { + public static final String JSON_PROPERTY_SUPPORTED = "supported"; + @jakarta.annotation.Nonnull private Boolean supported; + + public static final String JSON_PROPERTY_SETTLEMENT_TYPES = "settlementTypes"; + @jakarta.annotation.Nullable private List settlementTypes; + + public static final String JSON_PROPERTY_EXECUTION_TYPES = "executionTypes"; + @jakarta.annotation.Nonnull private List executionTypes; + + public ManifestOrder() {} + + @JsonCreator + public ManifestOrder( + @JsonProperty(value = JSON_PROPERTY_SUPPORTED, required = true) Boolean supported, + @JsonProperty(value = JSON_PROPERTY_EXECUTION_TYPES, required = true) + List executionTypes) { + this.supported = supported; + this.executionTypes = executionTypes; + } + + public ManifestOrder supported(@jakarta.annotation.Nonnull Boolean supported) { + this.supported = supported; + return this; + } + + /** + * Indicates whether the endpoint is supported by the provider + * + * @return supported + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_SUPPORTED) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Boolean getSupported() { + return supported; + } + + @JsonProperty(JSON_PROPERTY_SUPPORTED) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setSupported(@jakarta.annotation.Nonnull Boolean supported) { + this.supported = supported; + } + + public ManifestOrder settlementTypes( + @jakarta.annotation.Nullable List settlementTypes) { + this.settlementTypes = settlementTypes; + return this; + } + + public ManifestOrder addSettlementTypesItem(SettlementTypeEnum settlementTypesItem) { + if (this.settlementTypes == null) { + this.settlementTypes = new ArrayList<>(); + } + this.settlementTypes.add(settlementTypesItem); + return this; + } + + /** + * Supported settlement types when creating an order. If present - settlement is required. If + * absent - no need to provide settlement. + * + * @return settlementTypes + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_SETTLEMENT_TYPES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getSettlementTypes() { + return settlementTypes; + } + + @JsonProperty(JSON_PROPERTY_SETTLEMENT_TYPES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setSettlementTypes( + @jakarta.annotation.Nullable List settlementTypes) { + this.settlementTypes = settlementTypes; + } + + public ManifestOrder executionTypes( + @jakarta.annotation.Nonnull List executionTypes) { + this.executionTypes = executionTypes; + return this; + } + + public ManifestOrder addExecutionTypesItem(ExecutionRequestDetailsType executionTypesItem) { + if (this.executionTypes == null) { + this.executionTypes = new ArrayList<>(); + } + this.executionTypes.add(executionTypesItem); + return this; + } + + /** + * Supported execution types when creating an order. + * + * @return executionTypes + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_EXECUTION_TYPES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getExecutionTypes() { + return executionTypes; + } + + @JsonProperty(JSON_PROPERTY_EXECUTION_TYPES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setExecutionTypes( + @jakarta.annotation.Nonnull List executionTypes) { + this.executionTypes = executionTypes; + } + + /** Return true if this ManifestOrder object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ManifestOrder manifestOrder = (ManifestOrder) o; + return Objects.equals(this.supported, manifestOrder.supported) + && Objects.equals(this.settlementTypes, manifestOrder.settlementTypes) + && Objects.equals(this.executionTypes, manifestOrder.executionTypes); + } + + @Override + public int hashCode() { + return Objects.hash(supported, settlementTypes, executionTypes); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ManifestOrder {\n"); + sb.append(" supported: ").append(toIndentedString(supported)).append("\n"); + sb.append(" settlementTypes: ").append(toIndentedString(settlementTypes)).append("\n"); + sb.append(" executionTypes: ").append(toIndentedString(executionTypes)).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 `supported` to the URL query string + if (getSupported() != null) { + joiner.add( + String.format( + "%ssupported%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getSupported())))); + } + + // add `settlementTypes` to the URL query string + if (getSettlementTypes() != null) { + for (int i = 0; i < getSettlementTypes().size(); i++) { + if (getSettlementTypes().get(i) != null) { + joiner.add( + String.format( + "%ssettlementTypes%s%s=%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", containerPrefix, i, containerSuffix), + ApiClient.urlEncode( + ApiClient.valueToString(getSettlementTypes().get(i))))); + } + } + } + + // add `executionTypes` to the URL query string + if (getExecutionTypes() != null) { + for (int i = 0; i < getExecutionTypes().size(); i++) { + if (getExecutionTypes().get(i) != null) { + joiner.add( + String.format( + "%sexecutionTypes%s%s=%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", containerPrefix, i, containerSuffix), + ApiClient.urlEncode( + ApiClient.valueToString(getExecutionTypes().get(i))))); + } + } + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/ManifestOrderInfo.java b/src/main/java/com/fireblocks/sdk/model/ManifestOrderInfo.java new file mode 100644 index 00000000..db89c718 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/ManifestOrderInfo.java @@ -0,0 +1,229 @@ +/* + * 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; + +/** Defines requirements for the POST /orders endpoint. */ +@JsonPropertyOrder({ + ManifestOrderInfo.JSON_PROPERTY_SETTLEMENT_TYPES, + ManifestOrderInfo.JSON_PROPERTY_EXECUTION_TYPES +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class ManifestOrderInfo { + public static final String JSON_PROPERTY_SETTLEMENT_TYPES = "settlementTypes"; + @jakarta.annotation.Nullable private List settlementTypes; + + public static final String JSON_PROPERTY_EXECUTION_TYPES = "executionTypes"; + @jakarta.annotation.Nonnull private List executionTypes; + + public ManifestOrderInfo() {} + + @JsonCreator + public ManifestOrderInfo( + @JsonProperty(value = JSON_PROPERTY_EXECUTION_TYPES, required = true) + List executionTypes) { + this.executionTypes = executionTypes; + } + + public ManifestOrderInfo settlementTypes( + @jakarta.annotation.Nullable List settlementTypes) { + this.settlementTypes = settlementTypes; + return this; + } + + public ManifestOrderInfo addSettlementTypesItem(SettlementTypeEnum settlementTypesItem) { + if (this.settlementTypes == null) { + this.settlementTypes = new ArrayList<>(); + } + this.settlementTypes.add(settlementTypesItem); + return this; + } + + /** + * Supported settlement types when creating an order. If present - settlement is required. If + * absent - no need to provide settlement. + * + * @return settlementTypes + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_SETTLEMENT_TYPES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getSettlementTypes() { + return settlementTypes; + } + + @JsonProperty(JSON_PROPERTY_SETTLEMENT_TYPES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setSettlementTypes( + @jakarta.annotation.Nullable List settlementTypes) { + this.settlementTypes = settlementTypes; + } + + public ManifestOrderInfo executionTypes( + @jakarta.annotation.Nonnull List executionTypes) { + this.executionTypes = executionTypes; + return this; + } + + public ManifestOrderInfo addExecutionTypesItem(ExecutionRequestDetailsType executionTypesItem) { + if (this.executionTypes == null) { + this.executionTypes = new ArrayList<>(); + } + this.executionTypes.add(executionTypesItem); + return this; + } + + /** + * Supported execution types when creating an order. + * + * @return executionTypes + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_EXECUTION_TYPES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getExecutionTypes() { + return executionTypes; + } + + @JsonProperty(JSON_PROPERTY_EXECUTION_TYPES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setExecutionTypes( + @jakarta.annotation.Nonnull List executionTypes) { + this.executionTypes = executionTypes; + } + + /** Return true if this ManifestOrderInfo object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ManifestOrderInfo manifestOrderInfo = (ManifestOrderInfo) o; + return Objects.equals(this.settlementTypes, manifestOrderInfo.settlementTypes) + && Objects.equals(this.executionTypes, manifestOrderInfo.executionTypes); + } + + @Override + public int hashCode() { + return Objects.hash(settlementTypes, executionTypes); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ManifestOrderInfo {\n"); + sb.append(" settlementTypes: ").append(toIndentedString(settlementTypes)).append("\n"); + sb.append(" executionTypes: ").append(toIndentedString(executionTypes)).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 `settlementTypes` to the URL query string + if (getSettlementTypes() != null) { + for (int i = 0; i < getSettlementTypes().size(); i++) { + if (getSettlementTypes().get(i) != null) { + joiner.add( + String.format( + "%ssettlementTypes%s%s=%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", containerPrefix, i, containerSuffix), + ApiClient.urlEncode( + ApiClient.valueToString(getSettlementTypes().get(i))))); + } + } + } + + // add `executionTypes` to the URL query string + if (getExecutionTypes() != null) { + for (int i = 0; i < getExecutionTypes().size(); i++) { + if (getExecutionTypes().get(i) != null) { + joiner.add( + String.format( + "%sexecutionTypes%s%s=%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", containerPrefix, i, containerSuffix), + ApiClient.urlEncode( + ApiClient.valueToString(getExecutionTypes().get(i))))); + } + } + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/ManifestQuote.java b/src/main/java/com/fireblocks/sdk/model/ManifestQuote.java new file mode 100644 index 00000000..ffbf1b71 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/ManifestQuote.java @@ -0,0 +1,209 @@ +/* + * 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; + +/** ManifestQuote */ +@JsonPropertyOrder({ + ManifestQuote.JSON_PROPERTY_SUPPORTED, + ManifestQuote.JSON_PROPERTY_SETTLEMENT_TYPES +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class ManifestQuote { + public static final String JSON_PROPERTY_SUPPORTED = "supported"; + @jakarta.annotation.Nonnull private Boolean supported; + + public static final String JSON_PROPERTY_SETTLEMENT_TYPES = "settlementTypes"; + @jakarta.annotation.Nullable private List settlementTypes; + + public ManifestQuote() {} + + @JsonCreator + public ManifestQuote( + @JsonProperty(value = JSON_PROPERTY_SUPPORTED, required = true) Boolean supported) { + this.supported = supported; + } + + public ManifestQuote supported(@jakarta.annotation.Nonnull Boolean supported) { + this.supported = supported; + return this; + } + + /** + * Indicates whether the endpoint is supported by the provider + * + * @return supported + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_SUPPORTED) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Boolean getSupported() { + return supported; + } + + @JsonProperty(JSON_PROPERTY_SUPPORTED) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setSupported(@jakarta.annotation.Nonnull Boolean supported) { + this.supported = supported; + } + + public ManifestQuote settlementTypes( + @jakarta.annotation.Nullable List settlementTypes) { + this.settlementTypes = settlementTypes; + return this; + } + + public ManifestQuote addSettlementTypesItem(DVPSettlementType settlementTypesItem) { + if (this.settlementTypes == null) { + this.settlementTypes = new ArrayList<>(); + } + this.settlementTypes.add(settlementTypesItem); + return this; + } + + /** + * Supported settlement types when requesting a quote. If present - settlement is required. If + * absent - no need to provide settlement. + * + * @return settlementTypes + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_SETTLEMENT_TYPES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getSettlementTypes() { + return settlementTypes; + } + + @JsonProperty(JSON_PROPERTY_SETTLEMENT_TYPES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setSettlementTypes( + @jakarta.annotation.Nullable List settlementTypes) { + this.settlementTypes = settlementTypes; + } + + /** Return true if this ManifestQuote object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ManifestQuote manifestQuote = (ManifestQuote) o; + return Objects.equals(this.supported, manifestQuote.supported) + && Objects.equals(this.settlementTypes, manifestQuote.settlementTypes); + } + + @Override + public int hashCode() { + return Objects.hash(supported, settlementTypes); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ManifestQuote {\n"); + sb.append(" supported: ").append(toIndentedString(supported)).append("\n"); + sb.append(" settlementTypes: ").append(toIndentedString(settlementTypes)).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 `supported` to the URL query string + if (getSupported() != null) { + joiner.add( + String.format( + "%ssupported%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getSupported())))); + } + + // add `settlementTypes` to the URL query string + if (getSettlementTypes() != null) { + for (int i = 0; i < getSettlementTypes().size(); i++) { + if (getSettlementTypes().get(i) != null) { + joiner.add( + String.format( + "%ssettlementTypes%s%s=%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", containerPrefix, i, containerSuffix), + ApiClient.urlEncode( + ApiClient.valueToString(getSettlementTypes().get(i))))); + } + } + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/ManifestQuoteInfo.java b/src/main/java/com/fireblocks/sdk/model/ManifestQuoteInfo.java new file mode 100644 index 00000000..8374ce83 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/ManifestQuoteInfo.java @@ -0,0 +1,161 @@ +/* + * 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; + +/** Defines requirements for the POST /quotes endpoint. */ +@JsonPropertyOrder({ManifestQuoteInfo.JSON_PROPERTY_SETTLEMENT_TYPES}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class ManifestQuoteInfo { + public static final String JSON_PROPERTY_SETTLEMENT_TYPES = "settlementTypes"; + @jakarta.annotation.Nullable private List settlementTypes; + + public ManifestQuoteInfo() {} + + public ManifestQuoteInfo settlementTypes( + @jakarta.annotation.Nullable List settlementTypes) { + this.settlementTypes = settlementTypes; + return this; + } + + public ManifestQuoteInfo addSettlementTypesItem(DVPSettlementType settlementTypesItem) { + if (this.settlementTypes == null) { + this.settlementTypes = new ArrayList<>(); + } + this.settlementTypes.add(settlementTypesItem); + return this; + } + + /** + * Supported settlement types when requesting a quote. If present - settlement is required. If + * absent - no need to provide settlement. + * + * @return settlementTypes + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_SETTLEMENT_TYPES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getSettlementTypes() { + return settlementTypes; + } + + @JsonProperty(JSON_PROPERTY_SETTLEMENT_TYPES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setSettlementTypes( + @jakarta.annotation.Nullable List settlementTypes) { + this.settlementTypes = settlementTypes; + } + + /** Return true if this ManifestQuoteInfo object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ManifestQuoteInfo manifestQuoteInfo = (ManifestQuoteInfo) o; + return Objects.equals(this.settlementTypes, manifestQuoteInfo.settlementTypes); + } + + @Override + public int hashCode() { + return Objects.hash(settlementTypes); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ManifestQuoteInfo {\n"); + sb.append(" settlementTypes: ").append(toIndentedString(settlementTypes)).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 `settlementTypes` to the URL query string + if (getSettlementTypes() != null) { + for (int i = 0; i < getSettlementTypes().size(); i++) { + if (getSettlementTypes().get(i) != null) { + joiner.add( + String.format( + "%ssettlementTypes%s%s=%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", containerPrefix, i, containerSuffix), + ApiClient.urlEncode( + ApiClient.valueToString(getSettlementTypes().get(i))))); + } + } + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/Position.java b/src/main/java/com/fireblocks/sdk/model/Position.java new file mode 100644 index 00000000..583b3bf4 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/Position.java @@ -0,0 +1,907 @@ +/* + * 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; + +/** Position */ +@JsonPropertyOrder({ + Position.JSON_PROPERTY_ID, + Position.JSON_PROPERTY_VAULT_ACCOUNT_ID, + Position.JSON_PROPERTY_VALIDATOR_NAME, + Position.JSON_PROPERTY_PROVIDER_NAME, + Position.JSON_PROPERTY_CHAIN_DESCRIPTOR, + Position.JSON_PROPERTY_AMOUNT, + Position.JSON_PROPERTY_REWARDS_AMOUNT, + Position.JSON_PROPERTY_DATE_CREATED, + Position.JSON_PROPERTY_DATE_UPDATED, + Position.JSON_PROPERTY_STATUS, + Position.JSON_PROPERTY_VALIDATOR_ADDRESS, + Position.JSON_PROPERTY_PROVIDER_ID, + Position.JSON_PROPERTY_AVAILABLE_ACTIONS, + Position.JSON_PROPERTY_IN_PROGRESS, + Position.JSON_PROPERTY_IN_PROGRESS_TX_ID, + Position.JSON_PROPERTY_BLOCKCHAIN_POSITION_INFO +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class Position { + public static final String JSON_PROPERTY_ID = "id"; + @jakarta.annotation.Nonnull private String id; + + public static final String JSON_PROPERTY_VAULT_ACCOUNT_ID = "vaultAccountId"; + @jakarta.annotation.Nonnull private String vaultAccountId; + + public static final String JSON_PROPERTY_VALIDATOR_NAME = "validatorName"; + @jakarta.annotation.Nonnull private String validatorName; + + public static final String JSON_PROPERTY_PROVIDER_NAME = "providerName"; + @jakarta.annotation.Nonnull private String providerName; + + public static final String JSON_PROPERTY_CHAIN_DESCRIPTOR = "chainDescriptor"; + @jakarta.annotation.Nonnull private String chainDescriptor; + + public static final String JSON_PROPERTY_AMOUNT = "amount"; + @jakarta.annotation.Nonnull private String amount; + + public static final String JSON_PROPERTY_REWARDS_AMOUNT = "rewardsAmount"; + @jakarta.annotation.Nonnull private String rewardsAmount; + + public static final String JSON_PROPERTY_DATE_CREATED = "dateCreated"; + @jakarta.annotation.Nonnull private OffsetDateTime dateCreated; + + public static final String JSON_PROPERTY_DATE_UPDATED = "dateUpdated"; + @jakarta.annotation.Nonnull private OffsetDateTime dateUpdated; + + /** The current status. */ + public enum StatusEnum { + CREATING(String.valueOf("CREATING")), + + PENDING(String.valueOf("PENDING")), + + ACTIVATING(String.valueOf("ACTIVATING")), + + ACTIVE(String.valueOf("ACTIVE")), + + DEACTIVATING(String.valueOf("DEACTIVATING")), + + DEACTIVATED(String.valueOf("DEACTIVATED")), + + WITHDRAWING(String.valueOf("WITHDRAWING")), + + WITHDRAWN(String.valueOf("WITHDRAWN")), + + MERGED(String.valueOf("MERGED")), + + CONSOLIDATED(String.valueOf("CONSOLIDATED")), + + 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 static final String JSON_PROPERTY_VALIDATOR_ADDRESS = "validatorAddress"; + @jakarta.annotation.Nonnull private String validatorAddress; + + public static final String JSON_PROPERTY_PROVIDER_ID = "providerId"; + @jakarta.annotation.Nonnull private StakingProvider providerId; + + /** Gets or Sets availableActions */ + public enum AvailableActionsEnum { + UNSTAKE(String.valueOf("UNSTAKE")), + + WITHDRAW(String.valueOf("WITHDRAW")), + + ADD_TO_STAKE(String.valueOf("ADD_TO_STAKE")), + + SPLIT(String.valueOf("SPLIT")), + + MERGE(String.valueOf("MERGE")), + + CLAIM_REWARDS(String.valueOf("CLAIM_REWARDS")), + + CONSOLIDATE(String.valueOf("CONSOLIDATE")); + + 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.Nonnull private List availableActions; + + public static final String JSON_PROPERTY_IN_PROGRESS = "inProgress"; + @jakarta.annotation.Nonnull private Boolean inProgress; + + public static final String JSON_PROPERTY_IN_PROGRESS_TX_ID = "inProgressTxId"; + @jakarta.annotation.Nullable private String inProgressTxId; + + public static final String JSON_PROPERTY_BLOCKCHAIN_POSITION_INFO = "blockchainPositionInfo"; + @jakarta.annotation.Nonnull private DelegationBlockchainPositionInfo blockchainPositionInfo; + + public Position() {} + + @JsonCreator + public Position( + @JsonProperty(value = JSON_PROPERTY_ID, required = true) String id, + @JsonProperty(value = JSON_PROPERTY_VAULT_ACCOUNT_ID, required = true) + String vaultAccountId, + @JsonProperty(value = JSON_PROPERTY_VALIDATOR_NAME, required = true) + String validatorName, + @JsonProperty(value = JSON_PROPERTY_PROVIDER_NAME, required = true) String providerName, + @JsonProperty(value = JSON_PROPERTY_CHAIN_DESCRIPTOR, required = true) + String chainDescriptor, + @JsonProperty(value = JSON_PROPERTY_AMOUNT, required = true) String amount, + @JsonProperty(value = JSON_PROPERTY_REWARDS_AMOUNT, required = true) + String rewardsAmount, + @JsonProperty(value = JSON_PROPERTY_DATE_CREATED, required = true) + OffsetDateTime dateCreated, + @JsonProperty(value = JSON_PROPERTY_DATE_UPDATED, required = true) + OffsetDateTime dateUpdated, + @JsonProperty(value = JSON_PROPERTY_STATUS, required = true) StatusEnum status, + @JsonProperty(value = JSON_PROPERTY_VALIDATOR_ADDRESS, required = true) + String validatorAddress, + @JsonProperty(value = JSON_PROPERTY_PROVIDER_ID, required = true) + StakingProvider providerId, + @JsonProperty(value = JSON_PROPERTY_AVAILABLE_ACTIONS, required = true) + List availableActions, + @JsonProperty(value = JSON_PROPERTY_IN_PROGRESS, required = true) Boolean inProgress, + @JsonProperty(value = JSON_PROPERTY_BLOCKCHAIN_POSITION_INFO, required = true) + DelegationBlockchainPositionInfo blockchainPositionInfo) { + this.id = id; + this.vaultAccountId = vaultAccountId; + this.validatorName = validatorName; + this.providerName = providerName; + this.chainDescriptor = chainDescriptor; + this.amount = amount; + this.rewardsAmount = rewardsAmount; + this.dateCreated = dateCreated; + this.dateUpdated = dateUpdated; + this.status = status; + this.validatorAddress = validatorAddress; + this.providerId = providerId; + this.availableActions = availableActions; + this.inProgress = inProgress; + this.blockchainPositionInfo = blockchainPositionInfo; + } + + public Position id(@jakarta.annotation.Nonnull String id) { + this.id = id; + return this; + } + + /** + * The unique identifier of the staking position + * + * @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 Position vaultAccountId(@jakarta.annotation.Nonnull String vaultAccountId) { + this.vaultAccountId = vaultAccountId; + return this; + } + + /** + * The source vault account to stake from + * + * @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 Position validatorName(@jakarta.annotation.Nonnull String validatorName) { + this.validatorName = validatorName; + return this; + } + + /** + * The destination validator address name + * + * @return validatorName + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_VALIDATOR_NAME) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getValidatorName() { + return validatorName; + } + + @JsonProperty(JSON_PROPERTY_VALIDATOR_NAME) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setValidatorName(@jakarta.annotation.Nonnull String validatorName) { + this.validatorName = validatorName; + } + + public Position providerName(@jakarta.annotation.Nonnull String providerName) { + this.providerName = providerName; + return this; + } + + /** + * The destination validator provider name + * + * @return providerName + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_PROVIDER_NAME) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getProviderName() { + return providerName; + } + + @JsonProperty(JSON_PROPERTY_PROVIDER_NAME) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setProviderName(@jakarta.annotation.Nonnull String providerName) { + this.providerName = providerName; + } + + public Position chainDescriptor(@jakarta.annotation.Nonnull String chainDescriptor) { + this.chainDescriptor = chainDescriptor; + return this; + } + + /** + * The protocol identifier (e.g. \"ETH\"/ \"SOL\") to use + * + * @return chainDescriptor + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_CHAIN_DESCRIPTOR) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getChainDescriptor() { + return chainDescriptor; + } + + @JsonProperty(JSON_PROPERTY_CHAIN_DESCRIPTOR) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setChainDescriptor(@jakarta.annotation.Nonnull String chainDescriptor) { + this.chainDescriptor = chainDescriptor; + } + + public Position amount(@jakarta.annotation.Nonnull String amount) { + this.amount = amount; + return this; + } + + /** + * Total value of the staking position. For Solana, Lido and Ethereum (compounding validator): + * includes the original stake plus accumulated rewards. For MATIC, Cosmos and Ethereum (legacy + * validator): refers to the amount currently staked. + * + * @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 Position rewardsAmount(@jakarta.annotation.Nonnull String rewardsAmount) { + this.rewardsAmount = rewardsAmount; + return this; + } + + /** + * The amount staked in the position, measured in the staked asset unit. + * + * @return rewardsAmount + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_REWARDS_AMOUNT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getRewardsAmount() { + return rewardsAmount; + } + + @JsonProperty(JSON_PROPERTY_REWARDS_AMOUNT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setRewardsAmount(@jakarta.annotation.Nonnull String rewardsAmount) { + this.rewardsAmount = rewardsAmount; + } + + public Position dateCreated(@jakarta.annotation.Nonnull OffsetDateTime dateCreated) { + this.dateCreated = dateCreated; + return this; + } + + /** + * When was the request made (ISO Date). + * + * @return dateCreated + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_DATE_CREATED) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public OffsetDateTime getDateCreated() { + return dateCreated; + } + + @JsonProperty(JSON_PROPERTY_DATE_CREATED) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setDateCreated(@jakarta.annotation.Nonnull OffsetDateTime dateCreated) { + this.dateCreated = dateCreated; + } + + public Position dateUpdated(@jakarta.annotation.Nonnull OffsetDateTime dateUpdated) { + this.dateUpdated = dateUpdated; + return this; + } + + /** + * When has the position last changed (ISO Date). + * + * @return dateUpdated + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_DATE_UPDATED) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public OffsetDateTime getDateUpdated() { + return dateUpdated; + } + + @JsonProperty(JSON_PROPERTY_DATE_UPDATED) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setDateUpdated(@jakarta.annotation.Nonnull OffsetDateTime dateUpdated) { + this.dateUpdated = dateUpdated; + } + + public Position status(@jakarta.annotation.Nonnull StatusEnum status) { + this.status = status; + return this; + } + + /** + * The current 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 Position validatorAddress(@jakarta.annotation.Nonnull String validatorAddress) { + this.validatorAddress = validatorAddress; + return this; + } + + /** + * The destination address of the staking transaction. + * + * @return validatorAddress + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_VALIDATOR_ADDRESS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getValidatorAddress() { + return validatorAddress; + } + + @JsonProperty(JSON_PROPERTY_VALIDATOR_ADDRESS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setValidatorAddress(@jakarta.annotation.Nonnull String validatorAddress) { + this.validatorAddress = validatorAddress; + } + + public Position providerId(@jakarta.annotation.Nonnull StakingProvider providerId) { + this.providerId = providerId; + return this; + } + + /** + * Get providerId + * + * @return providerId + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_PROVIDER_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public StakingProvider getProviderId() { + return providerId; + } + + @JsonProperty(JSON_PROPERTY_PROVIDER_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setProviderId(@jakarta.annotation.Nonnull StakingProvider providerId) { + this.providerId = providerId; + } + + public Position availableActions( + @jakarta.annotation.Nonnull List availableActions) { + this.availableActions = availableActions; + return this; + } + + public Position addAvailableActionsItem(AvailableActionsEnum availableActionsItem) { + if (this.availableActions == null) { + this.availableActions = new ArrayList<>(); + } + this.availableActions.add(availableActionsItem); + return this; + } + + /** + * An array of available actions that can be performed. for example, actions like + * \"UNSTAKE\" or \"WITHDRAW\". + * + * @return availableActions + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_AVAILABLE_ACTIONS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getAvailableActions() { + return availableActions; + } + + @JsonProperty(JSON_PROPERTY_AVAILABLE_ACTIONS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setAvailableActions( + @jakarta.annotation.Nonnull List availableActions) { + this.availableActions = availableActions; + } + + public Position inProgress(@jakarta.annotation.Nonnull Boolean inProgress) { + this.inProgress = inProgress; + return this; + } + + /** + * Indicates whether there is an ongoing action for this position related to this request + * + * @return inProgress + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_IN_PROGRESS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Boolean getInProgress() { + return inProgress; + } + + @JsonProperty(JSON_PROPERTY_IN_PROGRESS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setInProgress(@jakarta.annotation.Nonnull Boolean inProgress) { + this.inProgress = inProgress; + } + + public Position inProgressTxId(@jakarta.annotation.Nullable String inProgressTxId) { + this.inProgressTxId = inProgressTxId; + return this; + } + + /** + * The transaction ID of the initial stake position request only. Only present when there is an + * active initial stake transaction. + * + * @return inProgressTxId + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_IN_PROGRESS_TX_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getInProgressTxId() { + return inProgressTxId; + } + + @JsonProperty(JSON_PROPERTY_IN_PROGRESS_TX_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setInProgressTxId(@jakarta.annotation.Nullable String inProgressTxId) { + this.inProgressTxId = inProgressTxId; + } + + public Position blockchainPositionInfo( + @jakarta.annotation.Nonnull DelegationBlockchainPositionInfo blockchainPositionInfo) { + this.blockchainPositionInfo = blockchainPositionInfo; + return this; + } + + /** + * Get blockchainPositionInfo + * + * @return blockchainPositionInfo + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_BLOCKCHAIN_POSITION_INFO) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public DelegationBlockchainPositionInfo getBlockchainPositionInfo() { + return blockchainPositionInfo; + } + + @JsonProperty(JSON_PROPERTY_BLOCKCHAIN_POSITION_INFO) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setBlockchainPositionInfo( + @jakarta.annotation.Nonnull DelegationBlockchainPositionInfo blockchainPositionInfo) { + this.blockchainPositionInfo = blockchainPositionInfo; + } + + /** Return true if this Position object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Position position = (Position) o; + return Objects.equals(this.id, position.id) + && Objects.equals(this.vaultAccountId, position.vaultAccountId) + && Objects.equals(this.validatorName, position.validatorName) + && Objects.equals(this.providerName, position.providerName) + && Objects.equals(this.chainDescriptor, position.chainDescriptor) + && Objects.equals(this.amount, position.amount) + && Objects.equals(this.rewardsAmount, position.rewardsAmount) + && Objects.equals(this.dateCreated, position.dateCreated) + && Objects.equals(this.dateUpdated, position.dateUpdated) + && Objects.equals(this.status, position.status) + && Objects.equals(this.validatorAddress, position.validatorAddress) + && Objects.equals(this.providerId, position.providerId) + && Objects.equals(this.availableActions, position.availableActions) + && Objects.equals(this.inProgress, position.inProgress) + && Objects.equals(this.inProgressTxId, position.inProgressTxId) + && Objects.equals(this.blockchainPositionInfo, position.blockchainPositionInfo); + } + + @Override + public int hashCode() { + return Objects.hash( + id, + vaultAccountId, + validatorName, + providerName, + chainDescriptor, + amount, + rewardsAmount, + dateCreated, + dateUpdated, + status, + validatorAddress, + providerId, + availableActions, + inProgress, + inProgressTxId, + blockchainPositionInfo); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Position {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" vaultAccountId: ").append(toIndentedString(vaultAccountId)).append("\n"); + sb.append(" validatorName: ").append(toIndentedString(validatorName)).append("\n"); + sb.append(" providerName: ").append(toIndentedString(providerName)).append("\n"); + sb.append(" chainDescriptor: ").append(toIndentedString(chainDescriptor)).append("\n"); + sb.append(" amount: ").append(toIndentedString(amount)).append("\n"); + sb.append(" rewardsAmount: ").append(toIndentedString(rewardsAmount)).append("\n"); + sb.append(" dateCreated: ").append(toIndentedString(dateCreated)).append("\n"); + sb.append(" dateUpdated: ").append(toIndentedString(dateUpdated)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" validatorAddress: ").append(toIndentedString(validatorAddress)).append("\n"); + sb.append(" providerId: ").append(toIndentedString(providerId)).append("\n"); + sb.append(" availableActions: ").append(toIndentedString(availableActions)).append("\n"); + sb.append(" inProgress: ").append(toIndentedString(inProgress)).append("\n"); + sb.append(" inProgressTxId: ").append(toIndentedString(inProgressTxId)).append("\n"); + sb.append(" blockchainPositionInfo: ") + .append(toIndentedString(blockchainPositionInfo)) + .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 `vaultAccountId` to the URL query string + if (getVaultAccountId() != null) { + joiner.add( + String.format( + "%svaultAccountId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getVaultAccountId())))); + } + + // add `validatorName` to the URL query string + if (getValidatorName() != null) { + joiner.add( + String.format( + "%svalidatorName%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getValidatorName())))); + } + + // add `providerName` to the URL query string + if (getProviderName() != null) { + joiner.add( + String.format( + "%sproviderName%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getProviderName())))); + } + + // add `chainDescriptor` to the URL query string + if (getChainDescriptor() != null) { + joiner.add( + String.format( + "%schainDescriptor%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getChainDescriptor())))); + } + + // 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 `rewardsAmount` to the URL query string + if (getRewardsAmount() != null) { + joiner.add( + String.format( + "%srewardsAmount%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getRewardsAmount())))); + } + + // add `dateCreated` to the URL query string + if (getDateCreated() != null) { + joiner.add( + String.format( + "%sdateCreated%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getDateCreated())))); + } + + // add `dateUpdated` to the URL query string + if (getDateUpdated() != null) { + joiner.add( + String.format( + "%sdateUpdated%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getDateUpdated())))); + } + + // 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 `validatorAddress` to the URL query string + if (getValidatorAddress() != null) { + joiner.add( + String.format( + "%svalidatorAddress%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getValidatorAddress())))); + } + + // 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 `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))))); + } + } + + // add `inProgress` to the URL query string + if (getInProgress() != null) { + joiner.add( + String.format( + "%sinProgress%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getInProgress())))); + } + + // add `inProgressTxId` to the URL query string + if (getInProgressTxId() != null) { + joiner.add( + String.format( + "%sinProgressTxId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getInProgressTxId())))); + } + + // add `blockchainPositionInfo` to the URL query string + if (getBlockchainPositionInfo() != null) { + joiner.add( + getBlockchainPositionInfo() + .toUrlQueryString(prefix + "blockchainPositionInfo" + suffix)); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/RegisterLegalEntityRequest.java b/src/main/java/com/fireblocks/sdk/model/RegisterLegalEntityRequest.java new file mode 100644 index 00000000..4c496945 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/RegisterLegalEntityRequest.java @@ -0,0 +1,260 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fireblocks.sdk.ApiClient; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.StringJoiner; + +/** Request body to register a new legal entity */ +@JsonPropertyOrder({ + RegisterLegalEntityRequest.JSON_PROPERTY_LEI, + RegisterLegalEntityRequest.JSON_PROPERTY_TRAVEL_RULE_PROVIDERS, + RegisterLegalEntityRequest.JSON_PROPERTY_TRAVEL_RULE_CONTACT_EMAIL +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class RegisterLegalEntityRequest { + public static final String JSON_PROPERTY_LEI = "lei"; + @jakarta.annotation.Nonnull private String lei; + + public static final String JSON_PROPERTY_TRAVEL_RULE_PROVIDERS = "travelRuleProviders"; + @jakarta.annotation.Nullable private List travelRuleProviders; + + public static final String JSON_PROPERTY_TRAVEL_RULE_CONTACT_EMAIL = "travelRuleContactEmail"; + @jakarta.annotation.Nullable private String travelRuleContactEmail; + + public RegisterLegalEntityRequest() {} + + @JsonCreator + public RegisterLegalEntityRequest( + @JsonProperty(value = JSON_PROPERTY_LEI, required = true) String lei) { + this.lei = lei; + } + + public RegisterLegalEntityRequest lei(@jakarta.annotation.Nonnull String lei) { + this.lei = lei; + return this; + } + + /** + * Legal Entity Identifier (LEI) code to register. Must be a valid 20-character LEI present in + * the GLEIF registry. + * + * @return lei + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_LEI) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getLei() { + return lei; + } + + @JsonProperty(JSON_PROPERTY_LEI) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setLei(@jakarta.annotation.Nonnull String lei) { + this.lei = lei; + } + + public RegisterLegalEntityRequest travelRuleProviders( + @jakarta.annotation.Nullable List travelRuleProviders) { + this.travelRuleProviders = travelRuleProviders; + return this; + } + + public RegisterLegalEntityRequest addTravelRuleProvidersItem( + TravelRuleProvider travelRuleProvidersItem) { + if (this.travelRuleProviders == null) { + this.travelRuleProviders = new ArrayList<>(); + } + this.travelRuleProviders.add(travelRuleProvidersItem); + return this; + } + + /** + * Travel rule providers to associate with this registration + * + * @return travelRuleProviders + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TRAVEL_RULE_PROVIDERS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getTravelRuleProviders() { + return travelRuleProviders; + } + + @JsonProperty(JSON_PROPERTY_TRAVEL_RULE_PROVIDERS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setTravelRuleProviders( + @jakarta.annotation.Nullable List travelRuleProviders) { + this.travelRuleProviders = travelRuleProviders; + } + + public RegisterLegalEntityRequest travelRuleContactEmail( + @jakarta.annotation.Nullable String travelRuleContactEmail) { + this.travelRuleContactEmail = travelRuleContactEmail; + return this; + } + + /** + * Contact email for travel rule communications + * + * @return travelRuleContactEmail + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TRAVEL_RULE_CONTACT_EMAIL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getTravelRuleContactEmail() { + return travelRuleContactEmail; + } + + @JsonProperty(JSON_PROPERTY_TRAVEL_RULE_CONTACT_EMAIL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setTravelRuleContactEmail( + @jakarta.annotation.Nullable String travelRuleContactEmail) { + this.travelRuleContactEmail = travelRuleContactEmail; + } + + /** Return true if this RegisterLegalEntityRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RegisterLegalEntityRequest registerLegalEntityRequest = (RegisterLegalEntityRequest) o; + return Objects.equals(this.lei, registerLegalEntityRequest.lei) + && Objects.equals( + this.travelRuleProviders, registerLegalEntityRequest.travelRuleProviders) + && Objects.equals( + this.travelRuleContactEmail, + registerLegalEntityRequest.travelRuleContactEmail); + } + + @Override + public int hashCode() { + return Objects.hash(lei, travelRuleProviders, travelRuleContactEmail); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RegisterLegalEntityRequest {\n"); + sb.append(" lei: ").append(toIndentedString(lei)).append("\n"); + sb.append(" travelRuleProviders: ") + .append(toIndentedString(travelRuleProviders)) + .append("\n"); + sb.append(" travelRuleContactEmail: ") + .append(toIndentedString(travelRuleContactEmail)) + .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 `lei` to the URL query string + if (getLei() != null) { + joiner.add( + String.format( + "%slei%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getLei())))); + } + + // add `travelRuleProviders` to the URL query string + if (getTravelRuleProviders() != null) { + for (int i = 0; i < getTravelRuleProviders().size(); i++) { + if (getTravelRuleProviders().get(i) != null) { + joiner.add( + String.format( + "%stravelRuleProviders%s%s=%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", containerPrefix, i, containerSuffix), + ApiClient.urlEncode( + ApiClient.valueToString( + getTravelRuleProviders().get(i))))); + } + } + } + + // add `travelRuleContactEmail` to the URL query string + if (getTravelRuleContactEmail() != null) { + joiner.add( + String.format( + "%stravelRuleContactEmail%s=%s", + prefix, + suffix, + ApiClient.urlEncode( + ApiClient.valueToString(getTravelRuleContactEmail())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/ScreeningAmlResult.java b/src/main/java/com/fireblocks/sdk/model/ScreeningAmlResult.java index 78a407c6..4de85abc 100644 --- a/src/main/java/com/fireblocks/sdk/model/ScreeningAmlResult.java +++ b/src/main/java/com/fireblocks/sdk/model/ScreeningAmlResult.java @@ -25,9 +25,13 @@ import java.util.StringJoiner; /** - * Detailed AML screening result information. Contains alerts, risk scores, and other AML-specific - * data from provider-specific responses. + * Deprecated: This field is not currently returned in the API response. Detailed AML screening + * result information. Contains alerts, risk scores, and other AML-specific data from + * provider-specific responses. + * + * @deprecated */ +@Deprecated @JsonPropertyOrder({ ScreeningAmlResult.JSON_PROPERTY_ALERTS, ScreeningAmlResult.JSON_PROPERTY_PROVIDER_RESPONSE, diff --git a/src/main/java/com/fireblocks/sdk/model/ScreeningTravelRuleResult.java b/src/main/java/com/fireblocks/sdk/model/ScreeningTravelRuleResult.java index d3f6f75f..369cceec 100644 --- a/src/main/java/com/fireblocks/sdk/model/ScreeningTravelRuleResult.java +++ b/src/main/java/com/fireblocks/sdk/model/ScreeningTravelRuleResult.java @@ -23,9 +23,13 @@ import java.util.StringJoiner; /** - * Detailed Travel Rule screening result containing provider-specific data. Contains Travel Rule - * specific information like verified status, rule type, and actions. + * Deprecated: This field is not currently returned in the API response. Detailed Travel Rule + * screening result containing provider-specific data. Contains Travel Rule specific information + * like verified status, rule type, and actions. + * + * @deprecated */ +@Deprecated @JsonPropertyOrder({ ScreeningTravelRuleResult.JSON_PROPERTY_DIRECTION, ScreeningTravelRuleResult.JSON_PROPERTY_IS_VERIFIED, diff --git a/src/main/java/com/fireblocks/sdk/model/AssetTypeEnum.java b/src/main/java/com/fireblocks/sdk/model/SettlementTypeEnum.java similarity index 83% rename from src/main/java/com/fireblocks/sdk/model/AssetTypeEnum.java rename to src/main/java/com/fireblocks/sdk/model/SettlementTypeEnum.java index 54eb178f..deb1a28c 100644 --- a/src/main/java/com/fireblocks/sdk/model/AssetTypeEnum.java +++ b/src/main/java/com/fireblocks/sdk/model/SettlementTypeEnum.java @@ -16,15 +16,15 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; -/** Gets or Sets AssetTypeEnum */ -public enum AssetTypeEnum { - DIGITAL("DIGITAL"), +/** Settlement type supported by the provider */ +public enum SettlementTypeEnum { + DVP("DVP"), - FIAT("FIAT"); + PREFUNDED("PREFUNDED"); private String value; - AssetTypeEnum(String value) { + SettlementTypeEnum(String value) { this.value = value; } @@ -39,8 +39,8 @@ public String toString() { } @JsonCreator - public static AssetTypeEnum fromValue(String value) { - for (AssetTypeEnum b : AssetTypeEnum.values()) { + public static SettlementTypeEnum fromValue(String value) { + for (SettlementTypeEnum b : SettlementTypeEnum.values()) { if (b.value.equals(value)) { return b; } diff --git a/src/main/java/com/fireblocks/sdk/model/StakingPositionsPaginatedResponse.java b/src/main/java/com/fireblocks/sdk/model/StakingPositionsPaginatedResponse.java new file mode 100644 index 00000000..519bd1c3 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/StakingPositionsPaginatedResponse.java @@ -0,0 +1,211 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fireblocks.sdk.ApiClient; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.StringJoiner; + +/** StakingPositionsPaginatedResponse */ +@JsonPropertyOrder({ + StakingPositionsPaginatedResponse.JSON_PROPERTY_DATA, + StakingPositionsPaginatedResponse.JSON_PROPERTY_NEXT +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class StakingPositionsPaginatedResponse { + 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 StakingPositionsPaginatedResponse() {} + + @JsonCreator + public StakingPositionsPaginatedResponse( + @JsonProperty(value = JSON_PROPERTY_DATA, required = true) List data) { + this.data = data; + } + + public StakingPositionsPaginatedResponse data(@jakarta.annotation.Nonnull List data) { + this.data = data; + return this; + } + + public StakingPositionsPaginatedResponse addDataItem(Position dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * The data of the current page of staking positions + * + * @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 StakingPositionsPaginatedResponse next(@jakarta.annotation.Nullable String next) { + this.next = next; + return this; + } + + /** + * The cursor for 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 StakingPositionsPaginatedResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StakingPositionsPaginatedResponse stakingPositionsPaginatedResponse = + (StakingPositionsPaginatedResponse) o; + return Objects.equals(this.data, stakingPositionsPaginatedResponse.data) + && Objects.equals(this.next, stakingPositionsPaginatedResponse.next); + } + + @Override + public int hashCode() { + return Objects.hash(data, next); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class StakingPositionsPaginatedResponse {\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/TRLinkCreateIntegrationRequest.java b/src/main/java/com/fireblocks/sdk/model/TRLinkCreateIntegrationRequest.java index c64cfe6a..817a5c99 100644 --- a/src/main/java/com/fireblocks/sdk/model/TRLinkCreateIntegrationRequest.java +++ b/src/main/java/com/fireblocks/sdk/model/TRLinkCreateIntegrationRequest.java @@ -25,7 +25,8 @@ /** TRLinkCreateIntegrationRequest */ @JsonPropertyOrder({ TRLinkCreateIntegrationRequest.JSON_PROPERTY_CUSTOMER_ID, - TRLinkCreateIntegrationRequest.JSON_PROPERTY_PARTNER_IDENT + TRLinkCreateIntegrationRequest.JSON_PROPERTY_PARTNER_IDENT, + TRLinkCreateIntegrationRequest.JSON_PROPERTY_CUSTOMER_INTEGRATION_ID }) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", @@ -37,6 +38,9 @@ public class TRLinkCreateIntegrationRequest { public static final String JSON_PROPERTY_PARTNER_IDENT = "partnerIdent"; @jakarta.annotation.Nonnull private String partnerIdent; + public static final String JSON_PROPERTY_CUSTOMER_INTEGRATION_ID = "customerIntegrationId"; + @jakarta.annotation.Nullable private UUID customerIntegrationId; + public TRLinkCreateIntegrationRequest() {} @JsonCreator @@ -95,6 +99,33 @@ public void setPartnerIdent(@jakarta.annotation.Nonnull String partnerIdent) { this.partnerIdent = partnerIdent; } + public TRLinkCreateIntegrationRequest customerIntegrationId( + @jakarta.annotation.Nullable UUID customerIntegrationId) { + this.customerIntegrationId = customerIntegrationId; + return this; + } + + /** + * Optional. When supplied and permitted for the tenant (feature flag / CSM arrangement), this + * value is used as the TRLink integration identifier instead of a server-generated UUID. If + * omitted, the API generates a UUID. If supplied when the tenant is not permitted to set a + * custom id, the request fails with 400. Contact your CSM if you need a custom integration id. + * + * @return customerIntegrationId + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_CUSTOMER_INTEGRATION_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public UUID getCustomerIntegrationId() { + return customerIntegrationId; + } + + @JsonProperty(JSON_PROPERTY_CUSTOMER_INTEGRATION_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setCustomerIntegrationId(@jakarta.annotation.Nullable UUID customerIntegrationId) { + this.customerIntegrationId = customerIntegrationId; + } + /** Return true if this TRLinkCreateIntegrationRequest object is equal to o. */ @Override public boolean equals(Object o) { @@ -107,12 +138,15 @@ public boolean equals(Object o) { TRLinkCreateIntegrationRequest trLinkCreateIntegrationRequest = (TRLinkCreateIntegrationRequest) o; return Objects.equals(this.customerId, trLinkCreateIntegrationRequest.customerId) - && Objects.equals(this.partnerIdent, trLinkCreateIntegrationRequest.partnerIdent); + && Objects.equals(this.partnerIdent, trLinkCreateIntegrationRequest.partnerIdent) + && Objects.equals( + this.customerIntegrationId, + trLinkCreateIntegrationRequest.customerIntegrationId); } @Override public int hashCode() { - return Objects.hash(customerId, partnerIdent); + return Objects.hash(customerId, partnerIdent, customerIntegrationId); } @Override @@ -121,6 +155,9 @@ public String toString() { sb.append("class TRLinkCreateIntegrationRequest {\n"); sb.append(" customerId: ").append(toIndentedString(customerId)).append("\n"); sb.append(" partnerIdent: ").append(toIndentedString(partnerIdent)).append("\n"); + sb.append(" customerIntegrationId: ") + .append(toIndentedString(customerIntegrationId)) + .append("\n"); sb.append("}"); return sb.toString(); } @@ -188,6 +225,17 @@ public String toUrlQueryString(String prefix) { ApiClient.urlEncode(ApiClient.valueToString(getPartnerIdent())))); } + // add `customerIntegrationId` to the URL query string + if (getCustomerIntegrationId() != null) { + joiner.add( + String.format( + "%scustomerIntegrationId%s=%s", + prefix, + suffix, + ApiClient.urlEncode( + ApiClient.valueToString(getCustomerIntegrationId())))); + } + return joiner.toString(); } } diff --git a/src/main/java/com/fireblocks/sdk/model/TokenOwnershipResponse.java b/src/main/java/com/fireblocks/sdk/model/TokenOwnershipResponse.java index 9bdadf62..71b9a7ca 100644 --- a/src/main/java/com/fireblocks/sdk/model/TokenOwnershipResponse.java +++ b/src/main/java/com/fireblocks/sdk/model/TokenOwnershipResponse.java @@ -140,7 +140,9 @@ public enum BlockchainDescriptorEnum { CRONOS(String.valueOf("CRONOS")), - CRONOS_TEST(String.valueOf("CRONOS_TEST")); + CRONOS_TEST(String.valueOf("CRONOS_TEST")), + + ROBINHOOD_CHAIN_TESTNET_TEST(String.valueOf("ROBINHOOD_CHAIN_TESTNET_TEST")); private String value; diff --git a/src/main/java/com/fireblocks/sdk/model/TokenResponse.java b/src/main/java/com/fireblocks/sdk/model/TokenResponse.java index aa00e988..38cf03d5 100644 --- a/src/main/java/com/fireblocks/sdk/model/TokenResponse.java +++ b/src/main/java/com/fireblocks/sdk/model/TokenResponse.java @@ -120,7 +120,9 @@ public enum BlockchainDescriptorEnum { CRONOS(String.valueOf("CRONOS")), - CRONOS_TEST(String.valueOf("CRONOS_TEST")); + CRONOS_TEST(String.valueOf("CRONOS_TEST")), + + ROBINHOOD_CHAIN_TESTNET_TEST(String.valueOf("ROBINHOOD_CHAIN_TESTNET_TEST")); private String value; diff --git a/src/main/java/com/fireblocks/sdk/model/TradingProviderDetails.java b/src/main/java/com/fireblocks/sdk/model/TradingProviderDetails.java new file mode 100644 index 00000000..6ce88b5b --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/TradingProviderDetails.java @@ -0,0 +1,333 @@ +/* + * 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/TransactionResponse.java b/src/main/java/com/fireblocks/sdk/model/TransactionResponse.java index 0a44b2b0..7dd12fa0 100644 --- a/src/main/java/com/fireblocks/sdk/model/TransactionResponse.java +++ b/src/main/java/com/fireblocks/sdk/model/TransactionResponse.java @@ -495,10 +495,10 @@ public TransactionResponse assetId(@jakarta.annotation.Nullable String assetId) } /** - * The ID of the asset to transfer, for `TRANSFER`, `MINT`, - * `BURN`, `ENABLE_ASSET`,`STAKE` ,`UNSTAKE` or - * `WITHDRAW` operations. [See the list of supported assets and their IDs on - * Fireblocks.](https://developers.fireblocks.com/reference/get_supported-assets) + * The ID of the asset to transfer for `TRANSFER`, `MINT`, `BURN`, + * `ENABLE_ASSET`, or `STAKE` operations. [See the list of supported assets + * and their IDs on + * Fireblocks](https://developers.fireblocks.com/reference/get_supported-assets). * * @return assetId */ diff --git a/src/main/java/com/fireblocks/sdk/model/TravelRuleActionEnum.java b/src/main/java/com/fireblocks/sdk/model/TravelRuleActionEnum.java index ebc21980..1c36aaf9 100644 --- a/src/main/java/com/fireblocks/sdk/model/TravelRuleActionEnum.java +++ b/src/main/java/com/fireblocks/sdk/model/TravelRuleActionEnum.java @@ -22,7 +22,11 @@ public enum TravelRuleActionEnum { BYPASS("BYPASS"), - BLOCK("BLOCK"); + BLOCK("BLOCK"), + + PASS("PASS"), + + FREEZE("FREEZE"); private String value; diff --git a/src/main/java/com/fireblocks/sdk/model/TravelRuleOwnershipProof.java b/src/main/java/com/fireblocks/sdk/model/TravelRuleOwnershipProof.java index 6ad522ff..21608b82 100644 --- a/src/main/java/com/fireblocks/sdk/model/TravelRuleOwnershipProof.java +++ b/src/main/java/com/fireblocks/sdk/model/TravelRuleOwnershipProof.java @@ -28,6 +28,8 @@ TravelRuleOwnershipProof.JSON_PROPERTY_ADDRESS, TravelRuleOwnershipProof.JSON_PROPERTY_WALLET_PROVIDER, TravelRuleOwnershipProof.JSON_PROPERTY_URL, + TravelRuleOwnershipProof.JSON_PROPERTY_DID, + TravelRuleOwnershipProof.JSON_PROPERTY_STATUS, TravelRuleOwnershipProof.JSON_PROPERTY_CONFIRMED }) @jakarta.annotation.Generated( @@ -52,6 +54,12 @@ public class TravelRuleOwnershipProof { public static final String JSON_PROPERTY_URL = "url"; @jakarta.annotation.Nullable private String url; + public static final String JSON_PROPERTY_DID = "did"; + @jakarta.annotation.Nullable private String did; + + public static final String JSON_PROPERTY_STATUS = "status"; + @jakarta.annotation.Nullable private String status; + public static final String JSON_PROPERTY_CONFIRMED = "confirmed"; @jakarta.annotation.Nullable private Boolean confirmed; @@ -208,6 +216,52 @@ public void setUrl(@jakarta.annotation.Nullable String url) { this.url = url; } + public TravelRuleOwnershipProof did(@jakarta.annotation.Nullable String did) { + this.did = did; + return this; + } + + /** + * The Decentralized Identifier (DID) associated with the ownership proof. + * + * @return did + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getDid() { + return did; + } + + @JsonProperty(JSON_PROPERTY_DID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setDid(@jakarta.annotation.Nullable String did) { + this.did = did; + } + + public TravelRuleOwnershipProof status(@jakarta.annotation.Nullable String status) { + this.status = status; + return this; + } + + /** + * The status of the ownership proof verification. + * + * @return status + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_STATUS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getStatus() { + return status; + } + + @JsonProperty(JSON_PROPERTY_STATUS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setStatus(@jakarta.annotation.Nullable String status) { + this.status = status; + } + public TravelRuleOwnershipProof confirmed(@jakarta.annotation.Nullable Boolean confirmed) { this.confirmed = confirmed; return this; @@ -248,12 +302,15 @@ public boolean equals(Object o) { && Objects.equals(this.address, travelRuleOwnershipProof.address) && Objects.equals(this.walletProvider, travelRuleOwnershipProof.walletProvider) && Objects.equals(this.url, travelRuleOwnershipProof.url) + && Objects.equals(this.did, travelRuleOwnershipProof.did) + && Objects.equals(this.status, travelRuleOwnershipProof.status) && Objects.equals(this.confirmed, travelRuleOwnershipProof.confirmed); } @Override public int hashCode() { - return Objects.hash(type, proof, attestation, address, walletProvider, url, confirmed); + return Objects.hash( + type, proof, attestation, address, walletProvider, url, did, status, confirmed); } @Override @@ -266,6 +323,8 @@ public String toString() { sb.append(" address: ").append(toIndentedString(address)).append("\n"); sb.append(" walletProvider: ").append(toIndentedString(walletProvider)).append("\n"); sb.append(" url: ").append(toIndentedString(url)).append("\n"); + sb.append(" did: ").append(toIndentedString(did)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); sb.append(" confirmed: ").append(toIndentedString(confirmed)).append("\n"); sb.append("}"); return sb.toString(); @@ -374,6 +433,26 @@ public String toUrlQueryString(String prefix) { ApiClient.urlEncode(ApiClient.valueToString(getUrl())))); } + // add `did` to the URL query string + if (getDid() != null) { + joiner.add( + String.format( + "%sdid%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getDid())))); + } + + // 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 `confirmed` to the URL query string if (getConfirmed() != null) { joiner.add( diff --git a/src/main/java/com/fireblocks/sdk/model/TravelRuleProvider.java b/src/main/java/com/fireblocks/sdk/model/TravelRuleProvider.java new file mode 100644 index 00000000..f0cba937 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/TravelRuleProvider.java @@ -0,0 +1,80 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** Travel rule compliance provider */ +public enum TravelRuleProvider { + CODE("CODE"), + + GTR("GTR"), + + MY_OWN("MY_OWN"), + + NOTABENE("NOTABENE"), + + SYGNA("SYGNA"), + + SUMSUB("SUMSUB"), + + TRISA("TRISA"), + + TRUST("TRUST"), + + TWENTY_ONE_ANALYTICS("TWENTY_ONE_ANALYTICS"), + + VERIFY_VASP("VERIFY_VASP"); + + private String value; + + TravelRuleProvider(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static TravelRuleProvider fromValue(String value) { + for (TravelRuleProvider b : TravelRuleProvider.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/TravelRuleResult.java b/src/main/java/com/fireblocks/sdk/model/TravelRuleResult.java index a41f9c3f..5277f28b 100644 --- a/src/main/java/com/fireblocks/sdk/model/TravelRuleResult.java +++ b/src/main/java/com/fireblocks/sdk/model/TravelRuleResult.java @@ -23,9 +23,13 @@ import java.util.StringJoiner; /** - * Detailed Travel Rule screening result containing provider-specific data. Contains Travel Rule - * specific information like verified status, rule type, and actions. + * Deprecated: This field is not currently returned in the API response. Detailed Travel Rule + * screening result containing provider-specific data. Contains Travel Rule specific information + * like verified status, rule type, and actions. + * + * @deprecated */ +@Deprecated @JsonPropertyOrder({ TravelRuleResult.JSON_PROPERTY_DIRECTION, TravelRuleResult.JSON_PROPERTY_IS_VERIFIED, diff --git a/src/main/java/com/fireblocks/sdk/model/TravelRuleStatusEnum.java b/src/main/java/com/fireblocks/sdk/model/TravelRuleStatusEnum.java index b13a9426..5ea858d3 100644 --- a/src/main/java/com/fireblocks/sdk/model/TravelRuleStatusEnum.java +++ b/src/main/java/com/fireblocks/sdk/model/TravelRuleStatusEnum.java @@ -26,7 +26,13 @@ public enum TravelRuleStatusEnum { FAILED("FAILED"), - FROZEN("FROZEN"); + FROZEN("FROZEN"), + + REJECTED("REJECTED"), + + CANCELED("CANCELED"), + + BLOCKING_TIME_EXPIRED("BLOCKING_TIME_EXPIRED"); private String value; diff --git a/src/main/java/com/fireblocks/sdk/model/TravelRuleVerdictEnum.java b/src/main/java/com/fireblocks/sdk/model/TravelRuleVerdictEnum.java index 423fd9b9..9ae663be 100644 --- a/src/main/java/com/fireblocks/sdk/model/TravelRuleVerdictEnum.java +++ b/src/main/java/com/fireblocks/sdk/model/TravelRuleVerdictEnum.java @@ -24,7 +24,13 @@ public enum TravelRuleVerdictEnum { ALERT("ALERT"), - REVIEW("REVIEW"); + REVIEW("REVIEW"), + + WAIT("WAIT"), + + FREEZE("FREEZE"), + + CANCEL("CANCEL"); private String value; diff --git a/src/main/java/com/fireblocks/sdk/model/UpdateLegalEntityRequest.java b/src/main/java/com/fireblocks/sdk/model/UpdateLegalEntityRequest.java new file mode 100644 index 00000000..411fcb78 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/UpdateLegalEntityRequest.java @@ -0,0 +1,146 @@ +/* + * 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; + +/** UpdateLegalEntityRequest */ +@JsonPropertyOrder({UpdateLegalEntityRequest.JSON_PROPERTY_IS_DEFAULT}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class UpdateLegalEntityRequest { + public static final String JSON_PROPERTY_IS_DEFAULT = "isDefault"; + @jakarta.annotation.Nonnull private Boolean isDefault; + + public UpdateLegalEntityRequest() {} + + @JsonCreator + public UpdateLegalEntityRequest( + @JsonProperty(value = JSON_PROPERTY_IS_DEFAULT, required = true) Boolean isDefault) { + this.isDefault = isDefault; + } + + public UpdateLegalEntityRequest isDefault(@jakarta.annotation.Nonnull Boolean isDefault) { + this.isDefault = isDefault; + return this; + } + + /** + * Whether to set this registration as the workspace default + * + * @return isDefault + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_IS_DEFAULT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Boolean getIsDefault() { + return isDefault; + } + + @JsonProperty(JSON_PROPERTY_IS_DEFAULT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setIsDefault(@jakarta.annotation.Nonnull Boolean isDefault) { + this.isDefault = isDefault; + } + + /** Return true if this UpdateLegalEntityRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateLegalEntityRequest updateLegalEntityRequest = (UpdateLegalEntityRequest) o; + return Objects.equals(this.isDefault, updateLegalEntityRequest.isDefault); + } + + @Override + public int hashCode() { + return Objects.hash(isDefault); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UpdateLegalEntityRequest {\n"); + sb.append(" isDefault: ").append(toIndentedString(isDefault)).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 `isDefault` to the URL query string + if (getIsDefault() != null) { + joiner.add( + String.format( + "%sisDefault%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getIsDefault())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/UserRole.java b/src/main/java/com/fireblocks/sdk/model/UserRole.java index 168710e7..9e0bf9b8 100644 --- a/src/main/java/com/fireblocks/sdk/model/UserRole.java +++ b/src/main/java/com/fireblocks/sdk/model/UserRole.java @@ -38,7 +38,11 @@ public enum UserRole { NCW_ADMIN("NCW_ADMIN"), - NCW_SIGNER("NCW_SIGNER"); + NCW_SIGNER("NCW_SIGNER"), + + SECURITY_ADMIN("SECURITY_ADMIN"), + + SECURITY_AUDITOR("SECURITY_AUDITOR"); private String value; diff --git a/src/test/java/com/fireblocks/sdk/api/ComplianceApiTest.java b/src/test/java/com/fireblocks/sdk/api/ComplianceApiTest.java index ac14955c..6ded7d35 100644 --- a/src/test/java/com/fireblocks/sdk/api/ComplianceApiTest.java +++ b/src/test/java/com/fireblocks/sdk/api/ComplianceApiTest.java @@ -15,15 +15,32 @@ import com.fireblocks.sdk.ApiException; import com.fireblocks.sdk.ApiResponse; +import com.fireblocks.sdk.model.AddressRegistryAddVaultOptOutsRequest; +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; +import com.fireblocks.sdk.model.AddressRegistryTenantRegistryResponse; +import com.fireblocks.sdk.model.AddressRegistryVaultListOrder; import com.fireblocks.sdk.model.AmlVerdictManualRequest; import com.fireblocks.sdk.model.AmlVerdictManualResponse; +import com.fireblocks.sdk.model.AssignVaultsToLegalEntityRequest; +import com.fireblocks.sdk.model.AssignVaultsToLegalEntityResponse; import com.fireblocks.sdk.model.ComplianceResultFullPayload; import com.fireblocks.sdk.model.CreateTransactionResponse; +import com.fireblocks.sdk.model.LegalEntityRegistration; +import com.fireblocks.sdk.model.ListLegalEntitiesResponse; +import com.fireblocks.sdk.model.ListVaultsForRegistrationResponse; +import com.fireblocks.sdk.model.RegisterLegalEntityRequest; import com.fireblocks.sdk.model.ScreeningConfigurationsRequest; import com.fireblocks.sdk.model.ScreeningPolicyResponse; import com.fireblocks.sdk.model.ScreeningProviderRulesConfigurationResponse; import com.fireblocks.sdk.model.ScreeningUpdateConfigurations; +import com.fireblocks.sdk.model.UpdateLegalEntityRequest; +import java.util.UUID; import java.util.concurrent.CompletableFuture; import org.junit.Ignore; import org.junit.Test; @@ -34,6 +51,71 @@ public class ComplianceApiTest { private final ComplianceApi api = new ComplianceApi(); + /** + * 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. + * + * @throws ApiException if the Api call fails + */ + @Test + public void addAddressRegistryVaultOptOutsTest() throws ApiException { + AddressRegistryAddVaultOptOutsRequest addressRegistryAddVaultOptOutsRequest = null; + String idempotencyKey = null; + CompletableFuture> response = + api.addAddressRegistryVaultOptOuts( + addressRegistryAddVaultOptOutsRequest, idempotencyKey); + } + + /** + * Assign vault accounts to a legal entity + * + *

Assigns one or more vault accounts to a specific legal entity registration. Explicitly + * mapped vault accounts take precedence over the workspace default legal entity. + * </br>Endpoint Permission: Admin, Non-Signing Admin. + * + * @throws ApiException if the Api call fails + */ + @Test + public void assignVaultsToLegalEntityTest() throws ApiException { + AssignVaultsToLegalEntityRequest assignVaultsToLegalEntityRequest = null; + UUID legalEntityId = null; + String idempotencyKey = null; + CompletableFuture> response = + api.assignVaultsToLegalEntity( + assignVaultsToLegalEntityRequest, legalEntityId, idempotencyKey); + } + + /** + * Get address registry participation status for the authenticated workspace + * + *

Returns whether the workspace is `OPTED_IN` or `OPTED_OUT` of the + * address registry. + * + * @throws ApiException if the Api call fails + */ + @Test + public void getAddressRegistryTenantParticipationStatusTest() throws ApiException { + CompletableFuture> response = + api.getAddressRegistryTenantParticipationStatus(); + } + + /** + * Get whether a vault account is opted out of the address registry + * + *

Returns whether this vault account is on the workspace opt-out list (`optedOut` + * true or false). List, add, and clear-all are available on + * `/v1/address_registry/vaults`; this path reads or removes one vault. + * + * @throws ApiException if the Api call fails + */ + @Test + public void getAddressRegistryVaultOptOutTest() throws ApiException { + Integer vaultAccountId = null; + CompletableFuture> response = + api.getAddressRegistryVaultOptOut(vaultAccountId); + } + /** * AML - View Post-Screening Policy * @@ -61,11 +143,30 @@ public void getAmlScreeningPolicyTest() throws ApiException { } /** - * Look up legal entity by address and asset + * 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); + } + + /** + * [Deprecated] Look up legal entity by address (query parameter) * - *

Returns the legal entity (company name, jurisdiction, companyId) for the given blockchain - * address and optional asset. Both the requester and the owner of the address must be opted in - * to the address registry. + *

**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). * * @throws ApiException if the Api call fails */ @@ -73,10 +174,29 @@ public void getAmlScreeningPolicyTest() throws ApiException { public void getLegalEntityByAddressTest() throws ApiException { String address = null; String asset = null; - CompletableFuture> response = + CompletableFuture> response = api.getLegalEntityByAddress(address, asset); } + /** + * 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). + * + * @throws ApiException if the Api call fails + */ + @Test + public void getLegalEntityForAddressTest() throws ApiException { + String address = null; + CompletableFuture> response = + api.getLegalEntityForAddress(address); + } + /** * Travel Rule - View Post-Screening Policy * @@ -117,6 +237,141 @@ public void getScreeningPolicyTest() throws ApiException { api.getScreeningPolicy(); } + /** + * List vault-level address registry opt-outs (paginated) + * + *

Lists vault accounts that are opted out of the address registry for this workspace. + * Pagination uses `next` and `prev` cursors from the response. If + * `pageSize` is omitted, **50** items are returned per page; allowed range is + * **1–100** per request. + * + * @throws ApiException if the Api call fails + */ + @Test + public void listAddressRegistryVaultOptOutsTest() throws ApiException { + String pageCursor = null; + Integer pageSize = null; + AddressRegistryVaultListOrder order = null; + CompletableFuture> response = + api.listAddressRegistryVaultOptOuts(pageCursor, pageSize, order); + } + + /** + * List legal entities (Paginated) + * + *

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. </br>Endpoint Permission: Admin, Non-Signing Admin, + * Signer, Approver, Editor, Viewer. + * + * @throws ApiException if the Api call fails + */ + @Test + 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); + } + + /** + * List vault accounts for a legal entity (Paginated) + * + *

Returns vault account IDs explicitly assigned to a specific legal entity registration, + * with cursor-based pagination. </br>Endpoint Permission: Admin, Non-Signing Admin, + * Signer, Approver, Editor, Viewer. + * + * @throws ApiException if the Api call fails + */ + @Test + public void listVaultsForLegalEntityTest() throws ApiException { + UUID legalEntityId = null; + String pageCursor = null; + Integer pageSize = null; + CompletableFuture> response = + api.listVaultsForLegalEntity(legalEntityId, pageCursor, pageSize); + } + + /** + * Opt the workspace in to the address registry + * + *

Opts the workspace in. No request body. Response uses the same JSON shape as GET; status + * is OPTED_IN. + * + * @throws ApiException if the Api call fails + */ + @Test + public void optInAddressRegistryTenantTest() throws ApiException { + String idempotencyKey = null; + CompletableFuture> response = + api.optInAddressRegistryTenant(idempotencyKey); + } + + /** + * Opt the workspace out of the address registry + * + *

Opts the workspace out. No request body. Response uses the same JSON shape as GET; status + * is OPTED_OUT. + * + * @throws ApiException if the Api call fails + */ + @Test + public void optOutAddressRegistryTenantTest() throws ApiException { + CompletableFuture> response = + api.optOutAddressRegistryTenant(); + } + + /** + * Register a new legal entity + * + *

Registers a new legal entity for the workspace using its LEI (Legal Entity Identifier) + * code. The LEI is validated against the GLEIF registry. Each workspace can register multiple + * legal entities. </br>Endpoint Permission: Admin, Non-Signing Admin. + * + * @throws ApiException if the Api call fails + */ + @Test + public void registerLegalEntityTest() throws ApiException { + RegisterLegalEntityRequest registerLegalEntityRequest = null; + String idempotencyKey = null; + CompletableFuture> response = + api.registerLegalEntity(registerLegalEntityRequest, idempotencyKey); + } + + /** + * Remove a single vault account from the address registry opt-out list + * + *

Removes this vault account id from the workspace opt-out list if it is present; otherwise + * the call still succeeds. Response body matches GET (`optedOut` is `false` + * after success). To clear the whole list, use `DELETE /v1/address_registry/vaults`. + * + * @throws ApiException if the Api call fails + */ + @Test + public void removeAddressRegistryVaultOptOutTest() throws ApiException { + Integer vaultAccountId = null; + CompletableFuture> response = + api.removeAddressRegistryVaultOptOut(vaultAccountId); + } + + /** + * Remove all vault-level address registry opt-outs for the workspace + * + *

Removes all vault accounts from the workspace opt-out list. + * + * @throws ApiException if the Api call fails + */ + @Test + public void removeAllAddressRegistryVaultOptOutsTest() throws ApiException { + CompletableFuture> response = + api.removeAllAddressRegistryVaultOptOuts(); + } + /** * Calling the \"Bypass Screening Policy\" API endpoint triggers a new transaction, * with the API user as the initiator, bypassing the screening policy check @@ -164,6 +419,24 @@ public void updateAmlScreeningConfigurationTest() throws ApiException { api.updateAmlScreeningConfiguration(idempotencyKey); } + /** + * Update legal entity + * + *

Updates the status of a legal entity registration. Setting isDefault to true marks the + * registration as the workspace default, which is applied to vault accounts that have no + * explicit legal entity mapping. </br>Endpoint Permission: Admin, Non-Signing Admin. + * + * @throws ApiException if the Api call fails + */ + @Test + public void updateLegalEntityTest() throws ApiException { + UpdateLegalEntityRequest updateLegalEntityRequest = null; + UUID legalEntityId = null; + String idempotencyKey = null; + CompletableFuture> response = + api.updateLegalEntity(updateLegalEntityRequest, legalEntityId, idempotencyKey); + } + /** * Tenant - Screening Configuration * diff --git a/src/test/java/com/fireblocks/sdk/api/StakingApiTest.java b/src/test/java/com/fireblocks/sdk/api/StakingApiTest.java index 37edd11e..03140e17 100644 --- a/src/test/java/com/fireblocks/sdk/api/StakingApiTest.java +++ b/src/test/java/com/fireblocks/sdk/api/StakingApiTest.java @@ -27,6 +27,7 @@ import com.fireblocks.sdk.model.SplitResponse; import com.fireblocks.sdk.model.StakeRequest; import com.fireblocks.sdk.model.StakeResponse; +import com.fireblocks.sdk.model.StakingPositionsPaginatedResponse; import com.fireblocks.sdk.model.StakingProvider; import com.fireblocks.sdk.model.UnstakeRequest; import com.fireblocks.sdk.model.WithdrawRequest; @@ -82,10 +83,11 @@ public void claimRewardsTest() throws ApiException { * *

Consolidates the source staking position into the destination, merging the balance into * the destination and closing the source position once complete. Both positions must be from - * the same validator provider and same vault account. On chain, this translates into a - * consolidation transaction, where the source validator is consolidated into the destination - * validator. Supported chains: Ethereum (ETH) only. </br>Endpoint Permission: Owner, - * Admin, Non-Signing Admin, Signer, Approver, Editor. + * the same funding vaults account (i.e. same withdrawals credentials). On chain, this + * translates into a consolidation transaction, where the source validator is consolidated into + * the destination validator. Supported chains: Ethereum (ETH) only. </br>Endpoint + * Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, Editor. **Note:** This + * endpoint is currently in beta and might be subject to changes. * * @throws ApiException if the Api call fails */ @@ -109,8 +111,9 @@ public void consolidateTest() throws ApiException { @Test public void getAllDelegationsTest() throws ApiException { ChainDescriptor chainDescriptor = null; + String vaultAccountId = null; CompletableFuture>> response = - api.getAllDelegations(chainDescriptor); + api.getAllDelegations(chainDescriptor, vaultAccountId); } /** @@ -155,6 +158,27 @@ public void getDelegationByIdTest() throws ApiException { CompletableFuture> response = api.getDelegationById(id); } + /** + * List staking positions (Paginated) + * + *

Returns staking positions with core details: amounts, rewards, status, chain, and vault. + * It supports cursor-based pagination for efficient data retrieval. This endpoint always + * returns a paginated response with {data, next} structure. </br>Endpoint Permission: + * Admin, Non-Signing Admin, Signer, Approver, Editor. + * + * @throws ApiException if the Api call fails + */ + @Test + public void getPositionsTest() throws ApiException { + Integer pageSize = null; + ChainDescriptor chainDescriptor = null; + String vaultAccountId = null; + String pageCursor = null; + String order = null; + CompletableFuture> response = + api.getPositions(pageSize, chainDescriptor, vaultAccountId, pageCursor, order); + } + /** * List staking providers * diff --git a/src/test/java/com/fireblocks/sdk/api/TrLinkApiTest.java b/src/test/java/com/fireblocks/sdk/api/TrLinkApiTest.java index c1be4e05..3658d403 100644 --- a/src/test/java/com/fireblocks/sdk/api/TrLinkApiTest.java +++ b/src/test/java/com/fireblocks/sdk/api/TrLinkApiTest.java @@ -129,7 +129,8 @@ public void createTRLinkCustomerTest() throws ApiException { * *

Creates a new TRSupport integration for a customer. This establishes a connection * placeholder between a customer and a Travel Rule partner. Use the connect endpoint to provide - * credentials after creation. + * credentials after creation. You may optionally supply `customerIntegrationId` in + * the request body when your tenant is enabled for client-provided integration ids. * * @throws ApiException if the Api call fails */ @@ -175,8 +176,10 @@ public void deleteTRLinkCustomerTest() throws ApiException { /** * Disconnect customer integration * - *

Disconnects a customer integration by removing stored credentials. The integration record - * is deleted and cannot be recovered. + *

Disconnects the integration for the authenticated workspace (tenant): removes stored + * credentials and deletes this tenant's integration record. The operation is scoped to the + * caller's tenant; it does not remove partner-side state for other workspaces that reuse + * the same logical customer integration. The record cannot be recovered after delete. * * @throws ApiException if the Api call fails */ diff --git a/src/test/java/com/fireblocks/sdk/api/TradingBetaApiTest.java b/src/test/java/com/fireblocks/sdk/api/TradingBetaApiTest.java index 28ebda67..683da867 100644 --- a/src/test/java/com/fireblocks/sdk/api/TradingBetaApiTest.java +++ b/src/test/java/com/fireblocks/sdk/api/TradingBetaApiTest.java @@ -22,6 +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 java.util.List; import java.util.concurrent.CompletableFuture; import org.junit.Ignore; @@ -131,6 +132,27 @@ public void getOrdersTest() throws ApiException { assetConversionType); } + /** + * 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). + * + * @throws ApiException if the Api call fails + */ + @Test + public void getTradingProviderByIdTest() throws ApiException { + String providerId = null; + CompletableFuture> response = + api.getTradingProviderById(providerId); + } + /** * Get providers * diff --git a/src/test/java/com/fireblocks/sdk/model/AccountBasedAccessProviderDetailsTest.java b/src/test/java/com/fireblocks/sdk/model/AccountBasedAccessProviderInfoTest.java similarity index 65% rename from src/test/java/com/fireblocks/sdk/model/AccountBasedAccessProviderDetailsTest.java rename to src/test/java/com/fireblocks/sdk/model/AccountBasedAccessProviderInfoTest.java index 85d6f532..648ed94c 100644 --- a/src/test/java/com/fireblocks/sdk/model/AccountBasedAccessProviderDetailsTest.java +++ b/src/test/java/com/fireblocks/sdk/model/AccountBasedAccessProviderInfoTest.java @@ -15,20 +15,14 @@ import org.junit.jupiter.api.Test; -/** Model tests for AccountBasedAccessProviderDetails */ -class AccountBasedAccessProviderDetailsTest { - private final AccountBasedAccessProviderDetails model = new AccountBasedAccessProviderDetails(); +/** Model tests for AccountBasedAccessProviderInfo */ +class AccountBasedAccessProviderInfoTest { + private final AccountBasedAccessProviderInfo model = new AccountBasedAccessProviderInfo(); - /** Model tests for AccountBasedAccessProviderDetails */ + /** Model tests for AccountBasedAccessProviderInfo */ @Test - void testAccountBasedAccessProviderDetails() { - // TODO: test AccountBasedAccessProviderDetails - } - - /** Test the property 'manifest' */ - @Test - void manifestTest() { - // TODO: test manifest + void testAccountBasedAccessProviderInfo() { + // TODO: test AccountBasedAccessProviderInfo } /** Test the property 'connected' */ diff --git a/src/test/java/com/fireblocks/sdk/model/AccountBasedProviderDetailsTest.java b/src/test/java/com/fireblocks/sdk/model/AccountBasedProviderDetailsTest.java new file mode 100644 index 00000000..f663ba98 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/AccountBasedProviderDetailsTest.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 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/AddressRegistryAddVaultOptOutsRequestTest.java b/src/test/java/com/fireblocks/sdk/model/AddressRegistryAddVaultOptOutsRequestTest.java new file mode 100644 index 00000000..8e90e81f --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/AddressRegistryAddVaultOptOutsRequestTest.java @@ -0,0 +1,34 @@ +/* + * 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 AddressRegistryAddVaultOptOutsRequest */ +class AddressRegistryAddVaultOptOutsRequestTest { + private final AddressRegistryAddVaultOptOutsRequest model = + new AddressRegistryAddVaultOptOutsRequest(); + + /** Model tests for AddressRegistryAddVaultOptOutsRequest */ + @Test + void testAddressRegistryAddVaultOptOutsRequest() { + // TODO: test AddressRegistryAddVaultOptOutsRequest + } + + /** Test the property 'vaultAccountIds' */ + @Test + void vaultAccountIdsTest() { + // TODO: test vaultAccountIds + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInnerTest.java b/src/test/java/com/fireblocks/sdk/model/AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInnerTest.java new file mode 100644 index 00000000..a94eaf37 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInnerTest.java @@ -0,0 +1,28 @@ +/* + * 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 AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner */ +class AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInnerTest { + private final AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner model = + new AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner(); + + /** Model tests for AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner */ + @Test + void testAddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner() { + // TODO: test AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/AddressRegistryAddVaultOptOutsResponseTest.java b/src/test/java/com/fireblocks/sdk/model/AddressRegistryAddVaultOptOutsResponseTest.java new file mode 100644 index 00000000..daac715e --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/AddressRegistryAddVaultOptOutsResponseTest.java @@ -0,0 +1,34 @@ +/* + * 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 AddressRegistryAddVaultOptOutsResponse */ +class AddressRegistryAddVaultOptOutsResponseTest { + private final AddressRegistryAddVaultOptOutsResponse model = + new AddressRegistryAddVaultOptOutsResponse(); + + /** Model tests for AddressRegistryAddVaultOptOutsResponse */ + @Test + void testAddressRegistryAddVaultOptOutsResponse() { + // TODO: test AddressRegistryAddVaultOptOutsResponse + } + + /** Test the property 'acceptedCount' */ + @Test + void acceptedCountTest() { + // TODO: test acceptedCount + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/AddressRegistryGetVaultOptOutResponseTest.java b/src/test/java/com/fireblocks/sdk/model/AddressRegistryGetVaultOptOutResponseTest.java new file mode 100644 index 00000000..03c7682b --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/AddressRegistryGetVaultOptOutResponseTest.java @@ -0,0 +1,34 @@ +/* + * 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 AddressRegistryGetVaultOptOutResponse */ +class AddressRegistryGetVaultOptOutResponseTest { + private final AddressRegistryGetVaultOptOutResponse model = + new AddressRegistryGetVaultOptOutResponse(); + + /** Model tests for AddressRegistryGetVaultOptOutResponse */ + @Test + void testAddressRegistryGetVaultOptOutResponse() { + // TODO: test AddressRegistryGetVaultOptOutResponse + } + + /** Test the property 'optedOut' */ + @Test + void optedOutTest() { + // TODO: test optedOut + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/AddressRegistryLegalEntityLegacyTest.java b/src/test/java/com/fireblocks/sdk/model/AddressRegistryLegalEntityLegacyTest.java new file mode 100644 index 00000000..e0312a3b --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/AddressRegistryLegalEntityLegacyTest.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 AddressRegistryLegalEntityLegacy */ +class AddressRegistryLegalEntityLegacyTest { + private final AddressRegistryLegalEntityLegacy model = new AddressRegistryLegalEntityLegacy(); + + /** Model tests for AddressRegistryLegalEntityLegacy */ + @Test + void testAddressRegistryLegalEntityLegacy() { + // TODO: test AddressRegistryLegalEntityLegacy + } + + /** Test the property 'companyName' */ + @Test + void companyNameTest() { + // TODO: test companyName + } + + /** Test the property 'countryCode' */ + @Test + void countryCodeTest() { + // TODO: test countryCode + } + + /** Test the property 'companyId' */ + @Test + void companyIdTest() { + // TODO: test companyId + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/AddressRegistryLegalEntityTest.java b/src/test/java/com/fireblocks/sdk/model/AddressRegistryLegalEntityTest.java index fdf8d83b..6f2d2f63 100644 --- a/src/test/java/com/fireblocks/sdk/model/AddressRegistryLegalEntityTest.java +++ b/src/test/java/com/fireblocks/sdk/model/AddressRegistryLegalEntityTest.java @@ -25,21 +25,39 @@ void testAddressRegistryLegalEntity() { // TODO: test AddressRegistryLegalEntity } - /** Test the property 'companyName' */ + /** Test the property 'verified' */ @Test - void companyNameTest() { - // TODO: test companyName + void verifiedTest() { + // TODO: test verified } - /** Test the property 'countryCode' */ + /** Test the property 'entityName' */ @Test - void countryCodeTest() { - // TODO: test countryCode + void entityNameTest() { + // TODO: test entityName } - /** Test the property 'companyId' */ + /** Test the property 'jurisdiction' */ @Test - void companyIdTest() { - // TODO: test companyId + void jurisdictionTest() { + // TODO: test jurisdiction + } + + /** Test the property 'lei' */ + @Test + void leiTest() { + // TODO: test lei + } + + /** Test the property 'travelRuleProviders' */ + @Test + void travelRuleProvidersTest() { + // TODO: test travelRuleProviders + } + + /** Test the property 'email' */ + @Test + void emailTest() { + // TODO: test email } } diff --git a/src/test/java/com/fireblocks/sdk/model/AddressRegistryListVaultOptOutsResponseTest.java b/src/test/java/com/fireblocks/sdk/model/AddressRegistryListVaultOptOutsResponseTest.java new file mode 100644 index 00000000..cbb07088 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/AddressRegistryListVaultOptOutsResponseTest.java @@ -0,0 +1,52 @@ +/* + * 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 AddressRegistryListVaultOptOutsResponse */ +class AddressRegistryListVaultOptOutsResponseTest { + private final AddressRegistryListVaultOptOutsResponse model = + new AddressRegistryListVaultOptOutsResponse(); + + /** Model tests for AddressRegistryListVaultOptOutsResponse */ + @Test + void testAddressRegistryListVaultOptOutsResponse() { + // TODO: test AddressRegistryListVaultOptOutsResponse + } + + /** Test the property 'total' */ + @Test + void totalTest() { + // TODO: test total + } + + /** 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 + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/AddressRegistryRemoveAllVaultOptOutsResponseTest.java b/src/test/java/com/fireblocks/sdk/model/AddressRegistryRemoveAllVaultOptOutsResponseTest.java new file mode 100644 index 00000000..7cbb62be --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/AddressRegistryRemoveAllVaultOptOutsResponseTest.java @@ -0,0 +1,34 @@ +/* + * 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 AddressRegistryRemoveAllVaultOptOutsResponse */ +class AddressRegistryRemoveAllVaultOptOutsResponseTest { + private final AddressRegistryRemoveAllVaultOptOutsResponse model = + new AddressRegistryRemoveAllVaultOptOutsResponse(); + + /** Model tests for AddressRegistryRemoveAllVaultOptOutsResponse */ + @Test + void testAddressRegistryRemoveAllVaultOptOutsResponse() { + // TODO: test AddressRegistryRemoveAllVaultOptOutsResponse + } + + /** Test the property 'removedCount' */ + @Test + void removedCountTest() { + // TODO: test removedCount + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/AddressRegistryRemoveVaultOptOutResponseTest.java b/src/test/java/com/fireblocks/sdk/model/AddressRegistryRemoveVaultOptOutResponseTest.java new file mode 100644 index 00000000..13dc58fa --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/AddressRegistryRemoveVaultOptOutResponseTest.java @@ -0,0 +1,34 @@ +/* + * 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 AddressRegistryRemoveVaultOptOutResponse */ +class AddressRegistryRemoveVaultOptOutResponseTest { + private final AddressRegistryRemoveVaultOptOutResponse model = + new AddressRegistryRemoveVaultOptOutResponse(); + + /** Model tests for AddressRegistryRemoveVaultOptOutResponse */ + @Test + void testAddressRegistryRemoveVaultOptOutResponse() { + // TODO: test AddressRegistryRemoveVaultOptOutResponse + } + + /** Test the property 'optedOut' */ + @Test + void optedOutTest() { + // TODO: test optedOut + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/AddressRegistryTenantRegistryResponseTest.java b/src/test/java/com/fireblocks/sdk/model/AddressRegistryTenantRegistryResponseTest.java new file mode 100644 index 00000000..67aa0204 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/AddressRegistryTenantRegistryResponseTest.java @@ -0,0 +1,34 @@ +/* + * 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 AddressRegistryTenantRegistryResponse */ +class AddressRegistryTenantRegistryResponseTest { + private final AddressRegistryTenantRegistryResponse model = + new AddressRegistryTenantRegistryResponse(); + + /** Model tests for AddressRegistryTenantRegistryResponse */ + @Test + void testAddressRegistryTenantRegistryResponse() { + // TODO: test AddressRegistryTenantRegistryResponse + } + + /** Test the property 'status' */ + @Test + void statusTest() { + // TODO: test status + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/AddressRegistryTravelRuleProviderTest.java b/src/test/java/com/fireblocks/sdk/model/AddressRegistryTravelRuleProviderTest.java new file mode 100644 index 00000000..876efb10 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/AddressRegistryTravelRuleProviderTest.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 AddressRegistryTravelRuleProvider */ +class AddressRegistryTravelRuleProviderTest { + /** Model tests for AddressRegistryTravelRuleProvider */ + @Test + void testAddressRegistryTravelRuleProvider() { + // TODO: test AddressRegistryTravelRuleProvider + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/AddressRegistryVaultListOrderTest.java b/src/test/java/com/fireblocks/sdk/model/AddressRegistryVaultListOrderTest.java new file mode 100644 index 00000000..863e8e00 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/AddressRegistryVaultListOrderTest.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 AddressRegistryVaultListOrder */ +class AddressRegistryVaultListOrderTest { + /** Model tests for AddressRegistryVaultListOrder */ + @Test + void testAddressRegistryVaultListOrder() { + // TODO: test AddressRegistryVaultListOrder + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/AddressRegistryVaultOptOutItemTest.java b/src/test/java/com/fireblocks/sdk/model/AddressRegistryVaultOptOutItemTest.java new file mode 100644 index 00000000..6f77e57e --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/AddressRegistryVaultOptOutItemTest.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 AddressRegistryVaultOptOutItem */ +class AddressRegistryVaultOptOutItemTest { + private final AddressRegistryVaultOptOutItem model = new AddressRegistryVaultOptOutItem(); + + /** Model tests for AddressRegistryVaultOptOutItem */ + @Test + void testAddressRegistryVaultOptOutItem() { + // TODO: test AddressRegistryVaultOptOutItem + } + + /** Test the property 'vaultAccountId' */ + @Test + void vaultAccountIdTest() { + // TODO: test vaultAccountId + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/AssignVaultsToLegalEntityRequestTest.java b/src/test/java/com/fireblocks/sdk/model/AssignVaultsToLegalEntityRequestTest.java new file mode 100644 index 00000000..145c4d35 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/AssignVaultsToLegalEntityRequestTest.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 AssignVaultsToLegalEntityRequest */ +class AssignVaultsToLegalEntityRequestTest { + private final AssignVaultsToLegalEntityRequest model = new AssignVaultsToLegalEntityRequest(); + + /** Model tests for AssignVaultsToLegalEntityRequest */ + @Test + void testAssignVaultsToLegalEntityRequest() { + // TODO: test AssignVaultsToLegalEntityRequest + } + + /** Test the property 'vaultAccountIds' */ + @Test + void vaultAccountIdsTest() { + // TODO: test vaultAccountIds + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/AssignVaultsToLegalEntityResponseTest.java b/src/test/java/com/fireblocks/sdk/model/AssignVaultsToLegalEntityResponseTest.java new file mode 100644 index 00000000..3ccff948 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/AssignVaultsToLegalEntityResponseTest.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 AssignVaultsToLegalEntityResponse */ +class AssignVaultsToLegalEntityResponseTest { + private final AssignVaultsToLegalEntityResponse model = new AssignVaultsToLegalEntityResponse(); + + /** Model tests for AssignVaultsToLegalEntityResponse */ + @Test + void testAssignVaultsToLegalEntityResponse() { + // TODO: test AssignVaultsToLegalEntityResponse + } + + /** Test the property 'assignedCount' */ + @Test + void assignedCountTest() { + // TODO: test assignedCount + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/BaseProviderTest.java b/src/test/java/com/fireblocks/sdk/model/BaseProviderTest.java index 23ff8c9d..670c77c8 100644 --- a/src/test/java/com/fireblocks/sdk/model/BaseProviderTest.java +++ b/src/test/java/com/fireblocks/sdk/model/BaseProviderTest.java @@ -48,4 +48,10 @@ void logoTest() { void accountBasedTest() { // TODO: test accountBased } + + /** Test the property 'manifest' */ + @Test + void manifestTest() { + // TODO: test manifest + } } diff --git a/src/test/java/com/fireblocks/sdk/model/ComplianceScreeningResultFullPayloadTest.java b/src/test/java/com/fireblocks/sdk/model/ComplianceScreeningResultFullPayloadTest.java index e074b5bb..ab0f9796 100644 --- a/src/test/java/com/fireblocks/sdk/model/ComplianceScreeningResultFullPayloadTest.java +++ b/src/test/java/com/fireblocks/sdk/model/ComplianceScreeningResultFullPayloadTest.java @@ -205,4 +205,10 @@ void customerShortNameTest() { void travelRuleMessageIdTest() { // TODO: test travelRuleMessageId } + + /** Test the property 'providerResponse' */ + @Test + void providerResponseTest() { + // TODO: test providerResponse + } } diff --git a/src/test/java/com/fireblocks/sdk/model/ComplianceScreeningResultTest.java b/src/test/java/com/fireblocks/sdk/model/ComplianceScreeningResultTest.java index 94a2f771..2ff210a3 100644 --- a/src/test/java/com/fireblocks/sdk/model/ComplianceScreeningResultTest.java +++ b/src/test/java/com/fireblocks/sdk/model/ComplianceScreeningResultTest.java @@ -204,4 +204,10 @@ void customerShortNameTest() { void travelRuleMessageIdTest() { // TODO: test travelRuleMessageId } + + /** Test the property 'providerResponse' */ + @Test + void providerResponseTest() { + // TODO: test providerResponse + } } diff --git a/src/test/java/com/fireblocks/sdk/model/CreateMultipleAccountsRequestTest.java b/src/test/java/com/fireblocks/sdk/model/CreateMultipleAccountsRequestTest.java index 48601446..f29f7014 100644 --- a/src/test/java/com/fireblocks/sdk/model/CreateMultipleAccountsRequestTest.java +++ b/src/test/java/com/fireblocks/sdk/model/CreateMultipleAccountsRequestTest.java @@ -54,4 +54,10 @@ void vaultAccountNamesStartingIndexTest() { void prefixTest() { // TODO: test prefix } + + /** Test the property 'tagIds' */ + @Test + void tagIdsTest() { + // TODO: test tagIds + } } diff --git a/src/test/java/com/fireblocks/sdk/model/DirectAccessProviderDetailsTest.java b/src/test/java/com/fireblocks/sdk/model/DirectAccessProviderInfoTest.java similarity index 71% rename from src/test/java/com/fireblocks/sdk/model/DirectAccessProviderDetailsTest.java rename to src/test/java/com/fireblocks/sdk/model/DirectAccessProviderInfoTest.java index 13a140ea..cf1356f6 100644 --- a/src/test/java/com/fireblocks/sdk/model/DirectAccessProviderDetailsTest.java +++ b/src/test/java/com/fireblocks/sdk/model/DirectAccessProviderInfoTest.java @@ -15,14 +15,14 @@ import org.junit.jupiter.api.Test; -/** Model tests for DirectAccessProviderDetails */ -class DirectAccessProviderDetailsTest { - private final DirectAccessProviderDetails model = new DirectAccessProviderDetails(); +/** Model tests for DirectAccessProviderInfo */ +class DirectAccessProviderInfoTest { + private final DirectAccessProviderInfo model = new DirectAccessProviderInfo(); - /** Model tests for DirectAccessProviderDetails */ + /** Model tests for DirectAccessProviderInfo */ @Test - void testDirectAccessProviderDetails() { - // TODO: test DirectAccessProviderDetails + void testDirectAccessProviderInfo() { + // TODO: test DirectAccessProviderInfo } /** Test the property 'approved' */ @@ -42,4 +42,10 @@ void hasTermsOfServiceTest() { 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/DirectAccessProviderTest.java b/src/test/java/com/fireblocks/sdk/model/DirectAccessProviderTest.java index 02cc49cc..200960dc 100644 --- a/src/test/java/com/fireblocks/sdk/model/DirectAccessProviderTest.java +++ b/src/test/java/com/fireblocks/sdk/model/DirectAccessProviderTest.java @@ -49,6 +49,12 @@ void accountBasedTest() { // TODO: test accountBased } + /** Test the property 'manifest' */ + @Test + void manifestTest() { + // TODO: test manifest + } + /** Test the property 'approved' */ @Test void approvedTest() { @@ -66,4 +72,10 @@ void hasTermsOfServiceTest() { 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/DirectProviderDetailsTest.java b/src/test/java/com/fireblocks/sdk/model/DirectProviderDetailsTest.java new file mode 100644 index 00000000..2bfd8c90 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/DirectProviderDetailsTest.java @@ -0,0 +1,81 @@ +/* + * 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/ExecutionRequestDetailsTypeTest.java b/src/test/java/com/fireblocks/sdk/model/ExecutionRequestDetailsTypeTest.java new file mode 100644 index 00000000..9b049e4d --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/ExecutionRequestDetailsTypeTest.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 ExecutionRequestDetailsType */ +class ExecutionRequestDetailsTypeTest { + /** Model tests for ExecutionRequestDetailsType */ + @Test + void testExecutionRequestDetailsType() { + // TODO: test ExecutionRequestDetailsType + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/GleifDataTest.java b/src/test/java/com/fireblocks/sdk/model/GleifDataTest.java new file mode 100644 index 00000000..0163ecf3 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/GleifDataTest.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 GleifData */ +class GleifDataTest { + private final GleifData model = new GleifData(); + + /** Model tests for GleifData */ + @Test + void testGleifData() { + // TODO: test GleifData + } + + /** Test the property 'lei' */ + @Test + void leiTest() { + // TODO: test lei + } + + /** Test the property 'legalName' */ + @Test + void legalNameTest() { + // TODO: test legalName + } + + /** Test the property 'otherNames' */ + @Test + void otherNamesTest() { + // TODO: test otherNames + } + + /** Test the property 'legalAddressRegion' */ + @Test + void legalAddressRegionTest() { + // TODO: test legalAddressRegion + } + + /** Test the property 'legalAddressCountry' */ + @Test + void legalAddressCountryTest() { + // TODO: test legalAddressCountry + } + + /** Test the property 'nextRenewalDate' */ + @Test + void nextRenewalDateTest() { + // TODO: test nextRenewalDate + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/InteracAddressTest.java b/src/test/java/com/fireblocks/sdk/model/InteracAddressTest.java index 8bc0b361..a77b7839 100644 --- a/src/test/java/com/fireblocks/sdk/model/InteracAddressTest.java +++ b/src/test/java/com/fireblocks/sdk/model/InteracAddressTest.java @@ -42,4 +42,22 @@ void recipientHandleTest() { void messageTest() { // TODO: test message } + + /** Test the property 'autoDeposit' */ + @Test + void autoDepositTest() { + // TODO: test autoDeposit + } + + /** Test the property 'securityQuestion' */ + @Test + void securityQuestionTest() { + // TODO: test securityQuestion + } + + /** Test the property 'securityAnswer' */ + @Test + void securityAnswerTest() { + // TODO: test securityAnswer + } } diff --git a/src/test/java/com/fireblocks/sdk/model/JobCreatedTest.java b/src/test/java/com/fireblocks/sdk/model/JobCreatedTest.java index be156ece..3932670b 100644 --- a/src/test/java/com/fireblocks/sdk/model/JobCreatedTest.java +++ b/src/test/java/com/fireblocks/sdk/model/JobCreatedTest.java @@ -30,4 +30,10 @@ void testJobCreated() { void jobIdTest() { // TODO: test jobId } + + /** Test the property 'approvalRequestId' */ + @Test + void approvalRequestIdTest() { + // TODO: test approvalRequestId + } } diff --git a/src/test/java/com/fireblocks/sdk/model/LegalEntityRegistrationTest.java b/src/test/java/com/fireblocks/sdk/model/LegalEntityRegistrationTest.java new file mode 100644 index 00000000..62a4391a --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/LegalEntityRegistrationTest.java @@ -0,0 +1,81 @@ +/* + * 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 LegalEntityRegistration */ +class LegalEntityRegistrationTest { + private final LegalEntityRegistration model = new LegalEntityRegistration(); + + /** Model tests for LegalEntityRegistration */ + @Test + void testLegalEntityRegistration() { + // TODO: test LegalEntityRegistration + } + + /** Test the property 'id' */ + @Test + void idTest() { + // TODO: test id + } + + /** Test the property 'lei' */ + @Test + void leiTest() { + // TODO: test lei + } + + /** Test the property 'status' */ + @Test + void statusTest() { + // TODO: test status + } + + /** Test the property 'isDefault' */ + @Test + void isDefaultTest() { + // TODO: test isDefault + } + + /** Test the property 'travelRuleProviders' */ + @Test + void travelRuleProvidersTest() { + // TODO: test travelRuleProviders + } + + /** Test the property 'travelRuleContactEmail' */ + @Test + void travelRuleContactEmailTest() { + // TODO: test travelRuleContactEmail + } + + /** Test the property 'gleifData' */ + @Test + void gleifDataTest() { + // TODO: test gleifData + } + + /** Test the property 'createdAt' */ + @Test + void createdAtTest() { + // TODO: test createdAt + } + + /** Test the property 'updatedAt' */ + @Test + void updatedAtTest() { + // TODO: test updatedAt + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/CapabilityTest.java b/src/test/java/com/fireblocks/sdk/model/LeiStatusTest.java similarity index 81% rename from src/test/java/com/fireblocks/sdk/model/CapabilityTest.java rename to src/test/java/com/fireblocks/sdk/model/LeiStatusTest.java index 967accd6..89ae41c6 100644 --- a/src/test/java/com/fireblocks/sdk/model/CapabilityTest.java +++ b/src/test/java/com/fireblocks/sdk/model/LeiStatusTest.java @@ -15,11 +15,11 @@ import org.junit.jupiter.api.Test; -/** Model tests for Capability */ -class CapabilityTest { - /** Model tests for Capability */ +/** Model tests for LeiStatus */ +class LeiStatusTest { + /** Model tests for LeiStatus */ @Test - void testCapability() { - // TODO: test Capability + void testLeiStatus() { + // TODO: test LeiStatus } } diff --git a/src/test/java/com/fireblocks/sdk/model/ListLegalEntitiesResponseTest.java b/src/test/java/com/fireblocks/sdk/model/ListLegalEntitiesResponseTest.java new file mode 100644 index 00000000..3c9d7802 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/ListLegalEntitiesResponseTest.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 ListLegalEntitiesResponse */ +class ListLegalEntitiesResponseTest { + private final ListLegalEntitiesResponse model = new ListLegalEntitiesResponse(); + + /** Model tests for ListLegalEntitiesResponse */ + @Test + void testListLegalEntitiesResponse() { + // TODO: test ListLegalEntitiesResponse + } + + /** Test the property 'total' */ + @Test + void totalTest() { + // TODO: test total + } + + /** 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 + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/ListVaultsForRegistrationResponseTest.java b/src/test/java/com/fireblocks/sdk/model/ListVaultsForRegistrationResponseTest.java new file mode 100644 index 00000000..17aed368 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/ListVaultsForRegistrationResponseTest.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 ListVaultsForRegistrationResponse */ +class ListVaultsForRegistrationResponseTest { + private final ListVaultsForRegistrationResponse model = new ListVaultsForRegistrationResponse(); + + /** Model tests for ListVaultsForRegistrationResponse */ + @Test + void testListVaultsForRegistrationResponse() { + // TODO: test ListVaultsForRegistrationResponse + } + + /** Test the property 'total' */ + @Test + void totalTest() { + // TODO: test total + } + + /** 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 + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/ManifestBaseTest.java b/src/test/java/com/fireblocks/sdk/model/ManifestBaseTest.java new file mode 100644 index 00000000..d201e0d3 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/ManifestBaseTest.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 ManifestBase */ +class ManifestBaseTest { + private final ManifestBase model = new ManifestBase(); + + /** Model tests for ManifestBase */ + @Test + void testManifestBase() { + // TODO: test ManifestBase + } + + /** Test the property 'supported' */ + @Test + void supportedTest() { + // TODO: test supported + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/ManifestOrderInfoTest.java b/src/test/java/com/fireblocks/sdk/model/ManifestOrderInfoTest.java new file mode 100644 index 00000000..138fa348 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/ManifestOrderInfoTest.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 ManifestOrderInfo */ +class ManifestOrderInfoTest { + private final ManifestOrderInfo model = new ManifestOrderInfo(); + + /** Model tests for ManifestOrderInfo */ + @Test + void testManifestOrderInfo() { + // TODO: test ManifestOrderInfo + } + + /** Test the property 'settlementTypes' */ + @Test + void settlementTypesTest() { + // TODO: test settlementTypes + } + + /** Test the property 'executionTypes' */ + @Test + void executionTypesTest() { + // TODO: test executionTypes + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/ManifestOrderTest.java b/src/test/java/com/fireblocks/sdk/model/ManifestOrderTest.java new file mode 100644 index 00000000..ffe0e55d --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/ManifestOrderTest.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 ManifestOrder */ +class ManifestOrderTest { + private final ManifestOrder model = new ManifestOrder(); + + /** Model tests for ManifestOrder */ + @Test + void testManifestOrder() { + // TODO: test ManifestOrder + } + + /** Test the property 'supported' */ + @Test + void supportedTest() { + // TODO: test supported + } + + /** Test the property 'settlementTypes' */ + @Test + void settlementTypesTest() { + // TODO: test settlementTypes + } + + /** Test the property 'executionTypes' */ + @Test + void executionTypesTest() { + // TODO: test executionTypes + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/ManifestQuoteInfoTest.java b/src/test/java/com/fireblocks/sdk/model/ManifestQuoteInfoTest.java new file mode 100644 index 00000000..f844a87c --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/ManifestQuoteInfoTest.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 ManifestQuoteInfo */ +class ManifestQuoteInfoTest { + private final ManifestQuoteInfo model = new ManifestQuoteInfo(); + + /** Model tests for ManifestQuoteInfo */ + @Test + void testManifestQuoteInfo() { + // TODO: test ManifestQuoteInfo + } + + /** Test the property 'settlementTypes' */ + @Test + void settlementTypesTest() { + // TODO: test settlementTypes + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/ManifestQuoteTest.java b/src/test/java/com/fireblocks/sdk/model/ManifestQuoteTest.java new file mode 100644 index 00000000..2eb82a6e --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/ManifestQuoteTest.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 ManifestQuote */ +class ManifestQuoteTest { + private final ManifestQuote model = new ManifestQuote(); + + /** Model tests for ManifestQuote */ + @Test + void testManifestQuote() { + // TODO: test ManifestQuote + } + + /** Test the property 'supported' */ + @Test + void supportedTest() { + // TODO: test supported + } + + /** Test the property 'settlementTypes' */ + @Test + void settlementTypesTest() { + // TODO: test settlementTypes + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/ManifestTest.java b/src/test/java/com/fireblocks/sdk/model/ManifestTest.java index 2c25b387..8286a7bc 100644 --- a/src/test/java/com/fireblocks/sdk/model/ManifestTest.java +++ b/src/test/java/com/fireblocks/sdk/model/ManifestTest.java @@ -25,15 +25,21 @@ void testManifest() { // TODO: test Manifest } - /** Test the property 'assetTypes' */ + /** Test the property 'order' */ @Test - void assetTypesTest() { - // TODO: test assetTypes + void orderTest() { + // TODO: test order } - /** Test the property 'capabilities' */ + /** Test the property 'quote' */ @Test - void capabilitiesTest() { - // TODO: test capabilities + void quoteTest() { + // TODO: test quote + } + + /** Test the property 'rate' */ + @Test + void rateTest() { + // TODO: test rate } } diff --git a/src/test/java/com/fireblocks/sdk/model/PositionTest.java b/src/test/java/com/fireblocks/sdk/model/PositionTest.java new file mode 100644 index 00000000..e1dab824 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/PositionTest.java @@ -0,0 +1,123 @@ +/* + * 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 Position */ +class PositionTest { + private final Position model = new Position(); + + /** Model tests for Position */ + @Test + void testPosition() { + // TODO: test Position + } + + /** Test the property 'id' */ + @Test + void idTest() { + // TODO: test id + } + + /** Test the property 'vaultAccountId' */ + @Test + void vaultAccountIdTest() { + // TODO: test vaultAccountId + } + + /** Test the property 'validatorName' */ + @Test + void validatorNameTest() { + // TODO: test validatorName + } + + /** Test the property 'providerName' */ + @Test + void providerNameTest() { + // TODO: test providerName + } + + /** Test the property 'chainDescriptor' */ + @Test + void chainDescriptorTest() { + // TODO: test chainDescriptor + } + + /** Test the property 'amount' */ + @Test + void amountTest() { + // TODO: test amount + } + + /** Test the property 'rewardsAmount' */ + @Test + void rewardsAmountTest() { + // TODO: test rewardsAmount + } + + /** Test the property 'dateCreated' */ + @Test + void dateCreatedTest() { + // TODO: test dateCreated + } + + /** Test the property 'dateUpdated' */ + @Test + void dateUpdatedTest() { + // TODO: test dateUpdated + } + + /** Test the property 'status' */ + @Test + void statusTest() { + // TODO: test status + } + + /** Test the property 'validatorAddress' */ + @Test + void validatorAddressTest() { + // TODO: test validatorAddress + } + + /** Test the property 'providerId' */ + @Test + void providerIdTest() { + // TODO: test providerId + } + + /** Test the property 'availableActions' */ + @Test + void availableActionsTest() { + // TODO: test availableActions + } + + /** Test the property 'inProgress' */ + @Test + void inProgressTest() { + // TODO: test inProgress + } + + /** Test the property 'inProgressTxId' */ + @Test + void inProgressTxIdTest() { + // TODO: test inProgressTxId + } + + /** Test the property 'blockchainPositionInfo' */ + @Test + void blockchainPositionInfoTest() { + // TODO: test blockchainPositionInfo + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/RegisterLegalEntityRequestTest.java b/src/test/java/com/fireblocks/sdk/model/RegisterLegalEntityRequestTest.java new file mode 100644 index 00000000..d675416d --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/RegisterLegalEntityRequestTest.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 RegisterLegalEntityRequest */ +class RegisterLegalEntityRequestTest { + private final RegisterLegalEntityRequest model = new RegisterLegalEntityRequest(); + + /** Model tests for RegisterLegalEntityRequest */ + @Test + void testRegisterLegalEntityRequest() { + // TODO: test RegisterLegalEntityRequest + } + + /** Test the property 'lei' */ + @Test + void leiTest() { + // TODO: test lei + } + + /** Test the property 'travelRuleProviders' */ + @Test + void travelRuleProvidersTest() { + // TODO: test travelRuleProviders + } + + /** Test the property 'travelRuleContactEmail' */ + @Test + void travelRuleContactEmailTest() { + // TODO: test travelRuleContactEmail + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/AssetTypeEnumTest.java b/src/test/java/com/fireblocks/sdk/model/SettlementTypeEnumTest.java similarity index 78% rename from src/test/java/com/fireblocks/sdk/model/AssetTypeEnumTest.java rename to src/test/java/com/fireblocks/sdk/model/SettlementTypeEnumTest.java index e0485746..64d8e7bc 100644 --- a/src/test/java/com/fireblocks/sdk/model/AssetTypeEnumTest.java +++ b/src/test/java/com/fireblocks/sdk/model/SettlementTypeEnumTest.java @@ -15,11 +15,11 @@ import org.junit.jupiter.api.Test; -/** Model tests for AssetTypeEnum */ -class AssetTypeEnumTest { - /** Model tests for AssetTypeEnum */ +/** Model tests for SettlementTypeEnum */ +class SettlementTypeEnumTest { + /** Model tests for SettlementTypeEnum */ @Test - void testAssetTypeEnum() { - // TODO: test AssetTypeEnum + void testSettlementTypeEnum() { + // TODO: test SettlementTypeEnum } } diff --git a/src/test/java/com/fireblocks/sdk/model/StakingPositionsPaginatedResponseTest.java b/src/test/java/com/fireblocks/sdk/model/StakingPositionsPaginatedResponseTest.java new file mode 100644 index 00000000..ed1057f8 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/StakingPositionsPaginatedResponseTest.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 StakingPositionsPaginatedResponse */ +class StakingPositionsPaginatedResponseTest { + private final StakingPositionsPaginatedResponse model = new StakingPositionsPaginatedResponse(); + + /** Model tests for StakingPositionsPaginatedResponse */ + @Test + void testStakingPositionsPaginatedResponse() { + // TODO: test StakingPositionsPaginatedResponse + } + + /** 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/TRLinkCreateIntegrationRequestTest.java b/src/test/java/com/fireblocks/sdk/model/TRLinkCreateIntegrationRequestTest.java index 4b4c0909..c1fe2165 100644 --- a/src/test/java/com/fireblocks/sdk/model/TRLinkCreateIntegrationRequestTest.java +++ b/src/test/java/com/fireblocks/sdk/model/TRLinkCreateIntegrationRequestTest.java @@ -36,4 +36,10 @@ void customerIdTest() { void partnerIdentTest() { // TODO: test partnerIdent } + + /** Test the property 'customerIntegrationId' */ + @Test + void customerIntegrationIdTest() { + // TODO: test customerIntegrationId + } } diff --git a/src/test/java/com/fireblocks/sdk/model/TradingProviderDetailsTest.java b/src/test/java/com/fireblocks/sdk/model/TradingProviderDetailsTest.java new file mode 100644 index 00000000..a6aa66ec --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/TradingProviderDetailsTest.java @@ -0,0 +1,93 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import org.junit.jupiter.api.Test; + +/** Model tests for 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/TradingProviderTest.java b/src/test/java/com/fireblocks/sdk/model/TradingProviderTest.java index 4a950f96..354a5577 100644 --- a/src/test/java/com/fireblocks/sdk/model/TradingProviderTest.java +++ b/src/test/java/com/fireblocks/sdk/model/TradingProviderTest.java @@ -84,4 +84,10 @@ void hasTermsOfServiceTest() { 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/TravelRuleOwnershipProofTest.java b/src/test/java/com/fireblocks/sdk/model/TravelRuleOwnershipProofTest.java index 21c1d7a5..8794a489 100644 --- a/src/test/java/com/fireblocks/sdk/model/TravelRuleOwnershipProofTest.java +++ b/src/test/java/com/fireblocks/sdk/model/TravelRuleOwnershipProofTest.java @@ -61,6 +61,18 @@ void urlTest() { // TODO: test url } + /** Test the property 'did' */ + @Test + void didTest() { + // TODO: test did + } + + /** Test the property 'status' */ + @Test + void statusTest() { + // TODO: test status + } + /** Test the property 'confirmed' */ @Test void confirmedTest() { diff --git a/src/test/java/com/fireblocks/sdk/model/ScreeningRiskLevelEnumTest.java b/src/test/java/com/fireblocks/sdk/model/TravelRuleProviderTest.java similarity index 76% rename from src/test/java/com/fireblocks/sdk/model/ScreeningRiskLevelEnumTest.java rename to src/test/java/com/fireblocks/sdk/model/TravelRuleProviderTest.java index adcb76a5..9811aff5 100644 --- a/src/test/java/com/fireblocks/sdk/model/ScreeningRiskLevelEnumTest.java +++ b/src/test/java/com/fireblocks/sdk/model/TravelRuleProviderTest.java @@ -15,11 +15,11 @@ import org.junit.jupiter.api.Test; -/** Model tests for ScreeningRiskLevelEnum */ -class ScreeningRiskLevelEnumTest { - /** Model tests for ScreeningRiskLevelEnum */ +/** Model tests for TravelRuleProvider */ +class TravelRuleProviderTest { + /** Model tests for TravelRuleProvider */ @Test - void testScreeningRiskLevelEnum() { - // TODO: test ScreeningRiskLevelEnum + void testTravelRuleProvider() { + // TODO: test TravelRuleProvider } } diff --git a/src/test/java/com/fireblocks/sdk/model/UpdateLegalEntityRequestTest.java b/src/test/java/com/fireblocks/sdk/model/UpdateLegalEntityRequestTest.java new file mode 100644 index 00000000..e3c3bd3d --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/UpdateLegalEntityRequestTest.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 UpdateLegalEntityRequest */ +class UpdateLegalEntityRequestTest { + private final UpdateLegalEntityRequest model = new UpdateLegalEntityRequest(); + + /** Model tests for UpdateLegalEntityRequest */ + @Test + void testUpdateLegalEntityRequest() { + // TODO: test UpdateLegalEntityRequest + } + + /** Test the property 'isDefault' */ + @Test + void isDefaultTest() { + // TODO: test isDefault + } +}