From 4e03966cb88f6d6c6bbe8beffe6d7201556acac8 Mon Sep 17 00:00:00 2001
From: "sdk-generation-automation[bot]"
<105032633+sdk-generation-automation[bot]@users.noreply.github.com>
Date: Tue, 31 Mar 2026 14:05:17 +0000
Subject: [PATCH] Generated SDK #1872
---
.github/workflows/python-publish.yml | 3 +-
.openapi-generator/FILES | 57 +++--
CHANGELOG.md | 224 ------------------
README.md | 21 +-
docs/AccountBasedAccessProvider.md | 2 +-
docs/AccountBasedAccessProviderDetails.md | 31 ---
docs/AccountBasedAccessProviderInfo.md | 30 +++
docs/AccountBasedProviderDetails.md | 35 +++
docs/AmlResult.md | 2 +-
docs/AmlStatusEnum.md | 2 +-
docs/BaseProvider.md | 1 +
docs/ComplianceScreeningResult.md | 17 +-
docs/ComplianceScreeningResultFullPayload.md | 17 +-
docs/CreateMultipleAccountsRequest.md | 1 +
docs/DirectAccessProvider.md | 2 +
...Details.md => DirectAccessProviderInfo.md} | 17 +-
docs/DirectProviderDetails.md | 37 +++
...lity.md => ExecutionRequestDetailsType.md} | 9 +-
docs/JobCreated.md | 1 +
docs/Manifest.md | 6 +-
docs/ManifestBase.md | 30 +++
docs/ManifestOrder.md | 31 +++
docs/ManifestOrderInfo.md | 31 +++
docs/ManifestQuote.md | 30 +++
docs/ManifestQuoteInfo.md | 30 +++
docs/Position.md | 44 ++++
docs/ScreeningAmlResult.md | 2 +-
docs/ScreeningRiskLevelEnum.md | 21 --
docs/ScreeningTravelRuleResult.md | 2 +-
...AssetTypeEnum.md => SettlementTypeEnum.md} | 7 +-
docs/StakingApi.md | 99 +++++++-
docs/StakingPositionsPaginatedResponse.md | 30 +++
docs/TRLinkApi.md | 54 ++---
docs/TRLinkCreateIntegrationRequest.md | 1 +
docs/TradingBetaApi.md | 87 +++++++
docs/TradingProvider.md | 3 +-
docs/TradingProviderDetails.md | 39 +++
docs/TravelRuleActionEnum.md | 4 +
docs/TravelRuleOwnershipProof.md | 2 +
docs/TravelRuleResult.md | 2 +-
docs/TravelRuleStatusEnum.md | 6 +
docs/TravelRuleVerdictEnum.md | 6 +
docs/UserRole.md | 4 +
fireblocks/__init__.py | 25 +-
fireblocks/api/staking_api.py | 183 +++++++++++++-
fireblocks/api/tr_link_api.py | 4 +-
fireblocks/api/trading_beta_api.py | 135 +++++++++++
fireblocks/configuration.py | 2 +-
fireblocks/models/__init__.py | 19 +-
.../models/account_based_access_provider.py | 2 +-
... => account_based_access_provider_info.py} | 20 +-
.../models/account_based_provider_details.py | 112 +++++++++
fireblocks/models/aml_result.py | 2 +-
fireblocks/models/aml_status_enum.py | 2 +-
fireblocks/models/base_provider.py | 10 +-
.../models/collection_ownership_response.py | 4 +-
.../models/compliance_screening_result.py | 23 +-
...ompliance_screening_result_full_payload.py | 23 +-
.../create_multiple_accounts_request.py | 7 +-
fireblocks/models/direct_access_provider.py | 12 +-
...ails.py => direct_access_provider_info.py} | 14 +-
fireblocks/models/direct_provider_details.py | 108 +++++++++
...y.py => execution_request_details_type.py} | 11 +-
fireblocks/models/job_created.py | 6 +-
fireblocks/models/manifest.py | 30 ++-
fireblocks/models/manifest_base.py | 88 +++++++
fireblocks/models/manifest_order.py | 94 ++++++++
fireblocks/models/manifest_order_info.py | 92 +++++++
fireblocks/models/manifest_quote.py | 91 +++++++
fireblocks/models/manifest_quote_info.py | 89 +++++++
fireblocks/models/position.py | 139 +++++++++++
fireblocks/models/screening_aml_result.py | 2 +-
.../models/screening_risk_level_enum.py | 42 ----
.../models/screening_travel_rule_result.py | 2 +-
...t_type_enum.py => settlement_type_enum.py} | 10 +-
.../staking_positions_paginated_response.py | 103 ++++++++
fireblocks/models/token_ownership_response.py | 4 +-
fireblocks/models/token_response.py | 4 +-
.../tr_link_create_integration_request.py | 8 +-
fireblocks/models/trading_provider_details.py | 138 +++++++++++
fireblocks/models/travel_rule_action_enum.py | 2 +
.../models/travel_rule_ownership_proof.py | 6 +-
fireblocks/models/travel_rule_result.py | 2 +-
fireblocks/models/travel_rule_status_enum.py | 3 +
fireblocks/models/travel_rule_verdict_enum.py | 3 +
fireblocks/models/user_role.py | 2 +
pyproject.toml | 2 +-
setup.py | 2 +-
test/test_account_based_access_provider.py | 7 +-
...est_account_based_access_provider_info.py} | 29 +--
test/test_account_based_provider_details.py | 70 ++++++
test/test_add_collateral_request_body.py | 4 +
test/test_base_provider.py | 4 +-
test/test_compliance_result_full_payload.py | 27 ++-
test/test_compliance_results.py | 27 ++-
test/test_compliance_screening_result.py | 9 +-
...ompliance_screening_result_full_payload.py | 9 +-
test/test_create_multiple_accounts_request.py | 3 +-
test/test_direct_access_provider.py | 5 +-
...py => test_direct_access_provider_info.py} | 25 +-
test/test_direct_provider_details.py | 67 ++++++
...=> test_execution_request_details_type.py} | 12 +-
test/test_job_created.py | 3 +-
test/test_manifest.py | 20 +-
test/test_manifest_base.py | 55 +++++
test/test_manifest_order.py | 64 +++++
test/test_manifest_order_info.py | 62 +++++
test/test_manifest_quote.py | 58 +++++
test/test_manifest_quote_info.py | 56 +++++
test/test_position.py | 84 +++++++
test/test_remove_collateral_request_body.py | 4 +
test/test_screening_risk_level_enum.py | 36 ---
...e_enum.py => test_settlement_type_enum.py} | 12 +-
test/test_staking_api.py | 7 +
...st_staking_positions_paginated_response.py | 94 ++++++++
...test_tr_link_create_integration_request.py | 3 +-
test/test_trading_beta_api.py | 7 +
test/test_trading_provider.py | 10 +-
test/test_trading_provider_details.py | 75 ++++++
test/test_transaction_request.py | 4 +
test/test_transaction_response.py | 13 +-
..._travel_rule_create_transaction_request.py | 4 +
test/test_travel_rule_ownership_proof.py | 2 +
..._rule_validate_full_transaction_request.py | 4 +
124 files changed, 3091 insertions(+), 646 deletions(-)
delete mode 100644 CHANGELOG.md
delete mode 100644 docs/AccountBasedAccessProviderDetails.md
create mode 100644 docs/AccountBasedAccessProviderInfo.md
create mode 100644 docs/AccountBasedProviderDetails.md
rename docs/{DirectAccessProviderDetails.md => DirectAccessProviderInfo.md} (52%)
create mode 100644 docs/DirectProviderDetails.md
rename docs/{Capability.md => ExecutionRequestDetailsType.md} (57%)
create mode 100644 docs/ManifestBase.md
create mode 100644 docs/ManifestOrder.md
create mode 100644 docs/ManifestOrderInfo.md
create mode 100644 docs/ManifestQuote.md
create mode 100644 docs/ManifestQuoteInfo.md
create mode 100644 docs/Position.md
delete mode 100644 docs/ScreeningRiskLevelEnum.md
rename docs/{AssetTypeEnum.md => SettlementTypeEnum.md} (58%)
create mode 100644 docs/StakingPositionsPaginatedResponse.md
create mode 100644 docs/TradingProviderDetails.md
rename fireblocks/models/{account_based_access_provider_details.py => account_based_access_provider_info.py} (79%)
create mode 100644 fireblocks/models/account_based_provider_details.py
rename fireblocks/models/{direct_access_provider_details.py => direct_access_provider_info.py} (84%)
create mode 100644 fireblocks/models/direct_provider_details.py
rename fireblocks/models/{capability.py => execution_request_details_type.py} (79%)
create mode 100644 fireblocks/models/manifest_base.py
create mode 100644 fireblocks/models/manifest_order.py
create mode 100644 fireblocks/models/manifest_order_info.py
create mode 100644 fireblocks/models/manifest_quote.py
create mode 100644 fireblocks/models/manifest_quote_info.py
create mode 100644 fireblocks/models/position.py
delete mode 100644 fireblocks/models/screening_risk_level_enum.py
rename fireblocks/models/{asset_type_enum.py => settlement_type_enum.py} (81%)
create mode 100644 fireblocks/models/staking_positions_paginated_response.py
create mode 100644 fireblocks/models/trading_provider_details.py
rename test/{test_account_based_access_provider_details.py => test_account_based_access_provider_info.py} (63%)
create mode 100644 test/test_account_based_provider_details.py
rename test/{test_direct_access_provider_details.py => test_direct_access_provider_info.py} (70%)
create mode 100644 test/test_direct_provider_details.py
rename test/{test_capability.py => test_execution_request_details_type.py} (67%)
create mode 100644 test/test_manifest_base.py
create mode 100644 test/test_manifest_order.py
create mode 100644 test/test_manifest_order_info.py
create mode 100644 test/test_manifest_quote.py
create mode 100644 test/test_manifest_quote_info.py
create mode 100644 test/test_position.py
delete mode 100644 test/test_screening_risk_level_enum.py
rename test/{test_asset_type_enum.py => test_settlement_type_enum.py} (71%)
create mode 100644 test/test_staking_positions_paginated_response.py
create mode 100644 test/test_trading_provider_details.py
diff --git a/.github/workflows/python-publish.yml b/.github/workflows/python-publish.yml
index df986b00..5222d78c 100644
--- a/.github/workflows/python-publish.yml
+++ b/.github/workflows/python-publish.yml
@@ -30,6 +30,7 @@ jobs:
python -m pip install --upgrade pip
pip install bump-my-version
npm i -g auto-changelog
+
- name: Bump version
run: |
initialTag=${{ github.event.release.tag_name }}
@@ -85,4 +86,4 @@ jobs:
- name: Publish package to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
- # No user/password needed - OIDC handles authentication
+ # No user/password needed - OIDC handles authentication
\ No newline at end of file
diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES
index 5bb694a0..dc6da358 100644
--- a/.openapi-generator/FILES
+++ b/.openapi-generator/FILES
@@ -13,7 +13,8 @@ docs/Account.md
docs/AccountAccess.md
docs/AccountBase.md
docs/AccountBasedAccessProvider.md
-docs/AccountBasedAccessProviderDetails.md
+docs/AccountBasedAccessProviderInfo.md
+docs/AccountBasedProviderDetails.md
docs/AccountConfig.md
docs/AccountHolderDetails.md
docs/AccountIdentifier.md
@@ -92,7 +93,6 @@ docs/AssetPriceNotFoundErrorResponse.md
docs/AssetPriceResponse.md
docs/AssetResponse.md
docs/AssetScope.md
-docs/AssetTypeEnum.md
docs/AssetTypeResponse.md
docs/AssetTypesConfigInner.md
docs/AssetWallet.md
@@ -123,7 +123,6 @@ docs/BusinessIdentification.md
docs/CallbackHandler.md
docs/CallbackHandlerRequest.md
docs/CancelTransactionResponse.md
-docs/Capability.md
docs/ChainDescriptor.md
docs/ChainInfoResponse.md
docs/ChannelDvnConfigWithConfirmations.md
@@ -285,7 +284,8 @@ docs/DestinationTransferPeerPath.md
docs/DestinationTransferPeerPathResponse.md
docs/DirectAccess.md
docs/DirectAccessProvider.md
-docs/DirectAccessProviderDetails.md
+docs/DirectAccessProviderInfo.md
+docs/DirectProviderDetails.md
docs/DisbursementAmountInstruction.md
docs/DisbursementConfigOperation.md
docs/DisbursementInstruction.md
@@ -353,6 +353,7 @@ docs/ExecutionDisbursementOperation.md
docs/ExecutionOperationStatus.md
docs/ExecutionRequestBaseDetails.md
docs/ExecutionRequestDetails.md
+docs/ExecutionRequestDetailsType.md
docs/ExecutionResponseBaseDetails.md
docs/ExecutionResponseDetails.md
docs/ExecutionScreeningOperation.md
@@ -486,6 +487,11 @@ docs/ListOwnedTokensResponse.md
docs/LocalBankTransferAfricaAddress.md
docs/LocalBankTransferAfricaDestination.md
docs/Manifest.md
+docs/ManifestBase.md
+docs/ManifestOrder.md
+docs/ManifestOrderInfo.md
+docs/ManifestQuote.md
+docs/ManifestQuoteInfo.md
docs/MarketExecutionRequestDetails.md
docs/MarketExecutionResponseDetails.md
docs/MarketRequoteRequestDetails.md
@@ -600,6 +606,7 @@ docs/PolicyType.md
docs/PolicyValidation.md
docs/PolicyVerdictActionEnum.md
docs/PolicyVerdictActionEnum2.md
+docs/Position.md
docs/PostalAddress.md
docs/PreScreening.md
docs/PrefundedSettlement.md
@@ -673,7 +680,6 @@ docs/ScreeningOperationFailure.md
docs/ScreeningOperationType.md
docs/ScreeningPolicyResponse.md
docs/ScreeningProviderRulesConfigurationResponse.md
-docs/ScreeningRiskLevelEnum.md
docs/ScreeningTRLinkAmount.md
docs/ScreeningTRLinkMissingTrmDecision.md
docs/ScreeningTRLinkMissingTrmRule.md
@@ -717,6 +723,7 @@ docs/Settlement.md
docs/SettlementRequestBody.md
docs/SettlementResponse.md
docs/SettlementSourceAccount.md
+docs/SettlementTypeEnum.md
docs/Side.md
docs/SignedMessage.md
docs/SignedMessageSignature.md
@@ -769,6 +776,7 @@ docs/StEthBlockchainData.md
docs/StakeRequest.md
docs/StakeResponse.md
docs/StakingApi.md
+docs/StakingPositionsPaginatedResponse.md
docs/StakingProvider.md
docs/Status.md
docs/StellarRippleCreateParamsDto.md
@@ -889,6 +897,7 @@ docs/TradingAccountType.md
docs/TradingBetaApi.md
docs/TradingErrorSchema.md
docs/TradingProvider.md
+docs/TradingProviderDetails.md
docs/Transaction.md
docs/TransactionDirection.md
docs/TransactionFee.md
@@ -1108,7 +1117,8 @@ fireblocks/models/account.py
fireblocks/models/account_access.py
fireblocks/models/account_base.py
fireblocks/models/account_based_access_provider.py
-fireblocks/models/account_based_access_provider_details.py
+fireblocks/models/account_based_access_provider_info.py
+fireblocks/models/account_based_provider_details.py
fireblocks/models/account_config.py
fireblocks/models/account_holder_details.py
fireblocks/models/account_identifier.py
@@ -1187,7 +1197,6 @@ fireblocks/models/asset_price_not_found_error_response.py
fireblocks/models/asset_price_response.py
fireblocks/models/asset_response.py
fireblocks/models/asset_scope.py
-fireblocks/models/asset_type_enum.py
fireblocks/models/asset_type_response.py
fireblocks/models/asset_types_config_inner.py
fireblocks/models/asset_wallet.py
@@ -1216,7 +1225,6 @@ fireblocks/models/business_identification.py
fireblocks/models/callback_handler.py
fireblocks/models/callback_handler_request.py
fireblocks/models/cancel_transaction_response.py
-fireblocks/models/capability.py
fireblocks/models/chain_descriptor.py
fireblocks/models/chain_info_response.py
fireblocks/models/channel_dvn_config_with_confirmations.py
@@ -1367,7 +1375,8 @@ fireblocks/models/destination_transfer_peer_path.py
fireblocks/models/destination_transfer_peer_path_response.py
fireblocks/models/direct_access.py
fireblocks/models/direct_access_provider.py
-fireblocks/models/direct_access_provider_details.py
+fireblocks/models/direct_access_provider_info.py
+fireblocks/models/direct_provider_details.py
fireblocks/models/disbursement_amount_instruction.py
fireblocks/models/disbursement_config_operation.py
fireblocks/models/disbursement_instruction.py
@@ -1435,6 +1444,7 @@ fireblocks/models/execution_disbursement_operation.py
fireblocks/models/execution_operation_status.py
fireblocks/models/execution_request_base_details.py
fireblocks/models/execution_request_details.py
+fireblocks/models/execution_request_details_type.py
fireblocks/models/execution_response_base_details.py
fireblocks/models/execution_response_details.py
fireblocks/models/execution_screening_operation.py
@@ -1562,6 +1572,11 @@ fireblocks/models/list_owned_tokens_response.py
fireblocks/models/local_bank_transfer_africa_address.py
fireblocks/models/local_bank_transfer_africa_destination.py
fireblocks/models/manifest.py
+fireblocks/models/manifest_base.py
+fireblocks/models/manifest_order.py
+fireblocks/models/manifest_order_info.py
+fireblocks/models/manifest_quote.py
+fireblocks/models/manifest_quote_info.py
fireblocks/models/market_execution_request_details.py
fireblocks/models/market_execution_response_details.py
fireblocks/models/market_requote_request_details.py
@@ -1668,6 +1683,7 @@ fireblocks/models/policy_type.py
fireblocks/models/policy_validation.py
fireblocks/models/policy_verdict_action_enum.py
fireblocks/models/policy_verdict_action_enum2.py
+fireblocks/models/position.py
fireblocks/models/postal_address.py
fireblocks/models/pre_screening.py
fireblocks/models/prefunded_settlement.py
@@ -1736,7 +1752,6 @@ fireblocks/models/screening_operation_failure.py
fireblocks/models/screening_operation_type.py
fireblocks/models/screening_policy_response.py
fireblocks/models/screening_provider_rules_configuration_response.py
-fireblocks/models/screening_risk_level_enum.py
fireblocks/models/screening_tr_link_amount.py
fireblocks/models/screening_tr_link_missing_trm_decision.py
fireblocks/models/screening_tr_link_missing_trm_rule.py
@@ -1782,6 +1797,7 @@ fireblocks/models/settlement.py
fireblocks/models/settlement_request_body.py
fireblocks/models/settlement_response.py
fireblocks/models/settlement_source_account.py
+fireblocks/models/settlement_type_enum.py
fireblocks/models/side.py
fireblocks/models/signed_message.py
fireblocks/models/signed_message_signature.py
@@ -1834,6 +1850,7 @@ fireblocks/models/split_response.py
fireblocks/models/st_eth_blockchain_data.py
fireblocks/models/stake_request.py
fireblocks/models/stake_response.py
+fireblocks/models/staking_positions_paginated_response.py
fireblocks/models/staking_provider.py
fireblocks/models/status.py
fireblocks/models/stellar_ripple_create_params_dto.py
@@ -1950,6 +1967,7 @@ fireblocks/models/tr_link_verdict_enum.py
fireblocks/models/trading_account_type.py
fireblocks/models/trading_error_schema.py
fireblocks/models/trading_provider.py
+fireblocks/models/trading_provider_details.py
fireblocks/models/transaction.py
fireblocks/models/transaction_direction.py
fireblocks/models/transaction_fee.py
@@ -2123,7 +2141,8 @@ test/test_account.py
test/test_account_access.py
test/test_account_base.py
test/test_account_based_access_provider.py
-test/test_account_based_access_provider_details.py
+test/test_account_based_access_provider_info.py
+test/test_account_based_provider_details.py
test/test_account_config.py
test/test_account_holder_details.py
test/test_account_identifier.py
@@ -2203,7 +2222,6 @@ test/test_asset_price_not_found_error_response.py
test/test_asset_price_response.py
test/test_asset_response.py
test/test_asset_scope.py
-test/test_asset_type_enum.py
test/test_asset_type_response.py
test/test_asset_types_config_inner.py
test/test_asset_wallet.py
@@ -2234,7 +2252,6 @@ test/test_business_identification.py
test/test_callback_handler.py
test/test_callback_handler_request.py
test/test_cancel_transaction_response.py
-test/test_capability.py
test/test_chain_descriptor.py
test/test_chain_info_response.py
test/test_channel_dvn_config_with_confirmations.py
@@ -2394,7 +2411,8 @@ test/test_destination_transfer_peer_path.py
test/test_destination_transfer_peer_path_response.py
test/test_direct_access.py
test/test_direct_access_provider.py
-test/test_direct_access_provider_details.py
+test/test_direct_access_provider_info.py
+test/test_direct_provider_details.py
test/test_disbursement_amount_instruction.py
test/test_disbursement_config_operation.py
test/test_disbursement_instruction.py
@@ -2464,6 +2482,7 @@ test/test_execution_disbursement_operation.py
test/test_execution_operation_status.py
test/test_execution_request_base_details.py
test/test_execution_request_details.py
+test/test_execution_request_details_type.py
test/test_execution_response_base_details.py
test/test_execution_response_details.py
test/test_execution_screening_operation.py
@@ -2597,6 +2616,11 @@ test/test_list_owned_tokens_response.py
test/test_local_bank_transfer_africa_address.py
test/test_local_bank_transfer_africa_destination.py
test/test_manifest.py
+test/test_manifest_base.py
+test/test_manifest_order.py
+test/test_manifest_order_info.py
+test/test_manifest_quote.py
+test/test_manifest_quote_info.py
test/test_market_execution_request_details.py
test/test_market_execution_response_details.py
test/test_market_requote_request_details.py
@@ -2711,6 +2735,7 @@ test/test_policy_type.py
test/test_policy_validation.py
test/test_policy_verdict_action_enum.py
test/test_policy_verdict_action_enum2.py
+test/test_position.py
test/test_postal_address.py
test/test_pre_screening.py
test/test_prefunded_settlement.py
@@ -2780,7 +2805,6 @@ test/test_screening_operation_failure.py
test/test_screening_operation_type.py
test/test_screening_policy_response.py
test/test_screening_provider_rules_configuration_response.py
-test/test_screening_risk_level_enum.py
test/test_screening_tr_link_amount.py
test/test_screening_tr_link_missing_trm_decision.py
test/test_screening_tr_link_missing_trm_rule.py
@@ -2826,6 +2850,7 @@ test/test_settlement.py
test/test_settlement_request_body.py
test/test_settlement_response.py
test/test_settlement_source_account.py
+test/test_settlement_type_enum.py
test/test_side.py
test/test_signed_message.py
test/test_signed_message_signature.py
@@ -2880,6 +2905,7 @@ test/test_st_eth_blockchain_data.py
test/test_stake_request.py
test/test_stake_response.py
test/test_staking_api.py
+test/test_staking_positions_paginated_response.py
test/test_staking_provider.py
test/test_status.py
test/test_stellar_ripple_create_params_dto.py
@@ -3000,6 +3026,7 @@ test/test_trading_account_type.py
test/test_trading_beta_api.py
test/test_trading_error_schema.py
test/test_trading_provider.py
+test/test_trading_provider_details.py
test/test_transaction.py
test/test_transaction_direction.py
test/test_transaction_fee.py
diff --git a/CHANGELOG.md b/CHANGELOG.md
deleted file mode 100644
index 877bba23..00000000
--- a/CHANGELOG.md
+++ /dev/null
@@ -1,224 +0,0 @@
-# Changelog
-
-All notable changes to this project will be documented in this file.
-
-The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
-and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-
-## [v15.0.0](https://github.com/fireblocks/py-sdk/compare/v14.1.0...v15.0.0) - 2026-03-15
-
-### Commits
-
-- Update python-publish.yml [`a9c280b`](https://github.com/fireblocks/py-sdk/commit/a9c280b41894af5667f5dde3b800fe2ab1fac9c9)
-
-## [v14.1.0](https://github.com/fireblocks/py-sdk/compare/v14.0.0...v14.1.0) - 2026-02-26
-
-### Merged
-
-- Generated SDK #2167 [`#127`](https://github.com/fireblocks/py-sdk/pull/127)
-
-## [v14.0.0](https://github.com/fireblocks/py-sdk/compare/v13.0.0...v14.0.0) - 2026-02-03
-
-### Merged
-
-- Generated SDK #4746 [`#123`](https://github.com/fireblocks/py-sdk/pull/123)
-
-## [v13.0.0](https://github.com/fireblocks/py-sdk/compare/v12.1.2...v13.0.0) - 2025-11-13
-
-### Merged
-
-- Generated SDK #5834 [`#121`](https://github.com/fireblocks/py-sdk/pull/121)
-
-## [v12.1.2](https://github.com/fireblocks/py-sdk/compare/v12.1.1...v12.1.2) - 2025-10-22
-
-### Merged
-
-- Generated SDK #8293 [`#120`](https://github.com/fireblocks/py-sdk/pull/120)
-
-## [v12.1.1](https://github.com/fireblocks/py-sdk/compare/v12.1.0...v12.1.1) - 2025-09-29
-
-### Merged
-
-- Generated SDK #6061 [`#119`](https://github.com/fireblocks/py-sdk/pull/119)
-
-## [v12.1.0](https://github.com/fireblocks/py-sdk/compare/v12.0.0...v12.1.0) - 2025-09-09
-
-### Merged
-
-- Generated SDK #4521 [`#118`](https://github.com/fireblocks/py-sdk/pull/118)
-
-## [v12.0.0](https://github.com/fireblocks/py-sdk/compare/v11.2.0...v12.0.0) - 2025-09-01
-
-### Merged
-
-- Generated SDK #7741 [`#117`](https://github.com/fireblocks/py-sdk/pull/117)
-
-## [v11.2.0](https://github.com/fireblocks/py-sdk/compare/v11.1.0...v11.2.0) - 2025-08-18
-
-### Merged
-
-- Generated SDK #3302 [`#116`](https://github.com/fireblocks/py-sdk/pull/116)
-
-## [v11.1.0](https://github.com/fireblocks/py-sdk/compare/v11.0.0...v11.1.0) - 2025-08-11
-
-### Merged
-
-- Generated SDK #1782 [`#115`](https://github.com/fireblocks/py-sdk/pull/115)
-
-## [v11.0.0](https://github.com/fireblocks/py-sdk/compare/v10.4.0...v11.0.0) - 2025-07-15
-
-### Merged
-
-- Generated SDK #5610 [`#114`](https://github.com/fireblocks/py-sdk/pull/114)
-
-## [v10.4.0](https://github.com/fireblocks/py-sdk/compare/v10.3.0...v10.4.0) - 2025-06-29
-
-### Merged
-
-- Generated SDK #1492 [`#113`](https://github.com/fireblocks/py-sdk/pull/113)
-
-## [v10.3.0](https://github.com/fireblocks/py-sdk/compare/v10.2.0...v10.3.0) - 2025-06-18
-
-### Merged
-
-- Generated SDK #4009 [`#112`](https://github.com/fireblocks/py-sdk/pull/112)
-
-## [v10.2.0](https://github.com/fireblocks/py-sdk/compare/v10.1.1...v10.2.0) - 2025-06-04
-
-### Merged
-
-- Generated SDK #8912 [`#111`](https://github.com/fireblocks/py-sdk/pull/111)
-
-## [v10.1.1](https://github.com/fireblocks/py-sdk/compare/v10.1.0...v10.1.1) - 2025-05-18
-
-### Merged
-
-- Generated SDK #5019 [`#110`](https://github.com/fireblocks/py-sdk/pull/110)
-
-## [v10.1.0](https://github.com/fireblocks/py-sdk/compare/v10.0.0...v10.1.0) - 2025-05-07
-
-### Merged
-
-- Generated SDK #7076 [`#107`](https://github.com/fireblocks/py-sdk/pull/107)
-
-## [v10.0.0](https://github.com/fireblocks/py-sdk/compare/v9.0.1...v10.0.0) - 2025-04-20
-
-### Merged
-
-- Generated SDK #4794 [`#105`](https://github.com/fireblocks/py-sdk/pull/105)
-
-## [v9.0.1](https://github.com/fireblocks/py-sdk/compare/v9.0.0...v9.0.1) - 2025-04-07
-
-### Merged
-
-- Generated SDK #3065 [`#104`](https://github.com/fireblocks/py-sdk/pull/104)
-
-## [v9.0.0](https://github.com/fireblocks/py-sdk/compare/v8.0.0...v9.0.0) - 2025-03-27
-
-### Merged
-
-- Generated SDK #619 [`#102`](https://github.com/fireblocks/py-sdk/pull/102)
-
-## [v8.0.0](https://github.com/fireblocks/py-sdk/compare/v7.1.0...v8.0.0) - 2025-03-17
-
-### Merged
-
-- Generated SDK #645 [`#101`](https://github.com/fireblocks/py-sdk/pull/101)
-- Generated SDK #726 [`#99`](https://github.com/fireblocks/py-sdk/pull/99)
-
-## [v7.1.0](https://github.com/fireblocks/py-sdk/compare/v7.0.1...v7.1.0) - 2025-02-25
-
-### Merged
-
-- Generated SDK #9833 [`#96`](https://github.com/fireblocks/py-sdk/pull/96)
-
-## [v7.0.1](https://github.com/fireblocks/py-sdk/compare/v7.0.0...v7.0.1) - 2025-02-12
-
-### Merged
-
-- Generated SDK #4262 [`#95`](https://github.com/fireblocks/py-sdk/pull/95)
-
-## [v7.0.0](https://github.com/fireblocks/py-sdk/compare/v6.0.0...v7.0.0) - 2025-02-02
-
-### Merged
-
-- Generated SDK #538 [`#92`](https://github.com/fireblocks/py-sdk/pull/92)
-
-## [v6.0.0](https://github.com/fireblocks/py-sdk/compare/v5.0.0...v6.0.0) - 2025-01-08
-
-### Merged
-
-- Generated SDK #8699 [`#89`](https://github.com/fireblocks/py-sdk/pull/89)
-
-## [v5.0.0](https://github.com/fireblocks/py-sdk/compare/v4.0.0...v5.0.0) - 2024-12-05
-
-### Merged
-
-- Generated SDK #1430 [`#85`](https://github.com/fireblocks/py-sdk/pull/85)
-- Update python-package.yml, deprecate macos-12 [`#86`](https://github.com/fireblocks/py-sdk/pull/86)
-
-## [v4.0.0](https://github.com/fireblocks/py-sdk/compare/v3.0.0...v4.0.0) - 2024-10-31
-
-### Merged
-
-- Generated SDK #5184 [`#82`](https://github.com/fireblocks/py-sdk/pull/82)
-
-## [v3.0.0](https://github.com/fireblocks/py-sdk/compare/v2.1.0...v3.0.0) - 2024-09-17
-
-### Merged
-
-- Generated SDK #237 [`#81`](https://github.com/fireblocks/py-sdk/pull/81)
-
-## [v2.1.0](https://github.com/fireblocks/py-sdk/compare/v2.0.0...v2.1.0) - 2024-07-25
-
-### Merged
-
-- Generated SDK #6749 [`#78`](https://github.com/fireblocks/py-sdk/pull/78)
-
-## [v2.0.0](https://github.com/fireblocks/py-sdk/compare/v1.0.4...v2.0.0) - 2024-07-17
-
-### Merged
-
-- Generated SDK #6152 [`#76`](https://github.com/fireblocks/py-sdk/pull/76)
-- Generated SDK #7647 [`#73`](https://github.com/fireblocks/py-sdk/pull/73)
-- Generated SDK #7984 [`#70`](https://github.com/fireblocks/py-sdk/pull/70)
-
-## [v1.0.4](https://github.com/fireblocks/py-sdk/compare/v1.0.3...v1.0.4) - 2024-06-26
-
-### Merged
-
-- Generated SDK #5779 [`#69`](https://github.com/fireblocks/py-sdk/pull/69)
-- Generated SDK #913 [`#68`](https://github.com/fireblocks/py-sdk/pull/68)
-- Generated SDK #1353 [`#67`](https://github.com/fireblocks/py-sdk/pull/67)
-- Generated SDK #9982 [`#66`](https://github.com/fireblocks/py-sdk/pull/66)
-- Generated SDK #1362 [`#65`](https://github.com/fireblocks/py-sdk/pull/65)
-- Generated SDK #3652 [`#64`](https://github.com/fireblocks/py-sdk/pull/64)
-
-## [v1.0.3](https://github.com/fireblocks/py-sdk/compare/v1.0.2...v1.0.3) - 2024-06-06
-
-### Merged
-
-- Generated SDK #2648 [`#30`](https://github.com/fireblocks/py-sdk/pull/30)
-
-## [v1.0.2](https://github.com/fireblocks/py-sdk/compare/v0.0.2-beta...v1.0.2) - 2024-06-04
-
-### Merged
-
-- version 1.0.2 [`#25`](https://github.com/fireblocks/py-sdk/pull/25)
-- version 1.0.0 [`#24`](https://github.com/fireblocks/py-sdk/pull/24)
-
-## v0.0.2-beta - 2024-05-30
-
-### Merged
-
-- version 0.0.2-beta [`#23`](https://github.com/fireblocks/py-sdk/pull/23)
-- Update .bumpversion.cfg [`#14`](https://github.com/fireblocks/py-sdk/pull/14)
-- Update setup.py [`#13`](https://github.com/fireblocks/py-sdk/pull/13)
-- Bug Fixes [`#12`](https://github.com/fireblocks/py-sdk/pull/12)
-- update support for beta in bumpversion [`#11`](https://github.com/fireblocks/py-sdk/pull/11)
-- Update setup.py [`#10`](https://github.com/fireblocks/py-sdk/pull/10)
-- Update setup.py [`#9`](https://github.com/fireblocks/py-sdk/pull/9)
-- Added Idempotency & NCW headers support [`#7`](https://github.com/fireblocks/py-sdk/pull/7)
-- Added Idempotency & NCW headers support [`#8`](https://github.com/fireblocks/py-sdk/pull/8)
-- Update setup.py [`#5`](https://github.com/fireblocks/py-sdk/pull/5)
-- API Support Updates [`#4`](https://github.com/fireblocks/py-sdk/pull/4)
diff --git a/README.md b/README.md
index 4ca24e78..8e6c1cbe 100644
--- a/README.md
+++ b/README.md
@@ -446,6 +446,7 @@ Class | Method | HTTP request | Description
*StakingApi* | [**get_chain_info**](docs/StakingApi.md#get_chain_info) | **GET** /staking/chains/{chainDescriptor}/chainInfo | Get chain-level staking parameters
*StakingApi* | [**get_chains**](docs/StakingApi.md#get_chains) | **GET** /staking/chains | List supported staking chains
*StakingApi* | [**get_delegation_by_id**](docs/StakingApi.md#get_delegation_by_id) | **GET** /staking/positions/{id} | Get position details
+*StakingApi* | [**get_positions**](docs/StakingApi.md#get_positions) | **GET** /staking/positions_paginated | List staking positions (Paginated)
*StakingApi* | [**get_providers**](docs/StakingApi.md#get_providers) | **GET** /staking/providers | List staking providers
*StakingApi* | [**get_summary**](docs/StakingApi.md#get_summary) | **GET** /staking/positions/summary | Get positions summary
*StakingApi* | [**get_summary_by_vault**](docs/StakingApi.md#get_summary_by_vault) | **GET** /staking/positions/summary/vaults | Get positions summary by vault
@@ -514,6 +515,7 @@ Class | Method | HTTP request | Description
*TradingBetaApi* | [**create_quote**](docs/TradingBetaApi.md#create_quote) | **POST** /trading/quotes | Create a quote
*TradingBetaApi* | [**get_order**](docs/TradingBetaApi.md#get_order) | **GET** /trading/orders/{orderId} | Get order details
*TradingBetaApi* | [**get_orders**](docs/TradingBetaApi.md#get_orders) | **GET** /trading/orders | Get orders
+*TradingBetaApi* | [**get_trading_provider_by_id**](docs/TradingBetaApi.md#get_trading_provider_by_id) | **GET** /trading/providers/{providerId} | Get trading provider by ID
*TradingBetaApi* | [**get_trading_providers**](docs/TradingBetaApi.md#get_trading_providers) | **GET** /trading/providers | Get providers
*TransactionsApi* | [**cancel_transaction**](docs/TransactionsApi.md#cancel_transaction) | **POST** /transactions/{txId}/cancel | Cancel a transaction
*TransactionsApi* | [**create_transaction**](docs/TransactionsApi.md#create_transaction) | **POST** /transactions | Create a new transaction
@@ -609,7 +611,8 @@ Class | Method | HTTP request | Description
- [AccountAccess](docs/AccountAccess.md)
- [AccountBase](docs/AccountBase.md)
- [AccountBasedAccessProvider](docs/AccountBasedAccessProvider.md)
- - [AccountBasedAccessProviderDetails](docs/AccountBasedAccessProviderDetails.md)
+ - [AccountBasedAccessProviderInfo](docs/AccountBasedAccessProviderInfo.md)
+ - [AccountBasedProviderDetails](docs/AccountBasedProviderDetails.md)
- [AccountConfig](docs/AccountConfig.md)
- [AccountHolderDetails](docs/AccountHolderDetails.md)
- [AccountIdentifier](docs/AccountIdentifier.md)
@@ -687,7 +690,6 @@ Class | Method | HTTP request | Description
- [AssetPriceResponse](docs/AssetPriceResponse.md)
- [AssetResponse](docs/AssetResponse.md)
- [AssetScope](docs/AssetScope.md)
- - [AssetTypeEnum](docs/AssetTypeEnum.md)
- [AssetTypeResponse](docs/AssetTypeResponse.md)
- [AssetTypesConfigInner](docs/AssetTypesConfigInner.md)
- [AssetWallet](docs/AssetWallet.md)
@@ -716,7 +718,6 @@ Class | Method | HTTP request | Description
- [CallbackHandler](docs/CallbackHandler.md)
- [CallbackHandlerRequest](docs/CallbackHandlerRequest.md)
- [CancelTransactionResponse](docs/CancelTransactionResponse.md)
- - [Capability](docs/Capability.md)
- [ChainDescriptor](docs/ChainDescriptor.md)
- [ChainInfoResponse](docs/ChainInfoResponse.md)
- [ChannelDvnConfigWithConfirmations](docs/ChannelDvnConfigWithConfirmations.md)
@@ -869,7 +870,8 @@ Class | Method | HTTP request | Description
- [DestinationTransferPeerPathResponse](docs/DestinationTransferPeerPathResponse.md)
- [DirectAccess](docs/DirectAccess.md)
- [DirectAccessProvider](docs/DirectAccessProvider.md)
- - [DirectAccessProviderDetails](docs/DirectAccessProviderDetails.md)
+ - [DirectAccessProviderInfo](docs/DirectAccessProviderInfo.md)
+ - [DirectProviderDetails](docs/DirectProviderDetails.md)
- [DisbursementAmountInstruction](docs/DisbursementAmountInstruction.md)
- [DisbursementConfigOperation](docs/DisbursementConfigOperation.md)
- [DisbursementInstruction](docs/DisbursementInstruction.md)
@@ -935,6 +937,7 @@ Class | Method | HTTP request | Description
- [ExecutionOperationStatus](docs/ExecutionOperationStatus.md)
- [ExecutionRequestBaseDetails](docs/ExecutionRequestBaseDetails.md)
- [ExecutionRequestDetails](docs/ExecutionRequestDetails.md)
+ - [ExecutionRequestDetailsType](docs/ExecutionRequestDetailsType.md)
- [ExecutionResponseBaseDetails](docs/ExecutionResponseBaseDetails.md)
- [ExecutionResponseDetails](docs/ExecutionResponseDetails.md)
- [ExecutionScreeningOperation](docs/ExecutionScreeningOperation.md)
@@ -1062,6 +1065,11 @@ Class | Method | HTTP request | Description
- [LocalBankTransferAfricaAddress](docs/LocalBankTransferAfricaAddress.md)
- [LocalBankTransferAfricaDestination](docs/LocalBankTransferAfricaDestination.md)
- [Manifest](docs/Manifest.md)
+ - [ManifestBase](docs/ManifestBase.md)
+ - [ManifestOrder](docs/ManifestOrder.md)
+ - [ManifestOrderInfo](docs/ManifestOrderInfo.md)
+ - [ManifestQuote](docs/ManifestQuote.md)
+ - [ManifestQuoteInfo](docs/ManifestQuoteInfo.md)
- [MarketExecutionRequestDetails](docs/MarketExecutionRequestDetails.md)
- [MarketExecutionResponseDetails](docs/MarketExecutionResponseDetails.md)
- [MarketRequoteRequestDetails](docs/MarketRequoteRequestDetails.md)
@@ -1168,6 +1176,7 @@ Class | Method | HTTP request | Description
- [PolicyValidation](docs/PolicyValidation.md)
- [PolicyVerdictActionEnum](docs/PolicyVerdictActionEnum.md)
- [PolicyVerdictActionEnum2](docs/PolicyVerdictActionEnum2.md)
+ - [Position](docs/Position.md)
- [PostalAddress](docs/PostalAddress.md)
- [PreScreening](docs/PreScreening.md)
- [PrefundedSettlement](docs/PrefundedSettlement.md)
@@ -1240,7 +1249,6 @@ Class | Method | HTTP request | Description
- [ScreeningOperationType](docs/ScreeningOperationType.md)
- [ScreeningPolicyResponse](docs/ScreeningPolicyResponse.md)
- [ScreeningProviderRulesConfigurationResponse](docs/ScreeningProviderRulesConfigurationResponse.md)
- - [ScreeningRiskLevelEnum](docs/ScreeningRiskLevelEnum.md)
- [ScreeningTRLinkAmount](docs/ScreeningTRLinkAmount.md)
- [ScreeningTRLinkMissingTrmDecision](docs/ScreeningTRLinkMissingTrmDecision.md)
- [ScreeningTRLinkMissingTrmRule](docs/ScreeningTRLinkMissingTrmRule.md)
@@ -1284,6 +1292,7 @@ Class | Method | HTTP request | Description
- [SettlementRequestBody](docs/SettlementRequestBody.md)
- [SettlementResponse](docs/SettlementResponse.md)
- [SettlementSourceAccount](docs/SettlementSourceAccount.md)
+ - [SettlementTypeEnum](docs/SettlementTypeEnum.md)
- [Side](docs/Side.md)
- [SignedMessage](docs/SignedMessage.md)
- [SignedMessageSignature](docs/SignedMessageSignature.md)
@@ -1334,6 +1343,7 @@ Class | Method | HTTP request | Description
- [StEthBlockchainData](docs/StEthBlockchainData.md)
- [StakeRequest](docs/StakeRequest.md)
- [StakeResponse](docs/StakeResponse.md)
+ - [StakingPositionsPaginatedResponse](docs/StakingPositionsPaginatedResponse.md)
- [StakingProvider](docs/StakingProvider.md)
- [Status](docs/Status.md)
- [StellarRippleCreateParamsDto](docs/StellarRippleCreateParamsDto.md)
@@ -1450,6 +1460,7 @@ Class | Method | HTTP request | Description
- [TradingAccountType](docs/TradingAccountType.md)
- [TradingErrorSchema](docs/TradingErrorSchema.md)
- [TradingProvider](docs/TradingProvider.md)
+ - [TradingProviderDetails](docs/TradingProviderDetails.md)
- [Transaction](docs/Transaction.md)
- [TransactionDirection](docs/TransactionDirection.md)
- [TransactionFee](docs/TransactionFee.md)
diff --git a/docs/AccountBasedAccessProvider.md b/docs/AccountBasedAccessProvider.md
index dc698c49..6aa8a54f 100644
--- a/docs/AccountBasedAccessProvider.md
+++ b/docs/AccountBasedAccessProvider.md
@@ -11,7 +11,7 @@ Name | Type | Description | Notes
**account_based** | **bool** | Indicates whether the provider access model is through accounts or directly |
**manifest** | [**Manifest**](Manifest.md) | |
**connected** | **bool** | Whether the provider is currently connected |
-**accounts** | [**List[AccountBase]**](AccountBase.md) | | [optional]
+**accounts** | [**List[AccountBase]**](AccountBase.md) | |
## Example
diff --git a/docs/AccountBasedAccessProviderDetails.md b/docs/AccountBasedAccessProviderDetails.md
deleted file mode 100644
index 0fadad55..00000000
--- a/docs/AccountBasedAccessProviderDetails.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# AccountBasedAccessProviderDetails
-
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**manifest** | [**Manifest**](Manifest.md) | |
-**connected** | **bool** | Whether the provider is currently connected |
-**accounts** | [**List[AccountBase]**](AccountBase.md) | | [optional]
-
-## Example
-
-```python
-from fireblocks.models.account_based_access_provider_details import AccountBasedAccessProviderDetails
-
-# TODO update the JSON string below
-json = "{}"
-# create an instance of AccountBasedAccessProviderDetails from a JSON string
-account_based_access_provider_details_instance = AccountBasedAccessProviderDetails.from_json(json)
-# print the JSON string representation of the object
-print(AccountBasedAccessProviderDetails.to_json())
-
-# convert the object into a dict
-account_based_access_provider_details_dict = account_based_access_provider_details_instance.to_dict()
-# create an instance of AccountBasedAccessProviderDetails from a dict
-account_based_access_provider_details_from_dict = AccountBasedAccessProviderDetails.from_dict(account_based_access_provider_details_dict)
-```
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
-
-
diff --git a/docs/AccountBasedAccessProviderInfo.md b/docs/AccountBasedAccessProviderInfo.md
new file mode 100644
index 00000000..e13f55dc
--- /dev/null
+++ b/docs/AccountBasedAccessProviderInfo.md
@@ -0,0 +1,30 @@
+# AccountBasedAccessProviderInfo
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**connected** | **bool** | Whether the provider is currently connected |
+**accounts** | [**List[AccountBase]**](AccountBase.md) | |
+
+## Example
+
+```python
+from fireblocks.models.account_based_access_provider_info import AccountBasedAccessProviderInfo
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AccountBasedAccessProviderInfo from a JSON string
+account_based_access_provider_info_instance = AccountBasedAccessProviderInfo.from_json(json)
+# print the JSON string representation of the object
+print(AccountBasedAccessProviderInfo.to_json())
+
+# convert the object into a dict
+account_based_access_provider_info_dict = account_based_access_provider_info_instance.to_dict()
+# create an instance of AccountBasedAccessProviderInfo from a dict
+account_based_access_provider_info_from_dict = AccountBasedAccessProviderInfo.from_dict(account_based_access_provider_info_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/AccountBasedProviderDetails.md b/docs/AccountBasedProviderDetails.md
new file mode 100644
index 00000000..a2fa7e07
--- /dev/null
+++ b/docs/AccountBasedProviderDetails.md
@@ -0,0 +1,35 @@
+# AccountBasedProviderDetails
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | Unique identifier for the provider |
+**name** | **str** | Display name of the provider |
+**logo** | **str** | URL to the logo image of the provider | [optional]
+**account_based** | **bool** | Indicates whether the provider access model is through accounts or directly |
+**manifest** | [**Manifest**](Manifest.md) | |
+**connected** | **bool** | Whether the provider is currently connected |
+**accounts** | [**List[AccountBase]**](AccountBase.md) | |
+
+## Example
+
+```python
+from fireblocks.models.account_based_provider_details import AccountBasedProviderDetails
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AccountBasedProviderDetails from a JSON string
+account_based_provider_details_instance = AccountBasedProviderDetails.from_json(json)
+# print the JSON string representation of the object
+print(AccountBasedProviderDetails.to_json())
+
+# convert the object into a dict
+account_based_provider_details_dict = account_based_provider_details_instance.to_dict()
+# create an instance of AccountBasedProviderDetails from a dict
+account_based_provider_details_from_dict = AccountBasedProviderDetails.from_dict(account_based_provider_details_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/AmlResult.md b/docs/AmlResult.md
index d31c6fa1..205e946c 100644
--- a/docs/AmlResult.md
+++ b/docs/AmlResult.md
@@ -1,6 +1,6 @@
# AmlResult
-Detailed AML screening result information. Contains alerts, risk scores, and other AML-specific data from provider-specific responses.
+Deprecated: This field is not currently returned in the API response. Detailed AML screening result information. Contains alerts, risk scores, and other AML-specific data from provider-specific responses.
## Properties
diff --git a/docs/AmlStatusEnum.md b/docs/AmlStatusEnum.md
index ad8cc9ec..4ff32523 100644
--- a/docs/AmlStatusEnum.md
+++ b/docs/AmlStatusEnum.md
@@ -1,6 +1,6 @@
# AmlStatusEnum
-AML screening status
+Deprecated: Use screeningStatus instead. AML screening status.
## Enum
diff --git a/docs/BaseProvider.md b/docs/BaseProvider.md
index 52817c1f..f31aa1f6 100644
--- a/docs/BaseProvider.md
+++ b/docs/BaseProvider.md
@@ -9,6 +9,7 @@ Name | Type | Description | Notes
**name** | **str** | Display name of the provider |
**logo** | **str** | URL to the logo image of the provider | [optional]
**account_based** | **bool** | Indicates whether the provider access model is through accounts or directly |
+**manifest** | [**Manifest**](Manifest.md) | |
## Example
diff --git a/docs/ComplianceScreeningResult.md b/docs/ComplianceScreeningResult.md
index 9f1ba3de..c28f2d1b 100644
--- a/docs/ComplianceScreeningResult.md
+++ b/docs/ComplianceScreeningResult.md
@@ -6,26 +6,26 @@ The result of the AML/Travel Rule screening. This unified schema contains all fi
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**provider** | **str** | The AML/Travel Rule provider name. For AML: ELLIPTIC, CHAINALYSIS, SCORECHAIN, MERKLE_SCIENCE, etc. For Travel Rule: NOTABENE, SYGNA, or any TRLink provider name | [optional]
+**provider** | **str** | The AML/Travel Rule provider name. For AML: ELLIPTIC, CHAINALYSIS, etc. For Travel Rule: NOTABENE, SUMSUB, GTR, or any TRLink provider name. | [optional]
**payload** | **object** | The raw payload of the screening result from the provider. The payload is a JSON object that contains the screening result. The payload structure is different for each screening provider. This field contains the complete, unmodified response from the screening service. | [optional]
**timestamp** | **float** | Unix timestamp in milliseconds when the screening result was generated | [optional]
**screening_status** | **str** | Current status of the screening process | [optional]
-**bypass_reason** | **str** | Reason for bypassing the screening, if applicable. For AML: SANCTIONS_SCREENING_BYPASS, SANCTIONS_RECIPIENT_BYPASS, etc. For Travel Rule: BELOW_THRESHOLD, NO_TRM_AVAILABLE, etc. | [optional]
+**bypass_reason** | **str** | Reason for bypassing the screening, if applicable. For AML: UNSUPPORTED_ASSET, PASSED_BY_POLICY. For Travel Rule: UNSUPPORTED_ASSET, NO_TRAVEL_RULE_MESSAGE, TRANSACTION_ZERO_AMOUNT. | [optional]
**status** | [**AmlStatusEnum**](AmlStatusEnum.md) | | [optional]
**prev_status** | [**AmlStatusEnum**](AmlStatusEnum.md) | | [optional]
-**prev_bypass_reason** | **str** | Previous bypass reason before the current bypass reason change | [optional]
+**prev_bypass_reason** | **str** | Deprecated: This field is not currently returned in the API response. Previous bypass reason before the current bypass reason change. | [optional]
**verdict** | [**ScreeningVerdictEnum**](ScreeningVerdictEnum.md) | | [optional]
-**risk** | [**ScreeningRiskLevelEnum**](ScreeningRiskLevelEnum.md) | | [optional]
-**extended_risk** | [**ScreeningRiskLevelEnum**](ScreeningRiskLevelEnum.md) | | [optional]
+**risk** | **str** | Risk level assessment for screening results. Values vary by provider and are not managed by this service. Known values by provider: - Chainalysis: severeRisk, highRisk, mediumRisk, lowRisk, noRiskInfo - Elliptic: noRiskDetected Legacy values (SCREAMING_SNAKE_CASE, may appear in old transactions): VERY_HIGH, SEVERE, HIGH, MEDIUM, LOW, NO_RISK_INFO, UNKNOWN | [optional]
+**extended_risk** | **str** | Deprecated: This field is not currently returned in the API response. Use risk instead. | [optional]
**external_id** | **str** | External identifier for the screening (provider-specific) | [optional]
**customer_ref_id** | **str** | Customer-provided reference identifier for tracking | [optional]
-**ref_id** | **str** | Internal reference identifier | [optional]
+**ref_id** | **str** | Deprecated: This field is not currently returned in the API response. Internal reference identifier. | [optional]
**category** | **str** | Risk category classification. Examples: EXCHANGE, GAMBLING, MIXER, DARKNET_SERVICE, SANCTIONED_ENTITY | [optional]
**category_id** | **float** | Numeric identifier for the risk category | [optional]
**dest_address** | **str** | The destination blockchain address associated with the screening | [optional]
**dest_tag** | **str** | Destination tag or memo (for chains that support it like XRP, XLM) | [optional]
-**dest_record_id** | **str** | The destination record identifier used by the screening provider | [optional]
-**address_resolution_signature** | **str** | Cryptographic signature for address resolution verification | [optional]
+**dest_record_id** | **str** | Deprecated: This field is not currently returned in the API response. The destination record identifier used by the screening provider. | [optional]
+**address_resolution_signature** | **str** | Deprecated: This field is not currently returned in the API response. Cryptographic signature for address resolution verification. | [optional]
**aml_result** | [**AmlResult**](AmlResult.md) | | [optional]
**result** | [**TravelRuleResult**](TravelRuleResult.md) | | [optional]
**details_message** | **str** | Additional human-readable details or message about the screening result | [optional]
@@ -36,6 +36,7 @@ Name | Type | Description | Notes
**customer_integration_id** | **str** | Customer integration identifier used by Travel Rule providers | [optional]
**customer_short_name** | **str** | Customer short name registered with Travel Rule providers | [optional]
**travel_rule_message_id** | **str** | Travel rule message identifier for linking and tracking across providers | [optional]
+**provider_response** | **Dict[str, object]** | Complete response from the screening provider. This is a dynamic object that varies significantly between different providers (Chainalysis, Elliptic, NOTABENE, etc.). Each provider has their own proprietary response format and schema. For AML providers: Contains risk scores, alerts, entity information For Travel Rule providers: Contains VASP information, PII data, protocol-specific fields The structure is provider-dependent and cannot be standardized as each vendor implements their own proprietary data models and response formats. | [optional]
## Example
diff --git a/docs/ComplianceScreeningResultFullPayload.md b/docs/ComplianceScreeningResultFullPayload.md
index 0b6b97f3..33286561 100644
--- a/docs/ComplianceScreeningResultFullPayload.md
+++ b/docs/ComplianceScreeningResultFullPayload.md
@@ -6,26 +6,26 @@ The result of the AML/Travel Rule screening. This unified schema contains all fi
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**provider** | **str** | The AML/Travel Rule provider name. For AML: ELLIPTIC, CHAINALYSIS, etc. For Travel Rule: NOTABENE, SUMSUB, or any TRLink provider name | [optional]
+**provider** | **str** | The AML/Travel Rule provider name. For AML: ELLIPTIC, CHAINALYSIS, etc. For Travel Rule: NOTABENE, SUMSUB, GTR, or any TRLink provider name | [optional]
**payload** | **object** | The raw payload of the screening result from the provider. The payload is a JSON object that contains the screening result. The payload structure is different for each screening provider. This field contains the complete, unmodified response from the screening service. | [optional]
**timestamp** | **float** | Unix timestamp in milliseconds when the screening result was generated | [optional]
**screening_status** | **str** | Current status of the screening process | [optional]
-**bypass_reason** | **str** | Reason for bypassing the screening, if applicable. For AML: SANCTIONS_SCREENING_BYPASS, SANCTIONS_RECIPIENT_BYPASS, etc. For Travel Rule: BELOW_THRESHOLD, NO_TRM_AVAILABLE, etc. | [optional]
+**bypass_reason** | **str** | Reason for bypassing the screening, if applicable. For AML: UNSUPPORTED_ASSET, PASSED_BY_POLICY. For Travel Rule: UNSUPPORTED_ASSET, NO_TRAVEL_RULE_MESSAGE, TRANSACTION_ZERO_AMOUNT. | [optional]
**status** | [**AmlStatusEnum**](AmlStatusEnum.md) | | [optional]
**prev_status** | [**AmlStatusEnum**](AmlStatusEnum.md) | | [optional]
-**prev_bypass_reason** | **str** | Previous bypass reason before the current bypass reason change | [optional]
+**prev_bypass_reason** | **str** | Deprecated: This field is not currently returned in the API response. Previous bypass reason before the current bypass reason change. | [optional]
**verdict** | [**ScreeningVerdictEnum**](ScreeningVerdictEnum.md) | | [optional]
-**risk** | [**ScreeningRiskLevelEnum**](ScreeningRiskLevelEnum.md) | | [optional]
-**extended_risk** | [**ScreeningRiskLevelEnum**](ScreeningRiskLevelEnum.md) | | [optional]
+**risk** | **str** | Risk level assessment for screening results. Values vary by provider and are not managed by this service. Known values by provider: - Chainalysis: severeRisk, highRisk, mediumRisk, lowRisk, noRiskInfo - Elliptic: noRiskDetected Legacy values (SCREAMING_SNAKE_CASE, may appear in old transactions): VERY_HIGH, SEVERE, HIGH, MEDIUM, LOW, NO_RISK_INFO, UNKNOWN | [optional]
+**extended_risk** | **str** | Deprecated: This field is not currently returned in the API response. Use risk instead. | [optional]
**external_id** | **str** | External identifier for the screening (provider-specific) | [optional]
**customer_ref_id** | **str** | Customer-provided reference identifier for tracking | [optional]
-**ref_id** | **str** | Internal reference identifier | [optional]
+**ref_id** | **str** | Deprecated: This field is not currently returned in the API response. Internal reference identifier. | [optional]
**category** | **str** | Risk category classification. Examples: EXCHANGE, GAMBLING, MIXER, DARKNET_SERVICE, SANCTIONED_ENTITY | [optional]
**category_id** | **float** | Numeric identifier for the risk category | [optional]
**dest_address** | **str** | The destination blockchain address associated with the screening | [optional]
**dest_tag** | **str** | Destination tag or memo (for chains that support it like XRP, XLM) | [optional]
-**dest_record_id** | **str** | The destination record identifier used by the screening provider | [optional]
-**address_resolution_signature** | **str** | Cryptographic signature for address resolution verification | [optional]
+**dest_record_id** | **str** | Deprecated: This field is not currently returned in the API response. The destination record identifier used by the screening provider. | [optional]
+**address_resolution_signature** | **str** | Deprecated: This field is not currently returned in the API response. Cryptographic signature for address resolution verification. | [optional]
**aml_result** | [**ScreeningAmlResult**](ScreeningAmlResult.md) | | [optional]
**result** | [**ScreeningTravelRuleResult**](ScreeningTravelRuleResult.md) | | [optional]
**details_message** | **str** | Additional human-readable details or message about the screening result | [optional]
@@ -36,6 +36,7 @@ Name | Type | Description | Notes
**customer_integration_id** | **str** | Customer integration identifier used by Travel Rule providers | [optional]
**customer_short_name** | **str** | Customer short name registered with Travel Rule providers | [optional]
**travel_rule_message_id** | **str** | Travel rule message identifier for linking and tracking across providers | [optional]
+**provider_response** | **Dict[str, object]** | Complete response from the screening provider. This is a dynamic object that varies significantly between different providers (Chainalysis, Elliptic, NOTABENE, etc.). Each provider has their own proprietary response format and schema. For AML providers: Contains risk scores, alerts, entity information For Travel Rule providers: Contains VASP information, PII data, protocol-specific fields The structure is provider-dependent and cannot be standardized as each vendor implements their own proprietary data models and response formats. | [optional]
## Example
diff --git a/docs/CreateMultipleAccountsRequest.md b/docs/CreateMultipleAccountsRequest.md
index f416113f..5db265d4 100644
--- a/docs/CreateMultipleAccountsRequest.md
+++ b/docs/CreateMultipleAccountsRequest.md
@@ -10,6 +10,7 @@ Name | Type | Description | Notes
**names** | **List[str]** | Names to assign to vault accounts. if vaultAccountNamesStartingIndex or prefix is used it'll fail | [optional]
**vault_account_names_starting_index** | **int** | Copy vault accounts names starting from this index. If names array is used it'll fail | [optional]
**prefix** | **str** | When copying from existing vault accounts (vaultAccountNamesStartingIndex) then adding a prefix to the names. If names array is used it'll fail | [optional]
+**tag_ids** | **List[str]** | Optional list of tag IDs to attach to all created vault accounts | [optional]
## Example
diff --git a/docs/DirectAccessProvider.md b/docs/DirectAccessProvider.md
index 8c8a1240..9480ad01 100644
--- a/docs/DirectAccessProvider.md
+++ b/docs/DirectAccessProvider.md
@@ -9,9 +9,11 @@ Name | Type | Description | Notes
**name** | **str** | Display name of the provider |
**logo** | **str** | URL to the logo image of the provider | [optional]
**account_based** | **bool** | Indicates whether the provider access model is through accounts or directly |
+**manifest** | [**Manifest**](Manifest.md) | |
**approved** | **bool** | Whether the provider was approved for use | [optional]
**has_terms_of_service** | **bool** | Whether the provider has terms of service |
**terms_of_service_url** | **str** | URL to the terms of service document | [optional]
+**privacy_policy_url** | **str** | URL to the privacy policy document | [optional]
## Example
diff --git a/docs/DirectAccessProviderDetails.md b/docs/DirectAccessProviderInfo.md
similarity index 52%
rename from docs/DirectAccessProviderDetails.md
rename to docs/DirectAccessProviderInfo.md
index b8849694..4883c65e 100644
--- a/docs/DirectAccessProviderDetails.md
+++ b/docs/DirectAccessProviderInfo.md
@@ -1,4 +1,4 @@
-# DirectAccessProviderDetails
+# DirectAccessProviderInfo
## Properties
@@ -8,23 +8,24 @@ Name | Type | Description | Notes
**approved** | **bool** | Whether the provider was approved for use | [optional]
**has_terms_of_service** | **bool** | Whether the provider has terms of service |
**terms_of_service_url** | **str** | URL to the terms of service document | [optional]
+**privacy_policy_url** | **str** | URL to the privacy policy document | [optional]
## Example
```python
-from fireblocks.models.direct_access_provider_details import DirectAccessProviderDetails
+from fireblocks.models.direct_access_provider_info import DirectAccessProviderInfo
# TODO update the JSON string below
json = "{}"
-# create an instance of DirectAccessProviderDetails from a JSON string
-direct_access_provider_details_instance = DirectAccessProviderDetails.from_json(json)
+# create an instance of DirectAccessProviderInfo from a JSON string
+direct_access_provider_info_instance = DirectAccessProviderInfo.from_json(json)
# print the JSON string representation of the object
-print(DirectAccessProviderDetails.to_json())
+print(DirectAccessProviderInfo.to_json())
# convert the object into a dict
-direct_access_provider_details_dict = direct_access_provider_details_instance.to_dict()
-# create an instance of DirectAccessProviderDetails from a dict
-direct_access_provider_details_from_dict = DirectAccessProviderDetails.from_dict(direct_access_provider_details_dict)
+direct_access_provider_info_dict = direct_access_provider_info_instance.to_dict()
+# create an instance of DirectAccessProviderInfo from a dict
+direct_access_provider_info_from_dict = DirectAccessProviderInfo.from_dict(direct_access_provider_info_dict)
```
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/docs/DirectProviderDetails.md b/docs/DirectProviderDetails.md
new file mode 100644
index 00000000..f0c35e38
--- /dev/null
+++ b/docs/DirectProviderDetails.md
@@ -0,0 +1,37 @@
+# DirectProviderDetails
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | Unique identifier for the provider |
+**name** | **str** | Display name of the provider |
+**logo** | **str** | URL to the logo image of the provider | [optional]
+**account_based** | **bool** | Indicates whether the provider access model is through accounts or directly |
+**manifest** | [**Manifest**](Manifest.md) | |
+**approved** | **bool** | Whether the provider was approved for use | [optional]
+**has_terms_of_service** | **bool** | Whether the provider has terms of service |
+**terms_of_service_url** | **str** | URL to the terms of service document | [optional]
+**privacy_policy_url** | **str** | URL to the privacy policy document | [optional]
+
+## Example
+
+```python
+from fireblocks.models.direct_provider_details import DirectProviderDetails
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of DirectProviderDetails from a JSON string
+direct_provider_details_instance = DirectProviderDetails.from_json(json)
+# print the JSON string representation of the object
+print(DirectProviderDetails.to_json())
+
+# convert the object into a dict
+direct_provider_details_dict = direct_provider_details_instance.to_dict()
+# create an instance of DirectProviderDetails from a dict
+direct_provider_details_from_dict = DirectProviderDetails.from_dict(direct_provider_details_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/Capability.md b/docs/ExecutionRequestDetailsType.md
similarity index 57%
rename from docs/Capability.md
rename to docs/ExecutionRequestDetailsType.md
index e3fec47a..24bb3e08 100644
--- a/docs/Capability.md
+++ b/docs/ExecutionRequestDetailsType.md
@@ -1,13 +1,12 @@
-# Capability
+# ExecutionRequestDetailsType
+Execution type supported by the provider
## Enum
-* `WITHDRAWALS` (value: `'WITHDRAWALS'`)
+* `QUOTE` (value: `'QUOTE'`)
-* `DEPOSITS` (value: `'DEPOSITS'`)
-
-* `TRADING` (value: `'TRADING'`)
+* `MARKET` (value: `'MARKET'`)
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/docs/JobCreated.md b/docs/JobCreated.md
index f3c2c445..c6c67348 100644
--- a/docs/JobCreated.md
+++ b/docs/JobCreated.md
@@ -6,6 +6,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**job_id** | **str** | | [optional]
+**approval_request_id** | **str** | Approval request ID. Returned when a tag triggers an approval flow. | [optional]
## Example
diff --git a/docs/Manifest.md b/docs/Manifest.md
index ed5df2f2..f2a38ee7 100644
--- a/docs/Manifest.md
+++ b/docs/Manifest.md
@@ -1,12 +1,14 @@
# Manifest
+The manifest of the provider, describing its supported order, quote, and rate requirements.
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**asset_types** | [**List[AssetTypeEnum]**](AssetTypeEnum.md) | |
-**capabilities** | [**List[Capability]**](Capability.md) | |
+**order** | [**ManifestOrder**](ManifestOrder.md) | |
+**quote** | [**ManifestQuote**](ManifestQuote.md) | |
+**rate** | [**ManifestBase**](ManifestBase.md) | |
## Example
diff --git a/docs/ManifestBase.md b/docs/ManifestBase.md
new file mode 100644
index 00000000..9f4aa394
--- /dev/null
+++ b/docs/ManifestBase.md
@@ -0,0 +1,30 @@
+# ManifestBase
+
+Base manifest schema with common properties
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**supported** | **bool** | Indicates whether the endpoint is supported by the provider |
+
+## Example
+
+```python
+from fireblocks.models.manifest_base import ManifestBase
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ManifestBase from a JSON string
+manifest_base_instance = ManifestBase.from_json(json)
+# print the JSON string representation of the object
+print(ManifestBase.to_json())
+
+# convert the object into a dict
+manifest_base_dict = manifest_base_instance.to_dict()
+# create an instance of ManifestBase from a dict
+manifest_base_from_dict = ManifestBase.from_dict(manifest_base_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/ManifestOrder.md b/docs/ManifestOrder.md
new file mode 100644
index 00000000..6495d192
--- /dev/null
+++ b/docs/ManifestOrder.md
@@ -0,0 +1,31 @@
+# ManifestOrder
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**supported** | **bool** | Indicates whether the endpoint is supported by the provider |
+**settlement_types** | [**List[SettlementTypeEnum]**](SettlementTypeEnum.md) | Supported settlement types when creating an order. If present - settlement is required. If absent - no need to provide settlement. | [optional]
+**execution_types** | [**List[ExecutionRequestDetailsType]**](ExecutionRequestDetailsType.md) | Supported execution types when creating an order. |
+
+## Example
+
+```python
+from fireblocks.models.manifest_order import ManifestOrder
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ManifestOrder from a JSON string
+manifest_order_instance = ManifestOrder.from_json(json)
+# print the JSON string representation of the object
+print(ManifestOrder.to_json())
+
+# convert the object into a dict
+manifest_order_dict = manifest_order_instance.to_dict()
+# create an instance of ManifestOrder from a dict
+manifest_order_from_dict = ManifestOrder.from_dict(manifest_order_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/ManifestOrderInfo.md b/docs/ManifestOrderInfo.md
new file mode 100644
index 00000000..d42c9801
--- /dev/null
+++ b/docs/ManifestOrderInfo.md
@@ -0,0 +1,31 @@
+# ManifestOrderInfo
+
+Defines requirements for the POST /orders endpoint.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**settlement_types** | [**List[SettlementTypeEnum]**](SettlementTypeEnum.md) | Supported settlement types when creating an order. If present - settlement is required. If absent - no need to provide settlement. | [optional]
+**execution_types** | [**List[ExecutionRequestDetailsType]**](ExecutionRequestDetailsType.md) | Supported execution types when creating an order. |
+
+## Example
+
+```python
+from fireblocks.models.manifest_order_info import ManifestOrderInfo
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ManifestOrderInfo from a JSON string
+manifest_order_info_instance = ManifestOrderInfo.from_json(json)
+# print the JSON string representation of the object
+print(ManifestOrderInfo.to_json())
+
+# convert the object into a dict
+manifest_order_info_dict = manifest_order_info_instance.to_dict()
+# create an instance of ManifestOrderInfo from a dict
+manifest_order_info_from_dict = ManifestOrderInfo.from_dict(manifest_order_info_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/ManifestQuote.md b/docs/ManifestQuote.md
new file mode 100644
index 00000000..847c6818
--- /dev/null
+++ b/docs/ManifestQuote.md
@@ -0,0 +1,30 @@
+# ManifestQuote
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**supported** | **bool** | Indicates whether the endpoint is supported by the provider |
+**settlement_types** | [**List[DVPSettlementType]**](DVPSettlementType.md) | Supported settlement types when requesting a quote. If present - settlement is required. If absent - no need to provide settlement. | [optional]
+
+## Example
+
+```python
+from fireblocks.models.manifest_quote import ManifestQuote
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ManifestQuote from a JSON string
+manifest_quote_instance = ManifestQuote.from_json(json)
+# print the JSON string representation of the object
+print(ManifestQuote.to_json())
+
+# convert the object into a dict
+manifest_quote_dict = manifest_quote_instance.to_dict()
+# create an instance of ManifestQuote from a dict
+manifest_quote_from_dict = ManifestQuote.from_dict(manifest_quote_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/ManifestQuoteInfo.md b/docs/ManifestQuoteInfo.md
new file mode 100644
index 00000000..176cb11a
--- /dev/null
+++ b/docs/ManifestQuoteInfo.md
@@ -0,0 +1,30 @@
+# ManifestQuoteInfo
+
+Defines requirements for the POST /quotes endpoint.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**settlement_types** | [**List[DVPSettlementType]**](DVPSettlementType.md) | Supported settlement types when requesting a quote. If present - settlement is required. If absent - no need to provide settlement. | [optional]
+
+## Example
+
+```python
+from fireblocks.models.manifest_quote_info import ManifestQuoteInfo
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ManifestQuoteInfo from a JSON string
+manifest_quote_info_instance = ManifestQuoteInfo.from_json(json)
+# print the JSON string representation of the object
+print(ManifestQuoteInfo.to_json())
+
+# convert the object into a dict
+manifest_quote_info_dict = manifest_quote_info_instance.to_dict()
+# create an instance of ManifestQuoteInfo from a dict
+manifest_quote_info_from_dict = ManifestQuoteInfo.from_dict(manifest_quote_info_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/Position.md b/docs/Position.md
new file mode 100644
index 00000000..d476300d
--- /dev/null
+++ b/docs/Position.md
@@ -0,0 +1,44 @@
+# Position
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | The unique identifier of the staking position |
+**vault_account_id** | **str** | The source vault account to stake from |
+**validator_name** | **str** | The destination validator address name |
+**provider_name** | **str** | The destination validator provider name |
+**chain_descriptor** | **str** | The protocol identifier (e.g. \"ETH\"/ \"SOL\") to use |
+**amount** | **str** | Total value of the staking position. For Solana, Lido and Ethereum (compounding validator): includes the original stake plus accumulated rewards. For MATIC, Cosmos and Ethereum (legacy validator): refers to the amount currently staked. |
+**rewards_amount** | **str** | The amount staked in the position, measured in the staked asset unit. |
+**date_created** | **datetime** | When was the request made (ISO Date). |
+**date_updated** | **datetime** | When has the position last changed (ISO Date). |
+**status** | **str** | The current status. |
+**validator_address** | **str** | The destination address of the staking transaction. |
+**provider_id** | [**StakingProvider**](StakingProvider.md) | |
+**available_actions** | **List[str]** | An array of available actions that can be performed. for example, actions like \"UNSTAKE\" or \"WITHDRAW\". |
+**in_progress** | **bool** | Indicates whether there is an ongoing action for this position related to this request |
+**in_progress_tx_id** | **str** | The transaction ID of the initial stake position request only. Only present when there is an active initial stake transaction. | [optional]
+**blockchain_position_info** | [**DelegationBlockchainPositionInfo**](DelegationBlockchainPositionInfo.md) | |
+
+## Example
+
+```python
+from fireblocks.models.position import Position
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of Position from a JSON string
+position_instance = Position.from_json(json)
+# print the JSON string representation of the object
+print(Position.to_json())
+
+# convert the object into a dict
+position_dict = position_instance.to_dict()
+# create an instance of Position from a dict
+position_from_dict = Position.from_dict(position_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/ScreeningAmlResult.md b/docs/ScreeningAmlResult.md
index ea61c52d..8996bf7c 100644
--- a/docs/ScreeningAmlResult.md
+++ b/docs/ScreeningAmlResult.md
@@ -1,6 +1,6 @@
# ScreeningAmlResult
-Detailed AML screening result information. Contains alerts, risk scores, and other AML-specific data from provider-specific responses.
+Deprecated: This field is not currently returned in the API response. Detailed AML screening result information. Contains alerts, risk scores, and other AML-specific data from provider-specific responses.
## Properties
diff --git a/docs/ScreeningRiskLevelEnum.md b/docs/ScreeningRiskLevelEnum.md
deleted file mode 100644
index c8294e56..00000000
--- a/docs/ScreeningRiskLevelEnum.md
+++ /dev/null
@@ -1,21 +0,0 @@
-# ScreeningRiskLevelEnum
-
-Risk level assessment for screening results. Possible values vary by provider and context.
-
-## Enum
-
-* `VERY_HIGH` (value: `'VERY_HIGH'`)
-
-* `SEVERE` (value: `'SEVERE'`)
-
-* `HIGH` (value: `'HIGH'`)
-
-* `MEDIUM` (value: `'MEDIUM'`)
-
-* `LOW` (value: `'LOW'`)
-
-* `UNKNOWN` (value: `'UNKNOWN'`)
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
-
-
diff --git a/docs/ScreeningTravelRuleResult.md b/docs/ScreeningTravelRuleResult.md
index 5da79c13..d0648c6a 100644
--- a/docs/ScreeningTravelRuleResult.md
+++ b/docs/ScreeningTravelRuleResult.md
@@ -1,6 +1,6 @@
# ScreeningTravelRuleResult
-Detailed Travel Rule screening result containing provider-specific data. Contains Travel Rule specific information like verified status, rule type, and actions.
+Deprecated: This field is not currently returned in the API response. Detailed Travel Rule screening result containing provider-specific data. Contains Travel Rule specific information like verified status, rule type, and actions.
## Properties
diff --git a/docs/AssetTypeEnum.md b/docs/SettlementTypeEnum.md
similarity index 58%
rename from docs/AssetTypeEnum.md
rename to docs/SettlementTypeEnum.md
index 8d3dc8cb..4820431e 100644
--- a/docs/AssetTypeEnum.md
+++ b/docs/SettlementTypeEnum.md
@@ -1,11 +1,12 @@
-# AssetTypeEnum
+# SettlementTypeEnum
+Settlement type supported by the provider
## Enum
-* `DIGITAL` (value: `'DIGITAL'`)
+* `DVP` (value: `'DVP'`)
-* `FIAT` (value: `'FIAT'`)
+* `PREFUNDED` (value: `'PREFUNDED'`)
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/docs/StakingApi.md b/docs/StakingApi.md
index de0371ea..c0eb660e 100644
--- a/docs/StakingApi.md
+++ b/docs/StakingApi.md
@@ -11,6 +11,7 @@ Method | HTTP request | Description
[**get_chain_info**](StakingApi.md#get_chain_info) | **GET** /staking/chains/{chainDescriptor}/chainInfo | Get chain-level staking parameters
[**get_chains**](StakingApi.md#get_chains) | **GET** /staking/chains | List supported staking chains
[**get_delegation_by_id**](StakingApi.md#get_delegation_by_id) | **GET** /staking/positions/{id} | Get position details
+[**get_positions**](StakingApi.md#get_positions) | **GET** /staking/positions_paginated | List staking positions (Paginated)
[**get_providers**](StakingApi.md#get_providers) | **GET** /staking/providers | List staking providers
[**get_summary**](StakingApi.md#get_summary) | **GET** /staking/positions/summary | Get positions summary
[**get_summary_by_vault**](StakingApi.md#get_summary_by_vault) | **GET** /staking/positions/summary/vaults | Get positions summary by vault
@@ -184,8 +185,9 @@ No authorization required
Consolidate staking positions (ETH validator consolidation)
-Consolidates the source staking position into the destination, merging the balance into the destination and closing the source position once complete. Both positions must be from the same validator provider and same vault account. On chain, this translates into a consolidation transaction, where the source validator is consolidated into the destination validator. Supported chains: Ethereum (ETH) only.
+Consolidates the source staking position into the destination, merging the balance into the destination and closing the source position once complete. Both positions must be from the same funding vaults account (i.e. same withdrawals credentials). On chain, this translates into a consolidation transaction, where the source validator is consolidated into the destination validator. Supported chains: Ethereum (ETH) only.
Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, Editor.
+**Note:** This endpoint is currently in beta and might be subject to changes.
### Example
@@ -265,7 +267,7 @@ No authorization required
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **get_all_delegations**
-> List[Delegation] get_all_delegations(chain_descriptor=chain_descriptor)
+> List[Delegation] get_all_delegations(chain_descriptor=chain_descriptor, vault_account_id=vault_account_id)
List staking positions
@@ -299,10 +301,11 @@ configuration = ClientConfiguration(
# Enter a context with an instance of the API client
with Fireblocks(configuration) as fireblocks:
chain_descriptor = fireblocks.ChainDescriptor() # ChainDescriptor | Protocol identifier to filter positions (e.g., ATOM_COS/AXL/CELESTIA}). If omitted, positions across all supported chains are returned. (optional)
+ vault_account_id = '1' # str | Filter positions by vault account ID. (optional)
try:
# List staking positions
- api_response = fireblocks.staking.get_all_delegations(chain_descriptor=chain_descriptor).result()
+ api_response = fireblocks.staking.get_all_delegations(chain_descriptor=chain_descriptor, vault_account_id=vault_account_id).result()
print("The response of StakingApi->get_all_delegations:\n")
pprint(api_response)
except Exception as e:
@@ -317,6 +320,7 @@ with Fireblocks(configuration) as fireblocks:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**chain_descriptor** | [**ChainDescriptor**](.md)| Protocol identifier to filter positions (e.g., ATOM_COS/AXL/CELESTIA}). If omitted, positions across all supported chains are returned. | [optional]
+ **vault_account_id** | **str**| Filter positions by vault account ID. | [optional]
### Return type
@@ -579,6 +583,95 @@ No authorization required
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+# **get_positions**
+> StakingPositionsPaginatedResponse get_positions(page_size, chain_descriptor=chain_descriptor, vault_account_id=vault_account_id, page_cursor=page_cursor, order=order)
+
+List staking positions (Paginated)
+
+Returns staking positions with core details: amounts, rewards, status, chain, and vault. It supports cursor-based pagination for efficient data retrieval. This endpoint always returns a paginated response with {data, next} structure.
+Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
+
+### Example
+
+
+```python
+from fireblocks.models.chain_descriptor import ChainDescriptor
+from fireblocks.models.staking_positions_paginated_response import StakingPositionsPaginatedResponse
+from fireblocks.client import Fireblocks
+from fireblocks.client_configuration import ClientConfiguration
+from fireblocks.exceptions import ApiException
+from fireblocks.base_path import BasePath
+from pprint import pprint
+
+# load the secret key content from a file
+with open('your_secret_key_file_path', 'r') as file:
+ secret_key_value = file.read()
+
+# build the configuration
+configuration = ClientConfiguration(
+ api_key="your_api_key",
+ secret_key=secret_key_value,
+ base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1"
+)
+
+
+# Enter a context with an instance of the API client
+with Fireblocks(configuration) as fireblocks:
+ page_size = 10 # int | Number of results per page. When provided, the response returns a paginated object with {data, next}. If omitted, all results are returned as an array. (default to 10)
+ chain_descriptor = fireblocks.ChainDescriptor() # ChainDescriptor | Protocol identifier to filter positions (e.g., ATOM_COS/AXL/CELESTIA}). If omitted, positions across all supported chains are returned. (optional)
+ vault_account_id = '10' # str | Filter positions by Fireblocks vault account ID. If omitted, positions across all vault accounts are returned. (optional)
+ page_cursor = 'eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9' # str | Cursor for the next page of results. Use the value from the 'next' field in the previous response. (optional)
+ order = DESC # str | ASC / DESC ordering (default DESC) (optional) (default to DESC)
+
+ try:
+ # List staking positions (Paginated)
+ api_response = fireblocks.staking.get_positions(page_size, chain_descriptor=chain_descriptor, vault_account_id=vault_account_id, page_cursor=page_cursor, order=order).result()
+ print("The response of StakingApi->get_positions:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling StakingApi->get_positions: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **page_size** | **int**| Number of results per page. When provided, the response returns a paginated object with {data, next}. If omitted, all results are returned as an array. | [default to 10]
+ **chain_descriptor** | [**ChainDescriptor**](.md)| Protocol identifier to filter positions (e.g., ATOM_COS/AXL/CELESTIA}). If omitted, positions across all supported chains are returned. | [optional]
+ **vault_account_id** | **str**| Filter positions by Fireblocks vault account ID. If omitted, positions across all vault accounts are returned. | [optional]
+ **page_cursor** | **str**| Cursor for the next page of results. Use the value from the 'next' field in the previous response. | [optional]
+ **order** | **str**| ASC / DESC ordering (default DESC) | [optional] [default to DESC]
+
+### Return type
+
+[**StakingPositionsPaginatedResponse**](StakingPositionsPaginatedResponse.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Positions retrieved successfully with pagination. | * X-Request-ID -
|
+**400** | Bad request: missing/invalid fields, unsupported amount, or malformed payload. | * X-Request-ID -
|
+**403** | Forbidden: insufficient permissions, disabled feature, or restricted provider/validator. | * X-Request-ID -
|
+**404** | Not found: requested resource does not exist (e.g., position, validator, provider, or wallet). | * X-Request-ID -
|
+**429** | Rate limit exceeded: slow down and retry later. | * X-Request-ID -
|
+**500** | Internal error while processing the request. | * X-Request-ID -
|
+**0** | Error Response | * X-Request-ID -
|
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
# **get_providers**
> List[Provider] get_providers()
diff --git a/docs/StakingPositionsPaginatedResponse.md b/docs/StakingPositionsPaginatedResponse.md
new file mode 100644
index 00000000..bc0d5165
--- /dev/null
+++ b/docs/StakingPositionsPaginatedResponse.md
@@ -0,0 +1,30 @@
+# StakingPositionsPaginatedResponse
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**List[Position]**](Position.md) | The data of the current page of staking positions |
+**next** | **str** | The cursor for the next page | [optional]
+
+## Example
+
+```python
+from fireblocks.models.staking_positions_paginated_response import StakingPositionsPaginatedResponse
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of StakingPositionsPaginatedResponse from a JSON string
+staking_positions_paginated_response_instance = StakingPositionsPaginatedResponse.from_json(json)
+# print the JSON string representation of the object
+print(StakingPositionsPaginatedResponse.to_json())
+
+# convert the object into a dict
+staking_positions_paginated_response_dict = staking_positions_paginated_response_instance.to_dict()
+# create an instance of StakingPositionsPaginatedResponse from a dict
+staking_positions_paginated_response_from_dict = StakingPositionsPaginatedResponse.from_dict(staking_positions_paginated_response_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/TRLinkApi.md b/docs/TRLinkApi.md
index 2c714e99..9afefc1f 100644
--- a/docs/TRLinkApi.md
+++ b/docs/TRLinkApi.md
@@ -105,7 +105,7 @@ No authorization required
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-**200** | Travel rule assessment completed | - |
+**200** | Travel rule assessment completed | * X-Request-ID -
|
**0** | Error Response | * X-Request-ID -
|
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
@@ -186,7 +186,7 @@ No authorization required
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-**202** | Transaction cancellation request accepted | - |
+**202** | Transaction cancellation request accepted | * X-Request-ID -
|
**0** | Error Response | * X-Request-ID -
|
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
@@ -265,7 +265,7 @@ No authorization required
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-**200** | Customer integration connected successfully | - |
+**200** | Customer integration connected successfully | * X-Request-ID -
|
**0** | Error Response | * X-Request-ID -
|
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
@@ -342,7 +342,7 @@ No authorization required
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-**201** | Customer created successfully | - |
+**201** | Customer created successfully | * X-Request-ID -
|
**0** | Error Response | * X-Request-ID -
|
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
@@ -352,7 +352,7 @@ No authorization required
Create customer integration
-Creates a new TRSupport integration for a customer. This establishes a connection placeholder between a customer and a Travel Rule partner. Use the connect endpoint to provide credentials after creation.
+Creates a new TRSupport integration for a customer. This establishes a connection placeholder between a customer and a Travel Rule partner. Use the connect endpoint to provide credentials after creation. You may optionally supply `customerIntegrationId` in the request body when your tenant is enabled for client-provided integration ids.
### Example
@@ -419,7 +419,7 @@ No authorization required
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-**201** | Customer integration created successfully | - |
+**201** | Customer integration created successfully | * X-Request-ID -
|
**0** | Error Response | * X-Request-ID -
|
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
@@ -498,7 +498,7 @@ No authorization required
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-**201** | TRM created successfully | - |
+**201** | TRM created successfully | * X-Request-ID -
|
**0** | Error Response | * X-Request-ID -
|
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
@@ -568,7 +568,7 @@ No authorization required
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-**204** | Customer deleted successfully | - |
+**204** | Customer deleted successfully | * X-Request-ID -
|
**0** | Error Response | * X-Request-ID -
|
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
@@ -578,7 +578,7 @@ No authorization required
Disconnect customer integration
-Disconnects a customer integration by removing stored credentials. The integration record is deleted and cannot be recovered.
+Disconnects the integration for the authenticated workspace (tenant): removes stored credentials and deletes this tenant's integration record. The operation is scoped to the caller's tenant; it does not remove partner-side state for other workspaces that reuse the same logical customer integration. The record cannot be recovered after delete.
### Example
@@ -638,7 +638,7 @@ No authorization required
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-**204** | Customer integration disconnected successfully | - |
+**204** | Customer integration disconnected successfully | * X-Request-ID -
|
**0** | Error Response | * X-Request-ID -
|
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
@@ -712,7 +712,7 @@ No authorization required
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-**200** | Customer retrieved successfully | - |
+**200** | Customer retrieved successfully | * X-Request-ID -
|
**0** | Error Response | * X-Request-ID -
|
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
@@ -788,7 +788,7 @@ No authorization required
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-**200** | Customer integration retrieved successfully | - |
+**200** | Customer integration retrieved successfully | * X-Request-ID -
|
**0** | Error Response | * X-Request-ID -
|
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
@@ -862,7 +862,7 @@ No authorization required
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-**200** | Customer integrations retrieved successfully | - |
+**200** | Customer integrations retrieved successfully | * X-Request-ID -
|
**0** | Error Response | * X-Request-ID -
|
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
@@ -932,7 +932,7 @@ No authorization required
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-**200** | Customers retrieved successfully | - |
+**200** | Customers retrieved successfully | * X-Request-ID -
|
**0** | Error Response | * X-Request-ID -
|
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
@@ -1006,7 +1006,7 @@ No authorization required
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-**200** | Public key retrieved successfully | - |
+**200** | Public key retrieved successfully | * X-Request-ID -
|
**0** | Error Response | * X-Request-ID -
|
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
@@ -1076,7 +1076,7 @@ No authorization required
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-**200** | List of partners retrieved successfully | - |
+**200** | List of partners retrieved successfully | * X-Request-ID -
|
**0** | Error Response | * X-Request-ID -
|
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
@@ -1146,7 +1146,7 @@ No authorization required
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-**200** | Policy retrieved successfully | - |
+**200** | Policy retrieved successfully | * X-Request-ID -
|
**0** | Error Response | * X-Request-ID -
|
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
@@ -1222,7 +1222,7 @@ No authorization required
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-**200** | Asset retrieved successfully | - |
+**200** | Asset retrieved successfully | * X-Request-ID -
|
**0** | Error Response | * X-Request-ID -
|
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
@@ -1298,7 +1298,7 @@ No authorization required
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-**200** | TRM retrieved successfully | - |
+**200** | TRM retrieved successfully | * X-Request-ID -
|
**0** | Error Response | * X-Request-ID -
|
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
@@ -1374,7 +1374,7 @@ No authorization required
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-**200** | VASP retrieved successfully | - |
+**200** | VASP retrieved successfully | * X-Request-ID -
|
**0** | Error Response | * X-Request-ID -
|
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
@@ -1452,7 +1452,7 @@ No authorization required
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-**200** | Supported assets retrieved successfully | - |
+**200** | Supported assets retrieved successfully | * X-Request-ID -
|
**0** | Error Response | * X-Request-ID -
|
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
@@ -1530,7 +1530,7 @@ No authorization required
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-**200** | VASPs retrieved successfully | - |
+**200** | VASPs retrieved successfully | * X-Request-ID -
|
**0** | Error Response | * X-Request-ID -
|
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
@@ -1611,7 +1611,7 @@ No authorization required
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-**202** | Transaction redirect request accepted | - |
+**202** | Transaction redirect request accepted | * X-Request-ID -
|
**0** | Error Response | * X-Request-ID -
|
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
@@ -1690,7 +1690,7 @@ No authorization required
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-**200** | Destination travel rule message ID set successfully | - |
+**200** | Destination travel rule message ID set successfully | * X-Request-ID -
|
**0** | Error Response | * X-Request-ID -
|
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
@@ -1769,7 +1769,7 @@ No authorization required
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-**200** | Travel rule message ID set successfully | - |
+**200** | Travel rule message ID set successfully | * X-Request-ID -
|
**0** | Error Response | * X-Request-ID -
|
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
@@ -1845,7 +1845,7 @@ No authorization required
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-**200** | Connection test completed (success or failure details in response body) | - |
+**200** | Connection test completed (success or failure details in response body) | * X-Request-ID -
|
**0** | Error Response | * X-Request-ID -
|
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
@@ -1924,7 +1924,7 @@ No authorization required
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-**200** | Customer updated successfully | - |
+**200** | Customer updated successfully | * X-Request-ID -
|
**0** | Error Response | * X-Request-ID -
|
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
diff --git a/docs/TRLinkCreateIntegrationRequest.md b/docs/TRLinkCreateIntegrationRequest.md
index 18e9b890..1402c704 100644
--- a/docs/TRLinkCreateIntegrationRequest.md
+++ b/docs/TRLinkCreateIntegrationRequest.md
@@ -7,6 +7,7 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**customer_id** | **str** | Customer unique identifier |
**partner_ident** | **str** | Partner identification code (e.g., \"sumsub\", \"notabene\") |
+**customer_integration_id** | **str** | Optional. When supplied and permitted for the tenant (feature flag / CSM arrangement), this value is used as the TRLink integration identifier instead of a server-generated UUID. If omitted, the API generates a UUID. If supplied when the tenant is not permitted to set a custom id, the request fails with 400. Contact your CSM if you need a custom integration id. | [optional]
## Example
diff --git a/docs/TradingBetaApi.md b/docs/TradingBetaApi.md
index 56b0fced..6ebc329c 100644
--- a/docs/TradingBetaApi.md
+++ b/docs/TradingBetaApi.md
@@ -8,6 +8,7 @@ Method | HTTP request | Description
[**create_quote**](TradingBetaApi.md#create_quote) | **POST** /trading/quotes | Create a quote
[**get_order**](TradingBetaApi.md#get_order) | **GET** /trading/orders/{orderId} | Get order details
[**get_orders**](TradingBetaApi.md#get_orders) | **GET** /trading/orders | Get orders
+[**get_trading_provider_by_id**](TradingBetaApi.md#get_trading_provider_by_id) | **GET** /trading/providers/{providerId} | Get trading provider by ID
[**get_trading_providers**](TradingBetaApi.md#get_trading_providers) | **GET** /trading/providers | Get providers
@@ -381,6 +382,92 @@ No authorization required
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+# **get_trading_provider_by_id**
+> TradingProviderDetails get_trading_provider_by_id(provider_id)
+
+Get trading provider by ID
+
+Retrieve detailed information about a specific provider including its full manifest with order/quote requirements.
+
+**Note:** These endpoints are currently in beta and might be subject to changes. If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com.
+
+**Endpoint Permission:** Owner, Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.
+
+For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes).
+
+
+### Example
+
+
+```python
+from fireblocks.models.trading_provider_details import TradingProviderDetails
+from fireblocks.client import Fireblocks
+from fireblocks.client_configuration import ClientConfiguration
+from fireblocks.exceptions import ApiException
+from fireblocks.base_path import BasePath
+from pprint import pprint
+
+# load the secret key content from a file
+with open('your_secret_key_file_path', 'r') as file:
+ secret_key_value = file.read()
+
+# build the configuration
+configuration = ClientConfiguration(
+ api_key="your_api_key",
+ secret_key=secret_key_value,
+ base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1"
+)
+
+
+# Enter a context with an instance of the API client
+with Fireblocks(configuration) as fireblocks:
+ provider_id = 'provider_id_example' # str | The unique identifier of the provider.
+
+ try:
+ # Get trading provider by ID
+ api_response = fireblocks.trading_beta.get_trading_provider_by_id(provider_id).result()
+ print("The response of TradingBetaApi->get_trading_provider_by_id:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling TradingBetaApi->get_trading_provider_by_id: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **provider_id** | **str**| The unique identifier of the provider. |
+
+### Return type
+
+[**TradingProviderDetails**](TradingProviderDetails.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Provider details | * X-Request-ID -
|
+**401** | Unauthorized. Missing / invalid JWT token in Authorization header. | * X-Request-ID -
|
+**403** | Forbidden - insufficient permissions, disabled feature, or restricted access. | * X-Request-ID -
|
+**404** | Provider not found. | * X-Request-ID -
|
+**429** | Rate limit exceeded - slow down and retry later. | * X-Request-ID -
|
+**5XX** | Internal error while processing the request. | * X-Request-ID -
|
+**0** | Error Response | * X-Request-ID -
|
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
# **get_trading_providers**
> ProvidersListResponse get_trading_providers(page_size=page_size, page_cursor=page_cursor)
diff --git a/docs/TradingProvider.md b/docs/TradingProvider.md
index bc61aef1..9fdab4fd 100644
--- a/docs/TradingProvider.md
+++ b/docs/TradingProvider.md
@@ -11,10 +11,11 @@ Name | Type | Description | Notes
**account_based** | **bool** | Indicates whether the provider access model is through accounts or directly |
**manifest** | [**Manifest**](Manifest.md) | |
**connected** | **bool** | Whether the provider is currently connected |
-**accounts** | [**List[AccountBase]**](AccountBase.md) | | [optional]
+**accounts** | [**List[AccountBase]**](AccountBase.md) | |
**approved** | **bool** | Whether the provider was approved for use | [optional]
**has_terms_of_service** | **bool** | Whether the provider has terms of service |
**terms_of_service_url** | **str** | URL to the terms of service document | [optional]
+**privacy_policy_url** | **str** | URL to the privacy policy document | [optional]
## Example
diff --git a/docs/TradingProviderDetails.md b/docs/TradingProviderDetails.md
new file mode 100644
index 00000000..cf1f32a3
--- /dev/null
+++ b/docs/TradingProviderDetails.md
@@ -0,0 +1,39 @@
+# TradingProviderDetails
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | Unique identifier for the provider |
+**name** | **str** | Display name of the provider |
+**logo** | **str** | URL to the logo image of the provider | [optional]
+**account_based** | **bool** | Indicates whether the provider access model is through accounts or directly |
+**manifest** | [**Manifest**](Manifest.md) | |
+**connected** | **bool** | Whether the provider is currently connected |
+**accounts** | [**List[AccountBase]**](AccountBase.md) | |
+**approved** | **bool** | Whether the provider was approved for use | [optional]
+**has_terms_of_service** | **bool** | Whether the provider has terms of service |
+**terms_of_service_url** | **str** | URL to the terms of service document | [optional]
+**privacy_policy_url** | **str** | URL to the privacy policy document | [optional]
+
+## Example
+
+```python
+from fireblocks.models.trading_provider_details import TradingProviderDetails
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of TradingProviderDetails from a JSON string
+trading_provider_details_instance = TradingProviderDetails.from_json(json)
+# print the JSON string representation of the object
+print(TradingProviderDetails.to_json())
+
+# convert the object into a dict
+trading_provider_details_dict = trading_provider_details_instance.to_dict()
+# create an instance of TradingProviderDetails from a dict
+trading_provider_details_from_dict = TradingProviderDetails.from_dict(trading_provider_details_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/TravelRuleActionEnum.md b/docs/TravelRuleActionEnum.md
index 01e82b18..79274904 100644
--- a/docs/TravelRuleActionEnum.md
+++ b/docs/TravelRuleActionEnum.md
@@ -10,6 +10,10 @@ Travel rule action
* `BLOCK` (value: `'BLOCK'`)
+* `PASS` (value: `'PASS'`)
+
+* `FREEZE` (value: `'FREEZE'`)
+
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/docs/TravelRuleOwnershipProof.md b/docs/TravelRuleOwnershipProof.md
index 753ae5b0..461bf371 100644
--- a/docs/TravelRuleOwnershipProof.md
+++ b/docs/TravelRuleOwnershipProof.md
@@ -12,6 +12,8 @@ Name | Type | Description | Notes
**address** | **str** | The wallet address being verified. Examples: - For Ethereum: `0x896B...0b9b` - For Bitcoin: `1442...dxhsQ` | [optional]
**wallet_provider** | **str** | The wallet provider or method used for verification. Examples: - For Metamask: `Metamask` - For manual signature: `manual` | [optional]
**url** | **str** | The URL for the uploaded screenshot (for `screenshot` proof types only). Example: `https://example.com/uploaded_image.png` | [optional]
+**did** | **str** | The Decentralized Identifier (DID) associated with the ownership proof. | [optional]
+**status** | **str** | The status of the ownership proof verification. | [optional]
**confirmed** | **bool** | Whether the user confirmed ownership of the wallet (for `self-declaration` proofs). Example: `true` | [optional]
## Example
diff --git a/docs/TravelRuleResult.md b/docs/TravelRuleResult.md
index 6f1566c7..49096088 100644
--- a/docs/TravelRuleResult.md
+++ b/docs/TravelRuleResult.md
@@ -1,6 +1,6 @@
# TravelRuleResult
-Detailed Travel Rule screening result containing provider-specific data. Contains Travel Rule specific information like verified status, rule type, and actions.
+Deprecated: This field is not currently returned in the API response. Detailed Travel Rule screening result containing provider-specific data. Contains Travel Rule specific information like verified status, rule type, and actions.
## Properties
diff --git a/docs/TravelRuleStatusEnum.md b/docs/TravelRuleStatusEnum.md
index e69a93f1..31eede0d 100644
--- a/docs/TravelRuleStatusEnum.md
+++ b/docs/TravelRuleStatusEnum.md
@@ -14,6 +14,12 @@ Travel rule status
* `FROZEN` (value: `'FROZEN'`)
+* `REJECTED` (value: `'REJECTED'`)
+
+* `CANCELED` (value: `'CANCELED'`)
+
+* `BLOCKING_TIME_EXPIRED` (value: `'BLOCKING_TIME_EXPIRED'`)
+
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/docs/TravelRuleVerdictEnum.md b/docs/TravelRuleVerdictEnum.md
index 14df8de8..8bf81780 100644
--- a/docs/TravelRuleVerdictEnum.md
+++ b/docs/TravelRuleVerdictEnum.md
@@ -12,6 +12,12 @@ The final verdict of the travel rule screening
* `REVIEW` (value: `'REVIEW'`)
+* `WAIT` (value: `'WAIT'`)
+
+* `FREEZE` (value: `'FREEZE'`)
+
+* `CANCEL` (value: `'CANCEL'`)
+
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/docs/UserRole.md b/docs/UserRole.md
index 5c2827ad..7ad8befb 100644
--- a/docs/UserRole.md
+++ b/docs/UserRole.md
@@ -26,6 +26,10 @@ The role of the user
* `NCW_SIGNER` (value: `'NCW_SIGNER'`)
+* `SECURITY_ADMIN` (value: `'SECURITY_ADMIN'`)
+
+* `SECURITY_AUDITOR` (value: `'SECURITY_AUDITOR'`)
+
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/fireblocks/__init__.py b/fireblocks/__init__.py
index cfa6d369..0cb513e3 100644
--- a/fireblocks/__init__.py
+++ b/fireblocks/__init__.py
@@ -15,7 +15,7 @@
""" # noqa: E501
-__version__ = "15.0.0"
+__version__ = "0.0.0"
# import apis into sdk package
from fireblocks.api.api_user_api import ApiUserApi
@@ -96,9 +96,10 @@
from fireblocks.models.account_access import AccountAccess
from fireblocks.models.account_base import AccountBase
from fireblocks.models.account_based_access_provider import AccountBasedAccessProvider
-from fireblocks.models.account_based_access_provider_details import (
- AccountBasedAccessProviderDetails,
+from fireblocks.models.account_based_access_provider_info import (
+ AccountBasedAccessProviderInfo,
)
+from fireblocks.models.account_based_provider_details import AccountBasedProviderDetails
from fireblocks.models.account_config import AccountConfig
from fireblocks.models.account_holder_details import AccountHolderDetails
from fireblocks.models.account_identifier import AccountIdentifier
@@ -192,7 +193,6 @@
from fireblocks.models.asset_price_response import AssetPriceResponse
from fireblocks.models.asset_response import AssetResponse
from fireblocks.models.asset_scope import AssetScope
-from fireblocks.models.asset_type_enum import AssetTypeEnum
from fireblocks.models.asset_type_response import AssetTypeResponse
from fireblocks.models.asset_types_config_inner import AssetTypesConfigInner
from fireblocks.models.asset_wallet import AssetWallet
@@ -223,7 +223,6 @@
from fireblocks.models.callback_handler import CallbackHandler
from fireblocks.models.callback_handler_request import CallbackHandlerRequest
from fireblocks.models.cancel_transaction_response import CancelTransactionResponse
-from fireblocks.models.capability import Capability
from fireblocks.models.chain_descriptor import ChainDescriptor
from fireblocks.models.chain_info_response import ChainInfoResponse
from fireblocks.models.channel_dvn_config_with_confirmations import (
@@ -476,7 +475,8 @@
)
from fireblocks.models.direct_access import DirectAccess
from fireblocks.models.direct_access_provider import DirectAccessProvider
-from fireblocks.models.direct_access_provider_details import DirectAccessProviderDetails
+from fireblocks.models.direct_access_provider_info import DirectAccessProviderInfo
+from fireblocks.models.direct_provider_details import DirectProviderDetails
from fireblocks.models.disbursement_amount_instruction import (
DisbursementAmountInstruction,
)
@@ -602,6 +602,7 @@
from fireblocks.models.execution_operation_status import ExecutionOperationStatus
from fireblocks.models.execution_request_base_details import ExecutionRequestBaseDetails
from fireblocks.models.execution_request_details import ExecutionRequestDetails
+from fireblocks.models.execution_request_details_type import ExecutionRequestDetailsType
from fireblocks.models.execution_response_base_details import (
ExecutionResponseBaseDetails,
)
@@ -799,6 +800,11 @@
LocalBankTransferAfricaDestination,
)
from fireblocks.models.manifest import Manifest
+from fireblocks.models.manifest_base import ManifestBase
+from fireblocks.models.manifest_order import ManifestOrder
+from fireblocks.models.manifest_order_info import ManifestOrderInfo
+from fireblocks.models.manifest_quote import ManifestQuote
+from fireblocks.models.manifest_quote_info import ManifestQuoteInfo
from fireblocks.models.market_execution_request_details import (
MarketExecutionRequestDetails,
)
@@ -929,6 +935,7 @@
from fireblocks.models.policy_validation import PolicyValidation
from fireblocks.models.policy_verdict_action_enum import PolicyVerdictActionEnum
from fireblocks.models.policy_verdict_action_enum2 import PolicyVerdictActionEnum2
+from fireblocks.models.position import Position
from fireblocks.models.postal_address import PostalAddress
from fireblocks.models.pre_screening import PreScreening
from fireblocks.models.prefunded_settlement import PrefundedSettlement
@@ -1047,7 +1054,6 @@
from fireblocks.models.screening_provider_rules_configuration_response import (
ScreeningProviderRulesConfigurationResponse,
)
-from fireblocks.models.screening_risk_level_enum import ScreeningRiskLevelEnum
from fireblocks.models.screening_tr_link_amount import ScreeningTRLinkAmount
from fireblocks.models.screening_tr_link_missing_trm_decision import (
ScreeningTRLinkMissingTrmDecision,
@@ -1123,6 +1129,7 @@
from fireblocks.models.settlement_request_body import SettlementRequestBody
from fireblocks.models.settlement_response import SettlementResponse
from fireblocks.models.settlement_source_account import SettlementSourceAccount
+from fireblocks.models.settlement_type_enum import SettlementTypeEnum
from fireblocks.models.side import Side
from fireblocks.models.signed_message import SignedMessage
from fireblocks.models.signed_message_signature import SignedMessageSignature
@@ -1201,6 +1208,9 @@
from fireblocks.models.st_eth_blockchain_data import StEthBlockchainData
from fireblocks.models.stake_request import StakeRequest
from fireblocks.models.stake_response import StakeResponse
+from fireblocks.models.staking_positions_paginated_response import (
+ StakingPositionsPaginatedResponse,
+)
from fireblocks.models.staking_provider import StakingProvider
from fireblocks.models.status import Status
from fireblocks.models.stellar_ripple_create_params_dto import (
@@ -1383,6 +1393,7 @@
from fireblocks.models.trading_account_type import TradingAccountType
from fireblocks.models.trading_error_schema import TradingErrorSchema
from fireblocks.models.trading_provider import TradingProvider
+from fireblocks.models.trading_provider_details import TradingProviderDetails
from fireblocks.models.transaction import Transaction
from fireblocks.models.transaction_direction import TransactionDirection
from fireblocks.models.transaction_fee import TransactionFee
diff --git a/fireblocks/api/staking_api.py b/fireblocks/api/staking_api.py
index cfb1fd11..4f3f21dc 100644
--- a/fireblocks/api/staking_api.py
+++ b/fireblocks/api/staking_api.py
@@ -33,6 +33,7 @@
from fireblocks.models.split_response import SplitResponse
from fireblocks.models.stake_request import StakeRequest
from fireblocks.models.stake_response import StakeResponse
+from fireblocks.models.staking_positions_paginated_response import StakingPositionsPaginatedResponse
from fireblocks.models.staking_provider import StakingProvider
from fireblocks.models.unstake_request import UnstakeRequest
from fireblocks.models.withdraw_request import WithdrawRequest
@@ -378,7 +379,7 @@ def consolidate(
) -> Future[ApiResponse[MergeStakeAccountsResponse]]:
"""Consolidate staking positions (ETH validator consolidation)
- Consolidates the source staking position into the destination, merging the balance into the destination and closing the source position once complete. Both positions must be from the same validator provider and same vault account. On chain, this translates into a consolidation transaction, where the source validator is consolidated into the destination validator. Supported chains: Ethereum (ETH) only. Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, Editor.
+ Consolidates the source staking position into the destination, merging the balance into the destination and closing the source position once complete. Both positions must be from the same funding vaults account (i.e. same withdrawals credentials). On chain, this translates into a consolidation transaction, where the source validator is consolidated into the destination validator. Supported chains: Ethereum (ETH) only. Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, Editor. **Note:** This endpoint is currently in beta and might be subject to changes.
:param chain_descriptor: Protocol identifier for the staking operation (e.g., ETH). (required)
:type chain_descriptor: str
@@ -522,6 +523,7 @@ def _consolidate_serialize(
def get_all_delegations(
self,
chain_descriptor: Annotated[Optional[ChainDescriptor], Field(description="Protocol identifier to filter positions (e.g., ATOM_COS/AXL/CELESTIA}). If omitted, positions across all supported chains are returned.")] = None,
+ vault_account_id: Annotated[Optional[StrictStr], Field(description="Filter positions by vault account ID.")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -541,6 +543,8 @@ def get_all_delegations(
:param chain_descriptor: Protocol identifier to filter positions (e.g., ATOM_COS/AXL/CELESTIA}). If omitted, positions across all supported chains are returned.
:type chain_descriptor: ChainDescriptor
+ :param vault_account_id: Filter positions by vault account ID.
+ :type vault_account_id: str
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -566,6 +570,7 @@ def get_all_delegations(
_param = self._get_all_delegations_serialize(
chain_descriptor=chain_descriptor,
+ vault_account_id=vault_account_id,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -591,6 +596,7 @@ def get_all_delegations(
def _get_all_delegations_serialize(
self,
chain_descriptor,
+ vault_account_id,
_request_auth,
_content_type,
_headers,
@@ -617,6 +623,10 @@ def _get_all_delegations_serialize(
_query_params.append(('chainDescriptor', chain_descriptor.value))
+ if vault_account_id is not None:
+
+ _query_params.append(('vaultAccountId', vault_account_id))
+
# process the header parameters
# process the form parameters
# process the body parameter
@@ -1045,6 +1055,177 @@ def _get_delegation_by_id_serialize(
+ @validate_call
+ def get_positions(
+ self,
+ page_size: Annotated[int, Field(le=100, strict=True, ge=1, description="Number of results per page. When provided, the response returns a paginated object with {data, next}. If omitted, all results are returned as an array.")],
+ chain_descriptor: Annotated[Optional[ChainDescriptor], Field(description="Protocol identifier to filter positions (e.g., ATOM_COS/AXL/CELESTIA}). If omitted, positions across all supported chains are returned.")] = None,
+ vault_account_id: Annotated[Optional[StrictStr], Field(description="Filter positions by Fireblocks vault account ID. If omitted, positions across all vault accounts are returned.")] = None,
+ page_cursor: Annotated[Optional[StrictStr], Field(description="Cursor for the next page of results. Use the value from the 'next' field in the previous response.")] = None,
+ order: Annotated[Optional[StrictStr], Field(description="ASC / DESC ordering (default DESC)")] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> Future[ApiResponse[StakingPositionsPaginatedResponse]]:
+ """List staking positions (Paginated)
+
+ Returns staking positions with core details: amounts, rewards, status, chain, and vault. It supports cursor-based pagination for efficient data retrieval. This endpoint always returns a paginated response with {data, next} structure. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
+
+ :param page_size: Number of results per page. When provided, the response returns a paginated object with {data, next}. If omitted, all results are returned as an array. (required)
+ :type page_size: int
+ :param chain_descriptor: Protocol identifier to filter positions (e.g., ATOM_COS/AXL/CELESTIA}). If omitted, positions across all supported chains are returned.
+ :type chain_descriptor: ChainDescriptor
+ :param vault_account_id: Filter positions by Fireblocks vault account ID. If omitted, positions across all vault accounts are returned.
+ :type vault_account_id: str
+ :param page_cursor: Cursor for the next page of results. Use the value from the 'next' field in the previous response.
+ :type page_cursor: str
+ :param order: ASC / DESC ordering (default DESC)
+ :type order: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+
+ _param = self._get_positions_serialize(
+ page_size=page_size,
+ chain_descriptor=chain_descriptor,
+ vault_account_id=vault_account_id,
+ page_cursor=page_cursor,
+ order=order,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "StakingPositionsPaginatedResponse",
+ '400': "ErrorSchema",
+ '403': "ErrorSchema",
+ '404': "ErrorSchema",
+ '429': "ErrorSchema",
+ '500': "ErrorSchema",
+ 'default': "ErrorSchema",
+ }
+
+ return self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout,
+ _response_types_map=_response_types_map,
+ )
+
+ def _get_positions_serialize(
+ self,
+ page_size,
+ chain_descriptor,
+ vault_account_id,
+ page_cursor,
+ order,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ if chain_descriptor is not None:
+
+ _query_params.append(('chainDescriptor', chain_descriptor.value))
+
+ if vault_account_id is not None:
+
+ _query_params.append(('vaultAccountId', vault_account_id))
+
+ if page_size is not None:
+
+ _query_params.append(('pageSize', page_size))
+
+ if page_cursor is not None:
+
+ _query_params.append(('pageCursor', page_cursor))
+
+ if order is not None:
+
+ _query_params.append(('order', order))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/staking/positions_paginated',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
@validate_call
def get_providers(
self,
diff --git a/fireblocks/api/tr_link_api.py b/fireblocks/api/tr_link_api.py
index 115d11aa..78215b59 100644
--- a/fireblocks/api/tr_link_api.py
+++ b/fireblocks/api/tr_link_api.py
@@ -709,7 +709,7 @@ def create_tr_link_integration(
) -> Future[ApiResponse[TRLinkCustomerIntegrationResponse]]:
"""Create customer integration
- Creates a new TRSupport integration for a customer. This establishes a connection placeholder between a customer and a Travel Rule partner. Use the connect endpoint to provide credentials after creation.
+ Creates a new TRSupport integration for a customer. This establishes a connection placeholder between a customer and a Travel Rule partner. Use the connect endpoint to provide credentials after creation. You may optionally supply `customerIntegrationId` in the request body when your tenant is enabled for client-provided integration ids.
:param tr_link_create_integration_request: (required)
:type tr_link_create_integration_request: TRLinkCreateIntegrationRequest
@@ -1141,7 +1141,7 @@ def disconnect_tr_link_integration(
) -> Future[ApiResponse[None]]:
"""Disconnect customer integration
- Disconnects a customer integration by removing stored credentials. The integration record is deleted and cannot be recovered.
+ Disconnects the integration for the authenticated workspace (tenant): removes stored credentials and deletes this tenant's integration record. The operation is scoped to the caller's tenant; it does not remove partner-side state for other workspaces that reuse the same logical customer integration. The record cannot be recovered after delete.
:param customer_integration_id: Customer integration unique identifier (required)
:type customer_integration_id: str
diff --git a/fireblocks/api/trading_beta_api.py b/fireblocks/api/trading_beta_api.py
index 5abb1807..bd796863 100644
--- a/fireblocks/api/trading_beta_api.py
+++ b/fireblocks/api/trading_beta_api.py
@@ -28,6 +28,7 @@
from fireblocks.models.order_status import OrderStatus
from fireblocks.models.providers_list_response import ProvidersListResponse
from fireblocks.models.quotes_response import QuotesResponse
+from fireblocks.models.trading_provider_details import TradingProviderDetails
from fireblocks.api_client import ApiClient, RequestSerialized
from fireblocks.api_response import ApiResponse
@@ -697,6 +698,140 @@ def _get_orders_serialize(
+ @validate_call
+ def get_trading_provider_by_id(
+ self,
+ provider_id: Annotated[str, Field(min_length=1, strict=True, description="The unique identifier of the provider.")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> Future[ApiResponse[TradingProviderDetails]]:
+ """Get trading provider by ID
+
+ Retrieve detailed information about a specific provider including its full manifest with order/quote requirements. **Note:** These endpoints are currently in beta and might be subject to changes. If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. **Endpoint Permission:** Owner, Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes).
+
+ :param provider_id: The unique identifier of the provider. (required)
+ :type provider_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ validate_not_empty_string(function_name="get_trading_provider_by_id", param_name="provider_id", param_value=provider_id)
+
+ _param = self._get_trading_provider_by_id_serialize(
+ provider_id=provider_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "TradingProviderDetails",
+ '401': "TradingErrorSchema",
+ '403': "TradingErrorSchema",
+ '404': "TradingErrorSchema",
+ '429': "TradingErrorSchema",
+ '5XX': "TradingErrorSchema",
+ 'default': "ErrorSchema",
+ }
+
+ return self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout,
+ _response_types_map=_response_types_map,
+ )
+
+ def _get_trading_provider_by_id_serialize(
+ self,
+ provider_id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if provider_id is not None:
+ _path_params['providerId'] = provider_id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/trading/providers/{providerId}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
@validate_call
def get_trading_providers(
self,
diff --git a/fireblocks/configuration.py b/fireblocks/configuration.py
index 9ea23cd7..3f2e5962 100644
--- a/fireblocks/configuration.py
+++ b/fireblocks/configuration.py
@@ -552,7 +552,7 @@ def to_debug_report(self) -> str:
"OS: {env}\n"
"Python Version: {pyversion}\n"
"Version of the API: 1.6.2\n"
- "SDK Package Version: 15.0.0".format(env=sys.platform, pyversion=sys.version)
+ "SDK Package Version: 0.0.0".format(env=sys.platform, pyversion=sys.version)
)
def get_host_settings(self) -> List[HostSetting]:
diff --git a/fireblocks/models/__init__.py b/fireblocks/models/__init__.py
index 1ac4e333..49c57f6b 100644
--- a/fireblocks/models/__init__.py
+++ b/fireblocks/models/__init__.py
@@ -26,7 +26,8 @@
from fireblocks.models.account_access import AccountAccess
from fireblocks.models.account_base import AccountBase
from fireblocks.models.account_based_access_provider import AccountBasedAccessProvider
-from fireblocks.models.account_based_access_provider_details import AccountBasedAccessProviderDetails
+from fireblocks.models.account_based_access_provider_info import AccountBasedAccessProviderInfo
+from fireblocks.models.account_based_provider_details import AccountBasedProviderDetails
from fireblocks.models.account_config import AccountConfig
from fireblocks.models.account_holder_details import AccountHolderDetails
from fireblocks.models.account_identifier import AccountIdentifier
@@ -104,7 +105,6 @@
from fireblocks.models.asset_price_response import AssetPriceResponse
from fireblocks.models.asset_response import AssetResponse
from fireblocks.models.asset_scope import AssetScope
-from fireblocks.models.asset_type_enum import AssetTypeEnum
from fireblocks.models.asset_type_response import AssetTypeResponse
from fireblocks.models.asset_types_config_inner import AssetTypesConfigInner
from fireblocks.models.asset_wallet import AssetWallet
@@ -133,7 +133,6 @@
from fireblocks.models.callback_handler import CallbackHandler
from fireblocks.models.callback_handler_request import CallbackHandlerRequest
from fireblocks.models.cancel_transaction_response import CancelTransactionResponse
-from fireblocks.models.capability import Capability
from fireblocks.models.chain_descriptor import ChainDescriptor
from fireblocks.models.chain_info_response import ChainInfoResponse
from fireblocks.models.channel_dvn_config_with_confirmations import ChannelDvnConfigWithConfirmations
@@ -286,7 +285,8 @@
from fireblocks.models.destination_transfer_peer_path_response import DestinationTransferPeerPathResponse
from fireblocks.models.direct_access import DirectAccess
from fireblocks.models.direct_access_provider import DirectAccessProvider
-from fireblocks.models.direct_access_provider_details import DirectAccessProviderDetails
+from fireblocks.models.direct_access_provider_info import DirectAccessProviderInfo
+from fireblocks.models.direct_provider_details import DirectProviderDetails
from fireblocks.models.disbursement_amount_instruction import DisbursementAmountInstruction
from fireblocks.models.disbursement_config_operation import DisbursementConfigOperation
from fireblocks.models.disbursement_instruction import DisbursementInstruction
@@ -352,6 +352,7 @@
from fireblocks.models.execution_operation_status import ExecutionOperationStatus
from fireblocks.models.execution_request_base_details import ExecutionRequestBaseDetails
from fireblocks.models.execution_request_details import ExecutionRequestDetails
+from fireblocks.models.execution_request_details_type import ExecutionRequestDetailsType
from fireblocks.models.execution_response_base_details import ExecutionResponseBaseDetails
from fireblocks.models.execution_response_details import ExecutionResponseDetails
from fireblocks.models.execution_screening_operation import ExecutionScreeningOperation
@@ -479,6 +480,11 @@
from fireblocks.models.local_bank_transfer_africa_address import LocalBankTransferAfricaAddress
from fireblocks.models.local_bank_transfer_africa_destination import LocalBankTransferAfricaDestination
from fireblocks.models.manifest import Manifest
+from fireblocks.models.manifest_base import ManifestBase
+from fireblocks.models.manifest_order import ManifestOrder
+from fireblocks.models.manifest_order_info import ManifestOrderInfo
+from fireblocks.models.manifest_quote import ManifestQuote
+from fireblocks.models.manifest_quote_info import ManifestQuoteInfo
from fireblocks.models.market_execution_request_details import MarketExecutionRequestDetails
from fireblocks.models.market_execution_response_details import MarketExecutionResponseDetails
from fireblocks.models.market_requote_request_details import MarketRequoteRequestDetails
@@ -585,6 +591,7 @@
from fireblocks.models.policy_validation import PolicyValidation
from fireblocks.models.policy_verdict_action_enum import PolicyVerdictActionEnum
from fireblocks.models.policy_verdict_action_enum2 import PolicyVerdictActionEnum2
+from fireblocks.models.position import Position
from fireblocks.models.postal_address import PostalAddress
from fireblocks.models.pre_screening import PreScreening
from fireblocks.models.prefunded_settlement import PrefundedSettlement
@@ -657,7 +664,6 @@
from fireblocks.models.screening_operation_type import ScreeningOperationType
from fireblocks.models.screening_policy_response import ScreeningPolicyResponse
from fireblocks.models.screening_provider_rules_configuration_response import ScreeningProviderRulesConfigurationResponse
-from fireblocks.models.screening_risk_level_enum import ScreeningRiskLevelEnum
from fireblocks.models.screening_tr_link_amount import ScreeningTRLinkAmount
from fireblocks.models.screening_tr_link_missing_trm_decision import ScreeningTRLinkMissingTrmDecision
from fireblocks.models.screening_tr_link_missing_trm_rule import ScreeningTRLinkMissingTrmRule
@@ -701,6 +707,7 @@
from fireblocks.models.settlement_request_body import SettlementRequestBody
from fireblocks.models.settlement_response import SettlementResponse
from fireblocks.models.settlement_source_account import SettlementSourceAccount
+from fireblocks.models.settlement_type_enum import SettlementTypeEnum
from fireblocks.models.side import Side
from fireblocks.models.signed_message import SignedMessage
from fireblocks.models.signed_message_signature import SignedMessageSignature
@@ -751,6 +758,7 @@
from fireblocks.models.st_eth_blockchain_data import StEthBlockchainData
from fireblocks.models.stake_request import StakeRequest
from fireblocks.models.stake_response import StakeResponse
+from fireblocks.models.staking_positions_paginated_response import StakingPositionsPaginatedResponse
from fireblocks.models.staking_provider import StakingProvider
from fireblocks.models.status import Status
from fireblocks.models.stellar_ripple_create_params_dto import StellarRippleCreateParamsDto
@@ -867,6 +875,7 @@
from fireblocks.models.trading_account_type import TradingAccountType
from fireblocks.models.trading_error_schema import TradingErrorSchema
from fireblocks.models.trading_provider import TradingProvider
+from fireblocks.models.trading_provider_details import TradingProviderDetails
from fireblocks.models.transaction import Transaction
from fireblocks.models.transaction_direction import TransactionDirection
from fireblocks.models.transaction_fee import TransactionFee
diff --git a/fireblocks/models/account_based_access_provider.py b/fireblocks/models/account_based_access_provider.py
index 8f0a9b95..a14454fb 100644
--- a/fireblocks/models/account_based_access_provider.py
+++ b/fireblocks/models/account_based_access_provider.py
@@ -35,7 +35,7 @@ class AccountBasedAccessProvider(BaseModel):
account_based: StrictBool = Field(description="Indicates whether the provider access model is through accounts or directly", alias="accountBased")
manifest: Manifest
connected: StrictBool = Field(description="Whether the provider is currently connected")
- accounts: Optional[List[AccountBase]] = None
+ accounts: List[AccountBase]
__properties: ClassVar[List[str]] = ["id", "name", "logo", "accountBased", "manifest", "connected", "accounts"]
model_config = ConfigDict(
diff --git a/fireblocks/models/account_based_access_provider_details.py b/fireblocks/models/account_based_access_provider_info.py
similarity index 79%
rename from fireblocks/models/account_based_access_provider_details.py
rename to fireblocks/models/account_based_access_provider_info.py
index 9606d907..0e4e0d18 100644
--- a/fireblocks/models/account_based_access_provider_details.py
+++ b/fireblocks/models/account_based_access_provider_info.py
@@ -19,20 +19,18 @@
import json
from pydantic import BaseModel, ConfigDict, Field, StrictBool
-from typing import Any, ClassVar, Dict, List, Optional
+from typing import Any, ClassVar, Dict, List
from fireblocks.models.account_base import AccountBase
-from fireblocks.models.manifest import Manifest
from typing import Optional, Set
from typing_extensions import Self
-class AccountBasedAccessProviderDetails(BaseModel):
+class AccountBasedAccessProviderInfo(BaseModel):
"""
- AccountBasedAccessProviderDetails
+ AccountBasedAccessProviderInfo
""" # noqa: E501
- manifest: Manifest
connected: StrictBool = Field(description="Whether the provider is currently connected")
- accounts: Optional[List[AccountBase]] = None
- __properties: ClassVar[List[str]] = ["manifest", "connected", "accounts"]
+ accounts: List[AccountBase]
+ __properties: ClassVar[List[str]] = ["connected", "accounts"]
model_config = ConfigDict(
populate_by_name=True,
@@ -52,7 +50,7 @@ def to_json(self) -> str:
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
- """Create an instance of AccountBasedAccessProviderDetails from a JSON string"""
+ """Create an instance of AccountBasedAccessProviderInfo from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
@@ -73,9 +71,6 @@ def to_dict(self) -> Dict[str, Any]:
exclude=excluded_fields,
exclude_none=True,
)
- # override the default output from pydantic by calling `to_dict()` of manifest
- if self.manifest:
- _dict['manifest'] = self.manifest.to_dict()
# override the default output from pydantic by calling `to_dict()` of each item in accounts (list)
_items = []
if self.accounts:
@@ -87,7 +82,7 @@ def to_dict(self) -> Dict[str, Any]:
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
- """Create an instance of AccountBasedAccessProviderDetails from a dict"""
+ """Create an instance of AccountBasedAccessProviderInfo from a dict"""
if obj is None:
return None
@@ -95,7 +90,6 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
return cls.model_validate(obj)
_obj = cls.model_validate({
- "manifest": Manifest.from_dict(obj["manifest"]) if obj.get("manifest") is not None else None,
"connected": obj.get("connected"),
"accounts": [AccountBase.from_dict(_item) for _item in obj["accounts"]] if obj.get("accounts") is not None else None
})
diff --git a/fireblocks/models/account_based_provider_details.py b/fireblocks/models/account_based_provider_details.py
new file mode 100644
index 00000000..56add95c
--- /dev/null
+++ b/fireblocks/models/account_based_provider_details.py
@@ -0,0 +1,112 @@
+# coding: utf-8
+
+"""
+ 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
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from fireblocks.models.account_base import AccountBase
+from fireblocks.models.manifest import Manifest
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AccountBasedProviderDetails(BaseModel):
+ """
+ AccountBasedProviderDetails
+ """ # noqa: E501
+ id: StrictStr = Field(description="Unique identifier for the provider")
+ name: StrictStr = Field(description="Display name of the provider")
+ logo: Optional[StrictStr] = Field(default=None, description="URL to the logo image of the provider")
+ account_based: StrictBool = Field(description="Indicates whether the provider access model is through accounts or directly", alias="accountBased")
+ manifest: Manifest
+ connected: StrictBool = Field(description="Whether the provider is currently connected")
+ accounts: List[AccountBase]
+ __properties: ClassVar[List[str]] = ["id", "name", "logo", "accountBased", "manifest", "connected", "accounts"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of AccountBasedProviderDetails from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # override the default output from pydantic by calling `to_dict()` of manifest
+ if self.manifest:
+ _dict['manifest'] = self.manifest.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of each item in accounts (list)
+ _items = []
+ if self.accounts:
+ for _item_accounts in self.accounts:
+ if _item_accounts:
+ _items.append(_item_accounts.to_dict())
+ _dict['accounts'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of AccountBasedProviderDetails from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "id": obj.get("id"),
+ "name": obj.get("name"),
+ "logo": obj.get("logo"),
+ "accountBased": obj.get("accountBased"),
+ "manifest": Manifest.from_dict(obj["manifest"]) if obj.get("manifest") is not None else None,
+ "connected": obj.get("connected"),
+ "accounts": [AccountBase.from_dict(_item) for _item in obj["accounts"]] if obj.get("accounts") is not None else None
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/aml_result.py b/fireblocks/models/aml_result.py
index eef959d7..347cc048 100644
--- a/fireblocks/models/aml_result.py
+++ b/fireblocks/models/aml_result.py
@@ -27,7 +27,7 @@
class AmlResult(BaseModel):
"""
- Detailed AML screening result information. Contains alerts, risk scores, and other AML-specific data from provider-specific responses.
+ Deprecated: This field is not currently returned in the API response. Detailed AML screening result information. Contains alerts, risk scores, and other AML-specific data from provider-specific responses.
""" # noqa: E501
alerts: Optional[List[AmlAlert]] = Field(default=None, description="List of AML alerts triggered during screening")
provider_response: Optional[Dict[str, Any]] = Field(default=None, description="Complete response from the AML provider. This is a dynamic object that varies significantly between different AML providers (Chainalysis, Elliptic, etc.). Each provider has their own proprietary response format and schema. Examples of provider-specific structures: - Chainalysis: Contains cluster info, risk scores, sanctions data - Elliptic: Includes risk assessment, entity types, compliance flags The structure is provider-dependent and cannot be standardized as each vendor implements their own proprietary data models and response formats. ", alias="providerResponse")
diff --git a/fireblocks/models/aml_status_enum.py b/fireblocks/models/aml_status_enum.py
index 3580f241..7ca4fbb2 100644
--- a/fireblocks/models/aml_status_enum.py
+++ b/fireblocks/models/aml_status_enum.py
@@ -21,7 +21,7 @@
class AmlStatusEnum(str, Enum):
"""
- AML screening status
+ Deprecated: Use screeningStatus instead. AML screening status.
"""
"""
diff --git a/fireblocks/models/base_provider.py b/fireblocks/models/base_provider.py
index d302dd36..7319165b 100644
--- a/fireblocks/models/base_provider.py
+++ b/fireblocks/models/base_provider.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from fireblocks.models.manifest import Manifest
from typing import Optional, Set
from typing_extensions import Self
@@ -31,7 +32,8 @@ class BaseProvider(BaseModel):
name: StrictStr = Field(description="Display name of the provider")
logo: Optional[StrictStr] = Field(default=None, description="URL to the logo image of the provider")
account_based: StrictBool = Field(description="Indicates whether the provider access model is through accounts or directly", alias="accountBased")
- __properties: ClassVar[List[str]] = ["id", "name", "logo", "accountBased"]
+ manifest: Manifest
+ __properties: ClassVar[List[str]] = ["id", "name", "logo", "accountBased", "manifest"]
model_config = ConfigDict(
populate_by_name=True,
@@ -72,6 +74,9 @@ def to_dict(self) -> Dict[str, Any]:
exclude=excluded_fields,
exclude_none=True,
)
+ # override the default output from pydantic by calling `to_dict()` of manifest
+ if self.manifest:
+ _dict['manifest'] = self.manifest.to_dict()
return _dict
@classmethod
@@ -87,7 +92,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"id": obj.get("id"),
"name": obj.get("name"),
"logo": obj.get("logo"),
- "accountBased": obj.get("accountBased")
+ "accountBased": obj.get("accountBased"),
+ "manifest": Manifest.from_dict(obj["manifest"]) if obj.get("manifest") is not None else None
})
return _obj
diff --git a/fireblocks/models/collection_ownership_response.py b/fireblocks/models/collection_ownership_response.py
index fb359b74..6348c992 100644
--- a/fireblocks/models/collection_ownership_response.py
+++ b/fireblocks/models/collection_ownership_response.py
@@ -38,8 +38,8 @@ class CollectionOwnershipResponse(BaseModel):
@field_validator('blockchain_descriptor')
def blockchain_descriptor_validate_enum(cls, value):
"""Validates the enum"""
- if value not in set(['ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX', 'KLAY_KAIA', 'KLAY_KAIA_TEST', 'APECHAIN', 'APECHAIN_TEST', 'CRONOS', 'CRONOS_TEST']):
- raise ValueError("must be one of enum values ('ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX', 'KLAY_KAIA', 'KLAY_KAIA_TEST', 'APECHAIN', 'APECHAIN_TEST', 'CRONOS', 'CRONOS_TEST')")
+ if value not in set(['ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX', 'KLAY_KAIA', 'KLAY_KAIA_TEST', 'APECHAIN', 'APECHAIN_TEST', 'CRONOS', 'CRONOS_TEST', 'ROBINHOOD_CHAIN_TESTNET_TEST']):
+ raise ValueError("must be one of enum values ('ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX', 'KLAY_KAIA', 'KLAY_KAIA_TEST', 'APECHAIN', 'APECHAIN_TEST', 'CRONOS', 'CRONOS_TEST', 'ROBINHOOD_CHAIN_TESTNET_TEST')")
return value
model_config = ConfigDict(
diff --git a/fireblocks/models/compliance_screening_result.py b/fireblocks/models/compliance_screening_result.py
index dcf3cd2b..020efe8b 100644
--- a/fireblocks/models/compliance_screening_result.py
+++ b/fireblocks/models/compliance_screening_result.py
@@ -22,7 +22,6 @@
from typing import Any, ClassVar, Dict, List, Optional, Union
from fireblocks.models.aml_result import AmlResult
from fireblocks.models.aml_status_enum import AmlStatusEnum
-from fireblocks.models.screening_risk_level_enum import ScreeningRiskLevelEnum
from fireblocks.models.screening_verdict_enum import ScreeningVerdictEnum
from fireblocks.models.travel_rule_prescreening_rule import TravelRulePrescreeningRule
from fireblocks.models.travel_rule_result import TravelRuleResult
@@ -33,26 +32,26 @@ class ComplianceScreeningResult(BaseModel):
"""
The result of the AML/Travel Rule screening. This unified schema contains all fields that may be returned for both AML and Travel Rule screening results. Not all fields will be present in every response - the actual fields depend on the screening type and provider.
""" # noqa: E501
- provider: Optional[StrictStr] = Field(default=None, description="The AML/Travel Rule provider name. For AML: ELLIPTIC, CHAINALYSIS, SCORECHAIN, MERKLE_SCIENCE, etc. For Travel Rule: NOTABENE, SYGNA, or any TRLink provider name ")
+ provider: Optional[StrictStr] = Field(default=None, description="The AML/Travel Rule provider name. For AML: ELLIPTIC, CHAINALYSIS, etc. For Travel Rule: NOTABENE, SUMSUB, GTR, or any TRLink provider name. ")
payload: Optional[Dict[str, Any]] = Field(default=None, description="The raw payload of the screening result from the provider. The payload is a JSON object that contains the screening result. The payload structure is different for each screening provider. This field contains the complete, unmodified response from the screening service. ")
timestamp: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Unix timestamp in milliseconds when the screening result was generated")
screening_status: Optional[StrictStr] = Field(default=None, description="Current status of the screening process", alias="screeningStatus")
- bypass_reason: Optional[StrictStr] = Field(default=None, description="Reason for bypassing the screening, if applicable. For AML: SANCTIONS_SCREENING_BYPASS, SANCTIONS_RECIPIENT_BYPASS, etc. For Travel Rule: BELOW_THRESHOLD, NO_TRM_AVAILABLE, etc. ", alias="bypassReason")
+ bypass_reason: Optional[StrictStr] = Field(default=None, description="Reason for bypassing the screening, if applicable. For AML: UNSUPPORTED_ASSET, PASSED_BY_POLICY. For Travel Rule: UNSUPPORTED_ASSET, NO_TRAVEL_RULE_MESSAGE, TRANSACTION_ZERO_AMOUNT. ", alias="bypassReason")
status: Optional[AmlStatusEnum] = None
prev_status: Optional[AmlStatusEnum] = Field(default=None, alias="prevStatus")
- prev_bypass_reason: Optional[StrictStr] = Field(default=None, description="Previous bypass reason before the current bypass reason change", alias="prevBypassReason")
+ prev_bypass_reason: Optional[StrictStr] = Field(default=None, description="Deprecated: This field is not currently returned in the API response. Previous bypass reason before the current bypass reason change. ", alias="prevBypassReason")
verdict: Optional[ScreeningVerdictEnum] = None
- risk: Optional[ScreeningRiskLevelEnum] = None
- extended_risk: Optional[ScreeningRiskLevelEnum] = Field(default=None, alias="extendedRisk")
+ risk: Optional[StrictStr] = Field(default=None, description="Risk level assessment for screening results. Values vary by provider and are not managed by this service. Known values by provider: - Chainalysis: severeRisk, highRisk, mediumRisk, lowRisk, noRiskInfo - Elliptic: noRiskDetected Legacy values (SCREAMING_SNAKE_CASE, may appear in old transactions): VERY_HIGH, SEVERE, HIGH, MEDIUM, LOW, NO_RISK_INFO, UNKNOWN ")
+ extended_risk: Optional[StrictStr] = Field(default=None, description="Deprecated: This field is not currently returned in the API response. Use risk instead. ", alias="extendedRisk")
external_id: Optional[StrictStr] = Field(default=None, description="External identifier for the screening (provider-specific)", alias="externalId")
customer_ref_id: Optional[StrictStr] = Field(default=None, description="Customer-provided reference identifier for tracking", alias="customerRefId")
- ref_id: Optional[StrictStr] = Field(default=None, description="Internal reference identifier", alias="refId")
+ ref_id: Optional[StrictStr] = Field(default=None, description="Deprecated: This field is not currently returned in the API response. Internal reference identifier. ", alias="refId")
category: Optional[StrictStr] = Field(default=None, description="Risk category classification. Examples: EXCHANGE, GAMBLING, MIXER, DARKNET_SERVICE, SANCTIONED_ENTITY ")
category_id: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Numeric identifier for the risk category", alias="categoryId")
dest_address: Optional[StrictStr] = Field(default=None, description="The destination blockchain address associated with the screening", alias="destAddress")
dest_tag: Optional[StrictStr] = Field(default=None, description="Destination tag or memo (for chains that support it like XRP, XLM)", alias="destTag")
- dest_record_id: Optional[StrictStr] = Field(default=None, description="The destination record identifier used by the screening provider", alias="destRecordId")
- address_resolution_signature: Optional[StrictStr] = Field(default=None, description="Cryptographic signature for address resolution verification", alias="addressResolutionSignature")
+ dest_record_id: Optional[StrictStr] = Field(default=None, description="Deprecated: This field is not currently returned in the API response. The destination record identifier used by the screening provider. ", alias="destRecordId")
+ address_resolution_signature: Optional[StrictStr] = Field(default=None, description="Deprecated: This field is not currently returned in the API response. Cryptographic signature for address resolution verification. ", alias="addressResolutionSignature")
aml_result: Optional[AmlResult] = Field(default=None, alias="amlResult")
result: Optional[TravelRuleResult] = None
details_message: Optional[StrictStr] = Field(default=None, description="Additional human-readable details or message about the screening result", alias="detailsMessage")
@@ -63,7 +62,8 @@ class ComplianceScreeningResult(BaseModel):
customer_integration_id: Optional[StrictStr] = Field(default=None, description="Customer integration identifier used by Travel Rule providers", alias="customerIntegrationId")
customer_short_name: Optional[StrictStr] = Field(default=None, description="Customer short name registered with Travel Rule providers", alias="customerShortName")
travel_rule_message_id: Optional[StrictStr] = Field(default=None, description="Travel rule message identifier for linking and tracking across providers", alias="travelRuleMessageId")
- __properties: ClassVar[List[str]] = ["provider", "payload", "timestamp", "screeningStatus", "bypassReason", "status", "prevStatus", "prevBypassReason", "verdict", "risk", "extendedRisk", "externalId", "customerRefId", "refId", "category", "categoryId", "destAddress", "destTag", "destRecordId", "addressResolutionSignature", "amlResult", "result", "detailsMessage", "matchedAlert", "matchedRule", "matchedPrescreeningRule", "matchedNoTrmScreeningRule", "customerIntegrationId", "customerShortName", "travelRuleMessageId"]
+ provider_response: Optional[Dict[str, Any]] = Field(default=None, description="Complete response from the screening provider. This is a dynamic object that varies significantly between different providers (Chainalysis, Elliptic, NOTABENE, etc.). Each provider has their own proprietary response format and schema. For AML providers: Contains risk scores, alerts, entity information For Travel Rule providers: Contains VASP information, PII data, protocol-specific fields The structure is provider-dependent and cannot be standardized as each vendor implements their own proprietary data models and response formats. ", alias="providerResponse")
+ __properties: ClassVar[List[str]] = ["provider", "payload", "timestamp", "screeningStatus", "bypassReason", "status", "prevStatus", "prevBypassReason", "verdict", "risk", "extendedRisk", "externalId", "customerRefId", "refId", "category", "categoryId", "destAddress", "destTag", "destRecordId", "addressResolutionSignature", "amlResult", "result", "detailsMessage", "matchedAlert", "matchedRule", "matchedPrescreeningRule", "matchedNoTrmScreeningRule", "customerIntegrationId", "customerShortName", "travelRuleMessageId", "providerResponse"]
@field_validator('screening_status')
def screening_status_validate_enum(cls, value):
@@ -164,7 +164,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"matchedNoTrmScreeningRule": obj.get("matchedNoTrmScreeningRule"),
"customerIntegrationId": obj.get("customerIntegrationId"),
"customerShortName": obj.get("customerShortName"),
- "travelRuleMessageId": obj.get("travelRuleMessageId")
+ "travelRuleMessageId": obj.get("travelRuleMessageId"),
+ "providerResponse": obj.get("providerResponse")
})
return _obj
diff --git a/fireblocks/models/compliance_screening_result_full_payload.py b/fireblocks/models/compliance_screening_result_full_payload.py
index 62cad8b8..28ffb5d9 100644
--- a/fireblocks/models/compliance_screening_result_full_payload.py
+++ b/fireblocks/models/compliance_screening_result_full_payload.py
@@ -22,7 +22,6 @@
from typing import Any, ClassVar, Dict, List, Optional, Union
from fireblocks.models.aml_status_enum import AmlStatusEnum
from fireblocks.models.screening_aml_result import ScreeningAmlResult
-from fireblocks.models.screening_risk_level_enum import ScreeningRiskLevelEnum
from fireblocks.models.screening_travel_rule_prescreening_rule import ScreeningTravelRulePrescreeningRule
from fireblocks.models.screening_travel_rule_result import ScreeningTravelRuleResult
from fireblocks.models.screening_verdict_enum import ScreeningVerdictEnum
@@ -33,26 +32,26 @@ class ComplianceScreeningResultFullPayload(BaseModel):
"""
The result of the AML/Travel Rule screening. This unified schema contains all fields that may be returned for both AML and Travel Rule screening results. Not all fields will be present in every response - the actual fields depend on the screening type and provider.
""" # noqa: E501
- provider: Optional[StrictStr] = Field(default=None, description="The AML/Travel Rule provider name. For AML: ELLIPTIC, CHAINALYSIS, etc. For Travel Rule: NOTABENE, SUMSUB, or any TRLink provider name ")
+ provider: Optional[StrictStr] = Field(default=None, description="The AML/Travel Rule provider name. For AML: ELLIPTIC, CHAINALYSIS, etc. For Travel Rule: NOTABENE, SUMSUB, GTR, or any TRLink provider name ")
payload: Optional[Dict[str, Any]] = Field(default=None, description="The raw payload of the screening result from the provider. The payload is a JSON object that contains the screening result. The payload structure is different for each screening provider. This field contains the complete, unmodified response from the screening service. ")
timestamp: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Unix timestamp in milliseconds when the screening result was generated")
screening_status: Optional[StrictStr] = Field(default=None, description="Current status of the screening process", alias="screeningStatus")
- bypass_reason: Optional[StrictStr] = Field(default=None, description="Reason for bypassing the screening, if applicable. For AML: SANCTIONS_SCREENING_BYPASS, SANCTIONS_RECIPIENT_BYPASS, etc. For Travel Rule: BELOW_THRESHOLD, NO_TRM_AVAILABLE, etc. ", alias="bypassReason")
+ bypass_reason: Optional[StrictStr] = Field(default=None, description="Reason for bypassing the screening, if applicable. For AML: UNSUPPORTED_ASSET, PASSED_BY_POLICY. For Travel Rule: UNSUPPORTED_ASSET, NO_TRAVEL_RULE_MESSAGE, TRANSACTION_ZERO_AMOUNT. ", alias="bypassReason")
status: Optional[AmlStatusEnum] = None
prev_status: Optional[AmlStatusEnum] = Field(default=None, alias="prevStatus")
- prev_bypass_reason: Optional[StrictStr] = Field(default=None, description="Previous bypass reason before the current bypass reason change", alias="prevBypassReason")
+ prev_bypass_reason: Optional[StrictStr] = Field(default=None, description="Deprecated: This field is not currently returned in the API response. Previous bypass reason before the current bypass reason change. ", alias="prevBypassReason")
verdict: Optional[ScreeningVerdictEnum] = None
- risk: Optional[ScreeningRiskLevelEnum] = None
- extended_risk: Optional[ScreeningRiskLevelEnum] = Field(default=None, alias="extendedRisk")
+ risk: Optional[StrictStr] = Field(default=None, description="Risk level assessment for screening results. Values vary by provider and are not managed by this service. Known values by provider: - Chainalysis: severeRisk, highRisk, mediumRisk, lowRisk, noRiskInfo - Elliptic: noRiskDetected Legacy values (SCREAMING_SNAKE_CASE, may appear in old transactions): VERY_HIGH, SEVERE, HIGH, MEDIUM, LOW, NO_RISK_INFO, UNKNOWN ")
+ extended_risk: Optional[StrictStr] = Field(default=None, description="Deprecated: This field is not currently returned in the API response. Use risk instead. ", alias="extendedRisk")
external_id: Optional[StrictStr] = Field(default=None, description="External identifier for the screening (provider-specific)", alias="externalId")
customer_ref_id: Optional[StrictStr] = Field(default=None, description="Customer-provided reference identifier for tracking", alias="customerRefId")
- ref_id: Optional[StrictStr] = Field(default=None, description="Internal reference identifier", alias="refId")
+ ref_id: Optional[StrictStr] = Field(default=None, description="Deprecated: This field is not currently returned in the API response. Internal reference identifier. ", alias="refId")
category: Optional[StrictStr] = Field(default=None, description="Risk category classification. Examples: EXCHANGE, GAMBLING, MIXER, DARKNET_SERVICE, SANCTIONED_ENTITY ")
category_id: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Numeric identifier for the risk category", alias="categoryId")
dest_address: Optional[StrictStr] = Field(default=None, description="The destination blockchain address associated with the screening", alias="destAddress")
dest_tag: Optional[StrictStr] = Field(default=None, description="Destination tag or memo (for chains that support it like XRP, XLM)", alias="destTag")
- dest_record_id: Optional[StrictStr] = Field(default=None, description="The destination record identifier used by the screening provider", alias="destRecordId")
- address_resolution_signature: Optional[StrictStr] = Field(default=None, description="Cryptographic signature for address resolution verification", alias="addressResolutionSignature")
+ dest_record_id: Optional[StrictStr] = Field(default=None, description="Deprecated: This field is not currently returned in the API response. The destination record identifier used by the screening provider. ", alias="destRecordId")
+ address_resolution_signature: Optional[StrictStr] = Field(default=None, description="Deprecated: This field is not currently returned in the API response. Cryptographic signature for address resolution verification. ", alias="addressResolutionSignature")
aml_result: Optional[ScreeningAmlResult] = Field(default=None, alias="amlResult")
result: Optional[ScreeningTravelRuleResult] = None
details_message: Optional[StrictStr] = Field(default=None, description="Additional human-readable details or message about the screening result", alias="detailsMessage")
@@ -63,7 +62,8 @@ class ComplianceScreeningResultFullPayload(BaseModel):
customer_integration_id: Optional[StrictStr] = Field(default=None, description="Customer integration identifier used by Travel Rule providers", alias="customerIntegrationId")
customer_short_name: Optional[StrictStr] = Field(default=None, description="Customer short name registered with Travel Rule providers", alias="customerShortName")
travel_rule_message_id: Optional[StrictStr] = Field(default=None, description="Travel rule message identifier for linking and tracking across providers", alias="travelRuleMessageId")
- __properties: ClassVar[List[str]] = ["provider", "payload", "timestamp", "screeningStatus", "bypassReason", "status", "prevStatus", "prevBypassReason", "verdict", "risk", "extendedRisk", "externalId", "customerRefId", "refId", "category", "categoryId", "destAddress", "destTag", "destRecordId", "addressResolutionSignature", "amlResult", "result", "detailsMessage", "matchedAlert", "matchedRule", "matchedPrescreeningRule", "matchedNoTrmScreeningRule", "customerIntegrationId", "customerShortName", "travelRuleMessageId"]
+ provider_response: Optional[Dict[str, Any]] = Field(default=None, description="Complete response from the screening provider. This is a dynamic object that varies significantly between different providers (Chainalysis, Elliptic, NOTABENE, etc.). Each provider has their own proprietary response format and schema. For AML providers: Contains risk scores, alerts, entity information For Travel Rule providers: Contains VASP information, PII data, protocol-specific fields The structure is provider-dependent and cannot be standardized as each vendor implements their own proprietary data models and response formats. ", alias="providerResponse")
+ __properties: ClassVar[List[str]] = ["provider", "payload", "timestamp", "screeningStatus", "bypassReason", "status", "prevStatus", "prevBypassReason", "verdict", "risk", "extendedRisk", "externalId", "customerRefId", "refId", "category", "categoryId", "destAddress", "destTag", "destRecordId", "addressResolutionSignature", "amlResult", "result", "detailsMessage", "matchedAlert", "matchedRule", "matchedPrescreeningRule", "matchedNoTrmScreeningRule", "customerIntegrationId", "customerShortName", "travelRuleMessageId", "providerResponse"]
@field_validator('screening_status')
def screening_status_validate_enum(cls, value):
@@ -164,7 +164,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"matchedNoTrmScreeningRule": obj.get("matchedNoTrmScreeningRule"),
"customerIntegrationId": obj.get("customerIntegrationId"),
"customerShortName": obj.get("customerShortName"),
- "travelRuleMessageId": obj.get("travelRuleMessageId")
+ "travelRuleMessageId": obj.get("travelRuleMessageId"),
+ "providerResponse": obj.get("providerResponse")
})
return _obj
diff --git a/fireblocks/models/create_multiple_accounts_request.py b/fireblocks/models/create_multiple_accounts_request.py
index bdfc678a..0a365cc6 100644
--- a/fireblocks/models/create_multiple_accounts_request.py
+++ b/fireblocks/models/create_multiple_accounts_request.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from typing_extensions import Annotated
from typing import Optional, Set
from typing_extensions import Self
@@ -32,7 +33,8 @@ class CreateMultipleAccountsRequest(BaseModel):
names: Optional[List[StrictStr]] = Field(default=None, description="Names to assign to vault accounts. if vaultAccountNamesStartingIndex or prefix is used it'll fail")
vault_account_names_starting_index: Optional[StrictInt] = Field(default=None, description="Copy vault accounts names starting from this index. If names array is used it'll fail", alias="vaultAccountNamesStartingIndex")
prefix: Optional[StrictStr] = Field(default=None, description="When copying from existing vault accounts (vaultAccountNamesStartingIndex) then adding a prefix to the names. If names array is used it'll fail")
- __properties: ClassVar[List[str]] = ["count", "baseAssetIds", "names", "vaultAccountNamesStartingIndex", "prefix"]
+ tag_ids: Optional[Annotated[List[StrictStr], Field(max_length=20)]] = Field(default=None, description="Optional list of tag IDs to attach to all created vault accounts", alias="tagIds")
+ __properties: ClassVar[List[str]] = ["count", "baseAssetIds", "names", "vaultAccountNamesStartingIndex", "prefix", "tagIds"]
model_config = ConfigDict(
populate_by_name=True,
@@ -89,7 +91,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"baseAssetIds": obj.get("baseAssetIds"),
"names": obj.get("names"),
"vaultAccountNamesStartingIndex": obj.get("vaultAccountNamesStartingIndex"),
- "prefix": obj.get("prefix")
+ "prefix": obj.get("prefix"),
+ "tagIds": obj.get("tagIds")
})
return _obj
diff --git a/fireblocks/models/direct_access_provider.py b/fireblocks/models/direct_access_provider.py
index 8ef16c8d..9b6166f7 100644
--- a/fireblocks/models/direct_access_provider.py
+++ b/fireblocks/models/direct_access_provider.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from fireblocks.models.manifest import Manifest
from typing import Optional, Set
from typing_extensions import Self
@@ -31,10 +32,12 @@ class DirectAccessProvider(BaseModel):
name: StrictStr = Field(description="Display name of the provider")
logo: Optional[StrictStr] = Field(default=None, description="URL to the logo image of the provider")
account_based: StrictBool = Field(description="Indicates whether the provider access model is through accounts or directly", alias="accountBased")
+ manifest: Manifest
approved: Optional[StrictBool] = Field(default=None, description="Whether the provider was approved for use")
has_terms_of_service: StrictBool = Field(description="Whether the provider has terms of service", alias="hasTermsOfService")
terms_of_service_url: Optional[StrictStr] = Field(default=None, description="URL to the terms of service document", alias="termsOfServiceUrl")
- __properties: ClassVar[List[str]] = ["id", "name", "logo", "accountBased", "approved", "hasTermsOfService", "termsOfServiceUrl"]
+ privacy_policy_url: Optional[StrictStr] = Field(default=None, description="URL to the privacy policy document", alias="privacyPolicyUrl")
+ __properties: ClassVar[List[str]] = ["id", "name", "logo", "accountBased", "manifest", "approved", "hasTermsOfService", "termsOfServiceUrl", "privacyPolicyUrl"]
model_config = ConfigDict(
populate_by_name=True,
@@ -75,6 +78,9 @@ def to_dict(self) -> Dict[str, Any]:
exclude=excluded_fields,
exclude_none=True,
)
+ # override the default output from pydantic by calling `to_dict()` of manifest
+ if self.manifest:
+ _dict['manifest'] = self.manifest.to_dict()
return _dict
@classmethod
@@ -91,9 +97,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"name": obj.get("name"),
"logo": obj.get("logo"),
"accountBased": obj.get("accountBased"),
+ "manifest": Manifest.from_dict(obj["manifest"]) if obj.get("manifest") is not None else None,
"approved": obj.get("approved"),
"hasTermsOfService": obj.get("hasTermsOfService"),
- "termsOfServiceUrl": obj.get("termsOfServiceUrl")
+ "termsOfServiceUrl": obj.get("termsOfServiceUrl"),
+ "privacyPolicyUrl": obj.get("privacyPolicyUrl")
})
return _obj
diff --git a/fireblocks/models/direct_access_provider_details.py b/fireblocks/models/direct_access_provider_info.py
similarity index 84%
rename from fireblocks/models/direct_access_provider_details.py
rename to fireblocks/models/direct_access_provider_info.py
index 5fad7e08..e6ff2268 100644
--- a/fireblocks/models/direct_access_provider_details.py
+++ b/fireblocks/models/direct_access_provider_info.py
@@ -23,14 +23,15 @@
from typing import Optional, Set
from typing_extensions import Self
-class DirectAccessProviderDetails(BaseModel):
+class DirectAccessProviderInfo(BaseModel):
"""
- DirectAccessProviderDetails
+ DirectAccessProviderInfo
""" # noqa: E501
approved: Optional[StrictBool] = Field(default=None, description="Whether the provider was approved for use")
has_terms_of_service: StrictBool = Field(description="Whether the provider has terms of service", alias="hasTermsOfService")
terms_of_service_url: Optional[StrictStr] = Field(default=None, description="URL to the terms of service document", alias="termsOfServiceUrl")
- __properties: ClassVar[List[str]] = ["approved", "hasTermsOfService", "termsOfServiceUrl"]
+ privacy_policy_url: Optional[StrictStr] = Field(default=None, description="URL to the privacy policy document", alias="privacyPolicyUrl")
+ __properties: ClassVar[List[str]] = ["approved", "hasTermsOfService", "termsOfServiceUrl", "privacyPolicyUrl"]
model_config = ConfigDict(
populate_by_name=True,
@@ -50,7 +51,7 @@ def to_json(self) -> str:
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
- """Create an instance of DirectAccessProviderDetails from a JSON string"""
+ """Create an instance of DirectAccessProviderInfo from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
@@ -75,7 +76,7 @@ def to_dict(self) -> Dict[str, Any]:
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
- """Create an instance of DirectAccessProviderDetails from a dict"""
+ """Create an instance of DirectAccessProviderInfo from a dict"""
if obj is None:
return None
@@ -85,7 +86,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
_obj = cls.model_validate({
"approved": obj.get("approved"),
"hasTermsOfService": obj.get("hasTermsOfService"),
- "termsOfServiceUrl": obj.get("termsOfServiceUrl")
+ "termsOfServiceUrl": obj.get("termsOfServiceUrl"),
+ "privacyPolicyUrl": obj.get("privacyPolicyUrl")
})
return _obj
diff --git a/fireblocks/models/direct_provider_details.py b/fireblocks/models/direct_provider_details.py
new file mode 100644
index 00000000..085c9fca
--- /dev/null
+++ b/fireblocks/models/direct_provider_details.py
@@ -0,0 +1,108 @@
+# coding: utf-8
+
+"""
+ 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
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from fireblocks.models.manifest import Manifest
+from typing import Optional, Set
+from typing_extensions import Self
+
+class DirectProviderDetails(BaseModel):
+ """
+ DirectProviderDetails
+ """ # noqa: E501
+ id: StrictStr = Field(description="Unique identifier for the provider")
+ name: StrictStr = Field(description="Display name of the provider")
+ logo: Optional[StrictStr] = Field(default=None, description="URL to the logo image of the provider")
+ account_based: StrictBool = Field(description="Indicates whether the provider access model is through accounts or directly", alias="accountBased")
+ manifest: Manifest
+ approved: Optional[StrictBool] = Field(default=None, description="Whether the provider was approved for use")
+ has_terms_of_service: StrictBool = Field(description="Whether the provider has terms of service", alias="hasTermsOfService")
+ terms_of_service_url: Optional[StrictStr] = Field(default=None, description="URL to the terms of service document", alias="termsOfServiceUrl")
+ privacy_policy_url: Optional[StrictStr] = Field(default=None, description="URL to the privacy policy document", alias="privacyPolicyUrl")
+ __properties: ClassVar[List[str]] = ["id", "name", "logo", "accountBased", "manifest", "approved", "hasTermsOfService", "termsOfServiceUrl", "privacyPolicyUrl"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of DirectProviderDetails from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # override the default output from pydantic by calling `to_dict()` of manifest
+ if self.manifest:
+ _dict['manifest'] = self.manifest.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of DirectProviderDetails from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "id": obj.get("id"),
+ "name": obj.get("name"),
+ "logo": obj.get("logo"),
+ "accountBased": obj.get("accountBased"),
+ "manifest": Manifest.from_dict(obj["manifest"]) if obj.get("manifest") is not None else None,
+ "approved": obj.get("approved"),
+ "hasTermsOfService": obj.get("hasTermsOfService"),
+ "termsOfServiceUrl": obj.get("termsOfServiceUrl"),
+ "privacyPolicyUrl": obj.get("privacyPolicyUrl")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/capability.py b/fireblocks/models/execution_request_details_type.py
similarity index 79%
rename from fireblocks/models/capability.py
rename to fireblocks/models/execution_request_details_type.py
index 1308fe94..390d3c65 100644
--- a/fireblocks/models/capability.py
+++ b/fireblocks/models/execution_request_details_type.py
@@ -19,21 +19,20 @@
from typing_extensions import Self
-class Capability(str, Enum):
+class ExecutionRequestDetailsType(str, Enum):
"""
- Capability
+ Execution type supported by the provider
"""
"""
allowed enum values
"""
- WITHDRAWALS = 'WITHDRAWALS'
- DEPOSITS = 'DEPOSITS'
- TRADING = 'TRADING'
+ QUOTE = 'QUOTE'
+ MARKET = 'MARKET'
@classmethod
def from_json(cls, json_str: str) -> Self:
- """Create an instance of Capability from a JSON string"""
+ """Create an instance of ExecutionRequestDetailsType from a JSON string"""
return cls(json.loads(json_str))
diff --git a/fireblocks/models/job_created.py b/fireblocks/models/job_created.py
index 9dbb741b..62ff1dcb 100644
--- a/fireblocks/models/job_created.py
+++ b/fireblocks/models/job_created.py
@@ -28,7 +28,8 @@ class JobCreated(BaseModel):
JobCreated
""" # noqa: E501
job_id: Optional[StrictStr] = Field(default=None, alias="jobId")
- __properties: ClassVar[List[str]] = ["jobId"]
+ approval_request_id: Optional[StrictStr] = Field(default=None, description="Approval request ID. Returned when a tag triggers an approval flow.", alias="approvalRequestId")
+ __properties: ClassVar[List[str]] = ["jobId", "approvalRequestId"]
model_config = ConfigDict(
populate_by_name=True,
@@ -81,7 +82,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
return cls.model_validate(obj)
_obj = cls.model_validate({
- "jobId": obj.get("jobId")
+ "jobId": obj.get("jobId"),
+ "approvalRequestId": obj.get("approvalRequestId")
})
return _obj
diff --git a/fireblocks/models/manifest.py b/fireblocks/models/manifest.py
index 46d0a635..ccd661e6 100644
--- a/fireblocks/models/manifest.py
+++ b/fireblocks/models/manifest.py
@@ -18,20 +18,22 @@
import re # noqa: F401
import json
-from pydantic import BaseModel, ConfigDict, Field
+from pydantic import BaseModel, ConfigDict
from typing import Any, ClassVar, Dict, List
-from fireblocks.models.asset_type_enum import AssetTypeEnum
-from fireblocks.models.capability import Capability
+from fireblocks.models.manifest_base import ManifestBase
+from fireblocks.models.manifest_order import ManifestOrder
+from fireblocks.models.manifest_quote import ManifestQuote
from typing import Optional, Set
from typing_extensions import Self
class Manifest(BaseModel):
"""
- Manifest
+ The manifest of the provider, describing its supported order, quote, and rate requirements.
""" # noqa: E501
- asset_types: List[AssetTypeEnum] = Field(alias="assetTypes")
- capabilities: List[Capability]
- __properties: ClassVar[List[str]] = ["assetTypes", "capabilities"]
+ order: ManifestOrder
+ quote: ManifestQuote
+ rate: ManifestBase
+ __properties: ClassVar[List[str]] = ["order", "quote", "rate"]
model_config = ConfigDict(
populate_by_name=True,
@@ -72,6 +74,15 @@ def to_dict(self) -> Dict[str, Any]:
exclude=excluded_fields,
exclude_none=True,
)
+ # override the default output from pydantic by calling `to_dict()` of order
+ if self.order:
+ _dict['order'] = self.order.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of quote
+ if self.quote:
+ _dict['quote'] = self.quote.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of rate
+ if self.rate:
+ _dict['rate'] = self.rate.to_dict()
return _dict
@classmethod
@@ -84,8 +95,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
return cls.model_validate(obj)
_obj = cls.model_validate({
- "assetTypes": obj.get("assetTypes"),
- "capabilities": obj.get("capabilities")
+ "order": ManifestOrder.from_dict(obj["order"]) if obj.get("order") is not None else None,
+ "quote": ManifestQuote.from_dict(obj["quote"]) if obj.get("quote") is not None else None,
+ "rate": ManifestBase.from_dict(obj["rate"]) if obj.get("rate") is not None else None
})
return _obj
diff --git a/fireblocks/models/manifest_base.py b/fireblocks/models/manifest_base.py
new file mode 100644
index 00000000..d2cac6e0
--- /dev/null
+++ b/fireblocks/models/manifest_base.py
@@ -0,0 +1,88 @@
+# coding: utf-8
+
+"""
+ 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
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictBool
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ManifestBase(BaseModel):
+ """
+ Base manifest schema with common properties
+ """ # noqa: E501
+ supported: StrictBool = Field(description="Indicates whether the endpoint is supported by the provider")
+ __properties: ClassVar[List[str]] = ["supported"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of ManifestBase from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ManifestBase from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "supported": obj.get("supported")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/manifest_order.py b/fireblocks/models/manifest_order.py
new file mode 100644
index 00000000..b6d81796
--- /dev/null
+++ b/fireblocks/models/manifest_order.py
@@ -0,0 +1,94 @@
+# coding: utf-8
+
+"""
+ 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
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictBool
+from typing import Any, ClassVar, Dict, List, Optional
+from fireblocks.models.execution_request_details_type import ExecutionRequestDetailsType
+from fireblocks.models.settlement_type_enum import SettlementTypeEnum
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ManifestOrder(BaseModel):
+ """
+ ManifestOrder
+ """ # noqa: E501
+ supported: StrictBool = Field(description="Indicates whether the endpoint is supported by the provider")
+ settlement_types: Optional[List[SettlementTypeEnum]] = Field(default=None, description="Supported settlement types when creating an order. If present - settlement is required. If absent - no need to provide settlement. ", alias="settlementTypes")
+ execution_types: List[ExecutionRequestDetailsType] = Field(description="Supported execution types when creating an order.", alias="executionTypes")
+ __properties: ClassVar[List[str]] = ["supported", "settlementTypes", "executionTypes"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of ManifestOrder from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ManifestOrder from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "supported": obj.get("supported"),
+ "settlementTypes": obj.get("settlementTypes"),
+ "executionTypes": obj.get("executionTypes")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/manifest_order_info.py b/fireblocks/models/manifest_order_info.py
new file mode 100644
index 00000000..97c3cd66
--- /dev/null
+++ b/fireblocks/models/manifest_order_info.py
@@ -0,0 +1,92 @@
+# coding: utf-8
+
+"""
+ 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
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field
+from typing import Any, ClassVar, Dict, List, Optional
+from fireblocks.models.execution_request_details_type import ExecutionRequestDetailsType
+from fireblocks.models.settlement_type_enum import SettlementTypeEnum
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ManifestOrderInfo(BaseModel):
+ """
+ Defines requirements for the POST /orders endpoint.
+ """ # noqa: E501
+ settlement_types: Optional[List[SettlementTypeEnum]] = Field(default=None, description="Supported settlement types when creating an order. If present - settlement is required. If absent - no need to provide settlement. ", alias="settlementTypes")
+ execution_types: List[ExecutionRequestDetailsType] = Field(description="Supported execution types when creating an order.", alias="executionTypes")
+ __properties: ClassVar[List[str]] = ["settlementTypes", "executionTypes"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of ManifestOrderInfo from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ManifestOrderInfo from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "settlementTypes": obj.get("settlementTypes"),
+ "executionTypes": obj.get("executionTypes")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/manifest_quote.py b/fireblocks/models/manifest_quote.py
new file mode 100644
index 00000000..9ea22d23
--- /dev/null
+++ b/fireblocks/models/manifest_quote.py
@@ -0,0 +1,91 @@
+# coding: utf-8
+
+"""
+ 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
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictBool
+from typing import Any, ClassVar, Dict, List, Optional
+from fireblocks.models.dvp_settlement_type import DVPSettlementType
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ManifestQuote(BaseModel):
+ """
+ ManifestQuote
+ """ # noqa: E501
+ supported: StrictBool = Field(description="Indicates whether the endpoint is supported by the provider")
+ settlement_types: Optional[List[DVPSettlementType]] = Field(default=None, description="Supported settlement types when requesting a quote. If present - settlement is required. If absent - no need to provide settlement. ", alias="settlementTypes")
+ __properties: ClassVar[List[str]] = ["supported", "settlementTypes"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of ManifestQuote from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ManifestQuote from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "supported": obj.get("supported"),
+ "settlementTypes": obj.get("settlementTypes")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/manifest_quote_info.py b/fireblocks/models/manifest_quote_info.py
new file mode 100644
index 00000000..5059da4d
--- /dev/null
+++ b/fireblocks/models/manifest_quote_info.py
@@ -0,0 +1,89 @@
+# coding: utf-8
+
+"""
+ 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
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field
+from typing import Any, ClassVar, Dict, List, Optional
+from fireblocks.models.dvp_settlement_type import DVPSettlementType
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ManifestQuoteInfo(BaseModel):
+ """
+ Defines requirements for the POST /quotes endpoint.
+ """ # noqa: E501
+ settlement_types: Optional[List[DVPSettlementType]] = Field(default=None, description="Supported settlement types when requesting a quote. If present - settlement is required. If absent - no need to provide settlement. ", alias="settlementTypes")
+ __properties: ClassVar[List[str]] = ["settlementTypes"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of ManifestQuoteInfo from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ManifestQuoteInfo from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "settlementTypes": obj.get("settlementTypes")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/position.py b/fireblocks/models/position.py
new file mode 100644
index 00000000..f4808c30
--- /dev/null
+++ b/fireblocks/models/position.py
@@ -0,0 +1,139 @@
+# coding: utf-8
+
+"""
+ 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
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from datetime import datetime
+from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator
+from typing import Any, ClassVar, Dict, List, Optional
+from fireblocks.models.delegation_blockchain_position_info import DelegationBlockchainPositionInfo
+from fireblocks.models.staking_provider import StakingProvider
+from typing import Optional, Set
+from typing_extensions import Self
+
+class Position(BaseModel):
+ """
+ Position
+ """ # noqa: E501
+ id: StrictStr = Field(description="The unique identifier of the staking position")
+ vault_account_id: StrictStr = Field(description="The source vault account to stake from", alias="vaultAccountId")
+ validator_name: StrictStr = Field(description="The destination validator address name", alias="validatorName")
+ provider_name: StrictStr = Field(description="The destination validator provider name", alias="providerName")
+ chain_descriptor: StrictStr = Field(description="The protocol identifier (e.g. \"ETH\"/ \"SOL\") to use", alias="chainDescriptor")
+ amount: StrictStr = Field(description="Total value of the staking position. For Solana, Lido and Ethereum (compounding validator): includes the original stake plus accumulated rewards. For MATIC, Cosmos and Ethereum (legacy validator): refers to the amount currently staked.")
+ rewards_amount: StrictStr = Field(description="The amount staked in the position, measured in the staked asset unit.", alias="rewardsAmount")
+ date_created: datetime = Field(description="When was the request made (ISO Date).", alias="dateCreated")
+ date_updated: datetime = Field(description="When has the position last changed (ISO Date).", alias="dateUpdated")
+ status: StrictStr = Field(description="The current status.")
+ validator_address: StrictStr = Field(description="The destination address of the staking transaction.", alias="validatorAddress")
+ provider_id: StakingProvider = Field(alias="providerId")
+ available_actions: List[StrictStr] = Field(description="An array of available actions that can be performed. for example, actions like \"UNSTAKE\" or \"WITHDRAW\".", alias="availableActions")
+ in_progress: StrictBool = Field(description="Indicates whether there is an ongoing action for this position related to this request", alias="inProgress")
+ in_progress_tx_id: Optional[StrictStr] = Field(default=None, description="The transaction ID of the initial stake position request only. Only present when there is an active initial stake transaction.", alias="inProgressTxId")
+ blockchain_position_info: DelegationBlockchainPositionInfo = Field(alias="blockchainPositionInfo")
+ __properties: ClassVar[List[str]] = ["id", "vaultAccountId", "validatorName", "providerName", "chainDescriptor", "amount", "rewardsAmount", "dateCreated", "dateUpdated", "status", "validatorAddress", "providerId", "availableActions", "inProgress", "inProgressTxId", "blockchainPositionInfo"]
+
+ @field_validator('status')
+ def status_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['CREATING', 'PENDING', 'ACTIVATING', 'ACTIVE', 'DEACTIVATING', 'DEACTIVATED', 'WITHDRAWING', 'WITHDRAWN', 'MERGED', 'CONSOLIDATED', 'CANCELED', 'FAILED']):
+ raise ValueError("must be one of enum values ('CREATING', 'PENDING', 'ACTIVATING', 'ACTIVE', 'DEACTIVATING', 'DEACTIVATED', 'WITHDRAWING', 'WITHDRAWN', 'MERGED', 'CONSOLIDATED', 'CANCELED', 'FAILED')")
+ return value
+
+ @field_validator('available_actions')
+ def available_actions_validate_enum(cls, value):
+ """Validates the enum"""
+ for i in value:
+ if i not in set(['UNSTAKE', 'WITHDRAW', 'ADD_TO_STAKE', 'SPLIT', 'MERGE', 'CLAIM_REWARDS', 'CONSOLIDATE']):
+ raise ValueError("each list item must be one of ('UNSTAKE', 'WITHDRAW', 'ADD_TO_STAKE', 'SPLIT', 'MERGE', 'CLAIM_REWARDS', 'CONSOLIDATE')")
+ return value
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of Position from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # override the default output from pydantic by calling `to_dict()` of blockchain_position_info
+ if self.blockchain_position_info:
+ _dict['blockchainPositionInfo'] = self.blockchain_position_info.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of Position from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "id": obj.get("id"),
+ "vaultAccountId": obj.get("vaultAccountId"),
+ "validatorName": obj.get("validatorName"),
+ "providerName": obj.get("providerName"),
+ "chainDescriptor": obj.get("chainDescriptor"),
+ "amount": obj.get("amount"),
+ "rewardsAmount": obj.get("rewardsAmount"),
+ "dateCreated": obj.get("dateCreated"),
+ "dateUpdated": obj.get("dateUpdated"),
+ "status": obj.get("status"),
+ "validatorAddress": obj.get("validatorAddress"),
+ "providerId": obj.get("providerId"),
+ "availableActions": obj.get("availableActions"),
+ "inProgress": obj.get("inProgress"),
+ "inProgressTxId": obj.get("inProgressTxId"),
+ "blockchainPositionInfo": DelegationBlockchainPositionInfo.from_dict(obj["blockchainPositionInfo"]) if obj.get("blockchainPositionInfo") is not None else None
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/screening_aml_result.py b/fireblocks/models/screening_aml_result.py
index fe32ca10..eb7328bf 100644
--- a/fireblocks/models/screening_aml_result.py
+++ b/fireblocks/models/screening_aml_result.py
@@ -27,7 +27,7 @@
class ScreeningAmlResult(BaseModel):
"""
- Detailed AML screening result information. Contains alerts, risk scores, and other AML-specific data from provider-specific responses.
+ Deprecated: This field is not currently returned in the API response. Detailed AML screening result information. Contains alerts, risk scores, and other AML-specific data from provider-specific responses.
""" # noqa: E501
alerts: Optional[List[ScreeningAmlAlert]] = Field(default=None, description="List of AML alerts triggered during screening")
provider_response: Optional[Dict[str, Any]] = Field(default=None, description="Complete response from the AML provider. This is a dynamic object that varies significantly between different AML providers (Chainalysis, Elliptic, etc.). Each provider has their own proprietary response format and schema. Examples of provider-specific structures: - Chainalysis: Contains cluster info, risk scores, sanctions data - Elliptic: Includes risk assessment, entity types, compliance flags The structure is provider-dependent and cannot be standardized as each vendor implements their own proprietary data models and response formats. ", alias="providerResponse")
diff --git a/fireblocks/models/screening_risk_level_enum.py b/fireblocks/models/screening_risk_level_enum.py
deleted file mode 100644
index 24510d4f..00000000
--- a/fireblocks/models/screening_risk_level_enum.py
+++ /dev/null
@@ -1,42 +0,0 @@
-# coding: utf-8
-
-"""
- 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
- Generated by OpenAPI Generator (https://openapi-generator.tech)
-
- Do not edit the class manually.
-""" # noqa: E501
-
-
-from __future__ import annotations
-import json
-from enum import Enum
-from typing_extensions import Self
-
-
-class ScreeningRiskLevelEnum(str, Enum):
- """
- Risk level assessment for screening results. Possible values vary by provider and context.
- """
-
- """
- allowed enum values
- """
- VERY_HIGH = 'VERY_HIGH'
- SEVERE = 'SEVERE'
- HIGH = 'HIGH'
- MEDIUM = 'MEDIUM'
- LOW = 'LOW'
- UNKNOWN = 'UNKNOWN'
-
- @classmethod
- def from_json(cls, json_str: str) -> Self:
- """Create an instance of ScreeningRiskLevelEnum from a JSON string"""
- return cls(json.loads(json_str))
-
-
diff --git a/fireblocks/models/screening_travel_rule_result.py b/fireblocks/models/screening_travel_rule_result.py
index 8f6543e8..f5777f32 100644
--- a/fireblocks/models/screening_travel_rule_result.py
+++ b/fireblocks/models/screening_travel_rule_result.py
@@ -28,7 +28,7 @@
class ScreeningTravelRuleResult(BaseModel):
"""
- Detailed Travel Rule screening result containing provider-specific data. Contains Travel Rule specific information like verified status, rule type, and actions.
+ Deprecated: This field is not currently returned in the API response. Detailed Travel Rule screening result containing provider-specific data. Contains Travel Rule specific information like verified status, rule type, and actions.
""" # noqa: E501
direction: Optional[TravelRuleDirectionEnum] = None
is_verified: Optional[StrictBool] = Field(default=None, description="Whether the travel rule information was verified", alias="isVerified")
diff --git a/fireblocks/models/asset_type_enum.py b/fireblocks/models/settlement_type_enum.py
similarity index 81%
rename from fireblocks/models/asset_type_enum.py
rename to fireblocks/models/settlement_type_enum.py
index a35f0a92..bfaeb469 100644
--- a/fireblocks/models/asset_type_enum.py
+++ b/fireblocks/models/settlement_type_enum.py
@@ -19,20 +19,20 @@
from typing_extensions import Self
-class AssetTypeEnum(str, Enum):
+class SettlementTypeEnum(str, Enum):
"""
- AssetTypeEnum
+ Settlement type supported by the provider
"""
"""
allowed enum values
"""
- DIGITAL = 'DIGITAL'
- FIAT = 'FIAT'
+ DVP = 'DVP'
+ PREFUNDED = 'PREFUNDED'
@classmethod
def from_json(cls, json_str: str) -> Self:
- """Create an instance of AssetTypeEnum from a JSON string"""
+ """Create an instance of SettlementTypeEnum from a JSON string"""
return cls(json.loads(json_str))
diff --git a/fireblocks/models/staking_positions_paginated_response.py b/fireblocks/models/staking_positions_paginated_response.py
new file mode 100644
index 00000000..feee1e06
--- /dev/null
+++ b/fireblocks/models/staking_positions_paginated_response.py
@@ -0,0 +1,103 @@
+# coding: utf-8
+
+"""
+ 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
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from fireblocks.models.position import Position
+from typing import Optional, Set
+from typing_extensions import Self
+
+class StakingPositionsPaginatedResponse(BaseModel):
+ """
+ StakingPositionsPaginatedResponse
+ """ # noqa: E501
+ data: List[Position] = Field(description="The data of the current page of staking positions")
+ next: Optional[StrictStr] = Field(default=None, description="The cursor for the next page")
+ __properties: ClassVar[List[str]] = ["data", "next"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of StakingPositionsPaginatedResponse from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # override the default output from pydantic by calling `to_dict()` of each item in data (list)
+ _items = []
+ if self.data:
+ for _item_data in self.data:
+ if _item_data:
+ _items.append(_item_data.to_dict())
+ _dict['data'] = _items
+ # set to None if next (nullable) is None
+ # and model_fields_set contains the field
+ if self.next is None and "next" in self.model_fields_set:
+ _dict['next'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of StakingPositionsPaginatedResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "data": [Position.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None,
+ "next": obj.get("next")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/token_ownership_response.py b/fireblocks/models/token_ownership_response.py
index 60c03611..20a369f3 100644
--- a/fireblocks/models/token_ownership_response.py
+++ b/fireblocks/models/token_ownership_response.py
@@ -53,8 +53,8 @@ class TokenOwnershipResponse(BaseModel):
@field_validator('blockchain_descriptor')
def blockchain_descriptor_validate_enum(cls, value):
"""Validates the enum"""
- if value not in set(['ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX', 'KLAY_KAIA', 'KLAY_KAIA_TEST', 'APECHAIN', 'APECHAIN_TEST', 'CRONOS', 'CRONOS_TEST']):
- raise ValueError("must be one of enum values ('ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX', 'KLAY_KAIA', 'KLAY_KAIA_TEST', 'APECHAIN', 'APECHAIN_TEST', 'CRONOS', 'CRONOS_TEST')")
+ if value not in set(['ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX', 'KLAY_KAIA', 'KLAY_KAIA_TEST', 'APECHAIN', 'APECHAIN_TEST', 'CRONOS', 'CRONOS_TEST', 'ROBINHOOD_CHAIN_TESTNET_TEST']):
+ raise ValueError("must be one of enum values ('ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX', 'KLAY_KAIA', 'KLAY_KAIA_TEST', 'APECHAIN', 'APECHAIN_TEST', 'CRONOS', 'CRONOS_TEST', 'ROBINHOOD_CHAIN_TESTNET_TEST')")
return value
@field_validator('status')
diff --git a/fireblocks/models/token_response.py b/fireblocks/models/token_response.py
index ea27b33c..75c12e9e 100644
--- a/fireblocks/models/token_response.py
+++ b/fireblocks/models/token_response.py
@@ -46,8 +46,8 @@ class TokenResponse(BaseModel):
@field_validator('blockchain_descriptor')
def blockchain_descriptor_validate_enum(cls, value):
"""Validates the enum"""
- if value not in set(['ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX', 'KLAY_KAIA', 'KLAY_KAIA_TEST', 'APECHAIN', 'APECHAIN_TEST', 'CRONOS', 'CRONOS_TEST']):
- raise ValueError("must be one of enum values ('ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX', 'KLAY_KAIA', 'KLAY_KAIA_TEST', 'APECHAIN', 'APECHAIN_TEST', 'CRONOS', 'CRONOS_TEST')")
+ if value not in set(['ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX', 'KLAY_KAIA', 'KLAY_KAIA_TEST', 'APECHAIN', 'APECHAIN_TEST', 'CRONOS', 'CRONOS_TEST', 'ROBINHOOD_CHAIN_TESTNET_TEST']):
+ raise ValueError("must be one of enum values ('ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX', 'KLAY_KAIA', 'KLAY_KAIA_TEST', 'APECHAIN', 'APECHAIN_TEST', 'CRONOS', 'CRONOS_TEST', 'ROBINHOOD_CHAIN_TESTNET_TEST')")
return value
model_config = ConfigDict(
diff --git a/fireblocks/models/tr_link_create_integration_request.py b/fireblocks/models/tr_link_create_integration_request.py
index ddaf69ee..1b029c9c 100644
--- a/fireblocks/models/tr_link_create_integration_request.py
+++ b/fireblocks/models/tr_link_create_integration_request.py
@@ -19,7 +19,7 @@
import json
from pydantic import BaseModel, ConfigDict, Field, StrictStr
-from typing import Any, ClassVar, Dict, List
+from typing import Any, ClassVar, Dict, List, Optional
from typing import Optional, Set
from typing_extensions import Self
@@ -29,7 +29,8 @@ class TRLinkCreateIntegrationRequest(BaseModel):
""" # noqa: E501
customer_id: StrictStr = Field(description="Customer unique identifier", alias="customerId")
partner_ident: StrictStr = Field(description="Partner identification code (e.g., \"sumsub\", \"notabene\")", alias="partnerIdent")
- __properties: ClassVar[List[str]] = ["customerId", "partnerIdent"]
+ customer_integration_id: Optional[StrictStr] = Field(default=None, description="Optional. When supplied and permitted for the tenant (feature flag / CSM arrangement), this value is used as the TRLink integration identifier instead of a server-generated UUID. If omitted, the API generates a UUID. If supplied when the tenant is not permitted to set a custom id, the request fails with 400. Contact your CSM if you need a custom integration id.", alias="customerIntegrationId")
+ __properties: ClassVar[List[str]] = ["customerId", "partnerIdent", "customerIntegrationId"]
model_config = ConfigDict(
populate_by_name=True,
@@ -83,7 +84,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
_obj = cls.model_validate({
"customerId": obj.get("customerId"),
- "partnerIdent": obj.get("partnerIdent")
+ "partnerIdent": obj.get("partnerIdent"),
+ "customerIntegrationId": obj.get("customerIntegrationId")
})
return _obj
diff --git a/fireblocks/models/trading_provider_details.py b/fireblocks/models/trading_provider_details.py
new file mode 100644
index 00000000..42f1456c
--- /dev/null
+++ b/fireblocks/models/trading_provider_details.py
@@ -0,0 +1,138 @@
+# coding: utf-8
+
+"""
+ 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
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import json
+import pprint
+from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator
+from typing import Any, List, Optional
+from fireblocks.models.account_based_provider_details import AccountBasedProviderDetails
+from fireblocks.models.direct_provider_details import DirectProviderDetails
+from pydantic import StrictStr, Field
+from typing import Union, List, Set, Optional, Dict
+from typing_extensions import Literal, Self
+
+TRADINGPROVIDERDETAILS_ONE_OF_SCHEMAS = ["AccountBasedProviderDetails", "DirectProviderDetails"]
+
+class TradingProviderDetails(BaseModel):
+ """
+ TradingProviderDetails
+ """
+ # data type: AccountBasedProviderDetails
+ oneof_schema_1_validator: Optional[AccountBasedProviderDetails] = None
+ # data type: DirectProviderDetails
+ oneof_schema_2_validator: Optional[DirectProviderDetails] = None
+ actual_instance: Optional[Union[AccountBasedProviderDetails, DirectProviderDetails]] = None
+ one_of_schemas: Set[str] = { "AccountBasedProviderDetails", "DirectProviderDetails" }
+
+ model_config = ConfigDict(
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def __init__(self, *args, **kwargs) -> None:
+ if args:
+ if len(args) > 1:
+ raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`")
+ if kwargs:
+ raise ValueError("If a position argument is used, keyword arguments cannot be used.")
+ super().__init__(actual_instance=args[0])
+ else:
+ super().__init__(**kwargs)
+
+ @field_validator('actual_instance')
+ def actual_instance_must_validate_oneof(cls, v):
+ instance = TradingProviderDetails.model_construct()
+ error_messages = []
+ match = 0
+ # validate data type: AccountBasedProviderDetails
+ if not isinstance(v, AccountBasedProviderDetails):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `AccountBasedProviderDetails`")
+ else:
+ match += 1
+ # validate data type: DirectProviderDetails
+ if not isinstance(v, DirectProviderDetails):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `DirectProviderDetails`")
+ else:
+ match += 1
+ if match > 1:
+ # more than 1 match
+ raise ValueError("Multiple matches found when setting `actual_instance` in TradingProviderDetails with oneOf schemas: AccountBasedProviderDetails, DirectProviderDetails. Details: " + ", ".join(error_messages))
+ elif match == 0:
+ # no match
+ raise ValueError("No match found when setting `actual_instance` in TradingProviderDetails with oneOf schemas: AccountBasedProviderDetails, DirectProviderDetails. Details: " + ", ".join(error_messages))
+ else:
+ return v
+
+ @classmethod
+ def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self:
+ return cls.from_json(json.dumps(obj))
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Returns the object represented by the json string"""
+ instance = cls.model_construct()
+ error_messages = []
+ match = 0
+
+ # deserialize data into AccountBasedProviderDetails
+ try:
+ instance.actual_instance = AccountBasedProviderDetails.from_json(json_str)
+ match += 1
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+ # deserialize data into DirectProviderDetails
+ try:
+ instance.actual_instance = DirectProviderDetails.from_json(json_str)
+ match += 1
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+
+ if match > 1:
+ # more than 1 match
+ raise ValueError("Multiple matches found when deserializing the JSON string into TradingProviderDetails with oneOf schemas: AccountBasedProviderDetails, DirectProviderDetails. Details: " + ", ".join(error_messages))
+ elif match == 0:
+ # no match
+ raise ValueError("No match found when deserializing the JSON string into TradingProviderDetails with oneOf schemas: AccountBasedProviderDetails, DirectProviderDetails. Details: " + ", ".join(error_messages))
+ else:
+ return instance
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the actual instance"""
+ if self.actual_instance is None:
+ return "null"
+
+ if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json):
+ return self.actual_instance.to_json()
+ else:
+ return json.dumps(self.actual_instance)
+
+ def to_dict(self) -> Optional[Union[Dict[str, Any], AccountBasedProviderDetails, DirectProviderDetails]]:
+ """Returns the dict representation of the actual instance"""
+ if self.actual_instance is None:
+ return None
+
+ if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict):
+ return self.actual_instance.to_dict()
+ else:
+ # primitive type
+ return self.actual_instance
+
+ def to_str(self) -> str:
+ """Returns the string representation of the actual instance"""
+ return pprint.pformat(self.model_dump())
+
+
diff --git a/fireblocks/models/travel_rule_action_enum.py b/fireblocks/models/travel_rule_action_enum.py
index de25f9fe..70625a1e 100644
--- a/fireblocks/models/travel_rule_action_enum.py
+++ b/fireblocks/models/travel_rule_action_enum.py
@@ -30,6 +30,8 @@ class TravelRuleActionEnum(str, Enum):
SCREEN = 'SCREEN'
BYPASS = 'BYPASS'
BLOCK = 'BLOCK'
+ PASS = 'PASS'
+ FREEZE = 'FREEZE'
@classmethod
def from_json(cls, json_str: str) -> Self:
diff --git a/fireblocks/models/travel_rule_ownership_proof.py b/fireblocks/models/travel_rule_ownership_proof.py
index 0528639b..b0b6e509 100644
--- a/fireblocks/models/travel_rule_ownership_proof.py
+++ b/fireblocks/models/travel_rule_ownership_proof.py
@@ -33,8 +33,10 @@ class TravelRuleOwnershipProof(BaseModel):
address: Optional[StrictStr] = Field(default=None, description="The wallet address being verified. Examples: - For Ethereum: `0x896B...0b9b` - For Bitcoin: `1442...dxhsQ`")
wallet_provider: Optional[StrictStr] = Field(default=None, description="The wallet provider or method used for verification. Examples: - For Metamask: `Metamask` - For manual signature: `manual`")
url: Optional[StrictStr] = Field(default=None, description="The URL for the uploaded screenshot (for `screenshot` proof types only). Example: `https://example.com/uploaded_image.png`")
+ did: Optional[StrictStr] = Field(default=None, description="The Decentralized Identifier (DID) associated with the ownership proof.")
+ status: Optional[StrictStr] = Field(default=None, description="The status of the ownership proof verification.")
confirmed: Optional[StrictBool] = Field(default=None, description="Whether the user confirmed ownership of the wallet (for `self-declaration` proofs). Example: `true`")
- __properties: ClassVar[List[str]] = ["type", "proof", "attestation", "address", "wallet_provider", "url", "confirmed"]
+ __properties: ClassVar[List[str]] = ["type", "proof", "attestation", "address", "wallet_provider", "url", "did", "status", "confirmed"]
model_config = ConfigDict(
populate_by_name=True,
@@ -93,6 +95,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"address": obj.get("address"),
"wallet_provider": obj.get("wallet_provider"),
"url": obj.get("url"),
+ "did": obj.get("did"),
+ "status": obj.get("status"),
"confirmed": obj.get("confirmed")
})
return _obj
diff --git a/fireblocks/models/travel_rule_result.py b/fireblocks/models/travel_rule_result.py
index 649887c8..97786b0e 100644
--- a/fireblocks/models/travel_rule_result.py
+++ b/fireblocks/models/travel_rule_result.py
@@ -28,7 +28,7 @@
class TravelRuleResult(BaseModel):
"""
- Detailed Travel Rule screening result containing provider-specific data. Contains Travel Rule specific information like verified status, rule type, and actions.
+ Deprecated: This field is not currently returned in the API response. Detailed Travel Rule screening result containing provider-specific data. Contains Travel Rule specific information like verified status, rule type, and actions.
""" # noqa: E501
direction: Optional[TravelRuleDirectionEnum] = None
is_verified: Optional[StrictBool] = Field(default=None, description="Whether the travel rule information was verified", alias="isVerified")
diff --git a/fireblocks/models/travel_rule_status_enum.py b/fireblocks/models/travel_rule_status_enum.py
index 5a01f9c9..111ed237 100644
--- a/fireblocks/models/travel_rule_status_enum.py
+++ b/fireblocks/models/travel_rule_status_enum.py
@@ -32,6 +32,9 @@ class TravelRuleStatusEnum(str, Enum):
BYPASSED = 'BYPASSED'
FAILED = 'FAILED'
FROZEN = 'FROZEN'
+ REJECTED = 'REJECTED'
+ CANCELED = 'CANCELED'
+ BLOCKING_TIME_EXPIRED = 'BLOCKING_TIME_EXPIRED'
@classmethod
def from_json(cls, json_str: str) -> Self:
diff --git a/fireblocks/models/travel_rule_verdict_enum.py b/fireblocks/models/travel_rule_verdict_enum.py
index d85d1cdd..608248e0 100644
--- a/fireblocks/models/travel_rule_verdict_enum.py
+++ b/fireblocks/models/travel_rule_verdict_enum.py
@@ -31,6 +31,9 @@ class TravelRuleVerdictEnum(str, Enum):
REJECT = 'REJECT'
ALERT = 'ALERT'
REVIEW = 'REVIEW'
+ WAIT = 'WAIT'
+ FREEZE = 'FREEZE'
+ CANCEL = 'CANCEL'
@classmethod
def from_json(cls, json_str: str) -> Self:
diff --git a/fireblocks/models/user_role.py b/fireblocks/models/user_role.py
index 6204f495..742ccf5e 100644
--- a/fireblocks/models/user_role.py
+++ b/fireblocks/models/user_role.py
@@ -38,6 +38,8 @@ class UserRole(str, Enum):
AUDITOR = 'AUDITOR'
NCW_ADMIN = 'NCW_ADMIN'
NCW_SIGNER = 'NCW_SIGNER'
+ SECURITY_ADMIN = 'SECURITY_ADMIN'
+ SECURITY_AUDITOR = 'SECURITY_AUDITOR'
@classmethod
def from_json(cls, json_str: str) -> Self:
diff --git a/pyproject.toml b/pyproject.toml
index 253ce43a..08a27f53 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "fireblocks"
-version = "15.0.0"
+version = "0.0.0"
description = "Fireblocks API"
authors = ["Fireblocks "]
license = "MIT License"
diff --git a/setup.py b/setup.py
index 724a56b5..8e55f57b 100644
--- a/setup.py
+++ b/setup.py
@@ -23,7 +23,7 @@
# prerequisite: setuptools
# http://pypi.python.org/pypi/setuptools
NAME = "fireblocks"
-VERSION = "15.0.0"
+VERSION = "0.0.0"
PYTHON_REQUIRES = ">= 3.8"
REQUIRES = [
"urllib3 >= 2.1.0, < 3.0.0",
diff --git a/test/test_account_based_access_provider.py b/test/test_account_based_access_provider.py
index 8425504b..971b18ae 100644
--- a/test/test_account_based_access_provider.py
+++ b/test/test_account_based_access_provider.py
@@ -41,7 +41,7 @@ def make_instance(self, include_optional) -> AccountBasedAccessProvider:
name = '',
logo = '',
account_based = True,
- manifest = {"assetTypes":["DIGITAL","FIAT"],"capabilities":["SPOT_TRADING","LIMIT_ORDERS"]},
+ manifest = {"order":{"supported":true,"executionTypes":["MARKET","QUOTE"],"settlementTypes":["DVP"]},"quote":{"supported":true,"settlementTypes":["DVP"]},"rate":{"supported":true}},
connected = True,
accounts = [
{"id":"acc_9f4e2d8b1c6a5e73","name":"Main Trading Account"}
@@ -52,8 +52,11 @@ def make_instance(self, include_optional) -> AccountBasedAccessProvider:
id = '',
name = '',
account_based = True,
- manifest = {"assetTypes":["DIGITAL","FIAT"],"capabilities":["SPOT_TRADING","LIMIT_ORDERS"]},
+ manifest = {"order":{"supported":true,"executionTypes":["MARKET","QUOTE"],"settlementTypes":["DVP"]},"quote":{"supported":true,"settlementTypes":["DVP"]},"rate":{"supported":true}},
connected = True,
+ accounts = [
+ {"id":"acc_9f4e2d8b1c6a5e73","name":"Main Trading Account"}
+ ],
)
"""
diff --git a/test/test_account_based_access_provider_details.py b/test/test_account_based_access_provider_info.py
similarity index 63%
rename from test/test_account_based_access_provider_details.py
rename to test/test_account_based_access_provider_info.py
index 1fc6ddab..0e1d6854 100644
--- a/test/test_account_based_access_provider_details.py
+++ b/test/test_account_based_access_provider_info.py
@@ -15,13 +15,13 @@
import unittest
-from fireblocks.models.account_based_access_provider_details import (
- AccountBasedAccessProviderDetails,
+from fireblocks.models.account_based_access_provider_info import (
+ AccountBasedAccessProviderInfo,
)
-class TestAccountBasedAccessProviderDetails(unittest.TestCase):
- """AccountBasedAccessProviderDetails unit test stubs"""
+class TestAccountBasedAccessProviderInfo(unittest.TestCase):
+ """AccountBasedAccessProviderInfo unit test stubs"""
def setUp(self):
pass
@@ -29,31 +29,32 @@ def setUp(self):
def tearDown(self):
pass
- def make_instance(self, include_optional) -> AccountBasedAccessProviderDetails:
- """Test AccountBasedAccessProviderDetails
+ def make_instance(self, include_optional) -> AccountBasedAccessProviderInfo:
+ """Test AccountBasedAccessProviderInfo
include_optional is a boolean, when False only required
params are included, when True both required and
optional params are included"""
- # uncomment below to create an instance of `AccountBasedAccessProviderDetails`
+ # uncomment below to create an instance of `AccountBasedAccessProviderInfo`
"""
- model = AccountBasedAccessProviderDetails()
+ model = AccountBasedAccessProviderInfo()
if include_optional:
- return AccountBasedAccessProviderDetails(
- manifest = {"assetTypes":["DIGITAL","FIAT"],"capabilities":["SPOT_TRADING","LIMIT_ORDERS"]},
+ return AccountBasedAccessProviderInfo(
connected = True,
accounts = [
{"id":"acc_9f4e2d8b1c6a5e73","name":"Main Trading Account"}
]
)
else:
- return AccountBasedAccessProviderDetails(
- manifest = {"assetTypes":["DIGITAL","FIAT"],"capabilities":["SPOT_TRADING","LIMIT_ORDERS"]},
+ return AccountBasedAccessProviderInfo(
connected = True,
+ accounts = [
+ {"id":"acc_9f4e2d8b1c6a5e73","name":"Main Trading Account"}
+ ],
)
"""
- def testAccountBasedAccessProviderDetails(self):
- """Test AccountBasedAccessProviderDetails"""
+ def testAccountBasedAccessProviderInfo(self):
+ """Test AccountBasedAccessProviderInfo"""
# inst_req_only = self.make_instance(include_optional=False)
# inst_req_and_optional = self.make_instance(include_optional=True)
diff --git a/test/test_account_based_provider_details.py b/test/test_account_based_provider_details.py
new file mode 100644
index 00000000..725ce04c
--- /dev/null
+++ b/test/test_account_based_provider_details.py
@@ -0,0 +1,70 @@
+# coding: utf-8
+
+"""
+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
+Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from fireblocks.models.account_based_provider_details import AccountBasedProviderDetails
+
+
+class TestAccountBasedProviderDetails(unittest.TestCase):
+ """AccountBasedProviderDetails unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AccountBasedProviderDetails:
+ """Test AccountBasedProviderDetails
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `AccountBasedProviderDetails`
+ """
+ model = AccountBasedProviderDetails()
+ if include_optional:
+ return AccountBasedProviderDetails(
+ id = '',
+ name = '',
+ logo = '',
+ account_based = True,
+ manifest = {"order":{"supported":true,"executionTypes":["MARKET","QUOTE"],"settlementTypes":["DVP"]},"quote":{"supported":true,"settlementTypes":["DVP"]},"rate":{"supported":true}},
+ connected = True,
+ accounts = [
+ {"id":"acc_9f4e2d8b1c6a5e73","name":"Main Trading Account"}
+ ]
+ )
+ else:
+ return AccountBasedProviderDetails(
+ id = '',
+ name = '',
+ account_based = True,
+ manifest = {"order":{"supported":true,"executionTypes":["MARKET","QUOTE"],"settlementTypes":["DVP"]},"quote":{"supported":true,"settlementTypes":["DVP"]},"rate":{"supported":true}},
+ connected = True,
+ accounts = [
+ {"id":"acc_9f4e2d8b1c6a5e73","name":"Main Trading Account"}
+ ],
+ )
+ """
+
+ def testAccountBasedProviderDetails(self):
+ """Test AccountBasedProviderDetails"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_add_collateral_request_body.py b/test/test_add_collateral_request_body.py
index 1307f68a..93705bbc 100644
--- a/test/test_add_collateral_request_body.py
+++ b/test/test_add_collateral_request_body.py
@@ -166,6 +166,8 @@ def make_instance(self, include_optional) -> AddCollateralRequestBody:
address = '0x896B...0b9b',
wallet_provider = 'Metamask',
url = 'https://example.com/uploaded_image.png',
+ did = 'did:key:z6Mkf12345Zabcdef12345',
+ status = 'verified',
confirmed = True, ),
beneficiary_proof = fireblocks.models.travel_rule_ownership_proof.TravelRuleOwnershipProof(
proof = '0x3dd4a17a...ce4a2bcd1b',
@@ -173,6 +175,8 @@ def make_instance(self, include_optional) -> AddCollateralRequestBody:
address = '0x896B...0b9b',
wallet_provider = 'Metamask',
url = 'https://example.com/uploaded_image.png',
+ did = 'did:key:z6Mkf12345Zabcdef12345',
+ status = 'verified',
confirmed = True, ),
beneficiary_did = 'did:key:z6Mkf67890Zghijkl67890',
originator_did = 'did:key:z6Mkf12345Zabcdef12345',
diff --git a/test/test_base_provider.py b/test/test_base_provider.py
index 003aae7a..7ce4a5dc 100644
--- a/test/test_base_provider.py
+++ b/test/test_base_provider.py
@@ -40,13 +40,15 @@ def make_instance(self, include_optional) -> BaseProvider:
id = '',
name = '',
logo = '',
- account_based = True
+ account_based = True,
+ manifest = {"order":{"supported":true,"executionTypes":["MARKET","QUOTE"],"settlementTypes":["DVP"]},"quote":{"supported":true,"settlementTypes":["DVP"]},"rate":{"supported":true}}
)
else:
return BaseProvider(
id = '',
name = '',
account_based = True,
+ manifest = {"order":{"supported":true,"executionTypes":["MARKET","QUOTE"],"settlementTypes":["DVP"]},"quote":{"supported":true,"settlementTypes":["DVP"]},"rate":{"supported":true}},
)
"""
diff --git a/test/test_compliance_result_full_payload.py b/test/test_compliance_result_full_payload.py
index 9fd54921..933d638f 100644
--- a/test/test_compliance_result_full_payload.py
+++ b/test/test_compliance_result_full_payload.py
@@ -42,13 +42,13 @@ def make_instance(self, include_optional) -> ComplianceResultFullPayload:
payload = fireblocks.models.payload.payload(),
timestamp = 1753459111824,
screening_status = 'COMPLETED',
- bypass_reason = 'BELOW_THRESHOLD',
+ bypass_reason = 'UNSUPPORTED_ASSET',
status = 'COMPLETED',
prev_status = 'COMPLETED',
prev_bypass_reason = 'BELOW_THRESHOLD',
verdict = 'PASS',
- risk = 'LOW',
- extended_risk = 'LOW',
+ risk = 'lowRisk',
+ extended_risk = 'lowRisk',
external_id = 'aml_screening_12345',
customer_ref_id = 'customer_ref_789',
ref_id = 'ref_12345',
@@ -112,19 +112,20 @@ def make_instance(self, include_optional) -> ComplianceResultFullPayload:
matched_no_trm_screening_rule = fireblocks.models.matched_no_trm_screening_rule.matchedNoTrmScreeningRule(),
customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
customer_short_name = 'ACME Corp',
- travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', ),
+ travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ provider_response = { }, ),
tr = fireblocks.models.compliance_screening_result_full_payload.ComplianceScreeningResultFullPayload(
provider = 'NOTABENE',
payload = fireblocks.models.payload.payload(),
timestamp = 1753459111824,
screening_status = 'COMPLETED',
- bypass_reason = 'BELOW_THRESHOLD',
+ bypass_reason = 'UNSUPPORTED_ASSET',
status = 'COMPLETED',
prev_status = 'COMPLETED',
prev_bypass_reason = 'BELOW_THRESHOLD',
verdict = 'PASS',
- risk = 'LOW',
- extended_risk = 'LOW',
+ risk = 'lowRisk',
+ extended_risk = 'lowRisk',
external_id = 'aml_screening_12345',
customer_ref_id = 'customer_ref_789',
ref_id = 'ref_12345',
@@ -188,20 +189,21 @@ def make_instance(self, include_optional) -> ComplianceResultFullPayload:
matched_no_trm_screening_rule = fireblocks.models.matched_no_trm_screening_rule.matchedNoTrmScreeningRule(),
customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
customer_short_name = 'ACME Corp',
- travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', ),
+ travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ provider_response = { }, ),
aml_list = [
fireblocks.models.compliance_screening_result_full_payload.ComplianceScreeningResultFullPayload(
provider = 'NOTABENE',
payload = fireblocks.models.payload.payload(),
timestamp = 1753459111824,
screening_status = 'COMPLETED',
- bypass_reason = 'BELOW_THRESHOLD',
+ bypass_reason = 'UNSUPPORTED_ASSET',
status = 'COMPLETED',
prev_status = 'COMPLETED',
prev_bypass_reason = 'BELOW_THRESHOLD',
verdict = 'PASS',
- risk = 'LOW',
- extended_risk = 'LOW',
+ risk = 'lowRisk',
+ extended_risk = 'lowRisk',
external_id = 'aml_screening_12345',
customer_ref_id = 'customer_ref_789',
ref_id = 'ref_12345',
@@ -265,7 +267,8 @@ def make_instance(self, include_optional) -> ComplianceResultFullPayload:
matched_no_trm_screening_rule = fireblocks.models.matched_no_trm_screening_rule.matchedNoTrmScreeningRule(),
customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
customer_short_name = 'ACME Corp',
- travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', )
+ travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ provider_response = { }, )
],
status = 'Completed',
aml_registration = fireblocks.models.aml_registration_result_full_payload.AmlRegistrationResultFullPayload(
diff --git a/test/test_compliance_results.py b/test/test_compliance_results.py
index 39114a60..05374eb7 100644
--- a/test/test_compliance_results.py
+++ b/test/test_compliance_results.py
@@ -42,13 +42,13 @@ def make_instance(self, include_optional) -> ComplianceResults:
payload = fireblocks.models.payload.payload(),
timestamp = 1753459111824,
screening_status = 'COMPLETED',
- bypass_reason = 'BELOW_THRESHOLD',
+ bypass_reason = 'UNSUPPORTED_ASSET',
status = 'COMPLETED',
prev_status = 'COMPLETED',
prev_bypass_reason = 'BELOW_THRESHOLD',
verdict = 'PASS',
- risk = 'LOW',
- extended_risk = 'LOW',
+ risk = 'lowRisk',
+ extended_risk = 'lowRisk',
external_id = 'aml_screening_12345',
customer_ref_id = 'customer_ref_789',
ref_id = 'ref_12345',
@@ -112,19 +112,20 @@ def make_instance(self, include_optional) -> ComplianceResults:
matched_no_trm_screening_rule = fireblocks.models.matched_no_trm_screening_rule.matchedNoTrmScreeningRule(),
customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
customer_short_name = 'ACME Corp',
- travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', ),
+ travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ provider_response = { }, ),
tr = fireblocks.models.compliance_screening_result.ComplianceScreeningResult(
provider = 'NOTABENE',
payload = fireblocks.models.payload.payload(),
timestamp = 1753459111824,
screening_status = 'COMPLETED',
- bypass_reason = 'BELOW_THRESHOLD',
+ bypass_reason = 'UNSUPPORTED_ASSET',
status = 'COMPLETED',
prev_status = 'COMPLETED',
prev_bypass_reason = 'BELOW_THRESHOLD',
verdict = 'PASS',
- risk = 'LOW',
- extended_risk = 'LOW',
+ risk = 'lowRisk',
+ extended_risk = 'lowRisk',
external_id = 'aml_screening_12345',
customer_ref_id = 'customer_ref_789',
ref_id = 'ref_12345',
@@ -188,20 +189,21 @@ def make_instance(self, include_optional) -> ComplianceResults:
matched_no_trm_screening_rule = fireblocks.models.matched_no_trm_screening_rule.matchedNoTrmScreeningRule(),
customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
customer_short_name = 'ACME Corp',
- travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', ),
+ travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ provider_response = { }, ),
aml_list = [
fireblocks.models.compliance_screening_result.ComplianceScreeningResult(
provider = 'NOTABENE',
payload = fireblocks.models.payload.payload(),
timestamp = 1753459111824,
screening_status = 'COMPLETED',
- bypass_reason = 'BELOW_THRESHOLD',
+ bypass_reason = 'UNSUPPORTED_ASSET',
status = 'COMPLETED',
prev_status = 'COMPLETED',
prev_bypass_reason = 'BELOW_THRESHOLD',
verdict = 'PASS',
- risk = 'LOW',
- extended_risk = 'LOW',
+ risk = 'lowRisk',
+ extended_risk = 'lowRisk',
external_id = 'aml_screening_12345',
customer_ref_id = 'customer_ref_789',
ref_id = 'ref_12345',
@@ -265,7 +267,8 @@ def make_instance(self, include_optional) -> ComplianceResults:
matched_no_trm_screening_rule = fireblocks.models.matched_no_trm_screening_rule.matchedNoTrmScreeningRule(),
customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
customer_short_name = 'ACME Corp',
- travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', )
+ travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ provider_response = { }, )
],
status = 'Completed',
aml_registration = fireblocks.models.aml_registration_result.AmlRegistrationResult(
diff --git a/test/test_compliance_screening_result.py b/test/test_compliance_screening_result.py
index 9a8599b5..70d69e41 100644
--- a/test/test_compliance_screening_result.py
+++ b/test/test_compliance_screening_result.py
@@ -41,13 +41,13 @@ def make_instance(self, include_optional) -> ComplianceScreeningResult:
payload = None,
timestamp = 1753459111824,
screening_status = 'COMPLETED',
- bypass_reason = 'BELOW_THRESHOLD',
+ bypass_reason = 'UNSUPPORTED_ASSET',
status = 'COMPLETED',
prev_status = 'COMPLETED',
prev_bypass_reason = 'BELOW_THRESHOLD',
verdict = 'PASS',
- risk = 'LOW',
- extended_risk = 'LOW',
+ risk = 'lowRisk',
+ extended_risk = 'lowRisk',
external_id = 'aml_screening_12345',
customer_ref_id = 'customer_ref_789',
ref_id = 'ref_12345',
@@ -119,7 +119,8 @@ def make_instance(self, include_optional) -> ComplianceScreeningResult:
matched_no_trm_screening_rule = None,
customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
customer_short_name = 'ACME Corp',
- travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6'
+ travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ provider_response = { }
)
else:
return ComplianceScreeningResult(
diff --git a/test/test_compliance_screening_result_full_payload.py b/test/test_compliance_screening_result_full_payload.py
index ed290f27..a54211da 100644
--- a/test/test_compliance_screening_result_full_payload.py
+++ b/test/test_compliance_screening_result_full_payload.py
@@ -43,13 +43,13 @@ def make_instance(self, include_optional) -> ComplianceScreeningResultFullPayloa
payload = None,
timestamp = 1753459111824,
screening_status = 'COMPLETED',
- bypass_reason = 'BELOW_THRESHOLD',
+ bypass_reason = 'UNSUPPORTED_ASSET',
status = 'COMPLETED',
prev_status = 'COMPLETED',
prev_bypass_reason = 'BELOW_THRESHOLD',
verdict = 'PASS',
- risk = 'LOW',
- extended_risk = 'LOW',
+ risk = 'lowRisk',
+ extended_risk = 'lowRisk',
external_id = 'aml_screening_12345',
customer_ref_id = 'customer_ref_789',
ref_id = 'ref_12345',
@@ -121,7 +121,8 @@ def make_instance(self, include_optional) -> ComplianceScreeningResultFullPayloa
matched_no_trm_screening_rule = None,
customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
customer_short_name = 'ACME Corp',
- travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6'
+ travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ provider_response = { }
)
else:
return ComplianceScreeningResultFullPayload(
diff --git a/test/test_create_multiple_accounts_request.py b/test/test_create_multiple_accounts_request.py
index 20fcaff3..34e54ca3 100644
--- a/test/test_create_multiple_accounts_request.py
+++ b/test/test_create_multiple_accounts_request.py
@@ -43,7 +43,8 @@ def make_instance(self, include_optional) -> CreateMultipleAccountsRequest:
base_asset_ids = ["BTC","ETH","SOL"],
names = ["first va","client 65502e71-ecdf-48da-a074-c1753befc7fb"],
vault_account_names_starting_index = 0,
- prefix = 'Copied from: '
+ prefix = 'Copied from: ',
+ tag_ids = ["a1b2c3d4-e5f6-7890-abcd-ef1234567890","b2c3d4e5-f6a7-8901-bcde-f12345678901"]
)
else:
return CreateMultipleAccountsRequest(
diff --git a/test/test_direct_access_provider.py b/test/test_direct_access_provider.py
index 411864f1..185e398d 100644
--- a/test/test_direct_access_provider.py
+++ b/test/test_direct_access_provider.py
@@ -41,15 +41,18 @@ def make_instance(self, include_optional) -> DirectAccessProvider:
name = '',
logo = '',
account_based = True,
+ manifest = {"order":{"supported":true,"executionTypes":["MARKET","QUOTE"],"settlementTypes":["DVP"]},"quote":{"supported":true,"settlementTypes":["DVP"]},"rate":{"supported":true}},
approved = True,
has_terms_of_service = True,
- terms_of_service_url = ''
+ terms_of_service_url = '',
+ privacy_policy_url = ''
)
else:
return DirectAccessProvider(
id = '',
name = '',
account_based = True,
+ manifest = {"order":{"supported":true,"executionTypes":["MARKET","QUOTE"],"settlementTypes":["DVP"]},"quote":{"supported":true,"settlementTypes":["DVP"]},"rate":{"supported":true}},
has_terms_of_service = True,
)
"""
diff --git a/test/test_direct_access_provider_details.py b/test/test_direct_access_provider_info.py
similarity index 70%
rename from test/test_direct_access_provider_details.py
rename to test/test_direct_access_provider_info.py
index 23b68683..7abb8349 100644
--- a/test/test_direct_access_provider_details.py
+++ b/test/test_direct_access_provider_info.py
@@ -15,11 +15,11 @@
import unittest
-from fireblocks.models.direct_access_provider_details import DirectAccessProviderDetails
+from fireblocks.models.direct_access_provider_info import DirectAccessProviderInfo
-class TestDirectAccessProviderDetails(unittest.TestCase):
- """DirectAccessProviderDetails unit test stubs"""
+class TestDirectAccessProviderInfo(unittest.TestCase):
+ """DirectAccessProviderInfo unit test stubs"""
def setUp(self):
pass
@@ -27,28 +27,29 @@ def setUp(self):
def tearDown(self):
pass
- def make_instance(self, include_optional) -> DirectAccessProviderDetails:
- """Test DirectAccessProviderDetails
+ def make_instance(self, include_optional) -> DirectAccessProviderInfo:
+ """Test DirectAccessProviderInfo
include_optional is a boolean, when False only required
params are included, when True both required and
optional params are included"""
- # uncomment below to create an instance of `DirectAccessProviderDetails`
+ # uncomment below to create an instance of `DirectAccessProviderInfo`
"""
- model = DirectAccessProviderDetails()
+ model = DirectAccessProviderInfo()
if include_optional:
- return DirectAccessProviderDetails(
+ return DirectAccessProviderInfo(
approved = True,
has_terms_of_service = True,
- terms_of_service_url = ''
+ terms_of_service_url = '',
+ privacy_policy_url = ''
)
else:
- return DirectAccessProviderDetails(
+ return DirectAccessProviderInfo(
has_terms_of_service = True,
)
"""
- def testDirectAccessProviderDetails(self):
- """Test DirectAccessProviderDetails"""
+ def testDirectAccessProviderInfo(self):
+ """Test DirectAccessProviderInfo"""
# inst_req_only = self.make_instance(include_optional=False)
# inst_req_and_optional = self.make_instance(include_optional=True)
diff --git a/test/test_direct_provider_details.py b/test/test_direct_provider_details.py
new file mode 100644
index 00000000..343b21e7
--- /dev/null
+++ b/test/test_direct_provider_details.py
@@ -0,0 +1,67 @@
+# coding: utf-8
+
+"""
+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
+Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from fireblocks.models.direct_provider_details import DirectProviderDetails
+
+
+class TestDirectProviderDetails(unittest.TestCase):
+ """DirectProviderDetails unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> DirectProviderDetails:
+ """Test DirectProviderDetails
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `DirectProviderDetails`
+ """
+ model = DirectProviderDetails()
+ if include_optional:
+ return DirectProviderDetails(
+ id = '',
+ name = '',
+ logo = '',
+ account_based = True,
+ manifest = {"order":{"supported":true,"executionTypes":["MARKET","QUOTE"],"settlementTypes":["DVP"]},"quote":{"supported":true,"settlementTypes":["DVP"]},"rate":{"supported":true}},
+ approved = True,
+ has_terms_of_service = True,
+ terms_of_service_url = '',
+ privacy_policy_url = ''
+ )
+ else:
+ return DirectProviderDetails(
+ id = '',
+ name = '',
+ account_based = True,
+ manifest = {"order":{"supported":true,"executionTypes":["MARKET","QUOTE"],"settlementTypes":["DVP"]},"quote":{"supported":true,"settlementTypes":["DVP"]},"rate":{"supported":true}},
+ has_terms_of_service = True,
+ )
+ """
+
+ def testDirectProviderDetails(self):
+ """Test DirectProviderDetails"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_capability.py b/test/test_execution_request_details_type.py
similarity index 67%
rename from test/test_capability.py
rename to test/test_execution_request_details_type.py
index 625cf001..7ea547aa 100644
--- a/test/test_capability.py
+++ b/test/test_execution_request_details_type.py
@@ -15,11 +15,11 @@
import unittest
-from fireblocks.models.capability import Capability
+from fireblocks.models.execution_request_details_type import ExecutionRequestDetailsType
-class TestCapability(unittest.TestCase):
- """Capability unit test stubs"""
+class TestExecutionRequestDetailsType(unittest.TestCase):
+ """ExecutionRequestDetailsType unit test stubs"""
def setUp(self):
pass
@@ -27,9 +27,9 @@ def setUp(self):
def tearDown(self):
pass
- def testCapability(self):
- """Test Capability"""
- # inst = Capability()
+ def testExecutionRequestDetailsType(self):
+ """Test ExecutionRequestDetailsType"""
+ # inst = ExecutionRequestDetailsType()
if __name__ == "__main__":
diff --git a/test/test_job_created.py b/test/test_job_created.py
index 76fd92df..685aafc5 100644
--- a/test/test_job_created.py
+++ b/test/test_job_created.py
@@ -37,7 +37,8 @@ def make_instance(self, include_optional) -> JobCreated:
model = JobCreated()
if include_optional:
return JobCreated(
- job_id = ''
+ job_id = '',
+ approval_request_id = ''
)
else:
return JobCreated(
diff --git a/test/test_manifest.py b/test/test_manifest.py
index 41d99281..e1908b95 100644
--- a/test/test_manifest.py
+++ b/test/test_manifest.py
@@ -37,21 +37,17 @@ def make_instance(self, include_optional) -> Manifest:
model = Manifest()
if include_optional:
return Manifest(
- asset_types = [
- 'DIGITAL'
- ],
- capabilities = [
- 'TRADING'
- ]
+ order = None,
+ quote = None,
+ rate = fireblocks.models.manifest_base.ManifestBase(
+ supported = True, )
)
else:
return Manifest(
- asset_types = [
- 'DIGITAL'
- ],
- capabilities = [
- 'TRADING'
- ],
+ order = None,
+ quote = None,
+ rate = fireblocks.models.manifest_base.ManifestBase(
+ supported = True, ),
)
"""
diff --git a/test/test_manifest_base.py b/test/test_manifest_base.py
new file mode 100644
index 00000000..aa5b2ce1
--- /dev/null
+++ b/test/test_manifest_base.py
@@ -0,0 +1,55 @@
+# coding: utf-8
+
+"""
+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
+Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from fireblocks.models.manifest_base import ManifestBase
+
+
+class TestManifestBase(unittest.TestCase):
+ """ManifestBase unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ManifestBase:
+ """Test ManifestBase
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `ManifestBase`
+ """
+ model = ManifestBase()
+ if include_optional:
+ return ManifestBase(
+ supported = True
+ )
+ else:
+ return ManifestBase(
+ supported = True,
+ )
+ """
+
+ def testManifestBase(self):
+ """Test ManifestBase"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_manifest_order.py b/test/test_manifest_order.py
new file mode 100644
index 00000000..f77b812a
--- /dev/null
+++ b/test/test_manifest_order.py
@@ -0,0 +1,64 @@
+# coding: utf-8
+
+"""
+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
+Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from fireblocks.models.manifest_order import ManifestOrder
+
+
+class TestManifestOrder(unittest.TestCase):
+ """ManifestOrder unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ManifestOrder:
+ """Test ManifestOrder
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `ManifestOrder`
+ """
+ model = ManifestOrder()
+ if include_optional:
+ return ManifestOrder(
+ supported = True,
+ settlement_types = [
+ 'DVP'
+ ],
+ execution_types = [
+ 'QUOTE'
+ ]
+ )
+ else:
+ return ManifestOrder(
+ supported = True,
+ execution_types = [
+ 'QUOTE'
+ ],
+ )
+ """
+
+ def testManifestOrder(self):
+ """Test ManifestOrder"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_manifest_order_info.py b/test/test_manifest_order_info.py
new file mode 100644
index 00000000..66dc68a8
--- /dev/null
+++ b/test/test_manifest_order_info.py
@@ -0,0 +1,62 @@
+# coding: utf-8
+
+"""
+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
+Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from fireblocks.models.manifest_order_info import ManifestOrderInfo
+
+
+class TestManifestOrderInfo(unittest.TestCase):
+ """ManifestOrderInfo unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ManifestOrderInfo:
+ """Test ManifestOrderInfo
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `ManifestOrderInfo`
+ """
+ model = ManifestOrderInfo()
+ if include_optional:
+ return ManifestOrderInfo(
+ settlement_types = [
+ 'DVP'
+ ],
+ execution_types = [
+ 'QUOTE'
+ ]
+ )
+ else:
+ return ManifestOrderInfo(
+ execution_types = [
+ 'QUOTE'
+ ],
+ )
+ """
+
+ def testManifestOrderInfo(self):
+ """Test ManifestOrderInfo"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_manifest_quote.py b/test/test_manifest_quote.py
new file mode 100644
index 00000000..72ff0dfc
--- /dev/null
+++ b/test/test_manifest_quote.py
@@ -0,0 +1,58 @@
+# coding: utf-8
+
+"""
+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
+Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from fireblocks.models.manifest_quote import ManifestQuote
+
+
+class TestManifestQuote(unittest.TestCase):
+ """ManifestQuote unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ManifestQuote:
+ """Test ManifestQuote
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `ManifestQuote`
+ """
+ model = ManifestQuote()
+ if include_optional:
+ return ManifestQuote(
+ supported = True,
+ settlement_types = [
+ 'DVP'
+ ]
+ )
+ else:
+ return ManifestQuote(
+ supported = True,
+ )
+ """
+
+ def testManifestQuote(self):
+ """Test ManifestQuote"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_manifest_quote_info.py b/test/test_manifest_quote_info.py
new file mode 100644
index 00000000..fcad2bf7
--- /dev/null
+++ b/test/test_manifest_quote_info.py
@@ -0,0 +1,56 @@
+# coding: utf-8
+
+"""
+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
+Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from fireblocks.models.manifest_quote_info import ManifestQuoteInfo
+
+
+class TestManifestQuoteInfo(unittest.TestCase):
+ """ManifestQuoteInfo unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ManifestQuoteInfo:
+ """Test ManifestQuoteInfo
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `ManifestQuoteInfo`
+ """
+ model = ManifestQuoteInfo()
+ if include_optional:
+ return ManifestQuoteInfo(
+ settlement_types = [
+ 'DVP'
+ ]
+ )
+ else:
+ return ManifestQuoteInfo(
+ )
+ """
+
+ def testManifestQuoteInfo(self):
+ """Test ManifestQuoteInfo"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_position.py b/test/test_position.py
new file mode 100644
index 00000000..bfc3eb89
--- /dev/null
+++ b/test/test_position.py
@@ -0,0 +1,84 @@
+# coding: utf-8
+
+"""
+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
+Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from fireblocks.models.position import Position
+
+
+class TestPosition(unittest.TestCase):
+ """Position unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> Position:
+ """Test Position
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `Position`
+ """
+ model = Position()
+ if include_optional:
+ return Position(
+ id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850a',
+ vault_account_id = '2',
+ validator_name = 'FwR3P......tT59f',
+ provider_name = 'Kiln',
+ chain_descriptor = 'SOL',
+ amount = '0.05',
+ rewards_amount = '0.000856038',
+ date_created = '2023-07-13T15:55:34.256Z',
+ date_updated = '2023-07-13T15:55:34.256Z',
+ status = 'ACTIVE',
+ validator_address = 'FwR3PbjS5iyqzLiLugrBqKSa5EKZ4vK9SKs7eQXtT59f',
+ provider_id = 'kiln',
+ available_actions = ["UNSTAKE"],
+ in_progress = True,
+ in_progress_tx_id = 'c80601f4-d7b1-4795-a8ee-b09cdb5b450c',
+ blockchain_position_info = None
+ )
+ else:
+ return Position(
+ id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850a',
+ vault_account_id = '2',
+ validator_name = 'FwR3P......tT59f',
+ provider_name = 'Kiln',
+ chain_descriptor = 'SOL',
+ amount = '0.05',
+ rewards_amount = '0.000856038',
+ date_created = '2023-07-13T15:55:34.256Z',
+ date_updated = '2023-07-13T15:55:34.256Z',
+ status = 'ACTIVE',
+ validator_address = 'FwR3PbjS5iyqzLiLugrBqKSa5EKZ4vK9SKs7eQXtT59f',
+ provider_id = 'kiln',
+ available_actions = ["UNSTAKE"],
+ in_progress = True,
+ blockchain_position_info = None,
+ )
+ """
+
+ def testPosition(self):
+ """Test Position"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_remove_collateral_request_body.py b/test/test_remove_collateral_request_body.py
index cff8bee7..ce351e05 100644
--- a/test/test_remove_collateral_request_body.py
+++ b/test/test_remove_collateral_request_body.py
@@ -166,6 +166,8 @@ def make_instance(self, include_optional) -> RemoveCollateralRequestBody:
address = '0x896B...0b9b',
wallet_provider = 'Metamask',
url = 'https://example.com/uploaded_image.png',
+ did = 'did:key:z6Mkf12345Zabcdef12345',
+ status = 'verified',
confirmed = True, ),
beneficiary_proof = fireblocks.models.travel_rule_ownership_proof.TravelRuleOwnershipProof(
proof = '0x3dd4a17a...ce4a2bcd1b',
@@ -173,6 +175,8 @@ def make_instance(self, include_optional) -> RemoveCollateralRequestBody:
address = '0x896B...0b9b',
wallet_provider = 'Metamask',
url = 'https://example.com/uploaded_image.png',
+ did = 'did:key:z6Mkf12345Zabcdef12345',
+ status = 'verified',
confirmed = True, ),
beneficiary_did = 'did:key:z6Mkf67890Zghijkl67890',
originator_did = 'did:key:z6Mkf12345Zabcdef12345',
diff --git a/test/test_screening_risk_level_enum.py b/test/test_screening_risk_level_enum.py
deleted file mode 100644
index 4f0652ea..00000000
--- a/test/test_screening_risk_level_enum.py
+++ /dev/null
@@ -1,36 +0,0 @@
-# coding: utf-8
-
-"""
-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
-Generated by OpenAPI Generator (https://openapi-generator.tech)
-
-Do not edit the class manually.
-""" # noqa: E501
-
-
-import unittest
-
-from fireblocks.models.screening_risk_level_enum import ScreeningRiskLevelEnum
-
-
-class TestScreeningRiskLevelEnum(unittest.TestCase):
- """ScreeningRiskLevelEnum unit test stubs"""
-
- def setUp(self):
- pass
-
- def tearDown(self):
- pass
-
- def testScreeningRiskLevelEnum(self):
- """Test ScreeningRiskLevelEnum"""
- # inst = ScreeningRiskLevelEnum()
-
-
-if __name__ == "__main__":
- unittest.main()
diff --git a/test/test_asset_type_enum.py b/test/test_settlement_type_enum.py
similarity index 71%
rename from test/test_asset_type_enum.py
rename to test/test_settlement_type_enum.py
index 41225267..940ff287 100644
--- a/test/test_asset_type_enum.py
+++ b/test/test_settlement_type_enum.py
@@ -15,11 +15,11 @@
import unittest
-from fireblocks.models.asset_type_enum import AssetTypeEnum
+from fireblocks.models.settlement_type_enum import SettlementTypeEnum
-class TestAssetTypeEnum(unittest.TestCase):
- """AssetTypeEnum unit test stubs"""
+class TestSettlementTypeEnum(unittest.TestCase):
+ """SettlementTypeEnum unit test stubs"""
def setUp(self):
pass
@@ -27,9 +27,9 @@ def setUp(self):
def tearDown(self):
pass
- def testAssetTypeEnum(self):
- """Test AssetTypeEnum"""
- # inst = AssetTypeEnum()
+ def testSettlementTypeEnum(self):
+ """Test SettlementTypeEnum"""
+ # inst = SettlementTypeEnum()
if __name__ == "__main__":
diff --git a/test/test_staking_api.py b/test/test_staking_api.py
index a50c4109..ec5580f2 100644
--- a/test/test_staking_api.py
+++ b/test/test_staking_api.py
@@ -76,6 +76,13 @@ def test_get_delegation_by_id(self) -> None:
"""
pass
+ def test_get_positions(self) -> None:
+ """Test case for get_positions
+
+ List staking positions (Paginated)
+ """
+ pass
+
def test_get_providers(self) -> None:
"""Test case for get_providers
diff --git a/test/test_staking_positions_paginated_response.py b/test/test_staking_positions_paginated_response.py
new file mode 100644
index 00000000..e3969577
--- /dev/null
+++ b/test/test_staking_positions_paginated_response.py
@@ -0,0 +1,94 @@
+# coding: utf-8
+
+"""
+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
+Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from fireblocks.models.staking_positions_paginated_response import (
+ StakingPositionsPaginatedResponse,
+)
+
+
+class TestStakingPositionsPaginatedResponse(unittest.TestCase):
+ """StakingPositionsPaginatedResponse unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> StakingPositionsPaginatedResponse:
+ """Test StakingPositionsPaginatedResponse
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `StakingPositionsPaginatedResponse`
+ """
+ model = StakingPositionsPaginatedResponse()
+ if include_optional:
+ return StakingPositionsPaginatedResponse(
+ data = [
+ fireblocks.models.position.Position(
+ id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850a',
+ vault_account_id = '2',
+ validator_name = 'FwR3P......tT59f',
+ provider_name = 'Kiln',
+ chain_descriptor = 'SOL',
+ amount = '0.05',
+ rewards_amount = '0.000856038',
+ date_created = '2023-07-13T15:55:34.256Z',
+ date_updated = '2023-07-13T15:55:34.256Z',
+ status = 'ACTIVE',
+ validator_address = 'FwR3PbjS5iyqzLiLugrBqKSa5EKZ4vK9SKs7eQXtT59f',
+ provider_id = 'kiln',
+ available_actions = ["UNSTAKE"],
+ in_progress = True,
+ in_progress_tx_id = 'c80601f4-d7b1-4795-a8ee-b09cdb5b450c',
+ blockchain_position_info = null, )
+ ],
+ next = 'eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9'
+ )
+ else:
+ return StakingPositionsPaginatedResponse(
+ data = [
+ fireblocks.models.position.Position(
+ id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850a',
+ vault_account_id = '2',
+ validator_name = 'FwR3P......tT59f',
+ provider_name = 'Kiln',
+ chain_descriptor = 'SOL',
+ amount = '0.05',
+ rewards_amount = '0.000856038',
+ date_created = '2023-07-13T15:55:34.256Z',
+ date_updated = '2023-07-13T15:55:34.256Z',
+ status = 'ACTIVE',
+ validator_address = 'FwR3PbjS5iyqzLiLugrBqKSa5EKZ4vK9SKs7eQXtT59f',
+ provider_id = 'kiln',
+ available_actions = ["UNSTAKE"],
+ in_progress = True,
+ in_progress_tx_id = 'c80601f4-d7b1-4795-a8ee-b09cdb5b450c',
+ blockchain_position_info = null, )
+ ],
+ )
+ """
+
+ def testStakingPositionsPaginatedResponse(self):
+ """Test StakingPositionsPaginatedResponse"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_tr_link_create_integration_request.py b/test/test_tr_link_create_integration_request.py
index f30f8195..c29962a6 100644
--- a/test/test_tr_link_create_integration_request.py
+++ b/test/test_tr_link_create_integration_request.py
@@ -40,7 +40,8 @@ def make_instance(self, include_optional) -> TRLinkCreateIntegrationRequest:
if include_optional:
return TRLinkCreateIntegrationRequest(
customer_id = '550e8400-e29b-41d4-a716-446655440001',
- partner_ident = 'sumsub'
+ partner_ident = 'sumsub',
+ customer_integration_id = '660e8400-e29b-41d4-a716-446655440099'
)
else:
return TRLinkCreateIntegrationRequest(
diff --git a/test/test_trading_beta_api.py b/test/test_trading_beta_api.py
index f28b2541..a28a7e52 100644
--- a/test/test_trading_beta_api.py
+++ b/test/test_trading_beta_api.py
@@ -55,6 +55,13 @@ def test_get_orders(self) -> None:
"""
pass
+ def test_get_trading_provider_by_id(self) -> None:
+ """Test case for get_trading_provider_by_id
+
+ Get trading provider by ID
+ """
+ pass
+
def test_get_trading_providers(self) -> None:
"""Test case for get_trading_providers
diff --git a/test/test_trading_provider.py b/test/test_trading_provider.py
index 22e13f28..c4f17c58 100644
--- a/test/test_trading_provider.py
+++ b/test/test_trading_provider.py
@@ -41,22 +41,26 @@ def make_instance(self, include_optional) -> TradingProvider:
name = '',
logo = '',
account_based = True,
- manifest = {"assetTypes":["DIGITAL","FIAT"],"capabilities":["SPOT_TRADING","LIMIT_ORDERS"]},
+ manifest = {"order":{"supported":true,"executionTypes":["MARKET","QUOTE"],"settlementTypes":["DVP"]},"quote":{"supported":true,"settlementTypes":["DVP"]},"rate":{"supported":true}},
connected = True,
accounts = [
{"id":"acc_9f4e2d8b1c6a5e73","name":"Main Trading Account"}
],
approved = True,
has_terms_of_service = True,
- terms_of_service_url = ''
+ terms_of_service_url = '',
+ privacy_policy_url = ''
)
else:
return TradingProvider(
id = '',
name = '',
account_based = True,
- manifest = {"assetTypes":["DIGITAL","FIAT"],"capabilities":["SPOT_TRADING","LIMIT_ORDERS"]},
+ manifest = {"order":{"supported":true,"executionTypes":["MARKET","QUOTE"],"settlementTypes":["DVP"]},"quote":{"supported":true,"settlementTypes":["DVP"]},"rate":{"supported":true}},
connected = True,
+ accounts = [
+ {"id":"acc_9f4e2d8b1c6a5e73","name":"Main Trading Account"}
+ ],
has_terms_of_service = True,
)
"""
diff --git a/test/test_trading_provider_details.py b/test/test_trading_provider_details.py
new file mode 100644
index 00000000..57142e03
--- /dev/null
+++ b/test/test_trading_provider_details.py
@@ -0,0 +1,75 @@
+# coding: utf-8
+
+"""
+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
+Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from fireblocks.models.trading_provider_details import TradingProviderDetails
+
+
+class TestTradingProviderDetails(unittest.TestCase):
+ """TradingProviderDetails unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> TradingProviderDetails:
+ """Test TradingProviderDetails
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `TradingProviderDetails`
+ """
+ model = TradingProviderDetails()
+ if include_optional:
+ return TradingProviderDetails(
+ id = '',
+ name = '',
+ logo = '',
+ account_based = True,
+ manifest = {"order":{"supported":true,"executionTypes":["MARKET","QUOTE"],"settlementTypes":["DVP"]},"quote":{"supported":true,"settlementTypes":["DVP"]},"rate":{"supported":true}},
+ connected = True,
+ accounts = [
+ {"id":"acc_9f4e2d8b1c6a5e73","name":"Main Trading Account"}
+ ],
+ approved = True,
+ has_terms_of_service = True,
+ terms_of_service_url = '',
+ privacy_policy_url = ''
+ )
+ else:
+ return TradingProviderDetails(
+ id = '',
+ name = '',
+ account_based = True,
+ manifest = {"order":{"supported":true,"executionTypes":["MARKET","QUOTE"],"settlementTypes":["DVP"]},"quote":{"supported":true,"settlementTypes":["DVP"]},"rate":{"supported":true}},
+ connected = True,
+ accounts = [
+ {"id":"acc_9f4e2d8b1c6a5e73","name":"Main Trading Account"}
+ ],
+ has_terms_of_service = True,
+ )
+ """
+
+ def testTradingProviderDetails(self):
+ """Test TradingProviderDetails"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_transaction_request.py b/test/test_transaction_request.py
index 7396327d..1ecc4334 100644
--- a/test/test_transaction_request.py
+++ b/test/test_transaction_request.py
@@ -178,6 +178,8 @@ def make_instance(self, include_optional) -> TransactionRequest:
address = '0x896B...0b9b',
wallet_provider = 'Metamask',
url = 'https://example.com/uploaded_image.png',
+ did = 'did:key:z6Mkf12345Zabcdef12345',
+ status = 'verified',
confirmed = True, ),
beneficiary_proof = fireblocks.models.travel_rule_ownership_proof.TravelRuleOwnershipProof(
type = 'eip-191',
@@ -186,6 +188,8 @@ def make_instance(self, include_optional) -> TransactionRequest:
address = '0x896B...0b9b',
wallet_provider = 'Metamask',
url = 'https://example.com/uploaded_image.png',
+ did = 'did:key:z6Mkf12345Zabcdef12345',
+ status = 'verified',
confirmed = True, ),
beneficiary_did = 'did:key:z6Mkf67890Zghijkl67890',
originator_did = 'did:key:z6Mkf12345Zabcdef12345',
diff --git a/test/test_transaction_response.py b/test/test_transaction_response.py
index 5578fb18..49ffaf3d 100644
--- a/test/test_transaction_response.py
+++ b/test/test_transaction_response.py
@@ -171,13 +171,13 @@ def make_instance(self, include_optional) -> TransactionResponse:
payload = fireblocks.models.payload.payload(),
timestamp = 1753459111824,
screening_status = 'COMPLETED',
- bypass_reason = 'BELOW_THRESHOLD',
+ bypass_reason = 'UNSUPPORTED_ASSET',
status = 'COMPLETED',
prev_status = 'COMPLETED',
prev_bypass_reason = 'BELOW_THRESHOLD',
verdict = 'PASS',
- risk = 'LOW',
- extended_risk = 'LOW',
+ risk = 'lowRisk',
+ extended_risk = 'lowRisk',
external_id = 'aml_screening_12345',
customer_ref_id = 'customer_ref_789',
ref_id = 'ref_12345',
@@ -241,14 +241,17 @@ def make_instance(self, include_optional) -> TransactionResponse:
matched_no_trm_screening_rule = fireblocks.models.matched_no_trm_screening_rule.matchedNoTrmScreeningRule(),
customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
customer_short_name = 'ACME Corp',
- travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', ),
+ travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ provider_response = { }, ),
tr = fireblocks.models.compliance_screening_result.ComplianceScreeningResult(
provider = 'NOTABENE',
payload = fireblocks.models.payload.payload(),
timestamp = 1753459111824,
screening_status = 'COMPLETED',
- bypass_reason = 'BELOW_THRESHOLD',
+ bypass_reason = 'UNSUPPORTED_ASSET',
prev_bypass_reason = 'BELOW_THRESHOLD',
+ risk = 'lowRisk',
+ extended_risk = 'lowRisk',
external_id = 'aml_screening_12345',
customer_ref_id = 'customer_ref_789',
ref_id = 'ref_12345',
diff --git a/test/test_travel_rule_create_transaction_request.py b/test/test_travel_rule_create_transaction_request.py
index 6cd493de..425d9e73 100644
--- a/test/test_travel_rule_create_transaction_request.py
+++ b/test/test_travel_rule_create_transaction_request.py
@@ -189,6 +189,8 @@ def make_instance(self, include_optional) -> TravelRuleCreateTransactionRequest:
address = '0x896B...0b9b',
wallet_provider = 'Metamask',
url = 'https://example.com/uploaded_image.png',
+ did = 'did:key:z6Mkf12345Zabcdef12345',
+ status = 'verified',
confirmed = True, ),
beneficiary_proof = fireblocks.models.travel_rule_ownership_proof.TravelRuleOwnershipProof(
type = 'eip-191',
@@ -197,6 +199,8 @@ def make_instance(self, include_optional) -> TravelRuleCreateTransactionRequest:
address = '0x896B...0b9b',
wallet_provider = 'Metamask',
url = 'https://example.com/uploaded_image.png',
+ did = 'did:key:z6Mkf12345Zabcdef12345',
+ status = 'verified',
confirmed = True, ),
beneficiary_did = 'did:key:z6Mkf67890Zghijkl67890',
originator_did = 'did:key:z6Mkf12345Zabcdef12345',
diff --git a/test/test_travel_rule_ownership_proof.py b/test/test_travel_rule_ownership_proof.py
index 263f040b..b47099b8 100644
--- a/test/test_travel_rule_ownership_proof.py
+++ b/test/test_travel_rule_ownership_proof.py
@@ -43,6 +43,8 @@ def make_instance(self, include_optional) -> TravelRuleOwnershipProof:
address = '0x896B...0b9b',
wallet_provider = 'Metamask',
url = 'https://example.com/uploaded_image.png',
+ did = 'did:key:z6Mkf12345Zabcdef12345',
+ status = 'verified',
confirmed = True
)
else:
diff --git a/test/test_travel_rule_validate_full_transaction_request.py b/test/test_travel_rule_validate_full_transaction_request.py
index 6e220bca..967c0da4 100644
--- a/test/test_travel_rule_validate_full_transaction_request.py
+++ b/test/test_travel_rule_validate_full_transaction_request.py
@@ -191,6 +191,8 @@ def make_instance(
address = '0x896B...0b9b',
wallet_provider = 'Metamask',
url = 'https://example.com/uploaded_image.png',
+ did = 'did:key:z6Mkf12345Zabcdef12345',
+ status = 'verified',
confirmed = True, ),
beneficiary_proof = fireblocks.models.travel_rule_ownership_proof.TravelRuleOwnershipProof(
type = 'eip-191',
@@ -199,6 +201,8 @@ def make_instance(
address = '0x896B...0b9b',
wallet_provider = 'Metamask',
url = 'https://example.com/uploaded_image.png',
+ did = 'did:key:z6Mkf12345Zabcdef12345',
+ status = 'verified',
confirmed = True, ),
beneficiary_did = 'did:key:z6Mkf67890Zghijkl67890',
originator_did = 'did:key:z6Mkf12345Zabcdef12345',