From 0ef480b0ff6ebbbb74ad4497a35092fea8604f07 Mon Sep 17 00:00:00 2001 From: fireblocks_dx_team Date: Sun, 17 May 2026 13:10:12 +0000 Subject: [PATCH] Generated SDK #7742 --- .openapi-generator/FILES | 93 +- CHANGELOG.md | 239 --- README.md | 51 +- api/openapi.yaml | 1549 ++++++++++++++--- build.gradle | 2 +- docs/AddressReverseLookupResponse.md | 25 + docs/ArsConfigResponse.md | 15 + docs/CommittedQuoteEnum.md | 11 - docs/ComplianceApi.md | 176 +- docs/CreateOffersRequest.md | 20 + docs/CreateOrderRequest.md | 1 + docs/GenieBetaApi.md | 180 ++ docs/GenieChatMessage.md | 17 + docs/GenieCreateSessionResponse.md | 15 + ...uoteType.md => GenieSendMessageRequest.md} | 4 +- docs/IndicativeQuoteEnum.md | 11 - docs/IndicativeQuoteType.md | 13 - docs/Offer.md | 37 + docs/OffersResponse.md | 14 + docs/Quote.md | 37 +- docs/QuoteExecutionRequestDetails.md | 2 +- docs/QuoteExecutionTypeDetails.md | 2 +- ...eTypeEnum.md => QuoteExecutionTypeEnum.md} | 2 +- ...QuoteExecutionWithRequoteRequestDetails.md | 2 +- ...uoteExecutionWithRequoteResponseDetails.md | 2 +- docs/QuoteOffer.md | 47 + docs/QuoteOfferType.md | 21 + docs/QuotePropertiesDetails.md | 25 - docs/QuotesResponse.md | 2 +- docs/Rate.md | 18 + docs/RateOffer.md | 27 + docs/RateOfferType.md | 21 + docs/RatesRequest.md | 15 + docs/RatesResponse.md | 14 + docs/ReasonForPaymentEnum.md | 69 + docs/{QuoteFailure.md => ScopeItemFailure.md} | 6 +- docs/SourceOfFunds.md | 14 + docs/TRLinkCreateCustomerRequest.md | 4 +- docs/TRLinkCustomerResponse.md | 5 +- docs/TRLinkUpdateCustomerRequest.md | 6 +- docs/TradingBetaApi.md | 182 ++ ...se.md => UsdcGatewayWalletInfoResponse.md} | 8 +- ....md => UsdcGatewayWalletStatusResponse.md} | 6 +- docs/UtxoManagementBetaApi.md | 8 +- docs/UtxoSelectionFilters.md | 2 - docs/UtxoSelectionParams.md | 10 + docs/VaultsApi.md | 295 ++-- pom.xml | 2 +- .../com/fireblocks/sdk/Configuration.java | 2 +- .../java/com/fireblocks/sdk/Fireblocks.java | 8 + .../com/fireblocks/sdk/api/ComplianceApi.java | 150 +- .../com/fireblocks/sdk/api/GenieBetaApi.java | 243 +++ .../fireblocks/sdk/api/TradingBetaApi.java | 177 ++ .../sdk/api/UtxoManagementBetaApi.java | 18 +- .../com/fireblocks/sdk/api/VaultsApi.java | 283 +-- .../model/AddressReverseLookupResponse.java | 325 ++++ .../sdk/model/ArsConfigResponse.java | 183 ++ .../sdk/model/CommittedQuoteEnum.java | 62 - .../sdk/model/CreateOffersRequest.java | 434 +++++ .../sdk/model/CreateOrderRequest.java | 36 + .../sdk/model/GenieChatMessage.java | 309 ++++ .../sdk/model/GenieCreateSessionResponse.java | 225 +++ ...Type.java => GenieSendMessageRequest.java} | 58 +- .../sdk/model/IndicativeQuoteEnum.java | 62 - .../java/com/fireblocks/sdk/model/Offer.java | 322 ++++ .../fireblocks/sdk/model/OffersResponse.java | 230 +++ .../java/com/fireblocks/sdk/model/Quote.java | 216 ++- .../model/QuoteExecutionRequestDetails.java | 11 +- .../sdk/model/QuoteExecutionTypeDetails.java | 10 +- ...eEnum.java => QuoteExecutionTypeEnum.java} | 8 +- ...oteExecutionWithRequoteRequestDetails.java | 10 +- ...teExecutionWithRequoteResponseDetails.java | 10 +- ...PropertiesDetails.java => QuoteOffer.java} | 398 ++++- .../fireblocks/sdk/model/QuoteOfferType.java | 179 ++ .../fireblocks/sdk/model/QuotesResponse.java | 12 +- .../java/com/fireblocks/sdk/model/Rate.java | 347 ++++ .../com/fireblocks/sdk/model/RateOffer.java | 422 +++++ .../fireblocks/sdk/model/RateOfferType.java | 179 ++ .../fireblocks/sdk/model/RatesRequest.java | 254 +++ .../fireblocks/sdk/model/RatesResponse.java | 230 +++ .../sdk/model/ReasonForPaymentEnum.java | 124 ++ ...uoteFailure.java => ScopeItemFailure.java} | 36 +- ...ittedQuoteType.java => SourceOfFunds.java} | 70 +- .../model/TRLinkCreateCustomerRequest.java | 16 +- .../sdk/model/TRLinkCustomerResponse.java | 66 +- .../model/TRLinkUpdateCustomerRequest.java | 37 +- ...ava => UsdcGatewayWalletInfoResponse.java} | 56 +- ...a => UsdcGatewayWalletStatusResponse.java} | 34 +- .../sdk/model/UtxoSelectionFilters.java | 86 +- .../sdk/model/UtxoSelectionParams.java | 83 +- .../com/fireblocks/sdk/FireblocksTest.java | 8 + .../fireblocks/sdk/api/ComplianceApiTest.java | 40 +- .../fireblocks/sdk/api/GenieBetaApiTest.java | 65 + .../sdk/api/TradingBetaApiTest.java | 50 + .../sdk/api/UtxoManagementBetaApiTest.java | 6 +- .../com/fireblocks/sdk/api/VaultsApiTest.java | 73 +- .../AddressReverseLookupResponseTest.java | 51 + .../sdk/model/ArsConfigResponseTest.java | 39 + .../sdk/model/CreateOffersRequestTest.java | 75 + .../sdk/model/CreateOrderRequestTest.java | 6 + .../sdk/model/GenieChatMessageTest.java | 57 + .../model/GenieCreateSessionResponseTest.java | 45 + .../model/GenieSendMessageRequestTest.java | 33 + .../com/fireblocks/sdk/model/OfferTest.java | 141 ++ .../sdk/model/OffersResponseTest.java | 39 + ...t.java => QuoteExecutionTypeEnumTest.java} | 10 +- ...esDetailsTest.java => QuoteOfferTest.java} | 42 +- ...eTypeTest.java => QuoteOfferTypeTest.java} | 18 +- .../com/fireblocks/sdk/model/QuoteTest.java | 18 + .../fireblocks/sdk/model/RateOfferTest.java | 69 + ...teEnumTest.java => RateOfferTypeTest.java} | 18 +- .../com/fireblocks/sdk/model/RateTest.java | 63 + .../sdk/model/RatesRequestTest.java | 45 + .../sdk/model/RatesResponseTest.java | 39 + ...est.java => ReasonForPaymentEnumTest.java} | 10 +- ...ureTest.java => ScopeItemFailureTest.java} | 12 +- ...teTypeTest.java => SourceOfFundsTest.java} | 18 +- .../sdk/model/TRLinkCustomerResponseTest.java | 6 - ...=> UsdcGatewayWalletInfoResponseTest.java} | 12 +- ... UsdcGatewayWalletStatusResponseTest.java} | 12 +- .../sdk/model/UtxoSelectionFiltersTest.java | 12 - .../sdk/model/UtxoSelectionParamsTest.java | 6 + 122 files changed, 8957 insertions(+), 1529 deletions(-) delete mode 100644 CHANGELOG.md create mode 100644 docs/AddressReverseLookupResponse.md create mode 100644 docs/ArsConfigResponse.md delete mode 100644 docs/CommittedQuoteEnum.md create mode 100644 docs/CreateOffersRequest.md create mode 100644 docs/GenieBetaApi.md create mode 100644 docs/GenieChatMessage.md create mode 100644 docs/GenieCreateSessionResponse.md rename docs/{CommittedQuoteType.md => GenieSendMessageRequest.md} (50%) delete mode 100644 docs/IndicativeQuoteEnum.md delete mode 100644 docs/IndicativeQuoteType.md create mode 100644 docs/Offer.md create mode 100644 docs/OffersResponse.md rename docs/{QuoteTypeEnum.md => QuoteExecutionTypeEnum.md} (64%) create mode 100644 docs/QuoteOffer.md create mode 100644 docs/QuoteOfferType.md delete mode 100644 docs/QuotePropertiesDetails.md create mode 100644 docs/Rate.md create mode 100644 docs/RateOffer.md create mode 100644 docs/RateOfferType.md create mode 100644 docs/RatesRequest.md create mode 100644 docs/RatesResponse.md create mode 100644 docs/ReasonForPaymentEnum.md rename docs/{QuoteFailure.md => ScopeItemFailure.md} (75%) create mode 100644 docs/SourceOfFunds.md rename docs/{CircleGatewayWalletInfoResponse.md => UsdcGatewayWalletInfoResponse.md} (70%) rename docs/{CircleGatewayWalletStatusResponse.md => UsdcGatewayWalletStatusResponse.md} (68%) create mode 100644 src/main/java/com/fireblocks/sdk/api/GenieBetaApi.java create mode 100644 src/main/java/com/fireblocks/sdk/model/AddressReverseLookupResponse.java create mode 100644 src/main/java/com/fireblocks/sdk/model/ArsConfigResponse.java delete mode 100644 src/main/java/com/fireblocks/sdk/model/CommittedQuoteEnum.java create mode 100644 src/main/java/com/fireblocks/sdk/model/CreateOffersRequest.java create mode 100644 src/main/java/com/fireblocks/sdk/model/GenieChatMessage.java create mode 100644 src/main/java/com/fireblocks/sdk/model/GenieCreateSessionResponse.java rename src/main/java/com/fireblocks/sdk/model/{IndicativeQuoteType.java => GenieSendMessageRequest.java} (68%) delete mode 100644 src/main/java/com/fireblocks/sdk/model/IndicativeQuoteEnum.java create mode 100644 src/main/java/com/fireblocks/sdk/model/Offer.java create mode 100644 src/main/java/com/fireblocks/sdk/model/OffersResponse.java rename src/main/java/com/fireblocks/sdk/model/{QuoteTypeEnum.java => QuoteExecutionTypeEnum.java} (87%) rename src/main/java/com/fireblocks/sdk/model/{QuotePropertiesDetails.java => QuoteOffer.java} (62%) create mode 100644 src/main/java/com/fireblocks/sdk/model/QuoteOfferType.java create mode 100644 src/main/java/com/fireblocks/sdk/model/Rate.java create mode 100644 src/main/java/com/fireblocks/sdk/model/RateOffer.java create mode 100644 src/main/java/com/fireblocks/sdk/model/RateOfferType.java create mode 100644 src/main/java/com/fireblocks/sdk/model/RatesRequest.java create mode 100644 src/main/java/com/fireblocks/sdk/model/RatesResponse.java create mode 100644 src/main/java/com/fireblocks/sdk/model/ReasonForPaymentEnum.java rename src/main/java/com/fireblocks/sdk/model/{QuoteFailure.java => ScopeItemFailure.java} (85%) rename src/main/java/com/fireblocks/sdk/model/{CommittedQuoteType.java => SourceOfFunds.java} (61%) rename src/main/java/com/fireblocks/sdk/model/{CircleGatewayWalletInfoResponse.java => UsdcGatewayWalletInfoResponse.java} (84%) rename src/main/java/com/fireblocks/sdk/model/{CircleGatewayWalletStatusResponse.java => UsdcGatewayWalletStatusResponse.java} (84%) create mode 100644 src/test/java/com/fireblocks/sdk/api/GenieBetaApiTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/AddressReverseLookupResponseTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/ArsConfigResponseTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/CreateOffersRequestTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/GenieChatMessageTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/GenieCreateSessionResponseTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/GenieSendMessageRequestTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/OfferTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/OffersResponseTest.java rename src/test/java/com/fireblocks/sdk/model/{IndicativeQuoteEnumTest.java => QuoteExecutionTypeEnumTest.java} (76%) rename src/test/java/com/fireblocks/sdk/model/{QuotePropertiesDetailsTest.java => QuoteOfferTest.java} (73%) rename src/test/java/com/fireblocks/sdk/model/{CommittedQuoteTypeTest.java => QuoteOfferTypeTest.java} (67%) create mode 100644 src/test/java/com/fireblocks/sdk/model/RateOfferTest.java rename src/test/java/com/fireblocks/sdk/model/{CommittedQuoteEnumTest.java => RateOfferTypeTest.java} (66%) create mode 100644 src/test/java/com/fireblocks/sdk/model/RateTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/RatesRequestTest.java create mode 100644 src/test/java/com/fireblocks/sdk/model/RatesResponseTest.java rename src/test/java/com/fireblocks/sdk/model/{QuoteTypeEnumTest.java => ReasonForPaymentEnumTest.java} (77%) rename src/test/java/com/fireblocks/sdk/model/{QuoteFailureTest.java => ScopeItemFailureTest.java} (80%) rename src/test/java/com/fireblocks/sdk/model/{IndicativeQuoteTypeTest.java => SourceOfFundsTest.java} (66%) rename src/test/java/com/fireblocks/sdk/model/{CircleGatewayWalletInfoResponseTest.java => UsdcGatewayWalletInfoResponseTest.java} (77%) rename src/test/java/com/fireblocks/sdk/model/{CircleGatewayWalletStatusResponseTest.java => UsdcGatewayWalletStatusResponseTest.java} (71%) diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES index dcf6475e..de48efa7 100644 --- a/.openapi-generator/FILES +++ b/.openapi-generator/FILES @@ -59,6 +59,7 @@ docs/AddressRegistryTenantRegistryResponse.md docs/AddressRegistryTravelRuleProvider.md docs/AddressRegistryVaultListOrder.md docs/AddressRegistryVaultOptOutItem.md +docs/AddressReverseLookupResponse.md docs/AlertExposureTypeEnum.md docs/AlertLevelEnum.md docs/AmlAlert.md @@ -85,6 +86,7 @@ docs/ApprovalRequest.md docs/ApproversConfig.md docs/ApproversConfigApprovalGroupsInner.md docs/Apy.md +docs/ArsConfigResponse.md docs/Asset.md docs/AssetAlreadyExistHttpError.md docs/AssetAmount.md @@ -159,8 +161,6 @@ docs/ChannelDvnConfigWithConfirmations.md docs/ChapsAddress.md docs/ChapsDestination.md docs/ChapsPaymentInfo.md -docs/CircleGatewayWalletInfoResponse.md -docs/CircleGatewayWalletStatusResponse.md docs/ClaimRewardsRequest.md docs/CollectionBurnRequestDto.md docs/CollectionBurnResponseDto.md @@ -173,8 +173,6 @@ docs/CollectionOwnershipResponse.md docs/CollectionTokenMetadataAttributeDto.md docs/CollectionTokenMetadataDto.md docs/CollectionType.md -docs/CommittedQuoteEnum.md -docs/CommittedQuoteType.md docs/ComplianceApi.md docs/ComplianceResultFullPayload.md docs/ComplianceResultStatusesEnum.md @@ -272,6 +270,7 @@ docs/CreateMultipleDepositAddressesRequest.md docs/CreateMultipleVaultAccountsJobStatus.md docs/CreateNcwConnectionRequest.md docs/CreateNetworkIdRequest.md +docs/CreateOffersRequest.md docs/CreateOrderRequest.md docs/CreatePayoutRequest.md docs/CreateQuote.md @@ -437,6 +436,10 @@ docs/GasStationPropertiesResponse.md docs/GasStationsApi.md docs/GasslessStandardConfigurations.md docs/GasslessStandardConfigurationsGaslessStandardConfigurationsValue.md +docs/GenieBetaApi.md +docs/GenieChatMessage.md +docs/GenieCreateSessionResponse.md +docs/GenieSendMessageRequest.md docs/GetAPIUsersResponse.md docs/GetActionResponse.md docs/GetActionsResponse.md @@ -476,8 +479,6 @@ docs/IbanPaymentInfo.md docs/Identification.md docs/IdentificationPolicyOverride.md docs/IdlType.md -docs/IndicativeQuoteEnum.md -docs/IndicativeQuoteType.md docs/InitiatorConfig.md docs/InitiatorConfigPattern.md docs/InstructionAmount.md @@ -583,6 +584,8 @@ docs/NotificationPaginatedResponse.md docs/NotificationStatus.md docs/NotificationWithData.md docs/OffExchangesApi.md +docs/Offer.md +docs/OffersResponse.md docs/OnchainDataApi.md docs/OnchainTransaction.md docs/OnchainTransactionsPagedResponse.md @@ -677,17 +680,23 @@ docs/Quote.md docs/QuoteExecutionRequestDetails.md docs/QuoteExecutionStep.md docs/QuoteExecutionTypeDetails.md +docs/QuoteExecutionTypeEnum.md docs/QuoteExecutionWithRequoteRequestDetails.md docs/QuoteExecutionWithRequoteResponseDetails.md -docs/QuoteFailure.md -docs/QuotePropertiesDetails.md -docs/QuoteTypeEnum.md +docs/QuoteOffer.md +docs/QuoteOfferType.md docs/QuotesResponse.md +docs/Rate.md +docs/RateOffer.md +docs/RateOfferType.md +docs/RatesRequest.md +docs/RatesResponse.md docs/ReQuoteDetails.md docs/ReQuoteDetailsReQuote.md docs/ReadAbiFunction.md docs/ReadCallFunctionDto.md docs/ReadCallFunctionDtoAbiFunction.md +docs/ReasonForPaymentEnum.md docs/RecipientHandle.md docs/RedeemFundsToLinkedDDAResponse.md docs/RegisterLegalEntityRequest.md @@ -727,6 +736,7 @@ docs/SEPADestination.md docs/SOLAccount.md docs/SOLAccountWithValue.md docs/ScopeItem.md +docs/ScopeItemFailure.md docs/ScreeningAlertExposureTypeEnum.md docs/ScreeningAmlAlert.md docs/ScreeningAmlMatchedRule.md @@ -824,6 +834,7 @@ docs/SolanaInstruction.md docs/SolanaInstructionWithValue.md docs/SolanaSimpleCreateParams.md docs/SourceConfig.md +docs/SourceOfFunds.md docs/SourceTransferPeerPath.md docs/SourceTransferPeerPathResponse.md docs/SpamOwnershipResponse.md @@ -1072,6 +1083,8 @@ docs/UpdateVaultAccountAssetAddressRequest.md docs/UpdateVaultAccountRequest.md docs/UpdateWebhookRequest.md docs/UsWirePaymentInfo.md +docs/UsdcGatewayWalletInfoResponse.md +docs/UsdcGatewayWalletStatusResponse.md docs/UserGroupCreateRequest.md docs/UserGroupCreateResponse.md docs/UserGroupResponse.md @@ -1176,6 +1189,7 @@ src/main/java/com/fireblocks/sdk/api/ExchangeAccountsApi.java src/main/java/com/fireblocks/sdk/api/ExternalWalletsApi.java src/main/java/com/fireblocks/sdk/api/FiatAccountsApi.java src/main/java/com/fireblocks/sdk/api/GasStationsApi.java +src/main/java/com/fireblocks/sdk/api/GenieBetaApi.java src/main/java/com/fireblocks/sdk/api/InternalWalletsApi.java src/main/java/com/fireblocks/sdk/api/KeyLinkBetaApi.java src/main/java/com/fireblocks/sdk/api/KeysBetaApi.java @@ -1258,6 +1272,7 @@ src/main/java/com/fireblocks/sdk/model/AddressRegistryTenantRegistryResponse.jav 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/AddressReverseLookupResponse.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 @@ -1283,6 +1298,7 @@ src/main/java/com/fireblocks/sdk/model/ApprovalRequest.java src/main/java/com/fireblocks/sdk/model/ApproversConfig.java src/main/java/com/fireblocks/sdk/model/ApproversConfigApprovalGroupsInner.java src/main/java/com/fireblocks/sdk/model/Apy.java +src/main/java/com/fireblocks/sdk/model/ArsConfigResponse.java src/main/java/com/fireblocks/sdk/model/Asset.java src/main/java/com/fireblocks/sdk/model/AssetAlreadyExistHttpError.java src/main/java/com/fireblocks/sdk/model/AssetAmount.java @@ -1355,8 +1371,6 @@ src/main/java/com/fireblocks/sdk/model/ChannelDvnConfigWithConfirmations.java src/main/java/com/fireblocks/sdk/model/ChapsAddress.java src/main/java/com/fireblocks/sdk/model/ChapsDestination.java src/main/java/com/fireblocks/sdk/model/ChapsPaymentInfo.java -src/main/java/com/fireblocks/sdk/model/CircleGatewayWalletInfoResponse.java -src/main/java/com/fireblocks/sdk/model/CircleGatewayWalletStatusResponse.java src/main/java/com/fireblocks/sdk/model/ClaimRewardsRequest.java src/main/java/com/fireblocks/sdk/model/CollectionBurnRequestDto.java src/main/java/com/fireblocks/sdk/model/CollectionBurnResponseDto.java @@ -1369,8 +1383,6 @@ src/main/java/com/fireblocks/sdk/model/CollectionOwnershipResponse.java src/main/java/com/fireblocks/sdk/model/CollectionTokenMetadataAttributeDto.java src/main/java/com/fireblocks/sdk/model/CollectionTokenMetadataDto.java src/main/java/com/fireblocks/sdk/model/CollectionType.java -src/main/java/com/fireblocks/sdk/model/CommittedQuoteEnum.java -src/main/java/com/fireblocks/sdk/model/CommittedQuoteType.java src/main/java/com/fireblocks/sdk/model/ComplianceResultFullPayload.java src/main/java/com/fireblocks/sdk/model/ComplianceResultStatusesEnum.java src/main/java/com/fireblocks/sdk/model/ComplianceResults.java @@ -1460,6 +1472,7 @@ src/main/java/com/fireblocks/sdk/model/CreateMultipleDepositAddressesRequest.jav src/main/java/com/fireblocks/sdk/model/CreateMultipleVaultAccountsJobStatus.java src/main/java/com/fireblocks/sdk/model/CreateNcwConnectionRequest.java src/main/java/com/fireblocks/sdk/model/CreateNetworkIdRequest.java +src/main/java/com/fireblocks/sdk/model/CreateOffersRequest.java src/main/java/com/fireblocks/sdk/model/CreateOrderRequest.java src/main/java/com/fireblocks/sdk/model/CreatePayoutRequest.java src/main/java/com/fireblocks/sdk/model/CreateQuote.java @@ -1618,6 +1631,9 @@ src/main/java/com/fireblocks/sdk/model/GasStationConfigurationResponse.java src/main/java/com/fireblocks/sdk/model/GasStationPropertiesResponse.java src/main/java/com/fireblocks/sdk/model/GasslessStandardConfigurations.java src/main/java/com/fireblocks/sdk/model/GasslessStandardConfigurationsGaslessStandardConfigurationsValue.java +src/main/java/com/fireblocks/sdk/model/GenieChatMessage.java +src/main/java/com/fireblocks/sdk/model/GenieCreateSessionResponse.java +src/main/java/com/fireblocks/sdk/model/GenieSendMessageRequest.java src/main/java/com/fireblocks/sdk/model/GetAPIUsersResponse.java src/main/java/com/fireblocks/sdk/model/GetActionResponse.java src/main/java/com/fireblocks/sdk/model/GetActionsResponse.java @@ -1657,8 +1673,6 @@ src/main/java/com/fireblocks/sdk/model/IbanPaymentInfo.java src/main/java/com/fireblocks/sdk/model/Identification.java src/main/java/com/fireblocks/sdk/model/IdentificationPolicyOverride.java src/main/java/com/fireblocks/sdk/model/IdlType.java -src/main/java/com/fireblocks/sdk/model/IndicativeQuoteEnum.java -src/main/java/com/fireblocks/sdk/model/IndicativeQuoteType.java src/main/java/com/fireblocks/sdk/model/InitiatorConfig.java src/main/java/com/fireblocks/sdk/model/InitiatorConfigPattern.java src/main/java/com/fireblocks/sdk/model/InstructionAmount.java @@ -1758,6 +1772,8 @@ src/main/java/com/fireblocks/sdk/model/NotificationAttemptsPaginatedResponse.jav src/main/java/com/fireblocks/sdk/model/NotificationPaginatedResponse.java src/main/java/com/fireblocks/sdk/model/NotificationStatus.java src/main/java/com/fireblocks/sdk/model/NotificationWithData.java +src/main/java/com/fireblocks/sdk/model/Offer.java +src/main/java/com/fireblocks/sdk/model/OffersResponse.java src/main/java/com/fireblocks/sdk/model/OnchainTransaction.java src/main/java/com/fireblocks/sdk/model/OnchainTransactionsPagedResponse.java src/main/java/com/fireblocks/sdk/model/OneTimeAddress.java @@ -1847,17 +1863,23 @@ src/main/java/com/fireblocks/sdk/model/Quote.java src/main/java/com/fireblocks/sdk/model/QuoteExecutionRequestDetails.java src/main/java/com/fireblocks/sdk/model/QuoteExecutionStep.java src/main/java/com/fireblocks/sdk/model/QuoteExecutionTypeDetails.java +src/main/java/com/fireblocks/sdk/model/QuoteExecutionTypeEnum.java src/main/java/com/fireblocks/sdk/model/QuoteExecutionWithRequoteRequestDetails.java src/main/java/com/fireblocks/sdk/model/QuoteExecutionWithRequoteResponseDetails.java -src/main/java/com/fireblocks/sdk/model/QuoteFailure.java -src/main/java/com/fireblocks/sdk/model/QuotePropertiesDetails.java -src/main/java/com/fireblocks/sdk/model/QuoteTypeEnum.java +src/main/java/com/fireblocks/sdk/model/QuoteOffer.java +src/main/java/com/fireblocks/sdk/model/QuoteOfferType.java src/main/java/com/fireblocks/sdk/model/QuotesResponse.java +src/main/java/com/fireblocks/sdk/model/Rate.java +src/main/java/com/fireblocks/sdk/model/RateOffer.java +src/main/java/com/fireblocks/sdk/model/RateOfferType.java +src/main/java/com/fireblocks/sdk/model/RatesRequest.java +src/main/java/com/fireblocks/sdk/model/RatesResponse.java src/main/java/com/fireblocks/sdk/model/ReQuoteDetails.java src/main/java/com/fireblocks/sdk/model/ReQuoteDetailsReQuote.java src/main/java/com/fireblocks/sdk/model/ReadAbiFunction.java 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/ReasonForPaymentEnum.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 @@ -1896,6 +1918,7 @@ src/main/java/com/fireblocks/sdk/model/SEPADestination.java src/main/java/com/fireblocks/sdk/model/SOLAccount.java src/main/java/com/fireblocks/sdk/model/SOLAccountWithValue.java src/main/java/com/fireblocks/sdk/model/ScopeItem.java +src/main/java/com/fireblocks/sdk/model/ScopeItemFailure.java src/main/java/com/fireblocks/sdk/model/ScreeningAlertExposureTypeEnum.java src/main/java/com/fireblocks/sdk/model/ScreeningAmlAlert.java src/main/java/com/fireblocks/sdk/model/ScreeningAmlMatchedRule.java @@ -1992,6 +2015,7 @@ src/main/java/com/fireblocks/sdk/model/SolanaInstruction.java src/main/java/com/fireblocks/sdk/model/SolanaInstructionWithValue.java src/main/java/com/fireblocks/sdk/model/SolanaSimpleCreateParams.java src/main/java/com/fireblocks/sdk/model/SourceConfig.java +src/main/java/com/fireblocks/sdk/model/SourceOfFunds.java src/main/java/com/fireblocks/sdk/model/SourceTransferPeerPath.java src/main/java/com/fireblocks/sdk/model/SourceTransferPeerPathResponse.java src/main/java/com/fireblocks/sdk/model/SpamOwnershipResponse.java @@ -2233,6 +2257,8 @@ src/main/java/com/fireblocks/sdk/model/UpdateVaultAccountAssetAddressRequest.jav src/main/java/com/fireblocks/sdk/model/UpdateVaultAccountRequest.java src/main/java/com/fireblocks/sdk/model/UpdateWebhookRequest.java src/main/java/com/fireblocks/sdk/model/UsWirePaymentInfo.java +src/main/java/com/fireblocks/sdk/model/UsdcGatewayWalletInfoResponse.java +src/main/java/com/fireblocks/sdk/model/UsdcGatewayWalletStatusResponse.java src/main/java/com/fireblocks/sdk/model/UserGroupCreateRequest.java src/main/java/com/fireblocks/sdk/model/UserGroupCreateResponse.java src/main/java/com/fireblocks/sdk/model/UserGroupResponse.java @@ -2306,6 +2332,7 @@ src/test/java/com/fireblocks/sdk/api/ExchangeAccountsApiTest.java src/test/java/com/fireblocks/sdk/api/ExternalWalletsApiTest.java src/test/java/com/fireblocks/sdk/api/FiatAccountsApiTest.java src/test/java/com/fireblocks/sdk/api/GasStationsApiTest.java +src/test/java/com/fireblocks/sdk/api/GenieBetaApiTest.java src/test/java/com/fireblocks/sdk/api/InternalWalletsApiTest.java src/test/java/com/fireblocks/sdk/api/KeyLinkBetaApiTest.java src/test/java/com/fireblocks/sdk/api/KeysBetaApiTest.java @@ -2387,6 +2414,7 @@ src/test/java/com/fireblocks/sdk/model/AddressRegistryTenantRegistryResponseTest 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/AddressReverseLookupResponseTest.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 @@ -2412,6 +2440,7 @@ src/test/java/com/fireblocks/sdk/model/ApprovalRequestTest.java src/test/java/com/fireblocks/sdk/model/ApproversConfigApprovalGroupsInnerTest.java src/test/java/com/fireblocks/sdk/model/ApproversConfigTest.java src/test/java/com/fireblocks/sdk/model/ApyTest.java +src/test/java/com/fireblocks/sdk/model/ArsConfigResponseTest.java src/test/java/com/fireblocks/sdk/model/AssetAlreadyExistHttpErrorTest.java src/test/java/com/fireblocks/sdk/model/AssetAmountTest.java src/test/java/com/fireblocks/sdk/model/AssetBadRequestErrorResponseTest.java @@ -2484,8 +2513,6 @@ src/test/java/com/fireblocks/sdk/model/ChannelDvnConfigWithConfirmationsTest.jav src/test/java/com/fireblocks/sdk/model/ChapsAddressTest.java src/test/java/com/fireblocks/sdk/model/ChapsDestinationTest.java src/test/java/com/fireblocks/sdk/model/ChapsPaymentInfoTest.java -src/test/java/com/fireblocks/sdk/model/CircleGatewayWalletInfoResponseTest.java -src/test/java/com/fireblocks/sdk/model/CircleGatewayWalletStatusResponseTest.java src/test/java/com/fireblocks/sdk/model/ClaimRewardsRequestTest.java src/test/java/com/fireblocks/sdk/model/CollectionBurnRequestDtoTest.java src/test/java/com/fireblocks/sdk/model/CollectionBurnResponseDtoTest.java @@ -2498,8 +2525,6 @@ src/test/java/com/fireblocks/sdk/model/CollectionOwnershipResponseTest.java src/test/java/com/fireblocks/sdk/model/CollectionTokenMetadataAttributeDtoTest.java src/test/java/com/fireblocks/sdk/model/CollectionTokenMetadataDtoTest.java src/test/java/com/fireblocks/sdk/model/CollectionTypeTest.java -src/test/java/com/fireblocks/sdk/model/CommittedQuoteEnumTest.java -src/test/java/com/fireblocks/sdk/model/CommittedQuoteTypeTest.java src/test/java/com/fireblocks/sdk/model/ComplianceResultFullPayloadTest.java src/test/java/com/fireblocks/sdk/model/ComplianceResultStatusesEnumTest.java src/test/java/com/fireblocks/sdk/model/ComplianceResultsTest.java @@ -2589,6 +2614,7 @@ src/test/java/com/fireblocks/sdk/model/CreateMultipleDepositAddressesRequestTest src/test/java/com/fireblocks/sdk/model/CreateMultipleVaultAccountsJobStatusTest.java src/test/java/com/fireblocks/sdk/model/CreateNcwConnectionRequestTest.java src/test/java/com/fireblocks/sdk/model/CreateNetworkIdRequestTest.java +src/test/java/com/fireblocks/sdk/model/CreateOffersRequestTest.java src/test/java/com/fireblocks/sdk/model/CreateOrderRequestTest.java src/test/java/com/fireblocks/sdk/model/CreatePayoutRequestTest.java src/test/java/com/fireblocks/sdk/model/CreateQuoteScopeInnerTest.java @@ -2747,6 +2773,9 @@ src/test/java/com/fireblocks/sdk/model/GasStationConfigurationTest.java src/test/java/com/fireblocks/sdk/model/GasStationPropertiesResponseTest.java src/test/java/com/fireblocks/sdk/model/GasslessStandardConfigurationsGaslessStandardConfigurationsValueTest.java src/test/java/com/fireblocks/sdk/model/GasslessStandardConfigurationsTest.java +src/test/java/com/fireblocks/sdk/model/GenieChatMessageTest.java +src/test/java/com/fireblocks/sdk/model/GenieCreateSessionResponseTest.java +src/test/java/com/fireblocks/sdk/model/GenieSendMessageRequestTest.java src/test/java/com/fireblocks/sdk/model/GetAPIUsersResponseTest.java src/test/java/com/fireblocks/sdk/model/GetActionResponseTest.java src/test/java/com/fireblocks/sdk/model/GetActionsResponseTest.java @@ -2786,8 +2815,6 @@ src/test/java/com/fireblocks/sdk/model/IbanPaymentInfoTest.java src/test/java/com/fireblocks/sdk/model/IdentificationPolicyOverrideTest.java src/test/java/com/fireblocks/sdk/model/IdentificationTest.java src/test/java/com/fireblocks/sdk/model/IdlTypeTest.java -src/test/java/com/fireblocks/sdk/model/IndicativeQuoteEnumTest.java -src/test/java/com/fireblocks/sdk/model/IndicativeQuoteTypeTest.java src/test/java/com/fireblocks/sdk/model/InitiatorConfigPatternTest.java src/test/java/com/fireblocks/sdk/model/InitiatorConfigTest.java src/test/java/com/fireblocks/sdk/model/InstructionAmountTest.java @@ -2887,6 +2914,8 @@ src/test/java/com/fireblocks/sdk/model/NotificationPaginatedResponseTest.java src/test/java/com/fireblocks/sdk/model/NotificationStatusTest.java src/test/java/com/fireblocks/sdk/model/NotificationTest.java src/test/java/com/fireblocks/sdk/model/NotificationWithDataTest.java +src/test/java/com/fireblocks/sdk/model/OfferTest.java +src/test/java/com/fireblocks/sdk/model/OffersResponseTest.java src/test/java/com/fireblocks/sdk/model/OnchainTransactionTest.java src/test/java/com/fireblocks/sdk/model/OnchainTransactionsPagedResponseTest.java src/test/java/com/fireblocks/sdk/model/OneTimeAddressAccountTest.java @@ -2975,18 +3004,24 @@ src/test/java/com/fireblocks/sdk/model/PublishResultTest.java src/test/java/com/fireblocks/sdk/model/QuoteExecutionRequestDetailsTest.java src/test/java/com/fireblocks/sdk/model/QuoteExecutionStepTest.java src/test/java/com/fireblocks/sdk/model/QuoteExecutionTypeDetailsTest.java +src/test/java/com/fireblocks/sdk/model/QuoteExecutionTypeEnumTest.java src/test/java/com/fireblocks/sdk/model/QuoteExecutionWithRequoteRequestDetailsTest.java src/test/java/com/fireblocks/sdk/model/QuoteExecutionWithRequoteResponseDetailsTest.java -src/test/java/com/fireblocks/sdk/model/QuoteFailureTest.java -src/test/java/com/fireblocks/sdk/model/QuotePropertiesDetailsTest.java +src/test/java/com/fireblocks/sdk/model/QuoteOfferTest.java +src/test/java/com/fireblocks/sdk/model/QuoteOfferTypeTest.java src/test/java/com/fireblocks/sdk/model/QuoteTest.java -src/test/java/com/fireblocks/sdk/model/QuoteTypeEnumTest.java src/test/java/com/fireblocks/sdk/model/QuotesResponseTest.java +src/test/java/com/fireblocks/sdk/model/RateOfferTest.java +src/test/java/com/fireblocks/sdk/model/RateOfferTypeTest.java +src/test/java/com/fireblocks/sdk/model/RateTest.java +src/test/java/com/fireblocks/sdk/model/RatesRequestTest.java +src/test/java/com/fireblocks/sdk/model/RatesResponseTest.java src/test/java/com/fireblocks/sdk/model/ReQuoteDetailsReQuoteTest.java src/test/java/com/fireblocks/sdk/model/ReQuoteDetailsTest.java src/test/java/com/fireblocks/sdk/model/ReadAbiFunctionTest.java 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/ReasonForPaymentEnumTest.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 @@ -3024,6 +3059,7 @@ src/test/java/com/fireblocks/sdk/model/SEPAAddressTest.java src/test/java/com/fireblocks/sdk/model/SEPADestinationTest.java src/test/java/com/fireblocks/sdk/model/SOLAccountTest.java src/test/java/com/fireblocks/sdk/model/SOLAccountWithValueTest.java +src/test/java/com/fireblocks/sdk/model/ScopeItemFailureTest.java src/test/java/com/fireblocks/sdk/model/ScopeItemTest.java src/test/java/com/fireblocks/sdk/model/ScreeningAlertExposureTypeEnumTest.java src/test/java/com/fireblocks/sdk/model/ScreeningAmlAlertTest.java @@ -3121,6 +3157,7 @@ src/test/java/com/fireblocks/sdk/model/SolanaInstructionTest.java src/test/java/com/fireblocks/sdk/model/SolanaInstructionWithValueTest.java src/test/java/com/fireblocks/sdk/model/SolanaSimpleCreateParamsTest.java src/test/java/com/fireblocks/sdk/model/SourceConfigTest.java +src/test/java/com/fireblocks/sdk/model/SourceOfFundsTest.java src/test/java/com/fireblocks/sdk/model/SourceTransferPeerPathResponseTest.java src/test/java/com/fireblocks/sdk/model/SourceTransferPeerPathTest.java src/test/java/com/fireblocks/sdk/model/SpamOwnershipResponseTest.java @@ -3362,6 +3399,8 @@ src/test/java/com/fireblocks/sdk/model/UpdateVaultAccountAssetAddressRequestTest src/test/java/com/fireblocks/sdk/model/UpdateVaultAccountRequestTest.java src/test/java/com/fireblocks/sdk/model/UpdateWebhookRequestTest.java src/test/java/com/fireblocks/sdk/model/UsWirePaymentInfoTest.java +src/test/java/com/fireblocks/sdk/model/UsdcGatewayWalletInfoResponseTest.java +src/test/java/com/fireblocks/sdk/model/UsdcGatewayWalletStatusResponseTest.java src/test/java/com/fireblocks/sdk/model/UserGroupCreateRequestTest.java src/test/java/com/fireblocks/sdk/model/UserGroupCreateResponseTest.java src/test/java/com/fireblocks/sdk/model/UserGroupResponseTest.java diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 4a5c8dcf..00000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,239 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [v18.0.0](https://github.com/fireblocks/java-sdk/compare/v15.0.0...v18.0.0) - 2026-05-06 - -### Merged - -- Generated SDK #3222 (major) [`#133`](https://github.com/fireblocks/java-sdk/pull/133) - -## [v15.0.0](https://github.com/fireblocks/java-sdk/compare/v14.1.0...v15.0.0) - 2026-03-15 - -### Merged - -- Generated SDK #3733 (major) [`#128`](https://github.com/fireblocks/java-sdk/pull/128) - -## [v14.1.0](https://github.com/fireblocks/java-sdk/compare/v14.0.0...v14.1.0) - 2026-02-26 - -### Merged - -- Generated SDK #2167 [`#126`](https://github.com/fireblocks/java-sdk/pull/126) - -## [v14.0.0](https://github.com/fireblocks/java-sdk/compare/v13.0.0...v14.0.0) - 2026-02-03 - -### Merged - -- Generated SDK #4746 [`#121`](https://github.com/fireblocks/java-sdk/pull/121) - -## [v13.0.0](https://github.com/fireblocks/java-sdk/compare/v12.1.3...v13.0.0) - 2025-11-13 - -### Merged - -- Generated SDK #5834 [`#116`](https://github.com/fireblocks/java-sdk/pull/116) - -## [v12.1.3](https://github.com/fireblocks/java-sdk/compare/v12.1.2...v12.1.3) - 2025-10-22 - -### Merged - -- Generated SDK #8293 [`#115`](https://github.com/fireblocks/java-sdk/pull/115) - -## [v12.1.2](https://github.com/fireblocks/java-sdk/compare/v12.1.1...v12.1.2) - 2025-09-29 - -### Merged - -- Generated SDK #6061 [`#113`](https://github.com/fireblocks/java-sdk/pull/113) - -## [v12.1.1](https://github.com/fireblocks/java-sdk/compare/v12.1.0...v12.1.1) - 2025-09-10 - -### Merged - -- Generated SDK #1410 [`#111`](https://github.com/fireblocks/java-sdk/pull/111) - -## [v12.1.0](https://github.com/fireblocks/java-sdk/compare/v12.0.0...v12.1.0) - 2025-09-09 - -### Merged - -- Generated SDK #4521 [`#109`](https://github.com/fireblocks/java-sdk/pull/109) - -## [v12.0.0](https://github.com/fireblocks/java-sdk/compare/v11.2.0...v12.0.0) - 2025-09-01 - -### Merged - -- Generated SDK #7741 [`#108`](https://github.com/fireblocks/java-sdk/pull/108) - -## [v11.2.0](https://github.com/fireblocks/java-sdk/compare/v11.1.0...v11.2.0) - 2025-08-21 - -### Merged - -- Generated SDK #3302 [`#107`](https://github.com/fireblocks/java-sdk/pull/107) - -## [v11.1.0](https://github.com/fireblocks/java-sdk/compare/v11.0.0...v11.1.0) - 2025-08-11 - -### Merged - -- Generated SDK #1782 [`#105`](https://github.com/fireblocks/java-sdk/pull/105) - -## [v11.0.0](https://github.com/fireblocks/java-sdk/compare/v10.4.0...v11.0.0) - 2025-07-15 - -### Merged - -- Generated SDK #5610 [`#103`](https://github.com/fireblocks/java-sdk/pull/103) - -## [v10.4.0](https://github.com/fireblocks/java-sdk/compare/v10.3.0...v10.4.0) - 2025-06-29 - -### Merged - -- Generated SDK #1492 [`#101`](https://github.com/fireblocks/java-sdk/pull/101) - -## [v10.3.0](https://github.com/fireblocks/java-sdk/compare/v10.2.0...v10.3.0) - 2025-06-18 - -### Merged - -- Generated SDK #4009 [`#99`](https://github.com/fireblocks/java-sdk/pull/99) - -## [v10.2.0](https://github.com/fireblocks/java-sdk/compare/v10.1.1...v10.2.0) - 2025-06-04 - -### Merged - -- Generated SDK #8912 [`#98`](https://github.com/fireblocks/java-sdk/pull/98) - -## [v10.1.1](https://github.com/fireblocks/java-sdk/compare/v10.1.0...v10.1.1) - 2025-05-18 - -### Merged - -- Generated SDK #5019 [`#97`](https://github.com/fireblocks/java-sdk/pull/97) - -## [v10.1.0](https://github.com/fireblocks/java-sdk/compare/v10.0.2...v10.1.0) - 2025-05-07 - -### Merged - -- Generated SDK #7076 [`#95`](https://github.com/fireblocks/java-sdk/pull/95) - -## [v10.0.2](https://github.com/fireblocks/java-sdk/compare/v10.0.1...v10.0.2) - 2025-04-20 - -### Merged - -- Generated SDK #4794 [`#94`](https://github.com/fireblocks/java-sdk/pull/94) - -## [v10.0.1](https://github.com/fireblocks/java-sdk/compare/v10.0.0...v10.0.1) - 2025-04-07 - -### Merged - -- Generated SDK #3065 [`#93`](https://github.com/fireblocks/java-sdk/pull/93) - -## [v10.0.0](https://github.com/fireblocks/java-sdk/compare/v9.0.0...v10.0.0) - 2025-03-30 - -### Merged - -- Generated SDK #619 [`#90`](https://github.com/fireblocks/java-sdk/pull/90) - -## [v9.0.0](https://github.com/fireblocks/java-sdk/compare/v8.1.0...v9.0.0) - 2025-03-17 - -### Merged - -- Generated SDK #645 [`#89`](https://github.com/fireblocks/java-sdk/pull/89) - -## [v8.1.0](https://github.com/fireblocks/java-sdk/compare/v8.0.1...v8.1.0) - 2025-02-24 - -### Merged - -- Generated SDK #9833 [`#84`](https://github.com/fireblocks/java-sdk/pull/84) - -## [v8.0.1](https://github.com/fireblocks/java-sdk/compare/v8.0.0...v8.0.1) - 2025-02-12 - -### Merged - -- Generated SDK #4262 [`#82`](https://github.com/fireblocks/java-sdk/pull/82) - -## [v8.0.0](https://github.com/fireblocks/java-sdk/compare/v7.0.0...v8.0.0) - 2025-02-02 - -### Merged - -- Generated SDK #538 [`#80`](https://github.com/fireblocks/java-sdk/pull/80) - -## [v7.0.0](https://github.com/fireblocks/java-sdk/compare/v6.0.0...v7.0.0) - 2025-01-08 - -### Merged - -- Generated SDK #8699 [`#77`](https://github.com/fireblocks/java-sdk/pull/77) - -## [v6.0.0](https://github.com/fireblocks/java-sdk/compare/v5.0.0...v6.0.0) - 2024-12-05 - -### Merged - -- Generated SDK #1430 [`#73`](https://github.com/fireblocks/java-sdk/pull/73) - -## [v5.0.0](https://github.com/fireblocks/java-sdk/compare/v4.0.0...v5.0.0) - 2024-10-31 - -### Merged - -- Generated SDK #5184 [`#71`](https://github.com/fireblocks/java-sdk/pull/71) - -## [v4.0.0](https://github.com/fireblocks/java-sdk/compare/v3.1.0...v4.0.0) - 2024-09-17 - -### Merged - -- Generated SDK #237 [`#70`](https://github.com/fireblocks/java-sdk/pull/70) - -## [v3.1.0](https://github.com/fireblocks/java-sdk/compare/v3.0.0...v3.1.0) - 2024-07-25 - -### Merged - -- Generated SDK #6749 [`#67`](https://github.com/fireblocks/java-sdk/pull/67) - -## [v3.0.0](https://github.com/fireblocks/java-sdk/compare/v2.1.0...v3.0.0) - 2024-07-17 - -### Merged - -- Generated SDK #6152 [`#65`](https://github.com/fireblocks/java-sdk/pull/65) -- Generated SDK #7984 [`#62`](https://github.com/fireblocks/java-sdk/pull/62) -- Generated SDK #2873 [`#61`](https://github.com/fireblocks/java-sdk/pull/61) - -## [v2.1.0](https://github.com/fireblocks/java-sdk/compare/v2.0.1...v2.1.0) - 2024-06-04 - -### Merged - -- Generated SDK for version COR-46191/fix_pipelines [`#24`](https://github.com/fireblocks/java-sdk/pull/24) -- Generated SDK for version COR-46191/fix_pipelines [`#23`](https://github.com/fireblocks/java-sdk/pull/23) -- Generated SDK for version COR-46191/fix_pipelines [`#22`](https://github.com/fireblocks/java-sdk/pull/22) -- Generated SDK for version COR-46191/fix_pipelines [`#21`](https://github.com/fireblocks/java-sdk/pull/21) - -## [v2.0.1](https://github.com/fireblocks/java-sdk/compare/v2.0.0...v2.0.1) - 2024-06-04 - -### Merged - -- Generated SDK for version COR-46191/fix_pipelines [`#20`](https://github.com/fireblocks/java-sdk/pull/20) - -## [v2.0.0](https://github.com/fireblocks/java-sdk/compare/v1.1.0...v2.0.0) - 2024-05-08 - -### Merged - -- feat: add tokenization api [`#12`](https://github.com/fireblocks/java-sdk/pull/12) - -## [v1.1.0](https://github.com/fireblocks/java-sdk/compare/v1.0.1...v1.1.0) - 2024-04-17 - -### Merged - -- feat: add cosigners beta api [`#11`](https://github.com/fireblocks/java-sdk/pull/11) -- fix: fix readme doc headline [`#10`](https://github.com/fireblocks/java-sdk/pull/10) - -## [v1.0.1](https://github.com/fireblocks/java-sdk/compare/v1.0.0...v1.0.1) - 2024-04-07 - -### Merged - -- Generated SDK for version v1.0.1 [`#9`](https://github.com/fireblocks/java-sdk/pull/9) - -## v1.0.0 - 2024-04-07 - -### Merged - -- Generated SDK for version v1.0.0 GA [`#8`](https://github.com/fireblocks/java-sdk/pull/8) -- v0.0.1-beta [`#6`](https://github.com/fireblocks/java-sdk/pull/6) -- Update GitHub Actions workflows [`#5`](https://github.com/fireblocks/java-sdk/pull/5) -- Generated #1189972817 [`#3`](https://github.com/fireblocks/java-sdk/pull/3) -- Add installation instructions [`#2`](https://github.com/fireblocks/java-sdk/pull/2) -- Added Idempotency & NCW headers support #6 [`#1`](https://github.com/fireblocks/java-sdk/pull/1) diff --git a/README.md b/README.md index a55106d8..ce54fdc7 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ Add this dependency to your project's POM: com.fireblocks.sdk fireblocks-sdk - 18.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:18.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-18.0.0.jar` +- `target/fireblocks-sdk-0.0.0.jar` - `target/lib/*.jar` @@ -152,10 +152,12 @@ 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* | [**activateArsConfig**](docs/ComplianceApi.md#activateArsConfig) | **POST** /screening/ars/config/activate | Activate ARS (Address Registry Screening) *ComplianceApi* | [**activateByorkConfig**](docs/ComplianceApi.md#activateByorkConfig) | **POST** /screening/byork/config/activate | Activate BYORK Light *ComplianceApi* | [**addAddressRegistryVaultOptOuts**](docs/ComplianceApi.md#addAddressRegistryVaultOptOuts) | **POST** /address_registry/vaults | Add vault accounts to the address registry opt-out list *ComplianceApi* | [**assignVaultsToLegalEntity**](docs/ComplianceApi.md#assignVaultsToLegalEntity) | **POST** /legal_entities/{legalEntityId}/vaults | Assign vault accounts to a legal entity *ComplianceApi* | [**createCounterpartyGroup**](docs/ComplianceApi.md#createCounterpartyGroup) | **POST** /counterparty_groups | Create a counterparty group +*ComplianceApi* | [**deactivateArsConfig**](docs/ComplianceApi.md#deactivateArsConfig) | **POST** /screening/ars/config/deactivate | Deactivate ARS (Address Registry Screening) *ComplianceApi* | [**deactivateByorkConfig**](docs/ComplianceApi.md#deactivateByorkConfig) | **POST** /screening/byork/config/deactivate | Deactivate BYORK Light *ComplianceApi* | [**deleteCounterpartyGroup**](docs/ComplianceApi.md#deleteCounterpartyGroup) | **DELETE** /counterparty_groups/{groupId} | Delete a counterparty group *ComplianceApi* | [**getAddressRegistryTenantParticipationStatus**](docs/ComplianceApi.md#getAddressRegistryTenantParticipationStatus) | **GET** /address_registry/tenant | Get address registry participation status for the authenticated workspace @@ -179,7 +181,7 @@ Class | Method | HTTP request | Description *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* | [**retryRejectedTransactionBypassScreeningChecks**](docs/ComplianceApi.md#retryRejectedTransactionBypassScreeningChecks) | **POST** /screening/transaction/{txId}/bypass_screening_policy | Bypass Screening Policy *ComplianceApi* | [**setAmlVerdict**](docs/ComplianceApi.md#setAmlVerdict) | **POST** /screening/aml/verdict/manual | Set AML Verdict (BYORK Super Light) *ComplianceApi* | [**setByorkTimeouts**](docs/ComplianceApi.md#setByorkTimeouts) | **PUT** /screening/byork/config/timeouts | Set BYORK Light timeouts *ComplianceApi* | [**setByorkVerdict**](docs/ComplianceApi.md#setByorkVerdict) | **POST** /screening/byork/verdict | Set BYORK Light verdict @@ -287,6 +289,8 @@ Class | Method | HTTP request | Description *GasStationsApi* | [**getGasStationInfo**](docs/GasStationsApi.md#getGasStationInfo) | **GET** /gas_station | Get gas station settings *GasStationsApi* | [**updateGasStationConfiguration**](docs/GasStationsApi.md#updateGasStationConfiguration) | **PUT** /gas_station/configuration | Edit gas station settings *GasStationsApi* | [**updateGasStationConfigurationByAssetId**](docs/GasStationsApi.md#updateGasStationConfigurationByAssetId) | **PUT** /gas_station/configuration/{assetId} | Edit gas station settings for an asset +*GenieBetaApi* | [**createGenieSession**](docs/GenieBetaApi.md#createGenieSession) | **POST** /genie/sessions | Create a Genie session +*GenieBetaApi* | [**sendGenieMessage**](docs/GenieBetaApi.md#sendGenieMessage) | **POST** /genie/sessions/{sessionId}/messages | Send a message to a Genie session *InternalWalletsApi* | [**createInternalWallet**](docs/InternalWalletsApi.md#createInternalWallet) | **POST** /internal_wallets | Create an internal wallet *InternalWalletsApi* | [**createInternalWalletAsset**](docs/InternalWalletsApi.md#createInternalWalletAsset) | **POST** /internal_wallets/{walletId}/{assetId} | Add an asset to an internal wallet *InternalWalletsApi* | [**deleteInternalWallet**](docs/InternalWalletsApi.md#deleteInternalWallet) | **DELETE** /internal_wallets/{walletId} | Delete an internal wallet @@ -456,6 +460,8 @@ Class | Method | HTTP request | Description *TrLinkApi* | [**updateTRLinkCustomer**](docs/TrLinkApi.md#updateTRLinkCustomer) | **PUT** /screening/trlink/customers/{customerId} | Update customer *TradingBetaApi* | [**createOrder**](docs/TradingBetaApi.md#createOrder) | **POST** /trading/orders | Create an order *TradingBetaApi* | [**createQuote**](docs/TradingBetaApi.md#createQuote) | **POST** /trading/quotes | Create a quote +*TradingBetaApi* | [**fetchAllOffers**](docs/TradingBetaApi.md#fetchAllOffers) | **POST** /trading/offers | Get all offers +*TradingBetaApi* | [**fetchRates**](docs/TradingBetaApi.md#fetchRates) | **POST** /trading/rates | Get rates *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 @@ -490,7 +496,7 @@ Class | Method | HTTP request | Description *UtxoManagementBetaApi* | [**getUtxos**](docs/UtxoManagementBetaApi.md#getUtxos) | **GET** /utxo_management/{vaultAccountId}/{assetId}/unspent_outputs | List unspent outputs (UTXOs) *UtxoManagementBetaApi* | [**updateUtxoLabels**](docs/UtxoManagementBetaApi.md#updateUtxoLabels) | **PATCH** /utxo_management/{vaultAccountId}/{assetId}/labels | Attach or detach labels to/from UTXOs *VaultsApi* | [**activateAssetForVaultAccount**](docs/VaultsApi.md#activateAssetForVaultAccount) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/activate | Activate a wallet in a vault account -*VaultsApi* | [**activateCircleGatewayWalletBeta**](docs/VaultsApi.md#activateCircleGatewayWalletBeta) | **POST** /vault/accounts/{vaultAccountId}/circle_gateway/activate | Activate a Circle Gateway wallet +*VaultsApi* | [**activateUsdcGatewayWalletBeta**](docs/VaultsApi.md#activateUsdcGatewayWalletBeta) | **POST** /vault/accounts/{vaultAccountId}/usdc_gateway/activate | Activate a USDC Gateway wallet *VaultsApi* | [**attachOrDetachTagsFromVaultAccounts**](docs/VaultsApi.md#attachOrDetachTagsFromVaultAccounts) | **POST** /vault/accounts/attached_tags | Attach or detach tags from vault accounts *VaultsApi* | [**createLegacyAddress**](docs/VaultsApi.md#createLegacyAddress) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}/create_legacy | Convert a segwit address to legacy format *VaultsApi* | [**createMultipleAccounts**](docs/VaultsApi.md#createMultipleAccounts) | **POST** /vault/accounts/bulk | Bulk creation of new vault accounts @@ -498,9 +504,8 @@ Class | Method | HTTP request | Description *VaultsApi* | [**createVaultAccount**](docs/VaultsApi.md#createVaultAccount) | **POST** /vault/accounts | Create a new vault account *VaultsApi* | [**createVaultAccountAsset**](docs/VaultsApi.md#createVaultAccountAsset) | **POST** /vault/accounts/{vaultAccountId}/{assetId} | Create a new vault wallet *VaultsApi* | [**createVaultAccountAssetAddress**](docs/VaultsApi.md#createVaultAccountAssetAddress) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/addresses | Create new asset deposit address -*VaultsApi* | [**deactivateCircleGatewayWalletBeta**](docs/VaultsApi.md#deactivateCircleGatewayWalletBeta) | **POST** /vault/accounts/{vaultAccountId}/circle_gateway/deactivate | Deactivate a Circle Gateway wallet +*VaultsApi* | [**deactivateUsdcGatewayWalletBeta**](docs/VaultsApi.md#deactivateUsdcGatewayWalletBeta) | **POST** /vault/accounts/{vaultAccountId}/usdc_gateway/deactivate | Deactivate a USDC Gateway wallet *VaultsApi* | [**getAssetWallets**](docs/VaultsApi.md#getAssetWallets) | **GET** /vault/asset_wallets | Get vault wallets (Paginated) -*VaultsApi* | [**getCircleGatewayWalletInfoBeta**](docs/VaultsApi.md#getCircleGatewayWalletInfoBeta) | **GET** /vault/accounts/{vaultAccountId}/circle_gateway | Get Circle Gateway wallet info *VaultsApi* | [**getCreateMultipleDepositAddressesJobStatus**](docs/VaultsApi.md#getCreateMultipleDepositAddressesJobStatus) | **GET** /vault/accounts/addresses/bulk/{jobId} | Get the job status of the bulk deposit address creation *VaultsApi* | [**getCreateMultipleVaultAccountsJobStatus**](docs/VaultsApi.md#getCreateMultipleVaultAccountsJobStatus) | **GET** /vault/accounts/bulk/{jobId} | Get job status of bulk creation of new vault accounts *VaultsApi* | [**getMaxBipIndexUsed**](docs/VaultsApi.md#getMaxBipIndexUsed) | **GET** /vault/accounts/{vaultAccountId}/{assetId}/max_bip44_index_used | Get maximum BIP44 index used @@ -509,12 +514,14 @@ Class | Method | HTTP request | Description *VaultsApi* | [**getPublicKeyInfo**](docs/VaultsApi.md#getPublicKeyInfo) | **GET** /vault/public_key_info | Get the public key for a derivation path *VaultsApi* | [**getPublicKeyInfoForAddress**](docs/VaultsApi.md#getPublicKeyInfoForAddress) | **GET** /vault/accounts/{vaultAccountId}/{assetId}/{change}/{addressIndex}/public_key_info | Get an asset's public key *VaultsApi* | [**getUnspentInputs**](docs/VaultsApi.md#getUnspentInputs) | **GET** /vault/accounts/{vaultAccountId}/{assetId}/unspent_inputs | Get UTXO unspent inputs information +*VaultsApi* | [**getUsdcGatewayWalletInfoBeta**](docs/VaultsApi.md#getUsdcGatewayWalletInfoBeta) | **GET** /vault/accounts/{vaultAccountId}/usdc_gateway | Get USDC Gateway wallet info *VaultsApi* | [**getVaultAccount**](docs/VaultsApi.md#getVaultAccount) | **GET** /vault/accounts/{vaultAccountId} | Get a vault account by ID *VaultsApi* | [**getVaultAccountAsset**](docs/VaultsApi.md#getVaultAccountAsset) | **GET** /vault/accounts/{vaultAccountId}/{assetId} | Get the asset balance for a vault account *VaultsApi* | [**getVaultAccountAssetAddressesPaginated**](docs/VaultsApi.md#getVaultAccountAssetAddressesPaginated) | **GET** /vault/accounts/{vaultAccountId}/{assetId}/addresses_paginated | Get addresses (Paginated) *VaultsApi* | [**getVaultAssets**](docs/VaultsApi.md#getVaultAssets) | **GET** /vault/assets | Get asset balance for chosen assets *VaultsApi* | [**getVaultBalanceByAsset**](docs/VaultsApi.md#getVaultBalanceByAsset) | **GET** /vault/assets/{assetId} | Get vault balance by an asset *VaultsApi* | [**hideVaultAccount**](docs/VaultsApi.md#hideVaultAccount) | **POST** /vault/accounts/{vaultAccountId}/hide | Hide a vault account in the console +*VaultsApi* | [**lookupVaultByAddress**](docs/VaultsApi.md#lookupVaultByAddress) | **GET** /vault/lookup_by_address | Look up a vault account by blockchain address *VaultsApi* | [**setCustomerRefIdForAddress**](docs/VaultsApi.md#setCustomerRefIdForAddress) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}/set_customer_ref_id | Assign AML customer reference ID *VaultsApi* | [**setVaultAccountAutoFuel**](docs/VaultsApi.md#setVaultAccountAutoFuel) | **POST** /vault/accounts/{vaultAccountId}/set_auto_fuel | Set auto fueling to on or off *VaultsApi* | [**setVaultAccountCustomerRefId**](docs/VaultsApi.md#setVaultAccountCustomerRefId) | **POST** /vault/accounts/{vaultAccountId}/set_customer_ref_id | Set an AML/KYT ID for a vault account @@ -601,6 +608,7 @@ Class | Method | HTTP request | Description - [AddressRegistryTravelRuleProvider](docs/AddressRegistryTravelRuleProvider.md) - [AddressRegistryVaultListOrder](docs/AddressRegistryVaultListOrder.md) - [AddressRegistryVaultOptOutItem](docs/AddressRegistryVaultOptOutItem.md) + - [AddressReverseLookupResponse](docs/AddressReverseLookupResponse.md) - [AlertExposureTypeEnum](docs/AlertExposureTypeEnum.md) - [AlertLevelEnum](docs/AlertLevelEnum.md) - [AmlAlert](docs/AmlAlert.md) @@ -626,6 +634,7 @@ Class | Method | HTTP request | Description - [ApproversConfig](docs/ApproversConfig.md) - [ApproversConfigApprovalGroupsInner](docs/ApproversConfigApprovalGroupsInner.md) - [Apy](docs/Apy.md) + - [ArsConfigResponse](docs/ArsConfigResponse.md) - [Asset](docs/Asset.md) - [AssetAlreadyExistHttpError](docs/AssetAlreadyExistHttpError.md) - [AssetAmount](docs/AssetAmount.md) @@ -698,8 +707,6 @@ Class | Method | HTTP request | Description - [ChapsAddress](docs/ChapsAddress.md) - [ChapsDestination](docs/ChapsDestination.md) - [ChapsPaymentInfo](docs/ChapsPaymentInfo.md) - - [CircleGatewayWalletInfoResponse](docs/CircleGatewayWalletInfoResponse.md) - - [CircleGatewayWalletStatusResponse](docs/CircleGatewayWalletStatusResponse.md) - [ClaimRewardsRequest](docs/ClaimRewardsRequest.md) - [CollectionBurnRequestDto](docs/CollectionBurnRequestDto.md) - [CollectionBurnResponseDto](docs/CollectionBurnResponseDto.md) @@ -712,8 +719,6 @@ Class | Method | HTTP request | Description - [CollectionTokenMetadataAttributeDto](docs/CollectionTokenMetadataAttributeDto.md) - [CollectionTokenMetadataDto](docs/CollectionTokenMetadataDto.md) - [CollectionType](docs/CollectionType.md) - - [CommittedQuoteEnum](docs/CommittedQuoteEnum.md) - - [CommittedQuoteType](docs/CommittedQuoteType.md) - [ComplianceResultFullPayload](docs/ComplianceResultFullPayload.md) - [ComplianceResultStatusesEnum](docs/ComplianceResultStatusesEnum.md) - [ComplianceResults](docs/ComplianceResults.md) @@ -803,6 +808,7 @@ Class | Method | HTTP request | Description - [CreateMultipleVaultAccountsJobStatus](docs/CreateMultipleVaultAccountsJobStatus.md) - [CreateNcwConnectionRequest](docs/CreateNcwConnectionRequest.md) - [CreateNetworkIdRequest](docs/CreateNetworkIdRequest.md) + - [CreateOffersRequest](docs/CreateOffersRequest.md) - [CreateOrderRequest](docs/CreateOrderRequest.md) - [CreatePayoutRequest](docs/CreatePayoutRequest.md) - [CreateQuote](docs/CreateQuote.md) @@ -961,6 +967,9 @@ Class | Method | HTTP request | Description - [GasStationPropertiesResponse](docs/GasStationPropertiesResponse.md) - [GasslessStandardConfigurations](docs/GasslessStandardConfigurations.md) - [GasslessStandardConfigurationsGaslessStandardConfigurationsValue](docs/GasslessStandardConfigurationsGaslessStandardConfigurationsValue.md) + - [GenieChatMessage](docs/GenieChatMessage.md) + - [GenieCreateSessionResponse](docs/GenieCreateSessionResponse.md) + - [GenieSendMessageRequest](docs/GenieSendMessageRequest.md) - [GetAPIUsersResponse](docs/GetAPIUsersResponse.md) - [GetActionResponse](docs/GetActionResponse.md) - [GetActionsResponse](docs/GetActionsResponse.md) @@ -1000,8 +1009,6 @@ Class | Method | HTTP request | Description - [Identification](docs/Identification.md) - [IdentificationPolicyOverride](docs/IdentificationPolicyOverride.md) - [IdlType](docs/IdlType.md) - - [IndicativeQuoteEnum](docs/IndicativeQuoteEnum.md) - - [IndicativeQuoteType](docs/IndicativeQuoteType.md) - [InitiatorConfig](docs/InitiatorConfig.md) - [InitiatorConfigPattern](docs/InitiatorConfigPattern.md) - [InstructionAmount](docs/InstructionAmount.md) @@ -1101,6 +1108,8 @@ Class | Method | HTTP request | Description - [NotificationPaginatedResponse](docs/NotificationPaginatedResponse.md) - [NotificationStatus](docs/NotificationStatus.md) - [NotificationWithData](docs/NotificationWithData.md) + - [Offer](docs/Offer.md) + - [OffersResponse](docs/OffersResponse.md) - [OnchainTransaction](docs/OnchainTransaction.md) - [OnchainTransactionsPagedResponse](docs/OnchainTransactionsPagedResponse.md) - [OneTimeAddress](docs/OneTimeAddress.md) @@ -1190,17 +1199,23 @@ Class | Method | HTTP request | Description - [QuoteExecutionRequestDetails](docs/QuoteExecutionRequestDetails.md) - [QuoteExecutionStep](docs/QuoteExecutionStep.md) - [QuoteExecutionTypeDetails](docs/QuoteExecutionTypeDetails.md) + - [QuoteExecutionTypeEnum](docs/QuoteExecutionTypeEnum.md) - [QuoteExecutionWithRequoteRequestDetails](docs/QuoteExecutionWithRequoteRequestDetails.md) - [QuoteExecutionWithRequoteResponseDetails](docs/QuoteExecutionWithRequoteResponseDetails.md) - - [QuoteFailure](docs/QuoteFailure.md) - - [QuotePropertiesDetails](docs/QuotePropertiesDetails.md) - - [QuoteTypeEnum](docs/QuoteTypeEnum.md) + - [QuoteOffer](docs/QuoteOffer.md) + - [QuoteOfferType](docs/QuoteOfferType.md) - [QuotesResponse](docs/QuotesResponse.md) + - [Rate](docs/Rate.md) + - [RateOffer](docs/RateOffer.md) + - [RateOfferType](docs/RateOfferType.md) + - [RatesRequest](docs/RatesRequest.md) + - [RatesResponse](docs/RatesResponse.md) - [ReQuoteDetails](docs/ReQuoteDetails.md) - [ReQuoteDetailsReQuote](docs/ReQuoteDetailsReQuote.md) - [ReadAbiFunction](docs/ReadAbiFunction.md) - [ReadCallFunctionDto](docs/ReadCallFunctionDto.md) - [ReadCallFunctionDtoAbiFunction](docs/ReadCallFunctionDtoAbiFunction.md) + - [ReasonForPaymentEnum](docs/ReasonForPaymentEnum.md) - [RecipientHandle](docs/RecipientHandle.md) - [RedeemFundsToLinkedDDAResponse](docs/RedeemFundsToLinkedDDAResponse.md) - [RegisterLegalEntityRequest](docs/RegisterLegalEntityRequest.md) @@ -1239,6 +1254,7 @@ Class | Method | HTTP request | Description - [SOLAccount](docs/SOLAccount.md) - [SOLAccountWithValue](docs/SOLAccountWithValue.md) - [ScopeItem](docs/ScopeItem.md) + - [ScopeItemFailure](docs/ScopeItemFailure.md) - [ScreeningAlertExposureTypeEnum](docs/ScreeningAlertExposureTypeEnum.md) - [ScreeningAmlAlert](docs/ScreeningAmlAlert.md) - [ScreeningAmlMatchedRule](docs/ScreeningAmlMatchedRule.md) @@ -1335,6 +1351,7 @@ Class | Method | HTTP request | Description - [SolanaInstructionWithValue](docs/SolanaInstructionWithValue.md) - [SolanaSimpleCreateParams](docs/SolanaSimpleCreateParams.md) - [SourceConfig](docs/SourceConfig.md) + - [SourceOfFunds](docs/SourceOfFunds.md) - [SourceTransferPeerPath](docs/SourceTransferPeerPath.md) - [SourceTransferPeerPathResponse](docs/SourceTransferPeerPathResponse.md) - [SpamOwnershipResponse](docs/SpamOwnershipResponse.md) @@ -1576,6 +1593,8 @@ Class | Method | HTTP request | Description - [UpdateVaultAccountRequest](docs/UpdateVaultAccountRequest.md) - [UpdateWebhookRequest](docs/UpdateWebhookRequest.md) - [UsWirePaymentInfo](docs/UsWirePaymentInfo.md) + - [UsdcGatewayWalletInfoResponse](docs/UsdcGatewayWalletInfoResponse.md) + - [UsdcGatewayWalletStatusResponse](docs/UsdcGatewayWalletStatusResponse.md) - [UserGroupCreateRequest](docs/UserGroupCreateRequest.md) - [UserGroupCreateResponse](docs/UserGroupCreateResponse.md) - [UserGroupResponse](docs/UserGroupResponse.md) diff --git a/api/openapi.yaml b/api/openapi.yaml index 153eb85d..ebc0c4c0 100644 --- a/api/openapi.yaml +++ b/api/openapi.yaml @@ -992,13 +992,13 @@ paths: x-content-type: application/json x-accepts: - application/json - /vault/accounts/{vaultAccountId}/circle_gateway: + /vault/accounts/{vaultAccountId}/usdc_gateway: get: description: |- - Returns the Circle Gateway wallet information associated with the given vault account. + Returns the USDC Gateway wallet information associated with the given vault account. **Note:** This endpoint is currently in beta and might be subject to changes.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - operationId: getCircleGatewayWalletInfoBeta + operationId: getUsdcGatewayWalletInfoBeta parameters: - description: The ID of the vault account explode: false @@ -1015,50 +1015,50 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/CircleGatewayWalletInfoResponse" - description: Circle Gateway wallet information + $ref: "#/components/schemas/UsdcGatewayWalletInfoResponse" + description: USDC Gateway wallet information headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get Circle Gateway wallet info + summary: Get USDC Gateway wallet info tags: - Vaults x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.vaults.getCircleGatewayWalletInfoBeta(vaultsApiGetCircleGatewayWalletInfoBetaRequest);" + code: "const response: Promise>\ + \ = fireblocks.vaults.getUsdcGatewayWalletInfoBeta(vaultsApiGetUsdcGatewayWalletInfoBetaRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response - = fireblocks.vaults().getCircleGatewayWalletInfoBeta(vaultAccountId); + code: CompletableFuture> response + = fireblocks.vaults().getUsdcGatewayWalletInfoBeta(vaultAccountId); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.vaults.get_circle_gateway_wallet_info_beta(vault_account_id); + code: response = fireblocks.vaults.get_usdc_gateway_wallet_info_beta(vault_account_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.vaults.getCircleGatewayWalletInfoBeta(vaultsApiGetCircleGatewayWalletInfoBetaRequest);" + source: "const response: Promise>\ + \ = fireblocks.vaults.getUsdcGatewayWalletInfoBeta(vaultsApiGetUsdcGatewayWalletInfoBetaRequest);" - lang: Java - source: CompletableFuture> response - = fireblocks.vaults().getCircleGatewayWalletInfoBeta(vaultAccountId); + source: CompletableFuture> response + = fireblocks.vaults().getUsdcGatewayWalletInfoBeta(vaultAccountId); - lang: Python - source: response = fireblocks.vaults.get_circle_gateway_wallet_info_beta(vault_account_id); + source: response = fireblocks.vaults.get_usdc_gateway_wallet_info_beta(vault_account_id); x-accepts: - application/json - /vault/accounts/{vaultAccountId}/circle_gateway/activate: + /vault/accounts/{vaultAccountId}/usdc_gateway/activate: post: description: |- - Activates the Circle Gateway wallet associated with the given vault account. If the wallet does not yet exist it is created in an activated state. + Activates the USDC Gateway wallet associated with the given vault account. If the wallet does not yet exist it is created in an activated state. **Note:** This endpoint is currently in beta and might be subject to changes.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver. - operationId: activateCircleGatewayWalletBeta + operationId: activateUsdcGatewayWalletBeta parameters: - description: The ID of the vault account explode: false @@ -1086,54 +1086,53 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/CircleGatewayWalletStatusResponse" - description: Circle Gateway wallet activated successfully + $ref: "#/components/schemas/UsdcGatewayWalletStatusResponse" + description: USDC Gateway wallet activated successfully headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Activate a Circle Gateway wallet + summary: Activate a USDC Gateway wallet tags: - Vaults x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.vaults.activateCircleGatewayWalletBeta(vaultsApiActivateCircleGatewayWalletBetaRequest);" + code: "const response: Promise>\ + \ = fireblocks.vaults.activateUsdcGatewayWalletBeta(vaultsApiActivateUsdcGatewayWalletBetaRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>\ - \ response = fireblocks.vaults().activateCircleGatewayWalletBeta(vaultAccountId,\ + code: "CompletableFuture> response\ + \ = fireblocks.vaults().activateUsdcGatewayWalletBeta(vaultAccountId,\ \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.vaults.activate_circle_gateway_wallet_beta(vault_account_id,\ + code: "response = fireblocks.vaults.activate_usdc_gateway_wallet_beta(vault_account_id,\ \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.vaults.activateCircleGatewayWalletBeta(vaultsApiActivateCircleGatewayWalletBetaRequest);" + source: "const response: Promise>\ + \ = fireblocks.vaults.activateUsdcGatewayWalletBeta(vaultsApiActivateUsdcGatewayWalletBetaRequest);" - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.vaults().activateCircleGatewayWalletBeta(vaultAccountId,\ - \ idempotencyKey);" + source: "CompletableFuture> response\ + \ = fireblocks.vaults().activateUsdcGatewayWalletBeta(vaultAccountId, idempotencyKey);" - lang: Python - source: "response = fireblocks.vaults.activate_circle_gateway_wallet_beta(vault_account_id,\ + source: "response = fireblocks.vaults.activate_usdc_gateway_wallet_beta(vault_account_id,\ \ idempotency_key);" x-accepts: - application/json - /vault/accounts/{vaultAccountId}/circle_gateway/deactivate: + /vault/accounts/{vaultAccountId}/usdc_gateway/deactivate: post: description: |- - Deactivates the Circle Gateway wallet associated with the given vault account. + Deactivates the USDC Gateway wallet associated with the given vault account. **Note:** This endpoint is currently in beta and might be subject to changes.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver. - operationId: deactivateCircleGatewayWalletBeta + operationId: deactivateUsdcGatewayWalletBeta parameters: - description: The ID of the vault account explode: false @@ -1161,42 +1160,42 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/CircleGatewayWalletStatusResponse" - description: Circle Gateway wallet deactivated successfully + $ref: "#/components/schemas/UsdcGatewayWalletStatusResponse" + description: USDC Gateway wallet deactivated successfully headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Deactivate a Circle Gateway wallet + summary: Deactivate a USDC Gateway wallet tags: - Vaults x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.vaults.deactivateCircleGatewayWalletBeta(vaultsApiDeactivateCircleGatewayWalletBetaRequest);" + code: "const response: Promise>\ + \ = fireblocks.vaults.deactivateUsdcGatewayWalletBeta(vaultsApiDeactivateUsdcGatewayWalletBetaRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>\ - \ response = fireblocks.vaults().deactivateCircleGatewayWalletBeta(vaultAccountId,\ + code: "CompletableFuture> response\ + \ = fireblocks.vaults().deactivateUsdcGatewayWalletBeta(vaultAccountId,\ \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.vaults.deactivate_circle_gateway_wallet_beta(vault_account_id,\ + code: "response = fireblocks.vaults.deactivate_usdc_gateway_wallet_beta(vault_account_id,\ \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.vaults.deactivateCircleGatewayWalletBeta(vaultsApiDeactivateCircleGatewayWalletBetaRequest);" + source: "const response: Promise>\ + \ = fireblocks.vaults.deactivateUsdcGatewayWalletBeta(vaultsApiDeactivateUsdcGatewayWalletBetaRequest);" - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.vaults().deactivateCircleGatewayWalletBeta(vaultAccountId,\ + source: "CompletableFuture> response\ + \ = fireblocks.vaults().deactivateUsdcGatewayWalletBeta(vaultAccountId,\ \ idempotencyKey);" - lang: Python - source: "response = fireblocks.vaults.deactivate_circle_gateway_wallet_beta(vault_account_id,\ + source: "response = fireblocks.vaults.deactivate_usdc_gateway_wallet_beta(vault_account_id,\ \ idempotency_key);" x-accepts: - application/json @@ -2898,6 +2897,81 @@ paths: source: response = fireblocks.vaults.get_vault_balance_by_asset(asset_id); x-accepts: - application/json + /vault/lookup_by_address: + get: + description: | + Resolves a blockchain address to the vault account that owns it. Returns the vault account ID and the blockchains associated with the address. + **Note:** This endpoint is currently in beta and might be subject to changes. + operationId: lookupVaultByAddress + parameters: + - description: The blockchain address to resolve. + explode: true + in: query + name: address + required: true + schema: + type: string + style: form + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/AddressReverseLookupResponse" + description: "Vault account that owns the address, with associated blockchains." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "401": + description: Unauthorized. Missing / invalid JWT token in Authorization + header. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "403": + description: Feature is not enabled for the workspace. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: Vault account not found for the supplied address + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Look up a vault account by blockchain address + tags: + - Vaults + x-rate-limit-category: read + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.vaults.lookupVaultByAddress(vaultsApiLookupVaultByAddressRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: CompletableFuture> response + = fireblocks.vaults().lookupVaultByAddress(address); + name: Fireblocks SDK Java example + - language: python + code: response = fireblocks.vaults.lookup_vault_by_address(address); + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.vaults.lookupVaultByAddress(vaultsApiLookupVaultByAddressRequest);" + - lang: Java + source: CompletableFuture> response + = fireblocks.vaults().lookupVaultByAddress(address); + - lang: Python + source: response = fireblocks.vaults.lookup_vault_by_address(address); + x-accepts: + - application/json /ncw/wallets/supported_assets: get: description: Get all the available supported assets for the Non-Custodial Wallet @@ -3722,7 +3796,7 @@ paths: summary: Refresh asset balance tags: - Embedded Wallets - x-rate-limit-category: write + x-rate-limit-category: async x-readme: code-samples: - language: typescript @@ -21661,6 +21735,125 @@ paths: source: response = fireblocks.trading_beta.get_trading_provider_by_id(provider_id); x-accepts: - application/json + /trading/rates: + post: + description: |- + Retrieve indicative exchange rate from specified providers for a given asset pair. + Rates are non-executable price signals intended for discovery and display purposes. + + 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: fetchRates + 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/RatesRequest" + required: true + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/RatesResponse" + description: Rate response + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: "Bad request: invalid input parameters, malformed request body,\ + \ or validation failure." + 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" + "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 rates + tags: + - Trading (Beta) + x-rate-limit-category: external_query + x-readme: + code-samples: + - language: typescript + code: "const response: Promise> = fireblocks.tradingBeta.fetchRates(tradingBetaApiFetchRatesRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response = fireblocks.tradingBeta().fetchRates(ratesRequest,\ + \ idempotencyKey);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.trading_beta.fetch_rates(rates_request, idempotency_key);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise> = fireblocks.tradingBeta.fetchRates(tradingBetaApiFetchRatesRequest);" + - lang: Java + source: "CompletableFuture> response = fireblocks.tradingBeta().fetchRates(ratesRequest,\ + \ idempotencyKey);" + - lang: Python + source: "response = fireblocks.trading_beta.fetch_rates(rates_request, idempotency_key);" + x-content-type: application/json + x-accepts: + - application/json /trading/quotes: post: description: |- @@ -21779,6 +21972,131 @@ paths: x-content-type: application/json x-accepts: - application/json + /trading/offers: + post: + description: |- + Retrieve all available offers across the workspace for a given asset pair. + Always operates in open scope — no provider or account selection required. + Returns a mix of indicative rates and committed quotes as applicable per provider. + + If no slippageBps is provided, it defaults to 50 bps (0.5%). + Slippage and settlement configuration do not affect the returned rate. + + 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, Editor. + + 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: fetchAllOffers + 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/CreateOffersRequest" + required: true + responses: + "201": + content: + application/json: + schema: + $ref: "#/components/schemas/OffersResponse" + description: Offers response + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: "Bad request: invalid input parameters, malformed request body,\ + \ or validation failure." + 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" + "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 all offers + tags: + - Trading (Beta) + x-rate-limit-category: external_query + x-readme: + code-samples: + - language: typescript + code: "const response: Promise> = fireblocks.tradingBeta.fetchAllOffers(tradingBetaApiFetchAllOffersRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response = fireblocks.tradingBeta().fetchAllOffers(createOffersRequest,\ + \ idempotencyKey);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.trading_beta.fetch_all_offers(create_offers_request,\ + \ idempotency_key);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise> = fireblocks.tradingBeta.fetchAllOffers(tradingBetaApiFetchAllOffersRequest);" + - lang: Java + source: "CompletableFuture> response = fireblocks.tradingBeta().fetchAllOffers(createOffersRequest,\ + \ idempotencyKey);" + - lang: Python + source: "response = fireblocks.trading_beta.fetch_all_offers(create_offers_request,\ + \ idempotency_key);" + x-content-type: application/json + x-accepts: + - application/json /trading/orders: get: description: |- @@ -25297,8 +25615,9 @@ paths: - application/json /screening/transaction/{txId}/bypass_screening_policy: post: - description: This endpoint is restricted to Admin API users and is only applicable - to outgoing transactions. + description: "Triggers a new transaction, with the API user as the initiator,\ + \ bypassing the screening policy checks. This endpoint is restricted to Admin\ + \ API users and is only applicable to outgoing transactions." operationId: retryRejectedTransactionBypassScreeningChecks parameters: - description: The transaction id that was rejected by screening checks @@ -25333,9 +25652,7 @@ paths: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: "Calling the \"Bypass Screening Policy\" API endpoint triggers a new\ - \ transaction, with the API user as the initiator, bypassing the screening\ - \ policy check" + summary: Bypass Screening Policy tags: - Compliance x-rate-limit-category: write @@ -25966,6 +26283,136 @@ paths: x-content-type: application/json x-accepts: - application/json + /screening/ars/config/activate: + post: + description: "Activates ARS (Address Registry Screening) for the authenticated\ + \ tenant (sets config.active to true). Once activated, ARS screening applies\ + \ to matching transactions." + operationId: activateArsConfig + 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/ArsConfigResponse" + description: ARS configuration activated. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: Tenant not opted-in for address registry. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Activate ARS (Address Registry Screening) + tags: + - Compliance + x-rate-limit-category: write + x-readme: + code-samples: + - language: typescript + code: "const response: Promise> =\ + \ fireblocks.compliance.activateArsConfig(complianceApiActivateArsConfigRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: CompletableFuture> response = fireblocks.compliance().activateArsConfig(idempotencyKey); + name: Fireblocks SDK Java example + - language: python + code: response = fireblocks.compliance.activate_ars_config(idempotency_key); + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise> =\ + \ fireblocks.compliance.activateArsConfig(complianceApiActivateArsConfigRequest);" + - lang: Java + source: CompletableFuture> response = fireblocks.compliance().activateArsConfig(idempotencyKey); + - lang: Python + source: response = fireblocks.compliance.activate_ars_config(idempotency_key); + x-accepts: + - application/json + /screening/ars/config/deactivate: + post: + description: "Deactivates ARS (Address Registry Screening) for the authenticated\ + \ tenant (sets config.active to false). Once deactivated, ARS screening no\ + \ longer applies until activated again." + operationId: deactivateArsConfig + 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/ArsConfigResponse" + description: ARS configuration deactivated. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: Tenant not opted-in for address registry. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Deactivate ARS (Address Registry Screening) + tags: + - Compliance + x-rate-limit-category: write + x-readme: + code-samples: + - language: typescript + code: "const response: Promise> =\ + \ fireblocks.compliance.deactivateArsConfig(complianceApiDeactivateArsConfigRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: CompletableFuture> response = fireblocks.compliance().deactivateArsConfig(idempotencyKey); + name: Fireblocks SDK Java example + - language: python + code: response = fireblocks.compliance.deactivate_ars_config(idempotency_key); + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise> =\ + \ fireblocks.compliance.deactivateArsConfig(complianceApiDeactivateArsConfigRequest);" + - lang: Java + source: CompletableFuture> response = fireblocks.compliance().deactivateArsConfig(idempotencyKey); + - lang: Python + source: response = fireblocks.compliance.deactivate_ars_config(idempotency_key); + x-accepts: + - application/json /screening/trlink/partners: get: description: "Retrieves a list of all available Travel Rule Support integration\ @@ -32141,24 +32588,6 @@ paths: schema: type: string style: form - - description: Include change outputs - example: true - explode: true - in: query - name: useChange - required: false - schema: - type: boolean - style: form - - description: Include coinbase outputs - example: true - explode: true - in: query - name: useCoinbase - required: false - schema: - type: boolean - style: form responses: "200": content: @@ -32184,14 +32613,12 @@ paths: - language: java code: "CompletableFuture> response = fireblocks.uTXOManagementBeta().getUtxos(vaultAccountId,\ \ assetId, pageCursor, pageSize, sort, order, includeAllLabels, includeAnyLabels,\ - \ excludeAnyLabels, includeStatuses, address, minAmount, maxAmount, useChange,\ - \ useCoinbase);" + \ excludeAnyLabels, includeStatuses, address, minAmount, maxAmount);" name: Fireblocks SDK Java example - language: python code: "response = fireblocks.u_t_x_o_management_beta.get_utxos(vault_account_id,\ \ asset_id, page_cursor, page_size, sort, order, include_all_labels, include_any_labels,\ - \ exclude_any_labels, include_statuses, address, min_amount, max_amount,\ - \ use_change, use_coinbase);" + \ exclude_any_labels, include_statuses, address, min_amount, max_amount);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript @@ -32200,13 +32627,11 @@ paths: - lang: Java source: "CompletableFuture> response = fireblocks.uTXOManagementBeta().getUtxos(vaultAccountId,\ \ assetId, pageCursor, pageSize, sort, order, includeAllLabels, includeAnyLabels,\ - \ excludeAnyLabels, includeStatuses, address, minAmount, maxAmount, useChange,\ - \ useCoinbase);" + \ excludeAnyLabels, includeStatuses, address, minAmount, maxAmount);" - lang: Python source: "response = fireblocks.u_t_x_o_management_beta.get_utxos(vault_account_id,\ \ asset_id, page_cursor, page_size, sort, order, include_all_labels, include_any_labels,\ - \ exclude_any_labels, include_statuses, address, min_amount, max_amount,\ - \ use_change, use_coinbase);" + \ exclude_any_labels, include_statuses, address, min_amount, max_amount);" x-accepts: - application/json /utxo_management/{vaultAccountId}/{assetId}/labels: @@ -32824,6 +33249,144 @@ paths: x-content-type: application/json x-accepts: - application/json + /genie/sessions: + post: + description: | + Starts a new conversation with Genie, the Fireblocks AI assistant. Returns a `sessionId` — pass it when sending messages, and reuse it across calls to keep one continuous conversation. + + **Note:** This endpoint is currently in beta and might be subject to changes. + operationId: createGenieSession + 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/GenieCreateSessionResponse" + description: Session created + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Create a Genie session + tags: + - Genie (Beta) + x-rate-limit-category: write + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.genieBeta.createGenieSession(genieBetaApiCreateGenieSessionRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: CompletableFuture> response + = fireblocks.genieBeta().createGenieSession(idempotencyKey); + name: Fireblocks SDK Java example + - language: python + code: response = fireblocks.genie_beta.create_genie_session(idempotency_key); + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.genieBeta.createGenieSession(genieBetaApiCreateGenieSessionRequest);" + - lang: Java + source: CompletableFuture> response + = fireblocks.genieBeta().createGenieSession(idempotencyKey); + - lang: Python + source: response = fireblocks.genie_beta.create_genie_session(idempotency_key); + x-accepts: + - application/json + /genie/sessions/{sessionId}/messages: + post: + description: | + Sends a question to Genie and returns a single answer. Reuse the `sessionId` from the original session on follow-up messages to continue the conversation with prior context. + + **Note:** This endpoint is currently in beta and might be subject to changes. + operationId: sendGenieMessage + parameters: + - description: The Genie session ID returned from `POST /genie/sessions`. + explode: false + in: path + name: sessionId + required: true + schema: + example: 7c1b2e1c-1c2a-4f3a-9c2d-2e0a8a1f8e1a + 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/GenieSendMessageRequest" + required: true + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/GenieChatMessage" + description: Genie response + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Send a message to a Genie session + tags: + - Genie (Beta) + x-rate-limit-category: write + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.genieBeta.sendGenieMessage(genieBetaApiSendGenieMessageRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response\ + \ = fireblocks.genieBeta().sendGenieMessage(genieSendMessageRequest, sessionId,\ + \ idempotencyKey);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.genie_beta.send_genie_message(genie_send_message_request,\ + \ session_id, idempotency_key);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.genieBeta.sendGenieMessage(genieBetaApiSendGenieMessageRequest);" + - lang: Java + source: "CompletableFuture> response\ + \ = fireblocks.genieBeta().sendGenieMessage(genieSendMessageRequest, sessionId,\ + \ idempotencyKey);" + - lang: Python + source: "response = fireblocks.genie_beta.send_genie_message(genie_send_message_request,\ + \ session_id, idempotency_key);" + x-content-type: application/json + x-accepts: + - application/json components: headers: X-Request-ID: @@ -33755,7 +34318,7 @@ components: description: Auto Fuel type: boolean type: object - CircleGatewayWalletInfoResponse: + UsdcGatewayWalletInfoResponse: example: walletId: b68a9e08-b59c-4ff9-893f-52d4f78c21e6 symbol: USDC @@ -33765,15 +34328,15 @@ components: status: ACTIVATED properties: walletId: - description: The Circle Gateway wallet identifier + description: The USDC Gateway wallet identifier example: b68a9e08-b59c-4ff9-893f-52d4f78c21e6 type: string type: - description: The Circle Gateway provider identifier + description: The USDC Gateway provider identifier example: CIRCLEGATEWAY type: string status: - description: Current activation status of the Circle Gateway wallet + description: Current activation status of the USDC Gateway wallet enum: - ACTIVATED - DEACTIVATED @@ -33797,17 +34360,17 @@ components: - type - walletId type: object - CircleGatewayWalletStatusResponse: + UsdcGatewayWalletStatusResponse: example: walletId: b68a9e08-b59c-4ff9-893f-52d4f78c21e6 status: ACTIVATED properties: walletId: - description: The Circle Gateway wallet identifier + description: The USDC Gateway wallet identifier example: b68a9e08-b59c-4ff9-893f-52d4f78c21e6 type: string status: - description: Current activation status of the Circle Gateway wallet + description: Current activation status of the USDC Gateway wallet enum: - ACTIVATED - DEACTIVATED @@ -34455,6 +35018,45 @@ components: items: $ref: "#/components/schemas/VaultAsset" type: array + AddressReverseLookupResponse: + description: Reverse-lookup result mapping a blockchain address to its owning + vault account. + example: + address: address + blockchains: + - ETH + - MATIC + vaultAccountId: "0" + type: VAULT_ACCOUNT + properties: + address: + description: The queried blockchain address. + type: string + type: + description: Source type of the resolved address. + enum: + - VAULT_ACCOUNT + example: VAULT_ACCOUNT + type: string + vaultAccountId: + description: Vault account ID that owns the address. + example: "0" + type: string + blockchains: + description: Blockchain assets associated with this address in the vault + account. + example: + - ETH + - MATIC + items: + type: string + type: array + required: + - address + - blockchains + - type + - vaultAccountId + type: object EmbeddedWalletAssetResponse: example: coinType: 0 @@ -42926,8 +43528,6 @@ components: address: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa includeAllLabels: - cold-storage - useCoinbase: true - useChange: true excludeAnyLabels: - deprecated maxAmount: "9.999" @@ -42966,14 +43566,6 @@ components: description: "Maximum UTXO amount in the asset's base unit (e.g., BTC)." example: "9.999" type: string - useChange: - description: Set to false to exclude change UTXOs. Default is true. - example: true - type: boolean - useCoinbase: - description: Set to false to exclude coinbase UTXOs. Default is true. - example: true - type: boolean type: object UtxoInput: example: @@ -43026,6 +43618,7 @@ components: description: | For UTXO-based blockchains only. Controls which UTXOs are used for automatic selection. Cannot be used together with extraParameters.inputsSelection. This feature is currently in beta and might be subject to changes. example: + selectionStrategy: AMOUNT_ASC inputSelection: inputsToExclude: - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c @@ -43046,12 +43639,17 @@ components: address: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa includeAllLabels: - cold-storage - useCoinbase: true - useChange: true excludeAnyLabels: - deprecated maxAmount: "9.999" properties: + selectionStrategy: + description: | + Optional override for the UTXO selection strategy configured at the vault/tenant level. + enum: + - AMOUNT_ASC + - AMOUNT_DESC + type: string filters: $ref: "#/components/schemas/UtxoSelectionFilters" inputSelection: @@ -46766,6 +47364,7 @@ components: operation: TRANSFER replaceTxByHash: 00000000-0000-0000-0000-000000000000 utxoSelectionParams: + selectionStrategy: AMOUNT_ASC inputSelection: inputsToExclude: - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c @@ -46786,8 +47385,6 @@ components: address: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa includeAllLabels: - cold-storage - useCoinbase: true - useChange: true excludeAnyLabels: - deprecated maxAmount: "9.999" @@ -49974,6 +50571,7 @@ components: operation: TRANSFER replaceTxByHash: 00000000-0000-0000-0000-000000000000 utxoSelectionParams: + selectionStrategy: AMOUNT_ASC inputSelection: inputsToExclude: - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c @@ -49994,8 +50592,6 @@ components: address: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa includeAllLabels: - cold-storage - useCoinbase: true - useChange: true excludeAnyLabels: - deprecated maxAmount: "9.999" @@ -51238,6 +51834,7 @@ components: operation: TRANSFER replaceTxByHash: 00000000-0000-0000-0000-000000000000 utxoSelectionParams: + selectionStrategy: AMOUNT_ASC inputSelection: inputsToExclude: - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c @@ -51258,8 +51855,6 @@ components: address: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa includeAllLabels: - cold-storage - useCoinbase: true - useChange: true excludeAnyLabels: - deprecated maxAmount: "9.999" @@ -58964,6 +59559,190 @@ components: required: - providerId type: object + RatesRequest: + example: + baseAssetId: BTC + scope: + - providerId: prov_8c3f1a4b2d6e9f7c + accountId: acc_5e9a2d1c4b7f3e8a + - providerId: prov_8c3f1a4b2d6e9f7c + accountId: acc_5e9a2d1c4b7f3e8a + quoteAssetId: USD + properties: + scope: + description: One or more providers/accounts to request rates from. At least + one scope item is required. + items: + $ref: "#/components/schemas/ScopeItem" + minItems: 1 + type: array + baseAssetId: + description: The source asset identifier. + example: BTC + type: string + quoteAssetId: + description: The target asset identifier. + example: USD + type: string + required: + - baseAssetId + - quoteAssetId + - scope + type: object + AccountAccess: + example: + type: PROVIDER_ACCOUNT + providerId: bridge-provider-001 + accountId: acc_9f4e2d8b1c6a5e73 + properties: + type: + description: Indicates this uses account-based access + enum: + - PROVIDER_ACCOUNT + type: string + providerId: + description: The ID of the provider + type: string + accountId: + description: The ID of the account + type: string + required: + - accountId + - type + type: object + DirectAccess: + example: + type: PROVIDER + providerId: uniswap-v3-provider + properties: + type: + description: Indicates this uses direct provider access + enum: + - PROVIDER + type: string + providerId: + description: The ID of the provider + type: string + required: + - providerId + - type + type: object + AccessType: + discriminator: + mapping: + PROVIDER_ACCOUNT: "#/components/schemas/AccountAccess" + PROVIDER: "#/components/schemas/DirectAccess" + propertyName: type + oneOf: + - $ref: "#/components/schemas/AccountAccess" + - $ref: "#/components/schemas/DirectAccess" + Rate: + example: + baseAssetId: baseAssetId + baseAssetRail: BLOCKCHAIN + rate: "1.2345" + quoteAssetRail: BLOCKCHAIN + quoteAssetId: quoteAssetId + via: + type: PROVIDER_ACCOUNT + providerId: bridge-provider-001 + accountId: acc_9f4e2d8b1c6a5e73 + properties: + via: + $ref: "#/components/schemas/AccessType" + baseAssetId: + description: The source asset identifier + type: string + baseAssetRail: + $ref: "#/components/schemas/TransferRail" + quoteAssetId: + description: The target asset identifier + type: string + quoteAssetRail: + $ref: "#/components/schemas/TransferRail" + rate: + description: "The indicative exchange rate — the number of units of the\ + \ quote asset that equal 1 unit of the base asset. For example, if base\ + \ is BTC and quote is USD, a rate of 75000 means 1 BTC = 75,000 USD." + example: "1.2345" + pattern: ^\d+(\.\d+)?$ + type: string + required: + - baseAssetId + - quoteAssetId + - rate + - via + type: object + ScopeItemFailure: + example: + accountId: acc_9f4e2d8b1c6a5e73 + providerId: BRIDGE + error: + code: 900 + message: "Invalid base amount: must be greater than 0" + properties: + providerId: + description: Identifier of the provider for which the request failed. + example: BRIDGE + type: string + accountId: + description: Identifier of the account for which the request failed (optional). + example: acc_9f4e2d8b1c6a5e73 + type: string + error: + $ref: "#/components/schemas/TradingErrorSchema" + required: + - error + - providerId + type: object + RatesResponse: + example: + rates: + - baseAssetId: baseAssetId + baseAssetRail: BLOCKCHAIN + rate: "1.2345" + quoteAssetRail: BLOCKCHAIN + quoteAssetId: quoteAssetId + via: + type: PROVIDER_ACCOUNT + providerId: bridge-provider-001 + accountId: acc_9f4e2d8b1c6a5e73 + - baseAssetId: baseAssetId + baseAssetRail: BLOCKCHAIN + rate: "1.2345" + quoteAssetRail: BLOCKCHAIN + quoteAssetId: quoteAssetId + via: + type: PROVIDER_ACCOUNT + providerId: bridge-provider-001 + accountId: acc_9f4e2d8b1c6a5e73 + errors: + - accountId: acc_9f4e2d8b1c6a5e73 + providerId: BRIDGE + error: + code: 900 + message: "Invalid base amount: must be greater than 0" + - accountId: acc_9f4e2d8b1c6a5e73 + providerId: BRIDGE + error: + code: 900 + message: "Invalid base amount: must be greater than 0" + properties: + rates: + description: List of indicative rates returned for the requested asset pair. + items: + $ref: "#/components/schemas/Rate" + type: array + errors: + description: Partial failures encountered while requesting rates. Empty + when all rate requests succeed. + items: + $ref: "#/components/schemas/ScopeItemFailure" + type: array + required: + - errors + - rates + type: object PlatformPeerType: enum: - VAULT_ACCOUNT @@ -59463,53 +60242,6 @@ components: - scope - side type: object - AccountAccess: - example: - type: PROVIDER_ACCOUNT - providerId: bridge-provider-001 - accountId: acc_9f4e2d8b1c6a5e73 - properties: - type: - description: Indicates this uses account-based access - enum: - - PROVIDER_ACCOUNT - type: string - providerId: - description: The ID of the provider - type: string - accountId: - description: The ID of the account - type: string - required: - - accountId - - type - type: object - DirectAccess: - example: - type: PROVIDER - providerId: uniswap-v3-provider - properties: - type: - description: Indicates this uses direct provider access - enum: - - PROVIDER - type: string - providerId: - description: The ID of the provider - type: string - required: - - providerId - - type - type: object - AccessType: - discriminator: - mapping: - PROVIDER_ACCOUNT: "#/components/schemas/AccountAccess" - PROVIDER: "#/components/schemas/DirectAccess" - propertyName: type - oneOf: - - $ref: "#/components/schemas/AccountAccess" - - $ref: "#/components/schemas/DirectAccess" ExecutionStepType: enum: - APPROVE @@ -59607,40 +60339,73 @@ components: required: - type type: object - QuotePropertiesDetails: + Quote: + description: A committed executable quote for a trading pair. properties: via: $ref: "#/components/schemas/AccessType" id: + description: The unique identifier of the quote. + example: quote_8f2e4d1a9c5b7e3f type: string quoteAssetId: + description: The target asset identifier. + example: USD type: string + quoteAssetRail: + $ref: "#/components/schemas/TransferRail" baseAssetId: + description: The source asset identifier. + example: BTC type: string + baseAssetRail: + $ref: "#/components/schemas/TransferRail" baseAmount: + description: The amount of the base asset. + example: "1000.00" type: string quoteAmount: + description: The amount of the quote asset. + example: "0.02458" type: string priceImpact: + description: The estimated price impact as a decimal fraction. + example: 0.005 type: number quoteMinAmount: + description: The minimum guaranteed amount of the quote asset. + example: "0.02450" type: string + isSlippageApplied: + default: false + description: Indicates if slippage was applied to the quote. + type: boolean executionSteps: + description: Ordered list of execution steps for the quote. items: $ref: "#/components/schemas/QuoteExecutionStep" type: array generalFees: + description: General fees associated with the quote. items: $ref: "#/components/schemas/Fee" type: array side: $ref: "#/components/schemas/Side" expiresAt: - description: The expiration time of the quote in ISO format. + description: The expiration time of the quote in ISO 8601 format. + example: 2024-01-15T10:35:00.000Z type: string orderCreationRequirements: description: | - A JSON Schema Draft-7 document in string format describing the fields required when creating an order for this quote. The schema mirrors the structure of CreateOrderRequest.participantsIdentification json schema, so clients can validate their order payload before sending. + A JSON Schema Draft-7 document in string format describing the fields required when creating an order so clients can validate their order payload before sending. + type: string + type: + description: The type of the quote. + enum: + - COMMITTED + - INDICATIVE + example: COMMITTED type: string required: - baseAmount @@ -59650,63 +60415,8 @@ components: - quoteAmount - quoteAssetId - side - - via - type: object - CommittedQuoteEnum: - description: Indicates this is a committed quote - enum: - - COMMITTED - type: string - CommittedQuoteType: - example: - type: COMMITTED - properties: - type: - $ref: "#/components/schemas/CommittedQuoteEnum" - required: - type - type: object - IndicativeQuoteEnum: - description: Indicates this is an indicative quote - enum: - - INDICATIVE - type: string - IndicativeQuoteType: - example: - type: INDICATIVE - properties: - type: - $ref: "#/components/schemas/IndicativeQuoteEnum" - required: - - type - type: object - Quote: - allOf: - - $ref: "#/components/schemas/QuotePropertiesDetails" - - discriminator: - mapping: - COMMITTED: "#/components/schemas/CommittedQuoteType" - INDICATIVE: "#/components/schemas/IndicativeQuoteType" - propertyName: type - oneOf: - - $ref: "#/components/schemas/CommittedQuoteType" - - $ref: "#/components/schemas/IndicativeQuoteType" - QuoteFailure: - properties: - providerId: - description: Identifier of the provider for which the quote request failed. - example: BRIDGE - type: string - accountId: - description: Identifier of the account for which the quote request failed - (optional). - example: acc_9f4e2d8b1c6a5e73 - type: string - error: - $ref: "#/components/schemas/TradingErrorSchema" - required: - - error - - providerId + - via type: object QuotesResponse: example: @@ -59757,12 +60467,164 @@ components: description: List of partial failures encountered while requesting quotes. Empty when all quote attempts succeed. items: - $ref: "#/components/schemas/QuoteFailure" + $ref: "#/components/schemas/ScopeItemFailure" type: array required: - quoteFailures - quotes type: object + CreateOffersRequest: + example: + baseAssetId: BTC + slippageBps: 801 + side: BUY + baseAssetRail: BLOCKCHAIN + quoteAssetRail: BLOCKCHAIN + quoteAssetId: USD + baseAmount: "100.00" + settlement: + type: DVP + sourceAccount: + type: VAULT_ACCOUNT + id: vault_acc_3f7e1d9b2c5a8e4f + destinationAccount: + type: VAULT_ACCOUNT + id: vault_acc_7b2e5d8f1c4a9e3b + properties: + baseAssetId: + description: The source asset identifier. + example: BTC + type: string + baseAssetRail: + $ref: "#/components/schemas/TransferRail" + quoteAssetId: + description: The target asset identifier. + example: USD + type: string + quoteAssetRail: + $ref: "#/components/schemas/TransferRail" + baseAmount: + description: The amount to get offers for + example: "100.00" + pattern: ^\d+(\.\d+)?$ + type: string + slippageBps: + default: 50 + description: "Slippage tolerance in basis points (bps) for defi quotes -\ + \ 1 is 0.01% and 10000 is 100%. If not set, defaults to 50 bps (0.5%)." + maximum: 10000 + minimum: 1 + type: integer + settlement: + $ref: "#/components/schemas/DVPSettlement" + side: + $ref: "#/components/schemas/Side" + required: + - baseAmount + - baseAssetId + - quoteAssetId + - side + type: object + RateOfferType: + properties: + offerType: + description: The type of offer — RATE for indicative pricing. + enum: + - RATE + example: RATE + type: string + required: + - offerType + type: object + RateOffer: + allOf: + - $ref: "#/components/schemas/Rate" + - $ref: "#/components/schemas/RateOfferType" + example: + baseAssetId: baseAssetId + offerType: RATE + baseAssetRail: BLOCKCHAIN + rate: "1.2345" + quoteAssetRail: BLOCKCHAIN + quoteAssetId: quoteAssetId + via: + type: PROVIDER_ACCOUNT + providerId: bridge-provider-001 + accountId: acc_9f4e2d8b1c6a5e73 + QuoteOfferType: + properties: + offerType: + description: The type of offer — QUOTE for executable committed quotes. + enum: + - QUOTE + example: QUOTE + type: string + required: + - offerType + type: object + QuoteOffer: + allOf: + - $ref: "#/components/schemas/Quote" + - $ref: "#/components/schemas/QuoteOfferType" + Offer: + discriminator: + mapping: + RATE: "#/components/schemas/RateOffer" + QUOTE: "#/components/schemas/QuoteOffer" + propertyName: offerType + oneOf: + - $ref: "#/components/schemas/RateOffer" + - $ref: "#/components/schemas/QuoteOffer" + OffersResponse: + example: + offers: + - baseAssetId: baseAssetId + offerType: RATE + baseAssetRail: BLOCKCHAIN + rate: "1.2345" + quoteAssetRail: BLOCKCHAIN + quoteAssetId: quoteAssetId + via: + type: PROVIDER_ACCOUNT + providerId: bridge-provider-001 + accountId: acc_9f4e2d8b1c6a5e73 + - baseAssetId: baseAssetId + offerType: RATE + baseAssetRail: BLOCKCHAIN + rate: "1.2345" + quoteAssetRail: BLOCKCHAIN + quoteAssetId: quoteAssetId + via: + type: PROVIDER_ACCOUNT + providerId: bridge-provider-001 + accountId: acc_9f4e2d8b1c6a5e73 + errors: + - accountId: acc_9f4e2d8b1c6a5e73 + providerId: BRIDGE + error: + code: 900 + message: "Invalid base amount: must be greater than 0" + - accountId: acc_9f4e2d8b1c6a5e73 + providerId: BRIDGE + error: + code: 900 + message: "Invalid base amount: must be greater than 0" + properties: + offers: + description: List of offers returned for the requested asset pair. + items: + $ref: "#/components/schemas/Offer" + type: array + errors: + description: Partial failures encountered while requesting offers. Empty + when all offer requests succeed. + items: + $ref: "#/components/schemas/ScopeItemFailure" + type: array + required: + - errors + - offers + type: object OrderStatus: enum: - CREATED @@ -59916,7 +60778,7 @@ components: quoteAssetId: BTC side: BUY baseAmount: "1000.00" - QuoteTypeEnum: + QuoteExecutionTypeEnum: description: Order type for quote orders enum: - QUOTE @@ -59927,7 +60789,7 @@ components: quoteId: quote_8f2e4d1a9c5b7e3f properties: type: - $ref: "#/components/schemas/QuoteTypeEnum" + $ref: "#/components/schemas/QuoteExecutionTypeEnum" quoteId: description: Quote ID for quote orders type: string @@ -60035,6 +60897,50 @@ components: oneOf: - $ref: "#/components/schemas/PrefundedSettlement" - $ref: "#/components/schemas/DVPSettlement" + ReasonForPaymentEnum: + description: | + The reason or purpose of the payment. Used by providers (e.g. CPN) that require a categorical reason for cross-border payment compliance and reporting. Optional at the API level; runtime enforcement is handled by the calling service against the provider's requirements. + enum: + - INVOICE_PAYMENT + - SERVICES_PAYMENT + - SOFTWARE_PAYMENT + - IMPORTED_GOODS_PAYMENT + - TRAVEL_SERVICES + - TRANSFER_TO_OWN_ACCOUNT + - LOAN_REPAYMENT + - PAYROLL + - PROPERTY_RENTAL + - INFORMATION_SERVICE_CHARGES + - ADVERTISING_AND_PUBLIC_RELATIONS + - INTELLECTUAL_PROPERTY_FEES + - FINANCIAL_SERVICE_FEES + - ADVISORY_AND_TECHNICAL_FEES + - REPRESENTATIVE_OFFICE_EXPENSES + - TAX_PAYMENT + - GOODS_TRANSPORTATION_FEES + - CONSTRUCTION_EXPENSES + - INSURANCE_PREMIUM + - GENERAL_GOODS_TRADE + - INSURANCE_CLAIMS_PAYMENT + - FAMILY_REMITTANCE + - EDUCATION_EXPENSES + - MEDICAL_TREATMENT + - DONATIONS + - MUTUAL_FUND_INVESTMENT + - CURRENCY_EXCHANGE + - ADVANCE_GOODS_PAYMENT + - MERCHANT_SETTLEMENT + - REPATRIATION_FUND_SETTLEMENT + type: string + SourceOfFunds: + description: | + Information about the source and purpose of the funds being transacted. Used by providers that require additional context for compliance and reporting (e.g. CPN cross-border payments). + example: + reasonForPayment: INVOICE_PAYMENT + properties: + reasonForPayment: + $ref: "#/components/schemas/ReasonForPaymentEnum" + type: object CreateOrderRequest: example: via: @@ -60055,6 +60961,8 @@ components: destinationAccount: type: VAULT_ACCOUNT id: vault_acc_7b2e5d8f1c4a9e3b + sourceOfFunds: + reasonForPayment: INVOICE_PAYMENT customerInternalReferenceId: order_ref_2024_001 note: Monthly investment order properties: @@ -60066,6 +60974,8 @@ components: $ref: "#/components/schemas/Settlement" participantsIdentification: $ref: "#/components/schemas/ParticipantsIdentification" + sourceOfFunds: + $ref: "#/components/schemas/SourceOfFunds" customerInternalReferenceId: description: Internal reference ID for the customer type: string @@ -60217,7 +61127,7 @@ components: QuoteExecutionTypeDetails: properties: type: - $ref: "#/components/schemas/QuoteTypeEnum" + $ref: "#/components/schemas/QuoteExecutionTypeEnum" quoteId: description: Quote ID for quote orders type: string @@ -68493,6 +69403,23 @@ components: example: 3600 type: integer type: object + ArsConfigResponse: + description: "ARS (Address Registry Screening) configuration for the tenant:\ + \ active flag and last update time." + example: + lastUpdate: 2026-01-29T12:00:00Z + active: true + properties: + active: + description: Whether ARS is active for the tenant + example: true + type: boolean + lastUpdate: + description: Last update timestamp of the configuration + example: 2026-01-29T12:00:00Z + format: date-time + type: string + type: object TRLinkPartnerResponse: example: baseUrl: https://api.notabene.id @@ -68637,18 +69564,17 @@ components: type: object TRLinkCustomerResponse: example: - vaults: - - 0 - - 1 - - 2 dateOfIncorporation: 2015-03-15 discoverable: discoverable fullLegalName: Acme Corporation Ltd. lastUpdate: 2025-01-24T08:45:00Z - tenantId: 550e8400-e29b-41d4-a716-446655440003 - trPrimaryPurpose: Virtual asset service provider - nationalIdentification: "{\"nationalIdentifierType\":\"LEIXG\",\"nationalIdentifier\"\ - :\"5493001KJTIIGC8Y1R12\",\"countryOfIssue\":\"US\"}" + vaults: + - 0 + - 1 + - 2 + trPrimaryPurpose: trlink + nationalIdentification: "{\"nationalIdentifier\":\"EXAMPLELEI1234567890\"\ + ,\"nationalIdentifierType\":\"LEIX\",\"countryOfIssue\":\"US\"}" id: 550e8400-e29b-41d4-a716-446655440001 geographicAddress: country: US @@ -68671,11 +69597,6 @@ components: example: 550e8400-e29b-41d4-a716-446655440001 format: uuid type: string - tenantId: - description: Fireblocks tenant ID - example: 550e8400-e29b-41d4-a716-446655440003 - format: uuid - type: string discoverable: $ref: "#/components/schemas/TRLinkDiscoverableStatus" shortName: @@ -68693,9 +69614,13 @@ components: example: US type: string nationalIdentification: - description: National identification (serialized as string) - example: "{\"nationalIdentifierType\":\"LEIXG\",\"nationalIdentifier\":\"\ - 5493001KJTIIGC8Y1R12\",\"countryOfIssue\":\"US\"}" + description: "National identification, returned exactly as stored: a compact,\ + \ whitespace-free JSON-encoded string with these optional keys (in this\ + \ order): `nationalIdentifier`, `nationalIdentifierType` (e.g. `LEIX`\ + \ for an LEI), `countryOfIssue` (ISO 3166-1 alpha-2), `registrationAuthority`.\ + \ Maximum length is 240 characters." + example: "{\"nationalIdentifier\":\"EXAMPLELEI1234567890\",\"nationalIdentifierType\"\ + :\"LEIX\",\"countryOfIssue\":\"US\"}" nullable: true type: string dateOfIncorporation: @@ -68715,9 +69640,10 @@ components: nullable: true type: array trPrimaryPurpose: - description: Primary purpose for Travel Rule compliance - example: Virtual asset service provider - nullable: true + description: "Primary Travel Rule role for this customer; determines how\ + \ the customer's Travel Rule messages are routed. Valid values: `notabene`,\ + \ `trlink`." + example: trlink type: string createDate: description: Timestamp when the customer was created (ISO 8601 format) @@ -68737,7 +69663,7 @@ components: - id - lastUpdate - shortName - - tenantId + - trPrimaryPurpose type: object TRLinkCustomersListResponse: items: @@ -68752,9 +69678,9 @@ components: - 0 - 1 - 2 - trPrimaryPurpose: Virtual asset service provider - nationalIdentification: "{\"nationalIdentifierType\":\"LEIXG\",\"nationalIdentifier\"\ - :\"5493001KJTIIGC8Y1R12\",\"countryOfIssue\":\"US\"}" + trPrimaryPurpose: trlink + nationalIdentification: "{\"nationalIdentifier\":\"EXAMPLELEI1234567890\"\ + ,\"nationalIdentifierType\":\"LEIX\",\"countryOfIssue\":\"US\"}" geographicAddress: country: US streetName: Main Street @@ -68789,9 +69715,18 @@ components: nullable: true type: string nationalIdentification: - description: National identification as JSON string - example: "{\"nationalIdentifierType\":\"LEIXG\",\"nationalIdentifier\":\"\ - 5493001KJTIIGC8Y1R12\",\"countryOfIssue\":\"US\"}" + description: "National identification, sent as a JSON-encoded string. The\ + \ server normalizes input into a compact JSON with these optional keys:\ + \ `nationalIdentifier`, `nationalIdentifierType` (e.g. `LEIX` for an LEI),\ + \ `countryOfIssue` (ISO 3166-1 alpha-2), `registrationAuthority`. If the\ + \ input is not a JSON object, it is wrapped as `{\"nationalIdentifier\"\ + :\"\"}`; if the value matches the LEI format, `nationalIdentifierType`\ + \ is set to `LEIX` automatically and `countryOfIssue` defaults to this\ + \ request's `countryOfRegistration` if not provided. The compacted JSON\ + \ must be 240 characters or fewer. On read, the value is returned exactly\ + \ as stored." + example: "{\"nationalIdentifier\":\"EXAMPLELEI1234567890\",\"nationalIdentifierType\"\ + :\"LEIX\",\"countryOfIssue\":\"US\"}" nullable: true type: string dateOfIncorporation: @@ -68811,9 +69746,11 @@ components: nullable: true type: array trPrimaryPurpose: - description: Primary purpose for Travel Rule compliance (enum value) - example: Virtual asset service provider - nullable: true + default: trlink + description: "Primary Travel Rule role for this customer; determines how\ + \ the customer's Travel Rule messages are routed. Valid values: `notabene`,\ + \ `trlink`." + example: trlink type: string required: - shortName @@ -68828,9 +69765,9 @@ components: - 1 - 2 - 3 - trPrimaryPurpose: "Updated: Virtual asset service provider and exchange" - nationalIdentification: "{\"nationalIdentifierType\":\"LEIXG\",\"nationalIdentifier\"\ - :\"5493001KJTIIGC8Y1R12\",\"countryOfIssue\":\"US\"}" + trPrimaryPurpose: trlink + nationalIdentification: "{\"nationalIdentifier\":\"EXAMPLELEI1234567890\"\ + ,\"nationalIdentifierType\":\"LEIX\",\"countryOfIssue\":\"US\"}" geographicAddress: country: US streetName: Main Street @@ -68849,9 +69786,8 @@ components: discoverable: $ref: "#/components/schemas/TRLinkDiscoverableStatus" shortName: - description: Short display name + description: Short display name (required) example: Acme Corporation - nullable: true type: string fullLegalName: description: Full legal entity name @@ -68866,9 +69802,19 @@ components: nullable: true type: string nationalIdentification: - description: National identification as JSON string - example: "{\"nationalIdentifierType\":\"LEIXG\",\"nationalIdentifier\":\"\ - 5493001KJTIIGC8Y1R12\",\"countryOfIssue\":\"US\"}" + description: "National identification, sent as a JSON-encoded string. The\ + \ server normalizes input into a compact JSON with these optional keys:\ + \ `nationalIdentifier`, `nationalIdentifierType` (e.g. `LEIX` for an LEI),\ + \ `countryOfIssue` (ISO 3166-1 alpha-2), `registrationAuthority`. If the\ + \ input is not a JSON object, it is wrapped as `{\"nationalIdentifier\"\ + :\"\"}`; if the value matches the LEI format, `nationalIdentifierType`\ + \ is set to `LEIX` automatically and `countryOfIssue` defaults to this\ + \ request's `countryOfRegistration` if not provided. The compacted JSON\ + \ must be 240 characters or fewer. Omitting this field leaves the stored\ + \ value unchanged; setting it to `null` clears it. On read, the value\ + \ is returned exactly as stored." + example: "{\"nationalIdentifier\":\"EXAMPLELEI1234567890\",\"nationalIdentifierType\"\ + :\"LEIX\",\"countryOfIssue\":\"US\"}" nullable: true type: string dateOfIncorporation: @@ -68889,10 +69835,13 @@ components: nullable: true type: array trPrimaryPurpose: - description: Primary purpose for Travel Rule compliance - example: "Updated: Virtual asset service provider and exchange" - nullable: true + description: "Primary Travel Rule role for this customer; determines how\ + \ the customer's Travel Rule messages are routed. Valid values: `notabene`,\ + \ `trlink`. Omit the field to leave the stored value unchanged." + example: trlink type: string + required: + - shortName type: object TRLinkCustomerIntegrationResponse: example: @@ -68910,18 +69859,17 @@ components: customerIntegrationId: 123e4567-e89b-12d3-a456-426614174000 createDate: 2025-01-20T10:30:00Z customer: - vaults: - - 0 - - 1 - - 2 dateOfIncorporation: 2015-03-15 discoverable: discoverable fullLegalName: Acme Corporation Ltd. lastUpdate: 2025-01-24T08:45:00Z - tenantId: 550e8400-e29b-41d4-a716-446655440003 - trPrimaryPurpose: Virtual asset service provider - nationalIdentification: "{\"nationalIdentifierType\":\"LEIXG\",\"nationalIdentifier\"\ - :\"5493001KJTIIGC8Y1R12\",\"countryOfIssue\":\"US\"}" + vaults: + - 0 + - 1 + - 2 + trPrimaryPurpose: trlink + nationalIdentification: "{\"nationalIdentifier\":\"EXAMPLELEI1234567890\"\ + ,\"nationalIdentifierType\":\"LEIX\",\"countryOfIssue\":\"US\"}" id: 550e8400-e29b-41d4-a716-446655440001 geographicAddress: country: US @@ -78505,7 +79453,6 @@ components: - vip items: maxLength: 30 - pattern: "^[a-z0-9][a-z0-9_-]*$" type: string maxItems: 5 minItems: 1 @@ -78517,7 +79464,6 @@ components: - deprecated items: maxLength: 30 - pattern: "^[a-z0-9][a-z0-9_-]*$" type: string maxItems: 5 minItems: 1 @@ -78912,6 +79858,77 @@ components: required: - assignedCount type: object + GenieCreateSessionResponse: + example: + createdAt: 1735603200000 + id: 7c1b2e1c-1c2a-4f3a-9c2d-2e0a8a1f8e1a + title: Vault balance overview + properties: + id: + description: The unique identifier of the newly created Genie session. Use + this when sending messages in the conversation. + example: 7c1b2e1c-1c2a-4f3a-9c2d-2e0a8a1f8e1a + type: string + createdAt: + description: Session creation timestamp in epoch milliseconds. + example: 1735603200000 + format: int64 + type: integer + title: + description: Session title. May be empty until the first message has been + processed. + example: Vault balance overview + type: string + required: + - id + type: object + GenieSendMessageRequest: + example: + content: What is the latest balance on my BTC vault? + properties: + content: + description: The natural-language question or instruction to send to Genie. + example: What is the latest balance on my BTC vault? + type: string + required: + - content + type: object + GenieChatMessage: + example: + createdAt: 1735603200000 + role: ASSISTANT + id: 0a237534-399f-4487-a869-72567b71511a + sessionId: 7c1b2e1c-1c2a-4f3a-9c2d-2e0a8a1f8e1a + content: The latest balance on the BTC vault is 0.4231 BTC. + properties: + id: + description: The unique identifier of the message. + example: 0a237534-399f-4487-a869-72567b71511a + type: string + sessionId: + description: The Genie session this message belongs to. + example: 7c1b2e1c-1c2a-4f3a-9c2d-2e0a8a1f8e1a + type: string + role: + description: "Who produced the message — `USER` for the customer-supplied\ + \ query, `ASSISTANT` for the Genie response." + example: ASSISTANT + type: string + content: + description: The natural-language body of the message. + example: The latest balance on the BTC vault is 0.4231 BTC. + type: string + createdAt: + description: Message creation timestamp in epoch milliseconds. + example: 1735603200000 + format: int64 + type: integer + required: + - content + - id + - role + - sessionId + type: object get_filter_parameter: properties: id: diff --git a/build.gradle b/build.gradle index 8d7c2027..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 = '18.0.0' +version = '0.0.0' buildscript { repositories { diff --git a/docs/AddressReverseLookupResponse.md b/docs/AddressReverseLookupResponse.md new file mode 100644 index 00000000..a417384b --- /dev/null +++ b/docs/AddressReverseLookupResponse.md @@ -0,0 +1,25 @@ + + +# AddressReverseLookupResponse + +Reverse-lookup result mapping a blockchain address to its owning vault account. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**address** | **String** | The queried blockchain address. | | +|**type** | [**TypeEnum**](#TypeEnum) | Source type of the resolved address. | | +|**vaultAccountId** | **String** | Vault account ID that owns the address. | | +|**blockchains** | **List<String>** | Blockchain assets associated with this address in the vault account. | | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| VAULT_ACCOUNT | "VAULT_ACCOUNT" | + + + diff --git a/docs/ArsConfigResponse.md b/docs/ArsConfigResponse.md new file mode 100644 index 00000000..c61f5e7e --- /dev/null +++ b/docs/ArsConfigResponse.md @@ -0,0 +1,15 @@ + + +# ArsConfigResponse + +ARS (Address Registry Screening) configuration for the tenant: active flag and last update time. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**active** | **Boolean** | Whether ARS is active for the tenant | [optional] | +|**lastUpdate** | **OffsetDateTime** | Last update timestamp of the configuration | [optional] | + + + diff --git a/docs/CommittedQuoteEnum.md b/docs/CommittedQuoteEnum.md deleted file mode 100644 index e60c7823..00000000 --- a/docs/CommittedQuoteEnum.md +++ /dev/null @@ -1,11 +0,0 @@ - - -# CommittedQuoteEnum - -## Enum - - -* `COMMITTED` (value: `"COMMITTED"`) - - - diff --git a/docs/ComplianceApi.md b/docs/ComplianceApi.md index 52fecc8b..fbf139e6 100644 --- a/docs/ComplianceApi.md +++ b/docs/ComplianceApi.md @@ -4,10 +4,12 @@ All URIs are relative to https://developers.fireblocks.com/reference/ | Method | HTTP request | Description | |------------- | ------------- | -------------| +| [**activateArsConfig**](ComplianceApi.md#activateArsConfig) | **POST** /screening/ars/config/activate | Activate ARS (Address Registry Screening) | | [**activateByorkConfig**](ComplianceApi.md#activateByorkConfig) | **POST** /screening/byork/config/activate | Activate BYORK Light | | [**addAddressRegistryVaultOptOuts**](ComplianceApi.md#addAddressRegistryVaultOptOuts) | **POST** /address_registry/vaults | Add vault accounts to the address registry opt-out list | | [**assignVaultsToLegalEntity**](ComplianceApi.md#assignVaultsToLegalEntity) | **POST** /legal_entities/{legalEntityId}/vaults | Assign vault accounts to a legal entity | | [**createCounterpartyGroup**](ComplianceApi.md#createCounterpartyGroup) | **POST** /counterparty_groups | Create a counterparty group | +| [**deactivateArsConfig**](ComplianceApi.md#deactivateArsConfig) | **POST** /screening/ars/config/deactivate | Deactivate ARS (Address Registry Screening) | | [**deactivateByorkConfig**](ComplianceApi.md#deactivateByorkConfig) | **POST** /screening/byork/config/deactivate | Deactivate BYORK Light | | [**deleteCounterpartyGroup**](ComplianceApi.md#deleteCounterpartyGroup) | **DELETE** /counterparty_groups/{groupId} | Delete a counterparty group | | [**getAddressRegistryTenantParticipationStatus**](ComplianceApi.md#getAddressRegistryTenantParticipationStatus) | **GET** /address_registry/tenant | Get address registry participation status for the authenticated workspace | @@ -31,7 +33,7 @@ All URIs are relative to https://developers.fireblocks.com/reference/ | [**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 | +| [**retryRejectedTransactionBypassScreeningChecks**](ComplianceApi.md#retryRejectedTransactionBypassScreeningChecks) | **POST** /screening/transaction/{txId}/bypass_screening_policy | Bypass Screening Policy | | [**setAmlVerdict**](ComplianceApi.md#setAmlVerdict) | **POST** /screening/aml/verdict/manual | Set AML Verdict (BYORK Super Light) | | [**setByorkTimeouts**](ComplianceApi.md#setByorkTimeouts) | **PUT** /screening/byork/config/timeouts | Set BYORK Light timeouts | | [**setByorkVerdict**](ComplianceApi.md#setByorkVerdict) | **POST** /screening/byork/verdict | Set BYORK Light verdict | @@ -43,6 +45,90 @@ All URIs are relative to https://developers.fireblocks.com/reference/ +## activateArsConfig + +> CompletableFuture> activateArsConfig activateArsConfig(idempotencyKey) + +Activate ARS (Address Registry Screening) + +Activates ARS (Address Registry Screening) for the authenticated tenant (sets config.active to true). Once activated, ARS screening applies to matching transactions. + +### Example + +```java +// Import classes: +import com.fireblocks.sdk.ApiClient; +import com.fireblocks.sdk.ApiException; +import com.fireblocks.sdk.ApiResponse; +import com.fireblocks.sdk.BasePath; +import com.fireblocks.sdk.Fireblocks; +import com.fireblocks.sdk.ConfigurationOptions; +import com.fireblocks.sdk.model.*; +import com.fireblocks.sdk.api.ComplianceApi; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; + +public class Example { + public static void main(String[] args) { + ConfigurationOptions configurationOptions = new ConfigurationOptions() + .basePath(BasePath.Sandbox) + .apiKey("my-api-key") + .secretKey("my-secret-key"); + Fireblocks fireblocks = new Fireblocks(configurationOptions); + + String idempotencyKey = "idempotencyKey_example"; // String | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. + try { + CompletableFuture> response = fireblocks.compliance().activateArsConfig(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#activateArsConfig"); + 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#activateArsConfig"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Response headers: " + e.getResponseHeaders()); + System.err.println("Reason: " + e.getResponseBody()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **idempotencyKey** | **String**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] | + +### Return type + +CompletableFuture> + + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | ARS configuration activated. | * X-Request-ID -
| +| **400** | Tenant not opted-in for address registry. | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| + + ## activateByorkConfig > CompletableFuture> activateByorkConfig activateByorkConfig(idempotencyKey) @@ -386,6 +472,90 @@ No authorization required | **0** | Error Response | * X-Request-ID -
| +## deactivateArsConfig + +> CompletableFuture> deactivateArsConfig deactivateArsConfig(idempotencyKey) + +Deactivate ARS (Address Registry Screening) + +Deactivates ARS (Address Registry Screening) for the authenticated tenant (sets config.active to false). Once deactivated, ARS screening no longer applies until activated again. + +### Example + +```java +// Import classes: +import com.fireblocks.sdk.ApiClient; +import com.fireblocks.sdk.ApiException; +import com.fireblocks.sdk.ApiResponse; +import com.fireblocks.sdk.BasePath; +import com.fireblocks.sdk.Fireblocks; +import com.fireblocks.sdk.ConfigurationOptions; +import com.fireblocks.sdk.model.*; +import com.fireblocks.sdk.api.ComplianceApi; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; + +public class Example { + public static void main(String[] args) { + ConfigurationOptions configurationOptions = new ConfigurationOptions() + .basePath(BasePath.Sandbox) + .apiKey("my-api-key") + .secretKey("my-secret-key"); + Fireblocks fireblocks = new Fireblocks(configurationOptions); + + String idempotencyKey = "idempotencyKey_example"; // String | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. + try { + CompletableFuture> response = fireblocks.compliance().deactivateArsConfig(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#deactivateArsConfig"); + 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#deactivateArsConfig"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Response headers: " + e.getResponseHeaders()); + System.err.println("Reason: " + e.getResponseBody()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **idempotencyKey** | **String**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] | + +### Return type + +CompletableFuture> + + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | ARS configuration deactivated. | * X-Request-ID -
| +| **400** | Tenant not opted-in for address registry. | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| + + ## deactivateByorkConfig > CompletableFuture> deactivateByorkConfig deactivateByorkConfig(idempotencyKey) @@ -2296,9 +2466,9 @@ No authorization required > CompletableFuture> retryRejectedTransactionBypassScreeningChecks retryRejectedTransactionBypassScreeningChecks(txId, idempotencyKey) -Calling the \"Bypass Screening Policy\" API endpoint triggers a new transaction, with the API user as the initiator, bypassing the screening policy check +Bypass Screening Policy -This endpoint is restricted to Admin API users and is only applicable to outgoing transactions. +Triggers a new transaction, with the API user as the initiator, bypassing the screening policy checks. This endpoint is restricted to Admin API users and is only applicable to outgoing transactions. ### Example diff --git a/docs/CreateOffersRequest.md b/docs/CreateOffersRequest.md new file mode 100644 index 00000000..bbb3902d --- /dev/null +++ b/docs/CreateOffersRequest.md @@ -0,0 +1,20 @@ + + +# CreateOffersRequest + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**baseAssetId** | **String** | The source asset identifier. | | +|**baseAssetRail** | **TransferRail** | | [optional] | +|**quoteAssetId** | **String** | The target asset identifier. | | +|**quoteAssetRail** | **TransferRail** | | [optional] | +|**baseAmount** | **String** | The amount to get offers for | | +|**slippageBps** | **Integer** | Slippage tolerance in basis points (bps) for defi quotes - 1 is 0.01% and 10000 is 100%. If not set, defaults to 50 bps (0.5%). | [optional] | +|**settlement** | [**DVPSettlement**](DVPSettlement.md) | | [optional] | +|**side** | **Side** | | | + + + diff --git a/docs/CreateOrderRequest.md b/docs/CreateOrderRequest.md index d2136342..41430ed4 100644 --- a/docs/CreateOrderRequest.md +++ b/docs/CreateOrderRequest.md @@ -11,6 +11,7 @@ |**executionRequestDetails** | [**ExecutionRequestDetails**](ExecutionRequestDetails.md) | | | |**settlement** | [**Settlement**](Settlement.md) | | | |**participantsIdentification** | [**ParticipantsIdentification**](ParticipantsIdentification.md) | | [optional] | +|**sourceOfFunds** | [**SourceOfFunds**](SourceOfFunds.md) | | [optional] | |**customerInternalReferenceId** | **String** | Internal reference ID for the customer | [optional] | |**note** | **String** | Optional note for the order | [optional] | diff --git a/docs/GenieBetaApi.md b/docs/GenieBetaApi.md new file mode 100644 index 00000000..54fdee52 --- /dev/null +++ b/docs/GenieBetaApi.md @@ -0,0 +1,180 @@ +# GenieBetaApi + +All URIs are relative to https://developers.fireblocks.com/reference/ + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**createGenieSession**](GenieBetaApi.md#createGenieSession) | **POST** /genie/sessions | Create a Genie session | +| [**sendGenieMessage**](GenieBetaApi.md#sendGenieMessage) | **POST** /genie/sessions/{sessionId}/messages | Send a message to a Genie session | + + + +## createGenieSession + +> CompletableFuture> createGenieSession createGenieSession(idempotencyKey) + +Create a Genie session + +Starts a new conversation with Genie, the Fireblocks AI assistant. Returns a `sessionId` — pass it when sending messages, and reuse it across calls to keep one continuous conversation. **Note:** This endpoint is currently in beta and might be subject to changes. + +### Example + +```java +// Import classes: +import com.fireblocks.sdk.ApiClient; +import com.fireblocks.sdk.ApiException; +import com.fireblocks.sdk.ApiResponse; +import com.fireblocks.sdk.BasePath; +import com.fireblocks.sdk.Fireblocks; +import com.fireblocks.sdk.ConfigurationOptions; +import com.fireblocks.sdk.model.*; +import com.fireblocks.sdk.api.GenieBetaApi; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; + +public class Example { + public static void main(String[] args) { + ConfigurationOptions configurationOptions = new ConfigurationOptions() + .basePath(BasePath.Sandbox) + .apiKey("my-api-key") + .secretKey("my-secret-key"); + Fireblocks fireblocks = new Fireblocks(configurationOptions); + + String idempotencyKey = "idempotencyKey_example"; // String | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. + try { + CompletableFuture> response = fireblocks.genieBeta().createGenieSession(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 GenieBetaApi#createGenieSession"); + 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 GenieBetaApi#createGenieSession"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Response headers: " + e.getResponseHeaders()); + System.err.println("Reason: " + e.getResponseBody()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **idempotencyKey** | **String**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] | + +### Return type + +CompletableFuture> + + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Session created | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| + + +## sendGenieMessage + +> CompletableFuture> sendGenieMessage sendGenieMessage(genieSendMessageRequest, sessionId, idempotencyKey) + +Send a message to a Genie session + +Sends a question to Genie and returns a single answer. Reuse the `sessionId` from the original session on follow-up messages to continue the conversation with prior context. **Note:** This endpoint is currently in beta and might be subject to changes. + +### Example + +```java +// Import classes: +import com.fireblocks.sdk.ApiClient; +import com.fireblocks.sdk.ApiException; +import com.fireblocks.sdk.ApiResponse; +import com.fireblocks.sdk.BasePath; +import com.fireblocks.sdk.Fireblocks; +import com.fireblocks.sdk.ConfigurationOptions; +import com.fireblocks.sdk.model.*; +import com.fireblocks.sdk.api.GenieBetaApi; +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); + + GenieSendMessageRequest genieSendMessageRequest = new GenieSendMessageRequest(); // GenieSendMessageRequest | + String sessionId = "7c1b2e1c-1c2a-4f3a-9c2d-2e0a8a1f8e1a"; // String | The Genie session ID returned from `POST /genie/sessions`. + 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.genieBeta().sendGenieMessage(genieSendMessageRequest, sessionId, 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 GenieBetaApi#sendGenieMessage"); + 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 GenieBetaApi#sendGenieMessage"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **genieSendMessageRequest** | [**GenieSendMessageRequest**](GenieSendMessageRequest.md)| | | +| **sessionId** | **String**| The Genie session ID returned from `POST /genie/sessions`. | | +| **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** | Genie response | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| + diff --git a/docs/GenieChatMessage.md b/docs/GenieChatMessage.md new file mode 100644 index 00000000..c6b0ffeb --- /dev/null +++ b/docs/GenieChatMessage.md @@ -0,0 +1,17 @@ + + +# GenieChatMessage + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | The unique identifier of the message. | | +|**sessionId** | **String** | The Genie session this message belongs to. | | +|**role** | **String** | Who produced the message — `USER` for the customer-supplied query, `ASSISTANT` for the Genie response. | | +|**content** | **String** | The natural-language body of the message. | | +|**createdAt** | **Long** | Message creation timestamp in epoch milliseconds. | [optional] | + + + diff --git a/docs/GenieCreateSessionResponse.md b/docs/GenieCreateSessionResponse.md new file mode 100644 index 00000000..06a87290 --- /dev/null +++ b/docs/GenieCreateSessionResponse.md @@ -0,0 +1,15 @@ + + +# GenieCreateSessionResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | The unique identifier of the newly created Genie session. Use this when sending messages in the conversation. | | +|**createdAt** | **Long** | Session creation timestamp in epoch milliseconds. | [optional] | +|**title** | **String** | Session title. May be empty until the first message has been processed. | [optional] | + + + diff --git a/docs/CommittedQuoteType.md b/docs/GenieSendMessageRequest.md similarity index 50% rename from docs/CommittedQuoteType.md rename to docs/GenieSendMessageRequest.md index 790030ac..9a057784 100644 --- a/docs/CommittedQuoteType.md +++ b/docs/GenieSendMessageRequest.md @@ -1,13 +1,13 @@ -# CommittedQuoteType +# GenieSendMessageRequest ## Properties | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**type** | **CommittedQuoteEnum** | | | +|**content** | **String** | The natural-language question or instruction to send to Genie. | | diff --git a/docs/IndicativeQuoteEnum.md b/docs/IndicativeQuoteEnum.md deleted file mode 100644 index 7fa55f57..00000000 --- a/docs/IndicativeQuoteEnum.md +++ /dev/null @@ -1,11 +0,0 @@ - - -# IndicativeQuoteEnum - -## Enum - - -* `INDICATIVE` (value: `"INDICATIVE"`) - - - diff --git a/docs/IndicativeQuoteType.md b/docs/IndicativeQuoteType.md deleted file mode 100644 index 957b9821..00000000 --- a/docs/IndicativeQuoteType.md +++ /dev/null @@ -1,13 +0,0 @@ - - -# IndicativeQuoteType - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**type** | **IndicativeQuoteEnum** | | | - - - diff --git a/docs/Offer.md b/docs/Offer.md new file mode 100644 index 00000000..1d0e9cca --- /dev/null +++ b/docs/Offer.md @@ -0,0 +1,37 @@ + + +# Offer + +## oneOf schemas +* [QuoteOffer](QuoteOffer.md) +* [RateOffer](RateOffer.md) + +## Example +```java +// Import classes: +import com.fireblocks.sdk.model.Offer; +import com.fireblocks.sdk.model.QuoteOffer; +import com.fireblocks.sdk.model.RateOffer; + +public class Example { + public static void main(String[] args) { + Offer exampleOffer = new Offer(); + + // create a new QuoteOffer + QuoteOffer exampleQuoteOffer = new QuoteOffer(); + // set Offer to QuoteOffer + exampleOffer.setActualInstance(exampleQuoteOffer); + // to get back the QuoteOffer set earlier + QuoteOffer testQuoteOffer = (QuoteOffer) exampleOffer.getActualInstance(); + + // create a new RateOffer + RateOffer exampleRateOffer = new RateOffer(); + // set Offer to RateOffer + exampleOffer.setActualInstance(exampleRateOffer); + // to get back the RateOffer set earlier + RateOffer testRateOffer = (RateOffer) exampleOffer.getActualInstance(); + } +} +``` + + diff --git a/docs/OffersResponse.md b/docs/OffersResponse.md new file mode 100644 index 00000000..511485e9 --- /dev/null +++ b/docs/OffersResponse.md @@ -0,0 +1,14 @@ + + +# OffersResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**offers** | [**List<Offer>**](Offer.md) | List of offers returned for the requested asset pair. | | +|**errors** | [**List<ScopeItemFailure>**](ScopeItemFailure.md) | Partial failures encountered while requesting offers. Empty when all offer requests succeed. | | + + + diff --git a/docs/Quote.md b/docs/Quote.md index 9db14aa9..e5eb9eb6 100644 --- a/docs/Quote.md +++ b/docs/Quote.md @@ -2,25 +2,38 @@ # Quote +A committed executable quote for a trading pair. ## Properties | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**via** | [**AccessType**](AccessType.md) | | | -|**id** | **String** | | | -|**quoteAssetId** | **String** | | | -|**baseAssetId** | **String** | | | -|**baseAmount** | **String** | | | -|**quoteAmount** | **String** | | | -|**priceImpact** | **BigDecimal** | | [optional] | -|**quoteMinAmount** | **String** | | [optional] | -|**executionSteps** | [**List<QuoteExecutionStep>**](QuoteExecutionStep.md) | | [optional] | -|**generalFees** | [**List<Fee>**](Fee.md) | | [optional] | +|**id** | **String** | The unique identifier of the quote. | | +|**quoteAssetId** | **String** | The target asset identifier. | | +|**quoteAssetRail** | **TransferRail** | | [optional] | +|**baseAssetId** | **String** | The source asset identifier. | | +|**baseAssetRail** | **TransferRail** | | [optional] | +|**baseAmount** | **String** | The amount of the base asset. | | +|**quoteAmount** | **String** | The amount of the quote asset. | | +|**priceImpact** | **BigDecimal** | The estimated price impact as a decimal fraction. | [optional] | +|**quoteMinAmount** | **String** | The minimum guaranteed amount of the quote asset. | [optional] | +|**isSlippageApplied** | **Boolean** | Indicates if slippage was applied to the quote. | [optional] | +|**executionSteps** | [**List<QuoteExecutionStep>**](QuoteExecutionStep.md) | Ordered list of execution steps for the quote. | [optional] | +|**generalFees** | [**List<Fee>**](Fee.md) | General fees associated with the quote. | [optional] | |**side** | **Side** | | | -|**expiresAt** | **String** | The expiration time of the quote in ISO format. | | -|**orderCreationRequirements** | **String** | A JSON Schema Draft-7 document in string format describing the fields required when creating an order for this quote. The schema mirrors the structure of CreateOrderRequest.participantsIdentification json schema, so clients can validate their order payload before sending. | [optional] | -|**type** | **IndicativeQuoteEnum** | | | +|**expiresAt** | **String** | The expiration time of the quote in ISO 8601 format. | | +|**orderCreationRequirements** | **String** | A JSON Schema Draft-7 document in string format describing the fields required when creating an order so clients can validate their order payload before sending. | [optional] | +|**type** | [**TypeEnum**](#TypeEnum) | The type of the quote. | | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| COMMITTED | "COMMITTED" | +| INDICATIVE | "INDICATIVE" | diff --git a/docs/QuoteExecutionRequestDetails.md b/docs/QuoteExecutionRequestDetails.md index 8c09a596..1a5ea380 100644 --- a/docs/QuoteExecutionRequestDetails.md +++ b/docs/QuoteExecutionRequestDetails.md @@ -7,7 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**type** | **QuoteTypeEnum** | | | +|**type** | **QuoteExecutionTypeEnum** | | | |**quoteId** | **String** | Quote ID for quote orders | | diff --git a/docs/QuoteExecutionTypeDetails.md b/docs/QuoteExecutionTypeDetails.md index 34d2539c..6ee8a9d3 100644 --- a/docs/QuoteExecutionTypeDetails.md +++ b/docs/QuoteExecutionTypeDetails.md @@ -7,7 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**type** | **QuoteTypeEnum** | | | +|**type** | **QuoteExecutionTypeEnum** | | | |**quoteId** | **String** | Quote ID for quote orders | | |**quoteAmount** | **String** | Quote amount for quote orders | | diff --git a/docs/QuoteTypeEnum.md b/docs/QuoteExecutionTypeEnum.md similarity index 64% rename from docs/QuoteTypeEnum.md rename to docs/QuoteExecutionTypeEnum.md index 26f8fa7e..1c415c62 100644 --- a/docs/QuoteTypeEnum.md +++ b/docs/QuoteExecutionTypeEnum.md @@ -1,6 +1,6 @@ -# QuoteTypeEnum +# QuoteExecutionTypeEnum ## Enum diff --git a/docs/QuoteExecutionWithRequoteRequestDetails.md b/docs/QuoteExecutionWithRequoteRequestDetails.md index b83d93c7..082f0c41 100644 --- a/docs/QuoteExecutionWithRequoteRequestDetails.md +++ b/docs/QuoteExecutionWithRequoteRequestDetails.md @@ -7,7 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**type** | **QuoteTypeEnum** | | | +|**type** | **QuoteExecutionTypeEnum** | | | |**quoteId** | **String** | Quote ID for quote orders | | |**reQuote** | [**ReQuoteDetailsReQuote**](ReQuoteDetailsReQuote.md) | | [optional] | diff --git a/docs/QuoteExecutionWithRequoteResponseDetails.md b/docs/QuoteExecutionWithRequoteResponseDetails.md index 8d7d17aa..06aa0bcc 100644 --- a/docs/QuoteExecutionWithRequoteResponseDetails.md +++ b/docs/QuoteExecutionWithRequoteResponseDetails.md @@ -7,7 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**type** | **QuoteTypeEnum** | | | +|**type** | **QuoteExecutionTypeEnum** | | | |**quoteId** | **String** | Quote ID for quote orders | | |**quoteAmount** | **String** | Quote amount for quote orders | | |**side** | **Side** | | | diff --git a/docs/QuoteOffer.md b/docs/QuoteOffer.md new file mode 100644 index 00000000..f9550dd4 --- /dev/null +++ b/docs/QuoteOffer.md @@ -0,0 +1,47 @@ + + +# QuoteOffer + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**via** | [**AccessType**](AccessType.md) | | | +|**id** | **String** | The unique identifier of the quote. | | +|**quoteAssetId** | **String** | The target asset identifier. | | +|**quoteAssetRail** | **TransferRail** | | [optional] | +|**baseAssetId** | **String** | The source asset identifier. | | +|**baseAssetRail** | **TransferRail** | | [optional] | +|**baseAmount** | **String** | The amount of the base asset. | | +|**quoteAmount** | **String** | The amount of the quote asset. | | +|**priceImpact** | **BigDecimal** | The estimated price impact as a decimal fraction. | [optional] | +|**quoteMinAmount** | **String** | The minimum guaranteed amount of the quote asset. | [optional] | +|**isSlippageApplied** | **Boolean** | Indicates if slippage was applied to the quote. | [optional] | +|**executionSteps** | [**List<QuoteExecutionStep>**](QuoteExecutionStep.md) | Ordered list of execution steps for the quote. | [optional] | +|**generalFees** | [**List<Fee>**](Fee.md) | General fees associated with the quote. | [optional] | +|**side** | **Side** | | | +|**expiresAt** | **String** | The expiration time of the quote in ISO 8601 format. | | +|**orderCreationRequirements** | **String** | A JSON Schema Draft-7 document in string format describing the fields required when creating an order so clients can validate their order payload before sending. | [optional] | +|**type** | [**TypeEnum**](#TypeEnum) | The type of the quote. | | +|**offerType** | [**OfferTypeEnum**](#OfferTypeEnum) | The type of offer — QUOTE for executable committed quotes. | | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| COMMITTED | "COMMITTED" | +| INDICATIVE | "INDICATIVE" | + + + +## Enum: OfferTypeEnum + +| Name | Value | +|---- | -----| +| QUOTE | "QUOTE" | + + + diff --git a/docs/QuoteOfferType.md b/docs/QuoteOfferType.md new file mode 100644 index 00000000..52e10276 --- /dev/null +++ b/docs/QuoteOfferType.md @@ -0,0 +1,21 @@ + + +# QuoteOfferType + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**offerType** | [**OfferTypeEnum**](#OfferTypeEnum) | The type of offer — QUOTE for executable committed quotes. | | + + + +## Enum: OfferTypeEnum + +| Name | Value | +|---- | -----| +| QUOTE | "QUOTE" | + + + diff --git a/docs/QuotePropertiesDetails.md b/docs/QuotePropertiesDetails.md deleted file mode 100644 index cf8ccc73..00000000 --- a/docs/QuotePropertiesDetails.md +++ /dev/null @@ -1,25 +0,0 @@ - - -# QuotePropertiesDetails - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**via** | [**AccessType**](AccessType.md) | | | -|**id** | **String** | | | -|**quoteAssetId** | **String** | | | -|**baseAssetId** | **String** | | | -|**baseAmount** | **String** | | | -|**quoteAmount** | **String** | | | -|**priceImpact** | **BigDecimal** | | [optional] | -|**quoteMinAmount** | **String** | | [optional] | -|**executionSteps** | [**List<QuoteExecutionStep>**](QuoteExecutionStep.md) | | [optional] | -|**generalFees** | [**List<Fee>**](Fee.md) | | [optional] | -|**side** | **Side** | | | -|**expiresAt** | **String** | The expiration time of the quote in ISO format. | | -|**orderCreationRequirements** | **String** | A JSON Schema Draft-7 document in string format describing the fields required when creating an order for this quote. The schema mirrors the structure of CreateOrderRequest.participantsIdentification json schema, so clients can validate their order payload before sending. | [optional] | - - - diff --git a/docs/QuotesResponse.md b/docs/QuotesResponse.md index 0e9711fb..d2d61387 100644 --- a/docs/QuotesResponse.md +++ b/docs/QuotesResponse.md @@ -8,7 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**quotes** | [**List<Quote>**](Quote.md) | | | -|**quoteFailures** | [**List<QuoteFailure>**](QuoteFailure.md) | List of partial failures encountered while requesting quotes. Empty when all quote attempts succeed. | | +|**quoteFailures** | [**List<ScopeItemFailure>**](ScopeItemFailure.md) | List of partial failures encountered while requesting quotes. Empty when all quote attempts succeed. | | diff --git a/docs/Rate.md b/docs/Rate.md new file mode 100644 index 00000000..b7ce89f2 --- /dev/null +++ b/docs/Rate.md @@ -0,0 +1,18 @@ + + +# Rate + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**via** | [**AccessType**](AccessType.md) | | | +|**baseAssetId** | **String** | The source asset identifier | | +|**baseAssetRail** | **TransferRail** | | [optional] | +|**quoteAssetId** | **String** | The target asset identifier | | +|**quoteAssetRail** | **TransferRail** | | [optional] | +|**rate** | **String** | The indicative exchange rate — the number of units of the quote asset that equal 1 unit of the base asset. For example, if base is BTC and quote is USD, a rate of 75000 means 1 BTC = 75,000 USD. | | + + + diff --git a/docs/RateOffer.md b/docs/RateOffer.md new file mode 100644 index 00000000..e8850506 --- /dev/null +++ b/docs/RateOffer.md @@ -0,0 +1,27 @@ + + +# RateOffer + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**via** | [**AccessType**](AccessType.md) | | | +|**baseAssetId** | **String** | The source asset identifier | | +|**baseAssetRail** | **TransferRail** | | [optional] | +|**quoteAssetId** | **String** | The target asset identifier | | +|**quoteAssetRail** | **TransferRail** | | [optional] | +|**rate** | **String** | The indicative exchange rate — the number of units of the quote asset that equal 1 unit of the base asset. For example, if base is BTC and quote is USD, a rate of 75000 means 1 BTC = 75,000 USD. | | +|**offerType** | [**OfferTypeEnum**](#OfferTypeEnum) | The type of offer — RATE for indicative pricing. | | + + + +## Enum: OfferTypeEnum + +| Name | Value | +|---- | -----| +| RATE | "RATE" | + + + diff --git a/docs/RateOfferType.md b/docs/RateOfferType.md new file mode 100644 index 00000000..9d2ea5b3 --- /dev/null +++ b/docs/RateOfferType.md @@ -0,0 +1,21 @@ + + +# RateOfferType + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**offerType** | [**OfferTypeEnum**](#OfferTypeEnum) | The type of offer — RATE for indicative pricing. | | + + + +## Enum: OfferTypeEnum + +| Name | Value | +|---- | -----| +| RATE | "RATE" | + + + diff --git a/docs/RatesRequest.md b/docs/RatesRequest.md new file mode 100644 index 00000000..1441cfae --- /dev/null +++ b/docs/RatesRequest.md @@ -0,0 +1,15 @@ + + +# RatesRequest + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**scope** | [**List<ScopeItem>**](ScopeItem.md) | One or more providers/accounts to request rates from. At least one scope item is required. | | +|**baseAssetId** | **String** | The source asset identifier. | | +|**quoteAssetId** | **String** | The target asset identifier. | | + + + diff --git a/docs/RatesResponse.md b/docs/RatesResponse.md new file mode 100644 index 00000000..3c601b31 --- /dev/null +++ b/docs/RatesResponse.md @@ -0,0 +1,14 @@ + + +# RatesResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**rates** | [**List<Rate>**](Rate.md) | List of indicative rates returned for the requested asset pair. | | +|**errors** | [**List<ScopeItemFailure>**](ScopeItemFailure.md) | Partial failures encountered while requesting rates. Empty when all rate requests succeed. | | + + + diff --git a/docs/ReasonForPaymentEnum.md b/docs/ReasonForPaymentEnum.md new file mode 100644 index 00000000..a08031db --- /dev/null +++ b/docs/ReasonForPaymentEnum.md @@ -0,0 +1,69 @@ + + +# ReasonForPaymentEnum + +## Enum + + +* `INVOICE_PAYMENT` (value: `"INVOICE_PAYMENT"`) + +* `SERVICES_PAYMENT` (value: `"SERVICES_PAYMENT"`) + +* `SOFTWARE_PAYMENT` (value: `"SOFTWARE_PAYMENT"`) + +* `IMPORTED_GOODS_PAYMENT` (value: `"IMPORTED_GOODS_PAYMENT"`) + +* `TRAVEL_SERVICES` (value: `"TRAVEL_SERVICES"`) + +* `TRANSFER_TO_OWN_ACCOUNT` (value: `"TRANSFER_TO_OWN_ACCOUNT"`) + +* `LOAN_REPAYMENT` (value: `"LOAN_REPAYMENT"`) + +* `PAYROLL` (value: `"PAYROLL"`) + +* `PROPERTY_RENTAL` (value: `"PROPERTY_RENTAL"`) + +* `INFORMATION_SERVICE_CHARGES` (value: `"INFORMATION_SERVICE_CHARGES"`) + +* `ADVERTISING_AND_PUBLIC_RELATIONS` (value: `"ADVERTISING_AND_PUBLIC_RELATIONS"`) + +* `INTELLECTUAL_PROPERTY_FEES` (value: `"INTELLECTUAL_PROPERTY_FEES"`) + +* `FINANCIAL_SERVICE_FEES` (value: `"FINANCIAL_SERVICE_FEES"`) + +* `ADVISORY_AND_TECHNICAL_FEES` (value: `"ADVISORY_AND_TECHNICAL_FEES"`) + +* `REPRESENTATIVE_OFFICE_EXPENSES` (value: `"REPRESENTATIVE_OFFICE_EXPENSES"`) + +* `TAX_PAYMENT` (value: `"TAX_PAYMENT"`) + +* `GOODS_TRANSPORTATION_FEES` (value: `"GOODS_TRANSPORTATION_FEES"`) + +* `CONSTRUCTION_EXPENSES` (value: `"CONSTRUCTION_EXPENSES"`) + +* `INSURANCE_PREMIUM` (value: `"INSURANCE_PREMIUM"`) + +* `GENERAL_GOODS_TRADE` (value: `"GENERAL_GOODS_TRADE"`) + +* `INSURANCE_CLAIMS_PAYMENT` (value: `"INSURANCE_CLAIMS_PAYMENT"`) + +* `FAMILY_REMITTANCE` (value: `"FAMILY_REMITTANCE"`) + +* `EDUCATION_EXPENSES` (value: `"EDUCATION_EXPENSES"`) + +* `MEDICAL_TREATMENT` (value: `"MEDICAL_TREATMENT"`) + +* `DONATIONS` (value: `"DONATIONS"`) + +* `MUTUAL_FUND_INVESTMENT` (value: `"MUTUAL_FUND_INVESTMENT"`) + +* `CURRENCY_EXCHANGE` (value: `"CURRENCY_EXCHANGE"`) + +* `ADVANCE_GOODS_PAYMENT` (value: `"ADVANCE_GOODS_PAYMENT"`) + +* `MERCHANT_SETTLEMENT` (value: `"MERCHANT_SETTLEMENT"`) + +* `REPATRIATION_FUND_SETTLEMENT` (value: `"REPATRIATION_FUND_SETTLEMENT"`) + + + diff --git a/docs/QuoteFailure.md b/docs/ScopeItemFailure.md similarity index 75% rename from docs/QuoteFailure.md rename to docs/ScopeItemFailure.md index 4aaf0bda..97f196ff 100644 --- a/docs/QuoteFailure.md +++ b/docs/ScopeItemFailure.md @@ -1,14 +1,14 @@ -# QuoteFailure +# ScopeItemFailure ## Properties | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**providerId** | **String** | Identifier of the provider for which the quote request failed. | | -|**accountId** | **String** | Identifier of the account for which the quote request failed (optional). | [optional] | +|**providerId** | **String** | Identifier of the provider for which the request failed. | | +|**accountId** | **String** | Identifier of the account for which the request failed (optional). | [optional] | |**error** | [**TradingErrorSchema**](TradingErrorSchema.md) | | | diff --git a/docs/SourceOfFunds.md b/docs/SourceOfFunds.md new file mode 100644 index 00000000..e487504e --- /dev/null +++ b/docs/SourceOfFunds.md @@ -0,0 +1,14 @@ + + +# SourceOfFunds + +Information about the source and purpose of the funds being transacted. Used by providers that require additional context for compliance and reporting (e.g. CPN cross-border payments). + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**reasonForPayment** | **ReasonForPaymentEnum** | | [optional] | + + + diff --git a/docs/TRLinkCreateCustomerRequest.md b/docs/TRLinkCreateCustomerRequest.md index 2e4d12d0..d7d296bb 100644 --- a/docs/TRLinkCreateCustomerRequest.md +++ b/docs/TRLinkCreateCustomerRequest.md @@ -12,10 +12,10 @@ |**fullLegalName** | **String** | Full legal entity name | [optional] | |**geographicAddress** | [**TRLinkGeographicAddressRequest**](TRLinkGeographicAddressRequest.md) | | [optional] | |**countryOfRegistration** | **String** | ISO 3166-1 alpha-2 country code where the entity is registered | [optional] | -|**nationalIdentification** | **String** | National identification as JSON string | [optional] | +|**nationalIdentification** | **String** | National identification, sent as a JSON-encoded string. The server normalizes input into a compact JSON with these optional keys: `nationalIdentifier`, `nationalIdentifierType` (e.g. `LEIX` for an LEI), `countryOfIssue` (ISO 3166-1 alpha-2), `registrationAuthority`. If the input is not a JSON object, it is wrapped as `{\"nationalIdentifier\":\"<value>\"}`; if the value matches the LEI format, `nationalIdentifierType` is set to `LEIX` automatically and `countryOfIssue` defaults to this request's `countryOfRegistration` if not provided. The compacted JSON must be 240 characters or fewer. On read, the value is returned exactly as stored. | [optional] | |**dateOfIncorporation** | **LocalDate** | Date of entity incorporation (ISO 8601 format: YYYY-MM-DD) | [optional] | |**vaults** | **List<Integer>** | Associated Fireblocks vault account IDs | [optional] | -|**trPrimaryPurpose** | **String** | Primary purpose for Travel Rule compliance (enum value) | [optional] | +|**trPrimaryPurpose** | **String** | Primary Travel Rule role for this customer; determines how the customer's Travel Rule messages are routed. Valid values: `notabene`, `trlink`. | [optional] | diff --git a/docs/TRLinkCustomerResponse.md b/docs/TRLinkCustomerResponse.md index 633fc20e..55696230 100644 --- a/docs/TRLinkCustomerResponse.md +++ b/docs/TRLinkCustomerResponse.md @@ -8,16 +8,15 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**id** | **UUID** | Customer unique identifier | | -|**tenantId** | **UUID** | Fireblocks tenant ID | | |**discoverable** | **TRLinkDiscoverableStatus** | | | |**shortName** | **String** | Short display name | | |**fullLegalName** | **String** | Full legal entity name | | |**geographicAddress** | [**TRLinkGeographicAddressRequest**](TRLinkGeographicAddressRequest.md) | | [optional] | |**countryOfRegistration** | **String** | ISO 3166-1 alpha-2 country code where the entity is registered | | -|**nationalIdentification** | **String** | National identification (serialized as string) | [optional] | +|**nationalIdentification** | **String** | National identification, returned exactly as stored: a compact, whitespace-free JSON-encoded string with these optional keys (in this order): `nationalIdentifier`, `nationalIdentifierType` (e.g. `LEIX` for an LEI), `countryOfIssue` (ISO 3166-1 alpha-2), `registrationAuthority`. Maximum length is 240 characters. | [optional] | |**dateOfIncorporation** | **LocalDate** | Date of entity incorporation (ISO 8601 format) | [optional] | |**vaults** | **List<Integer>** | Associated Fireblocks vault account IDs | [optional] | -|**trPrimaryPurpose** | **String** | Primary purpose for Travel Rule compliance | [optional] | +|**trPrimaryPurpose** | **String** | Primary Travel Rule role for this customer; determines how the customer's Travel Rule messages are routed. Valid values: `notabene`, `trlink`. | | |**createDate** | **OffsetDateTime** | Timestamp when the customer was created (ISO 8601 format) | | |**lastUpdate** | **OffsetDateTime** | Timestamp when the customer was last updated (ISO 8601 format) | | diff --git a/docs/TRLinkUpdateCustomerRequest.md b/docs/TRLinkUpdateCustomerRequest.md index 16956f1c..8a1cdb89 100644 --- a/docs/TRLinkUpdateCustomerRequest.md +++ b/docs/TRLinkUpdateCustomerRequest.md @@ -8,14 +8,14 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**discoverable** | **TRLinkDiscoverableStatus** | | [optional] | -|**shortName** | **String** | Short display name | [optional] | +|**shortName** | **String** | Short display name (required) | | |**fullLegalName** | **String** | Full legal entity name | [optional] | |**geographicAddress** | [**TRLinkGeographicAddressRequest**](TRLinkGeographicAddressRequest.md) | | [optional] | |**countryOfRegistration** | **String** | ISO 3166-1 alpha-2 country code where the entity is registered | [optional] | -|**nationalIdentification** | **String** | National identification as JSON string | [optional] | +|**nationalIdentification** | **String** | National identification, sent as a JSON-encoded string. The server normalizes input into a compact JSON with these optional keys: `nationalIdentifier`, `nationalIdentifierType` (e.g. `LEIX` for an LEI), `countryOfIssue` (ISO 3166-1 alpha-2), `registrationAuthority`. If the input is not a JSON object, it is wrapped as `{\"nationalIdentifier\":\"<value>\"}`; if the value matches the LEI format, `nationalIdentifierType` is set to `LEIX` automatically and `countryOfIssue` defaults to this request's `countryOfRegistration` if not provided. The compacted JSON must be 240 characters or fewer. Omitting this field leaves the stored value unchanged; setting it to `null` clears it. On read, the value is returned exactly as stored. | [optional] | |**dateOfIncorporation** | **LocalDate** | Date of entity incorporation (ISO 8601 format: YYYY-MM-DD) | [optional] | |**vaults** | **List<Integer>** | Associated Fireblocks vault account IDs | [optional] | -|**trPrimaryPurpose** | **String** | Primary purpose for Travel Rule compliance | [optional] | +|**trPrimaryPurpose** | **String** | Primary Travel Rule role for this customer; determines how the customer's Travel Rule messages are routed. Valid values: `notabene`, `trlink`. Omit the field to leave the stored value unchanged. | [optional] | diff --git a/docs/TradingBetaApi.md b/docs/TradingBetaApi.md index 0ba2c782..5d7fa34a 100644 --- a/docs/TradingBetaApi.md +++ b/docs/TradingBetaApi.md @@ -6,6 +6,8 @@ All URIs are relative to https://developers.fireblocks.com/reference/ |------------- | ------------- | -------------| | [**createOrder**](TradingBetaApi.md#createOrder) | **POST** /trading/orders | Create an order | | [**createQuote**](TradingBetaApi.md#createQuote) | **POST** /trading/quotes | Create a quote | +| [**fetchAllOffers**](TradingBetaApi.md#fetchAllOffers) | **POST** /trading/offers | Get all offers | +| [**fetchRates**](TradingBetaApi.md#fetchRates) | **POST** /trading/rates | Get rates | | [**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 | @@ -193,6 +195,186 @@ No authorization required | **0** | Error Response | * X-Request-ID -
| +## fetchAllOffers + +> CompletableFuture> fetchAllOffers fetchAllOffers(createOffersRequest, idempotencyKey) + +Get all offers + +Retrieve all available offers across the workspace for a given asset pair. Always operates in open scope — no provider or account selection required. Returns a mix of indicative rates and committed quotes as applicable per provider. If no slippageBps is provided, it defaults to 50 bps (0.5%). Slippage and settlement configuration do not affect the returned rate. 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, Editor. 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); + + CreateOffersRequest createOffersRequest = new CreateOffersRequest(); // CreateOffersRequest | + 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.tradingBeta().fetchAllOffers(createOffersRequest, 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 TradingBetaApi#fetchAllOffers"); + 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#fetchAllOffers"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **createOffersRequest** | [**CreateOffersRequest**](CreateOffersRequest.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 | +|-------------|-------------|------------------| +| **201** | Offers response | * X-Request-ID -
| +| **400** | Bad request: invalid input parameters, malformed request body, or validation failure. | * 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 -
| +| **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 -
| + + +## fetchRates + +> CompletableFuture> fetchRates fetchRates(ratesRequest, idempotencyKey) + +Get rates + +Retrieve indicative exchange rate from specified providers for a given asset pair. Rates are non-executable price signals intended for discovery and display purposes. 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); + + RatesRequest ratesRequest = new RatesRequest(); // RatesRequest | + 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.tradingBeta().fetchRates(ratesRequest, 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 TradingBetaApi#fetchRates"); + 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#fetchRates"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **ratesRequest** | [**RatesRequest**](RatesRequest.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** | Rate response | * X-Request-ID -
| +| **400** | Bad request: invalid input parameters, malformed request body, or validation failure. | * 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 -
| +| **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 -
| + + ## getOrder > CompletableFuture> getOrder getOrder(orderId) diff --git a/docs/CircleGatewayWalletInfoResponse.md b/docs/UsdcGatewayWalletInfoResponse.md similarity index 70% rename from docs/CircleGatewayWalletInfoResponse.md rename to docs/UsdcGatewayWalletInfoResponse.md index 0199e350..814385e3 100644 --- a/docs/CircleGatewayWalletInfoResponse.md +++ b/docs/UsdcGatewayWalletInfoResponse.md @@ -1,15 +1,15 @@ -# CircleGatewayWalletInfoResponse +# UsdcGatewayWalletInfoResponse ## Properties | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**walletId** | **String** | The Circle Gateway wallet identifier | | -|**type** | **String** | The Circle Gateway provider identifier | | -|**status** | [**StatusEnum**](#StatusEnum) | Current activation status of the Circle Gateway wallet | | +|**walletId** | **String** | The USDC Gateway wallet identifier | | +|**type** | **String** | The USDC Gateway provider identifier | | +|**status** | [**StatusEnum**](#StatusEnum) | Current activation status of the USDC Gateway wallet | | |**symbol** | **String** | The token symbol supported by this wallet (e.g. USDC) | | |**assetIds** | **List<String>** | Fireblocks asset IDs available for this wallet | | diff --git a/docs/CircleGatewayWalletStatusResponse.md b/docs/UsdcGatewayWalletStatusResponse.md similarity index 68% rename from docs/CircleGatewayWalletStatusResponse.md rename to docs/UsdcGatewayWalletStatusResponse.md index 47f70fde..3de26f43 100644 --- a/docs/CircleGatewayWalletStatusResponse.md +++ b/docs/UsdcGatewayWalletStatusResponse.md @@ -1,14 +1,14 @@ -# CircleGatewayWalletStatusResponse +# UsdcGatewayWalletStatusResponse ## Properties | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**walletId** | **String** | The Circle Gateway wallet identifier | | -|**status** | [**StatusEnum**](#StatusEnum) | Current activation status of the Circle Gateway wallet | | +|**walletId** | **String** | The USDC Gateway wallet identifier | | +|**status** | [**StatusEnum**](#StatusEnum) | Current activation status of the USDC Gateway wallet | | diff --git a/docs/UtxoManagementBetaApi.md b/docs/UtxoManagementBetaApi.md index 94df86ed..a792ee5a 100644 --- a/docs/UtxoManagementBetaApi.md +++ b/docs/UtxoManagementBetaApi.md @@ -11,7 +11,7 @@ All URIs are relative to https://developers.fireblocks.com/reference/ ## getUtxos -> CompletableFuture> getUtxos getUtxos(vaultAccountId, assetId, pageCursor, pageSize, sort, order, includeAllLabels, includeAnyLabels, excludeAnyLabels, includeStatuses, address, minAmount, maxAmount, useChange, useCoinbase) +> CompletableFuture> getUtxos getUtxos(vaultAccountId, assetId, pageCursor, pageSize, sort, order, includeAllLabels, includeAnyLabels, excludeAnyLabels, includeStatuses, address, minAmount, maxAmount) List unspent outputs (UTXOs) @@ -53,10 +53,8 @@ public class Example { String address = "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa"; // String | Filter by address String minAmount = "0.001"; // String | Minimum amount filter String maxAmount = "1.0"; // String | Maximum amount filter - Boolean useChange = true; // Boolean | Include change outputs - Boolean useCoinbase = true; // Boolean | Include coinbase outputs try { - CompletableFuture> response = fireblocks.utxoManagementBeta().getUtxos(vaultAccountId, assetId, pageCursor, pageSize, sort, order, includeAllLabels, includeAnyLabels, excludeAnyLabels, includeStatuses, address, minAmount, maxAmount, useChange, useCoinbase); + CompletableFuture> response = fireblocks.utxoManagementBeta().getUtxos(vaultAccountId, assetId, pageCursor, pageSize, sort, order, includeAllLabels, includeAnyLabels, excludeAnyLabels, includeStatuses, address, minAmount, maxAmount); System.out.println("Status code: " + response.get().getStatusCode()); System.out.println("Response headers: " + response.get().getHeaders()); System.out.println("Response body: " + response.get().getData()); @@ -96,8 +94,6 @@ public class Example { | **address** | **String**| Filter by address | [optional] | | **minAmount** | **String**| Minimum amount filter | [optional] | | **maxAmount** | **String**| Maximum amount filter | [optional] | -| **useChange** | **Boolean**| Include change outputs | [optional] | -| **useCoinbase** | **Boolean**| Include coinbase outputs | [optional] | ### Return type diff --git a/docs/UtxoSelectionFilters.md b/docs/UtxoSelectionFilters.md index 91f01dd8..c7a61289 100644 --- a/docs/UtxoSelectionFilters.md +++ b/docs/UtxoSelectionFilters.md @@ -14,8 +14,6 @@ Narrow the UTXO candidate pool. All specified filters are AND-ed together. This |**address** | **String** | Only include UTXOs from this specific address. | [optional] | |**minAmount** | **String** | Minimum UTXO amount in the asset's base unit (e.g., BTC). | [optional] | |**maxAmount** | **String** | Maximum UTXO amount in the asset's base unit (e.g., BTC). | [optional] | -|**useChange** | **Boolean** | Set to false to exclude change UTXOs. Default is true. | [optional] | -|**useCoinbase** | **Boolean** | Set to false to exclude coinbase UTXOs. Default is true. | [optional] | diff --git a/docs/UtxoSelectionParams.md b/docs/UtxoSelectionParams.md index 4f35778e..c6a7a6c3 100644 --- a/docs/UtxoSelectionParams.md +++ b/docs/UtxoSelectionParams.md @@ -8,8 +8,18 @@ For UTXO-based blockchains only. Controls which UTXOs are used for automatic sel | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**selectionStrategy** | [**SelectionStrategyEnum**](#SelectionStrategyEnum) | Optional override for the UTXO selection strategy configured at the vault/tenant level. | [optional] | |**filters** | [**UtxoSelectionFilters**](UtxoSelectionFilters.md) | | [optional] | |**inputSelection** | [**UtxoInputSelection**](UtxoInputSelection.md) | | [optional] | +## Enum: SelectionStrategyEnum + +| Name | Value | +|---- | -----| +| AMOUNT_ASC | "AMOUNT_ASC" | +| AMOUNT_DESC | "AMOUNT_DESC" | + + + diff --git a/docs/VaultsApi.md b/docs/VaultsApi.md index edad53d0..df682a7d 100644 --- a/docs/VaultsApi.md +++ b/docs/VaultsApi.md @@ -5,7 +5,7 @@ All URIs are relative to https://developers.fireblocks.com/reference/ | Method | HTTP request | Description | |------------- | ------------- | -------------| | [**activateAssetForVaultAccount**](VaultsApi.md#activateAssetForVaultAccount) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/activate | Activate a wallet in a vault account | -| [**activateCircleGatewayWalletBeta**](VaultsApi.md#activateCircleGatewayWalletBeta) | **POST** /vault/accounts/{vaultAccountId}/circle_gateway/activate | Activate a Circle Gateway wallet | +| [**activateUsdcGatewayWalletBeta**](VaultsApi.md#activateUsdcGatewayWalletBeta) | **POST** /vault/accounts/{vaultAccountId}/usdc_gateway/activate | Activate a USDC Gateway wallet | | [**attachOrDetachTagsFromVaultAccounts**](VaultsApi.md#attachOrDetachTagsFromVaultAccounts) | **POST** /vault/accounts/attached_tags | Attach or detach tags from vault accounts | | [**createLegacyAddress**](VaultsApi.md#createLegacyAddress) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}/create_legacy | Convert a segwit address to legacy format | | [**createMultipleAccounts**](VaultsApi.md#createMultipleAccounts) | **POST** /vault/accounts/bulk | Bulk creation of new vault accounts | @@ -13,9 +13,8 @@ All URIs are relative to https://developers.fireblocks.com/reference/ | [**createVaultAccount**](VaultsApi.md#createVaultAccount) | **POST** /vault/accounts | Create a new vault account | | [**createVaultAccountAsset**](VaultsApi.md#createVaultAccountAsset) | **POST** /vault/accounts/{vaultAccountId}/{assetId} | Create a new vault wallet | | [**createVaultAccountAssetAddress**](VaultsApi.md#createVaultAccountAssetAddress) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/addresses | Create new asset deposit address | -| [**deactivateCircleGatewayWalletBeta**](VaultsApi.md#deactivateCircleGatewayWalletBeta) | **POST** /vault/accounts/{vaultAccountId}/circle_gateway/deactivate | Deactivate a Circle Gateway wallet | +| [**deactivateUsdcGatewayWalletBeta**](VaultsApi.md#deactivateUsdcGatewayWalletBeta) | **POST** /vault/accounts/{vaultAccountId}/usdc_gateway/deactivate | Deactivate a USDC Gateway wallet | | [**getAssetWallets**](VaultsApi.md#getAssetWallets) | **GET** /vault/asset_wallets | Get vault wallets (Paginated) | -| [**getCircleGatewayWalletInfoBeta**](VaultsApi.md#getCircleGatewayWalletInfoBeta) | **GET** /vault/accounts/{vaultAccountId}/circle_gateway | Get Circle Gateway wallet info | | [**getCreateMultipleDepositAddressesJobStatus**](VaultsApi.md#getCreateMultipleDepositAddressesJobStatus) | **GET** /vault/accounts/addresses/bulk/{jobId} | Get the job status of the bulk deposit address creation | | [**getCreateMultipleVaultAccountsJobStatus**](VaultsApi.md#getCreateMultipleVaultAccountsJobStatus) | **GET** /vault/accounts/bulk/{jobId} | Get job status of bulk creation of new vault accounts | | [**getMaxBipIndexUsed**](VaultsApi.md#getMaxBipIndexUsed) | **GET** /vault/accounts/{vaultAccountId}/{assetId}/max_bip44_index_used | Get maximum BIP44 index used | @@ -24,12 +23,14 @@ All URIs are relative to https://developers.fireblocks.com/reference/ | [**getPublicKeyInfo**](VaultsApi.md#getPublicKeyInfo) | **GET** /vault/public_key_info | Get the public key for a derivation path | | [**getPublicKeyInfoForAddress**](VaultsApi.md#getPublicKeyInfoForAddress) | **GET** /vault/accounts/{vaultAccountId}/{assetId}/{change}/{addressIndex}/public_key_info | Get an asset's public key | | [**getUnspentInputs**](VaultsApi.md#getUnspentInputs) | **GET** /vault/accounts/{vaultAccountId}/{assetId}/unspent_inputs | Get UTXO unspent inputs information | +| [**getUsdcGatewayWalletInfoBeta**](VaultsApi.md#getUsdcGatewayWalletInfoBeta) | **GET** /vault/accounts/{vaultAccountId}/usdc_gateway | Get USDC Gateway wallet info | | [**getVaultAccount**](VaultsApi.md#getVaultAccount) | **GET** /vault/accounts/{vaultAccountId} | Get a vault account by ID | | [**getVaultAccountAsset**](VaultsApi.md#getVaultAccountAsset) | **GET** /vault/accounts/{vaultAccountId}/{assetId} | Get the asset balance for a vault account | | [**getVaultAccountAssetAddressesPaginated**](VaultsApi.md#getVaultAccountAssetAddressesPaginated) | **GET** /vault/accounts/{vaultAccountId}/{assetId}/addresses_paginated | Get addresses (Paginated) | | [**getVaultAssets**](VaultsApi.md#getVaultAssets) | **GET** /vault/assets | Get asset balance for chosen assets | | [**getVaultBalanceByAsset**](VaultsApi.md#getVaultBalanceByAsset) | **GET** /vault/assets/{assetId} | Get vault balance by an asset | | [**hideVaultAccount**](VaultsApi.md#hideVaultAccount) | **POST** /vault/accounts/{vaultAccountId}/hide | Hide a vault account in the console | +| [**lookupVaultByAddress**](VaultsApi.md#lookupVaultByAddress) | **GET** /vault/lookup_by_address | Look up a vault account by blockchain address | | [**setCustomerRefIdForAddress**](VaultsApi.md#setCustomerRefIdForAddress) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}/set_customer_ref_id | Assign AML customer reference ID | | [**setVaultAccountAutoFuel**](VaultsApi.md#setVaultAccountAutoFuel) | **POST** /vault/accounts/{vaultAccountId}/set_auto_fuel | Set auto fueling to on or off | | [**setVaultAccountCustomerRefId**](VaultsApi.md#setVaultAccountCustomerRefId) | **POST** /vault/accounts/{vaultAccountId}/set_customer_ref_id | Set an AML/KYT ID for a vault account | @@ -129,13 +130,13 @@ No authorization required | **0** | Error Response | * X-Request-ID -
| -## activateCircleGatewayWalletBeta +## activateUsdcGatewayWalletBeta -> CompletableFuture> activateCircleGatewayWalletBeta activateCircleGatewayWalletBeta(vaultAccountId, idempotencyKey) +> CompletableFuture> activateUsdcGatewayWalletBeta activateUsdcGatewayWalletBeta(vaultAccountId, idempotencyKey) -Activate a Circle Gateway wallet +Activate a USDC Gateway wallet -Activates the Circle Gateway wallet associated with the given vault account. If the wallet does not yet exist it is created in an activated state. **Note:** This endpoint is currently in beta and might be subject to changes. </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver. +Activates the USDC Gateway wallet associated with the given vault account. If the wallet does not yet exist it is created in an activated state. **Note:** This endpoint is currently in beta and might be subject to changes. </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver. ### Example @@ -163,19 +164,19 @@ public class Example { String vaultAccountId = "vaultAccountId_example"; // String | The ID of the vault account 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.vaults().activateCircleGatewayWalletBeta(vaultAccountId, idempotencyKey); + CompletableFuture> response = fireblocks.vaults().activateUsdcGatewayWalletBeta(vaultAccountId, 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 VaultsApi#activateCircleGatewayWalletBeta"); + System.err.println("Exception when calling VaultsApi#activateUsdcGatewayWalletBeta"); 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 VaultsApi#activateCircleGatewayWalletBeta"); + System.err.println("Exception when calling VaultsApi#activateUsdcGatewayWalletBeta"); System.err.println("Status code: " + e.getCode()); System.err.println("Response headers: " + e.getResponseHeaders()); System.err.println("Reason: " + e.getResponseBody()); @@ -195,7 +196,7 @@ public class Example { ### Return type -CompletableFuture> +CompletableFuture> ### Authorization @@ -210,7 +211,7 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | Circle Gateway wallet activated successfully | * X-Request-ID -
| +| **200** | USDC Gateway wallet activated successfully | * X-Request-ID -
| | **0** | Error Response | * X-Request-ID -
| @@ -824,13 +825,13 @@ No authorization required | **0** | Error Response | * X-Request-ID -
| -## deactivateCircleGatewayWalletBeta +## deactivateUsdcGatewayWalletBeta -> CompletableFuture> deactivateCircleGatewayWalletBeta deactivateCircleGatewayWalletBeta(vaultAccountId, idempotencyKey) +> CompletableFuture> deactivateUsdcGatewayWalletBeta deactivateUsdcGatewayWalletBeta(vaultAccountId, idempotencyKey) -Deactivate a Circle Gateway wallet +Deactivate a USDC Gateway wallet -Deactivates the Circle Gateway wallet associated with the given vault account. **Note:** This endpoint is currently in beta and might be subject to changes. </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver. +Deactivates the USDC Gateway wallet associated with the given vault account. **Note:** This endpoint is currently in beta and might be subject to changes. </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver. ### Example @@ -858,19 +859,19 @@ public class Example { String vaultAccountId = "vaultAccountId_example"; // String | The ID of the vault account 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.vaults().deactivateCircleGatewayWalletBeta(vaultAccountId, idempotencyKey); + CompletableFuture> response = fireblocks.vaults().deactivateUsdcGatewayWalletBeta(vaultAccountId, 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 VaultsApi#deactivateCircleGatewayWalletBeta"); + System.err.println("Exception when calling VaultsApi#deactivateUsdcGatewayWalletBeta"); 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 VaultsApi#deactivateCircleGatewayWalletBeta"); + System.err.println("Exception when calling VaultsApi#deactivateUsdcGatewayWalletBeta"); System.err.println("Status code: " + e.getCode()); System.err.println("Response headers: " + e.getResponseHeaders()); System.err.println("Reason: " + e.getResponseBody()); @@ -890,7 +891,7 @@ public class Example { ### Return type -CompletableFuture> +CompletableFuture> ### Authorization @@ -905,7 +906,7 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | Circle Gateway wallet deactivated successfully | * X-Request-ID -
| +| **200** | USDC Gateway wallet deactivated successfully | * X-Request-ID -
| | **0** | Error Response | * X-Request-ID -
| @@ -1001,89 +1002,6 @@ No authorization required | **200** | A PaginatedAssetWalletResponse object | * X-Request-ID -
| -## getCircleGatewayWalletInfoBeta - -> CompletableFuture> getCircleGatewayWalletInfoBeta getCircleGatewayWalletInfoBeta(vaultAccountId) - -Get Circle Gateway wallet info - -Returns the Circle Gateway wallet information associated with the given vault account. **Note:** This endpoint is currently in beta and might be subject to changes. </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - -### Example - -```java -// Import classes: -import com.fireblocks.sdk.ApiClient; -import com.fireblocks.sdk.ApiException; -import com.fireblocks.sdk.ApiResponse; -import com.fireblocks.sdk.BasePath; -import com.fireblocks.sdk.Fireblocks; -import com.fireblocks.sdk.ConfigurationOptions; -import com.fireblocks.sdk.model.*; -import com.fireblocks.sdk.api.VaultsApi; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.ExecutionException; - -public class Example { - public static void main(String[] args) { - ConfigurationOptions configurationOptions = new ConfigurationOptions() - .basePath(BasePath.Sandbox) - .apiKey("my-api-key") - .secretKey("my-secret-key"); - Fireblocks fireblocks = new Fireblocks(configurationOptions); - - String vaultAccountId = "vaultAccountId_example"; // String | The ID of the vault account - try { - CompletableFuture> response = fireblocks.vaults().getCircleGatewayWalletInfoBeta(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 VaultsApi#getCircleGatewayWalletInfoBeta"); - 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 VaultsApi#getCircleGatewayWalletInfoBeta"); - System.err.println("Status code: " + e.getCode()); - System.err.println("Response headers: " + e.getResponseHeaders()); - System.err.println("Reason: " + e.getResponseBody()); - e.printStackTrace(); - } - } -} -``` - -### Parameters - - -| Name | Type | Description | Notes | -|------------- | ------------- | ------------- | -------------| -| **vaultAccountId** | **String**| The ID of the vault account | | - -### 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** | Circle Gateway wallet information | * X-Request-ID -
| -| **0** | Error Response | * X-Request-ID -
| - - ## getCreateMultipleDepositAddressesJobStatus > CompletableFuture> getCreateMultipleDepositAddressesJobStatus getCreateMultipleDepositAddressesJobStatus(jobId) @@ -1787,6 +1705,89 @@ No authorization required | **0** | Error Response | * X-Request-ID -
| +## getUsdcGatewayWalletInfoBeta + +> CompletableFuture> getUsdcGatewayWalletInfoBeta getUsdcGatewayWalletInfoBeta(vaultAccountId) + +Get USDC Gateway wallet info + +Returns the USDC Gateway wallet information associated with the given vault account. **Note:** This endpoint is currently in beta and might be subject to changes. </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. + +### Example + +```java +// Import classes: +import com.fireblocks.sdk.ApiClient; +import com.fireblocks.sdk.ApiException; +import com.fireblocks.sdk.ApiResponse; +import com.fireblocks.sdk.BasePath; +import com.fireblocks.sdk.Fireblocks; +import com.fireblocks.sdk.ConfigurationOptions; +import com.fireblocks.sdk.model.*; +import com.fireblocks.sdk.api.VaultsApi; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; + +public class Example { + public static void main(String[] args) { + ConfigurationOptions configurationOptions = new ConfigurationOptions() + .basePath(BasePath.Sandbox) + .apiKey("my-api-key") + .secretKey("my-secret-key"); + Fireblocks fireblocks = new Fireblocks(configurationOptions); + + String vaultAccountId = "vaultAccountId_example"; // String | The ID of the vault account + try { + CompletableFuture> response = fireblocks.vaults().getUsdcGatewayWalletInfoBeta(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 VaultsApi#getUsdcGatewayWalletInfoBeta"); + 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 VaultsApi#getUsdcGatewayWalletInfoBeta"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Response headers: " + e.getResponseHeaders()); + System.err.println("Reason: " + e.getResponseBody()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **vaultAccountId** | **String**| The ID of the vault account | | + +### 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** | USDC Gateway wallet information | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| + + ## getVaultAccount > CompletableFuture> getVaultAccount getVaultAccount(vaultAccountId) @@ -2299,6 +2300,92 @@ No authorization required | **0** | Error Response | * X-Request-ID -
| +## lookupVaultByAddress + +> CompletableFuture> lookupVaultByAddress lookupVaultByAddress(address) + +Look up a vault account by blockchain address + +Resolves a blockchain address to the vault account that owns it. Returns the vault account ID and the blockchains associated with the address. **Note:** This endpoint is currently in beta and might be subject to changes. + +### Example + +```java +// Import classes: +import com.fireblocks.sdk.ApiClient; +import com.fireblocks.sdk.ApiException; +import com.fireblocks.sdk.ApiResponse; +import com.fireblocks.sdk.BasePath; +import com.fireblocks.sdk.Fireblocks; +import com.fireblocks.sdk.ConfigurationOptions; +import com.fireblocks.sdk.model.*; +import com.fireblocks.sdk.api.VaultsApi; +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 = "address_example"; // String | The blockchain address to resolve. + try { + CompletableFuture> response = fireblocks.vaults().lookupVaultByAddress(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 VaultsApi#lookupVaultByAddress"); + 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 VaultsApi#lookupVaultByAddress"); + 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**| The blockchain address to resolve. | | + +### 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** | Vault account that owns the address, with associated blockchains. | * X-Request-ID -
| +| **401** | Unauthorized. Missing / invalid JWT token in Authorization header. | * X-Request-ID -
| +| **403** | Feature is not enabled for the workspace. | * X-Request-ID -
| +| **404** | Vault account not found for the supplied address | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| + + ## setCustomerRefIdForAddress > CompletableFuture> setCustomerRefIdForAddress setCustomerRefIdForAddress(setCustomerRefIdForAddressRequest, vaultAccountId, assetId, addressId, idempotencyKey) diff --git a/pom.xml b/pom.xml index 35ee7a40..89176ce6 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ fireblocks-sdk jar fireblocks-sdk - 18.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 c51b9b87..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 = "18.0.0"; + public static final String VERSION = "0.0.0"; private static final AtomicReference defaultApiClient = new AtomicReference<>(); private static volatile Supplier apiClientFactory = ApiClient::new; diff --git a/src/main/java/com/fireblocks/sdk/Fireblocks.java b/src/main/java/com/fireblocks/sdk/Fireblocks.java index df1aef7e..cdd91d71 100644 --- a/src/main/java/com/fireblocks/sdk/Fireblocks.java +++ b/src/main/java/com/fireblocks/sdk/Fireblocks.java @@ -54,6 +54,7 @@ public class Fireblocks { private ExternalWalletsApi externalWallets; private FiatAccountsApi fiatAccounts; private GasStationsApi gasStations; + private GenieBetaApi genieBeta; private InternalWalletsApi internalWallets; private KeyLinkBetaApi keyLinkBeta; private KeysBetaApi keysBeta; @@ -349,6 +350,13 @@ public GasStationsApi gasStations() { return gasStations; } + public GenieBetaApi genieBeta() { + if (genieBeta == null) { + genieBeta = new GenieBetaApi(apiClient); + } + return genieBeta; + } + public InternalWalletsApi internalWallets() { if (internalWallets == null) { internalWallets = new InternalWalletsApi(apiClient); diff --git a/src/main/java/com/fireblocks/sdk/api/ComplianceApi.java b/src/main/java/com/fireblocks/sdk/api/ComplianceApi.java index bc525fcb..8e40c2e5 100644 --- a/src/main/java/com/fireblocks/sdk/api/ComplianceApi.java +++ b/src/main/java/com/fireblocks/sdk/api/ComplianceApi.java @@ -31,6 +31,7 @@ import com.fireblocks.sdk.model.AddressRegistryVaultListOrder; import com.fireblocks.sdk.model.AmlVerdictManualRequest; import com.fireblocks.sdk.model.AmlVerdictManualResponse; +import com.fireblocks.sdk.model.ArsConfigResponse; import com.fireblocks.sdk.model.AssignVaultsToLegalEntityRequest; import com.fireblocks.sdk.model.AssignVaultsToLegalEntityResponse; import com.fireblocks.sdk.model.ByorkConfigResponse; @@ -107,6 +108,77 @@ private String formatExceptionMessage(String operationId, int statusCode, String return operationId + " call failed with: " + statusCode + " - " + body; } + /** + * Activate ARS (Address Registry Screening) Activates ARS (Address Registry Screening) for the + * authenticated tenant (sets config.active to true). Once activated, ARS screening applies to + * matching transactions. + * + * @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<ArsConfigResponse>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> activateArsConfig( + String idempotencyKey) throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = + activateArsConfigRequestBuilder(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("activateArsConfig", 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< + ArsConfigResponse>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder activateArsConfigRequestBuilder(String idempotencyKey) + throws ApiException { + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = "/screening/ars/config/activate"; + + localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath)); + + if (idempotencyKey != null) { + localVarRequestBuilder.header("Idempotency-Key", idempotencyKey.toString()); + } + localVarRequestBuilder.header("Accept", "application/json"); + + localVarRequestBuilder.method("POST", HttpRequest.BodyPublishers.noBody()); + if (memberVarReadTimeout != null) { + localVarRequestBuilder.timeout(memberVarReadTimeout); + } + if (memberVarInterceptor != null) { + memberVarInterceptor.accept(localVarRequestBuilder); + } + return localVarRequestBuilder; + } /** * Activate BYORK Light Activates BYORK Light for the authenticated tenant (sets config.active * to true). Once activated, BYORK screening applies to matching transactions. Requires BYORK @@ -455,6 +527,78 @@ private HttpRequest.Builder createCounterpartyGroupRequestBuilder( } return localVarRequestBuilder; } + /** + * Deactivate ARS (Address Registry Screening) Deactivates ARS (Address Registry Screening) for + * the authenticated tenant (sets config.active to false). Once deactivated, ARS screening no + * longer applies until activated again. + * + * @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<ArsConfigResponse>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> deactivateArsConfig( + String idempotencyKey) throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = + deactivateArsConfigRequestBuilder(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( + "deactivateArsConfig", 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< + ArsConfigResponse>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder deactivateArsConfigRequestBuilder(String idempotencyKey) + throws ApiException { + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = "/screening/ars/config/deactivate"; + + localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath)); + + if (idempotencyKey != null) { + localVarRequestBuilder.header("Idempotency-Key", idempotencyKey.toString()); + } + localVarRequestBuilder.header("Accept", "application/json"); + + localVarRequestBuilder.method("POST", HttpRequest.BodyPublishers.noBody()); + if (memberVarReadTimeout != null) { + localVarRequestBuilder.timeout(memberVarReadTimeout); + } + if (memberVarInterceptor != null) { + memberVarInterceptor.accept(localVarRequestBuilder); + } + return localVarRequestBuilder; + } /** * Deactivate BYORK Light Deactivates BYORK Light for the authenticated tenant (sets * config.active to false). Once deactivated, BYORK screening no longer applies until activated @@ -2141,9 +2285,9 @@ private HttpRequest.Builder removeAllAddressRegistryVaultOptOutsRequestBuilder() return localVarRequestBuilder; } /** - * Calling the \"Bypass Screening Policy\" API endpoint triggers a new transaction, - * with the API user as the initiator, bypassing the screening policy check This endpoint is - * restricted to Admin API users and is only applicable to outgoing transactions. + * Bypass Screening Policy Triggers a new transaction, with the API user as the initiator, + * bypassing the screening policy checks. This endpoint is restricted to Admin API users and is + * only applicable to outgoing transactions. * * @param txId The transaction id that was rejected by screening checks (required) * @param idempotencyKey A unique identifier for the request. If the request is sent multiple diff --git a/src/main/java/com/fireblocks/sdk/api/GenieBetaApi.java b/src/main/java/com/fireblocks/sdk/api/GenieBetaApi.java new file mode 100644 index 00000000..804fb619 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/api/GenieBetaApi.java @@ -0,0 +1,243 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.api; + + +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fireblocks.sdk.ApiClient; +import com.fireblocks.sdk.ApiException; +import com.fireblocks.sdk.ApiResponse; +import com.fireblocks.sdk.ValidationUtils; +import com.fireblocks.sdk.model.GenieChatMessage; +import com.fireblocks.sdk.model.GenieCreateSessionResponse; +import com.fireblocks.sdk.model.GenieSendMessageRequest; +import java.io.IOException; +import java.io.InputStream; +import java.net.URI; +import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.time.Duration; +import java.util.concurrent.CompletableFuture; +import java.util.function.Consumer; + +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class GenieBetaApi { + private final HttpClient memberVarHttpClient; + private final ObjectMapper memberVarObjectMapper; + private final String memberVarBaseUri; + private final Consumer memberVarInterceptor; + private final Duration memberVarReadTimeout; + private final Consumer> memberVarResponseInterceptor; + private final Consumer> memberVarAsyncResponseInterceptor; + + public GenieBetaApi() { + this(new ApiClient()); + } + + public GenieBetaApi(ApiClient apiClient) { + memberVarHttpClient = apiClient.getHttpClient(); + memberVarObjectMapper = apiClient.getObjectMapper(); + memberVarBaseUri = apiClient.getBaseUri(); + memberVarInterceptor = apiClient.getRequestInterceptor(); + memberVarReadTimeout = apiClient.getReadTimeout(); + memberVarResponseInterceptor = apiClient.getResponseInterceptor(); + memberVarAsyncResponseInterceptor = apiClient.getAsyncResponseInterceptor(); + } + + private ApiException getApiException(String operationId, HttpResponse response) { + String message = + formatExceptionMessage(operationId, response.statusCode(), response.body()); + return new ApiException( + response.statusCode(), message, response.headers(), response.body()); + } + + private String formatExceptionMessage(String operationId, int statusCode, String body) { + if (body == null || body.isEmpty()) { + body = "[no body]"; + } + return operationId + " call failed with: " + statusCode + " - " + body; + } + + /** + * Create a Genie session Starts a new conversation with Genie, the Fireblocks AI assistant. + * Returns a `sessionId` — pass it when sending messages, and reuse it across calls to + * keep one continuous conversation. **Note:** This endpoint is currently in beta and might be + * subject to changes. + * + * @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<GenieCreateSessionResponse>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> createGenieSession( + String idempotencyKey) throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = + createGenieSessionRequestBuilder(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( + "createGenieSession", 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< + GenieCreateSessionResponse>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder createGenieSessionRequestBuilder(String idempotencyKey) + throws ApiException { + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = "/genie/sessions"; + + localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath)); + + if (idempotencyKey != null) { + localVarRequestBuilder.header("Idempotency-Key", idempotencyKey.toString()); + } + localVarRequestBuilder.header("Accept", "application/json"); + + localVarRequestBuilder.method("POST", HttpRequest.BodyPublishers.noBody()); + if (memberVarReadTimeout != null) { + localVarRequestBuilder.timeout(memberVarReadTimeout); + } + if (memberVarInterceptor != null) { + memberVarInterceptor.accept(localVarRequestBuilder); + } + return localVarRequestBuilder; + } + /** + * Send a message to a Genie session Sends a question to Genie and returns a single answer. + * Reuse the `sessionId` from the original session on follow-up messages to continue + * the conversation with prior context. **Note:** This endpoint is currently in beta and might + * be subject to changes. + * + * @param genieSendMessageRequest (required) + * @param sessionId The Genie session ID returned from `POST /genie/sessions`. + * (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<GenieChatMessage>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> sendGenieMessage( + GenieSendMessageRequest genieSendMessageRequest, + String sessionId, + String idempotencyKey) + throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = + sendGenieMessageRequestBuilder( + genieSendMessageRequest, sessionId, 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("sendGenieMessage", 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< + GenieChatMessage>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder sendGenieMessageRequestBuilder( + GenieSendMessageRequest genieSendMessageRequest, + String sessionId, + String idempotencyKey) + throws ApiException { + ValidationUtils.assertParamExists( + "sendGenieMessage", "genieSendMessageRequest", genieSendMessageRequest); + ValidationUtils.assertParamExistsAndNotEmpty("sendGenieMessage", "sessionId", sessionId); + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = + "/genie/sessions/{sessionId}/messages" + .replace("{sessionId}", ApiClient.urlEncode(sessionId.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(genieSendMessageRequest); + 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; + } +} diff --git a/src/main/java/com/fireblocks/sdk/api/TradingBetaApi.java b/src/main/java/com/fireblocks/sdk/api/TradingBetaApi.java index e741f8bc..3d98d2b2 100644 --- a/src/main/java/com/fireblocks/sdk/api/TradingBetaApi.java +++ b/src/main/java/com/fireblocks/sdk/api/TradingBetaApi.java @@ -20,13 +20,17 @@ import com.fireblocks.sdk.ApiResponse; import com.fireblocks.sdk.Pair; import com.fireblocks.sdk.ValidationUtils; +import com.fireblocks.sdk.model.CreateOffersRequest; import com.fireblocks.sdk.model.CreateOrderRequest; import com.fireblocks.sdk.model.CreateQuote; import com.fireblocks.sdk.model.GetOrdersResponse; +import com.fireblocks.sdk.model.OffersResponse; import com.fireblocks.sdk.model.OrderDetails; import com.fireblocks.sdk.model.OrderStatus; import com.fireblocks.sdk.model.ProvidersListResponse; import com.fireblocks.sdk.model.QuotesResponse; +import com.fireblocks.sdk.model.RatesRequest; +import com.fireblocks.sdk.model.RatesResponse; import com.fireblocks.sdk.model.TradingProvider; import java.io.IOException; import java.io.InputStream; @@ -249,6 +253,179 @@ private HttpRequest.Builder createQuoteRequestBuilder( } return localVarRequestBuilder; } + /** + * Get all offers Retrieve all available offers across the workspace for a given asset pair. + * Always operates in open scope — no provider or account selection required. Returns a mix of + * indicative rates and committed quotes as applicable per provider. If no slippageBps is + * provided, it defaults to 50 bps (0.5%). Slippage and settlement configuration do not affect + * the returned rate. 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, Editor. 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 createOffersRequest (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<OffersResponse>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> fetchAllOffers( + CreateOffersRequest createOffersRequest, String idempotencyKey) throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = + fetchAllOffersRequestBuilder(createOffersRequest, 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("fetchAllOffers", 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< + OffersResponse>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder fetchAllOffersRequestBuilder( + CreateOffersRequest createOffersRequest, String idempotencyKey) throws ApiException { + ValidationUtils.assertParamExists( + "fetchAllOffers", "createOffersRequest", createOffersRequest); + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = "/trading/offers"; + + 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(createOffersRequest); + 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 rates Retrieve indicative exchange rate from specified providers for a given asset pair. + * Rates are non-executable price signals intended for discovery and display purposes. 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 ratesRequest (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<RatesResponse>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> fetchRates( + RatesRequest ratesRequest, String idempotencyKey) throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = + fetchRatesRequestBuilder(ratesRequest, 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("fetchRates", 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< + RatesResponse>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder fetchRatesRequestBuilder( + RatesRequest ratesRequest, String idempotencyKey) throws ApiException { + ValidationUtils.assertParamExists("fetchRates", "ratesRequest", ratesRequest); + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = "/trading/rates"; + + 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(ratesRequest); + 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 order details Retrieve detailed information about a specific order by its ID. Note:These * endpoints are currently in beta and might be subject to changes. If you want to participate diff --git a/src/main/java/com/fireblocks/sdk/api/UtxoManagementBetaApi.java b/src/main/java/com/fireblocks/sdk/api/UtxoManagementBetaApi.java index 0f43aa85..281eb85b 100644 --- a/src/main/java/com/fireblocks/sdk/api/UtxoManagementBetaApi.java +++ b/src/main/java/com/fireblocks/sdk/api/UtxoManagementBetaApi.java @@ -96,8 +96,6 @@ private String formatExceptionMessage(String operationId, int statusCode, String * @param address Filter by address (optional) * @param minAmount Minimum amount filter (optional) * @param maxAmount Maximum amount filter (optional) - * @param useChange Include change outputs (optional) - * @param useCoinbase Include coinbase outputs (optional) * @return CompletableFuture<ApiResponse<ListUtxosResponse>> * @throws ApiException if fails to make API call */ @@ -114,9 +112,7 @@ public CompletableFuture> getUtxos( List includeStatuses, String address, String minAmount, - String maxAmount, - Boolean useChange, - Boolean useCoinbase) + String maxAmount) throws ApiException { try { HttpRequest.Builder localVarRequestBuilder = @@ -133,9 +129,7 @@ public CompletableFuture> getUtxos( includeStatuses, address, minAmount, - maxAmount, - useChange, - useCoinbase); + maxAmount); return memberVarHttpClient .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString()) .thenComposeAsync( @@ -181,9 +175,7 @@ private HttpRequest.Builder getUtxosRequestBuilder( List includeStatuses, String address, String minAmount, - String maxAmount, - Boolean useChange, - Boolean useCoinbase) + String maxAmount) throws ApiException { ValidationUtils.assertParamExistsAndNotEmpty("getUtxos", "vaultAccountId", vaultAccountId); ValidationUtils.assertParamExistsAndNotEmpty("getUtxos", "assetId", assetId); @@ -224,10 +216,6 @@ private HttpRequest.Builder getUtxosRequestBuilder( localVarQueryParams.addAll(ApiClient.parameterToPairs("minAmount", minAmount)); localVarQueryParameterBaseName = "maxAmount"; localVarQueryParams.addAll(ApiClient.parameterToPairs("maxAmount", maxAmount)); - localVarQueryParameterBaseName = "useChange"; - localVarQueryParams.addAll(ApiClient.parameterToPairs("useChange", useChange)); - localVarQueryParameterBaseName = "useCoinbase"; - localVarQueryParams.addAll(ApiClient.parameterToPairs("useCoinbase", useCoinbase)); if (!localVarQueryParams.isEmpty() || localVarQueryStringJoiner.length() != 0) { StringJoiner queryJoiner = new StringJoiner("&"); diff --git a/src/main/java/com/fireblocks/sdk/api/VaultsApi.java b/src/main/java/com/fireblocks/sdk/api/VaultsApi.java index 705f66d1..0dd5d0a5 100644 --- a/src/main/java/com/fireblocks/sdk/api/VaultsApi.java +++ b/src/main/java/com/fireblocks/sdk/api/VaultsApi.java @@ -20,8 +20,7 @@ import com.fireblocks.sdk.ApiResponse; import com.fireblocks.sdk.Pair; import com.fireblocks.sdk.ValidationUtils; -import com.fireblocks.sdk.model.CircleGatewayWalletInfoResponse; -import com.fireblocks.sdk.model.CircleGatewayWalletStatusResponse; +import com.fireblocks.sdk.model.AddressReverseLookupResponse; import com.fireblocks.sdk.model.CreateAddressRequest; import com.fireblocks.sdk.model.CreateAddressResponse; import com.fireblocks.sdk.model.CreateAssetsRequest; @@ -44,6 +43,8 @@ import com.fireblocks.sdk.model.UnspentInputsResponse; import com.fireblocks.sdk.model.UpdateVaultAccountAssetAddressRequest; import com.fireblocks.sdk.model.UpdateVaultAccountRequest; +import com.fireblocks.sdk.model.UsdcGatewayWalletInfoResponse; +import com.fireblocks.sdk.model.UsdcGatewayWalletStatusResponse; import com.fireblocks.sdk.model.VaultAccount; import com.fireblocks.sdk.model.VaultAccountsPagedResponse; import com.fireblocks.sdk.model.VaultAccountsTagAttachmentOperationsRequest; @@ -217,8 +218,8 @@ private HttpRequest.Builder activateAssetForVaultAccountRequestBuilder( return localVarRequestBuilder; } /** - * Activate a Circle Gateway wallet Activates the Circle Gateway wallet associated with the - * given vault account. If the wallet does not yet exist it is created in an activated state. + * Activate a USDC Gateway wallet Activates the USDC Gateway wallet associated with the given + * vault account. If the wallet does not yet exist it is created in an activated state. * **Note:** This endpoint is currently in beta and might be subject to changes. * </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver. * @@ -226,15 +227,15 @@ private HttpRequest.Builder activateAssetForVaultAccountRequestBuilder( * @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<CircleGatewayWalletStatusResponse>> + * @return CompletableFuture<ApiResponse<UsdcGatewayWalletStatusResponse>> * @throws ApiException if fails to make API call */ - public CompletableFuture> - activateCircleGatewayWalletBeta(String vaultAccountId, String idempotencyKey) + public CompletableFuture> + activateUsdcGatewayWalletBeta(String vaultAccountId, String idempotencyKey) throws ApiException { try { HttpRequest.Builder localVarRequestBuilder = - activateCircleGatewayWalletBetaRequestBuilder(vaultAccountId, idempotencyKey); + activateUsdcGatewayWalletBetaRequestBuilder(vaultAccountId, idempotencyKey); return memberVarHttpClient .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString()) .thenComposeAsync( @@ -245,13 +246,13 @@ private HttpRequest.Builder activateAssetForVaultAccountRequestBuilder( if (localVarResponse.statusCode() / 100 != 2) { return CompletableFuture.failedFuture( getApiException( - "activateCircleGatewayWalletBeta", + "activateUsdcGatewayWalletBeta", localVarResponse)); } try { String responseBody = localVarResponse.body(); return CompletableFuture.completedFuture( - new ApiResponse( + new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), responseBody == null || responseBody.isBlank() @@ -259,7 +260,7 @@ private HttpRequest.Builder activateAssetForVaultAccountRequestBuilder( : memberVarObjectMapper.readValue( responseBody, new TypeReference< - CircleGatewayWalletStatusResponse>() {}))); + UsdcGatewayWalletStatusResponse>() {}))); } catch (IOException e) { return CompletableFuture.failedFuture(new ApiException(e)); } @@ -269,15 +270,15 @@ private HttpRequest.Builder activateAssetForVaultAccountRequestBuilder( } } - private HttpRequest.Builder activateCircleGatewayWalletBetaRequestBuilder( + private HttpRequest.Builder activateUsdcGatewayWalletBetaRequestBuilder( String vaultAccountId, String idempotencyKey) throws ApiException { ValidationUtils.assertParamExistsAndNotEmpty( - "activateCircleGatewayWalletBeta", "vaultAccountId", vaultAccountId); + "activateUsdcGatewayWalletBeta", "vaultAccountId", vaultAccountId); HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); String localVarPath = - "/vault/accounts/{vaultAccountId}/circle_gateway/activate" + "/vault/accounts/{vaultAccountId}/usdc_gateway/activate" .replace( "{vaultAccountId}", ApiClient.urlEncode(vaultAccountId.toString())); @@ -971,7 +972,7 @@ private HttpRequest.Builder createVaultAccountAssetAddressRequestBuilder( return localVarRequestBuilder; } /** - * Deactivate a Circle Gateway wallet Deactivates the Circle Gateway wallet associated with the + * Deactivate a USDC Gateway wallet Deactivates the USDC Gateway wallet associated with the * given vault account. **Note:** This endpoint is currently in beta and might be subject to * changes. </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver. * @@ -979,15 +980,15 @@ private HttpRequest.Builder createVaultAccountAssetAddressRequestBuilder( * @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<CircleGatewayWalletStatusResponse>> + * @return CompletableFuture<ApiResponse<UsdcGatewayWalletStatusResponse>> * @throws ApiException if fails to make API call */ - public CompletableFuture> - deactivateCircleGatewayWalletBeta(String vaultAccountId, String idempotencyKey) + public CompletableFuture> + deactivateUsdcGatewayWalletBeta(String vaultAccountId, String idempotencyKey) throws ApiException { try { HttpRequest.Builder localVarRequestBuilder = - deactivateCircleGatewayWalletBetaRequestBuilder(vaultAccountId, idempotencyKey); + deactivateUsdcGatewayWalletBetaRequestBuilder(vaultAccountId, idempotencyKey); return memberVarHttpClient .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString()) .thenComposeAsync( @@ -998,13 +999,13 @@ private HttpRequest.Builder createVaultAccountAssetAddressRequestBuilder( if (localVarResponse.statusCode() / 100 != 2) { return CompletableFuture.failedFuture( getApiException( - "deactivateCircleGatewayWalletBeta", + "deactivateUsdcGatewayWalletBeta", localVarResponse)); } try { String responseBody = localVarResponse.body(); return CompletableFuture.completedFuture( - new ApiResponse( + new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), responseBody == null || responseBody.isBlank() @@ -1012,7 +1013,7 @@ private HttpRequest.Builder createVaultAccountAssetAddressRequestBuilder( : memberVarObjectMapper.readValue( responseBody, new TypeReference< - CircleGatewayWalletStatusResponse>() {}))); + UsdcGatewayWalletStatusResponse>() {}))); } catch (IOException e) { return CompletableFuture.failedFuture(new ApiException(e)); } @@ -1022,15 +1023,15 @@ private HttpRequest.Builder createVaultAccountAssetAddressRequestBuilder( } } - private HttpRequest.Builder deactivateCircleGatewayWalletBetaRequestBuilder( + private HttpRequest.Builder deactivateUsdcGatewayWalletBetaRequestBuilder( String vaultAccountId, String idempotencyKey) throws ApiException { ValidationUtils.assertParamExistsAndNotEmpty( - "deactivateCircleGatewayWalletBeta", "vaultAccountId", vaultAccountId); + "deactivateUsdcGatewayWalletBeta", "vaultAccountId", vaultAccountId); HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); String localVarPath = - "/vault/accounts/{vaultAccountId}/circle_gateway/deactivate" + "/vault/accounts/{vaultAccountId}/usdc_gateway/deactivate" .replace( "{vaultAccountId}", ApiClient.urlEncode(vaultAccountId.toString())); @@ -1167,80 +1168,6 @@ private HttpRequest.Builder getAssetWalletsRequestBuilder( } return localVarRequestBuilder; } - /** - * Get Circle Gateway wallet info Returns the Circle Gateway wallet information associated with - * the given vault account. **Note:** This endpoint is currently in beta and might be subject to - * changes. </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, - * Viewer. - * - * @param vaultAccountId The ID of the vault account (required) - * @return CompletableFuture<ApiResponse<CircleGatewayWalletInfoResponse>> - * @throws ApiException if fails to make API call - */ - public CompletableFuture> - getCircleGatewayWalletInfoBeta(String vaultAccountId) throws ApiException { - try { - HttpRequest.Builder localVarRequestBuilder = - getCircleGatewayWalletInfoBetaRequestBuilder(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( - "getCircleGatewayWalletInfoBeta", - 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< - CircleGatewayWalletInfoResponse>() {}))); - } catch (IOException e) { - return CompletableFuture.failedFuture(new ApiException(e)); - } - }); - } catch (ApiException e) { - return CompletableFuture.failedFuture(e); - } - } - - private HttpRequest.Builder getCircleGatewayWalletInfoBetaRequestBuilder(String vaultAccountId) - throws ApiException { - ValidationUtils.assertParamExistsAndNotEmpty( - "getCircleGatewayWalletInfoBeta", "vaultAccountId", vaultAccountId); - - HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); - - String localVarPath = - "/vault/accounts/{vaultAccountId}/circle_gateway" - .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; - } /** * Get the job status of the bulk deposit address creation Returns the current status of (or an * error for) the specified deposit addresss bulk creation job. **Endpoint Permissions:** Admin, @@ -1981,6 +1908,80 @@ private HttpRequest.Builder getUnspentInputsRequestBuilder( } return localVarRequestBuilder; } + /** + * Get USDC Gateway wallet info Returns the USDC Gateway wallet information associated with the + * given vault account. **Note:** This endpoint is currently in beta and might be subject to + * changes. </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, + * Viewer. + * + * @param vaultAccountId The ID of the vault account (required) + * @return CompletableFuture<ApiResponse<UsdcGatewayWalletInfoResponse>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> + getUsdcGatewayWalletInfoBeta(String vaultAccountId) throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = + getUsdcGatewayWalletInfoBetaRequestBuilder(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( + "getUsdcGatewayWalletInfoBeta", + 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< + UsdcGatewayWalletInfoResponse>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder getUsdcGatewayWalletInfoBetaRequestBuilder(String vaultAccountId) + throws ApiException { + ValidationUtils.assertParamExistsAndNotEmpty( + "getUsdcGatewayWalletInfoBeta", "vaultAccountId", vaultAccountId); + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = + "/vault/accounts/{vaultAccountId}/usdc_gateway" + .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; + } /** * Get a vault account by ID Get a vault account by its unique ID. Endpoint Permission: Admin, * Non-Signing Admin, Signer, Approver, Editor, Viewer. @@ -2471,6 +2472,90 @@ private HttpRequest.Builder hideVaultAccountRequestBuilder( } return localVarRequestBuilder; } + /** + * Look up a vault account by blockchain address Resolves a blockchain address to the vault + * account that owns it. Returns the vault account ID and the blockchains associated with the + * address. **Note:** This endpoint is currently in beta and might be subject to changes. + * + * @param address The blockchain address to resolve. (required) + * @return CompletableFuture<ApiResponse<AddressReverseLookupResponse>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> lookupVaultByAddress( + String address) throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = + lookupVaultByAddressRequestBuilder(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( + "lookupVaultByAddress", 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< + AddressReverseLookupResponse>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder lookupVaultByAddressRequestBuilder(String address) + throws ApiException { + ValidationUtils.assertParamExistsAndNotEmpty("lookupVaultByAddress", "address", address); + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = "/vault/lookup_by_address"; + + List localVarQueryParams = new ArrayList<>(); + StringJoiner localVarQueryStringJoiner = new StringJoiner("&"); + String localVarQueryParameterBaseName; + localVarQueryParameterBaseName = "address"; + localVarQueryParams.addAll(ApiClient.parameterToPairs("address", address)); + + 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; + } /** * Assign AML customer reference ID Sets an AML/KYT customer reference ID for a specific * address. Endpoint Permission: Admin, Non-Signing Admin. diff --git a/src/main/java/com/fireblocks/sdk/model/AddressReverseLookupResponse.java b/src/main/java/com/fireblocks/sdk/model/AddressReverseLookupResponse.java new file mode 100644 index 00000000..2535dd19 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/AddressReverseLookupResponse.java @@ -0,0 +1,325 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fireblocks.sdk.ApiClient; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.StringJoiner; + +/** Reverse-lookup result mapping a blockchain address to its owning vault account. */ +@JsonPropertyOrder({ + AddressReverseLookupResponse.JSON_PROPERTY_ADDRESS, + AddressReverseLookupResponse.JSON_PROPERTY_TYPE, + AddressReverseLookupResponse.JSON_PROPERTY_VAULT_ACCOUNT_ID, + AddressReverseLookupResponse.JSON_PROPERTY_BLOCKCHAINS +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class AddressReverseLookupResponse { + public static final String JSON_PROPERTY_ADDRESS = "address"; + @jakarta.annotation.Nonnull private String address; + + /** Source type of the resolved address. */ + public enum TypeEnum { + VAULT_ACCOUNT(String.valueOf("VAULT_ACCOUNT")); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + } + + public static final String JSON_PROPERTY_TYPE = "type"; + @jakarta.annotation.Nonnull private TypeEnum type; + + public static final String JSON_PROPERTY_VAULT_ACCOUNT_ID = "vaultAccountId"; + @jakarta.annotation.Nonnull private String vaultAccountId; + + public static final String JSON_PROPERTY_BLOCKCHAINS = "blockchains"; + @jakarta.annotation.Nonnull private List blockchains; + + public AddressReverseLookupResponse() {} + + @JsonCreator + public AddressReverseLookupResponse( + @JsonProperty(value = JSON_PROPERTY_ADDRESS, required = true) String address, + @JsonProperty(value = JSON_PROPERTY_TYPE, required = true) TypeEnum type, + @JsonProperty(value = JSON_PROPERTY_VAULT_ACCOUNT_ID, required = true) + String vaultAccountId, + @JsonProperty(value = JSON_PROPERTY_BLOCKCHAINS, required = true) + List blockchains) { + this.address = address; + this.type = type; + this.vaultAccountId = vaultAccountId; + this.blockchains = blockchains; + } + + public AddressReverseLookupResponse address(@jakarta.annotation.Nonnull String address) { + this.address = address; + return this; + } + + /** + * The queried blockchain address. + * + * @return address + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_ADDRESS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getAddress() { + return address; + } + + @JsonProperty(JSON_PROPERTY_ADDRESS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setAddress(@jakarta.annotation.Nonnull String address) { + this.address = address; + } + + public AddressReverseLookupResponse type(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + return this; + } + + /** + * Source type of the resolved address. + * + * @return type + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public TypeEnum getType() { + return type; + } + + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + } + + public AddressReverseLookupResponse vaultAccountId( + @jakarta.annotation.Nonnull String vaultAccountId) { + this.vaultAccountId = vaultAccountId; + return this; + } + + /** + * Vault account ID that owns the address. + * + * @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 AddressReverseLookupResponse blockchains( + @jakarta.annotation.Nonnull List blockchains) { + this.blockchains = blockchains; + return this; + } + + public AddressReverseLookupResponse addBlockchainsItem(String blockchainsItem) { + if (this.blockchains == null) { + this.blockchains = new ArrayList<>(); + } + this.blockchains.add(blockchainsItem); + return this; + } + + /** + * Blockchain assets associated with this address in the vault account. + * + * @return blockchains + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_BLOCKCHAINS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getBlockchains() { + return blockchains; + } + + @JsonProperty(JSON_PROPERTY_BLOCKCHAINS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setBlockchains(@jakarta.annotation.Nonnull List blockchains) { + this.blockchains = blockchains; + } + + /** Return true if this AddressReverseLookupResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AddressReverseLookupResponse addressReverseLookupResponse = + (AddressReverseLookupResponse) o; + return Objects.equals(this.address, addressReverseLookupResponse.address) + && Objects.equals(this.type, addressReverseLookupResponse.type) + && Objects.equals(this.vaultAccountId, addressReverseLookupResponse.vaultAccountId) + && Objects.equals(this.blockchains, addressReverseLookupResponse.blockchains); + } + + @Override + public int hashCode() { + return Objects.hash(address, type, vaultAccountId, blockchains); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AddressReverseLookupResponse {\n"); + sb.append(" address: ").append(toIndentedString(address)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" vaultAccountId: ").append(toIndentedString(vaultAccountId)).append("\n"); + sb.append(" blockchains: ").append(toIndentedString(blockchains)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first + * line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + /** + * Convert the instance into URL query string. + * + * @return URL query string + */ + public String toUrlQueryString() { + return toUrlQueryString(null); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + String suffix = ""; + String containerSuffix = ""; + String containerPrefix = ""; + if (prefix == null) { + // style=form, explode=true, e.g. /pet?name=cat&type=manx + prefix = ""; + } else { + // deepObject style e.g. /pet?id[name]=cat&id[type]=manx + prefix = prefix + "["; + suffix = "]"; + containerSuffix = "]"; + containerPrefix = "["; + } + + StringJoiner joiner = new StringJoiner("&"); + + // add `address` to the URL query string + if (getAddress() != null) { + joiner.add( + String.format( + "%saddress%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getAddress())))); + } + + // add `type` to the URL query string + if (getType() != null) { + joiner.add( + String.format( + "%stype%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getType())))); + } + + // 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 `blockchains` to the URL query string + if (getBlockchains() != null) { + for (int i = 0; i < getBlockchains().size(); i++) { + joiner.add( + String.format( + "%sblockchains%s%s=%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", containerPrefix, i, containerSuffix), + ApiClient.urlEncode( + ApiClient.valueToString(getBlockchains().get(i))))); + } + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/ArsConfigResponse.java b/src/main/java/com/fireblocks/sdk/model/ArsConfigResponse.java new file mode 100644 index 00000000..38bc8581 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/ArsConfigResponse.java @@ -0,0 +1,183 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fireblocks.sdk.ApiClient; +import java.time.OffsetDateTime; +import java.util.Objects; +import java.util.StringJoiner; + +/** + * ARS (Address Registry Screening) configuration for the tenant: active flag and last update time. + */ +@JsonPropertyOrder({ + ArsConfigResponse.JSON_PROPERTY_ACTIVE, + ArsConfigResponse.JSON_PROPERTY_LAST_UPDATE +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class ArsConfigResponse { + public static final String JSON_PROPERTY_ACTIVE = "active"; + @jakarta.annotation.Nullable private Boolean active; + + public static final String JSON_PROPERTY_LAST_UPDATE = "lastUpdate"; + @jakarta.annotation.Nullable private OffsetDateTime lastUpdate; + + public ArsConfigResponse() {} + + public ArsConfigResponse active(@jakarta.annotation.Nullable Boolean active) { + this.active = active; + return this; + } + + /** + * Whether ARS is active for the tenant + * + * @return active + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ACTIVE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getActive() { + return active; + } + + @JsonProperty(JSON_PROPERTY_ACTIVE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setActive(@jakarta.annotation.Nullable Boolean active) { + this.active = active; + } + + public ArsConfigResponse lastUpdate(@jakarta.annotation.Nullable OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + return this; + } + + /** + * Last update timestamp of the configuration + * + * @return lastUpdate + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_LAST_UPDATE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public OffsetDateTime getLastUpdate() { + return lastUpdate; + } + + @JsonProperty(JSON_PROPERTY_LAST_UPDATE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setLastUpdate(@jakarta.annotation.Nullable OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + } + + /** Return true if this ArsConfigResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ArsConfigResponse arsConfigResponse = (ArsConfigResponse) o; + return Objects.equals(this.active, arsConfigResponse.active) + && Objects.equals(this.lastUpdate, arsConfigResponse.lastUpdate); + } + + @Override + public int hashCode() { + return Objects.hash(active, lastUpdate); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ArsConfigResponse {\n"); + sb.append(" active: ").append(toIndentedString(active)).append("\n"); + sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).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 `active` to the URL query string + if (getActive() != null) { + joiner.add( + String.format( + "%sactive%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getActive())))); + } + + // add `lastUpdate` to the URL query string + if (getLastUpdate() != null) { + joiner.add( + String.format( + "%slastUpdate%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getLastUpdate())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/CommittedQuoteEnum.java b/src/main/java/com/fireblocks/sdk/model/CommittedQuoteEnum.java deleted file mode 100644 index 758ff4c0..00000000 --- a/src/main/java/com/fireblocks/sdk/model/CommittedQuoteEnum.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Fireblocks API - * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - * - * The version of the OpenAPI document: 1.6.2 - * Contact: developers@fireblocks.com - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package com.fireblocks.sdk.model; - - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonValue; - -/** Indicates this is a committed quote */ -public enum CommittedQuoteEnum { - COMMITTED("COMMITTED"); - - private String value; - - CommittedQuoteEnum(String value) { - this.value = value; - } - - @JsonValue - public String getValue() { - return value; - } - - @Override - public String toString() { - return String.valueOf(value); - } - - @JsonCreator - public static CommittedQuoteEnum fromValue(String value) { - for (CommittedQuoteEnum b : CommittedQuoteEnum.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/CreateOffersRequest.java b/src/main/java/com/fireblocks/sdk/model/CreateOffersRequest.java new file mode 100644 index 00000000..ac1051e4 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/CreateOffersRequest.java @@ -0,0 +1,434 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto 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; + +/** CreateOffersRequest */ +@JsonPropertyOrder({ + CreateOffersRequest.JSON_PROPERTY_BASE_ASSET_ID, + CreateOffersRequest.JSON_PROPERTY_BASE_ASSET_RAIL, + CreateOffersRequest.JSON_PROPERTY_QUOTE_ASSET_ID, + CreateOffersRequest.JSON_PROPERTY_QUOTE_ASSET_RAIL, + CreateOffersRequest.JSON_PROPERTY_BASE_AMOUNT, + CreateOffersRequest.JSON_PROPERTY_SLIPPAGE_BPS, + CreateOffersRequest.JSON_PROPERTY_SETTLEMENT, + CreateOffersRequest.JSON_PROPERTY_SIDE +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class CreateOffersRequest { + public static final String JSON_PROPERTY_BASE_ASSET_ID = "baseAssetId"; + @jakarta.annotation.Nonnull private String baseAssetId; + + public static final String JSON_PROPERTY_BASE_ASSET_RAIL = "baseAssetRail"; + @jakarta.annotation.Nullable private TransferRail baseAssetRail; + + public static final String JSON_PROPERTY_QUOTE_ASSET_ID = "quoteAssetId"; + @jakarta.annotation.Nonnull private String quoteAssetId; + + public static final String JSON_PROPERTY_QUOTE_ASSET_RAIL = "quoteAssetRail"; + @jakarta.annotation.Nullable private TransferRail quoteAssetRail; + + public static final String JSON_PROPERTY_BASE_AMOUNT = "baseAmount"; + @jakarta.annotation.Nonnull private String baseAmount; + + public static final String JSON_PROPERTY_SLIPPAGE_BPS = "slippageBps"; + @jakarta.annotation.Nullable private Integer slippageBps = 50; + + public static final String JSON_PROPERTY_SETTLEMENT = "settlement"; + @jakarta.annotation.Nullable private DVPSettlement settlement; + + public static final String JSON_PROPERTY_SIDE = "side"; + @jakarta.annotation.Nonnull private Side side; + + public CreateOffersRequest() {} + + @JsonCreator + public CreateOffersRequest( + @JsonProperty(value = JSON_PROPERTY_BASE_ASSET_ID, required = true) String baseAssetId, + @JsonProperty(value = JSON_PROPERTY_QUOTE_ASSET_ID, required = true) + String quoteAssetId, + @JsonProperty(value = JSON_PROPERTY_BASE_AMOUNT, required = true) String baseAmount, + @JsonProperty(value = JSON_PROPERTY_SIDE, required = true) Side side) { + this.baseAssetId = baseAssetId; + this.quoteAssetId = quoteAssetId; + this.baseAmount = baseAmount; + this.side = side; + } + + public CreateOffersRequest baseAssetId(@jakarta.annotation.Nonnull String baseAssetId) { + this.baseAssetId = baseAssetId; + return this; + } + + /** + * The source asset identifier. + * + * @return baseAssetId + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_BASE_ASSET_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getBaseAssetId() { + return baseAssetId; + } + + @JsonProperty(JSON_PROPERTY_BASE_ASSET_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setBaseAssetId(@jakarta.annotation.Nonnull String baseAssetId) { + this.baseAssetId = baseAssetId; + } + + public CreateOffersRequest baseAssetRail( + @jakarta.annotation.Nullable TransferRail baseAssetRail) { + this.baseAssetRail = baseAssetRail; + return this; + } + + /** + * Get baseAssetRail + * + * @return baseAssetRail + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_BASE_ASSET_RAIL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public TransferRail getBaseAssetRail() { + return baseAssetRail; + } + + @JsonProperty(JSON_PROPERTY_BASE_ASSET_RAIL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setBaseAssetRail(@jakarta.annotation.Nullable TransferRail baseAssetRail) { + this.baseAssetRail = baseAssetRail; + } + + public CreateOffersRequest quoteAssetId(@jakarta.annotation.Nonnull String quoteAssetId) { + this.quoteAssetId = quoteAssetId; + return this; + } + + /** + * The target asset identifier. + * + * @return quoteAssetId + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_QUOTE_ASSET_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getQuoteAssetId() { + return quoteAssetId; + } + + @JsonProperty(JSON_PROPERTY_QUOTE_ASSET_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setQuoteAssetId(@jakarta.annotation.Nonnull String quoteAssetId) { + this.quoteAssetId = quoteAssetId; + } + + public CreateOffersRequest quoteAssetRail( + @jakarta.annotation.Nullable TransferRail quoteAssetRail) { + this.quoteAssetRail = quoteAssetRail; + return this; + } + + /** + * Get quoteAssetRail + * + * @return quoteAssetRail + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_QUOTE_ASSET_RAIL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public TransferRail getQuoteAssetRail() { + return quoteAssetRail; + } + + @JsonProperty(JSON_PROPERTY_QUOTE_ASSET_RAIL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setQuoteAssetRail(@jakarta.annotation.Nullable TransferRail quoteAssetRail) { + this.quoteAssetRail = quoteAssetRail; + } + + public CreateOffersRequest baseAmount(@jakarta.annotation.Nonnull String baseAmount) { + this.baseAmount = baseAmount; + return this; + } + + /** + * The amount to get offers for + * + * @return baseAmount + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_BASE_AMOUNT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getBaseAmount() { + return baseAmount; + } + + @JsonProperty(JSON_PROPERTY_BASE_AMOUNT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setBaseAmount(@jakarta.annotation.Nonnull String baseAmount) { + this.baseAmount = baseAmount; + } + + public CreateOffersRequest slippageBps(@jakarta.annotation.Nullable Integer slippageBps) { + this.slippageBps = slippageBps; + return this; + } + + /** + * Slippage tolerance in basis points (bps) for defi quotes - 1 is 0.01% and 10000 is 100%. If + * not set, defaults to 50 bps (0.5%). minimum: 1 maximum: 10000 + * + * @return slippageBps + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_SLIPPAGE_BPS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Integer getSlippageBps() { + return slippageBps; + } + + @JsonProperty(JSON_PROPERTY_SLIPPAGE_BPS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setSlippageBps(@jakarta.annotation.Nullable Integer slippageBps) { + this.slippageBps = slippageBps; + } + + public CreateOffersRequest settlement(@jakarta.annotation.Nullable DVPSettlement settlement) { + this.settlement = settlement; + return this; + } + + /** + * Get settlement + * + * @return settlement + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_SETTLEMENT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public DVPSettlement getSettlement() { + return settlement; + } + + @JsonProperty(JSON_PROPERTY_SETTLEMENT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setSettlement(@jakarta.annotation.Nullable DVPSettlement settlement) { + this.settlement = settlement; + } + + public CreateOffersRequest side(@jakarta.annotation.Nonnull Side side) { + this.side = side; + return this; + } + + /** + * Get side + * + * @return side + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_SIDE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Side getSide() { + return side; + } + + @JsonProperty(JSON_PROPERTY_SIDE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setSide(@jakarta.annotation.Nonnull Side side) { + this.side = side; + } + + /** Return true if this CreateOffersRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateOffersRequest createOffersRequest = (CreateOffersRequest) o; + return Objects.equals(this.baseAssetId, createOffersRequest.baseAssetId) + && Objects.equals(this.baseAssetRail, createOffersRequest.baseAssetRail) + && Objects.equals(this.quoteAssetId, createOffersRequest.quoteAssetId) + && Objects.equals(this.quoteAssetRail, createOffersRequest.quoteAssetRail) + && Objects.equals(this.baseAmount, createOffersRequest.baseAmount) + && Objects.equals(this.slippageBps, createOffersRequest.slippageBps) + && Objects.equals(this.settlement, createOffersRequest.settlement) + && Objects.equals(this.side, createOffersRequest.side); + } + + @Override + public int hashCode() { + return Objects.hash( + baseAssetId, + baseAssetRail, + quoteAssetId, + quoteAssetRail, + baseAmount, + slippageBps, + settlement, + side); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CreateOffersRequest {\n"); + sb.append(" baseAssetId: ").append(toIndentedString(baseAssetId)).append("\n"); + sb.append(" baseAssetRail: ").append(toIndentedString(baseAssetRail)).append("\n"); + sb.append(" quoteAssetId: ").append(toIndentedString(quoteAssetId)).append("\n"); + sb.append(" quoteAssetRail: ").append(toIndentedString(quoteAssetRail)).append("\n"); + sb.append(" baseAmount: ").append(toIndentedString(baseAmount)).append("\n"); + sb.append(" slippageBps: ").append(toIndentedString(slippageBps)).append("\n"); + sb.append(" settlement: ").append(toIndentedString(settlement)).append("\n"); + sb.append(" side: ").append(toIndentedString(side)).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 `baseAssetId` to the URL query string + if (getBaseAssetId() != null) { + joiner.add( + String.format( + "%sbaseAssetId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getBaseAssetId())))); + } + + // add `baseAssetRail` to the URL query string + if (getBaseAssetRail() != null) { + joiner.add( + String.format( + "%sbaseAssetRail%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getBaseAssetRail())))); + } + + // add `quoteAssetId` to the URL query string + if (getQuoteAssetId() != null) { + joiner.add( + String.format( + "%squoteAssetId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getQuoteAssetId())))); + } + + // add `quoteAssetRail` to the URL query string + if (getQuoteAssetRail() != null) { + joiner.add( + String.format( + "%squoteAssetRail%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getQuoteAssetRail())))); + } + + // add `baseAmount` to the URL query string + if (getBaseAmount() != null) { + joiner.add( + String.format( + "%sbaseAmount%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getBaseAmount())))); + } + + // add `slippageBps` to the URL query string + if (getSlippageBps() != null) { + joiner.add( + String.format( + "%sslippageBps%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getSlippageBps())))); + } + + // add `settlement` to the URL query string + if (getSettlement() != null) { + joiner.add(getSettlement().toUrlQueryString(prefix + "settlement" + suffix)); + } + + // add `side` to the URL query string + if (getSide() != null) { + joiner.add( + String.format( + "%sside%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getSide())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/CreateOrderRequest.java b/src/main/java/com/fireblocks/sdk/model/CreateOrderRequest.java index d563b6f2..e66e170c 100644 --- a/src/main/java/com/fireblocks/sdk/model/CreateOrderRequest.java +++ b/src/main/java/com/fireblocks/sdk/model/CreateOrderRequest.java @@ -27,6 +27,7 @@ CreateOrderRequest.JSON_PROPERTY_EXECUTION_REQUEST_DETAILS, CreateOrderRequest.JSON_PROPERTY_SETTLEMENT, CreateOrderRequest.JSON_PROPERTY_PARTICIPANTS_IDENTIFICATION, + CreateOrderRequest.JSON_PROPERTY_SOURCE_OF_FUNDS, CreateOrderRequest.JSON_PROPERTY_CUSTOMER_INTERNAL_REFERENCE_ID, CreateOrderRequest.JSON_PROPERTY_NOTE }) @@ -47,6 +48,9 @@ public class CreateOrderRequest { "participantsIdentification"; @jakarta.annotation.Nullable private ParticipantsIdentification participantsIdentification; + public static final String JSON_PROPERTY_SOURCE_OF_FUNDS = "sourceOfFunds"; + @jakarta.annotation.Nullable private SourceOfFunds sourceOfFunds; + public static final String JSON_PROPERTY_CUSTOMER_INTERNAL_REFERENCE_ID = "customerInternalReferenceId"; @jakarta.annotation.Nullable private String customerInternalReferenceId; @@ -164,6 +168,30 @@ public void setParticipantsIdentification( this.participantsIdentification = participantsIdentification; } + public CreateOrderRequest sourceOfFunds( + @jakarta.annotation.Nullable SourceOfFunds sourceOfFunds) { + this.sourceOfFunds = sourceOfFunds; + return this; + } + + /** + * Get sourceOfFunds + * + * @return sourceOfFunds + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_SOURCE_OF_FUNDS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public SourceOfFunds getSourceOfFunds() { + return sourceOfFunds; + } + + @JsonProperty(JSON_PROPERTY_SOURCE_OF_FUNDS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setSourceOfFunds(@jakarta.annotation.Nullable SourceOfFunds sourceOfFunds) { + this.sourceOfFunds = sourceOfFunds; + } + public CreateOrderRequest customerInternalReferenceId( @jakarta.annotation.Nullable String customerInternalReferenceId) { this.customerInternalReferenceId = customerInternalReferenceId; @@ -229,6 +257,7 @@ public boolean equals(Object o) { && Objects.equals( this.participantsIdentification, createOrderRequest.participantsIdentification) + && Objects.equals(this.sourceOfFunds, createOrderRequest.sourceOfFunds) && Objects.equals( this.customerInternalReferenceId, createOrderRequest.customerInternalReferenceId) @@ -242,6 +271,7 @@ public int hashCode() { executionRequestDetails, settlement, participantsIdentification, + sourceOfFunds, customerInternalReferenceId, note); } @@ -258,6 +288,7 @@ public String toString() { sb.append(" participantsIdentification: ") .append(toIndentedString(participantsIdentification)) .append("\n"); + sb.append(" sourceOfFunds: ").append(toIndentedString(sourceOfFunds)).append("\n"); sb.append(" customerInternalReferenceId: ") .append(toIndentedString(customerInternalReferenceId)) .append("\n"); @@ -333,6 +364,11 @@ public String toUrlQueryString(String prefix) { .toUrlQueryString(prefix + "participantsIdentification" + suffix)); } + // add `sourceOfFunds` to the URL query string + if (getSourceOfFunds() != null) { + joiner.add(getSourceOfFunds().toUrlQueryString(prefix + "sourceOfFunds" + suffix)); + } + // add `customerInternalReferenceId` to the URL query string if (getCustomerInternalReferenceId() != null) { joiner.add( diff --git a/src/main/java/com/fireblocks/sdk/model/GenieChatMessage.java b/src/main/java/com/fireblocks/sdk/model/GenieChatMessage.java new file mode 100644 index 00000000..45ba0f54 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/GenieChatMessage.java @@ -0,0 +1,309 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fireblocks.sdk.ApiClient; +import java.util.Objects; +import java.util.StringJoiner; + +/** GenieChatMessage */ +@JsonPropertyOrder({ + GenieChatMessage.JSON_PROPERTY_ID, + GenieChatMessage.JSON_PROPERTY_SESSION_ID, + GenieChatMessage.JSON_PROPERTY_ROLE, + GenieChatMessage.JSON_PROPERTY_CONTENT, + GenieChatMessage.JSON_PROPERTY_CREATED_AT +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class GenieChatMessage { + public static final String JSON_PROPERTY_ID = "id"; + @jakarta.annotation.Nonnull private String id; + + public static final String JSON_PROPERTY_SESSION_ID = "sessionId"; + @jakarta.annotation.Nonnull private String sessionId; + + public static final String JSON_PROPERTY_ROLE = "role"; + @jakarta.annotation.Nonnull private String role; + + public static final String JSON_PROPERTY_CONTENT = "content"; + @jakarta.annotation.Nonnull private String content; + + public static final String JSON_PROPERTY_CREATED_AT = "createdAt"; + @jakarta.annotation.Nullable private Long createdAt; + + public GenieChatMessage() {} + + @JsonCreator + public GenieChatMessage( + @JsonProperty(value = JSON_PROPERTY_ID, required = true) String id, + @JsonProperty(value = JSON_PROPERTY_SESSION_ID, required = true) String sessionId, + @JsonProperty(value = JSON_PROPERTY_ROLE, required = true) String role, + @JsonProperty(value = JSON_PROPERTY_CONTENT, required = true) String content) { + this.id = id; + this.sessionId = sessionId; + this.role = role; + this.content = content; + } + + public GenieChatMessage id(@jakarta.annotation.Nonnull String id) { + this.id = id; + return this; + } + + /** + * The unique identifier of the message. + * + * @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 GenieChatMessage sessionId(@jakarta.annotation.Nonnull String sessionId) { + this.sessionId = sessionId; + return this; + } + + /** + * The Genie session this message belongs to. + * + * @return sessionId + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_SESSION_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getSessionId() { + return sessionId; + } + + @JsonProperty(JSON_PROPERTY_SESSION_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setSessionId(@jakarta.annotation.Nonnull String sessionId) { + this.sessionId = sessionId; + } + + public GenieChatMessage role(@jakarta.annotation.Nonnull String role) { + this.role = role; + return this; + } + + /** + * Who produced the message — `USER` for the customer-supplied query, + * `ASSISTANT` for the Genie response. + * + * @return role + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_ROLE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getRole() { + return role; + } + + @JsonProperty(JSON_PROPERTY_ROLE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setRole(@jakarta.annotation.Nonnull String role) { + this.role = role; + } + + public GenieChatMessage content(@jakarta.annotation.Nonnull String content) { + this.content = content; + return this; + } + + /** + * The natural-language body of the message. + * + * @return content + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_CONTENT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getContent() { + return content; + } + + @JsonProperty(JSON_PROPERTY_CONTENT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setContent(@jakarta.annotation.Nonnull String content) { + this.content = content; + } + + public GenieChatMessage createdAt(@jakarta.annotation.Nullable Long createdAt) { + this.createdAt = createdAt; + return this; + } + + /** + * Message creation timestamp in epoch milliseconds. + * + * @return createdAt + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_CREATED_AT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Long getCreatedAt() { + return createdAt; + } + + @JsonProperty(JSON_PROPERTY_CREATED_AT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setCreatedAt(@jakarta.annotation.Nullable Long createdAt) { + this.createdAt = createdAt; + } + + /** Return true if this GenieChatMessage object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GenieChatMessage genieChatMessage = (GenieChatMessage) o; + return Objects.equals(this.id, genieChatMessage.id) + && Objects.equals(this.sessionId, genieChatMessage.sessionId) + && Objects.equals(this.role, genieChatMessage.role) + && Objects.equals(this.content, genieChatMessage.content) + && Objects.equals(this.createdAt, genieChatMessage.createdAt); + } + + @Override + public int hashCode() { + return Objects.hash(id, sessionId, role, content, createdAt); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GenieChatMessage {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" sessionId: ").append(toIndentedString(sessionId)).append("\n"); + sb.append(" role: ").append(toIndentedString(role)).append("\n"); + sb.append(" content: ").append(toIndentedString(content)).append("\n"); + sb.append(" createdAt: ").append(toIndentedString(createdAt)).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 `sessionId` to the URL query string + if (getSessionId() != null) { + joiner.add( + String.format( + "%ssessionId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getSessionId())))); + } + + // add `role` to the URL query string + if (getRole() != null) { + joiner.add( + String.format( + "%srole%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getRole())))); + } + + // add `content` to the URL query string + if (getContent() != null) { + joiner.add( + String.format( + "%scontent%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getContent())))); + } + + // add `createdAt` to the URL query string + if (getCreatedAt() != null) { + joiner.add( + String.format( + "%screatedAt%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getCreatedAt())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/GenieCreateSessionResponse.java b/src/main/java/com/fireblocks/sdk/model/GenieCreateSessionResponse.java new file mode 100644 index 00000000..ade9c045 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/GenieCreateSessionResponse.java @@ -0,0 +1,225 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto 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; + +/** GenieCreateSessionResponse */ +@JsonPropertyOrder({ + GenieCreateSessionResponse.JSON_PROPERTY_ID, + GenieCreateSessionResponse.JSON_PROPERTY_CREATED_AT, + GenieCreateSessionResponse.JSON_PROPERTY_TITLE +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class GenieCreateSessionResponse { + public static final String JSON_PROPERTY_ID = "id"; + @jakarta.annotation.Nonnull private String id; + + public static final String JSON_PROPERTY_CREATED_AT = "createdAt"; + @jakarta.annotation.Nullable private Long createdAt; + + public static final String JSON_PROPERTY_TITLE = "title"; + @jakarta.annotation.Nullable private String title; + + public GenieCreateSessionResponse() {} + + @JsonCreator + public GenieCreateSessionResponse( + @JsonProperty(value = JSON_PROPERTY_ID, required = true) String id) { + this.id = id; + } + + public GenieCreateSessionResponse id(@jakarta.annotation.Nonnull String id) { + this.id = id; + return this; + } + + /** + * The unique identifier of the newly created Genie session. Use this when sending messages in + * the conversation. + * + * @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 GenieCreateSessionResponse createdAt(@jakarta.annotation.Nullable Long createdAt) { + this.createdAt = createdAt; + return this; + } + + /** + * Session creation timestamp in epoch milliseconds. + * + * @return createdAt + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_CREATED_AT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Long getCreatedAt() { + return createdAt; + } + + @JsonProperty(JSON_PROPERTY_CREATED_AT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setCreatedAt(@jakarta.annotation.Nullable Long createdAt) { + this.createdAt = createdAt; + } + + public GenieCreateSessionResponse title(@jakarta.annotation.Nullable String title) { + this.title = title; + return this; + } + + /** + * Session title. May be empty until the first message has been processed. + * + * @return title + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TITLE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getTitle() { + return title; + } + + @JsonProperty(JSON_PROPERTY_TITLE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setTitle(@jakarta.annotation.Nullable String title) { + this.title = title; + } + + /** Return true if this GenieCreateSessionResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GenieCreateSessionResponse genieCreateSessionResponse = (GenieCreateSessionResponse) o; + return Objects.equals(this.id, genieCreateSessionResponse.id) + && Objects.equals(this.createdAt, genieCreateSessionResponse.createdAt) + && Objects.equals(this.title, genieCreateSessionResponse.title); + } + + @Override + public int hashCode() { + return Objects.hash(id, createdAt, title); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GenieCreateSessionResponse {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first + * line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + /** + * Convert the instance into URL query string. + * + * @return URL query string + */ + public String toUrlQueryString() { + return toUrlQueryString(null); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + String suffix = ""; + String containerSuffix = ""; + String containerPrefix = ""; + if (prefix == null) { + // style=form, explode=true, e.g. /pet?name=cat&type=manx + prefix = ""; + } else { + // deepObject style e.g. /pet?id[name]=cat&id[type]=manx + prefix = prefix + "["; + suffix = "]"; + containerSuffix = "]"; + containerPrefix = "["; + } + + StringJoiner joiner = new StringJoiner("&"); + + // add `id` to the URL query string + if (getId() != null) { + joiner.add( + String.format( + "%sid%s=%s", + prefix, suffix, ApiClient.urlEncode(ApiClient.valueToString(getId())))); + } + + // 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 `title` to the URL query string + if (getTitle() != null) { + joiner.add( + String.format( + "%stitle%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getTitle())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/IndicativeQuoteType.java b/src/main/java/com/fireblocks/sdk/model/GenieSendMessageRequest.java similarity index 68% rename from src/main/java/com/fireblocks/sdk/model/IndicativeQuoteType.java rename to src/main/java/com/fireblocks/sdk/model/GenieSendMessageRequest.java index 708c9eda..6199f63f 100644 --- a/src/main/java/com/fireblocks/sdk/model/IndicativeQuoteType.java +++ b/src/main/java/com/fireblocks/sdk/model/GenieSendMessageRequest.java @@ -21,47 +21,47 @@ import java.util.Objects; import java.util.StringJoiner; -/** IndicativeQuoteType */ -@JsonPropertyOrder({IndicativeQuoteType.JSON_PROPERTY_TYPE}) +/** GenieSendMessageRequest */ +@JsonPropertyOrder({GenieSendMessageRequest.JSON_PROPERTY_CONTENT}) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.14.0") -public class IndicativeQuoteType { - public static final String JSON_PROPERTY_TYPE = "type"; - @jakarta.annotation.Nonnull private IndicativeQuoteEnum type; +public class GenieSendMessageRequest { + public static final String JSON_PROPERTY_CONTENT = "content"; + @jakarta.annotation.Nonnull private String content; - public IndicativeQuoteType() {} + public GenieSendMessageRequest() {} @JsonCreator - public IndicativeQuoteType( - @JsonProperty(value = JSON_PROPERTY_TYPE, required = true) IndicativeQuoteEnum type) { - this.type = type; + public GenieSendMessageRequest( + @JsonProperty(value = JSON_PROPERTY_CONTENT, required = true) String content) { + this.content = content; } - public IndicativeQuoteType type(@jakarta.annotation.Nonnull IndicativeQuoteEnum type) { - this.type = type; + public GenieSendMessageRequest content(@jakarta.annotation.Nonnull String content) { + this.content = content; return this; } /** - * Get type + * The natural-language question or instruction to send to Genie. * - * @return type + * @return content */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_TYPE) + @JsonProperty(JSON_PROPERTY_CONTENT) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public IndicativeQuoteEnum getType() { - return type; + public String getContent() { + return content; } - @JsonProperty(JSON_PROPERTY_TYPE) + @JsonProperty(JSON_PROPERTY_CONTENT) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setType(@jakarta.annotation.Nonnull IndicativeQuoteEnum type) { - this.type = type; + public void setContent(@jakarta.annotation.Nonnull String content) { + this.content = content; } - /** Return true if this IndicativeQuoteType object is equal to o. */ + /** Return true if this GenieSendMessageRequest object is equal to o. */ @Override public boolean equals(Object o) { if (this == o) { @@ -70,20 +70,20 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) { return false; } - IndicativeQuoteType indicativeQuoteType = (IndicativeQuoteType) o; - return Objects.equals(this.type, indicativeQuoteType.type); + GenieSendMessageRequest genieSendMessageRequest = (GenieSendMessageRequest) o; + return Objects.equals(this.content, genieSendMessageRequest.content); } @Override public int hashCode() { - return Objects.hash(type); + return Objects.hash(content); } @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class IndicativeQuoteType {\n"); - sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("class GenieSendMessageRequest {\n"); + sb.append(" content: ").append(toIndentedString(content)).append("\n"); sb.append("}"); return sb.toString(); } @@ -131,14 +131,14 @@ public String toUrlQueryString(String prefix) { StringJoiner joiner = new StringJoiner("&"); - // add `type` to the URL query string - if (getType() != null) { + // add `content` to the URL query string + if (getContent() != null) { joiner.add( String.format( - "%stype%s=%s", + "%scontent%s=%s", prefix, suffix, - ApiClient.urlEncode(ApiClient.valueToString(getType())))); + ApiClient.urlEncode(ApiClient.valueToString(getContent())))); } return joiner.toString(); diff --git a/src/main/java/com/fireblocks/sdk/model/IndicativeQuoteEnum.java b/src/main/java/com/fireblocks/sdk/model/IndicativeQuoteEnum.java deleted file mode 100644 index 54d13d52..00000000 --- a/src/main/java/com/fireblocks/sdk/model/IndicativeQuoteEnum.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Fireblocks API - * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - * - * The version of the OpenAPI document: 1.6.2 - * Contact: developers@fireblocks.com - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package com.fireblocks.sdk.model; - - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonValue; - -/** Indicates this is an indicative quote */ -public enum IndicativeQuoteEnum { - INDICATIVE("INDICATIVE"); - - private String value; - - IndicativeQuoteEnum(String value) { - this.value = value; - } - - @JsonValue - public String getValue() { - return value; - } - - @Override - public String toString() { - return String.valueOf(value); - } - - @JsonCreator - public static IndicativeQuoteEnum fromValue(String value) { - for (IndicativeQuoteEnum b : IndicativeQuoteEnum.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/Offer.java b/src/main/java/com/fireblocks/sdk/model/Offer.java new file mode 100644 index 00000000..8fd8f7e2 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/Offer.java @@ -0,0 +1,322 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto 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 = Offer.OfferDeserializer.class) +@JsonSerialize(using = Offer.OfferSerializer.class) +public class Offer extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(Offer.class.getName()); + + public static class OfferSerializer extends StdSerializer { + public OfferSerializer(Class t) { + super(t); + } + + public OfferSerializer() { + this(null); + } + + @Override + public void serialize(Offer value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.getActualInstance()); + } + } + + public static class OfferDeserializer extends StdDeserializer { + public OfferDeserializer() { + this(Offer.class); + } + + public OfferDeserializer(Class vc) { + super(vc); + } + + @Override + public Offer 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 QuoteOffer + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (QuoteOffer.class.equals(Integer.class) + || QuoteOffer.class.equals(Long.class) + || QuoteOffer.class.equals(Float.class) + || QuoteOffer.class.equals(Double.class) + || QuoteOffer.class.equals(Boolean.class) + || QuoteOffer.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((QuoteOffer.class.equals(Integer.class) + || QuoteOffer.class.equals(Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((QuoteOffer.class.equals(Float.class) + || QuoteOffer.class.equals(Double.class)) + && token == JsonToken.VALUE_NUMBER_FLOAT); + attemptParsing |= + (QuoteOffer.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE + || token == JsonToken.VALUE_TRUE)); + attemptParsing |= + (QuoteOffer.class.equals(String.class) + && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + deserialized = tree.traverse(jp.getCodec()).readValueAs(QuoteOffer.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 'QuoteOffer'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log(Level.FINER, "Input data does not match schema 'QuoteOffer'", e); + } + + // deserialize RateOffer + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (RateOffer.class.equals(Integer.class) + || RateOffer.class.equals(Long.class) + || RateOffer.class.equals(Float.class) + || RateOffer.class.equals(Double.class) + || RateOffer.class.equals(Boolean.class) + || RateOffer.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((RateOffer.class.equals(Integer.class) + || RateOffer.class.equals(Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((RateOffer.class.equals(Float.class) + || RateOffer.class.equals(Double.class)) + && token == JsonToken.VALUE_NUMBER_FLOAT); + attemptParsing |= + (RateOffer.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE + || token == JsonToken.VALUE_TRUE)); + attemptParsing |= + (RateOffer.class.equals(String.class) + && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + deserialized = tree.traverse(jp.getCodec()).readValueAs(RateOffer.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 'RateOffer'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log(Level.FINER, "Input data does not match schema 'RateOffer'", e); + } + + if (match == 1) { + Offer ret = new Offer(); + ret.setActualInstance(deserialized); + return ret; + } + throw new IOException( + String.format( + "Failed deserialization for Offer: %d classes match result, expected 1", + match)); + } + + /** Handle deserialization of the 'null' value. */ + @Override + public Offer getNullValue(DeserializationContext ctxt) throws JsonMappingException { + throw new JsonMappingException(ctxt.getParser(), "Offer cannot be null"); + } + } + + // store a list of schema names defined in oneOf + public static final Map> schemas = new HashMap<>(); + + public Offer() { + super("oneOf", Boolean.FALSE); + } + + public Offer(QuoteOffer o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + public Offer(RateOffer o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("QuoteOffer", QuoteOffer.class); + schemas.put("RateOffer", RateOffer.class); + JSON.registerDescendants(Offer.class, Collections.unmodifiableMap(schemas)); + // Initialize and register the discriminator mappings. + Map> mappings = new HashMap>(); + mappings.put("QUOTE", QuoteOffer.class); + mappings.put("RATE", RateOffer.class); + mappings.put("QuoteOffer", QuoteOffer.class); + mappings.put("RateOffer", RateOffer.class); + mappings.put("Offer", Offer.class); + JSON.registerDiscriminator(Offer.class, "offerType", mappings); + } + + @Override + public Map> getSchemas() { + return Offer.schemas; + } + + /** + * Set the instance that matches the oneOf child schema, check the instance parameter is valid + * against the oneOf child schemas: QuoteOffer, RateOffer + * + *

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(QuoteOffer.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } + + if (JSON.isInstanceOf(RateOffer.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException("Invalid instance type. Must be QuoteOffer, RateOffer"); + } + + /** + * Get the actual instance, which can be the following: QuoteOffer, RateOffer + * + * @return The actual instance (QuoteOffer, RateOffer) + */ + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `QuoteOffer`. If the actual instance is not `QuoteOffer`, the + * ClassCastException will be thrown. + * + * @return The actual instance of `QuoteOffer` + * @throws ClassCastException if the instance is not `QuoteOffer` + */ + public QuoteOffer getQuoteOffer() throws ClassCastException { + return (QuoteOffer) super.getActualInstance(); + } + + /** + * Get the actual instance of `RateOffer`. If the actual instance is not `RateOffer`, the + * ClassCastException will be thrown. + * + * @return The actual instance of `RateOffer` + * @throws ClassCastException if the instance is not `RateOffer` + */ + public RateOffer getRateOffer() throws ClassCastException { + return (RateOffer) 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 RateOffer) { + if (getActualInstance() != null) { + joiner.add( + ((RateOffer) getActualInstance()) + .toUrlQueryString(prefix + "one_of_0" + suffix)); + } + return joiner.toString(); + } + if (getActualInstance() instanceof QuoteOffer) { + if (getActualInstance() != null) { + joiner.add( + ((QuoteOffer) getActualInstance()) + .toUrlQueryString(prefix + "one_of_1" + suffix)); + } + return joiner.toString(); + } + return null; + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/OffersResponse.java b/src/main/java/com/fireblocks/sdk/model/OffersResponse.java new file mode 100644 index 00000000..ab90bbf8 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/OffersResponse.java @@ -0,0 +1,230 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto 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; + +/** OffersResponse */ +@JsonPropertyOrder({OffersResponse.JSON_PROPERTY_OFFERS, OffersResponse.JSON_PROPERTY_ERRORS}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class OffersResponse { + public static final String JSON_PROPERTY_OFFERS = "offers"; + @jakarta.annotation.Nonnull private List offers; + + public static final String JSON_PROPERTY_ERRORS = "errors"; + @jakarta.annotation.Nonnull private List errors; + + public OffersResponse() {} + + @JsonCreator + public OffersResponse( + @JsonProperty(value = JSON_PROPERTY_OFFERS, required = true) List offers, + @JsonProperty(value = JSON_PROPERTY_ERRORS, required = true) + List errors) { + this.offers = offers; + this.errors = errors; + } + + public OffersResponse offers(@jakarta.annotation.Nonnull List offers) { + this.offers = offers; + return this; + } + + public OffersResponse addOffersItem(Offer offersItem) { + if (this.offers == null) { + this.offers = new ArrayList<>(); + } + this.offers.add(offersItem); + return this; + } + + /** + * List of offers returned for the requested asset pair. + * + * @return offers + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_OFFERS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getOffers() { + return offers; + } + + @JsonProperty(JSON_PROPERTY_OFFERS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setOffers(@jakarta.annotation.Nonnull List offers) { + this.offers = offers; + } + + public OffersResponse errors(@jakarta.annotation.Nonnull List errors) { + this.errors = errors; + return this; + } + + public OffersResponse addErrorsItem(ScopeItemFailure errorsItem) { + if (this.errors == null) { + this.errors = new ArrayList<>(); + } + this.errors.add(errorsItem); + return this; + } + + /** + * Partial failures encountered while requesting offers. Empty when all offer requests succeed. + * + * @return errors + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_ERRORS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getErrors() { + return errors; + } + + @JsonProperty(JSON_PROPERTY_ERRORS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setErrors(@jakarta.annotation.Nonnull List errors) { + this.errors = errors; + } + + /** Return true if this OffersResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + OffersResponse offersResponse = (OffersResponse) o; + return Objects.equals(this.offers, offersResponse.offers) + && Objects.equals(this.errors, offersResponse.errors); + } + + @Override + public int hashCode() { + return Objects.hash(offers, errors); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class OffersResponse {\n"); + sb.append(" offers: ").append(toIndentedString(offers)).append("\n"); + sb.append(" errors: ").append(toIndentedString(errors)).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 `offers` to the URL query string + if (getOffers() != null) { + for (int i = 0; i < getOffers().size(); i++) { + if (getOffers().get(i) != null) { + joiner.add( + getOffers() + .get(i) + .toUrlQueryString( + String.format( + "%soffers%s%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", + containerPrefix, + i, + containerSuffix)))); + } + } + } + + // add `errors` to the URL query string + if (getErrors() != null) { + for (int i = 0; i < getErrors().size(); i++) { + if (getErrors().get(i) != null) { + joiner.add( + getErrors() + .get(i) + .toUrlQueryString( + String.format( + "%serrors%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/Quote.java b/src/main/java/com/fireblocks/sdk/model/Quote.java index e8087516..6a850447 100644 --- a/src/main/java/com/fireblocks/sdk/model/Quote.java +++ b/src/main/java/com/fireblocks/sdk/model/Quote.java @@ -14,31 +14,30 @@ import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.JsonValue; import com.fireblocks.sdk.ApiClient; -import com.fireblocks.sdk.JSON; import java.math.BigDecimal; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; import java.util.Objects; import java.util.StringJoiner; -/** Quote */ +/** A committed executable quote for a trading pair. */ @JsonPropertyOrder({ Quote.JSON_PROPERTY_VIA, Quote.JSON_PROPERTY_ID, Quote.JSON_PROPERTY_QUOTE_ASSET_ID, + Quote.JSON_PROPERTY_QUOTE_ASSET_RAIL, Quote.JSON_PROPERTY_BASE_ASSET_ID, + Quote.JSON_PROPERTY_BASE_ASSET_RAIL, Quote.JSON_PROPERTY_BASE_AMOUNT, Quote.JSON_PROPERTY_QUOTE_AMOUNT, Quote.JSON_PROPERTY_PRICE_IMPACT, Quote.JSON_PROPERTY_QUOTE_MIN_AMOUNT, + Quote.JSON_PROPERTY_IS_SLIPPAGE_APPLIED, Quote.JSON_PROPERTY_EXECUTION_STEPS, Quote.JSON_PROPERTY_GENERAL_FEES, Quote.JSON_PROPERTY_SIDE, @@ -49,16 +48,6 @@ @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.14.0") -@JsonIgnoreProperties( - value = "type", // ignore manually set type, it will be automatically generated by Jackson - // during serialization - allowSetters = true // allows the type to be set during deserialization - ) -@JsonTypeInfo( - use = JsonTypeInfo.Id.NAME, - include = JsonTypeInfo.As.PROPERTY, - property = "type", - visible = true) public class Quote { public static final String JSON_PROPERTY_VIA = "via"; @jakarta.annotation.Nonnull private AccessType via; @@ -69,9 +58,15 @@ public class Quote { public static final String JSON_PROPERTY_QUOTE_ASSET_ID = "quoteAssetId"; @jakarta.annotation.Nonnull private String quoteAssetId; + public static final String JSON_PROPERTY_QUOTE_ASSET_RAIL = "quoteAssetRail"; + @jakarta.annotation.Nullable private TransferRail quoteAssetRail; + public static final String JSON_PROPERTY_BASE_ASSET_ID = "baseAssetId"; @jakarta.annotation.Nonnull private String baseAssetId; + public static final String JSON_PROPERTY_BASE_ASSET_RAIL = "baseAssetRail"; + @jakarta.annotation.Nullable private TransferRail baseAssetRail; + public static final String JSON_PROPERTY_BASE_AMOUNT = "baseAmount"; @jakarta.annotation.Nonnull private String baseAmount; @@ -84,6 +79,9 @@ public class Quote { public static final String JSON_PROPERTY_QUOTE_MIN_AMOUNT = "quoteMinAmount"; @jakarta.annotation.Nullable private String quoteMinAmount; + public static final String JSON_PROPERTY_IS_SLIPPAGE_APPLIED = "isSlippageApplied"; + @jakarta.annotation.Nullable private Boolean isSlippageApplied = false; + public static final String JSON_PROPERTY_EXECUTION_STEPS = "executionSteps"; @jakarta.annotation.Nullable private List executionSteps; @@ -100,8 +98,41 @@ public class Quote { "orderCreationRequirements"; @jakarta.annotation.Nullable private String orderCreationRequirements; + /** The type of the quote. */ + public enum TypeEnum { + COMMITTED(String.valueOf("COMMITTED")), + + INDICATIVE(String.valueOf("INDICATIVE")); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + } + public static final String JSON_PROPERTY_TYPE = "type"; - @jakarta.annotation.Nonnull private IndicativeQuoteEnum type; + @jakarta.annotation.Nonnull private TypeEnum type; public Quote() {} @@ -116,7 +147,7 @@ public Quote( @JsonProperty(value = JSON_PROPERTY_QUOTE_AMOUNT, required = true) String quoteAmount, @JsonProperty(value = JSON_PROPERTY_SIDE, required = true) Side side, @JsonProperty(value = JSON_PROPERTY_EXPIRES_AT, required = true) String expiresAt, - @JsonProperty(value = JSON_PROPERTY_TYPE, required = true) IndicativeQuoteEnum type) { + @JsonProperty(value = JSON_PROPERTY_TYPE, required = true) TypeEnum type) { this.via = via; this.id = id; this.quoteAssetId = quoteAssetId; @@ -157,7 +188,7 @@ public Quote id(@jakarta.annotation.Nonnull String id) { } /** - * Get id + * The unique identifier of the quote. * * @return id */ @@ -180,7 +211,7 @@ public Quote quoteAssetId(@jakarta.annotation.Nonnull String quoteAssetId) { } /** - * Get quoteAssetId + * The target asset identifier. * * @return quoteAssetId */ @@ -197,13 +228,36 @@ public void setQuoteAssetId(@jakarta.annotation.Nonnull String quoteAssetId) { this.quoteAssetId = quoteAssetId; } + public Quote quoteAssetRail(@jakarta.annotation.Nullable TransferRail quoteAssetRail) { + this.quoteAssetRail = quoteAssetRail; + return this; + } + + /** + * Get quoteAssetRail + * + * @return quoteAssetRail + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_QUOTE_ASSET_RAIL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public TransferRail getQuoteAssetRail() { + return quoteAssetRail; + } + + @JsonProperty(JSON_PROPERTY_QUOTE_ASSET_RAIL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setQuoteAssetRail(@jakarta.annotation.Nullable TransferRail quoteAssetRail) { + this.quoteAssetRail = quoteAssetRail; + } + public Quote baseAssetId(@jakarta.annotation.Nonnull String baseAssetId) { this.baseAssetId = baseAssetId; return this; } /** - * Get baseAssetId + * The source asset identifier. * * @return baseAssetId */ @@ -220,13 +274,36 @@ public void setBaseAssetId(@jakarta.annotation.Nonnull String baseAssetId) { this.baseAssetId = baseAssetId; } + public Quote baseAssetRail(@jakarta.annotation.Nullable TransferRail baseAssetRail) { + this.baseAssetRail = baseAssetRail; + return this; + } + + /** + * Get baseAssetRail + * + * @return baseAssetRail + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_BASE_ASSET_RAIL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public TransferRail getBaseAssetRail() { + return baseAssetRail; + } + + @JsonProperty(JSON_PROPERTY_BASE_ASSET_RAIL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setBaseAssetRail(@jakarta.annotation.Nullable TransferRail baseAssetRail) { + this.baseAssetRail = baseAssetRail; + } + public Quote baseAmount(@jakarta.annotation.Nonnull String baseAmount) { this.baseAmount = baseAmount; return this; } /** - * Get baseAmount + * The amount of the base asset. * * @return baseAmount */ @@ -249,7 +326,7 @@ public Quote quoteAmount(@jakarta.annotation.Nonnull String quoteAmount) { } /** - * Get quoteAmount + * The amount of the quote asset. * * @return quoteAmount */ @@ -272,7 +349,7 @@ public Quote priceImpact(@jakarta.annotation.Nullable BigDecimal priceImpact) { } /** - * Get priceImpact + * The estimated price impact as a decimal fraction. * * @return priceImpact */ @@ -295,7 +372,7 @@ public Quote quoteMinAmount(@jakarta.annotation.Nullable String quoteMinAmount) } /** - * Get quoteMinAmount + * The minimum guaranteed amount of the quote asset. * * @return quoteMinAmount */ @@ -312,6 +389,29 @@ public void setQuoteMinAmount(@jakarta.annotation.Nullable String quoteMinAmount this.quoteMinAmount = quoteMinAmount; } + public Quote isSlippageApplied(@jakarta.annotation.Nullable Boolean isSlippageApplied) { + this.isSlippageApplied = isSlippageApplied; + return this; + } + + /** + * Indicates if slippage was applied to the quote. + * + * @return isSlippageApplied + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_IS_SLIPPAGE_APPLIED) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getIsSlippageApplied() { + return isSlippageApplied; + } + + @JsonProperty(JSON_PROPERTY_IS_SLIPPAGE_APPLIED) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setIsSlippageApplied(@jakarta.annotation.Nullable Boolean isSlippageApplied) { + this.isSlippageApplied = isSlippageApplied; + } + public Quote executionSteps( @jakarta.annotation.Nullable List executionSteps) { this.executionSteps = executionSteps; @@ -327,7 +427,7 @@ public Quote addExecutionStepsItem(QuoteExecutionStep executionStepsItem) { } /** - * Get executionSteps + * Ordered list of execution steps for the quote. * * @return executionSteps */ @@ -359,7 +459,7 @@ public Quote addGeneralFeesItem(Fee generalFeesItem) { } /** - * Get generalFees + * General fees associated with the quote. * * @return generalFees */ @@ -405,7 +505,7 @@ public Quote expiresAt(@jakarta.annotation.Nonnull String expiresAt) { } /** - * The expiration time of the quote in ISO format. + * The expiration time of the quote in ISO 8601 format. * * @return expiresAt */ @@ -430,9 +530,7 @@ public Quote orderCreationRequirements( /** * A JSON Schema Draft-7 document in string format describing the fields required when creating - * an order for this quote. The schema mirrors the structure of - * CreateOrderRequest.participantsIdentification json schema, so clients can validate their - * order payload before sending. + * an order so clients can validate their order payload before sending. * * @return orderCreationRequirements */ @@ -450,26 +548,26 @@ public void setOrderCreationRequirements( this.orderCreationRequirements = orderCreationRequirements; } - public Quote type(@jakarta.annotation.Nonnull IndicativeQuoteEnum type) { + public Quote type(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; return this; } /** - * Get type + * The type of the quote. * * @return type */ @jakarta.annotation.Nonnull @JsonProperty(JSON_PROPERTY_TYPE) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public IndicativeQuoteEnum getType() { + public TypeEnum getType() { return type; } @JsonProperty(JSON_PROPERTY_TYPE) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setType(@jakarta.annotation.Nonnull IndicativeQuoteEnum type) { + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; } @@ -486,11 +584,14 @@ public boolean equals(Object o) { return Objects.equals(this.via, quote.via) && Objects.equals(this.id, quote.id) && Objects.equals(this.quoteAssetId, quote.quoteAssetId) + && Objects.equals(this.quoteAssetRail, quote.quoteAssetRail) && Objects.equals(this.baseAssetId, quote.baseAssetId) + && Objects.equals(this.baseAssetRail, quote.baseAssetRail) && Objects.equals(this.baseAmount, quote.baseAmount) && Objects.equals(this.quoteAmount, quote.quoteAmount) && Objects.equals(this.priceImpact, quote.priceImpact) && Objects.equals(this.quoteMinAmount, quote.quoteMinAmount) + && Objects.equals(this.isSlippageApplied, quote.isSlippageApplied) && Objects.equals(this.executionSteps, quote.executionSteps) && Objects.equals(this.generalFees, quote.generalFees) && Objects.equals(this.side, quote.side) @@ -505,11 +606,14 @@ public int hashCode() { via, id, quoteAssetId, + quoteAssetRail, baseAssetId, + baseAssetRail, baseAmount, quoteAmount, priceImpact, quoteMinAmount, + isSlippageApplied, executionSteps, generalFees, side, @@ -525,11 +629,16 @@ public String toString() { sb.append(" via: ").append(toIndentedString(via)).append("\n"); sb.append(" id: ").append(toIndentedString(id)).append("\n"); sb.append(" quoteAssetId: ").append(toIndentedString(quoteAssetId)).append("\n"); + sb.append(" quoteAssetRail: ").append(toIndentedString(quoteAssetRail)).append("\n"); sb.append(" baseAssetId: ").append(toIndentedString(baseAssetId)).append("\n"); + sb.append(" baseAssetRail: ").append(toIndentedString(baseAssetRail)).append("\n"); sb.append(" baseAmount: ").append(toIndentedString(baseAmount)).append("\n"); sb.append(" quoteAmount: ").append(toIndentedString(quoteAmount)).append("\n"); sb.append(" priceImpact: ").append(toIndentedString(priceImpact)).append("\n"); sb.append(" quoteMinAmount: ").append(toIndentedString(quoteMinAmount)).append("\n"); + sb.append(" isSlippageApplied: ") + .append(toIndentedString(isSlippageApplied)) + .append("\n"); sb.append(" executionSteps: ").append(toIndentedString(executionSteps)).append("\n"); sb.append(" generalFees: ").append(toIndentedString(generalFees)).append("\n"); sb.append(" side: ").append(toIndentedString(side)).append("\n"); @@ -608,6 +717,16 @@ public String toUrlQueryString(String prefix) { ApiClient.urlEncode(ApiClient.valueToString(getQuoteAssetId())))); } + // add `quoteAssetRail` to the URL query string + if (getQuoteAssetRail() != null) { + joiner.add( + String.format( + "%squoteAssetRail%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getQuoteAssetRail())))); + } + // add `baseAssetId` to the URL query string if (getBaseAssetId() != null) { joiner.add( @@ -618,6 +737,16 @@ public String toUrlQueryString(String prefix) { ApiClient.urlEncode(ApiClient.valueToString(getBaseAssetId())))); } + // add `baseAssetRail` to the URL query string + if (getBaseAssetRail() != null) { + joiner.add( + String.format( + "%sbaseAssetRail%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getBaseAssetRail())))); + } + // add `baseAmount` to the URL query string if (getBaseAmount() != null) { joiner.add( @@ -658,6 +787,16 @@ public String toUrlQueryString(String prefix) { ApiClient.urlEncode(ApiClient.valueToString(getQuoteMinAmount())))); } + // add `isSlippageApplied` to the URL query string + if (getIsSlippageApplied() != null) { + joiner.add( + String.format( + "%sisSlippageApplied%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getIsSlippageApplied())))); + } + // add `executionSteps` to the URL query string if (getExecutionSteps() != null) { for (int i = 0; i < getExecutionSteps().size(); i++) { @@ -747,11 +886,4 @@ public String toUrlQueryString(String prefix) { return joiner.toString(); } - - static { - // Initialize and register the discriminator mappings. - Map> mappings = new HashMap>(); - mappings.put("Quote", Quote.class); - JSON.registerDiscriminator(Quote.class, "type", mappings); - } } diff --git a/src/main/java/com/fireblocks/sdk/model/QuoteExecutionRequestDetails.java b/src/main/java/com/fireblocks/sdk/model/QuoteExecutionRequestDetails.java index dc317a3d..b34f4c83 100644 --- a/src/main/java/com/fireblocks/sdk/model/QuoteExecutionRequestDetails.java +++ b/src/main/java/com/fireblocks/sdk/model/QuoteExecutionRequestDetails.java @@ -31,7 +31,7 @@ comments = "Generator version: 7.14.0") public class QuoteExecutionRequestDetails { public static final String JSON_PROPERTY_TYPE = "type"; - @jakarta.annotation.Nonnull private QuoteTypeEnum type; + @jakarta.annotation.Nonnull private QuoteExecutionTypeEnum type; public static final String JSON_PROPERTY_QUOTE_ID = "quoteId"; @jakarta.annotation.Nonnull private String quoteId; @@ -40,13 +40,14 @@ public QuoteExecutionRequestDetails() {} @JsonCreator public QuoteExecutionRequestDetails( - @JsonProperty(value = JSON_PROPERTY_TYPE, required = true) QuoteTypeEnum type, + @JsonProperty(value = JSON_PROPERTY_TYPE, required = true) QuoteExecutionTypeEnum type, @JsonProperty(value = JSON_PROPERTY_QUOTE_ID, required = true) String quoteId) { this.type = type; this.quoteId = quoteId; } - public QuoteExecutionRequestDetails type(@jakarta.annotation.Nonnull QuoteTypeEnum type) { + public QuoteExecutionRequestDetails type( + @jakarta.annotation.Nonnull QuoteExecutionTypeEnum type) { this.type = type; return this; } @@ -59,13 +60,13 @@ public QuoteExecutionRequestDetails type(@jakarta.annotation.Nonnull QuoteTypeEn @jakarta.annotation.Nonnull @JsonProperty(JSON_PROPERTY_TYPE) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public QuoteTypeEnum getType() { + public QuoteExecutionTypeEnum getType() { return type; } @JsonProperty(JSON_PROPERTY_TYPE) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setType(@jakarta.annotation.Nonnull QuoteTypeEnum type) { + public void setType(@jakarta.annotation.Nonnull QuoteExecutionTypeEnum type) { this.type = type; } diff --git a/src/main/java/com/fireblocks/sdk/model/QuoteExecutionTypeDetails.java b/src/main/java/com/fireblocks/sdk/model/QuoteExecutionTypeDetails.java index f5bb3017..8921ebbb 100644 --- a/src/main/java/com/fireblocks/sdk/model/QuoteExecutionTypeDetails.java +++ b/src/main/java/com/fireblocks/sdk/model/QuoteExecutionTypeDetails.java @@ -32,7 +32,7 @@ comments = "Generator version: 7.14.0") public class QuoteExecutionTypeDetails { public static final String JSON_PROPERTY_TYPE = "type"; - @jakarta.annotation.Nonnull private QuoteTypeEnum type; + @jakarta.annotation.Nonnull private QuoteExecutionTypeEnum type; public static final String JSON_PROPERTY_QUOTE_ID = "quoteId"; @jakarta.annotation.Nonnull private String quoteId; @@ -44,7 +44,7 @@ public QuoteExecutionTypeDetails() {} @JsonCreator public QuoteExecutionTypeDetails( - @JsonProperty(value = JSON_PROPERTY_TYPE, required = true) QuoteTypeEnum type, + @JsonProperty(value = JSON_PROPERTY_TYPE, required = true) QuoteExecutionTypeEnum type, @JsonProperty(value = JSON_PROPERTY_QUOTE_ID, required = true) String quoteId, @JsonProperty(value = JSON_PROPERTY_QUOTE_AMOUNT, required = true) String quoteAmount) { this.type = type; @@ -52,7 +52,7 @@ public QuoteExecutionTypeDetails( this.quoteAmount = quoteAmount; } - public QuoteExecutionTypeDetails type(@jakarta.annotation.Nonnull QuoteTypeEnum type) { + public QuoteExecutionTypeDetails type(@jakarta.annotation.Nonnull QuoteExecutionTypeEnum type) { this.type = type; return this; } @@ -65,13 +65,13 @@ public QuoteExecutionTypeDetails type(@jakarta.annotation.Nonnull QuoteTypeEnum @jakarta.annotation.Nonnull @JsonProperty(JSON_PROPERTY_TYPE) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public QuoteTypeEnum getType() { + public QuoteExecutionTypeEnum getType() { return type; } @JsonProperty(JSON_PROPERTY_TYPE) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setType(@jakarta.annotation.Nonnull QuoteTypeEnum type) { + public void setType(@jakarta.annotation.Nonnull QuoteExecutionTypeEnum type) { this.type = type; } diff --git a/src/main/java/com/fireblocks/sdk/model/QuoteTypeEnum.java b/src/main/java/com/fireblocks/sdk/model/QuoteExecutionTypeEnum.java similarity index 87% rename from src/main/java/com/fireblocks/sdk/model/QuoteTypeEnum.java rename to src/main/java/com/fireblocks/sdk/model/QuoteExecutionTypeEnum.java index 708ae276..327946d4 100644 --- a/src/main/java/com/fireblocks/sdk/model/QuoteTypeEnum.java +++ b/src/main/java/com/fireblocks/sdk/model/QuoteExecutionTypeEnum.java @@ -17,12 +17,12 @@ import com.fasterxml.jackson.annotation.JsonValue; /** Order type for quote orders */ -public enum QuoteTypeEnum { +public enum QuoteExecutionTypeEnum { QUOTE("QUOTE"); private String value; - QuoteTypeEnum(String value) { + QuoteExecutionTypeEnum(String value) { this.value = value; } @@ -37,8 +37,8 @@ public String toString() { } @JsonCreator - public static QuoteTypeEnum fromValue(String value) { - for (QuoteTypeEnum b : QuoteTypeEnum.values()) { + public static QuoteExecutionTypeEnum fromValue(String value) { + for (QuoteExecutionTypeEnum b : QuoteExecutionTypeEnum.values()) { if (b.value.equals(value)) { return b; } diff --git a/src/main/java/com/fireblocks/sdk/model/QuoteExecutionWithRequoteRequestDetails.java b/src/main/java/com/fireblocks/sdk/model/QuoteExecutionWithRequoteRequestDetails.java index 3b5ffa46..0c6731a4 100644 --- a/src/main/java/com/fireblocks/sdk/model/QuoteExecutionWithRequoteRequestDetails.java +++ b/src/main/java/com/fireblocks/sdk/model/QuoteExecutionWithRequoteRequestDetails.java @@ -32,7 +32,7 @@ comments = "Generator version: 7.14.0") public class QuoteExecutionWithRequoteRequestDetails { public static final String JSON_PROPERTY_TYPE = "type"; - @jakarta.annotation.Nonnull private QuoteTypeEnum type; + @jakarta.annotation.Nonnull private QuoteExecutionTypeEnum type; public static final String JSON_PROPERTY_QUOTE_ID = "quoteId"; @jakarta.annotation.Nonnull private String quoteId; @@ -44,14 +44,14 @@ public QuoteExecutionWithRequoteRequestDetails() {} @JsonCreator public QuoteExecutionWithRequoteRequestDetails( - @JsonProperty(value = JSON_PROPERTY_TYPE, required = true) QuoteTypeEnum type, + @JsonProperty(value = JSON_PROPERTY_TYPE, required = true) QuoteExecutionTypeEnum type, @JsonProperty(value = JSON_PROPERTY_QUOTE_ID, required = true) String quoteId) { this.type = type; this.quoteId = quoteId; } public QuoteExecutionWithRequoteRequestDetails type( - @jakarta.annotation.Nonnull QuoteTypeEnum type) { + @jakarta.annotation.Nonnull QuoteExecutionTypeEnum type) { this.type = type; return this; } @@ -64,13 +64,13 @@ public QuoteExecutionWithRequoteRequestDetails type( @jakarta.annotation.Nonnull @JsonProperty(JSON_PROPERTY_TYPE) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public QuoteTypeEnum getType() { + public QuoteExecutionTypeEnum getType() { return type; } @JsonProperty(JSON_PROPERTY_TYPE) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setType(@jakarta.annotation.Nonnull QuoteTypeEnum type) { + public void setType(@jakarta.annotation.Nonnull QuoteExecutionTypeEnum type) { this.type = type; } diff --git a/src/main/java/com/fireblocks/sdk/model/QuoteExecutionWithRequoteResponseDetails.java b/src/main/java/com/fireblocks/sdk/model/QuoteExecutionWithRequoteResponseDetails.java index 4ee7bc36..f0f12900 100644 --- a/src/main/java/com/fireblocks/sdk/model/QuoteExecutionWithRequoteResponseDetails.java +++ b/src/main/java/com/fireblocks/sdk/model/QuoteExecutionWithRequoteResponseDetails.java @@ -39,7 +39,7 @@ comments = "Generator version: 7.14.0") public class QuoteExecutionWithRequoteResponseDetails { public static final String JSON_PROPERTY_TYPE = "type"; - @jakarta.annotation.Nonnull private QuoteTypeEnum type; + @jakarta.annotation.Nonnull private QuoteExecutionTypeEnum type; public static final String JSON_PROPERTY_QUOTE_ID = "quoteId"; @jakarta.annotation.Nonnull private String quoteId; @@ -72,7 +72,7 @@ public QuoteExecutionWithRequoteResponseDetails() {} @JsonCreator public QuoteExecutionWithRequoteResponseDetails( - @JsonProperty(value = JSON_PROPERTY_TYPE, required = true) QuoteTypeEnum type, + @JsonProperty(value = JSON_PROPERTY_TYPE, required = true) QuoteExecutionTypeEnum type, @JsonProperty(value = JSON_PROPERTY_QUOTE_ID, required = true) String quoteId, @JsonProperty(value = JSON_PROPERTY_QUOTE_AMOUNT, required = true) String quoteAmount, @JsonProperty(value = JSON_PROPERTY_SIDE, required = true) Side side, @@ -90,7 +90,7 @@ public QuoteExecutionWithRequoteResponseDetails( } public QuoteExecutionWithRequoteResponseDetails type( - @jakarta.annotation.Nonnull QuoteTypeEnum type) { + @jakarta.annotation.Nonnull QuoteExecutionTypeEnum type) { this.type = type; return this; } @@ -103,13 +103,13 @@ public QuoteExecutionWithRequoteResponseDetails type( @jakarta.annotation.Nonnull @JsonProperty(JSON_PROPERTY_TYPE) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public QuoteTypeEnum getType() { + public QuoteExecutionTypeEnum getType() { return type; } @JsonProperty(JSON_PROPERTY_TYPE) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setType(@jakarta.annotation.Nonnull QuoteTypeEnum type) { + public void setType(@jakarta.annotation.Nonnull QuoteExecutionTypeEnum type) { this.type = type; } diff --git a/src/main/java/com/fireblocks/sdk/model/QuotePropertiesDetails.java b/src/main/java/com/fireblocks/sdk/model/QuoteOffer.java similarity index 62% rename from src/main/java/com/fireblocks/sdk/model/QuotePropertiesDetails.java rename to src/main/java/com/fireblocks/sdk/model/QuoteOffer.java index d4b36825..0836ec81 100644 --- a/src/main/java/com/fireblocks/sdk/model/QuotePropertiesDetails.java +++ b/src/main/java/com/fireblocks/sdk/model/QuoteOffer.java @@ -17,6 +17,7 @@ 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.math.BigDecimal; import java.util.ArrayList; @@ -24,26 +25,31 @@ import java.util.Objects; import java.util.StringJoiner; -/** QuotePropertiesDetails */ +/** QuoteOffer */ @JsonPropertyOrder({ - QuotePropertiesDetails.JSON_PROPERTY_VIA, - QuotePropertiesDetails.JSON_PROPERTY_ID, - QuotePropertiesDetails.JSON_PROPERTY_QUOTE_ASSET_ID, - QuotePropertiesDetails.JSON_PROPERTY_BASE_ASSET_ID, - QuotePropertiesDetails.JSON_PROPERTY_BASE_AMOUNT, - QuotePropertiesDetails.JSON_PROPERTY_QUOTE_AMOUNT, - QuotePropertiesDetails.JSON_PROPERTY_PRICE_IMPACT, - QuotePropertiesDetails.JSON_PROPERTY_QUOTE_MIN_AMOUNT, - QuotePropertiesDetails.JSON_PROPERTY_EXECUTION_STEPS, - QuotePropertiesDetails.JSON_PROPERTY_GENERAL_FEES, - QuotePropertiesDetails.JSON_PROPERTY_SIDE, - QuotePropertiesDetails.JSON_PROPERTY_EXPIRES_AT, - QuotePropertiesDetails.JSON_PROPERTY_ORDER_CREATION_REQUIREMENTS + QuoteOffer.JSON_PROPERTY_VIA, + QuoteOffer.JSON_PROPERTY_ID, + QuoteOffer.JSON_PROPERTY_QUOTE_ASSET_ID, + QuoteOffer.JSON_PROPERTY_QUOTE_ASSET_RAIL, + QuoteOffer.JSON_PROPERTY_BASE_ASSET_ID, + QuoteOffer.JSON_PROPERTY_BASE_ASSET_RAIL, + QuoteOffer.JSON_PROPERTY_BASE_AMOUNT, + QuoteOffer.JSON_PROPERTY_QUOTE_AMOUNT, + QuoteOffer.JSON_PROPERTY_PRICE_IMPACT, + QuoteOffer.JSON_PROPERTY_QUOTE_MIN_AMOUNT, + QuoteOffer.JSON_PROPERTY_IS_SLIPPAGE_APPLIED, + QuoteOffer.JSON_PROPERTY_EXECUTION_STEPS, + QuoteOffer.JSON_PROPERTY_GENERAL_FEES, + QuoteOffer.JSON_PROPERTY_SIDE, + QuoteOffer.JSON_PROPERTY_EXPIRES_AT, + QuoteOffer.JSON_PROPERTY_ORDER_CREATION_REQUIREMENTS, + QuoteOffer.JSON_PROPERTY_TYPE, + QuoteOffer.JSON_PROPERTY_OFFER_TYPE }) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.14.0") -public class QuotePropertiesDetails { +public class QuoteOffer { public static final String JSON_PROPERTY_VIA = "via"; @jakarta.annotation.Nonnull private AccessType via; @@ -53,9 +59,15 @@ public class QuotePropertiesDetails { public static final String JSON_PROPERTY_QUOTE_ASSET_ID = "quoteAssetId"; @jakarta.annotation.Nonnull private String quoteAssetId; + public static final String JSON_PROPERTY_QUOTE_ASSET_RAIL = "quoteAssetRail"; + @jakarta.annotation.Nullable private TransferRail quoteAssetRail; + public static final String JSON_PROPERTY_BASE_ASSET_ID = "baseAssetId"; @jakarta.annotation.Nonnull private String baseAssetId; + public static final String JSON_PROPERTY_BASE_ASSET_RAIL = "baseAssetRail"; + @jakarta.annotation.Nullable private TransferRail baseAssetRail; + public static final String JSON_PROPERTY_BASE_AMOUNT = "baseAmount"; @jakarta.annotation.Nonnull private String baseAmount; @@ -68,6 +80,9 @@ public class QuotePropertiesDetails { public static final String JSON_PROPERTY_QUOTE_MIN_AMOUNT = "quoteMinAmount"; @jakarta.annotation.Nullable private String quoteMinAmount; + public static final String JSON_PROPERTY_IS_SLIPPAGE_APPLIED = "isSlippageApplied"; + @jakarta.annotation.Nullable private Boolean isSlippageApplied = false; + public static final String JSON_PROPERTY_EXECUTION_STEPS = "executionSteps"; @jakarta.annotation.Nullable private List executionSteps; @@ -84,10 +99,80 @@ public class QuotePropertiesDetails { "orderCreationRequirements"; @jakarta.annotation.Nullable private String orderCreationRequirements; - public QuotePropertiesDetails() {} + /** The type of the quote. */ + public enum TypeEnum { + COMMITTED(String.valueOf("COMMITTED")), + + INDICATIVE(String.valueOf("INDICATIVE")); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + } + + public static final String JSON_PROPERTY_TYPE = "type"; + @jakarta.annotation.Nonnull private TypeEnum type; + + /** The type of offer — QUOTE for executable committed quotes. */ + public enum OfferTypeEnum { + QUOTE(String.valueOf("QUOTE")); + + private String value; + + OfferTypeEnum(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static OfferTypeEnum fromValue(String value) { + for (OfferTypeEnum b : OfferTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + } + + public static final String JSON_PROPERTY_OFFER_TYPE = "offerType"; + @jakarta.annotation.Nonnull private OfferTypeEnum offerType; + + public QuoteOffer() {} @JsonCreator - public QuotePropertiesDetails( + public QuoteOffer( @JsonProperty(value = JSON_PROPERTY_VIA, required = true) AccessType via, @JsonProperty(value = JSON_PROPERTY_ID, required = true) String id, @JsonProperty(value = JSON_PROPERTY_QUOTE_ASSET_ID, required = true) @@ -96,7 +181,10 @@ public QuotePropertiesDetails( @JsonProperty(value = JSON_PROPERTY_BASE_AMOUNT, required = true) String baseAmount, @JsonProperty(value = JSON_PROPERTY_QUOTE_AMOUNT, required = true) String quoteAmount, @JsonProperty(value = JSON_PROPERTY_SIDE, required = true) Side side, - @JsonProperty(value = JSON_PROPERTY_EXPIRES_AT, required = true) String expiresAt) { + @JsonProperty(value = JSON_PROPERTY_EXPIRES_AT, required = true) String expiresAt, + @JsonProperty(value = JSON_PROPERTY_TYPE, required = true) TypeEnum type, + @JsonProperty(value = JSON_PROPERTY_OFFER_TYPE, required = true) + OfferTypeEnum offerType) { this.via = via; this.id = id; this.quoteAssetId = quoteAssetId; @@ -105,9 +193,11 @@ public QuotePropertiesDetails( this.quoteAmount = quoteAmount; this.side = side; this.expiresAt = expiresAt; + this.type = type; + this.offerType = offerType; } - public QuotePropertiesDetails via(@jakarta.annotation.Nonnull AccessType via) { + public QuoteOffer via(@jakarta.annotation.Nonnull AccessType via) { this.via = via; return this; } @@ -130,13 +220,13 @@ public void setVia(@jakarta.annotation.Nonnull AccessType via) { this.via = via; } - public QuotePropertiesDetails id(@jakarta.annotation.Nonnull String id) { + public QuoteOffer id(@jakarta.annotation.Nonnull String id) { this.id = id; return this; } /** - * Get id + * The unique identifier of the quote. * * @return id */ @@ -153,13 +243,13 @@ public void setId(@jakarta.annotation.Nonnull String id) { this.id = id; } - public QuotePropertiesDetails quoteAssetId(@jakarta.annotation.Nonnull String quoteAssetId) { + public QuoteOffer quoteAssetId(@jakarta.annotation.Nonnull String quoteAssetId) { this.quoteAssetId = quoteAssetId; return this; } /** - * Get quoteAssetId + * The target asset identifier. * * @return quoteAssetId */ @@ -176,13 +266,36 @@ public void setQuoteAssetId(@jakarta.annotation.Nonnull String quoteAssetId) { this.quoteAssetId = quoteAssetId; } - public QuotePropertiesDetails baseAssetId(@jakarta.annotation.Nonnull String baseAssetId) { + public QuoteOffer quoteAssetRail(@jakarta.annotation.Nullable TransferRail quoteAssetRail) { + this.quoteAssetRail = quoteAssetRail; + return this; + } + + /** + * Get quoteAssetRail + * + * @return quoteAssetRail + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_QUOTE_ASSET_RAIL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public TransferRail getQuoteAssetRail() { + return quoteAssetRail; + } + + @JsonProperty(JSON_PROPERTY_QUOTE_ASSET_RAIL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setQuoteAssetRail(@jakarta.annotation.Nullable TransferRail quoteAssetRail) { + this.quoteAssetRail = quoteAssetRail; + } + + public QuoteOffer baseAssetId(@jakarta.annotation.Nonnull String baseAssetId) { this.baseAssetId = baseAssetId; return this; } /** - * Get baseAssetId + * The source asset identifier. * * @return baseAssetId */ @@ -199,13 +312,36 @@ public void setBaseAssetId(@jakarta.annotation.Nonnull String baseAssetId) { this.baseAssetId = baseAssetId; } - public QuotePropertiesDetails baseAmount(@jakarta.annotation.Nonnull String baseAmount) { + public QuoteOffer baseAssetRail(@jakarta.annotation.Nullable TransferRail baseAssetRail) { + this.baseAssetRail = baseAssetRail; + return this; + } + + /** + * Get baseAssetRail + * + * @return baseAssetRail + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_BASE_ASSET_RAIL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public TransferRail getBaseAssetRail() { + return baseAssetRail; + } + + @JsonProperty(JSON_PROPERTY_BASE_ASSET_RAIL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setBaseAssetRail(@jakarta.annotation.Nullable TransferRail baseAssetRail) { + this.baseAssetRail = baseAssetRail; + } + + public QuoteOffer baseAmount(@jakarta.annotation.Nonnull String baseAmount) { this.baseAmount = baseAmount; return this; } /** - * Get baseAmount + * The amount of the base asset. * * @return baseAmount */ @@ -222,13 +358,13 @@ public void setBaseAmount(@jakarta.annotation.Nonnull String baseAmount) { this.baseAmount = baseAmount; } - public QuotePropertiesDetails quoteAmount(@jakarta.annotation.Nonnull String quoteAmount) { + public QuoteOffer quoteAmount(@jakarta.annotation.Nonnull String quoteAmount) { this.quoteAmount = quoteAmount; return this; } /** - * Get quoteAmount + * The amount of the quote asset. * * @return quoteAmount */ @@ -245,13 +381,13 @@ public void setQuoteAmount(@jakarta.annotation.Nonnull String quoteAmount) { this.quoteAmount = quoteAmount; } - public QuotePropertiesDetails priceImpact(@jakarta.annotation.Nullable BigDecimal priceImpact) { + public QuoteOffer priceImpact(@jakarta.annotation.Nullable BigDecimal priceImpact) { this.priceImpact = priceImpact; return this; } /** - * Get priceImpact + * The estimated price impact as a decimal fraction. * * @return priceImpact */ @@ -268,14 +404,13 @@ public void setPriceImpact(@jakarta.annotation.Nullable BigDecimal priceImpact) this.priceImpact = priceImpact; } - public QuotePropertiesDetails quoteMinAmount( - @jakarta.annotation.Nullable String quoteMinAmount) { + public QuoteOffer quoteMinAmount(@jakarta.annotation.Nullable String quoteMinAmount) { this.quoteMinAmount = quoteMinAmount; return this; } /** - * Get quoteMinAmount + * The minimum guaranteed amount of the quote asset. * * @return quoteMinAmount */ @@ -292,13 +427,36 @@ public void setQuoteMinAmount(@jakarta.annotation.Nullable String quoteMinAmount this.quoteMinAmount = quoteMinAmount; } - public QuotePropertiesDetails executionSteps( + public QuoteOffer isSlippageApplied(@jakarta.annotation.Nullable Boolean isSlippageApplied) { + this.isSlippageApplied = isSlippageApplied; + return this; + } + + /** + * Indicates if slippage was applied to the quote. + * + * @return isSlippageApplied + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_IS_SLIPPAGE_APPLIED) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getIsSlippageApplied() { + return isSlippageApplied; + } + + @JsonProperty(JSON_PROPERTY_IS_SLIPPAGE_APPLIED) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setIsSlippageApplied(@jakarta.annotation.Nullable Boolean isSlippageApplied) { + this.isSlippageApplied = isSlippageApplied; + } + + public QuoteOffer executionSteps( @jakarta.annotation.Nullable List executionSteps) { this.executionSteps = executionSteps; return this; } - public QuotePropertiesDetails addExecutionStepsItem(QuoteExecutionStep executionStepsItem) { + public QuoteOffer addExecutionStepsItem(QuoteExecutionStep executionStepsItem) { if (this.executionSteps == null) { this.executionSteps = new ArrayList<>(); } @@ -307,7 +465,7 @@ public QuotePropertiesDetails addExecutionStepsItem(QuoteExecutionStep execution } /** - * Get executionSteps + * Ordered list of execution steps for the quote. * * @return executionSteps */ @@ -325,12 +483,12 @@ public void setExecutionSteps( this.executionSteps = executionSteps; } - public QuotePropertiesDetails generalFees(@jakarta.annotation.Nullable List generalFees) { + public QuoteOffer generalFees(@jakarta.annotation.Nullable List generalFees) { this.generalFees = generalFees; return this; } - public QuotePropertiesDetails addGeneralFeesItem(Fee generalFeesItem) { + public QuoteOffer addGeneralFeesItem(Fee generalFeesItem) { if (this.generalFees == null) { this.generalFees = new ArrayList<>(); } @@ -339,7 +497,7 @@ public QuotePropertiesDetails addGeneralFeesItem(Fee generalFeesItem) { } /** - * Get generalFees + * General fees associated with the quote. * * @return generalFees */ @@ -356,7 +514,7 @@ public void setGeneralFees(@jakarta.annotation.Nullable List generalFees) { this.generalFees = generalFees; } - public QuotePropertiesDetails side(@jakarta.annotation.Nonnull Side side) { + public QuoteOffer side(@jakarta.annotation.Nonnull Side side) { this.side = side; return this; } @@ -379,13 +537,13 @@ public void setSide(@jakarta.annotation.Nonnull Side side) { this.side = side; } - public QuotePropertiesDetails expiresAt(@jakarta.annotation.Nonnull String expiresAt) { + public QuoteOffer expiresAt(@jakarta.annotation.Nonnull String expiresAt) { this.expiresAt = expiresAt; return this; } /** - * The expiration time of the quote in ISO format. + * The expiration time of the quote in ISO 8601 format. * * @return expiresAt */ @@ -402,7 +560,7 @@ public void setExpiresAt(@jakarta.annotation.Nonnull String expiresAt) { this.expiresAt = expiresAt; } - public QuotePropertiesDetails orderCreationRequirements( + public QuoteOffer orderCreationRequirements( @jakarta.annotation.Nullable String orderCreationRequirements) { this.orderCreationRequirements = orderCreationRequirements; return this; @@ -410,9 +568,7 @@ public QuotePropertiesDetails orderCreationRequirements( /** * A JSON Schema Draft-7 document in string format describing the fields required when creating - * an order for this quote. The schema mirrors the structure of - * CreateOrderRequest.participantsIdentification json schema, so clients can validate their - * order payload before sending. + * an order so clients can validate their order payload before sending. * * @return orderCreationRequirements */ @@ -430,7 +586,53 @@ public void setOrderCreationRequirements( this.orderCreationRequirements = orderCreationRequirements; } - /** Return true if this QuotePropertiesDetails object is equal to o. */ + public QuoteOffer type(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + return this; + } + + /** + * The type of the quote. + * + * @return type + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public TypeEnum getType() { + return type; + } + + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + } + + public QuoteOffer offerType(@jakarta.annotation.Nonnull OfferTypeEnum offerType) { + this.offerType = offerType; + return this; + } + + /** + * The type of offer — QUOTE for executable committed quotes. + * + * @return offerType + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_OFFER_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public OfferTypeEnum getOfferType() { + return offerType; + } + + @JsonProperty(JSON_PROPERTY_OFFER_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setOfferType(@jakarta.annotation.Nonnull OfferTypeEnum offerType) { + this.offerType = offerType; + } + + /** Return true if this QuoteOffer object is equal to o. */ @Override public boolean equals(Object o) { if (this == o) { @@ -439,22 +641,26 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) { return false; } - QuotePropertiesDetails quotePropertiesDetails = (QuotePropertiesDetails) o; - return Objects.equals(this.via, quotePropertiesDetails.via) - && Objects.equals(this.id, quotePropertiesDetails.id) - && Objects.equals(this.quoteAssetId, quotePropertiesDetails.quoteAssetId) - && Objects.equals(this.baseAssetId, quotePropertiesDetails.baseAssetId) - && Objects.equals(this.baseAmount, quotePropertiesDetails.baseAmount) - && Objects.equals(this.quoteAmount, quotePropertiesDetails.quoteAmount) - && Objects.equals(this.priceImpact, quotePropertiesDetails.priceImpact) - && Objects.equals(this.quoteMinAmount, quotePropertiesDetails.quoteMinAmount) - && Objects.equals(this.executionSteps, quotePropertiesDetails.executionSteps) - && Objects.equals(this.generalFees, quotePropertiesDetails.generalFees) - && Objects.equals(this.side, quotePropertiesDetails.side) - && Objects.equals(this.expiresAt, quotePropertiesDetails.expiresAt) + QuoteOffer quoteOffer = (QuoteOffer) o; + return Objects.equals(this.via, quoteOffer.via) + && Objects.equals(this.id, quoteOffer.id) + && Objects.equals(this.quoteAssetId, quoteOffer.quoteAssetId) + && Objects.equals(this.quoteAssetRail, quoteOffer.quoteAssetRail) + && Objects.equals(this.baseAssetId, quoteOffer.baseAssetId) + && Objects.equals(this.baseAssetRail, quoteOffer.baseAssetRail) + && Objects.equals(this.baseAmount, quoteOffer.baseAmount) + && Objects.equals(this.quoteAmount, quoteOffer.quoteAmount) + && Objects.equals(this.priceImpact, quoteOffer.priceImpact) + && Objects.equals(this.quoteMinAmount, quoteOffer.quoteMinAmount) + && Objects.equals(this.isSlippageApplied, quoteOffer.isSlippageApplied) + && Objects.equals(this.executionSteps, quoteOffer.executionSteps) + && Objects.equals(this.generalFees, quoteOffer.generalFees) + && Objects.equals(this.side, quoteOffer.side) + && Objects.equals(this.expiresAt, quoteOffer.expiresAt) && Objects.equals( - this.orderCreationRequirements, - quotePropertiesDetails.orderCreationRequirements); + this.orderCreationRequirements, quoteOffer.orderCreationRequirements) + && Objects.equals(this.type, quoteOffer.type) + && Objects.equals(this.offerType, quoteOffer.offerType); } @Override @@ -463,30 +669,40 @@ public int hashCode() { via, id, quoteAssetId, + quoteAssetRail, baseAssetId, + baseAssetRail, baseAmount, quoteAmount, priceImpact, quoteMinAmount, + isSlippageApplied, executionSteps, generalFees, side, expiresAt, - orderCreationRequirements); + orderCreationRequirements, + type, + offerType); } @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class QuotePropertiesDetails {\n"); + sb.append("class QuoteOffer {\n"); sb.append(" via: ").append(toIndentedString(via)).append("\n"); sb.append(" id: ").append(toIndentedString(id)).append("\n"); sb.append(" quoteAssetId: ").append(toIndentedString(quoteAssetId)).append("\n"); + sb.append(" quoteAssetRail: ").append(toIndentedString(quoteAssetRail)).append("\n"); sb.append(" baseAssetId: ").append(toIndentedString(baseAssetId)).append("\n"); + sb.append(" baseAssetRail: ").append(toIndentedString(baseAssetRail)).append("\n"); sb.append(" baseAmount: ").append(toIndentedString(baseAmount)).append("\n"); sb.append(" quoteAmount: ").append(toIndentedString(quoteAmount)).append("\n"); sb.append(" priceImpact: ").append(toIndentedString(priceImpact)).append("\n"); sb.append(" quoteMinAmount: ").append(toIndentedString(quoteMinAmount)).append("\n"); + sb.append(" isSlippageApplied: ") + .append(toIndentedString(isSlippageApplied)) + .append("\n"); sb.append(" executionSteps: ").append(toIndentedString(executionSteps)).append("\n"); sb.append(" generalFees: ").append(toIndentedString(generalFees)).append("\n"); sb.append(" side: ").append(toIndentedString(side)).append("\n"); @@ -494,6 +710,8 @@ public String toString() { sb.append(" orderCreationRequirements: ") .append(toIndentedString(orderCreationRequirements)) .append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" offerType: ").append(toIndentedString(offerType)).append("\n"); sb.append("}"); return sb.toString(); } @@ -564,6 +782,16 @@ public String toUrlQueryString(String prefix) { ApiClient.urlEncode(ApiClient.valueToString(getQuoteAssetId())))); } + // add `quoteAssetRail` to the URL query string + if (getQuoteAssetRail() != null) { + joiner.add( + String.format( + "%squoteAssetRail%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getQuoteAssetRail())))); + } + // add `baseAssetId` to the URL query string if (getBaseAssetId() != null) { joiner.add( @@ -574,6 +802,16 @@ public String toUrlQueryString(String prefix) { ApiClient.urlEncode(ApiClient.valueToString(getBaseAssetId())))); } + // add `baseAssetRail` to the URL query string + if (getBaseAssetRail() != null) { + joiner.add( + String.format( + "%sbaseAssetRail%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getBaseAssetRail())))); + } + // add `baseAmount` to the URL query string if (getBaseAmount() != null) { joiner.add( @@ -614,6 +852,16 @@ public String toUrlQueryString(String prefix) { ApiClient.urlEncode(ApiClient.valueToString(getQuoteMinAmount())))); } + // add `isSlippageApplied` to the URL query string + if (getIsSlippageApplied() != null) { + joiner.add( + String.format( + "%sisSlippageApplied%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getIsSlippageApplied())))); + } + // add `executionSteps` to the URL query string if (getExecutionSteps() != null) { for (int i = 0; i < getExecutionSteps().size(); i++) { @@ -691,6 +939,26 @@ public String toUrlQueryString(String prefix) { ApiClient.valueToString(getOrderCreationRequirements())))); } + // add `type` to the URL query string + if (getType() != null) { + joiner.add( + String.format( + "%stype%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getType())))); + } + + // add `offerType` to the URL query string + if (getOfferType() != null) { + joiner.add( + String.format( + "%sofferType%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getOfferType())))); + } + return joiner.toString(); } } diff --git a/src/main/java/com/fireblocks/sdk/model/QuoteOfferType.java b/src/main/java/com/fireblocks/sdk/model/QuoteOfferType.java new file mode 100644 index 00000000..769bc87c --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/QuoteOfferType.java @@ -0,0 +1,179 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto 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; + +/** QuoteOfferType */ +@JsonPropertyOrder({QuoteOfferType.JSON_PROPERTY_OFFER_TYPE}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class QuoteOfferType { + /** The type of offer — QUOTE for executable committed quotes. */ + public enum OfferTypeEnum { + QUOTE(String.valueOf("QUOTE")); + + private String value; + + OfferTypeEnum(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static OfferTypeEnum fromValue(String value) { + for (OfferTypeEnum b : OfferTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + } + + public static final String JSON_PROPERTY_OFFER_TYPE = "offerType"; + @jakarta.annotation.Nonnull private OfferTypeEnum offerType; + + public QuoteOfferType() {} + + @JsonCreator + public QuoteOfferType( + @JsonProperty(value = JSON_PROPERTY_OFFER_TYPE, required = true) + OfferTypeEnum offerType) { + this.offerType = offerType; + } + + public QuoteOfferType offerType(@jakarta.annotation.Nonnull OfferTypeEnum offerType) { + this.offerType = offerType; + return this; + } + + /** + * The type of offer — QUOTE for executable committed quotes. + * + * @return offerType + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_OFFER_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public OfferTypeEnum getOfferType() { + return offerType; + } + + @JsonProperty(JSON_PROPERTY_OFFER_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setOfferType(@jakarta.annotation.Nonnull OfferTypeEnum offerType) { + this.offerType = offerType; + } + + /** Return true if this QuoteOfferType object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + QuoteOfferType quoteOfferType = (QuoteOfferType) o; + return Objects.equals(this.offerType, quoteOfferType.offerType); + } + + @Override + public int hashCode() { + return Objects.hash(offerType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class QuoteOfferType {\n"); + sb.append(" offerType: ").append(toIndentedString(offerType)).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 `offerType` to the URL query string + if (getOfferType() != null) { + joiner.add( + String.format( + "%sofferType%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getOfferType())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/QuotesResponse.java b/src/main/java/com/fireblocks/sdk/model/QuotesResponse.java index 77b986a2..9116a1bb 100644 --- a/src/main/java/com/fireblocks/sdk/model/QuotesResponse.java +++ b/src/main/java/com/fireblocks/sdk/model/QuotesResponse.java @@ -35,7 +35,7 @@ public class QuotesResponse { @jakarta.annotation.Nonnull private List quotes; public static final String JSON_PROPERTY_QUOTE_FAILURES = "quoteFailures"; - @jakarta.annotation.Nonnull private List quoteFailures; + @jakarta.annotation.Nonnull private List quoteFailures; public QuotesResponse() {} @@ -43,7 +43,7 @@ public QuotesResponse() {} public QuotesResponse( @JsonProperty(value = JSON_PROPERTY_QUOTES, required = true) List quotes, @JsonProperty(value = JSON_PROPERTY_QUOTE_FAILURES, required = true) - List quoteFailures) { + List quoteFailures) { this.quotes = quotes; this.quoteFailures = quoteFailures; } @@ -80,12 +80,12 @@ public void setQuotes(@jakarta.annotation.Nonnull List quotes) { } public QuotesResponse quoteFailures( - @jakarta.annotation.Nonnull List quoteFailures) { + @jakarta.annotation.Nonnull List quoteFailures) { this.quoteFailures = quoteFailures; return this; } - public QuotesResponse addQuoteFailuresItem(QuoteFailure quoteFailuresItem) { + public QuotesResponse addQuoteFailuresItem(ScopeItemFailure quoteFailuresItem) { if (this.quoteFailures == null) { this.quoteFailures = new ArrayList<>(); } @@ -102,13 +102,13 @@ public QuotesResponse addQuoteFailuresItem(QuoteFailure quoteFailuresItem) { @jakarta.annotation.Nonnull @JsonProperty(JSON_PROPERTY_QUOTE_FAILURES) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public List getQuoteFailures() { + public List getQuoteFailures() { return quoteFailures; } @JsonProperty(JSON_PROPERTY_QUOTE_FAILURES) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setQuoteFailures(@jakarta.annotation.Nonnull List quoteFailures) { + public void setQuoteFailures(@jakarta.annotation.Nonnull List quoteFailures) { this.quoteFailures = quoteFailures; } diff --git a/src/main/java/com/fireblocks/sdk/model/Rate.java b/src/main/java/com/fireblocks/sdk/model/Rate.java new file mode 100644 index 00000000..204f738b --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/Rate.java @@ -0,0 +1,347 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto 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; + +/** Rate */ +@JsonPropertyOrder({ + Rate.JSON_PROPERTY_VIA, + Rate.JSON_PROPERTY_BASE_ASSET_ID, + Rate.JSON_PROPERTY_BASE_ASSET_RAIL, + Rate.JSON_PROPERTY_QUOTE_ASSET_ID, + Rate.JSON_PROPERTY_QUOTE_ASSET_RAIL, + Rate.JSON_PROPERTY_RATE +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class Rate { + public static final String JSON_PROPERTY_VIA = "via"; + @jakarta.annotation.Nonnull private AccessType via; + + public static final String JSON_PROPERTY_BASE_ASSET_ID = "baseAssetId"; + @jakarta.annotation.Nonnull private String baseAssetId; + + public static final String JSON_PROPERTY_BASE_ASSET_RAIL = "baseAssetRail"; + @jakarta.annotation.Nullable private TransferRail baseAssetRail; + + public static final String JSON_PROPERTY_QUOTE_ASSET_ID = "quoteAssetId"; + @jakarta.annotation.Nonnull private String quoteAssetId; + + public static final String JSON_PROPERTY_QUOTE_ASSET_RAIL = "quoteAssetRail"; + @jakarta.annotation.Nullable private TransferRail quoteAssetRail; + + public static final String JSON_PROPERTY_RATE = "rate"; + @jakarta.annotation.Nonnull private String rate; + + public Rate() {} + + @JsonCreator + public Rate( + @JsonProperty(value = JSON_PROPERTY_VIA, required = true) AccessType via, + @JsonProperty(value = JSON_PROPERTY_BASE_ASSET_ID, required = true) String baseAssetId, + @JsonProperty(value = JSON_PROPERTY_QUOTE_ASSET_ID, required = true) + String quoteAssetId, + @JsonProperty(value = JSON_PROPERTY_RATE, required = true) String rate) { + this.via = via; + this.baseAssetId = baseAssetId; + this.quoteAssetId = quoteAssetId; + this.rate = rate; + } + + public Rate via(@jakarta.annotation.Nonnull AccessType via) { + this.via = via; + return this; + } + + /** + * Get via + * + * @return via + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_VIA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public AccessType getVia() { + return via; + } + + @JsonProperty(JSON_PROPERTY_VIA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setVia(@jakarta.annotation.Nonnull AccessType via) { + this.via = via; + } + + public Rate baseAssetId(@jakarta.annotation.Nonnull String baseAssetId) { + this.baseAssetId = baseAssetId; + return this; + } + + /** + * The source asset identifier + * + * @return baseAssetId + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_BASE_ASSET_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getBaseAssetId() { + return baseAssetId; + } + + @JsonProperty(JSON_PROPERTY_BASE_ASSET_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setBaseAssetId(@jakarta.annotation.Nonnull String baseAssetId) { + this.baseAssetId = baseAssetId; + } + + public Rate baseAssetRail(@jakarta.annotation.Nullable TransferRail baseAssetRail) { + this.baseAssetRail = baseAssetRail; + return this; + } + + /** + * Get baseAssetRail + * + * @return baseAssetRail + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_BASE_ASSET_RAIL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public TransferRail getBaseAssetRail() { + return baseAssetRail; + } + + @JsonProperty(JSON_PROPERTY_BASE_ASSET_RAIL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setBaseAssetRail(@jakarta.annotation.Nullable TransferRail baseAssetRail) { + this.baseAssetRail = baseAssetRail; + } + + public Rate quoteAssetId(@jakarta.annotation.Nonnull String quoteAssetId) { + this.quoteAssetId = quoteAssetId; + return this; + } + + /** + * The target asset identifier + * + * @return quoteAssetId + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_QUOTE_ASSET_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getQuoteAssetId() { + return quoteAssetId; + } + + @JsonProperty(JSON_PROPERTY_QUOTE_ASSET_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setQuoteAssetId(@jakarta.annotation.Nonnull String quoteAssetId) { + this.quoteAssetId = quoteAssetId; + } + + public Rate quoteAssetRail(@jakarta.annotation.Nullable TransferRail quoteAssetRail) { + this.quoteAssetRail = quoteAssetRail; + return this; + } + + /** + * Get quoteAssetRail + * + * @return quoteAssetRail + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_QUOTE_ASSET_RAIL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public TransferRail getQuoteAssetRail() { + return quoteAssetRail; + } + + @JsonProperty(JSON_PROPERTY_QUOTE_ASSET_RAIL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setQuoteAssetRail(@jakarta.annotation.Nullable TransferRail quoteAssetRail) { + this.quoteAssetRail = quoteAssetRail; + } + + public Rate rate(@jakarta.annotation.Nonnull String rate) { + this.rate = rate; + return this; + } + + /** + * The indicative exchange rate — the number of units of the quote asset that equal 1 unit of + * the base asset. For example, if base is BTC and quote is USD, a rate of 75000 means 1 BTC + * = 75,000 USD. + * + * @return rate + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_RATE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getRate() { + return rate; + } + + @JsonProperty(JSON_PROPERTY_RATE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setRate(@jakarta.annotation.Nonnull String rate) { + this.rate = rate; + } + + /** Return true if this Rate object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Rate rate = (Rate) o; + return Objects.equals(this.via, rate.via) + && Objects.equals(this.baseAssetId, rate.baseAssetId) + && Objects.equals(this.baseAssetRail, rate.baseAssetRail) + && Objects.equals(this.quoteAssetId, rate.quoteAssetId) + && Objects.equals(this.quoteAssetRail, rate.quoteAssetRail) + && Objects.equals(this.rate, rate.rate); + } + + @Override + public int hashCode() { + return Objects.hash(via, baseAssetId, baseAssetRail, quoteAssetId, quoteAssetRail, rate); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Rate {\n"); + sb.append(" via: ").append(toIndentedString(via)).append("\n"); + sb.append(" baseAssetId: ").append(toIndentedString(baseAssetId)).append("\n"); + sb.append(" baseAssetRail: ").append(toIndentedString(baseAssetRail)).append("\n"); + sb.append(" quoteAssetId: ").append(toIndentedString(quoteAssetId)).append("\n"); + sb.append(" quoteAssetRail: ").append(toIndentedString(quoteAssetRail)).append("\n"); + sb.append(" rate: ").append(toIndentedString(rate)).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 `via` to the URL query string + if (getVia() != null) { + joiner.add(getVia().toUrlQueryString(prefix + "via" + suffix)); + } + + // add `baseAssetId` to the URL query string + if (getBaseAssetId() != null) { + joiner.add( + String.format( + "%sbaseAssetId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getBaseAssetId())))); + } + + // add `baseAssetRail` to the URL query string + if (getBaseAssetRail() != null) { + joiner.add( + String.format( + "%sbaseAssetRail%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getBaseAssetRail())))); + } + + // add `quoteAssetId` to the URL query string + if (getQuoteAssetId() != null) { + joiner.add( + String.format( + "%squoteAssetId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getQuoteAssetId())))); + } + + // add `quoteAssetRail` to the URL query string + if (getQuoteAssetRail() != null) { + joiner.add( + String.format( + "%squoteAssetRail%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getQuoteAssetRail())))); + } + + // add `rate` to the URL query string + if (getRate() != null) { + joiner.add( + String.format( + "%srate%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getRate())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/RateOffer.java b/src/main/java/com/fireblocks/sdk/model/RateOffer.java new file mode 100644 index 00000000..c436828b --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/RateOffer.java @@ -0,0 +1,422 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto 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; + +/** RateOffer */ +@JsonPropertyOrder({ + RateOffer.JSON_PROPERTY_VIA, + RateOffer.JSON_PROPERTY_BASE_ASSET_ID, + RateOffer.JSON_PROPERTY_BASE_ASSET_RAIL, + RateOffer.JSON_PROPERTY_QUOTE_ASSET_ID, + RateOffer.JSON_PROPERTY_QUOTE_ASSET_RAIL, + RateOffer.JSON_PROPERTY_RATE, + RateOffer.JSON_PROPERTY_OFFER_TYPE +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class RateOffer { + public static final String JSON_PROPERTY_VIA = "via"; + @jakarta.annotation.Nonnull private AccessType via; + + public static final String JSON_PROPERTY_BASE_ASSET_ID = "baseAssetId"; + @jakarta.annotation.Nonnull private String baseAssetId; + + public static final String JSON_PROPERTY_BASE_ASSET_RAIL = "baseAssetRail"; + @jakarta.annotation.Nullable private TransferRail baseAssetRail; + + public static final String JSON_PROPERTY_QUOTE_ASSET_ID = "quoteAssetId"; + @jakarta.annotation.Nonnull private String quoteAssetId; + + public static final String JSON_PROPERTY_QUOTE_ASSET_RAIL = "quoteAssetRail"; + @jakarta.annotation.Nullable private TransferRail quoteAssetRail; + + public static final String JSON_PROPERTY_RATE = "rate"; + @jakarta.annotation.Nonnull private String rate; + + /** The type of offer — RATE for indicative pricing. */ + public enum OfferTypeEnum { + RATE(String.valueOf("RATE")); + + private String value; + + OfferTypeEnum(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static OfferTypeEnum fromValue(String value) { + for (OfferTypeEnum b : OfferTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + } + + public static final String JSON_PROPERTY_OFFER_TYPE = "offerType"; + @jakarta.annotation.Nonnull private OfferTypeEnum offerType; + + public RateOffer() {} + + @JsonCreator + public RateOffer( + @JsonProperty(value = JSON_PROPERTY_VIA, required = true) AccessType via, + @JsonProperty(value = JSON_PROPERTY_BASE_ASSET_ID, required = true) String baseAssetId, + @JsonProperty(value = JSON_PROPERTY_QUOTE_ASSET_ID, required = true) + String quoteAssetId, + @JsonProperty(value = JSON_PROPERTY_RATE, required = true) String rate, + @JsonProperty(value = JSON_PROPERTY_OFFER_TYPE, required = true) + OfferTypeEnum offerType) { + this.via = via; + this.baseAssetId = baseAssetId; + this.quoteAssetId = quoteAssetId; + this.rate = rate; + this.offerType = offerType; + } + + public RateOffer via(@jakarta.annotation.Nonnull AccessType via) { + this.via = via; + return this; + } + + /** + * Get via + * + * @return via + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_VIA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public AccessType getVia() { + return via; + } + + @JsonProperty(JSON_PROPERTY_VIA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setVia(@jakarta.annotation.Nonnull AccessType via) { + this.via = via; + } + + public RateOffer baseAssetId(@jakarta.annotation.Nonnull String baseAssetId) { + this.baseAssetId = baseAssetId; + return this; + } + + /** + * The source asset identifier + * + * @return baseAssetId + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_BASE_ASSET_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getBaseAssetId() { + return baseAssetId; + } + + @JsonProperty(JSON_PROPERTY_BASE_ASSET_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setBaseAssetId(@jakarta.annotation.Nonnull String baseAssetId) { + this.baseAssetId = baseAssetId; + } + + public RateOffer baseAssetRail(@jakarta.annotation.Nullable TransferRail baseAssetRail) { + this.baseAssetRail = baseAssetRail; + return this; + } + + /** + * Get baseAssetRail + * + * @return baseAssetRail + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_BASE_ASSET_RAIL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public TransferRail getBaseAssetRail() { + return baseAssetRail; + } + + @JsonProperty(JSON_PROPERTY_BASE_ASSET_RAIL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setBaseAssetRail(@jakarta.annotation.Nullable TransferRail baseAssetRail) { + this.baseAssetRail = baseAssetRail; + } + + public RateOffer quoteAssetId(@jakarta.annotation.Nonnull String quoteAssetId) { + this.quoteAssetId = quoteAssetId; + return this; + } + + /** + * The target asset identifier + * + * @return quoteAssetId + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_QUOTE_ASSET_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getQuoteAssetId() { + return quoteAssetId; + } + + @JsonProperty(JSON_PROPERTY_QUOTE_ASSET_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setQuoteAssetId(@jakarta.annotation.Nonnull String quoteAssetId) { + this.quoteAssetId = quoteAssetId; + } + + public RateOffer quoteAssetRail(@jakarta.annotation.Nullable TransferRail quoteAssetRail) { + this.quoteAssetRail = quoteAssetRail; + return this; + } + + /** + * Get quoteAssetRail + * + * @return quoteAssetRail + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_QUOTE_ASSET_RAIL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public TransferRail getQuoteAssetRail() { + return quoteAssetRail; + } + + @JsonProperty(JSON_PROPERTY_QUOTE_ASSET_RAIL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setQuoteAssetRail(@jakarta.annotation.Nullable TransferRail quoteAssetRail) { + this.quoteAssetRail = quoteAssetRail; + } + + public RateOffer rate(@jakarta.annotation.Nonnull String rate) { + this.rate = rate; + return this; + } + + /** + * The indicative exchange rate — the number of units of the quote asset that equal 1 unit of + * the base asset. For example, if base is BTC and quote is USD, a rate of 75000 means 1 BTC + * = 75,000 USD. + * + * @return rate + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_RATE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getRate() { + return rate; + } + + @JsonProperty(JSON_PROPERTY_RATE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setRate(@jakarta.annotation.Nonnull String rate) { + this.rate = rate; + } + + public RateOffer offerType(@jakarta.annotation.Nonnull OfferTypeEnum offerType) { + this.offerType = offerType; + return this; + } + + /** + * The type of offer — RATE for indicative pricing. + * + * @return offerType + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_OFFER_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public OfferTypeEnum getOfferType() { + return offerType; + } + + @JsonProperty(JSON_PROPERTY_OFFER_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setOfferType(@jakarta.annotation.Nonnull OfferTypeEnum offerType) { + this.offerType = offerType; + } + + /** Return true if this RateOffer object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RateOffer rateOffer = (RateOffer) o; + return Objects.equals(this.via, rateOffer.via) + && Objects.equals(this.baseAssetId, rateOffer.baseAssetId) + && Objects.equals(this.baseAssetRail, rateOffer.baseAssetRail) + && Objects.equals(this.quoteAssetId, rateOffer.quoteAssetId) + && Objects.equals(this.quoteAssetRail, rateOffer.quoteAssetRail) + && Objects.equals(this.rate, rateOffer.rate) + && Objects.equals(this.offerType, rateOffer.offerType); + } + + @Override + public int hashCode() { + return Objects.hash( + via, baseAssetId, baseAssetRail, quoteAssetId, quoteAssetRail, rate, offerType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RateOffer {\n"); + sb.append(" via: ").append(toIndentedString(via)).append("\n"); + sb.append(" baseAssetId: ").append(toIndentedString(baseAssetId)).append("\n"); + sb.append(" baseAssetRail: ").append(toIndentedString(baseAssetRail)).append("\n"); + sb.append(" quoteAssetId: ").append(toIndentedString(quoteAssetId)).append("\n"); + sb.append(" quoteAssetRail: ").append(toIndentedString(quoteAssetRail)).append("\n"); + sb.append(" rate: ").append(toIndentedString(rate)).append("\n"); + sb.append(" offerType: ").append(toIndentedString(offerType)).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 `via` to the URL query string + if (getVia() != null) { + joiner.add(getVia().toUrlQueryString(prefix + "via" + suffix)); + } + + // add `baseAssetId` to the URL query string + if (getBaseAssetId() != null) { + joiner.add( + String.format( + "%sbaseAssetId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getBaseAssetId())))); + } + + // add `baseAssetRail` to the URL query string + if (getBaseAssetRail() != null) { + joiner.add( + String.format( + "%sbaseAssetRail%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getBaseAssetRail())))); + } + + // add `quoteAssetId` to the URL query string + if (getQuoteAssetId() != null) { + joiner.add( + String.format( + "%squoteAssetId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getQuoteAssetId())))); + } + + // add `quoteAssetRail` to the URL query string + if (getQuoteAssetRail() != null) { + joiner.add( + String.format( + "%squoteAssetRail%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getQuoteAssetRail())))); + } + + // add `rate` to the URL query string + if (getRate() != null) { + joiner.add( + String.format( + "%srate%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getRate())))); + } + + // add `offerType` to the URL query string + if (getOfferType() != null) { + joiner.add( + String.format( + "%sofferType%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getOfferType())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/RateOfferType.java b/src/main/java/com/fireblocks/sdk/model/RateOfferType.java new file mode 100644 index 00000000..a1be4a3e --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/RateOfferType.java @@ -0,0 +1,179 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto 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; + +/** RateOfferType */ +@JsonPropertyOrder({RateOfferType.JSON_PROPERTY_OFFER_TYPE}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class RateOfferType { + /** The type of offer — RATE for indicative pricing. */ + public enum OfferTypeEnum { + RATE(String.valueOf("RATE")); + + private String value; + + OfferTypeEnum(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static OfferTypeEnum fromValue(String value) { + for (OfferTypeEnum b : OfferTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + } + + public static final String JSON_PROPERTY_OFFER_TYPE = "offerType"; + @jakarta.annotation.Nonnull private OfferTypeEnum offerType; + + public RateOfferType() {} + + @JsonCreator + public RateOfferType( + @JsonProperty(value = JSON_PROPERTY_OFFER_TYPE, required = true) + OfferTypeEnum offerType) { + this.offerType = offerType; + } + + public RateOfferType offerType(@jakarta.annotation.Nonnull OfferTypeEnum offerType) { + this.offerType = offerType; + return this; + } + + /** + * The type of offer — RATE for indicative pricing. + * + * @return offerType + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_OFFER_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public OfferTypeEnum getOfferType() { + return offerType; + } + + @JsonProperty(JSON_PROPERTY_OFFER_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setOfferType(@jakarta.annotation.Nonnull OfferTypeEnum offerType) { + this.offerType = offerType; + } + + /** Return true if this RateOfferType object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RateOfferType rateOfferType = (RateOfferType) o; + return Objects.equals(this.offerType, rateOfferType.offerType); + } + + @Override + public int hashCode() { + return Objects.hash(offerType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RateOfferType {\n"); + sb.append(" offerType: ").append(toIndentedString(offerType)).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 `offerType` to the URL query string + if (getOfferType() != null) { + joiner.add( + String.format( + "%sofferType%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getOfferType())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/RatesRequest.java b/src/main/java/com/fireblocks/sdk/model/RatesRequest.java new file mode 100644 index 00000000..c4d0dc71 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/RatesRequest.java @@ -0,0 +1,254 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto 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; + +/** RatesRequest */ +@JsonPropertyOrder({ + RatesRequest.JSON_PROPERTY_SCOPE, + RatesRequest.JSON_PROPERTY_BASE_ASSET_ID, + RatesRequest.JSON_PROPERTY_QUOTE_ASSET_ID +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class RatesRequest { + public static final String JSON_PROPERTY_SCOPE = "scope"; + @jakarta.annotation.Nonnull private List scope; + + public static final String JSON_PROPERTY_BASE_ASSET_ID = "baseAssetId"; + @jakarta.annotation.Nonnull private String baseAssetId; + + public static final String JSON_PROPERTY_QUOTE_ASSET_ID = "quoteAssetId"; + @jakarta.annotation.Nonnull private String quoteAssetId; + + public RatesRequest() {} + + @JsonCreator + public RatesRequest( + @JsonProperty(value = JSON_PROPERTY_SCOPE, required = true) List scope, + @JsonProperty(value = JSON_PROPERTY_BASE_ASSET_ID, required = true) String baseAssetId, + @JsonProperty(value = JSON_PROPERTY_QUOTE_ASSET_ID, required = true) + String quoteAssetId) { + this.scope = scope; + this.baseAssetId = baseAssetId; + this.quoteAssetId = quoteAssetId; + } + + public RatesRequest scope(@jakarta.annotation.Nonnull List scope) { + this.scope = scope; + return this; + } + + public RatesRequest addScopeItem(ScopeItem scopeItem) { + if (this.scope == null) { + this.scope = new ArrayList<>(); + } + this.scope.add(scopeItem); + return this; + } + + /** + * One or more providers/accounts to request rates from. At least one scope item is required. + * + * @return scope + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_SCOPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getScope() { + return scope; + } + + @JsonProperty(JSON_PROPERTY_SCOPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setScope(@jakarta.annotation.Nonnull List scope) { + this.scope = scope; + } + + public RatesRequest baseAssetId(@jakarta.annotation.Nonnull String baseAssetId) { + this.baseAssetId = baseAssetId; + return this; + } + + /** + * The source asset identifier. + * + * @return baseAssetId + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_BASE_ASSET_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getBaseAssetId() { + return baseAssetId; + } + + @JsonProperty(JSON_PROPERTY_BASE_ASSET_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setBaseAssetId(@jakarta.annotation.Nonnull String baseAssetId) { + this.baseAssetId = baseAssetId; + } + + public RatesRequest quoteAssetId(@jakarta.annotation.Nonnull String quoteAssetId) { + this.quoteAssetId = quoteAssetId; + return this; + } + + /** + * The target asset identifier. + * + * @return quoteAssetId + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_QUOTE_ASSET_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getQuoteAssetId() { + return quoteAssetId; + } + + @JsonProperty(JSON_PROPERTY_QUOTE_ASSET_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setQuoteAssetId(@jakarta.annotation.Nonnull String quoteAssetId) { + this.quoteAssetId = quoteAssetId; + } + + /** Return true if this RatesRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RatesRequest ratesRequest = (RatesRequest) o; + return Objects.equals(this.scope, ratesRequest.scope) + && Objects.equals(this.baseAssetId, ratesRequest.baseAssetId) + && Objects.equals(this.quoteAssetId, ratesRequest.quoteAssetId); + } + + @Override + public int hashCode() { + return Objects.hash(scope, baseAssetId, quoteAssetId); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RatesRequest {\n"); + sb.append(" scope: ").append(toIndentedString(scope)).append("\n"); + sb.append(" baseAssetId: ").append(toIndentedString(baseAssetId)).append("\n"); + sb.append(" quoteAssetId: ").append(toIndentedString(quoteAssetId)).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 `scope` to the URL query string + if (getScope() != null) { + for (int i = 0; i < getScope().size(); i++) { + if (getScope().get(i) != null) { + joiner.add( + getScope() + .get(i) + .toUrlQueryString( + String.format( + "%sscope%s%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", + containerPrefix, + i, + containerSuffix)))); + } + } + } + + // add `baseAssetId` to the URL query string + if (getBaseAssetId() != null) { + joiner.add( + String.format( + "%sbaseAssetId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getBaseAssetId())))); + } + + // add `quoteAssetId` to the URL query string + if (getQuoteAssetId() != null) { + joiner.add( + String.format( + "%squoteAssetId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getQuoteAssetId())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/RatesResponse.java b/src/main/java/com/fireblocks/sdk/model/RatesResponse.java new file mode 100644 index 00000000..a1eef95d --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/RatesResponse.java @@ -0,0 +1,230 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto 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; + +/** RatesResponse */ +@JsonPropertyOrder({RatesResponse.JSON_PROPERTY_RATES, RatesResponse.JSON_PROPERTY_ERRORS}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class RatesResponse { + public static final String JSON_PROPERTY_RATES = "rates"; + @jakarta.annotation.Nonnull private List rates; + + public static final String JSON_PROPERTY_ERRORS = "errors"; + @jakarta.annotation.Nonnull private List errors; + + public RatesResponse() {} + + @JsonCreator + public RatesResponse( + @JsonProperty(value = JSON_PROPERTY_RATES, required = true) List rates, + @JsonProperty(value = JSON_PROPERTY_ERRORS, required = true) + List errors) { + this.rates = rates; + this.errors = errors; + } + + public RatesResponse rates(@jakarta.annotation.Nonnull List rates) { + this.rates = rates; + return this; + } + + public RatesResponse addRatesItem(Rate ratesItem) { + if (this.rates == null) { + this.rates = new ArrayList<>(); + } + this.rates.add(ratesItem); + return this; + } + + /** + * List of indicative rates returned for the requested asset pair. + * + * @return rates + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_RATES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getRates() { + return rates; + } + + @JsonProperty(JSON_PROPERTY_RATES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setRates(@jakarta.annotation.Nonnull List rates) { + this.rates = rates; + } + + public RatesResponse errors(@jakarta.annotation.Nonnull List errors) { + this.errors = errors; + return this; + } + + public RatesResponse addErrorsItem(ScopeItemFailure errorsItem) { + if (this.errors == null) { + this.errors = new ArrayList<>(); + } + this.errors.add(errorsItem); + return this; + } + + /** + * Partial failures encountered while requesting rates. Empty when all rate requests succeed. + * + * @return errors + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_ERRORS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getErrors() { + return errors; + } + + @JsonProperty(JSON_PROPERTY_ERRORS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setErrors(@jakarta.annotation.Nonnull List errors) { + this.errors = errors; + } + + /** Return true if this RatesResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RatesResponse ratesResponse = (RatesResponse) o; + return Objects.equals(this.rates, ratesResponse.rates) + && Objects.equals(this.errors, ratesResponse.errors); + } + + @Override + public int hashCode() { + return Objects.hash(rates, errors); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RatesResponse {\n"); + sb.append(" rates: ").append(toIndentedString(rates)).append("\n"); + sb.append(" errors: ").append(toIndentedString(errors)).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 `rates` to the URL query string + if (getRates() != null) { + for (int i = 0; i < getRates().size(); i++) { + if (getRates().get(i) != null) { + joiner.add( + getRates() + .get(i) + .toUrlQueryString( + String.format( + "%srates%s%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", + containerPrefix, + i, + containerSuffix)))); + } + } + } + + // add `errors` to the URL query string + if (getErrors() != null) { + for (int i = 0; i < getErrors().size(); i++) { + if (getErrors().get(i) != null) { + joiner.add( + getErrors() + .get(i) + .toUrlQueryString( + String.format( + "%serrors%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/ReasonForPaymentEnum.java b/src/main/java/com/fireblocks/sdk/model/ReasonForPaymentEnum.java new file mode 100644 index 00000000..a76084f1 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/ReasonForPaymentEnum.java @@ -0,0 +1,124 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * The reason or purpose of the payment. Used by providers (e.g. CPN) that require a categorical + * reason for cross-border payment compliance and reporting. Optional at the API level; runtime + * enforcement is handled by the calling service against the provider's requirements. + */ +public enum ReasonForPaymentEnum { + INVOICE_PAYMENT("INVOICE_PAYMENT"), + + SERVICES_PAYMENT("SERVICES_PAYMENT"), + + SOFTWARE_PAYMENT("SOFTWARE_PAYMENT"), + + IMPORTED_GOODS_PAYMENT("IMPORTED_GOODS_PAYMENT"), + + TRAVEL_SERVICES("TRAVEL_SERVICES"), + + TRANSFER_TO_OWN_ACCOUNT("TRANSFER_TO_OWN_ACCOUNT"), + + LOAN_REPAYMENT("LOAN_REPAYMENT"), + + PAYROLL("PAYROLL"), + + PROPERTY_RENTAL("PROPERTY_RENTAL"), + + INFORMATION_SERVICE_CHARGES("INFORMATION_SERVICE_CHARGES"), + + ADVERTISING_AND_PUBLIC_RELATIONS("ADVERTISING_AND_PUBLIC_RELATIONS"), + + INTELLECTUAL_PROPERTY_FEES("INTELLECTUAL_PROPERTY_FEES"), + + FINANCIAL_SERVICE_FEES("FINANCIAL_SERVICE_FEES"), + + ADVISORY_AND_TECHNICAL_FEES("ADVISORY_AND_TECHNICAL_FEES"), + + REPRESENTATIVE_OFFICE_EXPENSES("REPRESENTATIVE_OFFICE_EXPENSES"), + + TAX_PAYMENT("TAX_PAYMENT"), + + GOODS_TRANSPORTATION_FEES("GOODS_TRANSPORTATION_FEES"), + + CONSTRUCTION_EXPENSES("CONSTRUCTION_EXPENSES"), + + INSURANCE_PREMIUM("INSURANCE_PREMIUM"), + + GENERAL_GOODS_TRADE("GENERAL_GOODS_TRADE"), + + INSURANCE_CLAIMS_PAYMENT("INSURANCE_CLAIMS_PAYMENT"), + + FAMILY_REMITTANCE("FAMILY_REMITTANCE"), + + EDUCATION_EXPENSES("EDUCATION_EXPENSES"), + + MEDICAL_TREATMENT("MEDICAL_TREATMENT"), + + DONATIONS("DONATIONS"), + + MUTUAL_FUND_INVESTMENT("MUTUAL_FUND_INVESTMENT"), + + CURRENCY_EXCHANGE("CURRENCY_EXCHANGE"), + + ADVANCE_GOODS_PAYMENT("ADVANCE_GOODS_PAYMENT"), + + MERCHANT_SETTLEMENT("MERCHANT_SETTLEMENT"), + + REPATRIATION_FUND_SETTLEMENT("REPATRIATION_FUND_SETTLEMENT"); + + private String value; + + ReasonForPaymentEnum(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static ReasonForPaymentEnum fromValue(String value) { + for (ReasonForPaymentEnum b : ReasonForPaymentEnum.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/QuoteFailure.java b/src/main/java/com/fireblocks/sdk/model/ScopeItemFailure.java similarity index 85% rename from src/main/java/com/fireblocks/sdk/model/QuoteFailure.java rename to src/main/java/com/fireblocks/sdk/model/ScopeItemFailure.java index b4d2e64f..eca59224 100644 --- a/src/main/java/com/fireblocks/sdk/model/QuoteFailure.java +++ b/src/main/java/com/fireblocks/sdk/model/ScopeItemFailure.java @@ -21,16 +21,16 @@ import java.util.Objects; import java.util.StringJoiner; -/** QuoteFailure */ +/** ScopeItemFailure */ @JsonPropertyOrder({ - QuoteFailure.JSON_PROPERTY_PROVIDER_ID, - QuoteFailure.JSON_PROPERTY_ACCOUNT_ID, - QuoteFailure.JSON_PROPERTY_ERROR + ScopeItemFailure.JSON_PROPERTY_PROVIDER_ID, + ScopeItemFailure.JSON_PROPERTY_ACCOUNT_ID, + ScopeItemFailure.JSON_PROPERTY_ERROR }) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.14.0") -public class QuoteFailure { +public class ScopeItemFailure { public static final String JSON_PROPERTY_PROVIDER_ID = "providerId"; @jakarta.annotation.Nonnull private String providerId; @@ -40,23 +40,23 @@ public class QuoteFailure { public static final String JSON_PROPERTY_ERROR = "error"; @jakarta.annotation.Nonnull private TradingErrorSchema error; - public QuoteFailure() {} + public ScopeItemFailure() {} @JsonCreator - public QuoteFailure( + public ScopeItemFailure( @JsonProperty(value = JSON_PROPERTY_PROVIDER_ID, required = true) String providerId, @JsonProperty(value = JSON_PROPERTY_ERROR, required = true) TradingErrorSchema error) { this.providerId = providerId; this.error = error; } - public QuoteFailure providerId(@jakarta.annotation.Nonnull String providerId) { + public ScopeItemFailure providerId(@jakarta.annotation.Nonnull String providerId) { this.providerId = providerId; return this; } /** - * Identifier of the provider for which the quote request failed. + * Identifier of the provider for which the request failed. * * @return providerId */ @@ -73,13 +73,13 @@ public void setProviderId(@jakarta.annotation.Nonnull String providerId) { this.providerId = providerId; } - public QuoteFailure accountId(@jakarta.annotation.Nullable String accountId) { + public ScopeItemFailure accountId(@jakarta.annotation.Nullable String accountId) { this.accountId = accountId; return this; } /** - * Identifier of the account for which the quote request failed (optional). + * Identifier of the account for which the request failed (optional). * * @return accountId */ @@ -96,7 +96,7 @@ public void setAccountId(@jakarta.annotation.Nullable String accountId) { this.accountId = accountId; } - public QuoteFailure error(@jakarta.annotation.Nonnull TradingErrorSchema error) { + public ScopeItemFailure error(@jakarta.annotation.Nonnull TradingErrorSchema error) { this.error = error; return this; } @@ -119,7 +119,7 @@ public void setError(@jakarta.annotation.Nonnull TradingErrorSchema error) { this.error = error; } - /** Return true if this QuoteFailure object is equal to o. */ + /** Return true if this ScopeItemFailure object is equal to o. */ @Override public boolean equals(Object o) { if (this == o) { @@ -128,10 +128,10 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) { return false; } - QuoteFailure quoteFailure = (QuoteFailure) o; - return Objects.equals(this.providerId, quoteFailure.providerId) - && Objects.equals(this.accountId, quoteFailure.accountId) - && Objects.equals(this.error, quoteFailure.error); + ScopeItemFailure scopeItemFailure = (ScopeItemFailure) o; + return Objects.equals(this.providerId, scopeItemFailure.providerId) + && Objects.equals(this.accountId, scopeItemFailure.accountId) + && Objects.equals(this.error, scopeItemFailure.error); } @Override @@ -142,7 +142,7 @@ public int hashCode() { @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class QuoteFailure {\n"); + sb.append("class ScopeItemFailure {\n"); sb.append(" providerId: ").append(toIndentedString(providerId)).append("\n"); sb.append(" accountId: ").append(toIndentedString(accountId)).append("\n"); sb.append(" error: ").append(toIndentedString(error)).append("\n"); diff --git a/src/main/java/com/fireblocks/sdk/model/CommittedQuoteType.java b/src/main/java/com/fireblocks/sdk/model/SourceOfFunds.java similarity index 61% rename from src/main/java/com/fireblocks/sdk/model/CommittedQuoteType.java rename to src/main/java/com/fireblocks/sdk/model/SourceOfFunds.java index 4d5f3056..4373b882 100644 --- a/src/main/java/com/fireblocks/sdk/model/CommittedQuoteType.java +++ b/src/main/java/com/fireblocks/sdk/model/SourceOfFunds.java @@ -13,7 +13,6 @@ 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; @@ -21,47 +20,46 @@ import java.util.Objects; import java.util.StringJoiner; -/** CommittedQuoteType */ -@JsonPropertyOrder({CommittedQuoteType.JSON_PROPERTY_TYPE}) +/** + * Information about the source and purpose of the funds being transacted. Used by providers that + * require additional context for compliance and reporting (e.g. CPN cross-border payments). + */ +@JsonPropertyOrder({SourceOfFunds.JSON_PROPERTY_REASON_FOR_PAYMENT}) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.14.0") -public class CommittedQuoteType { - public static final String JSON_PROPERTY_TYPE = "type"; - @jakarta.annotation.Nonnull private CommittedQuoteEnum type; - - public CommittedQuoteType() {} +public class SourceOfFunds { + public static final String JSON_PROPERTY_REASON_FOR_PAYMENT = "reasonForPayment"; + @jakarta.annotation.Nullable private ReasonForPaymentEnum reasonForPayment; - @JsonCreator - public CommittedQuoteType( - @JsonProperty(value = JSON_PROPERTY_TYPE, required = true) CommittedQuoteEnum type) { - this.type = type; - } + public SourceOfFunds() {} - public CommittedQuoteType type(@jakarta.annotation.Nonnull CommittedQuoteEnum type) { - this.type = type; + public SourceOfFunds reasonForPayment( + @jakarta.annotation.Nullable ReasonForPaymentEnum reasonForPayment) { + this.reasonForPayment = reasonForPayment; return this; } /** - * Get type + * Get reasonForPayment * - * @return type + * @return reasonForPayment */ - @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_TYPE) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public CommittedQuoteEnum getType() { - return type; + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_REASON_FOR_PAYMENT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public ReasonForPaymentEnum getReasonForPayment() { + return reasonForPayment; } - @JsonProperty(JSON_PROPERTY_TYPE) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setType(@jakarta.annotation.Nonnull CommittedQuoteEnum type) { - this.type = type; + @JsonProperty(JSON_PROPERTY_REASON_FOR_PAYMENT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setReasonForPayment( + @jakarta.annotation.Nullable ReasonForPaymentEnum reasonForPayment) { + this.reasonForPayment = reasonForPayment; } - /** Return true if this CommittedQuoteType object is equal to o. */ + /** Return true if this SourceOfFunds object is equal to o. */ @Override public boolean equals(Object o) { if (this == o) { @@ -70,20 +68,20 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) { return false; } - CommittedQuoteType committedQuoteType = (CommittedQuoteType) o; - return Objects.equals(this.type, committedQuoteType.type); + SourceOfFunds sourceOfFunds = (SourceOfFunds) o; + return Objects.equals(this.reasonForPayment, sourceOfFunds.reasonForPayment); } @Override public int hashCode() { - return Objects.hash(type); + return Objects.hash(reasonForPayment); } @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class CommittedQuoteType {\n"); - sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("class SourceOfFunds {\n"); + sb.append(" reasonForPayment: ").append(toIndentedString(reasonForPayment)).append("\n"); sb.append("}"); return sb.toString(); } @@ -131,14 +129,14 @@ public String toUrlQueryString(String prefix) { StringJoiner joiner = new StringJoiner("&"); - // add `type` to the URL query string - if (getType() != null) { + // add `reasonForPayment` to the URL query string + if (getReasonForPayment() != null) { joiner.add( String.format( - "%stype%s=%s", + "%sreasonForPayment%s=%s", prefix, suffix, - ApiClient.urlEncode(ApiClient.valueToString(getType())))); + ApiClient.urlEncode(ApiClient.valueToString(getReasonForPayment())))); } return joiner.toString(); diff --git a/src/main/java/com/fireblocks/sdk/model/TRLinkCreateCustomerRequest.java b/src/main/java/com/fireblocks/sdk/model/TRLinkCreateCustomerRequest.java index 5c41cc51..6e47d0d0 100644 --- a/src/main/java/com/fireblocks/sdk/model/TRLinkCreateCustomerRequest.java +++ b/src/main/java/com/fireblocks/sdk/model/TRLinkCreateCustomerRequest.java @@ -65,7 +65,7 @@ public class TRLinkCreateCustomerRequest { @jakarta.annotation.Nullable private List vaults; public static final String JSON_PROPERTY_TR_PRIMARY_PURPOSE = "trPrimaryPurpose"; - @jakarta.annotation.Nullable private String trPrimaryPurpose; + @jakarta.annotation.Nullable private String trPrimaryPurpose = "trlink"; public TRLinkCreateCustomerRequest() {} @@ -204,7 +204,16 @@ public TRLinkCreateCustomerRequest nationalIdentification( } /** - * National identification as JSON string + * National identification, sent as a JSON-encoded string. The server normalizes input into a + * compact JSON with these optional keys: `nationalIdentifier`, + * `nationalIdentifierType` (e.g. `LEIX` for an LEI), + * `countryOfIssue` (ISO 3166-1 alpha-2), `registrationAuthority`. If the + * input is not a JSON object, it is wrapped as + * `{\"nationalIdentifier\":\"<value>\"}`; if the value + * matches the LEI format, `nationalIdentifierType` is set to `LEIX` + * automatically and `countryOfIssue` defaults to this request's + * `countryOfRegistration` if not provided. The compacted JSON must be 240 characters + * or fewer. On read, the value is returned exactly as stored. * * @return nationalIdentification */ @@ -284,7 +293,8 @@ public TRLinkCreateCustomerRequest trPrimaryPurpose( } /** - * Primary purpose for Travel Rule compliance (enum value) + * Primary Travel Rule role for this customer; determines how the customer's Travel Rule + * messages are routed. Valid values: `notabene`, `trlink`. * * @return trPrimaryPurpose */ diff --git a/src/main/java/com/fireblocks/sdk/model/TRLinkCustomerResponse.java b/src/main/java/com/fireblocks/sdk/model/TRLinkCustomerResponse.java index 86313f27..85fa0e07 100644 --- a/src/main/java/com/fireblocks/sdk/model/TRLinkCustomerResponse.java +++ b/src/main/java/com/fireblocks/sdk/model/TRLinkCustomerResponse.java @@ -29,7 +29,6 @@ /** TRLinkCustomerResponse */ @JsonPropertyOrder({ TRLinkCustomerResponse.JSON_PROPERTY_ID, - TRLinkCustomerResponse.JSON_PROPERTY_TENANT_ID, TRLinkCustomerResponse.JSON_PROPERTY_DISCOVERABLE, TRLinkCustomerResponse.JSON_PROPERTY_SHORT_NAME, TRLinkCustomerResponse.JSON_PROPERTY_FULL_LEGAL_NAME, @@ -49,9 +48,6 @@ public class TRLinkCustomerResponse { public static final String JSON_PROPERTY_ID = "id"; @jakarta.annotation.Nonnull private UUID id; - public static final String JSON_PROPERTY_TENANT_ID = "tenantId"; - @jakarta.annotation.Nonnull private UUID tenantId; - public static final String JSON_PROPERTY_DISCOVERABLE = "discoverable"; @jakarta.annotation.Nullable private TRLinkDiscoverableStatus discoverable; @@ -77,7 +73,7 @@ public class TRLinkCustomerResponse { @jakarta.annotation.Nullable private List vaults; public static final String JSON_PROPERTY_TR_PRIMARY_PURPOSE = "trPrimaryPurpose"; - @jakarta.annotation.Nullable private String trPrimaryPurpose; + @jakarta.annotation.Nonnull private String trPrimaryPurpose; public static final String JSON_PROPERTY_CREATE_DATE = "createDate"; @jakarta.annotation.Nonnull private OffsetDateTime createDate; @@ -90,7 +86,6 @@ public TRLinkCustomerResponse() {} @JsonCreator public TRLinkCustomerResponse( @JsonProperty(value = JSON_PROPERTY_ID, required = true) UUID id, - @JsonProperty(value = JSON_PROPERTY_TENANT_ID, required = true) UUID tenantId, @JsonProperty(value = JSON_PROPERTY_DISCOVERABLE, required = true) TRLinkDiscoverableStatus discoverable, @JsonProperty(value = JSON_PROPERTY_SHORT_NAME, required = true) String shortName, @@ -98,16 +93,18 @@ public TRLinkCustomerResponse( String fullLegalName, @JsonProperty(value = JSON_PROPERTY_COUNTRY_OF_REGISTRATION, required = true) String countryOfRegistration, + @JsonProperty(value = JSON_PROPERTY_TR_PRIMARY_PURPOSE, required = true) + String trPrimaryPurpose, @JsonProperty(value = JSON_PROPERTY_CREATE_DATE, required = true) OffsetDateTime createDate, @JsonProperty(value = JSON_PROPERTY_LAST_UPDATE, required = true) OffsetDateTime lastUpdate) { this.id = id; - this.tenantId = tenantId; this.discoverable = discoverable; this.shortName = shortName; this.fullLegalName = fullLegalName; this.countryOfRegistration = countryOfRegistration; + this.trPrimaryPurpose = trPrimaryPurpose; this.createDate = createDate; this.lastUpdate = lastUpdate; } @@ -135,29 +132,6 @@ public void setId(@jakarta.annotation.Nonnull UUID id) { this.id = id; } - public TRLinkCustomerResponse tenantId(@jakarta.annotation.Nonnull UUID tenantId) { - this.tenantId = tenantId; - return this; - } - - /** - * Fireblocks tenant ID - * - * @return tenantId - */ - @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_TENANT_ID) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public UUID getTenantId() { - return tenantId; - } - - @JsonProperty(JSON_PROPERTY_TENANT_ID) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setTenantId(@jakarta.annotation.Nonnull UUID tenantId) { - this.tenantId = tenantId; - } - public TRLinkCustomerResponse discoverable( @jakarta.annotation.Nullable TRLinkDiscoverableStatus discoverable) { this.discoverable = discoverable; @@ -285,7 +259,11 @@ public TRLinkCustomerResponse nationalIdentification( } /** - * National identification (serialized as string) + * National identification, returned exactly as stored: a compact, whitespace-free JSON-encoded + * string with these optional keys (in this order): `nationalIdentifier`, + * `nationalIdentifierType` (e.g. `LEIX` for an LEI), + * `countryOfIssue` (ISO 3166-1 alpha-2), `registrationAuthority`. Maximum + * length is 240 characters. * * @return nationalIdentification */ @@ -359,26 +337,27 @@ public void setVaults(@jakarta.annotation.Nullable List vaults) { } public TRLinkCustomerResponse trPrimaryPurpose( - @jakarta.annotation.Nullable String trPrimaryPurpose) { + @jakarta.annotation.Nonnull String trPrimaryPurpose) { this.trPrimaryPurpose = trPrimaryPurpose; return this; } /** - * Primary purpose for Travel Rule compliance + * Primary Travel Rule role for this customer; determines how the customer's Travel Rule + * messages are routed. Valid values: `notabene`, `trlink`. * * @return trPrimaryPurpose */ - @jakarta.annotation.Nullable + @jakarta.annotation.Nonnull @JsonProperty(JSON_PROPERTY_TR_PRIMARY_PURPOSE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getTrPrimaryPurpose() { return trPrimaryPurpose; } @JsonProperty(JSON_PROPERTY_TR_PRIMARY_PURPOSE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setTrPrimaryPurpose(@jakarta.annotation.Nullable String trPrimaryPurpose) { + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setTrPrimaryPurpose(@jakarta.annotation.Nonnull String trPrimaryPurpose) { this.trPrimaryPurpose = trPrimaryPurpose; } @@ -441,7 +420,6 @@ public boolean equals(Object o) { } TRLinkCustomerResponse trLinkCustomerResponse = (TRLinkCustomerResponse) o; return Objects.equals(this.id, trLinkCustomerResponse.id) - && Objects.equals(this.tenantId, trLinkCustomerResponse.tenantId) && Objects.equals(this.discoverable, trLinkCustomerResponse.discoverable) && Objects.equals(this.shortName, trLinkCustomerResponse.shortName) && Objects.equals(this.fullLegalName, trLinkCustomerResponse.fullLegalName) @@ -462,7 +440,6 @@ public boolean equals(Object o) { public int hashCode() { return Objects.hash( id, - tenantId, discoverable, shortName, fullLegalName, @@ -481,7 +458,6 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class TRLinkCustomerResponse {\n"); sb.append(" id: ").append(toIndentedString(id)).append("\n"); - sb.append(" tenantId: ").append(toIndentedString(tenantId)).append("\n"); sb.append(" discoverable: ").append(toIndentedString(discoverable)).append("\n"); sb.append(" shortName: ").append(toIndentedString(shortName)).append("\n"); sb.append(" fullLegalName: ").append(toIndentedString(fullLegalName)).append("\n"); @@ -556,16 +532,6 @@ public String toUrlQueryString(String prefix) { prefix, suffix, ApiClient.urlEncode(ApiClient.valueToString(getId())))); } - // add `tenantId` to the URL query string - if (getTenantId() != null) { - joiner.add( - String.format( - "%stenantId%s=%s", - prefix, - suffix, - ApiClient.urlEncode(ApiClient.valueToString(getTenantId())))); - } - // add `discoverable` to the URL query string if (getDiscoverable() != null) { joiner.add( diff --git a/src/main/java/com/fireblocks/sdk/model/TRLinkUpdateCustomerRequest.java b/src/main/java/com/fireblocks/sdk/model/TRLinkUpdateCustomerRequest.java index 5f463793..3031daf0 100644 --- a/src/main/java/com/fireblocks/sdk/model/TRLinkUpdateCustomerRequest.java +++ b/src/main/java/com/fireblocks/sdk/model/TRLinkUpdateCustomerRequest.java @@ -13,6 +13,7 @@ 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; @@ -43,7 +44,7 @@ public class TRLinkUpdateCustomerRequest { @jakarta.annotation.Nullable private TRLinkDiscoverableStatus discoverable; public static final String JSON_PROPERTY_SHORT_NAME = "shortName"; - @jakarta.annotation.Nullable private String shortName; + @jakarta.annotation.Nonnull private String shortName; public static final String JSON_PROPERTY_FULL_LEGAL_NAME = "fullLegalName"; @jakarta.annotation.Nullable private String fullLegalName; @@ -68,6 +69,12 @@ public class TRLinkUpdateCustomerRequest { public TRLinkUpdateCustomerRequest() {} + @JsonCreator + public TRLinkUpdateCustomerRequest( + @JsonProperty(value = JSON_PROPERTY_SHORT_NAME, required = true) String shortName) { + this.shortName = shortName; + } + public TRLinkUpdateCustomerRequest discoverable( @jakarta.annotation.Nullable TRLinkDiscoverableStatus discoverable) { this.discoverable = discoverable; @@ -93,26 +100,26 @@ public void setDiscoverable( this.discoverable = discoverable; } - public TRLinkUpdateCustomerRequest shortName(@jakarta.annotation.Nullable String shortName) { + public TRLinkUpdateCustomerRequest shortName(@jakarta.annotation.Nonnull String shortName) { this.shortName = shortName; return this; } /** - * Short display name + * Short display name (required) * * @return shortName */ - @jakarta.annotation.Nullable + @jakarta.annotation.Nonnull @JsonProperty(JSON_PROPERTY_SHORT_NAME) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getShortName() { return shortName; } @JsonProperty(JSON_PROPERTY_SHORT_NAME) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setShortName(@jakarta.annotation.Nullable String shortName) { + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setShortName(@jakarta.annotation.Nonnull String shortName) { this.shortName = shortName; } @@ -197,7 +204,17 @@ public TRLinkUpdateCustomerRequest nationalIdentification( } /** - * National identification as JSON string + * National identification, sent as a JSON-encoded string. The server normalizes input into a + * compact JSON with these optional keys: `nationalIdentifier`, + * `nationalIdentifierType` (e.g. `LEIX` for an LEI), + * `countryOfIssue` (ISO 3166-1 alpha-2), `registrationAuthority`. If the + * input is not a JSON object, it is wrapped as + * `{\"nationalIdentifier\":\"<value>\"}`; if the value + * matches the LEI format, `nationalIdentifierType` is set to `LEIX` + * automatically and `countryOfIssue` defaults to this request's + * `countryOfRegistration` if not provided. The compacted JSON must be 240 characters + * or fewer. Omitting this field leaves the stored value unchanged; setting it to + * `null` clears it. On read, the value is returned exactly as stored. * * @return nationalIdentification */ @@ -277,7 +294,9 @@ public TRLinkUpdateCustomerRequest trPrimaryPurpose( } /** - * Primary purpose for Travel Rule compliance + * Primary Travel Rule role for this customer; determines how the customer's Travel Rule + * messages are routed. Valid values: `notabene`, `trlink`. Omit the field + * to leave the stored value unchanged. * * @return trPrimaryPurpose */ diff --git a/src/main/java/com/fireblocks/sdk/model/CircleGatewayWalletInfoResponse.java b/src/main/java/com/fireblocks/sdk/model/UsdcGatewayWalletInfoResponse.java similarity index 84% rename from src/main/java/com/fireblocks/sdk/model/CircleGatewayWalletInfoResponse.java rename to src/main/java/com/fireblocks/sdk/model/UsdcGatewayWalletInfoResponse.java index dbd34dc8..90ea840a 100644 --- a/src/main/java/com/fireblocks/sdk/model/CircleGatewayWalletInfoResponse.java +++ b/src/main/java/com/fireblocks/sdk/model/UsdcGatewayWalletInfoResponse.java @@ -24,25 +24,25 @@ import java.util.Objects; import java.util.StringJoiner; -/** CircleGatewayWalletInfoResponse */ +/** UsdcGatewayWalletInfoResponse */ @JsonPropertyOrder({ - CircleGatewayWalletInfoResponse.JSON_PROPERTY_WALLET_ID, - CircleGatewayWalletInfoResponse.JSON_PROPERTY_TYPE, - CircleGatewayWalletInfoResponse.JSON_PROPERTY_STATUS, - CircleGatewayWalletInfoResponse.JSON_PROPERTY_SYMBOL, - CircleGatewayWalletInfoResponse.JSON_PROPERTY_ASSET_IDS + UsdcGatewayWalletInfoResponse.JSON_PROPERTY_WALLET_ID, + UsdcGatewayWalletInfoResponse.JSON_PROPERTY_TYPE, + UsdcGatewayWalletInfoResponse.JSON_PROPERTY_STATUS, + UsdcGatewayWalletInfoResponse.JSON_PROPERTY_SYMBOL, + UsdcGatewayWalletInfoResponse.JSON_PROPERTY_ASSET_IDS }) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.14.0") -public class CircleGatewayWalletInfoResponse { +public class UsdcGatewayWalletInfoResponse { public static final String JSON_PROPERTY_WALLET_ID = "walletId"; @jakarta.annotation.Nonnull private String walletId; public static final String JSON_PROPERTY_TYPE = "type"; @jakarta.annotation.Nonnull private String type; - /** Current activation status of the Circle Gateway wallet */ + /** Current activation status of the USDC Gateway wallet */ public enum StatusEnum { ACTIVATED(String.valueOf("ACTIVATED")), @@ -84,10 +84,10 @@ public static StatusEnum fromValue(String value) { public static final String JSON_PROPERTY_ASSET_IDS = "assetIds"; @jakarta.annotation.Nonnull private List assetIds; - public CircleGatewayWalletInfoResponse() {} + public UsdcGatewayWalletInfoResponse() {} @JsonCreator - public CircleGatewayWalletInfoResponse( + public UsdcGatewayWalletInfoResponse( @JsonProperty(value = JSON_PROPERTY_WALLET_ID, required = true) String walletId, @JsonProperty(value = JSON_PROPERTY_TYPE, required = true) String type, @JsonProperty(value = JSON_PROPERTY_STATUS, required = true) StatusEnum status, @@ -100,13 +100,13 @@ public CircleGatewayWalletInfoResponse( this.assetIds = assetIds; } - public CircleGatewayWalletInfoResponse walletId(@jakarta.annotation.Nonnull String walletId) { + public UsdcGatewayWalletInfoResponse walletId(@jakarta.annotation.Nonnull String walletId) { this.walletId = walletId; return this; } /** - * The Circle Gateway wallet identifier + * The USDC Gateway wallet identifier * * @return walletId */ @@ -123,13 +123,13 @@ public void setWalletId(@jakarta.annotation.Nonnull String walletId) { this.walletId = walletId; } - public CircleGatewayWalletInfoResponse type(@jakarta.annotation.Nonnull String type) { + public UsdcGatewayWalletInfoResponse type(@jakarta.annotation.Nonnull String type) { this.type = type; return this; } /** - * The Circle Gateway provider identifier + * The USDC Gateway provider identifier * * @return type */ @@ -146,13 +146,13 @@ public void setType(@jakarta.annotation.Nonnull String type) { this.type = type; } - public CircleGatewayWalletInfoResponse status(@jakarta.annotation.Nonnull StatusEnum status) { + public UsdcGatewayWalletInfoResponse status(@jakarta.annotation.Nonnull StatusEnum status) { this.status = status; return this; } /** - * Current activation status of the Circle Gateway wallet + * Current activation status of the USDC Gateway wallet * * @return status */ @@ -169,7 +169,7 @@ public void setStatus(@jakarta.annotation.Nonnull StatusEnum status) { this.status = status; } - public CircleGatewayWalletInfoResponse symbol(@jakarta.annotation.Nonnull String symbol) { + public UsdcGatewayWalletInfoResponse symbol(@jakarta.annotation.Nonnull String symbol) { this.symbol = symbol; return this; } @@ -192,13 +192,13 @@ public void setSymbol(@jakarta.annotation.Nonnull String symbol) { this.symbol = symbol; } - public CircleGatewayWalletInfoResponse assetIds( + public UsdcGatewayWalletInfoResponse assetIds( @jakarta.annotation.Nonnull List assetIds) { this.assetIds = assetIds; return this; } - public CircleGatewayWalletInfoResponse addAssetIdsItem(String assetIdsItem) { + public UsdcGatewayWalletInfoResponse addAssetIdsItem(String assetIdsItem) { if (this.assetIds == null) { this.assetIds = new ArrayList<>(); } @@ -224,7 +224,7 @@ public void setAssetIds(@jakarta.annotation.Nonnull List assetIds) { this.assetIds = assetIds; } - /** Return true if this CircleGatewayWalletInfoResponse object is equal to o. */ + /** Return true if this UsdcGatewayWalletInfoResponse object is equal to o. */ @Override public boolean equals(Object o) { if (this == o) { @@ -233,13 +233,13 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) { return false; } - CircleGatewayWalletInfoResponse circleGatewayWalletInfoResponse = - (CircleGatewayWalletInfoResponse) o; - return Objects.equals(this.walletId, circleGatewayWalletInfoResponse.walletId) - && Objects.equals(this.type, circleGatewayWalletInfoResponse.type) - && Objects.equals(this.status, circleGatewayWalletInfoResponse.status) - && Objects.equals(this.symbol, circleGatewayWalletInfoResponse.symbol) - && Objects.equals(this.assetIds, circleGatewayWalletInfoResponse.assetIds); + UsdcGatewayWalletInfoResponse usdcGatewayWalletInfoResponse = + (UsdcGatewayWalletInfoResponse) o; + return Objects.equals(this.walletId, usdcGatewayWalletInfoResponse.walletId) + && Objects.equals(this.type, usdcGatewayWalletInfoResponse.type) + && Objects.equals(this.status, usdcGatewayWalletInfoResponse.status) + && Objects.equals(this.symbol, usdcGatewayWalletInfoResponse.symbol) + && Objects.equals(this.assetIds, usdcGatewayWalletInfoResponse.assetIds); } @Override @@ -250,7 +250,7 @@ public int hashCode() { @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class CircleGatewayWalletInfoResponse {\n"); + sb.append("class UsdcGatewayWalletInfoResponse {\n"); sb.append(" walletId: ").append(toIndentedString(walletId)).append("\n"); sb.append(" type: ").append(toIndentedString(type)).append("\n"); sb.append(" status: ").append(toIndentedString(status)).append("\n"); diff --git a/src/main/java/com/fireblocks/sdk/model/CircleGatewayWalletStatusResponse.java b/src/main/java/com/fireblocks/sdk/model/UsdcGatewayWalletStatusResponse.java similarity index 84% rename from src/main/java/com/fireblocks/sdk/model/CircleGatewayWalletStatusResponse.java rename to src/main/java/com/fireblocks/sdk/model/UsdcGatewayWalletStatusResponse.java index ac31c3bc..7270b28c 100644 --- a/src/main/java/com/fireblocks/sdk/model/CircleGatewayWalletStatusResponse.java +++ b/src/main/java/com/fireblocks/sdk/model/UsdcGatewayWalletStatusResponse.java @@ -22,19 +22,19 @@ import java.util.Objects; import java.util.StringJoiner; -/** CircleGatewayWalletStatusResponse */ +/** UsdcGatewayWalletStatusResponse */ @JsonPropertyOrder({ - CircleGatewayWalletStatusResponse.JSON_PROPERTY_WALLET_ID, - CircleGatewayWalletStatusResponse.JSON_PROPERTY_STATUS + UsdcGatewayWalletStatusResponse.JSON_PROPERTY_WALLET_ID, + UsdcGatewayWalletStatusResponse.JSON_PROPERTY_STATUS }) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.14.0") -public class CircleGatewayWalletStatusResponse { +public class UsdcGatewayWalletStatusResponse { public static final String JSON_PROPERTY_WALLET_ID = "walletId"; @jakarta.annotation.Nonnull private String walletId; - /** Current activation status of the Circle Gateway wallet */ + /** Current activation status of the USDC Gateway wallet */ public enum StatusEnum { ACTIVATED(String.valueOf("ACTIVATED")), @@ -70,23 +70,23 @@ public static StatusEnum fromValue(String value) { public static final String JSON_PROPERTY_STATUS = "status"; @jakarta.annotation.Nonnull private StatusEnum status; - public CircleGatewayWalletStatusResponse() {} + public UsdcGatewayWalletStatusResponse() {} @JsonCreator - public CircleGatewayWalletStatusResponse( + public UsdcGatewayWalletStatusResponse( @JsonProperty(value = JSON_PROPERTY_WALLET_ID, required = true) String walletId, @JsonProperty(value = JSON_PROPERTY_STATUS, required = true) StatusEnum status) { this.walletId = walletId; this.status = status; } - public CircleGatewayWalletStatusResponse walletId(@jakarta.annotation.Nonnull String walletId) { + public UsdcGatewayWalletStatusResponse walletId(@jakarta.annotation.Nonnull String walletId) { this.walletId = walletId; return this; } /** - * The Circle Gateway wallet identifier + * The USDC Gateway wallet identifier * * @return walletId */ @@ -103,13 +103,13 @@ public void setWalletId(@jakarta.annotation.Nonnull String walletId) { this.walletId = walletId; } - public CircleGatewayWalletStatusResponse status(@jakarta.annotation.Nonnull StatusEnum status) { + public UsdcGatewayWalletStatusResponse status(@jakarta.annotation.Nonnull StatusEnum status) { this.status = status; return this; } /** - * Current activation status of the Circle Gateway wallet + * Current activation status of the USDC Gateway wallet * * @return status */ @@ -126,7 +126,7 @@ public void setStatus(@jakarta.annotation.Nonnull StatusEnum status) { this.status = status; } - /** Return true if this CircleGatewayWalletStatusResponse object is equal to o. */ + /** Return true if this UsdcGatewayWalletStatusResponse object is equal to o. */ @Override public boolean equals(Object o) { if (this == o) { @@ -135,10 +135,10 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) { return false; } - CircleGatewayWalletStatusResponse circleGatewayWalletStatusResponse = - (CircleGatewayWalletStatusResponse) o; - return Objects.equals(this.walletId, circleGatewayWalletStatusResponse.walletId) - && Objects.equals(this.status, circleGatewayWalletStatusResponse.status); + UsdcGatewayWalletStatusResponse usdcGatewayWalletStatusResponse = + (UsdcGatewayWalletStatusResponse) o; + return Objects.equals(this.walletId, usdcGatewayWalletStatusResponse.walletId) + && Objects.equals(this.status, usdcGatewayWalletStatusResponse.status); } @Override @@ -149,7 +149,7 @@ public int hashCode() { @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class CircleGatewayWalletStatusResponse {\n"); + sb.append("class UsdcGatewayWalletStatusResponse {\n"); sb.append(" walletId: ").append(toIndentedString(walletId)).append("\n"); sb.append(" status: ").append(toIndentedString(status)).append("\n"); sb.append("}"); diff --git a/src/main/java/com/fireblocks/sdk/model/UtxoSelectionFilters.java b/src/main/java/com/fireblocks/sdk/model/UtxoSelectionFilters.java index af2bc58d..0dd094f8 100644 --- a/src/main/java/com/fireblocks/sdk/model/UtxoSelectionFilters.java +++ b/src/main/java/com/fireblocks/sdk/model/UtxoSelectionFilters.java @@ -32,9 +32,7 @@ UtxoSelectionFilters.JSON_PROPERTY_EXCLUDE_ANY_LABELS, UtxoSelectionFilters.JSON_PROPERTY_ADDRESS, UtxoSelectionFilters.JSON_PROPERTY_MIN_AMOUNT, - UtxoSelectionFilters.JSON_PROPERTY_MAX_AMOUNT, - UtxoSelectionFilters.JSON_PROPERTY_USE_CHANGE, - UtxoSelectionFilters.JSON_PROPERTY_USE_COINBASE + UtxoSelectionFilters.JSON_PROPERTY_MAX_AMOUNT }) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", @@ -58,12 +56,6 @@ public class UtxoSelectionFilters { public static final String JSON_PROPERTY_MAX_AMOUNT = "maxAmount"; @jakarta.annotation.Nullable private String maxAmount; - public static final String JSON_PROPERTY_USE_CHANGE = "useChange"; - @jakarta.annotation.Nullable private Boolean useChange; - - public static final String JSON_PROPERTY_USE_COINBASE = "useCoinbase"; - @jakarta.annotation.Nullable private Boolean useCoinbase; - public UtxoSelectionFilters() {} public UtxoSelectionFilters includeAllLabels( @@ -231,52 +223,6 @@ public void setMaxAmount(@jakarta.annotation.Nullable String maxAmount) { this.maxAmount = maxAmount; } - public UtxoSelectionFilters useChange(@jakarta.annotation.Nullable Boolean useChange) { - this.useChange = useChange; - return this; - } - - /** - * Set to false to exclude change UTXOs. Default is true. - * - * @return useChange - */ - @jakarta.annotation.Nullable - @JsonProperty(JSON_PROPERTY_USE_CHANGE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public Boolean getUseChange() { - return useChange; - } - - @JsonProperty(JSON_PROPERTY_USE_CHANGE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setUseChange(@jakarta.annotation.Nullable Boolean useChange) { - this.useChange = useChange; - } - - public UtxoSelectionFilters useCoinbase(@jakarta.annotation.Nullable Boolean useCoinbase) { - this.useCoinbase = useCoinbase; - return this; - } - - /** - * Set to false to exclude coinbase UTXOs. Default is true. - * - * @return useCoinbase - */ - @jakarta.annotation.Nullable - @JsonProperty(JSON_PROPERTY_USE_COINBASE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public Boolean getUseCoinbase() { - return useCoinbase; - } - - @JsonProperty(JSON_PROPERTY_USE_COINBASE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setUseCoinbase(@jakarta.annotation.Nullable Boolean useCoinbase) { - this.useCoinbase = useCoinbase; - } - /** Return true if this UtxoSelectionFilters object is equal to o. */ @Override public boolean equals(Object o) { @@ -292,9 +238,7 @@ public boolean equals(Object o) { && Objects.equals(this.excludeAnyLabels, utxoSelectionFilters.excludeAnyLabels) && Objects.equals(this.address, utxoSelectionFilters.address) && Objects.equals(this.minAmount, utxoSelectionFilters.minAmount) - && Objects.equals(this.maxAmount, utxoSelectionFilters.maxAmount) - && Objects.equals(this.useChange, utxoSelectionFilters.useChange) - && Objects.equals(this.useCoinbase, utxoSelectionFilters.useCoinbase); + && Objects.equals(this.maxAmount, utxoSelectionFilters.maxAmount); } @Override @@ -305,9 +249,7 @@ public int hashCode() { excludeAnyLabels, address, minAmount, - maxAmount, - useChange, - useCoinbase); + maxAmount); } @Override @@ -320,8 +262,6 @@ public String toString() { sb.append(" address: ").append(toIndentedString(address)).append("\n"); sb.append(" minAmount: ").append(toIndentedString(minAmount)).append("\n"); sb.append(" maxAmount: ").append(toIndentedString(maxAmount)).append("\n"); - sb.append(" useChange: ").append(toIndentedString(useChange)).append("\n"); - sb.append(" useCoinbase: ").append(toIndentedString(useCoinbase)).append("\n"); sb.append("}"); return sb.toString(); } @@ -450,26 +390,6 @@ public String toUrlQueryString(String prefix) { ApiClient.urlEncode(ApiClient.valueToString(getMaxAmount())))); } - // add `useChange` to the URL query string - if (getUseChange() != null) { - joiner.add( - String.format( - "%suseChange%s=%s", - prefix, - suffix, - ApiClient.urlEncode(ApiClient.valueToString(getUseChange())))); - } - - // add `useCoinbase` to the URL query string - if (getUseCoinbase() != null) { - joiner.add( - String.format( - "%suseCoinbase%s=%s", - prefix, - suffix, - ApiClient.urlEncode(ApiClient.valueToString(getUseCoinbase())))); - } - return joiner.toString(); } } diff --git a/src/main/java/com/fireblocks/sdk/model/UtxoSelectionParams.java b/src/main/java/com/fireblocks/sdk/model/UtxoSelectionParams.java index 4ae31a47..5bb7f2bd 100644 --- a/src/main/java/com/fireblocks/sdk/model/UtxoSelectionParams.java +++ b/src/main/java/com/fireblocks/sdk/model/UtxoSelectionParams.java @@ -13,9 +13,12 @@ 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; @@ -25,6 +28,7 @@ * be subject to changes. */ @JsonPropertyOrder({ + UtxoSelectionParams.JSON_PROPERTY_SELECTION_STRATEGY, UtxoSelectionParams.JSON_PROPERTY_FILTERS, UtxoSelectionParams.JSON_PROPERTY_INPUT_SELECTION }) @@ -32,6 +36,42 @@ value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.14.0") public class UtxoSelectionParams { + /** Optional override for the UTXO selection strategy configured at the vault/tenant level. */ + public enum SelectionStrategyEnum { + AMOUNT_ASC(String.valueOf("AMOUNT_ASC")), + + AMOUNT_DESC(String.valueOf("AMOUNT_DESC")); + + private String value; + + SelectionStrategyEnum(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static SelectionStrategyEnum fromValue(String value) { + for (SelectionStrategyEnum b : SelectionStrategyEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + } + + public static final String JSON_PROPERTY_SELECTION_STRATEGY = "selectionStrategy"; + @jakarta.annotation.Nullable private SelectionStrategyEnum selectionStrategy; + public static final String JSON_PROPERTY_FILTERS = "filters"; @jakarta.annotation.Nullable private UtxoSelectionFilters filters; @@ -40,6 +80,31 @@ public class UtxoSelectionParams { public UtxoSelectionParams() {} + public UtxoSelectionParams selectionStrategy( + @jakarta.annotation.Nullable SelectionStrategyEnum selectionStrategy) { + this.selectionStrategy = selectionStrategy; + return this; + } + + /** + * Optional override for the UTXO selection strategy configured at the vault/tenant level. + * + * @return selectionStrategy + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_SELECTION_STRATEGY) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public SelectionStrategyEnum getSelectionStrategy() { + return selectionStrategy; + } + + @JsonProperty(JSON_PROPERTY_SELECTION_STRATEGY) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setSelectionStrategy( + @jakarta.annotation.Nullable SelectionStrategyEnum selectionStrategy) { + this.selectionStrategy = selectionStrategy; + } + public UtxoSelectionParams filters(@jakarta.annotation.Nullable UtxoSelectionFilters filters) { this.filters = filters; return this; @@ -97,19 +162,23 @@ public boolean equals(Object o) { return false; } UtxoSelectionParams utxoSelectionParams = (UtxoSelectionParams) o; - return Objects.equals(this.filters, utxoSelectionParams.filters) + return Objects.equals(this.selectionStrategy, utxoSelectionParams.selectionStrategy) + && Objects.equals(this.filters, utxoSelectionParams.filters) && Objects.equals(this.inputSelection, utxoSelectionParams.inputSelection); } @Override public int hashCode() { - return Objects.hash(filters, inputSelection); + return Objects.hash(selectionStrategy, filters, inputSelection); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UtxoSelectionParams {\n"); + sb.append(" selectionStrategy: ") + .append(toIndentedString(selectionStrategy)) + .append("\n"); sb.append(" filters: ").append(toIndentedString(filters)).append("\n"); sb.append(" inputSelection: ").append(toIndentedString(inputSelection)).append("\n"); sb.append("}"); @@ -159,6 +228,16 @@ public String toUrlQueryString(String prefix) { StringJoiner joiner = new StringJoiner("&"); + // add `selectionStrategy` to the URL query string + if (getSelectionStrategy() != null) { + joiner.add( + String.format( + "%sselectionStrategy%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getSelectionStrategy())))); + } + // add `filters` to the URL query string if (getFilters() != null) { joiner.add(getFilters().toUrlQueryString(prefix + "filters" + suffix)); diff --git a/src/test/java/com/fireblocks/sdk/FireblocksTest.java b/src/test/java/com/fireblocks/sdk/FireblocksTest.java index f5190107..495391fb 100644 --- a/src/test/java/com/fireblocks/sdk/FireblocksTest.java +++ b/src/test/java/com/fireblocks/sdk/FireblocksTest.java @@ -501,6 +501,14 @@ public void testGetGasStationsApi() { Assert.assertSame(gasStations, fireblocks.gasStations()); } + @Test + public void testGetGenieBetaApi() { + setupFireblocks(true, null, null); + GenieBetaApi genieBeta = fireblocks.genieBeta(); + Assert.assertNotNull(genieBeta); + Assert.assertSame(genieBeta, fireblocks.genieBeta()); + } + @Test public void testGetInternalWalletsApi() { setupFireblocks(true, null, null); diff --git a/src/test/java/com/fireblocks/sdk/api/ComplianceApiTest.java b/src/test/java/com/fireblocks/sdk/api/ComplianceApiTest.java index 9155bccd..55344719 100644 --- a/src/test/java/com/fireblocks/sdk/api/ComplianceApiTest.java +++ b/src/test/java/com/fireblocks/sdk/api/ComplianceApiTest.java @@ -26,6 +26,7 @@ import com.fireblocks.sdk.model.AddressRegistryVaultListOrder; import com.fireblocks.sdk.model.AmlVerdictManualRequest; import com.fireblocks.sdk.model.AmlVerdictManualResponse; +import com.fireblocks.sdk.model.ArsConfigResponse; import com.fireblocks.sdk.model.AssignVaultsToLegalEntityRequest; import com.fireblocks.sdk.model.AssignVaultsToLegalEntityResponse; import com.fireblocks.sdk.model.ByorkConfigResponse; @@ -59,6 +60,21 @@ public class ComplianceApiTest { private final ComplianceApi api = new ComplianceApi(); + /** + * Activate ARS (Address Registry Screening) + * + *

Activates ARS (Address Registry Screening) for the authenticated tenant (sets + * config.active to true). Once activated, ARS screening applies to matching transactions. + * + * @throws ApiException if the Api call fails + */ + @Test + public void activateArsConfigTest() throws ApiException { + String idempotencyKey = null; + CompletableFuture> response = + api.activateArsConfig(idempotencyKey); + } + /** * Activate BYORK Light * @@ -125,6 +141,22 @@ public void createCounterpartyGroupTest() throws ApiException { api.createCounterpartyGroup(createCounterpartyGroupRequest, idempotencyKey); } + /** + * Deactivate ARS (Address Registry Screening) + * + *

Deactivates ARS (Address Registry Screening) for the authenticated tenant (sets + * config.active to false). Once deactivated, ARS screening no longer applies until activated + * again. + * + * @throws ApiException if the Api call fails + */ + @Test + public void deactivateArsConfigTest() throws ApiException { + String idempotencyKey = null; + CompletableFuture> response = + api.deactivateArsConfig(idempotencyKey); + } + /** * Deactivate BYORK Light * @@ -479,11 +511,11 @@ public void removeAllAddressRegistryVaultOptOutsTest() throws ApiException { } /** - * Calling the \"Bypass Screening Policy\" API endpoint triggers a new transaction, - * with the API user as the initiator, bypassing the screening policy check + * Bypass Screening Policy * - *

This endpoint is restricted to Admin API users and is only applicable to outgoing - * transactions. + *

Triggers a new transaction, with the API user as the initiator, bypassing the screening + * policy checks. This endpoint is restricted to Admin API users and is only applicable to + * outgoing transactions. * * @throws ApiException if the Api call fails */ diff --git a/src/test/java/com/fireblocks/sdk/api/GenieBetaApiTest.java b/src/test/java/com/fireblocks/sdk/api/GenieBetaApiTest.java new file mode 100644 index 00000000..d4be3448 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/api/GenieBetaApiTest.java @@ -0,0 +1,65 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.api; + + +import com.fireblocks.sdk.ApiException; +import com.fireblocks.sdk.ApiResponse; +import com.fireblocks.sdk.model.GenieChatMessage; +import com.fireblocks.sdk.model.GenieCreateSessionResponse; +import com.fireblocks.sdk.model.GenieSendMessageRequest; +import java.util.concurrent.CompletableFuture; +import org.junit.Ignore; +import org.junit.Test; + +/** API tests for GenieBetaApi */ +@Ignore +public class GenieBetaApiTest { + + private final GenieBetaApi api = new GenieBetaApi(); + + /** + * Create a Genie session + * + *

Starts a new conversation with Genie, the Fireblocks AI assistant. Returns a + * `sessionId` — pass it when sending messages, and reuse it across calls to keep one + * continuous conversation. **Note:** This endpoint is currently in beta and might be subject to + * changes. + * + * @throws ApiException if the Api call fails + */ + @Test + public void createGenieSessionTest() throws ApiException { + String idempotencyKey = null; + CompletableFuture> response = + api.createGenieSession(idempotencyKey); + } + + /** + * Send a message to a Genie session + * + *

Sends a question to Genie and returns a single answer. Reuse the `sessionId` + * from the original session on follow-up messages to continue the conversation with prior + * context. **Note:** This endpoint is currently in beta and might be subject to changes. + * + * @throws ApiException if the Api call fails + */ + @Test + public void sendGenieMessageTest() throws ApiException { + GenieSendMessageRequest genieSendMessageRequest = null; + String sessionId = null; + String idempotencyKey = null; + CompletableFuture> response = + api.sendGenieMessage(genieSendMessageRequest, sessionId, idempotencyKey); + } +} diff --git a/src/test/java/com/fireblocks/sdk/api/TradingBetaApiTest.java b/src/test/java/com/fireblocks/sdk/api/TradingBetaApiTest.java index 29566cf2..9db0ccc0 100644 --- a/src/test/java/com/fireblocks/sdk/api/TradingBetaApiTest.java +++ b/src/test/java/com/fireblocks/sdk/api/TradingBetaApiTest.java @@ -15,13 +15,17 @@ import com.fireblocks.sdk.ApiException; import com.fireblocks.sdk.ApiResponse; +import com.fireblocks.sdk.model.CreateOffersRequest; import com.fireblocks.sdk.model.CreateOrderRequest; import com.fireblocks.sdk.model.CreateQuote; import com.fireblocks.sdk.model.GetOrdersResponse; +import com.fireblocks.sdk.model.OffersResponse; import com.fireblocks.sdk.model.OrderDetails; import com.fireblocks.sdk.model.OrderStatus; import com.fireblocks.sdk.model.ProvidersListResponse; import com.fireblocks.sdk.model.QuotesResponse; +import com.fireblocks.sdk.model.RatesRequest; +import com.fireblocks.sdk.model.RatesResponse; import com.fireblocks.sdk.model.TradingProvider; import java.util.List; import java.util.concurrent.CompletableFuture; @@ -76,6 +80,52 @@ public void createQuoteTest() throws ApiException { api.createQuote(createQuote, idempotencyKey); } + /** + * Get all offers + * + *

Retrieve all available offers across the workspace for a given asset pair. Always operates + * in open scope — no provider or account selection required. Returns a mix of indicative rates + * and committed quotes as applicable per provider. If no slippageBps is provided, it defaults + * to 50 bps (0.5%). Slippage and settlement configuration do not affect the returned rate. + * 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, Editor. 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 fetchAllOffersTest() throws ApiException { + CreateOffersRequest createOffersRequest = null; + String idempotencyKey = null; + CompletableFuture> response = + api.fetchAllOffers(createOffersRequest, idempotencyKey); + } + + /** + * Get rates + * + *

Retrieve indicative exchange rate from specified providers for a given asset pair. Rates + * are non-executable price signals intended for discovery and display purposes. 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 fetchRatesTest() throws ApiException { + RatesRequest ratesRequest = null; + String idempotencyKey = null; + CompletableFuture> response = + api.fetchRates(ratesRequest, idempotencyKey); + } + /** * Get order details * diff --git a/src/test/java/com/fireblocks/sdk/api/UtxoManagementBetaApiTest.java b/src/test/java/com/fireblocks/sdk/api/UtxoManagementBetaApiTest.java index 0e8bfe2a..797a96a4 100644 --- a/src/test/java/com/fireblocks/sdk/api/UtxoManagementBetaApiTest.java +++ b/src/test/java/com/fireblocks/sdk/api/UtxoManagementBetaApiTest.java @@ -54,8 +54,6 @@ public void getUtxosTest() throws ApiException { String address = null; String minAmount = null; String maxAmount = null; - Boolean useChange = null; - Boolean useCoinbase = null; CompletableFuture> response = api.getUtxos( vaultAccountId, @@ -70,9 +68,7 @@ public void getUtxosTest() throws ApiException { includeStatuses, address, minAmount, - maxAmount, - useChange, - useCoinbase); + maxAmount); } /** diff --git a/src/test/java/com/fireblocks/sdk/api/VaultsApiTest.java b/src/test/java/com/fireblocks/sdk/api/VaultsApiTest.java index 74a97a14..54b90725 100644 --- a/src/test/java/com/fireblocks/sdk/api/VaultsApiTest.java +++ b/src/test/java/com/fireblocks/sdk/api/VaultsApiTest.java @@ -15,8 +15,7 @@ import com.fireblocks.sdk.ApiException; import com.fireblocks.sdk.ApiResponse; -import com.fireblocks.sdk.model.CircleGatewayWalletInfoResponse; -import com.fireblocks.sdk.model.CircleGatewayWalletStatusResponse; +import com.fireblocks.sdk.model.AddressReverseLookupResponse; import com.fireblocks.sdk.model.CreateAddressRequest; import com.fireblocks.sdk.model.CreateAddressResponse; import com.fireblocks.sdk.model.CreateAssetsRequest; @@ -39,6 +38,8 @@ import com.fireblocks.sdk.model.UnspentInputsResponse; import com.fireblocks.sdk.model.UpdateVaultAccountAssetAddressRequest; import com.fireblocks.sdk.model.UpdateVaultAccountRequest; +import com.fireblocks.sdk.model.UsdcGatewayWalletInfoResponse; +import com.fireblocks.sdk.model.UsdcGatewayWalletStatusResponse; import com.fireblocks.sdk.model.VaultAccount; import com.fireblocks.sdk.model.VaultAccountsPagedResponse; import com.fireblocks.sdk.model.VaultAccountsTagAttachmentOperationsRequest; @@ -79,9 +80,9 @@ public void activateAssetForVaultAccountTest() throws ApiException { } /** - * Activate a Circle Gateway wallet + * Activate a USDC Gateway wallet * - *

Activates the Circle Gateway wallet associated with the given vault account. If the wallet + *

Activates the USDC Gateway wallet associated with the given vault account. If the wallet * does not yet exist it is created in an activated state. **Note:** This endpoint is currently * in beta and might be subject to changes. </br>Endpoint Permission: Admin, Non-Signing * Admin, Signer, Approver. @@ -89,11 +90,11 @@ public void activateAssetForVaultAccountTest() throws ApiException { * @throws ApiException if the Api call fails */ @Test - public void activateCircleGatewayWalletBetaTest() throws ApiException { + public void activateUsdcGatewayWalletBetaTest() throws ApiException { String vaultAccountId = null; String idempotencyKey = null; - CompletableFuture> response = - api.activateCircleGatewayWalletBeta(vaultAccountId, idempotencyKey); + CompletableFuture> response = + api.activateUsdcGatewayWalletBeta(vaultAccountId, idempotencyKey); } /** @@ -236,20 +237,20 @@ public void createVaultAccountAssetAddressTest() throws ApiException { } /** - * Deactivate a Circle Gateway wallet + * Deactivate a USDC Gateway wallet * - *

Deactivates the Circle Gateway wallet associated with the given vault account. **Note:** + *

Deactivates the USDC Gateway wallet associated with the given vault account. **Note:** * This endpoint is currently in beta and might be subject to changes. </br>Endpoint * Permission: Admin, Non-Signing Admin, Signer, Approver. * * @throws ApiException if the Api call fails */ @Test - public void deactivateCircleGatewayWalletBetaTest() throws ApiException { + public void deactivateUsdcGatewayWalletBetaTest() throws ApiException { String vaultAccountId = null; String idempotencyKey = null; - CompletableFuture> response = - api.deactivateCircleGatewayWalletBeta(vaultAccountId, idempotencyKey); + CompletableFuture> response = + api.deactivateUsdcGatewayWalletBeta(vaultAccountId, idempotencyKey); } /** @@ -273,22 +274,6 @@ public void getAssetWalletsTest() throws ApiException { api.getAssetWallets(totalAmountLargerThan, assetId, orderBy, before, after, limit); } - /** - * Get Circle Gateway wallet info - * - *

Returns the Circle Gateway wallet information associated with the given vault account. - * **Note:** This endpoint is currently in beta and might be subject to changes. - * </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - * - * @throws ApiException if the Api call fails - */ - @Test - public void getCircleGatewayWalletInfoBetaTest() throws ApiException { - String vaultAccountId = null; - CompletableFuture> response = - api.getCircleGatewayWalletInfoBeta(vaultAccountId); - } - /** * Get the job status of the bulk deposit address creation * @@ -444,6 +429,22 @@ public void getUnspentInputsTest() throws ApiException { api.getUnspentInputs(vaultAccountId, assetId); } + /** + * Get USDC Gateway wallet info + * + *

Returns the USDC Gateway wallet information associated with the given vault account. + * **Note:** This endpoint is currently in beta and might be subject to changes. + * </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. + * + * @throws ApiException if the Api call fails + */ + @Test + public void getUsdcGatewayWalletInfoBetaTest() throws ApiException { + String vaultAccountId = null; + CompletableFuture> response = + api.getUsdcGatewayWalletInfoBeta(vaultAccountId); + } + /** * Get a vault account by ID * @@ -545,6 +546,22 @@ public void hideVaultAccountTest() throws ApiException { api.hideVaultAccount(vaultAccountId, idempotencyKey); } + /** + * Look up a vault account by blockchain address + * + *

Resolves a blockchain address to the vault account that owns it. Returns the vault account + * ID and the blockchains associated with the address. **Note:** This endpoint is currently in + * beta and might be subject to changes. + * + * @throws ApiException if the Api call fails + */ + @Test + public void lookupVaultByAddressTest() throws ApiException { + String address = null; + CompletableFuture> response = + api.lookupVaultByAddress(address); + } + /** * Assign AML customer reference ID * diff --git a/src/test/java/com/fireblocks/sdk/model/AddressReverseLookupResponseTest.java b/src/test/java/com/fireblocks/sdk/model/AddressReverseLookupResponseTest.java new file mode 100644 index 00000000..d281fa20 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/AddressReverseLookupResponseTest.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 AddressReverseLookupResponse */ +class AddressReverseLookupResponseTest { + private final AddressReverseLookupResponse model = new AddressReverseLookupResponse(); + + /** Model tests for AddressReverseLookupResponse */ + @Test + void testAddressReverseLookupResponse() { + // TODO: test AddressReverseLookupResponse + } + + /** Test the property 'address' */ + @Test + void addressTest() { + // TODO: test address + } + + /** Test the property 'type' */ + @Test + void typeTest() { + // TODO: test type + } + + /** Test the property 'vaultAccountId' */ + @Test + void vaultAccountIdTest() { + // TODO: test vaultAccountId + } + + /** Test the property 'blockchains' */ + @Test + void blockchainsTest() { + // TODO: test blockchains + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/ArsConfigResponseTest.java b/src/test/java/com/fireblocks/sdk/model/ArsConfigResponseTest.java new file mode 100644 index 00000000..3b5acd0d --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/ArsConfigResponseTest.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 ArsConfigResponse */ +class ArsConfigResponseTest { + private final ArsConfigResponse model = new ArsConfigResponse(); + + /** Model tests for ArsConfigResponse */ + @Test + void testArsConfigResponse() { + // TODO: test ArsConfigResponse + } + + /** Test the property 'active' */ + @Test + void activeTest() { + // TODO: test active + } + + /** Test the property 'lastUpdate' */ + @Test + void lastUpdateTest() { + // TODO: test lastUpdate + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/CreateOffersRequestTest.java b/src/test/java/com/fireblocks/sdk/model/CreateOffersRequestTest.java new file mode 100644 index 00000000..8d87b301 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/CreateOffersRequestTest.java @@ -0,0 +1,75 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import org.junit.jupiter.api.Test; + +/** Model tests for CreateOffersRequest */ +class CreateOffersRequestTest { + private final CreateOffersRequest model = new CreateOffersRequest(); + + /** Model tests for CreateOffersRequest */ + @Test + void testCreateOffersRequest() { + // TODO: test CreateOffersRequest + } + + /** Test the property 'baseAssetId' */ + @Test + void baseAssetIdTest() { + // TODO: test baseAssetId + } + + /** Test the property 'baseAssetRail' */ + @Test + void baseAssetRailTest() { + // TODO: test baseAssetRail + } + + /** Test the property 'quoteAssetId' */ + @Test + void quoteAssetIdTest() { + // TODO: test quoteAssetId + } + + /** Test the property 'quoteAssetRail' */ + @Test + void quoteAssetRailTest() { + // TODO: test quoteAssetRail + } + + /** Test the property 'baseAmount' */ + @Test + void baseAmountTest() { + // TODO: test baseAmount + } + + /** Test the property 'slippageBps' */ + @Test + void slippageBpsTest() { + // TODO: test slippageBps + } + + /** Test the property 'settlement' */ + @Test + void settlementTest() { + // TODO: test settlement + } + + /** Test the property 'side' */ + @Test + void sideTest() { + // TODO: test side + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/CreateOrderRequestTest.java b/src/test/java/com/fireblocks/sdk/model/CreateOrderRequestTest.java index ecaf1d4d..7f174a3e 100644 --- a/src/test/java/com/fireblocks/sdk/model/CreateOrderRequestTest.java +++ b/src/test/java/com/fireblocks/sdk/model/CreateOrderRequestTest.java @@ -49,6 +49,12 @@ void participantsIdentificationTest() { // TODO: test participantsIdentification } + /** Test the property 'sourceOfFunds' */ + @Test + void sourceOfFundsTest() { + // TODO: test sourceOfFunds + } + /** Test the property 'customerInternalReferenceId' */ @Test void customerInternalReferenceIdTest() { diff --git a/src/test/java/com/fireblocks/sdk/model/GenieChatMessageTest.java b/src/test/java/com/fireblocks/sdk/model/GenieChatMessageTest.java new file mode 100644 index 00000000..084ead0e --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/GenieChatMessageTest.java @@ -0,0 +1,57 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import org.junit.jupiter.api.Test; + +/** Model tests for GenieChatMessage */ +class GenieChatMessageTest { + private final GenieChatMessage model = new GenieChatMessage(); + + /** Model tests for GenieChatMessage */ + @Test + void testGenieChatMessage() { + // TODO: test GenieChatMessage + } + + /** Test the property 'id' */ + @Test + void idTest() { + // TODO: test id + } + + /** Test the property 'sessionId' */ + @Test + void sessionIdTest() { + // TODO: test sessionId + } + + /** Test the property 'role' */ + @Test + void roleTest() { + // TODO: test role + } + + /** Test the property 'content' */ + @Test + void contentTest() { + // TODO: test content + } + + /** Test the property 'createdAt' */ + @Test + void createdAtTest() { + // TODO: test createdAt + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/GenieCreateSessionResponseTest.java b/src/test/java/com/fireblocks/sdk/model/GenieCreateSessionResponseTest.java new file mode 100644 index 00000000..0434415c --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/GenieCreateSessionResponseTest.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 GenieCreateSessionResponse */ +class GenieCreateSessionResponseTest { + private final GenieCreateSessionResponse model = new GenieCreateSessionResponse(); + + /** Model tests for GenieCreateSessionResponse */ + @Test + void testGenieCreateSessionResponse() { + // TODO: test GenieCreateSessionResponse + } + + /** Test the property 'id' */ + @Test + void idTest() { + // TODO: test id + } + + /** Test the property 'createdAt' */ + @Test + void createdAtTest() { + // TODO: test createdAt + } + + /** Test the property 'title' */ + @Test + void titleTest() { + // TODO: test title + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/GenieSendMessageRequestTest.java b/src/test/java/com/fireblocks/sdk/model/GenieSendMessageRequestTest.java new file mode 100644 index 00000000..826e1dfc --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/GenieSendMessageRequestTest.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 GenieSendMessageRequest */ +class GenieSendMessageRequestTest { + private final GenieSendMessageRequest model = new GenieSendMessageRequest(); + + /** Model tests for GenieSendMessageRequest */ + @Test + void testGenieSendMessageRequest() { + // TODO: test GenieSendMessageRequest + } + + /** Test the property 'content' */ + @Test + void contentTest() { + // TODO: test content + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/OfferTest.java b/src/test/java/com/fireblocks/sdk/model/OfferTest.java new file mode 100644 index 00000000..445da1ed --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/OfferTest.java @@ -0,0 +1,141 @@ +/* + * Fireblocks API + * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + * + * The version of the OpenAPI document: 1.6.2 + * Contact: developers@fireblocks.com + * + * NOTE: This class is auto 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 Offer */ +class OfferTest { + private final Offer model = new Offer(); + + /** Model tests for Offer */ + @Test + void testOffer() { + // TODO: test Offer + } + + /** Test the property 'via' */ + @Test + void viaTest() { + // TODO: test via + } + + /** Test the property 'baseAssetId' */ + @Test + void baseAssetIdTest() { + // TODO: test baseAssetId + } + + /** Test the property 'baseAssetRail' */ + @Test + void baseAssetRailTest() { + // TODO: test baseAssetRail + } + + /** Test the property 'quoteAssetId' */ + @Test + void quoteAssetIdTest() { + // TODO: test quoteAssetId + } + + /** Test the property 'quoteAssetRail' */ + @Test + void quoteAssetRailTest() { + // TODO: test quoteAssetRail + } + + /** Test the property 'rate' */ + @Test + void rateTest() { + // TODO: test rate + } + + /** Test the property 'offerType' */ + @Test + void offerTypeTest() { + // TODO: test offerType + } + + /** Test the property 'id' */ + @Test + void idTest() { + // TODO: test id + } + + /** Test the property 'baseAmount' */ + @Test + void baseAmountTest() { + // TODO: test baseAmount + } + + /** Test the property 'quoteAmount' */ + @Test + void quoteAmountTest() { + // TODO: test quoteAmount + } + + /** Test the property 'priceImpact' */ + @Test + void priceImpactTest() { + // TODO: test priceImpact + } + + /** Test the property 'quoteMinAmount' */ + @Test + void quoteMinAmountTest() { + // TODO: test quoteMinAmount + } + + /** Test the property 'isSlippageApplied' */ + @Test + void isSlippageAppliedTest() { + // TODO: test isSlippageApplied + } + + /** Test the property 'executionSteps' */ + @Test + void executionStepsTest() { + // TODO: test executionSteps + } + + /** Test the property 'generalFees' */ + @Test + void generalFeesTest() { + // TODO: test generalFees + } + + /** Test the property 'side' */ + @Test + void sideTest() { + // TODO: test side + } + + /** Test the property 'expiresAt' */ + @Test + void expiresAtTest() { + // TODO: test expiresAt + } + + /** Test the property 'orderCreationRequirements' */ + @Test + void orderCreationRequirementsTest() { + // TODO: test orderCreationRequirements + } + + /** Test the property 'type' */ + @Test + void typeTest() { + // TODO: test type + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/OffersResponseTest.java b/src/test/java/com/fireblocks/sdk/model/OffersResponseTest.java new file mode 100644 index 00000000..89fc6352 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/OffersResponseTest.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 OffersResponse */ +class OffersResponseTest { + private final OffersResponse model = new OffersResponse(); + + /** Model tests for OffersResponse */ + @Test + void testOffersResponse() { + // TODO: test OffersResponse + } + + /** Test the property 'offers' */ + @Test + void offersTest() { + // TODO: test offers + } + + /** Test the property 'errors' */ + @Test + void errorsTest() { + // TODO: test errors + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/IndicativeQuoteEnumTest.java b/src/test/java/com/fireblocks/sdk/model/QuoteExecutionTypeEnumTest.java similarity index 76% rename from src/test/java/com/fireblocks/sdk/model/IndicativeQuoteEnumTest.java rename to src/test/java/com/fireblocks/sdk/model/QuoteExecutionTypeEnumTest.java index db0637e8..7453a02f 100644 --- a/src/test/java/com/fireblocks/sdk/model/IndicativeQuoteEnumTest.java +++ b/src/test/java/com/fireblocks/sdk/model/QuoteExecutionTypeEnumTest.java @@ -15,11 +15,11 @@ import org.junit.jupiter.api.Test; -/** Model tests for IndicativeQuoteEnum */ -class IndicativeQuoteEnumTest { - /** Model tests for IndicativeQuoteEnum */ +/** Model tests for QuoteExecutionTypeEnum */ +class QuoteExecutionTypeEnumTest { + /** Model tests for QuoteExecutionTypeEnum */ @Test - void testIndicativeQuoteEnum() { - // TODO: test IndicativeQuoteEnum + void testQuoteExecutionTypeEnum() { + // TODO: test QuoteExecutionTypeEnum } } diff --git a/src/test/java/com/fireblocks/sdk/model/QuotePropertiesDetailsTest.java b/src/test/java/com/fireblocks/sdk/model/QuoteOfferTest.java similarity index 73% rename from src/test/java/com/fireblocks/sdk/model/QuotePropertiesDetailsTest.java rename to src/test/java/com/fireblocks/sdk/model/QuoteOfferTest.java index 42c0b231..a73e3582 100644 --- a/src/test/java/com/fireblocks/sdk/model/QuotePropertiesDetailsTest.java +++ b/src/test/java/com/fireblocks/sdk/model/QuoteOfferTest.java @@ -15,14 +15,14 @@ import org.junit.jupiter.api.Test; -/** Model tests for QuotePropertiesDetails */ -class QuotePropertiesDetailsTest { - private final QuotePropertiesDetails model = new QuotePropertiesDetails(); +/** Model tests for QuoteOffer */ +class QuoteOfferTest { + private final QuoteOffer model = new QuoteOffer(); - /** Model tests for QuotePropertiesDetails */ + /** Model tests for QuoteOffer */ @Test - void testQuotePropertiesDetails() { - // TODO: test QuotePropertiesDetails + void testQuoteOffer() { + // TODO: test QuoteOffer } /** Test the property 'via' */ @@ -43,12 +43,24 @@ void quoteAssetIdTest() { // TODO: test quoteAssetId } + /** Test the property 'quoteAssetRail' */ + @Test + void quoteAssetRailTest() { + // TODO: test quoteAssetRail + } + /** Test the property 'baseAssetId' */ @Test void baseAssetIdTest() { // TODO: test baseAssetId } + /** Test the property 'baseAssetRail' */ + @Test + void baseAssetRailTest() { + // TODO: test baseAssetRail + } + /** Test the property 'baseAmount' */ @Test void baseAmountTest() { @@ -73,6 +85,12 @@ void quoteMinAmountTest() { // TODO: test quoteMinAmount } + /** Test the property 'isSlippageApplied' */ + @Test + void isSlippageAppliedTest() { + // TODO: test isSlippageApplied + } + /** Test the property 'executionSteps' */ @Test void executionStepsTest() { @@ -102,4 +120,16 @@ void expiresAtTest() { void orderCreationRequirementsTest() { // TODO: test orderCreationRequirements } + + /** Test the property 'type' */ + @Test + void typeTest() { + // TODO: test type + } + + /** Test the property 'offerType' */ + @Test + void offerTypeTest() { + // TODO: test offerType + } } diff --git a/src/test/java/com/fireblocks/sdk/model/CommittedQuoteTypeTest.java b/src/test/java/com/fireblocks/sdk/model/QuoteOfferTypeTest.java similarity index 67% rename from src/test/java/com/fireblocks/sdk/model/CommittedQuoteTypeTest.java rename to src/test/java/com/fireblocks/sdk/model/QuoteOfferTypeTest.java index 062a000e..1c0595b4 100644 --- a/src/test/java/com/fireblocks/sdk/model/CommittedQuoteTypeTest.java +++ b/src/test/java/com/fireblocks/sdk/model/QuoteOfferTypeTest.java @@ -15,19 +15,19 @@ import org.junit.jupiter.api.Test; -/** Model tests for CommittedQuoteType */ -class CommittedQuoteTypeTest { - private final CommittedQuoteType model = new CommittedQuoteType(); +/** Model tests for QuoteOfferType */ +class QuoteOfferTypeTest { + private final QuoteOfferType model = new QuoteOfferType(); - /** Model tests for CommittedQuoteType */ + /** Model tests for QuoteOfferType */ @Test - void testCommittedQuoteType() { - // TODO: test CommittedQuoteType + void testQuoteOfferType() { + // TODO: test QuoteOfferType } - /** Test the property 'type' */ + /** Test the property 'offerType' */ @Test - void typeTest() { - // TODO: test type + void offerTypeTest() { + // TODO: test offerType } } diff --git a/src/test/java/com/fireblocks/sdk/model/QuoteTest.java b/src/test/java/com/fireblocks/sdk/model/QuoteTest.java index dc9a2e35..993fe285 100644 --- a/src/test/java/com/fireblocks/sdk/model/QuoteTest.java +++ b/src/test/java/com/fireblocks/sdk/model/QuoteTest.java @@ -43,12 +43,24 @@ void quoteAssetIdTest() { // TODO: test quoteAssetId } + /** Test the property 'quoteAssetRail' */ + @Test + void quoteAssetRailTest() { + // TODO: test quoteAssetRail + } + /** Test the property 'baseAssetId' */ @Test void baseAssetIdTest() { // TODO: test baseAssetId } + /** Test the property 'baseAssetRail' */ + @Test + void baseAssetRailTest() { + // TODO: test baseAssetRail + } + /** Test the property 'baseAmount' */ @Test void baseAmountTest() { @@ -73,6 +85,12 @@ void quoteMinAmountTest() { // TODO: test quoteMinAmount } + /** Test the property 'isSlippageApplied' */ + @Test + void isSlippageAppliedTest() { + // TODO: test isSlippageApplied + } + /** Test the property 'executionSteps' */ @Test void executionStepsTest() { diff --git a/src/test/java/com/fireblocks/sdk/model/RateOfferTest.java b/src/test/java/com/fireblocks/sdk/model/RateOfferTest.java new file mode 100644 index 00000000..b02b3af7 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/RateOfferTest.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 RateOffer */ +class RateOfferTest { + private final RateOffer model = new RateOffer(); + + /** Model tests for RateOffer */ + @Test + void testRateOffer() { + // TODO: test RateOffer + } + + /** Test the property 'via' */ + @Test + void viaTest() { + // TODO: test via + } + + /** Test the property 'baseAssetId' */ + @Test + void baseAssetIdTest() { + // TODO: test baseAssetId + } + + /** Test the property 'baseAssetRail' */ + @Test + void baseAssetRailTest() { + // TODO: test baseAssetRail + } + + /** Test the property 'quoteAssetId' */ + @Test + void quoteAssetIdTest() { + // TODO: test quoteAssetId + } + + /** Test the property 'quoteAssetRail' */ + @Test + void quoteAssetRailTest() { + // TODO: test quoteAssetRail + } + + /** Test the property 'rate' */ + @Test + void rateTest() { + // TODO: test rate + } + + /** Test the property 'offerType' */ + @Test + void offerTypeTest() { + // TODO: test offerType + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/CommittedQuoteEnumTest.java b/src/test/java/com/fireblocks/sdk/model/RateOfferTypeTest.java similarity index 66% rename from src/test/java/com/fireblocks/sdk/model/CommittedQuoteEnumTest.java rename to src/test/java/com/fireblocks/sdk/model/RateOfferTypeTest.java index 8788f692..8dc2b24d 100644 --- a/src/test/java/com/fireblocks/sdk/model/CommittedQuoteEnumTest.java +++ b/src/test/java/com/fireblocks/sdk/model/RateOfferTypeTest.java @@ -15,11 +15,19 @@ import org.junit.jupiter.api.Test; -/** Model tests for CommittedQuoteEnum */ -class CommittedQuoteEnumTest { - /** Model tests for CommittedQuoteEnum */ +/** Model tests for RateOfferType */ +class RateOfferTypeTest { + private final RateOfferType model = new RateOfferType(); + + /** Model tests for RateOfferType */ + @Test + void testRateOfferType() { + // TODO: test RateOfferType + } + + /** Test the property 'offerType' */ @Test - void testCommittedQuoteEnum() { - // TODO: test CommittedQuoteEnum + void offerTypeTest() { + // TODO: test offerType } } diff --git a/src/test/java/com/fireblocks/sdk/model/RateTest.java b/src/test/java/com/fireblocks/sdk/model/RateTest.java new file mode 100644 index 00000000..60a99d7a --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/RateTest.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 Rate */ +class RateTest { + private final Rate model = new Rate(); + + /** Model tests for Rate */ + @Test + void testRate() { + // TODO: test Rate + } + + /** Test the property 'via' */ + @Test + void viaTest() { + // TODO: test via + } + + /** Test the property 'baseAssetId' */ + @Test + void baseAssetIdTest() { + // TODO: test baseAssetId + } + + /** Test the property 'baseAssetRail' */ + @Test + void baseAssetRailTest() { + // TODO: test baseAssetRail + } + + /** Test the property 'quoteAssetId' */ + @Test + void quoteAssetIdTest() { + // TODO: test quoteAssetId + } + + /** Test the property 'quoteAssetRail' */ + @Test + void quoteAssetRailTest() { + // TODO: test quoteAssetRail + } + + /** Test the property 'rate' */ + @Test + void rateTest() { + // TODO: test rate + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/RatesRequestTest.java b/src/test/java/com/fireblocks/sdk/model/RatesRequestTest.java new file mode 100644 index 00000000..f9b9da1e --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/RatesRequestTest.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 RatesRequest */ +class RatesRequestTest { + private final RatesRequest model = new RatesRequest(); + + /** Model tests for RatesRequest */ + @Test + void testRatesRequest() { + // TODO: test RatesRequest + } + + /** Test the property 'scope' */ + @Test + void scopeTest() { + // TODO: test scope + } + + /** Test the property 'baseAssetId' */ + @Test + void baseAssetIdTest() { + // TODO: test baseAssetId + } + + /** Test the property 'quoteAssetId' */ + @Test + void quoteAssetIdTest() { + // TODO: test quoteAssetId + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/RatesResponseTest.java b/src/test/java/com/fireblocks/sdk/model/RatesResponseTest.java new file mode 100644 index 00000000..7a03b147 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/RatesResponseTest.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 RatesResponse */ +class RatesResponseTest { + private final RatesResponse model = new RatesResponse(); + + /** Model tests for RatesResponse */ + @Test + void testRatesResponse() { + // TODO: test RatesResponse + } + + /** Test the property 'rates' */ + @Test + void ratesTest() { + // TODO: test rates + } + + /** Test the property 'errors' */ + @Test + void errorsTest() { + // TODO: test errors + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/QuoteTypeEnumTest.java b/src/test/java/com/fireblocks/sdk/model/ReasonForPaymentEnumTest.java similarity index 77% rename from src/test/java/com/fireblocks/sdk/model/QuoteTypeEnumTest.java rename to src/test/java/com/fireblocks/sdk/model/ReasonForPaymentEnumTest.java index 1a45f4cf..69d4f830 100644 --- a/src/test/java/com/fireblocks/sdk/model/QuoteTypeEnumTest.java +++ b/src/test/java/com/fireblocks/sdk/model/ReasonForPaymentEnumTest.java @@ -15,11 +15,11 @@ import org.junit.jupiter.api.Test; -/** Model tests for QuoteTypeEnum */ -class QuoteTypeEnumTest { - /** Model tests for QuoteTypeEnum */ +/** Model tests for ReasonForPaymentEnum */ +class ReasonForPaymentEnumTest { + /** Model tests for ReasonForPaymentEnum */ @Test - void testQuoteTypeEnum() { - // TODO: test QuoteTypeEnum + void testReasonForPaymentEnum() { + // TODO: test ReasonForPaymentEnum } } diff --git a/src/test/java/com/fireblocks/sdk/model/QuoteFailureTest.java b/src/test/java/com/fireblocks/sdk/model/ScopeItemFailureTest.java similarity index 80% rename from src/test/java/com/fireblocks/sdk/model/QuoteFailureTest.java rename to src/test/java/com/fireblocks/sdk/model/ScopeItemFailureTest.java index 7b280bb6..9a2fa184 100644 --- a/src/test/java/com/fireblocks/sdk/model/QuoteFailureTest.java +++ b/src/test/java/com/fireblocks/sdk/model/ScopeItemFailureTest.java @@ -15,14 +15,14 @@ import org.junit.jupiter.api.Test; -/** Model tests for QuoteFailure */ -class QuoteFailureTest { - private final QuoteFailure model = new QuoteFailure(); +/** Model tests for ScopeItemFailure */ +class ScopeItemFailureTest { + private final ScopeItemFailure model = new ScopeItemFailure(); - /** Model tests for QuoteFailure */ + /** Model tests for ScopeItemFailure */ @Test - void testQuoteFailure() { - // TODO: test QuoteFailure + void testScopeItemFailure() { + // TODO: test ScopeItemFailure } /** Test the property 'providerId' */ diff --git a/src/test/java/com/fireblocks/sdk/model/IndicativeQuoteTypeTest.java b/src/test/java/com/fireblocks/sdk/model/SourceOfFundsTest.java similarity index 66% rename from src/test/java/com/fireblocks/sdk/model/IndicativeQuoteTypeTest.java rename to src/test/java/com/fireblocks/sdk/model/SourceOfFundsTest.java index fffdb10a..5633ad51 100644 --- a/src/test/java/com/fireblocks/sdk/model/IndicativeQuoteTypeTest.java +++ b/src/test/java/com/fireblocks/sdk/model/SourceOfFundsTest.java @@ -15,19 +15,19 @@ import org.junit.jupiter.api.Test; -/** Model tests for IndicativeQuoteType */ -class IndicativeQuoteTypeTest { - private final IndicativeQuoteType model = new IndicativeQuoteType(); +/** Model tests for SourceOfFunds */ +class SourceOfFundsTest { + private final SourceOfFunds model = new SourceOfFunds(); - /** Model tests for IndicativeQuoteType */ + /** Model tests for SourceOfFunds */ @Test - void testIndicativeQuoteType() { - // TODO: test IndicativeQuoteType + void testSourceOfFunds() { + // TODO: test SourceOfFunds } - /** Test the property 'type' */ + /** Test the property 'reasonForPayment' */ @Test - void typeTest() { - // TODO: test type + void reasonForPaymentTest() { + // TODO: test reasonForPayment } } diff --git a/src/test/java/com/fireblocks/sdk/model/TRLinkCustomerResponseTest.java b/src/test/java/com/fireblocks/sdk/model/TRLinkCustomerResponseTest.java index a910beb5..ca3d8f74 100644 --- a/src/test/java/com/fireblocks/sdk/model/TRLinkCustomerResponseTest.java +++ b/src/test/java/com/fireblocks/sdk/model/TRLinkCustomerResponseTest.java @@ -31,12 +31,6 @@ void idTest() { // TODO: test id } - /** Test the property 'tenantId' */ - @Test - void tenantIdTest() { - // TODO: test tenantId - } - /** Test the property 'discoverable' */ @Test void discoverableTest() { diff --git a/src/test/java/com/fireblocks/sdk/model/CircleGatewayWalletInfoResponseTest.java b/src/test/java/com/fireblocks/sdk/model/UsdcGatewayWalletInfoResponseTest.java similarity index 77% rename from src/test/java/com/fireblocks/sdk/model/CircleGatewayWalletInfoResponseTest.java rename to src/test/java/com/fireblocks/sdk/model/UsdcGatewayWalletInfoResponseTest.java index d9f51c14..b18aec20 100644 --- a/src/test/java/com/fireblocks/sdk/model/CircleGatewayWalletInfoResponseTest.java +++ b/src/test/java/com/fireblocks/sdk/model/UsdcGatewayWalletInfoResponseTest.java @@ -15,14 +15,14 @@ import org.junit.jupiter.api.Test; -/** Model tests for CircleGatewayWalletInfoResponse */ -class CircleGatewayWalletInfoResponseTest { - private final CircleGatewayWalletInfoResponse model = new CircleGatewayWalletInfoResponse(); +/** Model tests for UsdcGatewayWalletInfoResponse */ +class UsdcGatewayWalletInfoResponseTest { + private final UsdcGatewayWalletInfoResponse model = new UsdcGatewayWalletInfoResponse(); - /** Model tests for CircleGatewayWalletInfoResponse */ + /** Model tests for UsdcGatewayWalletInfoResponse */ @Test - void testCircleGatewayWalletInfoResponse() { - // TODO: test CircleGatewayWalletInfoResponse + void testUsdcGatewayWalletInfoResponse() { + // TODO: test UsdcGatewayWalletInfoResponse } /** Test the property 'walletId' */ diff --git a/src/test/java/com/fireblocks/sdk/model/CircleGatewayWalletStatusResponseTest.java b/src/test/java/com/fireblocks/sdk/model/UsdcGatewayWalletStatusResponseTest.java similarity index 71% rename from src/test/java/com/fireblocks/sdk/model/CircleGatewayWalletStatusResponseTest.java rename to src/test/java/com/fireblocks/sdk/model/UsdcGatewayWalletStatusResponseTest.java index 140d69f8..1495e1e6 100644 --- a/src/test/java/com/fireblocks/sdk/model/CircleGatewayWalletStatusResponseTest.java +++ b/src/test/java/com/fireblocks/sdk/model/UsdcGatewayWalletStatusResponseTest.java @@ -15,14 +15,14 @@ import org.junit.jupiter.api.Test; -/** Model tests for CircleGatewayWalletStatusResponse */ -class CircleGatewayWalletStatusResponseTest { - private final CircleGatewayWalletStatusResponse model = new CircleGatewayWalletStatusResponse(); +/** Model tests for UsdcGatewayWalletStatusResponse */ +class UsdcGatewayWalletStatusResponseTest { + private final UsdcGatewayWalletStatusResponse model = new UsdcGatewayWalletStatusResponse(); - /** Model tests for CircleGatewayWalletStatusResponse */ + /** Model tests for UsdcGatewayWalletStatusResponse */ @Test - void testCircleGatewayWalletStatusResponse() { - // TODO: test CircleGatewayWalletStatusResponse + void testUsdcGatewayWalletStatusResponse() { + // TODO: test UsdcGatewayWalletStatusResponse } /** Test the property 'walletId' */ diff --git a/src/test/java/com/fireblocks/sdk/model/UtxoSelectionFiltersTest.java b/src/test/java/com/fireblocks/sdk/model/UtxoSelectionFiltersTest.java index 3213df35..adb01d41 100644 --- a/src/test/java/com/fireblocks/sdk/model/UtxoSelectionFiltersTest.java +++ b/src/test/java/com/fireblocks/sdk/model/UtxoSelectionFiltersTest.java @@ -60,16 +60,4 @@ void minAmountTest() { void maxAmountTest() { // TODO: test maxAmount } - - /** Test the property 'useChange' */ - @Test - void useChangeTest() { - // TODO: test useChange - } - - /** Test the property 'useCoinbase' */ - @Test - void useCoinbaseTest() { - // TODO: test useCoinbase - } } diff --git a/src/test/java/com/fireblocks/sdk/model/UtxoSelectionParamsTest.java b/src/test/java/com/fireblocks/sdk/model/UtxoSelectionParamsTest.java index 9750c4b3..d2c42936 100644 --- a/src/test/java/com/fireblocks/sdk/model/UtxoSelectionParamsTest.java +++ b/src/test/java/com/fireblocks/sdk/model/UtxoSelectionParamsTest.java @@ -25,6 +25,12 @@ void testUtxoSelectionParams() { // TODO: test UtxoSelectionParams } + /** Test the property 'selectionStrategy' */ + @Test + void selectionStrategyTest() { + // TODO: test selectionStrategy + } + /** Test the property 'filters' */ @Test void filtersTest() {