From 0d1c9935bb7e864d7512f62611f518577952c208 Mon Sep 17 00:00:00 2001 From: fireblocks_dx_team Date: Tue, 13 Oct 2026 07:53:17 +0000 Subject: [PATCH] Generated SDK #2941386800 --- .openapi-generator/FILES | 35 +- CHANGELOG.md | 290 ------------ README.md | 81 +++- docs/AllocationWithdrawPayload.md | 29 -- docs/AllowListPayload.md | 2 - docs/BulkProofOfOwnership.md | 31 ++ docs/BulkSigningKey.md | 32 ++ docs/BulkSigningKeyJob.md | 38 ++ docs/CantonCall.md | 4 +- docs/CantonCallAllocationWithdraw.md | 30 -- docs/CantonCallAllowListAdd.md | 2 + docs/CantonCallAllowListRemove.md | 2 + docs/CantonCallDetails.md | 4 +- docs/CantonCallEndInvestorInvite.md | 2 + docs/CantonCallEndInvestorInviteCancel.md | 2 + docs/CantonCallEndInvestorOffboard.md | 2 + docs/CantonCallParticipantOnboarding.md | 4 +- docs/CantonOfferResponseDetails.md | 6 +- docs/ConsoleUserApi.md | 3 +- docs/CreateBulkSigningKeys.md | 30 ++ docs/CreateBulkSigningKeysResponse.md | 29 ++ docs/EndInvestorPayload.md | 2 - docs/GetBulkSigningKeysJobsResponse.md | 30 ++ docs/KeyLinkBetaApi.md | 231 ++++++++++ docs/OfferResponseAllocationWithdraw.md | 30 ++ docs/ParticipantOnboardingPayload.md | 13 +- docs/{TradingBetaApi.md => TradingApi.md} | 126 ++--- docs/VaultsApi.md | 81 ---- fireblocks/__init__.py | 21 +- fireblocks/api/__init__.py | 2 +- fireblocks/api/api_user_api.py | 3 + fireblocks/api/approvals_beta_api.py | 7 + fireblocks/api/audit_logs_api.py | 1 + fireblocks/api/blockchain_link_beta_api.py | 9 + fireblocks/api/blockchains_assets_api.py | 8 + fireblocks/api/compliance_api.py | 42 ++ .../api/compliance_orchestrator_beta_api.py | 4 + .../compliance_screening_configuration_api.py | 2 + fireblocks/api/connected_accounts_api.py | 13 + fireblocks/api/console_user_api.py | 5 +- fireblocks/api/contacts_api.py | 1 + fireblocks/api/contract_interactions_api.py | 6 + fireblocks/api/contract_templates_api.py | 8 + fireblocks/api/contracts_api.py | 7 + fireblocks/api/cosigners_beta_api.py | 10 + fireblocks/api/deployed_contracts_api.py | 5 + fireblocks/api/earn_api.py | 7 + fireblocks/api/embedded_wallets_api.py | 22 + fireblocks/api/exchange_accounts_api.py | 7 + fireblocks/api/external_wallets_api.py | 8 + fireblocks/api/fiat_accounts_api.py | 4 + fireblocks/api/gas_stations_api.py | 4 + fireblocks/api/genie_beta_api.py | 2 + fireblocks/api/internal_wallets_api.py | 9 + fireblocks/api/key_link_beta_api.py | 433 ++++++++++++++++++ fireblocks/api/keys_beta_api.py | 2 + fireblocks/api/network_connections_api.py | 15 + fireblocks/api/nfts_api.py | 10 + fireblocks/api/off_exchanges_api.py | 5 + fireblocks/api/onchain_data_api.py | 8 + fireblocks/api/ota_beta_api.py | 2 + fireblocks/api/payments_payout_api.py | 3 + fireblocks/api/policy_editor_beta_api.py | 5 + fireblocks/api/policy_editor_v2_api.py | 4 + fireblocks/api/policy_editor_v2_beta_api.py | 1 + fireblocks/api/reports_beta_api.py | 3 + fireblocks/api/reset_device_api.py | 1 + .../api/security_posture_management_api.py | 3 + fireblocks/api/smart_transfer_api.py | 19 + fireblocks/api/staking_api.py | 17 + fireblocks/api/tags_api.py | 6 + fireblocks/api/tempo_beta_api.py | 1 + fireblocks/api/tokenization_api.py | 34 ++ fireblocks/api/tr_link_api.py | 28 ++ .../{trading_beta_api.py => trading_api.py} | 35 +- fireblocks/api/transactions_api.py | 13 + fireblocks/api/travel_rule_api.py | 8 + fireblocks/api/user_groups_beta_api.py | 5 + fireblocks/api/users_api.py | 1 + fireblocks/api/utxo_management_beta_api.py | 6 + fireblocks/api/vaults_api.py | 182 ++------ fireblocks/api/web3_connections_api.py | 4 + fireblocks/api/webhooks_api.py | 2 + fireblocks/api/webhooks_v2_api.py | 26 ++ fireblocks/api/whitelist_ip_addresses_api.py | 1 + fireblocks/api/workspace_api.py | 1 + fireblocks/api/workspace_status_beta_api.py | 1 + fireblocks/api_client.py | 8 + fireblocks/client.py | 12 +- fireblocks/configuration.py | 2 +- fireblocks/lifecycle_warning.py | 169 +++++++ fireblocks/models/__init__.py | 9 +- fireblocks/models/allow_list_payload.py | 15 +- fireblocks/models/bulk_proof_of_ownership.py | 91 ++++ fireblocks/models/bulk_signing_key.py | 99 ++++ fireblocks/models/bulk_signing_key_job.py | 123 +++++ fireblocks/models/canton_call.py | 30 +- .../models/canton_call_allow_list_add.py | 13 +- .../models/canton_call_allow_list_remove.py | 13 +- fireblocks/models/canton_call_details.py | 4 +- .../models/canton_call_end_investor_invite.py | 13 +- .../canton_call_end_investor_invite_cancel.py | 13 +- .../canton_call_end_investor_offboard.py | 13 +- .../canton_call_participant_onboarding.py | 17 +- .../models/canton_offer_response_details.py | 10 +- fireblocks/models/create_bulk_signing_keys.py | 99 ++++ ...y => create_bulk_signing_keys_response.py} | 14 +- fireblocks/models/end_investor_payload.py | 15 +- ...=> get_bulk_signing_keys_jobs_response.py} | 41 +- fireblocks/models/offer_response.py | 30 +- .../offer_response_allocation_withdraw.py | 95 ++++ .../models/participant_onboarding_payload.py | 27 +- fireblocks/threaded_api_client.py | 2 + pyproject.toml | 2 +- setup.py | 2 +- test/fireblocks/test_client.py | 6 +- test/fireblocks/test_lifecycle_warning.py | 394 ++++++++++++++++ test/test_add_connected_account_request.py | 4 +- ...stry_create_proof_of_ownership_response.py | 4 +- test/test_allow_list_payload.py | 4 - test/test_audit_log_entry.py | 4 +- test/test_bulk_proof_of_ownership.py | 56 +++ test/test_bulk_signing_key.py | 64 +++ test/test_bulk_signing_key_job.py | 70 +++ test/test_canton_call.py | 12 +- test/test_canton_call_allocation_withdraw.py | 60 --- test/test_canton_call_allow_list_add.py | 8 +- test/test_canton_call_allow_list_remove.py | 8 +- test/test_canton_call_details.py | 2 +- test/test_canton_call_end_investor_invite.py | 8 +- ..._canton_call_end_investor_invite_cancel.py | 8 +- .../test_canton_call_end_investor_offboard.py | 8 +- ...test_canton_call_participant_onboarding.py | 15 +- test/test_canton_details.py | 4 +- test/test_canton_offer_response_details.py | 2 + ...ad.py => test_create_bulk_signing_keys.py} | 28 +- .../test_create_bulk_signing_keys_response.py | 56 +++ test/test_end_investor_payload.py | 4 - ...est_get_bulk_signing_keys_jobs_response.py | 57 +++ test/test_key_link_beta_api.py | 21 + test/test_offer_response.py | 4 +- ...test_offer_response_allocation_withdraw.py | 56 +++ test/test_participant_onboarding_payload.py | 9 - ...rading_beta_api.py => test_trading_api.py} | 8 +- test/test_transaction_response.py | 2 +- ...e_connected_account_credentials_request.py | 4 +- test/test_vaults_api.py | 7 - 147 files changed, 3252 insertions(+), 999 deletions(-) delete mode 100644 CHANGELOG.md delete mode 100644 docs/AllocationWithdrawPayload.md create mode 100644 docs/BulkProofOfOwnership.md create mode 100644 docs/BulkSigningKey.md create mode 100644 docs/BulkSigningKeyJob.md delete mode 100644 docs/CantonCallAllocationWithdraw.md create mode 100644 docs/CreateBulkSigningKeys.md create mode 100644 docs/CreateBulkSigningKeysResponse.md create mode 100644 docs/GetBulkSigningKeysJobsResponse.md create mode 100644 docs/OfferResponseAllocationWithdraw.md rename docs/{TradingBetaApi.md => TradingApi.md} (84%) rename fireblocks/api/{trading_beta_api.py => trading_api.py} (92%) create mode 100644 fireblocks/lifecycle_warning.py create mode 100644 fireblocks/models/bulk_proof_of_ownership.py create mode 100644 fireblocks/models/bulk_signing_key.py create mode 100644 fireblocks/models/bulk_signing_key_job.py create mode 100644 fireblocks/models/create_bulk_signing_keys.py rename fireblocks/models/{allocation_withdraw_payload.py => create_bulk_signing_keys_response.py} (79%) rename fireblocks/models/{canton_call_allocation_withdraw.py => get_bulk_signing_keys_jobs_response.py} (67%) create mode 100644 fireblocks/models/offer_response_allocation_withdraw.py create mode 100644 test/fireblocks/test_lifecycle_warning.py create mode 100644 test/test_bulk_proof_of_ownership.py create mode 100644 test/test_bulk_signing_key.py create mode 100644 test/test_bulk_signing_key_job.py delete mode 100644 test/test_canton_call_allocation_withdraw.py rename test/{test_allocation_withdraw_payload.py => test_create_bulk_signing_keys.py} (58%) create mode 100644 test/test_create_bulk_signing_keys_response.py create mode 100644 test/test_get_bulk_signing_keys_jobs_response.py create mode 100644 test/test_offer_response_allocation_withdraw.py rename test/{test_trading_beta_api.py => test_trading_api.py} (92%) diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES index 652cd533..420a4682 100644 --- a/.openapi-generator/FILES +++ b/.openapi-generator/FILES @@ -69,7 +69,6 @@ docs/AddressReverseLookupResponse.md docs/AddressesFilters.md docs/AlertExposureTypeEnum.md docs/AlertLevelEnum.md -docs/AllocationWithdrawPayload.md docs/AllowListPayload.md docs/AllowlistEntry.md docs/AllowlistEntryResponse.md @@ -174,6 +173,9 @@ docs/BlockchainStateFilter.md docs/BlockchainTransfer.md docs/BlockchainsAssetsApi.md docs/BpsFee.md +docs/BulkProofOfOwnership.md +docs/BulkSigningKey.md +docs/BulkSigningKeyJob.md docs/BusinessEntityTypeEnum.md docs/BusinessIdentification.md docs/ByorkConfigResponse.md @@ -190,7 +192,6 @@ docs/CallbackHandler.md docs/CallbackHandlerRequest.md docs/CancelTransactionResponse.md docs/CantonCall.md -docs/CantonCallAllocationWithdraw.md docs/CantonCallAllowListAdd.md docs/CantonCallAllowListRemove.md docs/CantonCallDetails.md @@ -319,6 +320,8 @@ docs/CreateAddressesReportRequest.md docs/CreateAssetsRequest.md docs/CreateBlockchainRequest.md docs/CreateBlockchainResponse.md +docs/CreateBulkSigningKeys.md +docs/CreateBulkSigningKeysResponse.md docs/CreateConfigOperationRequest.md docs/CreateConnectionRequest.md docs/CreateConnectionResponse.md @@ -540,6 +543,7 @@ docs/GetAuditLogsResponse.md docs/GetAutomationSettingsResponse.md docs/GetBillingInfoResponse.md docs/GetBlockchainByIdResponse.md +docs/GetBulkSigningKeysJobsResponse.md docs/GetByorkVerdictResponse.md docs/GetConnectedAccountsCredentialsPublicKeyResponse.md docs/GetConnectionsResponse.md @@ -705,6 +709,7 @@ docs/OfferResponse.md docs/OfferResponseAccepted.md docs/OfferResponseAllocationAccept.md docs/OfferResponseAllocationReject.md +docs/OfferResponseAllocationWithdraw.md docs/OfferResponseDtccOnboardingAccept.md docs/OfferResponseDtccOnboardingReject.md docs/OfferResponseTradewebAccept.md @@ -1174,7 +1179,7 @@ docs/TotalSupplyItemDto.md docs/TotalSupplyPagedResponse.md docs/TotalSupplyPagedResponse2.md docs/TradingAccountType.md -docs/TradingBetaApi.md +docs/TradingApi.md docs/TradingErrorSchema.md docs/TradingProvider.md docs/Transaction.md @@ -1423,7 +1428,7 @@ fireblocks/api/tags_api.py fireblocks/api/tempo_beta_api.py fireblocks/api/tokenization_api.py fireblocks/api/tr_link_api.py -fireblocks/api/trading_beta_api.py +fireblocks/api/trading_api.py fireblocks/api/transactions_api.py fireblocks/api/travel_rule_api.py fireblocks/api/user_groups_beta_api.py @@ -1446,6 +1451,7 @@ fireblocks/client_configuration.py fireblocks/configuration.py fireblocks/connection_pool.py fireblocks/exceptions.py +fireblocks/lifecycle_warning.py fireblocks/models/__init__.py fireblocks/models/aba_payment_info.py fireblocks/models/abi_function.py @@ -1513,7 +1519,6 @@ fireblocks/models/address_reverse_lookup_response.py fireblocks/models/addresses_filters.py fireblocks/models/alert_exposure_type_enum.py fireblocks/models/alert_level_enum.py -fireblocks/models/allocation_withdraw_payload.py fireblocks/models/allow_list_payload.py fireblocks/models/allowlist_entry.py fireblocks/models/allowlist_entry_response.py @@ -1614,6 +1619,9 @@ fireblocks/models/blockchain_sort_field.py fireblocks/models/blockchain_state_filter.py fireblocks/models/blockchain_transfer.py fireblocks/models/bps_fee.py +fireblocks/models/bulk_proof_of_ownership.py +fireblocks/models/bulk_signing_key.py +fireblocks/models/bulk_signing_key_job.py fireblocks/models/business_entity_type_enum.py fireblocks/models/business_identification.py fireblocks/models/byork_config_response.py @@ -1630,7 +1638,6 @@ fireblocks/models/callback_handler.py fireblocks/models/callback_handler_request.py fireblocks/models/cancel_transaction_response.py fireblocks/models/canton_call.py -fireblocks/models/canton_call_allocation_withdraw.py fireblocks/models/canton_call_allow_list_add.py fireblocks/models/canton_call_allow_list_remove.py fireblocks/models/canton_call_details.py @@ -1749,6 +1756,8 @@ fireblocks/models/create_api_user.py fireblocks/models/create_assets_request.py fireblocks/models/create_blockchain_request.py fireblocks/models/create_blockchain_response.py +fireblocks/models/create_bulk_signing_keys.py +fireblocks/models/create_bulk_signing_keys_response.py fireblocks/models/create_config_operation_request.py fireblocks/models/create_connection_request.py fireblocks/models/create_connection_response.py @@ -1962,6 +1971,7 @@ fireblocks/models/get_audit_logs_response.py fireblocks/models/get_automation_settings_response.py fireblocks/models/get_billing_info_response.py fireblocks/models/get_blockchain_by_id_response.py +fireblocks/models/get_bulk_signing_keys_jobs_response.py fireblocks/models/get_byork_verdict_response.py fireblocks/models/get_connected_accounts_credentials_public_key_response.py fireblocks/models/get_connections_response.py @@ -2120,6 +2130,7 @@ fireblocks/models/offer_response.py fireblocks/models/offer_response_accepted.py fireblocks/models/offer_response_allocation_accept.py fireblocks/models/offer_response_allocation_reject.py +fireblocks/models/offer_response_allocation_withdraw.py fireblocks/models/offer_response_dtcc_onboarding_accept.py fireblocks/models/offer_response_dtcc_onboarding_reject.py fireblocks/models/offer_response_tradeweb_accept.py @@ -2785,6 +2796,7 @@ test/fireblocks/test_bearer_token_provider.py test/fireblocks/test_client.py test/fireblocks/test_client_configuration.py test/fireblocks/test_connection_pool.py +test/fireblocks/test_lifecycle_warning.py test/fireblocks/test_threaded_api_client.py test/fireblocks/test_unknown_model.py test/fireblocks/test_user_agent_util.py @@ -2855,7 +2867,6 @@ test/test_address_reverse_lookup_response.py test/test_addresses_filters.py test/test_alert_exposure_type_enum.py test/test_alert_level_enum.py -test/test_allocation_withdraw_payload.py test/test_allow_list_payload.py test/test_allowlist_entry.py test/test_allowlist_entry_response.py @@ -2961,6 +2972,9 @@ test/test_blockchain_state_filter.py test/test_blockchain_transfer.py test/test_blockchains_assets_api.py test/test_bps_fee.py +test/test_bulk_proof_of_ownership.py +test/test_bulk_signing_key.py +test/test_bulk_signing_key_job.py test/test_business_entity_type_enum.py test/test_business_identification.py test/test_byork_config_response.py @@ -2977,7 +2991,6 @@ test/test_callback_handler.py test/test_callback_handler_request.py test/test_cancel_transaction_response.py test/test_canton_call.py -test/test_canton_call_allocation_withdraw.py test/test_canton_call_allow_list_add.py test/test_canton_call_allow_list_remove.py test/test_canton_call_details.py @@ -3106,6 +3119,8 @@ test/test_create_api_user.py test/test_create_assets_request.py test/test_create_blockchain_request.py test/test_create_blockchain_response.py +test/test_create_bulk_signing_keys.py +test/test_create_bulk_signing_keys_response.py test/test_create_config_operation_request.py test/test_create_connection_request.py test/test_create_connection_response.py @@ -3327,6 +3342,7 @@ test/test_get_audit_logs_response.py test/test_get_automation_settings_response.py test/test_get_billing_info_response.py test/test_get_blockchain_by_id_response.py +test/test_get_bulk_signing_keys_jobs_response.py test/test_get_byork_verdict_response.py test/test_get_connected_accounts_credentials_public_key_response.py test/test_get_connections_response.py @@ -3491,6 +3507,7 @@ test/test_offer_response.py test/test_offer_response_accepted.py test/test_offer_response_allocation_accept.py test/test_offer_response_allocation_reject.py +test/test_offer_response_allocation_withdraw.py test/test_offer_response_dtcc_onboarding_accept.py test/test_offer_response_dtcc_onboarding_reject.py test/test_offer_response_tradeweb_accept.py @@ -3961,7 +3978,7 @@ test/test_tr_link_vasp_national_identification.py test/test_tr_link_verdict.py test/test_tr_link_verdict_enum.py test/test_trading_account_type.py -test/test_trading_beta_api.py +test/test_trading_api.py test/test_trading_error_schema.py test/test_trading_provider.py test/test_transaction.py diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 6a0a9742..00000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,290 +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). - -## [v34.0.0](https://github.com/fireblocks/py-sdk/compare/v24.0.0...v34.0.0) - 2026-10-06 - -### Merged - -- Generated SDK #2917861426 [`#163`](https://github.com/fireblocks/py-sdk/pull/163) - -## [v24.0.0](https://github.com/fireblocks/py-sdk/compare/v23.0.0...v24.0.0) - 2026-07-23 - -### Merged - -- Generated SDK #2700459745 (major) [`#146`](https://github.com/fireblocks/py-sdk/pull/146) - -## [v23.0.0](https://github.com/fireblocks/py-sdk/compare/v22.0.0...v23.0.0) - 2026-07-01 - -### Merged - -- Generated SDK #1180 [`#145`](https://github.com/fireblocks/py-sdk/pull/145) - -## [v22.0.0](https://github.com/fireblocks/py-sdk/compare/v21.0.0...v22.0.0) - 2026-06-28 - -### Merged - -- Generated SDK #5347 [`#144`](https://github.com/fireblocks/py-sdk/pull/144) - -## [v21.0.0](https://github.com/fireblocks/py-sdk/compare/v20.0.0...v21.0.0) - 2026-06-11 - -### Merged - -- Generated SDK #5364 [`#142`](https://github.com/fireblocks/py-sdk/pull/142) - -## [v20.0.0](https://github.com/fireblocks/py-sdk/compare/v19.1.0...v20.0.0) - 2026-06-02 - -### Merged - -- Generated SDK #2839 (major) [`#141`](https://github.com/fireblocks/py-sdk/pull/141) - -## [v19.1.0](https://github.com/fireblocks/py-sdk/compare/v19.0.0...v19.1.0) - 2026-05-27 - -### Merged - -- Generated SDK #2710 (minor) [`#140`](https://github.com/fireblocks/py-sdk/pull/140) - -## [v19.0.0](https://github.com/fireblocks/py-sdk/compare/v18.0.0...v19.0.0) - 2026-05-17 - -### Merged - -- Generated SDK #7742 (major) [`#139`](https://github.com/fireblocks/py-sdk/pull/139) - -## [v18.0.0](https://github.com/fireblocks/py-sdk/compare/v17.0.0...v18.0.0) - 2026-05-07 - -### Merged - -- Generated SDK #3222 (major) [`#138`](https://github.com/fireblocks/py-sdk/pull/138) - -## [v17.0.0](https://github.com/fireblocks/py-sdk/compare/v16.0.0...v17.0.0) - 2026-04-20 - -### Merged - -- Generated SDK #9605 (major) [`#137`](https://github.com/fireblocks/py-sdk/pull/137) - -## [v16.0.0](https://github.com/fireblocks/py-sdk/compare/v15.0.0...v16.0.0) - 2026-04-06 - -### Merged - -- Generated SDK #3331 [`#135`](https://github.com/fireblocks/py-sdk/pull/135) - -## [v15.0.0](https://github.com/fireblocks/py-sdk/compare/v14.1.0...v15.0.0) - 2026-03-15 - -### Merged - -- Generated SDK #3733 (major) [`#129`](https://github.com/fireblocks/py-sdk/pull/129) - -## [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 a57a0e10..7b1cb044 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,10 @@ Then import the package: import fireblocks ``` +## Versioning + +This SDK follows [semantic versioning](https://semver.org), with one exception: operations in the `beta` lifecycle state. Beta operations are not generally available and may not be accessible to all customers. They can change or be removed without notice. + ## Usage Please follow the [installation procedure](#installation) first. @@ -227,6 +231,48 @@ with Fireblocks(configuration) as fireblocks: print("Exception when calling TransactionsApi->create_transaction: %s\n" % e) ``` +## API Lifecycle Warnings + +When you call an operation that is not generally available, the SDK logs a warning +naming the operation and its lifecycle state. The state is read from a response +header, so it is always current - it does not depend on the SDK version you have +installed. + +``` +Operation 'create_transaction' is in 'beta' lifecycle state and is not generally available. It may change or be removed without notice. +``` + +Deprecated operations report their sunset date, and the replacement and migration +guide when the API provides them. + +An operation that has been closed answers `410 Gone` to most callers and logs nothing. +If your account still has temporary access to it, calls that are served log a warning +saying so. + +Warnings are emitted through the standard `logging` module at `WARNING` level under +their own logger, `fireblocks.lifecycle`, so you can silence them without also +silencing genuine SDK errors: + +```python +import logging + +logging.getLogger("fireblocks.lifecycle").setLevel(logging.ERROR) +``` + +Or suppress them entirely with an environment variable: + +```shell +export FIREBLOCKS_SDK_SUPPRESS_LIFECYCLE_WARNING=1 +``` + +You can also route them somewhere of your own: + +```python +lifecycle_log = logging.getLogger("fireblocks.lifecycle") +lifecycle_log.addHandler(logging.FileHandler("lifecycle.log")) +lifecycle_log.propagate = False +``` + ## Documentation for API Endpoints All URIs are relative to https://developers.fireblocks.com/reference/ @@ -425,9 +471,12 @@ Class | Method | HTTP request | Description *InternalWalletsApi* | [**get_internal_wallet_assets_paginated**](docs/InternalWalletsApi.md#get_internal_wallet_assets_paginated) | **GET** /internal_wallets/{walletId}/assets | List assets in an internal wallet (Paginated) *InternalWalletsApi* | [**get_internal_wallets**](docs/InternalWalletsApi.md#get_internal_wallets) | **GET** /internal_wallets | List internal wallets *InternalWalletsApi* | [**set_customer_ref_id_for_internal_wallet**](docs/InternalWalletsApi.md#set_customer_ref_id_for_internal_wallet) | **POST** /internal_wallets/{walletId}/set_customer_ref_id | Set an AML/KYT customer reference ID for internal wallet +*KeyLinkBetaApi* | [**create_bulk_signing_keys**](docs/KeyLinkBetaApi.md#create_bulk_signing_keys) | **POST** /key_link/signing_keys/bulk | Register signing keys in bulk *KeyLinkBetaApi* | [**create_signing_key**](docs/KeyLinkBetaApi.md#create_signing_key) | **POST** /key_link/signing_keys | Add a new signing key *KeyLinkBetaApi* | [**create_validation_key**](docs/KeyLinkBetaApi.md#create_validation_key) | **POST** /key_link/validation_keys | Add a new validation key *KeyLinkBetaApi* | [**disable_validation_key**](docs/KeyLinkBetaApi.md#disable_validation_key) | **PATCH** /key_link/validation_keys/{keyId} | Disables a validation key +*KeyLinkBetaApi* | [**get_bulk_signing_keys_job**](docs/KeyLinkBetaApi.md#get_bulk_signing_keys_job) | **GET** /key_link/signing_keys/bulk/jobs/{jobId} | Get a bulk registration job +*KeyLinkBetaApi* | [**get_bulk_signing_keys_jobs**](docs/KeyLinkBetaApi.md#get_bulk_signing_keys_jobs) | **GET** /key_link/signing_keys/bulk/jobs | Get bulk registration jobs *KeyLinkBetaApi* | [**get_signing_key**](docs/KeyLinkBetaApi.md#get_signing_key) | **GET** /key_link/signing_keys/{keyId} | Get a signing key by `keyId` *KeyLinkBetaApi* | [**get_signing_keys_list**](docs/KeyLinkBetaApi.md#get_signing_keys_list) | **GET** /key_link/signing_keys | Get list of signing keys *KeyLinkBetaApi* | [**get_validation_key**](docs/KeyLinkBetaApi.md#get_validation_key) | **GET** /key_link/validation_keys/{keyId} | Get a validation key by `keyId` @@ -601,17 +650,17 @@ Class | Method | HTTP request | Description *TokenizationApi* | [**unlink**](docs/TokenizationApi.md#unlink) | **DELETE** /tokenization/tokens/{id} | Unlink a token *TokenizationApi* | [**unlink_collection**](docs/TokenizationApi.md#unlink_collection) | **DELETE** /tokenization/collections/{id} | Delete a collection link *TokenizationApi* | [**validate_layer_zero_channel_config**](docs/TokenizationApi.md#validate_layer_zero_channel_config) | **GET** /tokenization/multichain/bridge/layerzero/validate | Validate LayerZero channel configuration -*TradingBetaApi* | [**create_order**](docs/TradingBetaApi.md#create_order) | **POST** /trading/orders | Create an order -*TradingBetaApi* | [**create_quote**](docs/TradingBetaApi.md#create_quote) | **POST** /trading/quotes | Create a quote -*TradingBetaApi* | [**fetch_all_offers**](docs/TradingBetaApi.md#fetch_all_offers) | **POST** /trading/offers | Get all offers -*TradingBetaApi* | [**fetch_rates**](docs/TradingBetaApi.md#fetch_rates) | **POST** /trading/rates | Get rates -*TradingBetaApi* | [**get_order**](docs/TradingBetaApi.md#get_order) | **GET** /trading/orders/{orderId} | Get order details -*TradingBetaApi* | [**get_order_requirements**](docs/TradingBetaApi.md#get_order_requirements) | **GET** /trading/orders/{orderId}/requirement | Get order requirement details for an order -*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 -*TradingBetaApi* | [**submit_order_requirements**](docs/TradingBetaApi.md#submit_order_requirements) | **POST** /trading/orders/{orderId}/requirement/data | Submit a response to an order requirement -*TradingBetaApi* | [**upload_order_requirement_file**](docs/TradingBetaApi.md#upload_order_requirement_file) | **POST** /trading/orders/{orderId}/requirement/file | Upload a file for an order requirement +*TradingApi* | [**create_order**](docs/TradingApi.md#create_order) | **POST** /trading/orders | Create an order +*TradingApi* | [**create_quote**](docs/TradingApi.md#create_quote) | **POST** /trading/quotes | Create a quote +*TradingApi* | [**fetch_all_offers**](docs/TradingApi.md#fetch_all_offers) | **POST** /trading/offers | Get all offers +*TradingApi* | [**fetch_rates**](docs/TradingApi.md#fetch_rates) | **POST** /trading/rates | Get rates +*TradingApi* | [**get_order**](docs/TradingApi.md#get_order) | **GET** /trading/orders/{orderId} | Get order details +*TradingApi* | [**get_order_requirements**](docs/TradingApi.md#get_order_requirements) | **GET** /trading/orders/{orderId}/requirement | Get order requirement details for an order +*TradingApi* | [**get_orders**](docs/TradingApi.md#get_orders) | **GET** /trading/orders | Get orders +*TradingApi* | [**get_trading_provider_by_id**](docs/TradingApi.md#get_trading_provider_by_id) | **GET** /trading/providers/{providerId} | Get trading provider by ID +*TradingApi* | [**get_trading_providers**](docs/TradingApi.md#get_trading_providers) | **GET** /trading/providers | Get providers +*TradingApi* | [**submit_order_requirements**](docs/TradingApi.md#submit_order_requirements) | **POST** /trading/orders/{orderId}/requirement/data | Submit a response to an order requirement +*TradingApi* | [**upload_order_requirement_file**](docs/TradingApi.md#upload_order_requirement_file) | **POST** /trading/orders/{orderId}/requirement/file | Upload a file for an order requirement *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 *TransactionsApi* | [**drop_transaction**](docs/TransactionsApi.md#drop_transaction) | **POST** /transactions/{txId}/drop | Drop ETH (EVM) transaction by ID @@ -674,7 +723,6 @@ Class | Method | HTTP request | Description *VaultsApi* | [**get_vault_balance_by_asset**](docs/VaultsApi.md#get_vault_balance_by_asset) | **GET** /vault/assets/{assetId} | Get vault balance by an asset *VaultsApi* | [**hide_vault_account**](docs/VaultsApi.md#hide_vault_account) | **POST** /vault/accounts/{vaultAccountId}/hide | Hide a vault account in the console *VaultsApi* | [**lookup_vault_by_address**](docs/VaultsApi.md#lookup_vault_by_address) | **GET** /vault/lookup_by_address | Look up a vault account by blockchain address -*VaultsApi* | [**register_tempo_omnibus_wallet**](docs/VaultsApi.md#register_tempo_omnibus_wallet) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/omnibus/tempo/register | Register a Tempo omnibus wallet *VaultsApi* | [**set_customer_ref_id_for_address**](docs/VaultsApi.md#set_customer_ref_id_for_address) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}/set_customer_ref_id | Assign AML customer reference ID *VaultsApi* | [**set_usdc_gateway_deposit_automation_beta**](docs/VaultsApi.md#set_usdc_gateway_deposit_automation_beta) | **POST** /vault/accounts/{vaultAccountId}/virtual_asset_wallet/usdc_gateway/deposit_automation | Set up a USDC Gateway deposit automation for a vault account *VaultsApi* | [**set_vault_account_auto_fuel**](docs/VaultsApi.md#set_vault_account_auto_fuel) | **POST** /vault/accounts/{vaultAccountId}/set_auto_fuel | Set auto fueling to on or off @@ -790,7 +838,6 @@ Class | Method | HTTP request | Description - [AddressesFilters](docs/AddressesFilters.md) - [AlertExposureTypeEnum](docs/AlertExposureTypeEnum.md) - [AlertLevelEnum](docs/AlertLevelEnum.md) - - [AllocationWithdrawPayload](docs/AllocationWithdrawPayload.md) - [AllowListPayload](docs/AllowListPayload.md) - [AllowlistEntry](docs/AllowlistEntry.md) - [AllowlistEntryResponse](docs/AllowlistEntryResponse.md) @@ -890,6 +937,9 @@ Class | Method | HTTP request | Description - [BlockchainStateFilter](docs/BlockchainStateFilter.md) - [BlockchainTransfer](docs/BlockchainTransfer.md) - [BpsFee](docs/BpsFee.md) + - [BulkProofOfOwnership](docs/BulkProofOfOwnership.md) + - [BulkSigningKey](docs/BulkSigningKey.md) + - [BulkSigningKeyJob](docs/BulkSigningKeyJob.md) - [BusinessEntityTypeEnum](docs/BusinessEntityTypeEnum.md) - [BusinessIdentification](docs/BusinessIdentification.md) - [ByorkConfigResponse](docs/ByorkConfigResponse.md) @@ -906,7 +956,6 @@ Class | Method | HTTP request | Description - [CallbackHandlerRequest](docs/CallbackHandlerRequest.md) - [CancelTransactionResponse](docs/CancelTransactionResponse.md) - [CantonCall](docs/CantonCall.md) - - [CantonCallAllocationWithdraw](docs/CantonCallAllocationWithdraw.md) - [CantonCallAllowListAdd](docs/CantonCallAllowListAdd.md) - [CantonCallAllowListRemove](docs/CantonCallAllowListRemove.md) - [CantonCallDetails](docs/CantonCallDetails.md) @@ -1025,6 +1074,8 @@ Class | Method | HTTP request | Description - [CreateAssetsRequest](docs/CreateAssetsRequest.md) - [CreateBlockchainRequest](docs/CreateBlockchainRequest.md) - [CreateBlockchainResponse](docs/CreateBlockchainResponse.md) + - [CreateBulkSigningKeys](docs/CreateBulkSigningKeys.md) + - [CreateBulkSigningKeysResponse](docs/CreateBulkSigningKeysResponse.md) - [CreateConfigOperationRequest](docs/CreateConfigOperationRequest.md) - [CreateConnectionRequest](docs/CreateConnectionRequest.md) - [CreateConnectionResponse](docs/CreateConnectionResponse.md) @@ -1238,6 +1289,7 @@ Class | Method | HTTP request | Description - [GetAutomationSettingsResponse](docs/GetAutomationSettingsResponse.md) - [GetBillingInfoResponse](docs/GetBillingInfoResponse.md) - [GetBlockchainByIdResponse](docs/GetBlockchainByIdResponse.md) + - [GetBulkSigningKeysJobsResponse](docs/GetBulkSigningKeysJobsResponse.md) - [GetByorkVerdictResponse](docs/GetByorkVerdictResponse.md) - [GetConnectedAccountsCredentialsPublicKeyResponse](docs/GetConnectedAccountsCredentialsPublicKeyResponse.md) - [GetConnectionsResponse](docs/GetConnectionsResponse.md) @@ -1396,6 +1448,7 @@ Class | Method | HTTP request | Description - [OfferResponseAccepted](docs/OfferResponseAccepted.md) - [OfferResponseAllocationAccept](docs/OfferResponseAllocationAccept.md) - [OfferResponseAllocationReject](docs/OfferResponseAllocationReject.md) + - [OfferResponseAllocationWithdraw](docs/OfferResponseAllocationWithdraw.md) - [OfferResponseDtccOnboardingAccept](docs/OfferResponseDtccOnboardingAccept.md) - [OfferResponseDtccOnboardingReject](docs/OfferResponseDtccOnboardingReject.md) - [OfferResponseTradewebAccept](docs/OfferResponseTradewebAccept.md) diff --git a/docs/AllocationWithdrawPayload.md b/docs/AllocationWithdrawPayload.md deleted file mode 100644 index b8669a5b..00000000 --- a/docs/AllocationWithdrawPayload.md +++ /dev/null @@ -1,29 +0,0 @@ -# AllocationWithdrawPayload - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**allocation_transaction_id** | **str** | The Fireblocks transaction id of the outgoing response that created the allocation. The allocation is resolved from it — Canton contract ids are never accepted here. | - -## Example - -```python -from fireblocks.models.allocation_withdraw_payload import AllocationWithdrawPayload - -# TODO update the JSON string below -json = "{}" -# create an instance of AllocationWithdrawPayload from a JSON string -allocation_withdraw_payload_instance = AllocationWithdrawPayload.from_json(json) -# print the JSON string representation of the object -print(AllocationWithdrawPayload.to_json()) - -# convert the object into a dict -allocation_withdraw_payload_dict = allocation_withdraw_payload_instance.to_dict() -# create an instance of AllocationWithdrawPayload from a dict -allocation_withdraw_payload_from_dict = AllocationWithdrawPayload.from_dict(allocation_withdraw_payload_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/AllowListPayload.md b/docs/AllowListPayload.md index c38d8023..ffbff3a3 100644 --- a/docs/AllowListPayload.md +++ b/docs/AllowListPayload.md @@ -5,8 +5,6 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**vault_account_id** | **str** | The vault account whose Canton wallet acts here. | -**blockchain_id** | **str** | The blockchain this party is connected to — `CANTON` or `CANTON_TEST`. | **wallets** | **List[str]** | Canton party ids to add or remove. | ## Example diff --git a/docs/BulkProofOfOwnership.md b/docs/BulkProofOfOwnership.md new file mode 100644 index 00000000..3603c75d --- /dev/null +++ b/docs/BulkProofOfOwnership.md @@ -0,0 +1,31 @@ +# BulkProofOfOwnership + +Proof that the customer holds the private key. Required for every key, unlike the single key endpoint: bulk registration has no interactive step in which a proof can arrive later. + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**message** | **str** | The message to be signed by the key as proof of ownership. 64 to 1024 bytes in hexadecimal format. | +**signature** | **str** | The signature of the message. 64 bytes in hexadecimal format. | + +## Example + +```python +from fireblocks.models.bulk_proof_of_ownership import BulkProofOfOwnership + +# TODO update the JSON string below +json = "{}" +# create an instance of BulkProofOfOwnership from a JSON string +bulk_proof_of_ownership_instance = BulkProofOfOwnership.from_json(json) +# print the JSON string representation of the object +print(BulkProofOfOwnership.to_json()) + +# convert the object into a dict +bulk_proof_of_ownership_dict = bulk_proof_of_ownership_instance.to_dict() +# create an instance of BulkProofOfOwnership from a dict +bulk_proof_of_ownership_from_dict = BulkProofOfOwnership.from_dict(bulk_proof_of_ownership_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/BulkSigningKey.md b/docs/BulkSigningKey.md new file mode 100644 index 00000000..ce43ffbe --- /dev/null +++ b/docs/BulkSigningKey.md @@ -0,0 +1,32 @@ +# BulkSigningKey + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**signing_device_key_id** | **str** | The ID, name or label of the key specified on the customer's signing device. | +**signed_cert_pem** | **str** | The signed certificate that includes the public key PEM of the signing key, signed by the validation key declared for the request. | +**agent_user_id** | **str** | Id of user to which this key belongs | +**proof_of_ownership** | [**BulkProofOfOwnership**](BulkProofOfOwnership.md) | | + +## Example + +```python +from fireblocks.models.bulk_signing_key import BulkSigningKey + +# TODO update the JSON string below +json = "{}" +# create an instance of BulkSigningKey from a JSON string +bulk_signing_key_instance = BulkSigningKey.from_json(json) +# print the JSON string representation of the object +print(BulkSigningKey.to_json()) + +# convert the object into a dict +bulk_signing_key_dict = bulk_signing_key_instance.to_dict() +# create an instance of BulkSigningKey from a dict +bulk_signing_key_from_dict = BulkSigningKey.from_dict(bulk_signing_key_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/BulkSigningKeyJob.md b/docs/BulkSigningKeyJob.md new file mode 100644 index 00000000..86ab6c15 --- /dev/null +++ b/docs/BulkSigningKeyJob.md @@ -0,0 +1,38 @@ +# BulkSigningKeyJob + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**job_id** | **str** | Id of the registration job. | +**status** | **str** | QUEUED means the job is waiting for another bulk registration to finish, since only a limited number run at once. IN_PROGRESS means it is running. COMPLETED means every submitted key is present in the workspace. FAILED means the request was refused before any key was registered, so `reason` has to be acted on before resubmitting is worth anything. INCOMPLETE means some keys are not registered; resubmitting the same request retries exactly those, and `reason` says whether that is likely to help -- keys not registered because of a transient failure will succeed, a key whose certificate or proof was rejected will be rejected again. | +**total** | **float** | Keys in the submitted request. | +**created** | **float** | Keys registered by this job. | +**already_registered** | **float** | Keys already present in the workspace, recognized and skipped. | +**failed** | **float** | Keys rejected. See `reason`. | +**reason** | **str** | Free text describing what went wrong. Null while the job is healthy. | [optional] +**file_hash** | **str** | Hex digest over the submitted keys. Two jobs sharing a digest were the same set of keys, which makes a sequence of resubmissions recognizable. | [optional] +**created_at** | **float** | Creation date (timestamp) in milliseconds. | +**updated_at** | **float** | Last progress update (timestamp) in milliseconds. | + +## Example + +```python +from fireblocks.models.bulk_signing_key_job import BulkSigningKeyJob + +# TODO update the JSON string below +json = "{}" +# create an instance of BulkSigningKeyJob from a JSON string +bulk_signing_key_job_instance = BulkSigningKeyJob.from_json(json) +# print the JSON string representation of the object +print(BulkSigningKeyJob.to_json()) + +# convert the object into a dict +bulk_signing_key_job_dict = bulk_signing_key_job_instance.to_dict() +# create an instance of BulkSigningKeyJob from a dict +bulk_signing_key_job_from_dict = BulkSigningKeyJob.from_dict(bulk_signing_key_job_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/CantonCall.md b/docs/CantonCall.md index 8475a3d2..e9a36142 100644 --- a/docs/CantonCall.md +++ b/docs/CantonCall.md @@ -6,7 +6,9 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **type** | **str** | Which call to make. Selects the shape of `payload`. | -**payload** | [**AllocationWithdrawPayload**](AllocationWithdrawPayload.md) | | +**vault_account_id** | **str** | The vault account whose Canton wallet makes this call. | +**blockchain_id** | **str** | The blockchain the vault account's Canton party is connected to — `CANTON` or `CANTON_TEST`. | +**payload** | [**AllowListPayload**](AllowListPayload.md) | | ## Example diff --git a/docs/CantonCallAllocationWithdraw.md b/docs/CantonCallAllocationWithdraw.md deleted file mode 100644 index 8a0e74c9..00000000 --- a/docs/CantonCallAllocationWithdraw.md +++ /dev/null @@ -1,30 +0,0 @@ -# CantonCallAllocationWithdraw - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | **str** | Which call to make. Selects the shape of `payload`. | -**payload** | [**AllocationWithdrawPayload**](AllocationWithdrawPayload.md) | | - -## Example - -```python -from fireblocks.models.canton_call_allocation_withdraw import CantonCallAllocationWithdraw - -# TODO update the JSON string below -json = "{}" -# create an instance of CantonCallAllocationWithdraw from a JSON string -canton_call_allocation_withdraw_instance = CantonCallAllocationWithdraw.from_json(json) -# print the JSON string representation of the object -print(CantonCallAllocationWithdraw.to_json()) - -# convert the object into a dict -canton_call_allocation_withdraw_dict = canton_call_allocation_withdraw_instance.to_dict() -# create an instance of CantonCallAllocationWithdraw from a dict -canton_call_allocation_withdraw_from_dict = CantonCallAllocationWithdraw.from_dict(canton_call_allocation_withdraw_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/CantonCallAllowListAdd.md b/docs/CantonCallAllowListAdd.md index 1dabef9f..a8887e24 100644 --- a/docs/CantonCallAllowListAdd.md +++ b/docs/CantonCallAllowListAdd.md @@ -6,6 +6,8 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **type** | **str** | Which call to make. Selects the shape of `payload`. | +**vault_account_id** | **str** | The vault account whose Canton wallet makes this call. | +**blockchain_id** | **str** | The blockchain the vault account's Canton party is connected to — `CANTON` or `CANTON_TEST`. | **payload** | [**AllowListPayload**](AllowListPayload.md) | | ## Example diff --git a/docs/CantonCallAllowListRemove.md b/docs/CantonCallAllowListRemove.md index b43e3f95..84933177 100644 --- a/docs/CantonCallAllowListRemove.md +++ b/docs/CantonCallAllowListRemove.md @@ -6,6 +6,8 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **type** | **str** | Which call to make. Selects the shape of `payload`. | +**vault_account_id** | **str** | The vault account whose Canton wallet makes this call. | +**blockchain_id** | **str** | The blockchain the vault account's Canton party is connected to — `CANTON` or `CANTON_TEST`. | **payload** | [**AllowListPayload**](AllowListPayload.md) | | ## Example diff --git a/docs/CantonCallDetails.md b/docs/CantonCallDetails.md index eed1ff42..fc337a89 100644 --- a/docs/CantonCallDetails.md +++ b/docs/CantonCallDetails.md @@ -8,9 +8,9 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **version** | **int** | The shape of this block. Stamped at creation and never changed, so a reader always knows which version it is holding. | [optional] **domain** | [**CantonDomainEnum**](CantonDomainEnum.md) | | [optional] -**type** | **str** | The call type, matching the `type` sent when the call was created. | [optional] +**type** | **str** | The call type, matching the `type` sent when the call was created. Transactions created before a type moved to the offers endpoint keep the value they were written with — `ALLOCATION_WITHDRAW` is one; new withdraws are offer responses. | [optional] **vendor** | [**CantonVendorEnum**](CantonVendorEnum.md) | | [optional] -**original_transaction_id** | **str** | The transaction this call acts on. On a withdraw it is the allocation that was withdrawn, so the withdraw transaction read on its own still says what it withdrew. | [optional] +**original_transaction_id** | **str** | The transaction this call acts on, where it acts on one. | [optional] ## Example diff --git a/docs/CantonCallEndInvestorInvite.md b/docs/CantonCallEndInvestorInvite.md index 1e3262a0..116c806f 100644 --- a/docs/CantonCallEndInvestorInvite.md +++ b/docs/CantonCallEndInvestorInvite.md @@ -6,6 +6,8 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **type** | **str** | Which call to make. Selects the shape of `payload`. | +**vault_account_id** | **str** | The vault account whose Canton wallet makes this call. | +**blockchain_id** | **str** | The blockchain the vault account's Canton party is connected to — `CANTON` or `CANTON_TEST`. | **payload** | [**EndInvestorPayload**](EndInvestorPayload.md) | | ## Example diff --git a/docs/CantonCallEndInvestorInviteCancel.md b/docs/CantonCallEndInvestorInviteCancel.md index b8711bed..c5e05283 100644 --- a/docs/CantonCallEndInvestorInviteCancel.md +++ b/docs/CantonCallEndInvestorInviteCancel.md @@ -6,6 +6,8 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **type** | **str** | Which call to make. Selects the shape of `payload`. | +**vault_account_id** | **str** | The vault account whose Canton wallet makes this call. | +**blockchain_id** | **str** | The blockchain the vault account's Canton party is connected to — `CANTON` or `CANTON_TEST`. | **payload** | [**EndInvestorPayload**](EndInvestorPayload.md) | | ## Example diff --git a/docs/CantonCallEndInvestorOffboard.md b/docs/CantonCallEndInvestorOffboard.md index f9732f49..cb38ca8d 100644 --- a/docs/CantonCallEndInvestorOffboard.md +++ b/docs/CantonCallEndInvestorOffboard.md @@ -6,6 +6,8 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **type** | **str** | Which call to make. Selects the shape of `payload`. | +**vault_account_id** | **str** | The vault account whose Canton wallet makes this call. | +**blockchain_id** | **str** | The blockchain the vault account's Canton party is connected to — `CANTON` or `CANTON_TEST`. | **payload** | [**EndInvestorPayload**](EndInvestorPayload.md) | | ## Example diff --git a/docs/CantonCallParticipantOnboarding.md b/docs/CantonCallParticipantOnboarding.md index 16e22aae..87f03f7c 100644 --- a/docs/CantonCallParticipantOnboarding.md +++ b/docs/CantonCallParticipantOnboarding.md @@ -6,7 +6,9 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **type** | **str** | Which call to make. Selects the shape of `payload`. | -**payload** | [**ParticipantOnboardingPayload**](ParticipantOnboardingPayload.md) | | +**vault_account_id** | **str** | The vault account whose Canton wallet makes this call. | +**blockchain_id** | **str** | The blockchain the vault account's Canton party is connected to — `CANTON` or `CANTON_TEST`. | +**payload** | [**ParticipantOnboardingPayload**](ParticipantOnboardingPayload.md) | | [optional] ## Example diff --git a/docs/CantonOfferResponseDetails.md b/docs/CantonOfferResponseDetails.md index 1b2bb0b1..73b65e88 100644 --- a/docs/CantonOfferResponseDetails.md +++ b/docs/CantonOfferResponseDetails.md @@ -1,6 +1,6 @@ # CantonOfferResponseDetails -The transaction belongs to an offer conversation: the offer itself, the response to it, or a leg that carries no answer of its own. The only block that changes over a transaction's lifetime. +The transaction belongs to an offer conversation: the offer itself, a response to it, or a leg that carries no answer of its own. The only block that changes over a transaction's lifetime. An offer can have more than one response — an allocation offer is accepted and later withdrawn — so every response transaction states which answer it is in `responseType`. ## Properties @@ -9,10 +9,12 @@ Name | Type | Description | Notes **version** | **int** | The shape of this block. Stamped at creation and never changed, so a reader always knows which version it is holding. | [optional] **domain** | [**CantonDomainEnum**](CantonDomainEnum.md) | | [optional] **vendor** | [**CantonVendorEnum**](CantonVendorEnum.md) | | [optional] -**available_responses** | **List[str]** | The responses that can be sent for this offer right now. An empty array means nothing is answerable on this transaction — which is the difference between an actionable offer and a linked leg that shares its sub-status. | [optional] +**available_responses** | **List[str]** | The responses this offer accepts — copy one into `responseType` to answer it. Present on the offer only, set when it arrives and never changed: it states what the offer TYPE accepts, not whether it is answerable right now. The respond endpoint is the authority on that, and answers `409` when the offer's state or expiry rules a response out — for example an `ALLOCATION_WITHDRAW` sent before the accept has settled. An empty array means nothing is answerable on this transaction — the difference between an actionable offer and a linked leg that shares its sub-status. | [optional] **expires_at** | **datetime** | When the offer expires, where it has a deadline. | [optional] **approval_transaction_id** | **str** | The response transaction, once one has been dispatched for this offer. | [optional] **original_transaction_id** | **str** | The transaction this one relates to — the offer a response answered. | [optional] +**response_type** | **str** | On a response transaction, which answer it is — the `responseType` that was sent. Absent on the offer itself. | [optional] +**allocation_transaction_id** | **str** | On an `ALLOCATION_WITHDRAW` response only — the accept whose allocation this withdraw released, so the withdraw transaction read on its own says what it undid. | [optional] **verdict** | **str** | The outcome, set once the transaction reaches a terminal status. | [optional] ## Example diff --git a/docs/ConsoleUserApi.md b/docs/ConsoleUserApi.md index 90869573..5c52a43d 100644 --- a/docs/ConsoleUserApi.md +++ b/docs/ConsoleUserApi.md @@ -95,6 +95,7 @@ No authorization required Request deletion of a console user Requests deletion of a console user. The request is asynchronous: it goes through the workspace's configured "Delete users" approval policy (Settings > Quorums), exactly as deleting a user from the console does, and the user is removed only once that approval completes. +- The workspace must have a "Delete users" approval policy (admin quorum or approval group). If "Delete users" is Owner-only, which is the default, the request is refused with OWNER_ONLY (2760) and the Owner deletes users in the Console. With an admin quorum, the requesting API user's own approval counts toward the quorum. - Track progress by polling GET /management/users; deletion is complete when the user is disabled. - Please note that this endpoint is available only for API keys with Admin/Non Signing Admin/Security Admin permissions. Endpoint Permission: Admin, Non-Signing Admin, Security Admin. @@ -167,7 +168,7 @@ No authorization required **202** | Deletion request accepted. Returns the console user that will be removed once the workspace's configured approval completes. | * X-Request-ID -
| **400** | Bad request: invalid parameters (for example a non-boolean `force`), or TARGET_IS_API_USER - the ID belongs to an API user in this workspace; this endpoint deletes console users only. | * X-Request-ID -
| **401** | Unauthorized. Missing / invalid JWT token in Authorization header. | * X-Request-ID -
| -**403** | Lacking permissions, or the target cannot be deleted: the user is the workspace Owner, or the caller is the target. | * X-Request-ID -
| +**403** | Lacking permissions, or the target cannot be deleted: the user is the workspace Owner, or the caller is the target. Also returned as OWNER_ONLY (2760) when the workspace's \"Delete users\" approval is Owner-only; set an approval policy in the Console under Settings > Quorums. | * X-Request-ID -
| **404** | Console user not found. Also returned for users in other workspaces (so the endpoint does not reveal whether an ID exists there) and for users that were already deleted. | * X-Request-ID -
| **409** | PENDING_REQUEST_EXISTS - a deletion request for this user is already awaiting approval; USER_REFERENCED_IN_TAP - the user is referenced by the workspace transaction authorization policy (can be overridden with force=true); or USER_PENDING_ONBOARDING - the user has not completed onboarding, so there is nothing to delete yet. Revoke the invitation from the console instead. | * X-Request-ID -
| **422** | QUORUM_INTEGRITY - the user is required to complete the workspace's admin approval quorum. Can be overridden with force=true, matching the console's acknowledgement checkbox. | * X-Request-ID -
| diff --git a/docs/CreateBulkSigningKeys.md b/docs/CreateBulkSigningKeys.md new file mode 100644 index 00000000..76644ab2 --- /dev/null +++ b/docs/CreateBulkSigningKeys.md @@ -0,0 +1,30 @@ +# CreateBulkSigningKeys + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**validation_key_id** | **str** | The id of the validation key that signed every certificate in this request, as returned when the validation key was registered. Not the signingDeviceKeyId of any signing key. | +**keys** | [**List[BulkSigningKey]**](BulkSigningKey.md) | The signing keys to register. | + +## Example + +```python +from fireblocks.models.create_bulk_signing_keys import CreateBulkSigningKeys + +# TODO update the JSON string below +json = "{}" +# create an instance of CreateBulkSigningKeys from a JSON string +create_bulk_signing_keys_instance = CreateBulkSigningKeys.from_json(json) +# print the JSON string representation of the object +print(CreateBulkSigningKeys.to_json()) + +# convert the object into a dict +create_bulk_signing_keys_dict = create_bulk_signing_keys_instance.to_dict() +# create an instance of CreateBulkSigningKeys from a dict +create_bulk_signing_keys_from_dict = CreateBulkSigningKeys.from_dict(create_bulk_signing_keys_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/CreateBulkSigningKeysResponse.md b/docs/CreateBulkSigningKeysResponse.md new file mode 100644 index 00000000..5485421f --- /dev/null +++ b/docs/CreateBulkSigningKeysResponse.md @@ -0,0 +1,29 @@ +# CreateBulkSigningKeysResponse + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**job_id** | **str** | Id of the registration job. Poll it for progress. | + +## Example + +```python +from fireblocks.models.create_bulk_signing_keys_response import CreateBulkSigningKeysResponse + +# TODO update the JSON string below +json = "{}" +# create an instance of CreateBulkSigningKeysResponse from a JSON string +create_bulk_signing_keys_response_instance = CreateBulkSigningKeysResponse.from_json(json) +# print the JSON string representation of the object +print(CreateBulkSigningKeysResponse.to_json()) + +# convert the object into a dict +create_bulk_signing_keys_response_dict = create_bulk_signing_keys_response_instance.to_dict() +# create an instance of CreateBulkSigningKeysResponse from a dict +create_bulk_signing_keys_response_from_dict = CreateBulkSigningKeysResponse.from_dict(create_bulk_signing_keys_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/EndInvestorPayload.md b/docs/EndInvestorPayload.md index 6ea3b3b6..87ce28df 100644 --- a/docs/EndInvestorPayload.md +++ b/docs/EndInvestorPayload.md @@ -6,8 +6,6 @@ Shared by invite / invite-cancel / offboard — identical wire shape, different Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**vault_account_id** | **str** | The vault account whose Canton wallet acts here. | -**blockchain_id** | **str** | The blockchain this party is connected to — `CANTON` or `CANTON_TEST`. | **end_investor** | **str** | The end investor's Canton party id. | ## Example diff --git a/docs/GetBulkSigningKeysJobsResponse.md b/docs/GetBulkSigningKeysJobsResponse.md new file mode 100644 index 00000000..5d13122e --- /dev/null +++ b/docs/GetBulkSigningKeysJobsResponse.md @@ -0,0 +1,30 @@ +# GetBulkSigningKeysJobsResponse + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**data** | [**List[BulkSigningKeyJob]**](BulkSigningKeyJob.md) | Registration jobs for the workspace, newest first. | +**next** | **str** | Cursor to the next page. Absent on the last page. | [optional] + +## Example + +```python +from fireblocks.models.get_bulk_signing_keys_jobs_response import GetBulkSigningKeysJobsResponse + +# TODO update the JSON string below +json = "{}" +# create an instance of GetBulkSigningKeysJobsResponse from a JSON string +get_bulk_signing_keys_jobs_response_instance = GetBulkSigningKeysJobsResponse.from_json(json) +# print the JSON string representation of the object +print(GetBulkSigningKeysJobsResponse.to_json()) + +# convert the object into a dict +get_bulk_signing_keys_jobs_response_dict = get_bulk_signing_keys_jobs_response_instance.to_dict() +# create an instance of GetBulkSigningKeysJobsResponse from a dict +get_bulk_signing_keys_jobs_response_from_dict = GetBulkSigningKeysJobsResponse.from_dict(get_bulk_signing_keys_jobs_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/KeyLinkBetaApi.md b/docs/KeyLinkBetaApi.md index 9aa203d2..2be0864f 100644 --- a/docs/KeyLinkBetaApi.md +++ b/docs/KeyLinkBetaApi.md @@ -4,9 +4,12 @@ All URIs are relative to *https://api.fireblocks.io/v1* Method | HTTP request | Description ------------- | ------------- | ------------- +[**create_bulk_signing_keys**](KeyLinkBetaApi.md#create_bulk_signing_keys) | **POST** /key_link/signing_keys/bulk | Register signing keys in bulk [**create_signing_key**](KeyLinkBetaApi.md#create_signing_key) | **POST** /key_link/signing_keys | Add a new signing key [**create_validation_key**](KeyLinkBetaApi.md#create_validation_key) | **POST** /key_link/validation_keys | Add a new validation key [**disable_validation_key**](KeyLinkBetaApi.md#disable_validation_key) | **PATCH** /key_link/validation_keys/{keyId} | Disables a validation key +[**get_bulk_signing_keys_job**](KeyLinkBetaApi.md#get_bulk_signing_keys_job) | **GET** /key_link/signing_keys/bulk/jobs/{jobId} | Get a bulk registration job +[**get_bulk_signing_keys_jobs**](KeyLinkBetaApi.md#get_bulk_signing_keys_jobs) | **GET** /key_link/signing_keys/bulk/jobs | Get bulk registration jobs [**get_signing_key**](KeyLinkBetaApi.md#get_signing_key) | **GET** /key_link/signing_keys/{keyId} | Get a signing key by `keyId` [**get_signing_keys_list**](KeyLinkBetaApi.md#get_signing_keys_list) | **GET** /key_link/signing_keys | Get list of signing keys [**get_validation_key**](KeyLinkBetaApi.md#get_validation_key) | **GET** /key_link/validation_keys/{keyId} | Get a validation key by `keyId` @@ -15,6 +18,84 @@ Method | HTTP request | Description [**update_signing_key**](KeyLinkBetaApi.md#update_signing_key) | **PATCH** /key_link/signing_keys/{keyId} | Modify the signing keyId +# **create_bulk_signing_keys** +> CreateBulkSigningKeysResponse create_bulk_signing_keys(create_bulk_signing_keys, idempotency_key=idempotency_key) + +Register signing keys in bulk + +Accepts a set of signing keys certified by a single validation key and queues them for registration in the background. Returns a job id to poll. A workspace can have one bulk registration at a time; submitting another while one is QUEUED or IN_PROGRESS is rejected with 409. Bulk registrations from different workspaces share a limited number of slots, so a job may wait QUEUED behind another workspace's before it starts. Keys already registered in the workspace are recognized and skipped, so resubmitting the same request after a failure is safe and only processes what is missing. Every key must carry its own proof of ownership; a bulk registration has no interactive step in which one can arrive later. + +### Example + + +```python +from fireblocks.models.create_bulk_signing_keys import CreateBulkSigningKeys +from fireblocks.models.create_bulk_signing_keys_response import CreateBulkSigningKeysResponse +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: + create_bulk_signing_keys = fireblocks.CreateBulkSigningKeys() # CreateBulkSigningKeys | + idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) + + try: + # Register signing keys in bulk + api_response = fireblocks.key_link_beta.create_bulk_signing_keys(create_bulk_signing_keys, idempotency_key=idempotency_key).result() + print("The response of KeyLinkBetaApi->create_bulk_signing_keys:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling KeyLinkBetaApi->create_bulk_signing_keys: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **create_bulk_signing_keys** | [**CreateBulkSigningKeys**](CreateBulkSigningKeys.md)| | + **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] + +### Return type + +[**CreateBulkSigningKeysResponse**](CreateBulkSigningKeysResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**202** | Registration is queued | * X-Request-ID -
| +**409** | Error Response | * 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) + # **create_signing_key** > SigningKeyDto create_signing_key(create_signing_key_dto, idempotency_key=idempotency_key) @@ -246,6 +327,156 @@ 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_bulk_signing_keys_job** +> BulkSigningKeyJob get_bulk_signing_keys_job(job_id) + +Get a bulk registration job + +Returns the progress and outcome of a bulk registration job. `created + alreadyRegistered` reaching `total` means every submitted key is present. + +### Example + + +```python +from fireblocks.models.bulk_signing_key_job import BulkSigningKeyJob +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: + job_id = '46a92767-5f93-4a46-9eed-f012196bb4fc' # str | The id of the bulk registration job + + try: + # Get a bulk registration job + api_response = fireblocks.key_link_beta.get_bulk_signing_keys_job(job_id).result() + print("The response of KeyLinkBetaApi->get_bulk_signing_keys_job:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling KeyLinkBetaApi->get_bulk_signing_keys_job: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **job_id** | **str**| The id of the bulk registration job | + +### Return type + +[**BulkSigningKeyJob**](BulkSigningKeyJob.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | The bulk registration job | * 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_bulk_signing_keys_jobs** +> GetBulkSigningKeysJobsResponse get_bulk_signing_keys_jobs(page_cursor=page_cursor, page_size=page_size) + +Get bulk registration jobs + +Returns the workspace's bulk registration jobs, newest first, a page at a time. + +### Example + + +```python +from fireblocks.models.get_bulk_signing_keys_jobs_response import GetBulkSigningKeysJobsResponse +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_cursor = 'page_cursor_example' # str | Cursor to the next page (optional) + page_size = 10 # int | Amount of results to return in the next page (optional) (default to 10) + + try: + # Get bulk registration jobs + api_response = fireblocks.key_link_beta.get_bulk_signing_keys_jobs(page_cursor=page_cursor, page_size=page_size).result() + print("The response of KeyLinkBetaApi->get_bulk_signing_keys_jobs:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling KeyLinkBetaApi->get_bulk_signing_keys_jobs: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **page_cursor** | **str**| Cursor to the next page | [optional] + **page_size** | **int**| Amount of results to return in the next page | [optional] [default to 10] + +### Return type + +[**GetBulkSigningKeysJobsResponse**](GetBulkSigningKeysJobsResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Bulk registration jobs for the workspace | * 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_signing_key** > SigningKeyDto get_signing_key(key_id) diff --git a/docs/OfferResponseAllocationWithdraw.md b/docs/OfferResponseAllocationWithdraw.md new file mode 100644 index 00000000..053feaa4 --- /dev/null +++ b/docs/OfferResponseAllocationWithdraw.md @@ -0,0 +1,30 @@ +# OfferResponseAllocationWithdraw + +Withdraw the allocation you made by accepting this offer, unlocking the holding. Carries no arguments — the allocation is resolved from the offer. Answers `409` until the accept has settled. + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**response_type** | **str** | How you are answering the offer. Must be one of the values listed in the transaction's `cantonDetails.offerResponse.availableResponses` — TOP-LEVEL on the transaction, not nested under an `additionalInfo` envelope, which does not exist on `TransactionResponse`. `availableResponses` states what this offer TYPE accepts. It is set when the offer arrives and does not change, so it does NOT tell you whether the offer is still answerable — check `expiresAt` and the transaction's status for that, and expect this endpoint to be the authority: it re-checks state and expiry on every call and answers 409 when either has moved. | + +## Example + +```python +from fireblocks.models.offer_response_allocation_withdraw import OfferResponseAllocationWithdraw + +# TODO update the JSON string below +json = "{}" +# create an instance of OfferResponseAllocationWithdraw from a JSON string +offer_response_allocation_withdraw_instance = OfferResponseAllocationWithdraw.from_json(json) +# print the JSON string representation of the object +print(OfferResponseAllocationWithdraw.to_json()) + +# convert the object into a dict +offer_response_allocation_withdraw_dict = offer_response_allocation_withdraw_instance.to_dict() +# create an instance of OfferResponseAllocationWithdraw from a dict +offer_response_allocation_withdraw_from_dict = OfferResponseAllocationWithdraw.from_dict(offer_response_allocation_withdraw_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/ParticipantOnboardingPayload.md b/docs/ParticipantOnboardingPayload.md index f1daa2d2..27b02c40 100644 --- a/docs/ParticipantOnboardingPayload.md +++ b/docs/ParticipantOnboardingPayload.md @@ -1,18 +1,17 @@ # ParticipantOnboardingPayload +Optional, and so is every field in it: omit `payload` entirely to onboard with DTCC's published parties for the blockchain and the default expiry. ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**vault_account_id** | **str** | The vault account that acts as the participant. Its Canton party is derived for you. | -**blockchain_id** | **str** | The blockchain this party is connected to — `CANTON` or `CANTON_TEST`. | **expires_at** | **datetime** | When the onboarding request expires if it has not been answered. RFC 3339. | [optional] -**operator** | **str** | DTCC infra operator party id. | -**compliance** | **str** | DTCC compliance party id. | -**registrar** | **str** | DTCC registrar party id — co-signs the accept. | -**client_onboarder** | **str** | DTCC client onboarder party id — co-signs the accept. | -**upgrader** | **str** | DTCC upgrader party id — the Model Upgrade Tool authority. Supplied by DTCC during the off-chain registration, alongside the other party ids. | +**operator** | **str** | DTCC infra operator party id. Optional — overrides the service's default for the blockchain. | [optional] +**compliance** | **str** | DTCC compliance party id. Optional — overrides the service's default for the blockchain. | [optional] +**registrar** | **str** | DTCC registrar party id — co-signs the accept. Optional — overrides the service's default for the blockchain. | [optional] +**client_onboarder** | **str** | DTCC client onboarder party id — co-signs the accept. Optional — overrides the service's default for the blockchain. | [optional] +**upgrader** | **str** | DTCC upgrader party id — the Model Upgrade Tool authority. Optional — overrides the service's default for the blockchain. | [optional] ## Example diff --git a/docs/TradingBetaApi.md b/docs/TradingApi.md similarity index 84% rename from docs/TradingBetaApi.md rename to docs/TradingApi.md index 2a6f08cb..0345b444 100644 --- a/docs/TradingBetaApi.md +++ b/docs/TradingApi.md @@ -1,20 +1,20 @@ -# fireblocks.TradingBetaApi +# fireblocks.TradingApi All URIs are relative to *https://api.fireblocks.io/v1* Method | HTTP request | Description ------------- | ------------- | ------------- -[**create_order**](TradingBetaApi.md#create_order) | **POST** /trading/orders | Create an order -[**create_quote**](TradingBetaApi.md#create_quote) | **POST** /trading/quotes | Create a quote -[**fetch_all_offers**](TradingBetaApi.md#fetch_all_offers) | **POST** /trading/offers | Get all offers -[**fetch_rates**](TradingBetaApi.md#fetch_rates) | **POST** /trading/rates | Get rates -[**get_order**](TradingBetaApi.md#get_order) | **GET** /trading/orders/{orderId} | Get order details -[**get_order_requirements**](TradingBetaApi.md#get_order_requirements) | **GET** /trading/orders/{orderId}/requirement | Get order requirement details for an order -[**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 -[**submit_order_requirements**](TradingBetaApi.md#submit_order_requirements) | **POST** /trading/orders/{orderId}/requirement/data | Submit a response to an order requirement -[**upload_order_requirement_file**](TradingBetaApi.md#upload_order_requirement_file) | **POST** /trading/orders/{orderId}/requirement/file | Upload a file for an order requirement +[**create_order**](TradingApi.md#create_order) | **POST** /trading/orders | Create an order +[**create_quote**](TradingApi.md#create_quote) | **POST** /trading/quotes | Create a quote +[**fetch_all_offers**](TradingApi.md#fetch_all_offers) | **POST** /trading/offers | Get all offers +[**fetch_rates**](TradingApi.md#fetch_rates) | **POST** /trading/rates | Get rates +[**get_order**](TradingApi.md#get_order) | **GET** /trading/orders/{orderId} | Get order details +[**get_order_requirements**](TradingApi.md#get_order_requirements) | **GET** /trading/orders/{orderId}/requirement | Get order requirement details for an order +[**get_orders**](TradingApi.md#get_orders) | **GET** /trading/orders | Get orders +[**get_trading_provider_by_id**](TradingApi.md#get_trading_provider_by_id) | **GET** /trading/providers/{providerId} | Get trading provider by ID +[**get_trading_providers**](TradingApi.md#get_trading_providers) | **GET** /trading/providers | Get providers +[**submit_order_requirements**](TradingApi.md#submit_order_requirements) | **POST** /trading/orders/{orderId}/requirement/data | Submit a response to an order requirement +[**upload_order_requirement_file**](TradingApi.md#upload_order_requirement_file) | **POST** /trading/orders/{orderId}/requirement/file | Upload a file for an order requirement # **create_order** @@ -24,10 +24,6 @@ Create an order Create an order to buy or sell an asset. If no source is given, an external source will be use. -Note: These endpoints are currently in beta and might be subject to changes. - -If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. - Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Editor. For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). @@ -63,11 +59,11 @@ with Fireblocks(configuration) as fireblocks: try: # Create an order - api_response = fireblocks.trading_beta.create_order(create_order_request, idempotency_key=idempotency_key).result() - print("The response of TradingBetaApi->create_order:\n") + api_response = fireblocks.trading.create_order(create_order_request, idempotency_key=idempotency_key).result() + print("The response of TradingApi->create_order:\n") pprint(api_response) except Exception as e: - print("Exception when calling TradingBetaApi->create_order: %s\n" % e) + print("Exception when calling TradingApi->create_order: %s\n" % e) ``` @@ -114,10 +110,6 @@ Create a quote Generate a time-limited quote for asset conversion, providing exchange rate and amount calculations. -Note: These endpoints are currently in beta and might be subject to changes. - -If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. - Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Editor. For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). @@ -153,11 +145,11 @@ with Fireblocks(configuration) as fireblocks: try: # Create a quote - api_response = fireblocks.trading_beta.create_quote(create_quote, idempotency_key=idempotency_key).result() - print("The response of TradingBetaApi->create_quote:\n") + api_response = fireblocks.trading.create_quote(create_quote, idempotency_key=idempotency_key).result() + print("The response of TradingApi->create_quote:\n") pprint(api_response) except Exception as e: - print("Exception when calling TradingBetaApi->create_quote: %s\n" % e) + print("Exception when calling TradingApi->create_quote: %s\n" % e) ``` @@ -209,10 +201,6 @@ Returns a mix of indicative rates and committed quotes as applicable per provide If no slippageBps is provided, it defaults to 50 bps (0.5%). Slippage and settlement configuration do not affect the returned rate. -Note: These endpoints are currently in beta and might be subject to changes. - -If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. - Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Editor. For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). @@ -248,11 +236,11 @@ with Fireblocks(configuration) as fireblocks: try: # Get all offers - api_response = fireblocks.trading_beta.fetch_all_offers(create_offers_request, idempotency_key=idempotency_key).result() - print("The response of TradingBetaApi->fetch_all_offers:\n") + api_response = fireblocks.trading.fetch_all_offers(create_offers_request, idempotency_key=idempotency_key).result() + print("The response of TradingApi->fetch_all_offers:\n") pprint(api_response) except Exception as e: - print("Exception when calling TradingBetaApi->fetch_all_offers: %s\n" % e) + print("Exception when calling TradingApi->fetch_all_offers: %s\n" % e) ``` @@ -300,10 +288,6 @@ Get rates Retrieve indicative exchange rate from specified providers for a given asset pair. Rates are non-executable price signals intended for discovery and display purposes. -Note: These endpoints are currently in beta and might be subject to changes. - -If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. - Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). @@ -339,11 +323,11 @@ with Fireblocks(configuration) as fireblocks: try: # Get rates - api_response = fireblocks.trading_beta.fetch_rates(rates_request, idempotency_key=idempotency_key).result() - print("The response of TradingBetaApi->fetch_rates:\n") + api_response = fireblocks.trading.fetch_rates(rates_request, idempotency_key=idempotency_key).result() + print("The response of TradingApi->fetch_rates:\n") pprint(api_response) except Exception as e: - print("Exception when calling TradingBetaApi->fetch_rates: %s\n" % e) + print("Exception when calling TradingApi->fetch_rates: %s\n" % e) ``` @@ -390,10 +374,6 @@ Get order details Retrieve detailed information about a specific order by its ID. -Note:These endpoints are currently in beta and might be subject to changes. - -If you want to participate 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). @@ -427,11 +407,11 @@ with Fireblocks(configuration) as fireblocks: try: # Get order details - api_response = fireblocks.trading_beta.get_order(order_id).result() - print("The response of TradingBetaApi->get_order:\n") + api_response = fireblocks.trading.get_order(order_id).result() + print("The response of TradingApi->get_order:\n") pprint(api_response) except Exception as e: - print("Exception when calling TradingBetaApi->get_order: %s\n" % e) + print("Exception when calling TradingApi->get_order: %s\n" % e) ``` @@ -482,10 +462,6 @@ The response includes `requirementId` and `dueBy` metadata, a `POST /trading/orders/{orderId}/requirement/data`, and `requiredFiles` descriptors for any files the provider requires (uploaded via `POST /trading/orders/{orderId}/requirement/file`). -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). @@ -519,11 +495,11 @@ with Fireblocks(configuration) as fireblocks: try: # Get order requirement details for an order - api_response = fireblocks.trading_beta.get_order_requirements(order_id).result() - print("The response of TradingBetaApi->get_order_requirements:\n") + api_response = fireblocks.trading.get_order_requirements(order_id).result() + print("The response of TradingApi->get_order_requirements:\n") pprint(api_response) except Exception as e: - print("Exception when calling TradingBetaApi->get_order_requirements: %s\n" % e) + print("Exception when calling TradingApi->get_order_requirements: %s\n" % e) ``` @@ -570,10 +546,6 @@ Get orders Retrieve a paginated list of orders with optional filtering by account, provider, status, and time range. -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). @@ -616,11 +588,11 @@ with Fireblocks(configuration) as fireblocks: try: # Get orders - api_response = fireblocks.trading_beta.get_orders(page_size, page_cursor=page_cursor, order=order, account_id=account_id, provider_id=provider_id, statuses=statuses, start_time=start_time, end_time=end_time, asset_conversion_type=asset_conversion_type).result() - print("The response of TradingBetaApi->get_orders:\n") + api_response = fireblocks.trading.get_orders(page_size, page_cursor=page_cursor, order=order, account_id=account_id, provider_id=provider_id, statuses=statuses, start_time=start_time, end_time=end_time, asset_conversion_type=asset_conversion_type).result() + print("The response of TradingApi->get_orders:\n") pprint(api_response) except Exception as e: - print("Exception when calling TradingBetaApi->get_orders: %s\n" % e) + print("Exception when calling TradingApi->get_orders: %s\n" % e) ``` @@ -673,8 +645,6 @@ Get trading provider by ID Retrieve a single provider by ID. -**Note:** These endpoints are currently in beta and might be subject to changes. If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. - **Endpoint Permission:** Owner, Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). @@ -709,11 +679,11 @@ with Fireblocks(configuration) as fireblocks: 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") + api_response = fireblocks.trading.get_trading_provider_by_id(provider_id).result() + print("The response of TradingApi->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) + print("Exception when calling TradingApi->get_trading_provider_by_id: %s\n" % e) ``` @@ -759,8 +729,6 @@ Get providers Retrieve a list of all available external providers supporting trading activities through the platform. -**Note:** These endpoints are currently in beta and might be 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). @@ -796,11 +764,11 @@ with Fireblocks(configuration) as fireblocks: try: # Get providers - api_response = fireblocks.trading_beta.get_trading_providers(page_size=page_size, page_cursor=page_cursor).result() - print("The response of TradingBetaApi->get_trading_providers:\n") + api_response = fireblocks.trading.get_trading_providers(page_size=page_size, page_cursor=page_cursor).result() + print("The response of TradingApi->get_trading_providers:\n") pprint(api_response) except Exception as e: - print("Exception when calling TradingBetaApi->get_trading_providers: %s\n" % e) + print("Exception when calling TradingApi->get_trading_providers: %s\n" % e) ``` @@ -850,10 +818,6 @@ The request body carries `data` — a free-form object conforming to the `requir returned by the GET endpoint. Any required files are uploaded separately via `POST /trading/orders/{orderId}/requirement/file`. -Note: These endpoints are currently in beta and might be subject to changes. - -If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. - Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Editor. For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). @@ -888,9 +852,9 @@ with Fireblocks(configuration) as fireblocks: try: # Submit a response to an order requirement - fireblocks.trading_beta.submit_order_requirements(order_id, submit_order_requirement_request, idempotency_key=idempotency_key).result() + fireblocks.trading.submit_order_requirements(order_id, submit_order_requirement_request, idempotency_key=idempotency_key).result() except Exception as e: - print("Exception when calling TradingBetaApi->submit_order_requirements: %s\n" % e) + print("Exception when calling TradingApi->submit_order_requirements: %s\n" % e) ``` @@ -946,10 +910,6 @@ must be one of the supported file formats. Fireblocks encrypts each file and upl underlying provider. The textual response is submitted separately via `POST /trading/orders/{orderId}/requirement/data`. -Note: These endpoints are currently in beta and might be subject to changes. - -If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. - Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Editor. For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). @@ -984,9 +944,9 @@ with Fireblocks(configuration) as fireblocks: try: # Upload a file for an order requirement - fireblocks.trading_beta.upload_order_requirement_file(order_id, file_key, file, idempotency_key=idempotency_key).result() + fireblocks.trading.upload_order_requirement_file(order_id, file_key, file, idempotency_key=idempotency_key).result() except Exception as e: - print("Exception when calling TradingBetaApi->upload_order_requirement_file: %s\n" % e) + print("Exception when calling TradingApi->upload_order_requirement_file: %s\n" % e) ``` diff --git a/docs/VaultsApi.md b/docs/VaultsApi.md index c89d65e0..92b9db8c 100644 --- a/docs/VaultsApi.md +++ b/docs/VaultsApi.md @@ -33,7 +33,6 @@ Method | HTTP request | Description [**get_vault_balance_by_asset**](VaultsApi.md#get_vault_balance_by_asset) | **GET** /vault/assets/{assetId} | Get vault balance by an asset [**hide_vault_account**](VaultsApi.md#hide_vault_account) | **POST** /vault/accounts/{vaultAccountId}/hide | Hide a vault account in the console [**lookup_vault_by_address**](VaultsApi.md#lookup_vault_by_address) | **GET** /vault/lookup_by_address | Look up a vault account by blockchain address -[**register_tempo_omnibus_wallet**](VaultsApi.md#register_tempo_omnibus_wallet) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/omnibus/tempo/register | Register a Tempo omnibus wallet [**set_customer_ref_id_for_address**](VaultsApi.md#set_customer_ref_id_for_address) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}/set_customer_ref_id | Assign AML customer reference ID [**set_usdc_gateway_deposit_automation_beta**](VaultsApi.md#set_usdc_gateway_deposit_automation_beta) | **POST** /vault/accounts/{vaultAccountId}/virtual_asset_wallet/usdc_gateway/deposit_automation | Set up a USDC Gateway deposit automation for a vault account [**set_vault_account_auto_fuel**](VaultsApi.md#set_vault_account_auto_fuel) | **POST** /vault/accounts/{vaultAccountId}/set_auto_fuel | Set auto fueling to on or off @@ -2384,86 +2383,6 @@ 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) -# **register_tempo_omnibus_wallet** -> CreateVaultAssetResponse register_tempo_omnibus_wallet(vault_account_id, asset_id, idempotency_key=idempotency_key) - -Register a Tempo omnibus wallet - -Registers a Tempo omnibus wallet for the requested vault account. -Triggering this flow requires the vault account to hold PATH_USD with a balance sufficient to cover the gas fee. -Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.create_vault_asset_response import CreateVaultAssetResponse -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: - vault_account_id = 'vault_account_id_example' # str | The ID of the vault account for which to register the Tempo wallet. - asset_id = 'asset_id_example' # str | The Tempo network asset to register for the vault account. - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Register a Tempo omnibus wallet - api_response = fireblocks.vaults.register_tempo_omnibus_wallet(vault_account_id, asset_id, idempotency_key=idempotency_key).result() - print("The response of VaultsApi->register_tempo_omnibus_wallet:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling VaultsApi->register_tempo_omnibus_wallet: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **vault_account_id** | **str**| The ID of the vault account for which to register the Tempo wallet. | - **asset_id** | **str**| The Tempo network asset to register for the vault account. | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**CreateVaultAssetResponse**](CreateVaultAssetResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | OK | * X-Request-ID -
| -**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) - # **set_customer_ref_id_for_address** > VaultActionStatus set_customer_ref_id_for_address(vault_account_id, asset_id, address_id, set_customer_ref_id_for_address_request, idempotency_key=idempotency_key) diff --git a/fireblocks/__init__.py b/fireblocks/__init__.py index e4a4417b..dc18676e 100644 --- a/fireblocks/__init__.py +++ b/fireblocks/__init__.py @@ -14,7 +14,7 @@ Do not edit the class manually. """ # noqa: E501 -__version__ = "34.0.0" +__version__ = "0.0.0" # import apis into sdk package from fireblocks.api.api_user_api import ApiUserApi @@ -65,7 +65,7 @@ from fireblocks.api.tags_api import TagsApi from fireblocks.api.tempo_beta_api import TempoBetaApi from fireblocks.api.tokenization_api import TokenizationApi -from fireblocks.api.trading_beta_api import TradingBetaApi +from fireblocks.api.trading_api import TradingApi from fireblocks.api.transactions_api import TransactionsApi from fireblocks.api.travel_rule_api import TravelRuleApi from fireblocks.api.utxo_management_beta_api import UTXOManagementBetaApi @@ -204,7 +204,6 @@ from fireblocks.models.addresses_filters import AddressesFilters from fireblocks.models.alert_exposure_type_enum import AlertExposureTypeEnum from fireblocks.models.alert_level_enum import AlertLevelEnum -from fireblocks.models.allocation_withdraw_payload import AllocationWithdrawPayload from fireblocks.models.allow_list_payload import AllowListPayload from fireblocks.models.allowlist_entry import AllowlistEntry from fireblocks.models.allowlist_entry_response import AllowlistEntryResponse @@ -330,6 +329,9 @@ from fireblocks.models.blockchain_state_filter import BlockchainStateFilter from fireblocks.models.blockchain_transfer import BlockchainTransfer from fireblocks.models.bps_fee import BpsFee +from fireblocks.models.bulk_proof_of_ownership import BulkProofOfOwnership +from fireblocks.models.bulk_signing_key import BulkSigningKey +from fireblocks.models.bulk_signing_key_job import BulkSigningKeyJob from fireblocks.models.business_entity_type_enum import BusinessEntityTypeEnum from fireblocks.models.business_identification import BusinessIdentification from fireblocks.models.byork_config_response import ByorkConfigResponse @@ -348,9 +350,6 @@ from fireblocks.models.callback_handler_request import CallbackHandlerRequest from fireblocks.models.cancel_transaction_response import CancelTransactionResponse from fireblocks.models.canton_call import CantonCall -from fireblocks.models.canton_call_allocation_withdraw import ( - CantonCallAllocationWithdraw, -) from fireblocks.models.canton_call_allow_list_add import CantonCallAllowListAdd from fireblocks.models.canton_call_allow_list_remove import CantonCallAllowListRemove from fireblocks.models.canton_call_details import CantonCallDetails @@ -535,6 +534,10 @@ from fireblocks.models.create_assets_request import CreateAssetsRequest from fireblocks.models.create_blockchain_request import CreateBlockchainRequest from fireblocks.models.create_blockchain_response import CreateBlockchainResponse +from fireblocks.models.create_bulk_signing_keys import CreateBulkSigningKeys +from fireblocks.models.create_bulk_signing_keys_response import ( + CreateBulkSigningKeysResponse, +) from fireblocks.models.create_config_operation_request import ( CreateConfigOperationRequest, ) @@ -886,6 +889,9 @@ ) from fireblocks.models.get_billing_info_response import GetBillingInfoResponse from fireblocks.models.get_blockchain_by_id_response import GetBlockchainByIdResponse +from fireblocks.models.get_bulk_signing_keys_jobs_response import ( + GetBulkSigningKeysJobsResponse, +) from fireblocks.models.get_byork_verdict_response import GetByorkVerdictResponse from fireblocks.models.get_connected_accounts_credentials_public_key_response import ( GetConnectedAccountsCredentialsPublicKeyResponse, @@ -1130,6 +1136,9 @@ from fireblocks.models.offer_response_allocation_reject import ( OfferResponseAllocationReject, ) +from fireblocks.models.offer_response_allocation_withdraw import ( + OfferResponseAllocationWithdraw, +) from fireblocks.models.offer_response_dtcc_onboarding_accept import ( OfferResponseDtccOnboardingAccept, ) diff --git a/fireblocks/api/__init__.py b/fireblocks/api/__init__.py index 9d68c30d..5bbb48a4 100644 --- a/fireblocks/api/__init__.py +++ b/fireblocks/api/__init__.py @@ -45,7 +45,7 @@ from fireblocks.api.tags_api import TagsApi from fireblocks.api.tempo_beta_api import TempoBetaApi from fireblocks.api.tokenization_api import TokenizationApi -from fireblocks.api.trading_beta_api import TradingBetaApi +from fireblocks.api.trading_api import TradingApi from fireblocks.api.transactions_api import TransactionsApi from fireblocks.api.travel_rule_api import TravelRuleApi from fireblocks.api.utxo_management_beta_api import UTXOManagementBetaApi diff --git a/fireblocks/api/api_user_api.py b/fireblocks/api/api_user_api.py index 0d0ede86..5216f7a3 100644 --- a/fireblocks/api/api_user_api.py +++ b/fireblocks/api/api_user_api.py @@ -115,6 +115,7 @@ def create_api_user( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_api_user", ) def _create_api_user_serialize( @@ -258,6 +259,7 @@ def get_api_users( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_api_users", ) def _get_api_users_serialize( @@ -393,6 +395,7 @@ def issue_api_user_pairing_token( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="issue_api_user_pairing_token", ) def _issue_api_user_pairing_token_serialize( diff --git a/fireblocks/api/approvals_beta_api.py b/fireblocks/api/approvals_beta_api.py index 1381dd9b..3e05933e 100644 --- a/fireblocks/api/approvals_beta_api.py +++ b/fireblocks/api/approvals_beta_api.py @@ -120,6 +120,7 @@ def approve_approval( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="approve_approval", ) def _approve_approval_serialize( @@ -277,6 +278,7 @@ def create_approval_key( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_approval_key", ) def _create_approval_key_serialize( @@ -435,6 +437,7 @@ def delete_approval_key( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="delete_approval_key", ) def _delete_approval_key_serialize( @@ -578,6 +581,7 @@ def get_approval_by_id( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_approval_by_id", ) def _get_approval_by_id_serialize( @@ -725,6 +729,7 @@ def get_approval_keys( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_approval_keys", ) def _get_approval_keys_serialize( @@ -883,6 +888,7 @@ def get_approvals( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_approvals", ) def _get_approvals_serialize( @@ -1043,6 +1049,7 @@ def reject_approval( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="reject_approval", ) def _reject_approval_serialize( diff --git a/fireblocks/api/audit_logs_api.py b/fireblocks/api/audit_logs_api.py index 25d5644c..c773b2db 100644 --- a/fireblocks/api/audit_logs_api.py +++ b/fireblocks/api/audit_logs_api.py @@ -151,6 +151,7 @@ def get_audit_logs( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_audit_logs", ) def _get_audit_logs_serialize( diff --git a/fireblocks/api/blockchain_link_beta_api.py b/fireblocks/api/blockchain_link_beta_api.py index 52af8546..701a5156 100644 --- a/fireblocks/api/blockchain_link_beta_api.py +++ b/fireblocks/api/blockchain_link_beta_api.py @@ -122,6 +122,7 @@ def activate_blockchain_link_chain( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="activate_blockchain_link_chain", ) def _activate_blockchain_link_chain_serialize( @@ -257,6 +258,7 @@ def create_blockchain_link_chain( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_blockchain_link_chain", ) def _create_blockchain_link_chain_serialize( @@ -402,6 +404,7 @@ def delete_blockchain_link_chain( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="delete_blockchain_link_chain", ) def _delete_blockchain_link_chain_serialize( @@ -526,6 +529,7 @@ def get_blockchain_link_billing_info( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_blockchain_link_billing_info", ) def _get_blockchain_link_billing_info_serialize( @@ -652,6 +656,7 @@ def get_blockchain_link_chain( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_blockchain_link_chain", ) def _get_blockchain_link_chain_serialize( @@ -776,6 +781,7 @@ def get_blockchain_link_test_wallet_address( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_blockchain_link_test_wallet_address", ) def _get_blockchain_link_test_wallet_address_serialize( @@ -929,6 +935,7 @@ def list_blockchain_link_chains( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="list_blockchain_link_chains", ) def _list_blockchain_link_chains_serialize( @@ -1101,6 +1108,7 @@ def trigger_blockchain_link_validation( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="trigger_blockchain_link_validation", ) def _trigger_blockchain_link_validation_serialize( @@ -1241,6 +1249,7 @@ def update_blockchain_link_chain( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="update_blockchain_link_chain", ) def _update_blockchain_link_chain_serialize( diff --git a/fireblocks/api/blockchains_assets_api.py b/fireblocks/api/blockchains_assets_api.py index e451a82c..5a80d5d4 100644 --- a/fireblocks/api/blockchains_assets_api.py +++ b/fireblocks/api/blockchains_assets_api.py @@ -123,6 +123,7 @@ def get_asset( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_asset", ) def _get_asset_serialize( @@ -257,6 +258,7 @@ def get_blockchain( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_blockchain", ) def _get_blockchain_serialize( @@ -381,6 +383,7 @@ def get_supported_assets( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_supported_assets", ) def _get_supported_assets_serialize( @@ -539,6 +542,7 @@ def list_assets( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="list_assets", ) def _list_assets_serialize( @@ -729,6 +733,7 @@ def list_blockchains( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="list_blockchains", ) def _list_blockchains_serialize( @@ -894,6 +899,7 @@ def register_new_asset( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="register_new_asset", ) def _register_new_asset_serialize( @@ -1049,6 +1055,7 @@ def set_asset_price( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="set_asset_price", ) def _set_asset_price_serialize( @@ -1207,6 +1214,7 @@ def update_asset_user_metadata( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="update_asset_user_metadata", ) def _update_asset_user_metadata_serialize( diff --git a/fireblocks/api/compliance_api.py b/fireblocks/api/compliance_api.py index cfbfdd73..17f89867 100644 --- a/fireblocks/api/compliance_api.py +++ b/fireblocks/api/compliance_api.py @@ -145,6 +145,7 @@ def activate_ars_config( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="activate_ars_config", ) def _activate_ars_config_serialize( @@ -274,6 +275,7 @@ def activate_byork_config( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="activate_byork_config", ) def _activate_byork_config_serialize( @@ -407,6 +409,7 @@ def add_address_registry_vault_opt_outs( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="add_address_registry_vault_opt_outs", ) def _add_address_registry_vault_opt_outs_serialize( @@ -561,6 +564,7 @@ def assign_vaults_to_legal_entity( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="assign_vaults_to_legal_entity", ) def _assign_vaults_to_legal_entity_serialize( @@ -718,6 +722,7 @@ def create_address_registry_proof_of_ownership( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_address_registry_proof_of_ownership", ) def _create_address_registry_proof_of_ownership_serialize( @@ -866,6 +871,7 @@ def create_counterparty_group( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_counterparty_group", ) def _create_counterparty_group_serialize( @@ -1011,6 +1017,7 @@ def deactivate_ars_config( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="deactivate_ars_config", ) def _deactivate_ars_config_serialize( @@ -1140,6 +1147,7 @@ def deactivate_byork_config( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="deactivate_byork_config", ) def _deactivate_byork_config_serialize( @@ -1270,6 +1278,7 @@ def delete_counterparty_group( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="delete_counterparty_group", ) def _delete_counterparty_group_serialize( @@ -1401,6 +1410,7 @@ def delete_legal_entity( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="delete_legal_entity", ) def _delete_legal_entity_serialize( @@ -1525,6 +1535,7 @@ def get_address_registry_tenant_participation_status( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_address_registry_tenant_participation_status", ) def _get_address_registry_tenant_participation_status_serialize( @@ -1651,6 +1662,7 @@ def get_address_registry_vault_opt_out( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_address_registry_vault_opt_out", ) def _get_address_registry_vault_opt_out_serialize( @@ -1774,6 +1786,7 @@ def get_aml_post_screening_policy( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_aml_post_screening_policy", ) def _get_aml_post_screening_policy_serialize( @@ -1894,6 +1907,7 @@ def get_aml_screening_policy( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_aml_screening_policy", ) def _get_aml_screening_policy_serialize( @@ -2016,6 +2030,7 @@ def get_byork_config( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_byork_config", ) def _get_byork_config_serialize( @@ -2145,6 +2160,7 @@ def get_byork_verdict( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_byork_verdict", ) def _get_byork_verdict_serialize( @@ -2277,6 +2293,7 @@ def get_counterparty_group( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_counterparty_group", ) def _get_counterparty_group_serialize( @@ -2407,6 +2424,7 @@ def get_legal_entity( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_legal_entity", ) def _get_legal_entity_serialize( @@ -2540,6 +2558,7 @@ def get_legal_entity_for_address( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_legal_entity_for_address", ) def _get_legal_entity_for_address_serialize( @@ -2663,6 +2682,7 @@ def get_post_screening_policy( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_post_screening_policy", ) def _get_post_screening_policy_serialize( @@ -2789,6 +2809,7 @@ def get_screening_full_details( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_screening_full_details", ) def _get_screening_full_details_serialize( @@ -2912,6 +2933,7 @@ def get_screening_policy( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_screening_policy", ) def _get_screening_policy_serialize( @@ -3046,6 +3068,7 @@ def list_address_registry_vault_opt_outs( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="list_address_registry_vault_opt_outs", ) def _list_address_registry_vault_opt_outs_serialize( @@ -3190,6 +3213,7 @@ def list_counterparty_groups( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="list_counterparty_groups", ) def _list_counterparty_groups_serialize( @@ -3333,6 +3357,7 @@ def list_legal_entities( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="list_legal_entities", ) def _list_legal_entities_serialize( @@ -3483,6 +3508,7 @@ def list_vaults_for_legal_entity( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="list_vaults_for_legal_entity", ) def _list_vaults_for_legal_entity_serialize( @@ -3621,6 +3647,7 @@ def opt_in_address_registry_tenant( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="opt_in_address_registry_tenant", ) def _opt_in_address_registry_tenant_serialize( @@ -3745,6 +3772,7 @@ def opt_out_address_registry_tenant( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="opt_out_address_registry_tenant", ) def _opt_out_address_registry_tenant_serialize( @@ -3878,6 +3906,7 @@ def register_legal_entity( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="register_legal_entity", ) def _register_legal_entity_serialize( @@ -4023,6 +4052,7 @@ def remove_address_registry_vault_opt_out( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="remove_address_registry_vault_opt_out", ) def _remove_address_registry_vault_opt_out_serialize( @@ -4147,6 +4177,7 @@ def remove_all_address_registry_vault_opt_outs( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="remove_all_address_registry_vault_opt_outs", ) def _remove_all_address_registry_vault_opt_outs_serialize( @@ -4281,6 +4312,7 @@ def rescreen_rejected_transaction( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="rescreen_rejected_transaction", ) def _rescreen_rejected_transaction_serialize( @@ -4433,6 +4465,7 @@ def retry_rejected_transaction_bypass_screening_checks( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="retry_rejected_transaction_bypass_screening_checks", ) def _retry_rejected_transaction_bypass_screening_checks_serialize( @@ -4571,6 +4604,7 @@ def set_aml_verdict( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="set_aml_verdict", ) def _set_aml_verdict_serialize( @@ -4720,6 +4754,7 @@ def set_byork_timeouts( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="set_byork_timeouts", ) def _set_byork_timeouts_serialize( @@ -4872,6 +4907,7 @@ def set_byork_verdict( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="set_byork_verdict", ) def _set_byork_verdict_serialize( @@ -5015,6 +5051,7 @@ def update_aml_screening_configuration( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="update_aml_screening_configuration", ) def _update_aml_screening_configuration_serialize( @@ -5153,6 +5190,7 @@ def update_counterparty_group( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="update_counterparty_group", ) def _update_counterparty_group_serialize( @@ -5311,6 +5349,7 @@ def update_legal_entity( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="update_legal_entity", ) def _update_legal_entity_serialize( @@ -5461,6 +5500,7 @@ def update_screening_configuration( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="update_screening_configuration", ) def _update_screening_configuration_serialize( @@ -5604,6 +5644,7 @@ def update_travel_rule_config( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="update_travel_rule_config", ) def _update_travel_rule_config_serialize( @@ -5737,6 +5778,7 @@ def verify_address_registry_proof_of_ownership( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="verify_address_registry_proof_of_ownership", ) def _verify_address_registry_proof_of_ownership_serialize( diff --git a/fireblocks/api/compliance_orchestrator_beta_api.py b/fireblocks/api/compliance_orchestrator_beta_api.py index f304a32e..88abc0ce 100644 --- a/fireblocks/api/compliance_orchestrator_beta_api.py +++ b/fireblocks/api/compliance_orchestrator_beta_api.py @@ -113,6 +113,7 @@ def get_screening_result( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_screening_result", ) def _get_screening_result_serialize( @@ -244,6 +245,7 @@ def get_workflow( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_workflow", ) def _get_workflow_serialize( @@ -379,6 +381,7 @@ def trigger_screening( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="trigger_screening", ) def _trigger_screening_serialize( @@ -534,6 +537,7 @@ def update_workflow_status( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="update_workflow_status", ) def _update_workflow_status_serialize( diff --git a/fireblocks/api/compliance_screening_configuration_api.py b/fireblocks/api/compliance_screening_configuration_api.py index 0190ef5a..7de5ebfb 100644 --- a/fireblocks/api/compliance_screening_configuration_api.py +++ b/fireblocks/api/compliance_screening_configuration_api.py @@ -97,6 +97,7 @@ def get_aml_screening_configuration( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_aml_screening_configuration", ) def _get_aml_screening_configuration_serialize( @@ -217,6 +218,7 @@ def get_screening_configuration( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_screening_configuration", ) def _get_screening_configuration_serialize( diff --git a/fireblocks/api/connected_accounts_api.py b/fireblocks/api/connected_accounts_api.py index 859e639b..956844ba 100644 --- a/fireblocks/api/connected_accounts_api.py +++ b/fireblocks/api/connected_accounts_api.py @@ -128,6 +128,7 @@ def add_connected_account( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="add_connected_account", ) def _add_connected_account_serialize( @@ -273,6 +274,7 @@ def disconnect_connected_account( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="disconnect_connected_account", ) def _disconnect_connected_account_serialize( @@ -402,6 +404,7 @@ def get_connected_account( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_connected_account", ) def _get_connected_account_serialize( @@ -560,6 +563,7 @@ def get_connected_account_allowlist( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_connected_account_allowlist", ) def _get_connected_account_allowlist_serialize( @@ -730,6 +734,7 @@ def get_connected_account_allowlist_entry( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_connected_account_allowlist_entry", ) def _get_connected_account_allowlist_entry_serialize( @@ -870,6 +875,7 @@ def get_connected_account_balances( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_connected_account_balances", ) def _get_connected_account_balances_serialize( @@ -1019,6 +1025,7 @@ def get_connected_account_rates( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_connected_account_rates", ) def _get_connected_account_rates_serialize( @@ -1166,6 +1173,7 @@ def get_connected_account_trading_pairs( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_connected_account_trading_pairs", ) def _get_connected_account_trading_pairs_serialize( @@ -1312,6 +1320,7 @@ def get_connected_accounts( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_connected_accounts", ) def _get_connected_accounts_serialize( @@ -1448,6 +1457,7 @@ def get_connected_accounts_credentials_public_key( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_connected_accounts_credentials_public_key", ) def _get_connected_accounts_credentials_public_key_serialize( @@ -1587,6 +1597,7 @@ def rename_connected_account( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="rename_connected_account", ) def _rename_connected_account_serialize( @@ -1739,6 +1750,7 @@ def sync_connected_account_allowlist( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="sync_connected_account_allowlist", ) def _sync_connected_account_allowlist_serialize( @@ -1884,6 +1896,7 @@ def update_connected_account_credentials( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="update_connected_account_credentials", ) def _update_connected_account_credentials_serialize( diff --git a/fireblocks/api/console_user_api.py b/fireblocks/api/console_user_api.py index efbd77e9..ed40f05b 100644 --- a/fireblocks/api/console_user_api.py +++ b/fireblocks/api/console_user_api.py @@ -115,6 +115,7 @@ def create_console_user( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_console_user", ) def _create_console_user_serialize( @@ -216,7 +217,7 @@ def delete_console_user( ) -> Future[ApiResponse[ConsoleUser]]: """Request deletion of a console user - Requests deletion of a console user. The request is asynchronous: it goes through the workspace's configured \"Delete users\" approval policy (Settings > Quorums), exactly as deleting a user from the console does, and the user is removed only once that approval completes. - Track progress by polling GET /management/users; deletion is complete when the user is disabled. - Please note that this endpoint is available only for API keys with Admin/Non Signing Admin/Security Admin permissions. Endpoint Permission: Admin, Non-Signing Admin, Security Admin. **Note:** This endpoint is currently in beta and might be subject to changes. + Requests deletion of a console user. The request is asynchronous: it goes through the workspace's configured \"Delete users\" approval policy (Settings > Quorums), exactly as deleting a user from the console does, and the user is removed only once that approval completes. - The workspace must have a \"Delete users\" approval policy (admin quorum or approval group). If \"Delete users\" is Owner-only, which is the default, the request is refused with OWNER_ONLY (2760) and the Owner deletes users in the Console. With an admin quorum, the requesting API user's own approval counts toward the quorum. - Track progress by polling GET /management/users; deletion is complete when the user is disabled. - Please note that this endpoint is available only for API keys with Admin/Non Signing Admin/Security Admin permissions. Endpoint Permission: Admin, Non-Signing Admin, Security Admin. **Note:** This endpoint is currently in beta and might be subject to changes. :param id: The ID of the console user to delete (required) :type id: str @@ -271,6 +272,7 @@ def delete_console_user( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="delete_console_user", ) def _delete_console_user_serialize( @@ -403,6 +405,7 @@ def get_console_users( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_console_users", ) def _get_console_users_serialize( diff --git a/fireblocks/api/contacts_api.py b/fireblocks/api/contacts_api.py index 886c8543..bf500a2f 100644 --- a/fireblocks/api/contacts_api.py +++ b/fireblocks/api/contacts_api.py @@ -149,6 +149,7 @@ def get_contacts( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_contacts", ) def _get_contacts_serialize( diff --git a/fireblocks/api/contract_interactions_api.py b/fireblocks/api/contract_interactions_api.py index 1441d2ef..462b04c2 100644 --- a/fireblocks/api/contract_interactions_api.py +++ b/fireblocks/api/contract_interactions_api.py @@ -128,6 +128,7 @@ def decode_contract_data( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="decode_contract_data", ) def _decode_contract_data_serialize( @@ -288,6 +289,7 @@ def get_contract_address( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_contract_address", ) def _get_contract_address_serialize( @@ -432,6 +434,7 @@ def get_deployed_contract_abi( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_deployed_contract_abi", ) def _get_deployed_contract_abi_serialize( @@ -572,6 +575,7 @@ def get_transaction_receipt( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_transaction_receipt", ) def _get_transaction_receipt_serialize( @@ -717,6 +721,7 @@ def read_call_function( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="read_call_function", ) def _read_call_function_serialize( @@ -881,6 +886,7 @@ def write_call_function( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="write_call_function", ) def _write_call_function_serialize( diff --git a/fireblocks/api/contract_templates_api.py b/fireblocks/api/contract_templates_api.py index beb74782..378f3ed1 100644 --- a/fireblocks/api/contract_templates_api.py +++ b/fireblocks/api/contract_templates_api.py @@ -113,6 +113,7 @@ def delete_contract_template_by_id( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="delete_contract_template_by_id", ) def _delete_contract_template_by_id_serialize( @@ -251,6 +252,7 @@ def deploy_contract( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="deploy_contract", ) def _deploy_contract_serialize( @@ -404,6 +406,7 @@ def get_constructor_by_contract_template_id( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_constructor_by_contract_template_id", ) def _get_constructor_by_contract_template_id_serialize( @@ -539,6 +542,7 @@ def get_contract_template_by_id( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_contract_template_by_id", ) def _get_contract_template_by_id_serialize( @@ -687,6 +691,7 @@ def get_contract_templates( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_contract_templates", ) def _get_contract_templates_serialize( @@ -849,6 +854,7 @@ def get_function_abi_by_contract_template_id( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_function_abi_by_contract_template_id", ) def _get_function_abi_by_contract_template_id_serialize( @@ -984,6 +990,7 @@ def get_supported_blockchains_by_template_id( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_supported_blockchains_by_template_id", ) def _get_supported_blockchains_by_template_id_serialize( @@ -1116,6 +1123,7 @@ def upload_contract_template( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="upload_contract_template", ) def _upload_contract_template_serialize( diff --git a/fireblocks/api/contracts_api.py b/fireblocks/api/contracts_api.py index 3b16940f..8120bbde 100644 --- a/fireblocks/api/contracts_api.py +++ b/fireblocks/api/contracts_api.py @@ -122,6 +122,7 @@ def add_contract_asset( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="add_contract_asset", ) def _add_contract_asset_serialize( @@ -276,6 +277,7 @@ def create_contract( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_contract", ) def _create_contract_serialize( @@ -421,6 +423,7 @@ def delete_contract( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="delete_contract", ) def _delete_contract_serialize( @@ -555,6 +558,7 @@ def delete_contract_asset( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="delete_contract_asset", ) def _delete_contract_asset_serialize( @@ -687,6 +691,7 @@ def get_contract( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_contract", ) def _get_contract_serialize( @@ -821,6 +826,7 @@ def get_contract_asset( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_contract_asset", ) def _get_contract_asset_serialize( @@ -948,6 +954,7 @@ def get_contracts( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_contracts", ) def _get_contracts_serialize( diff --git a/fireblocks/api/cosigners_beta_api.py b/fireblocks/api/cosigners_beta_api.py index ca2f44c2..dca61a40 100644 --- a/fireblocks/api/cosigners_beta_api.py +++ b/fireblocks/api/cosigners_beta_api.py @@ -120,6 +120,7 @@ def add_cosigner( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="add_cosigner", ) def _add_cosigner_serialize( @@ -270,6 +271,7 @@ def get_api_key( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_api_key", ) def _get_api_key_serialize( @@ -414,6 +416,7 @@ def get_api_keys( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_api_keys", ) def _get_api_keys_serialize( @@ -558,6 +561,7 @@ def get_cosigner( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_cosigner", ) def _get_cosigner_serialize( @@ -694,6 +698,7 @@ def get_cosigners( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_cosigners", ) def _get_cosigners_serialize( @@ -845,6 +850,7 @@ def get_request_status( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_request_status", ) def _get_request_status_serialize( @@ -993,6 +999,7 @@ def pair_api_key( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="pair_api_key", ) def _pair_api_key_serialize( @@ -1148,6 +1155,7 @@ def rename_cosigner( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="rename_cosigner", ) def _rename_cosigner_serialize( @@ -1298,6 +1306,7 @@ def unpair_api_key( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="unpair_api_key", ) def _unpair_api_key_serialize( @@ -1439,6 +1448,7 @@ def update_callback_handler( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="update_callback_handler", ) def _update_callback_handler_serialize( diff --git a/fireblocks/api/deployed_contracts_api.py b/fireblocks/api/deployed_contracts_api.py index 559afec1..884c939d 100644 --- a/fireblocks/api/deployed_contracts_api.py +++ b/fireblocks/api/deployed_contracts_api.py @@ -114,6 +114,7 @@ def add_contract_abi( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="add_contract_abi", ) def _add_contract_abi_serialize( @@ -263,6 +264,7 @@ def fetch_contract_abi( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="fetch_contract_abi", ) def _fetch_contract_abi_serialize( @@ -413,6 +415,7 @@ def get_deployed_contract_by_address( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_deployed_contract_by_address", ) def _get_deployed_contract_by_address_serialize( @@ -545,6 +548,7 @@ def get_deployed_contract_by_id( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_deployed_contract_by_id", ) def _get_deployed_contract_by_id_serialize( @@ -689,6 +693,7 @@ def get_deployed_contracts( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_deployed_contracts", ) def _get_deployed_contracts_serialize( diff --git a/fireblocks/api/earn_api.py b/fireblocks/api/earn_api.py index f7d4b7a1..df859f77 100644 --- a/fireblocks/api/earn_api.py +++ b/fireblocks/api/earn_api.py @@ -116,6 +116,7 @@ def approve_terms_of_service( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="approve_terms_of_service", ) def _approve_terms_of_service_serialize( @@ -253,6 +254,7 @@ def create_earn_action( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_earn_action", ) def _create_earn_action_serialize( @@ -402,6 +404,7 @@ def get_earn_action( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_earn_action", ) def _get_earn_action_serialize( @@ -546,6 +549,7 @@ def get_earn_actions( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_earn_actions", ) def _get_earn_actions_serialize( @@ -707,6 +711,7 @@ def get_earn_opportunities( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_earn_opportunities", ) def _get_earn_opportunities_serialize( @@ -876,6 +881,7 @@ def get_earn_positions( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_earn_positions", ) def _get_earn_positions_serialize( @@ -1047,6 +1053,7 @@ def get_earn_providers( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_earn_providers", ) def _get_earn_providers_serialize( diff --git a/fireblocks/api/embedded_wallets_api.py b/fireblocks/api/embedded_wallets_api.py index 11839922..0ecc1786 100644 --- a/fireblocks/api/embedded_wallets_api.py +++ b/fireblocks/api/embedded_wallets_api.py @@ -135,6 +135,7 @@ def add_embedded_wallet_asset( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="add_embedded_wallet_asset", ) def _add_embedded_wallet_asset_serialize( @@ -277,6 +278,7 @@ def assign_embedded_wallet( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="assign_embedded_wallet", ) def _assign_embedded_wallet_serialize( @@ -408,6 +410,7 @@ def create_embedded_wallet( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_embedded_wallet", ) def _create_embedded_wallet_serialize( @@ -541,6 +544,7 @@ def create_embedded_wallet_account( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_embedded_wallet_account", ) def _create_embedded_wallet_account_serialize( @@ -673,6 +677,7 @@ def get_embedded_wallet( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_embedded_wallet", ) def _get_embedded_wallet_serialize( @@ -807,6 +812,7 @@ def get_embedded_wallet_account( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_embedded_wallet_account", ) def _get_embedded_wallet_account_serialize( @@ -969,6 +975,7 @@ def get_embedded_wallet_addresses( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_embedded_wallet_addresses", ) def _get_embedded_wallet_addresses_serialize( @@ -1139,6 +1146,7 @@ def get_embedded_wallet_asset( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_embedded_wallet_asset", ) def _get_embedded_wallet_asset_serialize( @@ -1284,6 +1292,7 @@ def get_embedded_wallet_asset_balance( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_embedded_wallet_asset_balance", ) def _get_embedded_wallet_asset_balance_serialize( @@ -1440,6 +1449,7 @@ def get_embedded_wallet_assets( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_embedded_wallet_assets", ) def _get_embedded_wallet_assets_serialize( @@ -1598,6 +1608,7 @@ def get_embedded_wallet_device( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_embedded_wallet_device", ) def _get_embedded_wallet_device_serialize( @@ -1735,6 +1746,7 @@ def get_embedded_wallet_device_setup_state( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_embedded_wallet_device_setup_state", ) def _get_embedded_wallet_device_setup_state_serialize( @@ -1884,6 +1896,7 @@ def get_embedded_wallet_devices_paginated( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_embedded_wallet_devices_paginated", ) def _get_embedded_wallet_devices_paginated_serialize( @@ -2034,6 +2047,7 @@ def get_embedded_wallet_latest_backup( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_embedded_wallet_latest_backup", ) def _get_embedded_wallet_latest_backup_serialize( @@ -2190,6 +2204,7 @@ def get_embedded_wallet_public_key_info_for_address( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_embedded_wallet_public_key_info_for_address", ) def _get_embedded_wallet_public_key_info_for_address_serialize( @@ -2339,6 +2354,7 @@ def get_embedded_wallet_setup_status( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_embedded_wallet_setup_status", ) def _get_embedded_wallet_setup_status_serialize( @@ -2475,6 +2491,7 @@ def get_embedded_wallet_supported_assets( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_embedded_wallet_supported_assets", ) def _get_embedded_wallet_supported_assets_serialize( @@ -2631,6 +2648,7 @@ def get_embedded_wallets( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_embedded_wallets", ) def _get_embedded_wallets_serialize( @@ -2801,6 +2819,7 @@ def get_public_key_info_ncw( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_public_key_info_ncw", ) def _get_public_key_info_ncw_serialize( @@ -2962,6 +2981,7 @@ def refresh_embedded_wallet_asset_balance( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="refresh_embedded_wallet_asset_balance", ) def _refresh_embedded_wallet_asset_balance_serialize( @@ -3113,6 +3133,7 @@ def update_embedded_wallet_device_status( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="update_embedded_wallet_device_status", ) def _update_embedded_wallet_device_status_serialize( @@ -3272,6 +3293,7 @@ def update_embedded_wallet_status( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="update_embedded_wallet_status", ) def _update_embedded_wallet_status_serialize( diff --git a/fireblocks/api/exchange_accounts_api.py b/fireblocks/api/exchange_accounts_api.py index 3fc0c4ad..18e95faf 100644 --- a/fireblocks/api/exchange_accounts_api.py +++ b/fireblocks/api/exchange_accounts_api.py @@ -118,6 +118,7 @@ def add_exchange_account( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="add_exchange_account", ) def _add_exchange_account_serialize( @@ -271,6 +272,7 @@ def convert_assets( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="convert_assets", ) def _convert_assets_serialize( @@ -419,6 +421,7 @@ def get_exchange_account( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_exchange_account", ) def _get_exchange_account_serialize( @@ -553,6 +556,7 @@ def get_exchange_account_asset( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_exchange_account_asset", ) def _get_exchange_account_asset_serialize( @@ -680,6 +684,7 @@ def get_exchange_accounts_credentials_public_key( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_exchange_accounts_credentials_public_key", ) def _get_exchange_accounts_credentials_public_key_serialize( @@ -813,6 +818,7 @@ def get_paged_exchange_accounts( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_paged_exchange_accounts", ) def _get_paged_exchange_accounts_serialize( @@ -962,6 +968,7 @@ def internal_transfer( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="internal_transfer", ) def _internal_transfer_serialize( diff --git a/fireblocks/api/external_wallets_api.py b/fireblocks/api/external_wallets_api.py index 7422649c..4dcac346 100644 --- a/fireblocks/api/external_wallets_api.py +++ b/fireblocks/api/external_wallets_api.py @@ -123,6 +123,7 @@ def add_asset_to_external_wallet( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="add_asset_to_external_wallet", ) def _add_asset_to_external_wallet_serialize( @@ -277,6 +278,7 @@ def create_external_wallet( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_external_wallet", ) def _create_external_wallet_serialize( @@ -422,6 +424,7 @@ def delete_external_wallet( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="delete_external_wallet", ) def _delete_external_wallet_serialize( @@ -551,6 +554,7 @@ def get_external_wallet( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_external_wallet", ) def _get_external_wallet_serialize( @@ -685,6 +689,7 @@ def get_external_wallet_asset( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_external_wallet_asset", ) def _get_external_wallet_asset_serialize( @@ -812,6 +817,7 @@ def get_external_wallets( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_external_wallets", ) def _get_external_wallets_serialize( @@ -943,6 +949,7 @@ def remove_asset_from_external_wallet( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="remove_asset_from_external_wallet", ) def _remove_asset_from_external_wallet_serialize( @@ -1083,6 +1090,7 @@ def set_external_wallet_customer_ref_id( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="set_external_wallet_customer_ref_id", ) def _set_external_wallet_customer_ref_id_serialize( diff --git a/fireblocks/api/fiat_accounts_api.py b/fireblocks/api/fiat_accounts_api.py index d447fe40..0e60cdf1 100644 --- a/fireblocks/api/fiat_accounts_api.py +++ b/fireblocks/api/fiat_accounts_api.py @@ -117,6 +117,7 @@ def deposit_funds_from_linked_dda( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="deposit_funds_from_linked_dda", ) def _deposit_funds_from_linked_dda_serialize( @@ -265,6 +266,7 @@ def get_fiat_account( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_fiat_account", ) def _get_fiat_account_serialize( @@ -389,6 +391,7 @@ def get_fiat_accounts( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_fiat_accounts", ) def _get_fiat_accounts_serialize( @@ -523,6 +526,7 @@ def redeem_funds_to_linked_dda( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="redeem_funds_to_linked_dda", ) def _redeem_funds_to_linked_dda_serialize( diff --git a/fireblocks/api/gas_stations_api.py b/fireblocks/api/gas_stations_api.py index 20c56af6..5d1ed2c4 100644 --- a/fireblocks/api/gas_stations_api.py +++ b/fireblocks/api/gas_stations_api.py @@ -108,6 +108,7 @@ def get_gas_station_by_asset_id( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_gas_station_by_asset_id", ) def _get_gas_station_by_asset_id_serialize( @@ -232,6 +233,7 @@ def get_gas_station_info( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_gas_station_info", ) def _get_gas_station_info_serialize( @@ -361,6 +363,7 @@ def update_gas_station_configuration( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="update_gas_station_configuration", ) def _update_gas_station_configuration_serialize( @@ -514,6 +517,7 @@ def update_gas_station_configuration_by_asset_id( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="update_gas_station_configuration_by_asset_id", ) def _update_gas_station_configuration_by_asset_id_serialize( diff --git a/fireblocks/api/genie_beta_api.py b/fireblocks/api/genie_beta_api.py index 99013e2e..c2b9e8e6 100644 --- a/fireblocks/api/genie_beta_api.py +++ b/fireblocks/api/genie_beta_api.py @@ -107,6 +107,7 @@ def create_genie_session( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_genie_session", ) def _create_genie_session_serialize( @@ -244,6 +245,7 @@ def send_genie_message( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="send_genie_message", ) def _send_genie_message_serialize( diff --git a/fireblocks/api/internal_wallets_api.py b/fireblocks/api/internal_wallets_api.py index 60f47f8f..82e28cca 100644 --- a/fireblocks/api/internal_wallets_api.py +++ b/fireblocks/api/internal_wallets_api.py @@ -114,6 +114,7 @@ def create_internal_wallet( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_internal_wallet", ) def _create_internal_wallet_serialize( @@ -272,6 +273,7 @@ def create_internal_wallet_asset( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_internal_wallet_asset", ) def _create_internal_wallet_asset_serialize( @@ -423,6 +425,7 @@ def delete_internal_wallet( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="delete_internal_wallet", ) def _delete_internal_wallet_serialize( @@ -557,6 +560,7 @@ def delete_internal_wallet_asset( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="delete_internal_wallet_asset", ) def _delete_internal_wallet_asset_serialize( @@ -689,6 +693,7 @@ def get_internal_wallet( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_internal_wallet", ) def _get_internal_wallet_serialize( @@ -823,6 +828,7 @@ def get_internal_wallet_asset( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_internal_wallet_asset", ) def _get_internal_wallet_asset_serialize( @@ -963,6 +969,7 @@ def get_internal_wallet_assets_paginated( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_internal_wallet_assets_paginated", ) def _get_internal_wallet_assets_paginated_serialize( @@ -1097,6 +1104,7 @@ def get_internal_wallets( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_internal_wallets", ) def _get_internal_wallets_serialize( @@ -1231,6 +1239,7 @@ def set_customer_ref_id_for_internal_wallet( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="set_customer_ref_id_for_internal_wallet", ) def _set_customer_ref_id_for_internal_wallet_serialize( diff --git a/fireblocks/api/key_link_beta_api.py b/fireblocks/api/key_link_beta_api.py index d77481ee..3e5f7815 100644 --- a/fireblocks/api/key_link_beta_api.py +++ b/fireblocks/api/key_link_beta_api.py @@ -21,9 +21,13 @@ from pydantic import Field, StrictBool, StrictFloat, StrictInt, StrictStr, field_validator from typing import Optional, Union from typing_extensions import Annotated +from fireblocks.models.bulk_signing_key_job import BulkSigningKeyJob +from fireblocks.models.create_bulk_signing_keys import CreateBulkSigningKeys +from fireblocks.models.create_bulk_signing_keys_response import CreateBulkSigningKeysResponse from fireblocks.models.create_signing_key_dto import CreateSigningKeyDto from fireblocks.models.create_validation_key_dto import CreateValidationKeyDto from fireblocks.models.create_validation_key_response_dto import CreateValidationKeyResponseDto +from fireblocks.models.get_bulk_signing_keys_jobs_response import GetBulkSigningKeysJobsResponse from fireblocks.models.get_signing_key_response_dto import GetSigningKeyResponseDto from fireblocks.models.get_validation_key_response_dto import GetValidationKeyResponseDto from fireblocks.models.modify_signing_key_agent_id_dto import ModifySigningKeyAgentIdDto @@ -51,6 +55,156 @@ def __init__(self, api_client=None) -> None: self.api_client = api_client + @validate_call + def create_bulk_signing_keys( + self, + create_bulk_signing_keys: CreateBulkSigningKeys, + idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = 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[CreateBulkSigningKeysResponse]]: + """Register signing keys in bulk + + Accepts a set of signing keys certified by a single validation key and queues them for registration in the background. Returns a job id to poll. A workspace can have one bulk registration at a time; submitting another while one is QUEUED or IN_PROGRESS is rejected with 409. Bulk registrations from different workspaces share a limited number of slots, so a job may wait QUEUED behind another workspace's before it starts. Keys already registered in the workspace are recognized and skipped, so resubmitting the same request after a failure is safe and only processes what is missing. Every key must carry its own proof of ownership; a bulk registration has no interactive step in which one can arrive later. + + :param create_bulk_signing_keys: (required) + :type create_bulk_signing_keys: CreateBulkSigningKeys + :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. + :type idempotency_key: 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._create_bulk_signing_keys_serialize( + create_bulk_signing_keys=create_bulk_signing_keys, + idempotency_key=idempotency_key, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '202': "CreateBulkSigningKeysResponse", + '409': "ErrorSchema", + 'default': "ErrorSchema", + } + + return self.api_client.call_api( + *_param, + _request_timeout=_request_timeout, + _response_types_map=_response_types_map, + _operation_id="create_bulk_signing_keys", + ) + + def _create_bulk_signing_keys_serialize( + self, + create_bulk_signing_keys, + idempotency_key, + _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 + # process the header parameters + if idempotency_key is not None: + _header_params['Idempotency-Key'] = idempotency_key + # process the form parameters + # process the body parameter + if create_bulk_signing_keys is not None: + _body_params = create_bulk_signing_keys + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/key_link/signing_keys/bulk', + 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 create_signing_key( self, @@ -118,6 +272,7 @@ def create_signing_key( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_signing_key", ) def _create_signing_key_serialize( @@ -266,6 +421,7 @@ def create_validation_key( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_validation_key", ) def _create_validation_key_serialize( @@ -415,6 +571,7 @@ def disable_validation_key( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="disable_validation_key", ) def _disable_validation_key_serialize( @@ -496,6 +653,276 @@ def _disable_validation_key_serialize( + @validate_call + def get_bulk_signing_keys_job( + self, + job_id: Annotated[StrictStr, Field(description="The id of the bulk registration job")], + _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[BulkSigningKeyJob]]: + """Get a bulk registration job + + Returns the progress and outcome of a bulk registration job. `created + alreadyRegistered` reaching `total` means every submitted key is present. + + :param job_id: The id of the bulk registration job (required) + :type job_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_bulk_signing_keys_job", param_name="job_id", param_value=job_id) + + _param = self._get_bulk_signing_keys_job_serialize( + job_id=job_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "BulkSigningKeyJob", + 'default': "ErrorSchema", + } + + return self.api_client.call_api( + *_param, + _request_timeout=_request_timeout, + _response_types_map=_response_types_map, + _operation_id="get_bulk_signing_keys_job", + ) + + def _get_bulk_signing_keys_job_serialize( + self, + job_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 job_id is not None: + _path_params['jobId'] = job_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='/key_link/signing_keys/bulk/jobs/{jobId}', + 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_bulk_signing_keys_jobs( + self, + page_cursor: Annotated[Optional[StrictStr], Field(description="Cursor to the next page")] = None, + page_size: Annotated[Optional[Annotated[int, Field(le=50, strict=True, ge=1)]], Field(description="Amount of results to return in the next page")] = 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[GetBulkSigningKeysJobsResponse]]: + """Get bulk registration jobs + + Returns the workspace's bulk registration jobs, newest first, a page at a time. + + :param page_cursor: Cursor to the next page + :type page_cursor: str + :param page_size: Amount of results to return in the next page + :type page_size: int + :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_bulk_signing_keys_jobs_serialize( + page_cursor=page_cursor, + page_size=page_size, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "GetBulkSigningKeysJobsResponse", + 'default': "ErrorSchema", + } + + return self.api_client.call_api( + *_param, + _request_timeout=_request_timeout, + _response_types_map=_response_types_map, + _operation_id="get_bulk_signing_keys_jobs", + ) + + def _get_bulk_signing_keys_jobs_serialize( + self, + page_cursor, + page_size, + _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 page_cursor is not None: + + _query_params.append(('pageCursor', page_cursor)) + + if page_size is not None: + + _query_params.append(('pageSize', page_size)) + + # 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='/key_link/signing_keys/bulk/jobs', + 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_signing_key( self, @@ -560,6 +987,7 @@ def get_signing_key( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_signing_key", ) def _get_signing_key_serialize( @@ -728,6 +1156,7 @@ def get_signing_keys_list( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_signing_keys_list", ) def _get_signing_keys_list_serialize( @@ -909,6 +1338,7 @@ def get_validation_key( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_validation_key", ) def _get_validation_key_serialize( @@ -1049,6 +1479,7 @@ def get_validation_keys_list( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_validation_keys_list", ) def _get_validation_keys_list_serialize( @@ -1199,6 +1630,7 @@ def set_agent_id( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="set_agent_id", ) def _set_agent_id_serialize( @@ -1348,6 +1780,7 @@ def update_signing_key( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="update_signing_key", ) def _update_signing_key_serialize( diff --git a/fireblocks/api/keys_beta_api.py b/fireblocks/api/keys_beta_api.py index 9047fd1e..fa2f28fc 100644 --- a/fireblocks/api/keys_beta_api.py +++ b/fireblocks/api/keys_beta_api.py @@ -100,6 +100,7 @@ def get_mpc_keys_list( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_mpc_keys_list", ) def _get_mpc_keys_list_serialize( @@ -226,6 +227,7 @@ def get_mpc_keys_list_by_user( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_mpc_keys_list_by_user", ) def _get_mpc_keys_list_by_user_serialize( diff --git a/fireblocks/api/network_connections_api.py b/fireblocks/api/network_connections_api.py index 2295854a..66d8123f 100644 --- a/fireblocks/api/network_connections_api.py +++ b/fireblocks/api/network_connections_api.py @@ -124,6 +124,7 @@ def check_third_party_routing( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="check_third_party_routing", ) def _check_third_party_routing_serialize( @@ -259,6 +260,7 @@ def create_network_connection( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_network_connection", ) def _create_network_connection_serialize( @@ -407,6 +409,7 @@ def create_network_id( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_network_id", ) def _create_network_id_serialize( @@ -552,6 +555,7 @@ def delete_network_connection( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="delete_network_connection", ) def _delete_network_connection_serialize( @@ -681,6 +685,7 @@ def delete_network_id( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="delete_network_id", ) def _delete_network_id_serialize( @@ -810,6 +815,7 @@ def get_network( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_network", ) def _get_network_serialize( @@ -934,6 +940,7 @@ def get_network_connections( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_network_connections", ) def _get_network_connections_serialize( @@ -1060,6 +1067,7 @@ def get_network_id( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_network_id", ) def _get_network_id_serialize( @@ -1185,6 +1193,7 @@ def get_network_ids( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_network_ids", ) def _get_network_ids_serialize( @@ -1306,6 +1315,7 @@ def get_routing_policy_asset_groups( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_routing_policy_asset_groups", ) def _get_routing_policy_asset_groups_serialize( @@ -1451,6 +1461,7 @@ def search_network_ids( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="search_network_ids", ) def _search_network_ids_serialize( @@ -1611,6 +1622,7 @@ def set_network_id_discoverability( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="set_network_id_discoverability", ) def _set_network_id_discoverability_serialize( @@ -1760,6 +1772,7 @@ def set_network_id_name( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="set_network_id_name", ) def _set_network_id_name_serialize( @@ -1909,6 +1922,7 @@ def set_network_id_routing_policy( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="set_network_id_routing_policy", ) def _set_network_id_routing_policy_serialize( @@ -2058,6 +2072,7 @@ def set_routing_policy( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="set_routing_policy", ) def _set_routing_policy_serialize( diff --git a/fireblocks/api/nfts_api.py b/fireblocks/api/nfts_api.py index 38fd7ef3..89ba7cd0 100644 --- a/fireblocks/api/nfts_api.py +++ b/fireblocks/api/nfts_api.py @@ -112,6 +112,7 @@ def get_nft( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_nft", ) def _get_nft_serialize( @@ -256,6 +257,7 @@ def get_nfts( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_nfts", ) def _get_nfts_serialize( @@ -458,6 +460,7 @@ def get_ownership_tokens( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_ownership_tokens", ) def _get_ownership_tokens_serialize( @@ -681,6 +684,7 @@ def list_owned_collections( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="list_owned_collections", ) def _list_owned_collections_serialize( @@ -878,6 +882,7 @@ def list_owned_tokens( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="list_owned_tokens", ) def _list_owned_tokens_serialize( @@ -1057,6 +1062,7 @@ def refresh_nft_metadata( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="refresh_nft_metadata", ) def _refresh_nft_metadata_serialize( @@ -1193,6 +1199,7 @@ def update_ownership_tokens( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="update_ownership_tokens", ) def _update_ownership_tokens_serialize( @@ -1336,6 +1343,7 @@ def update_token_ownership_status( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="update_token_ownership_status", ) def _update_token_ownership_status_serialize( @@ -1488,6 +1496,7 @@ def update_tokens_ownership_spam( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="update_tokens_ownership_spam", ) def _update_tokens_ownership_spam_serialize( @@ -1638,6 +1647,7 @@ def update_tokens_ownership_status( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="update_tokens_ownership_status", ) def _update_tokens_ownership_status_serialize( diff --git a/fireblocks/api/off_exchanges_api.py b/fireblocks/api/off_exchanges_api.py index fc480af9..70a46275 100644 --- a/fireblocks/api/off_exchanges_api.py +++ b/fireblocks/api/off_exchanges_api.py @@ -115,6 +115,7 @@ def add_off_exchange( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="add_off_exchange", ) def _add_off_exchange_serialize( @@ -260,6 +261,7 @@ def get_off_exchange_collateral_accounts( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_off_exchange_collateral_accounts", ) def _get_off_exchange_collateral_accounts_serialize( @@ -389,6 +391,7 @@ def get_off_exchange_settlement_transactions( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_off_exchange_settlement_transactions", ) def _get_off_exchange_settlement_transactions_serialize( @@ -523,6 +526,7 @@ def remove_off_exchange( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="remove_off_exchange", ) def _remove_off_exchange_serialize( @@ -671,6 +675,7 @@ def settle_off_exchange_trades( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="settle_off_exchange_trades", ) def _settle_off_exchange_trades_serialize( diff --git a/fireblocks/api/onchain_data_api.py b/fireblocks/api/onchain_data_api.py index 8c69a0c5..6fc28bd8 100644 --- a/fireblocks/api/onchain_data_api.py +++ b/fireblocks/api/onchain_data_api.py @@ -135,6 +135,7 @@ def get_access_registry_current_state( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_access_registry_current_state", ) def _get_access_registry_current_state_serialize( @@ -292,6 +293,7 @@ def get_access_registry_summary( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_access_registry_summary", ) def _get_access_registry_summary_serialize( @@ -429,6 +431,7 @@ def get_active_roles_for_contract( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_active_roles_for_contract", ) def _get_active_roles_for_contract_serialize( @@ -599,6 +602,7 @@ def get_contract_balance_history( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_contract_balance_history", ) def _get_contract_balance_history_serialize( @@ -792,6 +796,7 @@ def get_contract_balances_summary( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_contract_balances_summary", ) def _get_contract_balances_summary_serialize( @@ -957,6 +962,7 @@ def get_contract_total_supply( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_contract_total_supply", ) def _get_contract_total_supply_serialize( @@ -1167,6 +1173,7 @@ def get_latest_balances_for_contract( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_latest_balances_for_contract", ) def _get_latest_balances_for_contract_serialize( @@ -1353,6 +1360,7 @@ def get_onchain_transactions( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_onchain_transactions", ) def _get_onchain_transactions_serialize( diff --git a/fireblocks/api/ota_beta_api.py b/fireblocks/api/ota_beta_api.py index 0e17017d..6b88d59b 100644 --- a/fireblocks/api/ota_beta_api.py +++ b/fireblocks/api/ota_beta_api.py @@ -103,6 +103,7 @@ def get_ota_status( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_ota_status", ) def _get_ota_status_serialize( @@ -234,6 +235,7 @@ def set_ota_status( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="set_ota_status", ) def _set_ota_status_serialize( diff --git a/fireblocks/api/payments_payout_api.py b/fireblocks/api/payments_payout_api.py index 95ed5bd3..46aa86b8 100644 --- a/fireblocks/api/payments_payout_api.py +++ b/fireblocks/api/payments_payout_api.py @@ -113,6 +113,7 @@ def create_payout( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_payout", ) def _create_payout_serialize( @@ -264,6 +265,7 @@ def execute_payout_action( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="execute_payout_action", ) def _execute_payout_action_serialize( @@ -398,6 +400,7 @@ def get_payout( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_payout", ) def _get_payout_serialize( diff --git a/fireblocks/api/policy_editor_beta_api.py b/fireblocks/api/policy_editor_beta_api.py index 8c927431..1ef147f6 100644 --- a/fireblocks/api/policy_editor_beta_api.py +++ b/fireblocks/api/policy_editor_beta_api.py @@ -105,6 +105,7 @@ def get_active_policy_legacy( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_active_policy_legacy", ) def _get_active_policy_legacy_serialize( @@ -226,6 +227,7 @@ def get_draft_legacy( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_draft_legacy", ) def _get_draft_legacy_serialize( @@ -355,6 +357,7 @@ def publish_draft_legacy( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="publish_draft_legacy", ) def _publish_draft_legacy_serialize( @@ -503,6 +506,7 @@ def publish_policy_rules( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="publish_policy_rules", ) def _publish_policy_rules_serialize( @@ -651,6 +655,7 @@ def update_draft_legacy( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="update_draft_legacy", ) def _update_draft_legacy_serialize( diff --git a/fireblocks/api/policy_editor_v2_api.py b/fireblocks/api/policy_editor_v2_api.py index 982a6e0c..ae8cbb00 100644 --- a/fireblocks/api/policy_editor_v2_api.py +++ b/fireblocks/api/policy_editor_v2_api.py @@ -110,6 +110,7 @@ def get_active_policy( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_active_policy", ) def _get_active_policy_serialize( @@ -240,6 +241,7 @@ def get_draft( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_draft", ) def _get_draft_serialize( @@ -374,6 +376,7 @@ def publish_draft( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="publish_draft", ) def _publish_draft_serialize( @@ -522,6 +525,7 @@ def update_draft( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="update_draft", ) def _update_draft_serialize( diff --git a/fireblocks/api/policy_editor_v2_beta_api.py b/fireblocks/api/policy_editor_v2_beta_api.py index 9a125288..ea253ebd 100644 --- a/fireblocks/api/policy_editor_v2_beta_api.py +++ b/fireblocks/api/policy_editor_v2_beta_api.py @@ -115,6 +115,7 @@ def get_policy_rule_quota( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_policy_rule_quota", ) def _get_policy_rule_quota_serialize( diff --git a/fireblocks/api/reports_beta_api.py b/fireblocks/api/reports_beta_api.py index b2d957f4..c33176f9 100644 --- a/fireblocks/api/reports_beta_api.py +++ b/fireblocks/api/reports_beta_api.py @@ -115,6 +115,7 @@ def create_report( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_report", ) def _create_report_serialize( @@ -260,6 +261,7 @@ def get_report( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_report", ) def _get_report_serialize( @@ -408,6 +410,7 @@ def list_reports( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="list_reports", ) def _list_reports_serialize( diff --git a/fireblocks/api/reset_device_api.py b/fireblocks/api/reset_device_api.py index a76c6de6..23aee770 100644 --- a/fireblocks/api/reset_device_api.py +++ b/fireblocks/api/reset_device_api.py @@ -112,6 +112,7 @@ def reset_device( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="reset_device", ) def _reset_device_serialize( diff --git a/fireblocks/api/security_posture_management_api.py b/fireblocks/api/security_posture_management_api.py index 5a18577d..78b1b2f3 100644 --- a/fireblocks/api/security_posture_management_api.py +++ b/fireblocks/api/security_posture_management_api.py @@ -108,6 +108,7 @@ def get_security_finding_by_id( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_security_finding_by_id", ) def _get_security_finding_by_id_serialize( @@ -257,6 +258,7 @@ def get_security_findings( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_security_findings", ) def _get_security_findings_serialize( @@ -416,6 +418,7 @@ def update_security_finding_by_id( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="update_security_finding_by_id", ) def _update_security_finding_by_id_serialize( diff --git a/fireblocks/api/smart_transfer_api.py b/fireblocks/api/smart_transfer_api.py index 2b6fcd2b..6e8ab8fb 100644 --- a/fireblocks/api/smart_transfer_api.py +++ b/fireblocks/api/smart_transfer_api.py @@ -137,6 +137,7 @@ def approve_dv_p_ticket_term( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="approve_dv_p_ticket_term", ) def _approve_dv_p_ticket_term_serialize( @@ -294,6 +295,7 @@ def cancel_ticket( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="cancel_ticket", ) def _cancel_ticket_serialize( @@ -430,6 +432,7 @@ def create_ticket( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_ticket", ) def _create_ticket_serialize( @@ -584,6 +587,7 @@ def create_ticket_term( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_ticket_term", ) def _create_ticket_term_serialize( @@ -733,6 +737,7 @@ def find_ticket_by_id( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="find_ticket_by_id", ) def _find_ticket_by_id_serialize( @@ -868,6 +873,7 @@ def find_ticket_term_by_id( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="find_ticket_term_by_id", ) def _find_ticket_term_by_id_serialize( @@ -1006,6 +1012,7 @@ def fulfill_ticket( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="fulfill_ticket", ) def _fulfill_ticket_serialize( @@ -1148,6 +1155,7 @@ def fund_dvp_ticket( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="fund_dvp_ticket", ) def _fund_dvp_ticket_serialize( @@ -1311,6 +1319,7 @@ def fund_ticket_term( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="fund_ticket_term", ) def _fund_ticket_term_serialize( @@ -1458,6 +1467,7 @@ def get_smart_transfer_statistic( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_smart_transfer_statistic", ) def _get_smart_transfer_statistic_serialize( @@ -1580,6 +1590,7 @@ def get_smart_transfer_user_groups( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_smart_transfer_user_groups", ) def _get_smart_transfer_user_groups_serialize( @@ -1721,6 +1732,7 @@ def manually_fund_ticket_term( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="manually_fund_ticket_term", ) def _manually_fund_ticket_term_serialize( @@ -1878,6 +1890,7 @@ def remove_ticket_term( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="remove_ticket_term", ) def _remove_ticket_term_serialize( @@ -2053,6 +2066,7 @@ def search_tickets( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="search_tickets", ) def _search_tickets_serialize( @@ -2268,6 +2282,7 @@ def set_external_ref_id( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="set_external_ref_id", ) def _set_external_ref_id_serialize( @@ -2426,6 +2441,7 @@ def set_ticket_expiration( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="set_ticket_expiration", ) def _set_ticket_expiration_serialize( @@ -2578,6 +2594,7 @@ def set_user_groups( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="set_user_groups", ) def _set_user_groups_serialize( @@ -2733,6 +2750,7 @@ def submit_ticket( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="submit_ticket", ) def _submit_ticket_serialize( @@ -2895,6 +2913,7 @@ def update_ticket_term( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="update_ticket_term", ) def _update_ticket_term_serialize( diff --git a/fireblocks/api/staking_api.py b/fireblocks/api/staking_api.py index edfba094..17267d00 100644 --- a/fireblocks/api/staking_api.py +++ b/fireblocks/api/staking_api.py @@ -130,6 +130,7 @@ def approve_terms_of_service_by_provider_id( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="approve_terms_of_service_by_provider_id", ) def _approve_terms_of_service_by_provider_id_serialize( @@ -275,6 +276,7 @@ def claim_rewards( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="claim_rewards", ) def _claim_rewards_serialize( @@ -436,6 +438,7 @@ def consolidate( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="consolidate", ) def _consolidate_serialize( @@ -592,6 +595,7 @@ def get_all_delegations( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_all_delegations", ) def _get_all_delegations_serialize( @@ -732,6 +736,7 @@ def get_chain_info( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_chain_info", ) def _get_chain_info_serialize( @@ -860,6 +865,7 @@ def get_chains( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_chains", ) def _get_chains_serialize( @@ -991,6 +997,7 @@ def get_delegation_by_id( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_delegation_by_id", ) def _get_delegation_by_id_serialize( @@ -1137,6 +1144,7 @@ def get_position_related_transactions( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_position_related_transactions", ) def _get_position_related_transactions_serialize( @@ -1301,6 +1309,7 @@ def get_positions( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_positions", ) def _get_positions_serialize( @@ -1451,6 +1460,7 @@ def get_providers( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_providers", ) def _get_providers_serialize( @@ -1576,6 +1586,7 @@ def get_summary( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_summary", ) def _get_summary_serialize( @@ -1701,6 +1712,7 @@ def get_summary_by_vault( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_summary_by_vault", ) def _get_summary_by_vault_serialize( @@ -1840,6 +1852,7 @@ def merge_stake_accounts( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="merge_stake_accounts", ) def _merge_stake_accounts_serialize( @@ -2001,6 +2014,7 @@ def split( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="split", ) def _split_serialize( @@ -2161,6 +2175,7 @@ def stake( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="stake", ) def _stake_serialize( @@ -2321,6 +2336,7 @@ def unstake( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="unstake", ) def _unstake_serialize( @@ -2481,6 +2497,7 @@ def withdraw( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="withdraw", ) def _withdraw_serialize( diff --git a/fireblocks/api/tags_api.py b/fireblocks/api/tags_api.py index 4b56c1ac..7e2b728f 100644 --- a/fireblocks/api/tags_api.py +++ b/fireblocks/api/tags_api.py @@ -113,6 +113,7 @@ def create_tag( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_tag", ) def _create_tag_serialize( @@ -257,6 +258,7 @@ def delete_tag( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="delete_tag", ) def _delete_tag_serialize( @@ -381,6 +383,7 @@ def get_approval_request( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_approval_request", ) def _get_approval_request_serialize( @@ -509,6 +512,7 @@ def get_tag( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_tag", ) def _get_tag_serialize( @@ -664,6 +668,7 @@ def get_tags( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_tags", ) def _get_tags_serialize( @@ -839,6 +844,7 @@ def update_tag( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="update_tag", ) def _update_tag_serialize( diff --git a/fireblocks/api/tempo_beta_api.py b/fireblocks/api/tempo_beta_api.py index e7bd7492..e64186fb 100644 --- a/fireblocks/api/tempo_beta_api.py +++ b/fireblocks/api/tempo_beta_api.py @@ -110,6 +110,7 @@ def create_tempo_transfer( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_tempo_transfer", ) def _create_tempo_transfer_serialize( diff --git a/fireblocks/api/tokenization_api.py b/fireblocks/api/tokenization_api.py index 8e462045..2d3f2bc3 100644 --- a/fireblocks/api/tokenization_api.py +++ b/fireblocks/api/tokenization_api.py @@ -153,6 +153,7 @@ def burn_collection_token( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="burn_collection_token", ) def _burn_collection_token_serialize( @@ -304,6 +305,7 @@ def create_new_collection( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_new_collection", ) def _create_new_collection_serialize( @@ -455,6 +457,7 @@ def deactivate_and_unlink_adapters( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="deactivate_and_unlink_adapters", ) def _deactivate_and_unlink_adapters_serialize( @@ -607,6 +610,7 @@ def deploy_and_link_adapters( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="deploy_and_link_adapters", ) def _deploy_and_link_adapters_serialize( @@ -757,6 +761,7 @@ def fetch_collection_token_details( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="fetch_collection_token_details", ) def _fetch_collection_token_details_serialize( @@ -889,6 +894,7 @@ def get_collection_by_id( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_collection_by_id", ) def _get_collection_by_id_serialize( @@ -1023,6 +1029,7 @@ def get_deployable_address( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_deployable_address", ) def _get_deployable_address_serialize( @@ -1174,6 +1181,7 @@ def get_layer_zero_dvn_config( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_layer_zero_dvn_config", ) def _get_layer_zero_dvn_config_serialize( @@ -1310,6 +1318,7 @@ def get_layer_zero_peers( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_layer_zero_peers", ) def _get_layer_zero_peers_serialize( @@ -1446,6 +1455,7 @@ def get_linked_collections( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_linked_collections", ) def _get_linked_collections_serialize( @@ -1587,6 +1597,7 @@ def get_linked_token( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_linked_token", ) def _get_linked_token_serialize( @@ -1723,6 +1734,7 @@ def get_linked_tokens( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_linked_tokens", ) def _get_linked_tokens_serialize( @@ -1859,6 +1871,7 @@ def get_linked_tokens_count( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_linked_tokens_count", ) def _get_linked_tokens_count_serialize( @@ -2001,6 +2014,7 @@ def get_token_access_registry_addresses( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_token_access_registry_addresses", ) def _get_token_access_registry_addresses_serialize( @@ -2150,6 +2164,7 @@ def get_token_access_registry_summary( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_token_access_registry_summary", ) def _get_token_access_registry_summary_serialize( @@ -2285,6 +2300,7 @@ def get_token_balance_for_account( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_token_balance_for_account", ) def _get_token_balance_for_account_serialize( @@ -2451,6 +2467,7 @@ def get_token_balance_history( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_token_balance_history", ) def _get_token_balance_history_serialize( @@ -2653,6 +2670,7 @@ def get_token_balances( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_token_balances", ) def _get_token_balances_serialize( @@ -2803,6 +2821,7 @@ def get_token_contract_summary( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_token_contract_summary", ) def _get_token_contract_summary_serialize( @@ -2933,6 +2952,7 @@ def get_token_rbac( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_token_rbac", ) def _get_token_rbac_serialize( @@ -3091,6 +3111,7 @@ def get_token_total_supply( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_token_total_supply", ) def _get_token_total_supply_serialize( @@ -3298,6 +3319,7 @@ def get_token_transactions( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_token_transactions", ) def _get_token_transactions_serialize( @@ -3508,6 +3530,7 @@ def get_token_transfers( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_token_transfers", ) def _get_token_transfers_serialize( @@ -3698,6 +3721,7 @@ def issue_new_token( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="issue_new_token", ) def _issue_new_token_serialize( @@ -3847,6 +3871,7 @@ def issue_token_multi_chain( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="issue_token_multi_chain", ) def _issue_token_multi_chain_serialize( @@ -3998,6 +4023,7 @@ def link( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="link", ) def _link_serialize( @@ -4151,6 +4177,7 @@ def mint_collection_token( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="mint_collection_token", ) def _mint_collection_token_serialize( @@ -4310,6 +4337,7 @@ def re_issue_token_multi_chain( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="re_issue_token_multi_chain", ) def _re_issue_token_multi_chain_serialize( @@ -4464,6 +4492,7 @@ def remove_layer_zero_peers( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="remove_layer_zero_peers", ) def _remove_layer_zero_peers_serialize( @@ -4616,6 +4645,7 @@ def set_layer_zero_dvn_config( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="set_layer_zero_dvn_config", ) def _set_layer_zero_dvn_config_serialize( @@ -4768,6 +4798,7 @@ def set_layer_zero_peers( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="set_layer_zero_peers", ) def _set_layer_zero_peers_serialize( @@ -4915,6 +4946,7 @@ def unlink( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="unlink", ) def _unlink_serialize( @@ -5045,6 +5077,7 @@ def unlink_collection( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="unlink_collection", ) def _unlink_collection_serialize( @@ -5182,6 +5215,7 @@ def validate_layer_zero_channel_config( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="validate_layer_zero_channel_config", ) def _validate_layer_zero_channel_config_serialize( diff --git a/fireblocks/api/tr_link_api.py b/fireblocks/api/tr_link_api.py index f6edcf95..730101ec 100644 --- a/fireblocks/api/tr_link_api.py +++ b/fireblocks/api/tr_link_api.py @@ -141,6 +141,7 @@ def assess_tr_link_travel_rule_requirement( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="assess_tr_link_travel_rule_requirement", ) def _assess_tr_link_travel_rule_requirement_serialize( @@ -302,6 +303,7 @@ def cancel_tr_link_trm( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="cancel_tr_link_trm", ) def _cancel_tr_link_trm_serialize( @@ -461,6 +463,7 @@ def connect_tr_link_integration( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="connect_tr_link_integration", ) def _connect_tr_link_integration_serialize( @@ -612,6 +615,7 @@ def create_tr_link_customer( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_tr_link_customer", ) def _create_tr_link_customer_serialize( @@ -760,6 +764,7 @@ def create_tr_link_integration( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_tr_link_integration", ) def _create_tr_link_integration_serialize( @@ -918,6 +923,7 @@ def create_tr_link_manual_decision( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_tr_link_manual_decision", ) def _create_tr_link_manual_decision_serialize( @@ -1077,6 +1083,7 @@ def create_tr_link_trm( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_tr_link_trm", ) def _create_tr_link_trm_serialize( @@ -1225,6 +1232,7 @@ def delete_tr_link_customer( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="delete_tr_link_customer", ) def _delete_tr_link_customer_serialize( @@ -1354,6 +1362,7 @@ def disconnect_tr_link_integration( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="disconnect_tr_link_integration", ) def _disconnect_tr_link_integration_serialize( @@ -1483,6 +1492,7 @@ def get_tr_link_customer_by_id( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_tr_link_customer_by_id", ) def _get_tr_link_customer_by_id_serialize( @@ -1617,6 +1627,7 @@ def get_tr_link_customer_integration_by_id( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_tr_link_customer_integration_by_id", ) def _get_tr_link_customer_integration_by_id_serialize( @@ -1749,6 +1760,7 @@ def get_tr_link_customer_integrations( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_tr_link_customer_integrations", ) def _get_tr_link_customer_integrations_serialize( @@ -1873,6 +1885,7 @@ def get_tr_link_customers( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_tr_link_customers", ) def _get_tr_link_customers_serialize( @@ -1999,6 +2012,7 @@ def get_tr_link_integration_public_key( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_tr_link_integration_public_key", ) def _get_tr_link_integration_public_key_serialize( @@ -2123,6 +2137,7 @@ def get_tr_link_partners( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_tr_link_partners", ) def _get_tr_link_partners_serialize( @@ -2244,6 +2259,7 @@ def get_tr_link_policy( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_tr_link_policy", ) def _get_tr_link_policy_serialize( @@ -2375,6 +2391,7 @@ def get_tr_link_supported_asset( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_tr_link_supported_asset", ) def _get_tr_link_supported_asset_serialize( @@ -2512,6 +2529,7 @@ def get_tr_link_trm_by_id( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_tr_link_trm_by_id", ) def _get_tr_link_trm_by_id_serialize( @@ -2649,6 +2667,7 @@ def get_tr_link_trm_required_actions( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_tr_link_trm_required_actions", ) def _get_tr_link_trm_required_actions_serialize( @@ -2786,6 +2805,7 @@ def get_tr_link_vasp_by_id( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_tr_link_vasp_by_id", ) def _get_tr_link_vasp_by_id_serialize( @@ -2926,6 +2946,7 @@ def list_tr_link_supported_assets( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="list_tr_link_supported_assets", ) def _list_tr_link_supported_assets_serialize( @@ -3073,6 +3094,7 @@ def list_tr_link_vasps( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="list_tr_link_vasps", ) def _list_tr_link_vasps_serialize( @@ -3225,6 +3247,7 @@ def redirect_tr_link_trm( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="redirect_tr_link_trm", ) def _redirect_tr_link_trm_serialize( @@ -3389,6 +3412,7 @@ def resolve_action_tr_link_trm( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="resolve_action_tr_link_trm", ) def _resolve_action_tr_link_trm_serialize( @@ -3548,6 +3572,7 @@ def set_tr_link_destination_travel_rule_message_id( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="set_tr_link_destination_travel_rule_message_id", ) def _set_tr_link_destination_travel_rule_message_id_serialize( @@ -3704,6 +3729,7 @@ def set_tr_link_transaction_travel_rule_message_id( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="set_tr_link_transaction_travel_rule_message_id", ) def _set_tr_link_transaction_travel_rule_message_id_serialize( @@ -3856,6 +3882,7 @@ def test_tr_link_integration_connection( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="test_tr_link_integration_connection", ) def _test_tr_link_integration_connection_serialize( @@ -3996,6 +4023,7 @@ def update_tr_link_customer( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="update_tr_link_customer", ) def _update_tr_link_customer_serialize( diff --git a/fireblocks/api/trading_beta_api.py b/fireblocks/api/trading_api.py similarity index 92% rename from fireblocks/api/trading_beta_api.py rename to fireblocks/api/trading_api.py index f8da22e7..ce184de1 100644 --- a/fireblocks/api/trading_beta_api.py +++ b/fireblocks/api/trading_api.py @@ -42,7 +42,7 @@ from fireblocks.validation_utils import validate_not_empty_string -class TradingBetaApi: +class TradingApi: """NOTE: This class is auto generated by OpenAPI Generator Ref: https://openapi-generator.tech @@ -75,7 +75,7 @@ def create_order( ) -> Future[ApiResponse[OrderDetails]]: """Create an order - Create an order to buy or sell an asset. If no source is given, an external source will be use. Note: These endpoints are currently in beta and might be subject to changes. If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Editor. For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). + Create an order to buy or sell an asset. If no source is given, an external source will be use. Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Editor. For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). :param create_order_request: (required) :type create_order_request: CreateOrderRequest @@ -127,6 +127,7 @@ def create_order( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_order", ) def _create_order_serialize( @@ -228,7 +229,7 @@ def create_quote( ) -> Future[ApiResponse[QuotesResponse]]: """Create a quote - Generate a time-limited quote for asset conversion, providing exchange rate and amount calculations. Note: These endpoints are currently in beta and might be subject to changes. If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Editor. For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). + Generate a time-limited quote for asset conversion, providing exchange rate and amount calculations. Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Editor. For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). :param create_quote: (required) :type create_quote: CreateQuote @@ -280,6 +281,7 @@ def create_quote( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_quote", ) def _create_quote_serialize( @@ -381,7 +383,7 @@ def fetch_all_offers( ) -> Future[ApiResponse[OffersResponse]]: """Get all offers - Retrieve all available offers across the workspace for a given asset pair. Always operates in open scope — no provider or account selection required. Returns a mix of indicative rates and committed quotes as applicable per provider. If no slippageBps is provided, it defaults to 50 bps (0.5%). Slippage and settlement configuration do not affect the returned rate. Note: These endpoints are currently in beta and might be subject to changes. If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Editor. For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). + Retrieve all available offers across the workspace for a given asset pair. Always operates in open scope — no provider or account selection required. Returns a mix of indicative rates and committed quotes as applicable per provider. If no slippageBps is provided, it defaults to 50 bps (0.5%). Slippage and settlement configuration do not affect the returned rate. Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Editor. For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). :param create_offers_request: (required) :type create_offers_request: CreateOffersRequest @@ -433,6 +435,7 @@ def fetch_all_offers( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="fetch_all_offers", ) def _fetch_all_offers_serialize( @@ -534,7 +537,7 @@ def fetch_rates( ) -> Future[ApiResponse[RatesResponse]]: """Get rates - Retrieve indicative exchange rate from specified providers for a given asset pair. Rates are non-executable price signals intended for discovery and display purposes. Note: These endpoints are currently in beta and might be subject to changes. If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). + Retrieve indicative exchange rate from specified providers for a given asset pair. Rates are non-executable price signals intended for discovery and display purposes. 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 rates_request: (required) :type rates_request: RatesRequest @@ -586,6 +589,7 @@ def fetch_rates( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="fetch_rates", ) def _fetch_rates_serialize( @@ -686,7 +690,7 @@ def get_order( ) -> Future[ApiResponse[OrderDetails]]: """Get order details - Retrieve detailed information about a specific order by its ID. Note:These endpoints are currently in beta and might be subject to changes. If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). + Retrieve detailed information about a specific order by its ID. 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 order_id: The ID of the order to fetch. (required) :type order_id: str @@ -736,6 +740,7 @@ def get_order( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_order", ) def _get_order_serialize( @@ -820,7 +825,7 @@ def get_order_requirements( ) -> Future[ApiResponse[OrderRequirementDetails]]: """Get order requirement details for an order - Fetch order requirement details for an order that is in `AWAITING_INFORMATION` status. The response includes `requirementId` and `dueBy` metadata, a `requiredData` JSON Schema (Draft-7) describing the shape of the `data` object expected on `POST /trading/orders/{orderId}/requirement/data`, and `requiredFiles` descriptors for any files the provider requires (uploaded via `POST /trading/orders/{orderId}/requirement/file`). 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). + Fetch order requirement details for an order that is in `AWAITING_INFORMATION` status. The response includes `requirementId` and `dueBy` metadata, a `requiredData` JSON Schema (Draft-7) describing the shape of the `data` object expected on `POST /trading/orders/{orderId}/requirement/data`, and `requiredFiles` descriptors for any files the provider requires (uploaded via `POST /trading/orders/{orderId}/requirement/file`). 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 order_id: The ID of the order for which the order requirement is issued. (required) :type order_id: str @@ -871,6 +876,7 @@ def get_order_requirements( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_order_requirements", ) def _get_order_requirements_serialize( @@ -963,7 +969,7 @@ def get_orders( ) -> Future[ApiResponse[GetOrdersResponse]]: """Get orders - Retrieve a paginated list of orders with optional filtering by account, provider, status, and time range. Note:These endpoints are currently in beta and might be subject to changes. If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). + Retrieve a paginated list of orders with optional filtering by account, provider, status, and time range. 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 page_size: pageSize for pagination. (required) :type page_size: int @@ -1035,6 +1041,7 @@ def get_orders( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_orders", ) def _get_orders_serialize( @@ -1164,7 +1171,7 @@ def get_trading_provider_by_id( ) -> Future[ApiResponse[TradingProvider]]: """Get trading provider by ID - Retrieve a single provider by ID. **Note:** These endpoints are currently in beta and might be subject to changes. If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. **Endpoint Permission:** Owner, Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). + Retrieve a single provider by ID. **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 @@ -1214,6 +1221,7 @@ def get_trading_provider_by_id( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_trading_provider_by_id", ) def _get_trading_provider_by_id_serialize( @@ -1299,7 +1307,7 @@ def get_trading_providers( ) -> Future[ApiResponse[ProvidersListResponse]]: """Get providers - Retrieve a list of all available external providers supporting trading activities through the platform. **Note:** These endpoints are currently in beta and might be subject to changes. If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. **Endpoint Permission:** Owner, Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). + Retrieve a list of all available external providers supporting trading activities through the platform. **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 page_size: Page size for pagination. :type page_size: int @@ -1350,6 +1358,7 @@ def get_trading_providers( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_trading_providers", ) def _get_trading_providers_serialize( @@ -1443,7 +1452,7 @@ def submit_order_requirements( ) -> Future[ApiResponse[None]]: """Submit a response to an order requirement - Submit the user's textual response to an order requirement on an order that is in `AWAITING_INFORMATION` status. The request body carries `data` — a free-form object conforming to the `requiredData` JSON Schema returned by the GET endpoint. Any required files are uploaded separately via `POST /trading/orders/{orderId}/requirement/file`. Note: These endpoints are currently in beta and might be subject to changes. If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Editor. For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). + Submit the user's textual response to an order requirement on an order that is in `AWAITING_INFORMATION` status. The request body carries `data` — a free-form object conforming to the `requiredData` JSON Schema returned by the GET endpoint. Any required files are uploaded separately via `POST /trading/orders/{orderId}/requirement/file`. Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Editor. For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). :param order_id: The ID of the order to submit the order requirement response for. (required) :type order_id: str @@ -1501,6 +1510,7 @@ def submit_order_requirements( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="submit_order_requirements", ) def _submit_order_requirements_serialize( @@ -1607,7 +1617,7 @@ def upload_order_requirement_file( ) -> Future[ApiResponse[None]]: """Upload a file for an order requirement - Upload a single file (multipart/form-data) in response to an order requirement on an order that is in `AWAITING_INFORMATION` status. Call this endpoint once per required file. Send `fileKey` (matching a `fileKey` from `requiredFiles` on the GET response) and the binary `file`. Its type must be one of the supported file formats. Fireblocks encrypts each file and uploads it individually to the underlying provider. The textual response is submitted separately via `POST /trading/orders/{orderId}/requirement/data`. Note: These endpoints are currently in beta and might be subject to changes. If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Editor. For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). + Upload a single file (multipart/form-data) in response to an order requirement on an order that is in `AWAITING_INFORMATION` status. Call this endpoint once per required file. Send `fileKey` (matching a `fileKey` from `requiredFiles` on the GET response) and the binary `file`. Its type must be one of the supported file formats. Fireblocks encrypts each file and uploads it individually to the underlying provider. The textual response is submitted separately via `POST /trading/orders/{orderId}/requirement/data`. Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Editor. For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). :param order_id: The ID of the order to upload the order requirement file for. (required) :type order_id: str @@ -1669,6 +1679,7 @@ def upload_order_requirement_file( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="upload_order_requirement_file", ) def _upload_order_requirement_file_serialize( diff --git a/fireblocks/api/transactions_api.py b/fireblocks/api/transactions_api.py index d49d3ea0..3bafd1fd 100644 --- a/fireblocks/api/transactions_api.py +++ b/fireblocks/api/transactions_api.py @@ -126,6 +126,7 @@ def cancel_transaction( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="cancel_transaction", ) def _cancel_transaction_serialize( @@ -268,6 +269,7 @@ def create_transaction( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_transaction", ) def _create_transaction_serialize( @@ -428,6 +430,7 @@ def drop_transaction( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="drop_transaction", ) def _drop_transaction_serialize( @@ -579,6 +582,7 @@ def estimate_network_fee( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="estimate_network_fee", ) def _estimate_network_fee_serialize( @@ -713,6 +717,7 @@ def estimate_transaction_fee( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="estimate_transaction_fee", ) def _estimate_transaction_fee_serialize( @@ -865,6 +870,7 @@ def freeze_transaction( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="freeze_transaction", ) def _freeze_transaction_serialize( @@ -1001,6 +1007,7 @@ def get_transaction( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_transaction", ) def _get_transaction_serialize( @@ -1130,6 +1137,7 @@ def get_transaction_by_external_id( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_transaction_by_external_id", ) def _get_transaction_by_external_id_serialize( @@ -1318,6 +1326,7 @@ def get_transactions( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_transactions", ) def _get_transactions_serialize( @@ -1532,6 +1541,7 @@ def set_confirmation_threshold_by_transaction_hash( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="set_confirmation_threshold_by_transaction_hash", ) def _set_confirmation_threshold_by_transaction_hash_serialize( @@ -1688,6 +1698,7 @@ def set_transaction_confirmation_threshold( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="set_transaction_confirmation_threshold", ) def _set_transaction_confirmation_threshold_serialize( @@ -1843,6 +1854,7 @@ def unfreeze_transaction( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="unfreeze_transaction", ) def _unfreeze_transaction_serialize( @@ -1983,6 +1995,7 @@ def validate_address( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="validate_address", ) def _validate_address_serialize( diff --git a/fireblocks/api/travel_rule_api.py b/fireblocks/api/travel_rule_api.py index 64eba0ed..e905434e 100644 --- a/fireblocks/api/travel_rule_api.py +++ b/fireblocks/api/travel_rule_api.py @@ -117,6 +117,7 @@ def create_trust_proof_of_address( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_trust_proof_of_address", ) def _create_trust_proof_of_address_serialize( @@ -262,6 +263,7 @@ def get_trust_proof_of_address( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_trust_proof_of_address", ) def _get_trust_proof_of_address_serialize( @@ -391,6 +393,7 @@ def get_vasp_for_vault( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_vasp_for_vault", ) def _get_vasp_for_vault_serialize( @@ -525,6 +528,7 @@ def get_vaspby_did( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_vaspby_did", ) def _get_vaspby_did_serialize( @@ -679,6 +683,7 @@ def get_vasps( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_vasps", ) def _get_vasps_serialize( @@ -844,6 +849,7 @@ def set_vasp_for_vault( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="set_vasp_for_vault", ) def _set_vasp_for_vault_serialize( @@ -996,6 +1002,7 @@ def update_vasp( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="update_vasp", ) def _update_vasp_serialize( @@ -1148,6 +1155,7 @@ def validate_full_travel_rule_transaction( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="validate_full_travel_rule_transaction", ) def _validate_full_travel_rule_transaction_serialize( diff --git a/fireblocks/api/user_groups_beta_api.py b/fireblocks/api/user_groups_beta_api.py index f5b57e32..f6110482 100644 --- a/fireblocks/api/user_groups_beta_api.py +++ b/fireblocks/api/user_groups_beta_api.py @@ -113,6 +113,7 @@ def create_user_group( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_user_group", ) def _create_user_group_serialize( @@ -258,6 +259,7 @@ def delete_user_group( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="delete_user_group", ) def _delete_user_group_serialize( @@ -387,6 +389,7 @@ def get_user_group( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_user_group", ) def _get_user_group_serialize( @@ -511,6 +514,7 @@ def get_user_groups( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_user_groups", ) def _get_user_groups_serialize( @@ -645,6 +649,7 @@ def update_user_group( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="update_user_group", ) def _update_user_group_serialize( diff --git a/fireblocks/api/users_api.py b/fireblocks/api/users_api.py index a7fd4649..2ffed2ed 100644 --- a/fireblocks/api/users_api.py +++ b/fireblocks/api/users_api.py @@ -99,6 +99,7 @@ def get_users( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_users", ) def _get_users_serialize( diff --git a/fireblocks/api/utxo_management_beta_api.py b/fireblocks/api/utxo_management_beta_api.py index d23d2c34..e693e2a7 100644 --- a/fireblocks/api/utxo_management_beta_api.py +++ b/fireblocks/api/utxo_management_beta_api.py @@ -105,6 +105,7 @@ def get_utxo_selection_config( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_utxo_selection_config", ) def _get_utxo_selection_config_serialize( @@ -288,6 +289,7 @@ def get_utxos( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_utxos", ) def _get_utxos_serialize( @@ -494,6 +496,7 @@ def get_vault_asset_utxo_selection_config( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_vault_asset_utxo_selection_config", ) def _get_vault_asset_utxo_selection_config_serialize( @@ -640,6 +643,7 @@ def update_utxo_labels( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="update_utxo_labels", ) def _update_utxo_labels_serialize( @@ -794,6 +798,7 @@ def upsert_utxo_selection_config( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="upsert_utxo_selection_config", ) def _upsert_utxo_selection_config_serialize( @@ -952,6 +957,7 @@ def upsert_vault_asset_utxo_selection_config( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="upsert_vault_asset_utxo_selection_config", ) def _upsert_vault_asset_utxo_selection_config_serialize( diff --git a/fireblocks/api/vaults_api.py b/fireblocks/api/vaults_api.py index b277352d..4541dc89 100644 --- a/fireblocks/api/vaults_api.py +++ b/fireblocks/api/vaults_api.py @@ -154,6 +154,7 @@ def activate_asset_for_vault_account( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="activate_asset_for_vault_account", ) def _activate_asset_for_vault_account_serialize( @@ -298,6 +299,7 @@ def activate_usdc_gateway_wallet_beta( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="activate_usdc_gateway_wallet_beta", ) def _activate_usdc_gateway_wallet_beta_serialize( @@ -434,6 +436,7 @@ def attach_or_detach_tags_from_vault_accounts( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="attach_or_detach_tags_from_vault_accounts", ) def _attach_or_detach_tags_from_vault_accounts_serialize( @@ -593,6 +596,7 @@ def create_legacy_address( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_legacy_address", ) def _create_legacy_address_serialize( @@ -734,6 +738,7 @@ def create_multiple_accounts( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_multiple_accounts", ) def _create_multiple_accounts_serialize( @@ -882,6 +887,7 @@ def create_multiple_deposit_addresses( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_multiple_deposit_addresses", ) def _create_multiple_deposit_addresses_serialize( @@ -1030,6 +1036,7 @@ def create_vault_account( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_vault_account", ) def _create_vault_account_serialize( @@ -1192,6 +1199,7 @@ def create_vault_account_asset( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_vault_account_asset", ) def _create_vault_account_asset_serialize( @@ -1361,6 +1369,7 @@ def create_vault_account_asset_address( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_vault_account_asset_address", ) def _create_vault_account_asset_address_serialize( @@ -1516,6 +1525,7 @@ def deactivate_usdc_gateway_wallet_beta( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="deactivate_usdc_gateway_wallet_beta", ) def _deactivate_usdc_gateway_wallet_beta_serialize( @@ -1653,6 +1663,7 @@ def disable_usdc_gateway_deposit_automation_schedule_beta( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="disable_usdc_gateway_deposit_automation_schedule_beta", ) def _disable_usdc_gateway_deposit_automation_schedule_beta_serialize( @@ -1803,6 +1814,7 @@ def get_asset_wallets( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_asset_wallets", ) def _get_asset_wallets_serialize( @@ -1959,6 +1971,7 @@ def get_create_multiple_deposit_addresses_job_status( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_create_multiple_deposit_addresses_job_status", ) def _get_create_multiple_deposit_addresses_job_status_serialize( @@ -2088,6 +2101,7 @@ def get_create_multiple_vault_accounts_job_status( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_create_multiple_vault_accounts_job_status", ) def _get_create_multiple_vault_accounts_job_status_serialize( @@ -2222,6 +2236,7 @@ def get_max_bip_index_used( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_max_bip_index_used", ) def _get_max_bip_index_used_serialize( @@ -2387,6 +2402,7 @@ def get_max_spendable_amount( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_max_spendable_amount", ) def _get_max_spendable_amount_serialize( @@ -2595,6 +2611,7 @@ def get_paged_vault_accounts( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_paged_vault_accounts", ) def _get_paged_vault_accounts_serialize( @@ -2788,6 +2805,7 @@ def get_public_key_info( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_public_key_info", ) def _get_public_key_info_serialize( @@ -2946,6 +2964,7 @@ def get_public_key_info_for_address( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_public_key_info_for_address", ) def _get_public_key_info_for_address_serialize( @@ -3094,6 +3113,7 @@ def get_unspent_inputs( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_unspent_inputs", ) def _get_unspent_inputs_serialize( @@ -3226,6 +3246,7 @@ def get_usdc_gateway_deposit_automation_beta( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_usdc_gateway_deposit_automation_beta", ) def _get_usdc_gateway_deposit_automation_beta_serialize( @@ -3355,6 +3376,7 @@ def get_usdc_gateway_wallet_info_beta( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_usdc_gateway_wallet_info_beta", ) def _get_usdc_gateway_wallet_info_beta_serialize( @@ -3484,6 +3506,7 @@ def get_vault_account( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_vault_account", ) def _get_vault_account_serialize( @@ -3618,6 +3641,7 @@ def get_vault_account_asset( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_vault_account_asset", ) def _get_vault_account_asset_serialize( @@ -3767,6 +3791,7 @@ def get_vault_account_asset_addresses_paginated( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_vault_account_asset_addresses_paginated", ) def _get_vault_account_asset_addresses_paginated_serialize( @@ -3917,6 +3942,7 @@ def get_vault_assets( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_vault_assets", ) def _get_vault_assets_serialize( @@ -4053,6 +4079,7 @@ def get_vault_balance_by_asset( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_vault_balance_by_asset", ) def _get_vault_balance_by_asset_serialize( @@ -4186,6 +4213,7 @@ def hide_vault_account( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="hide_vault_account", ) def _hide_vault_account_serialize( @@ -4321,6 +4349,7 @@ def lookup_vault_by_address( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="lookup_vault_by_address", ) def _lookup_vault_by_address_serialize( @@ -4388,150 +4417,6 @@ def _lookup_vault_by_address_serialize( - @validate_call - def register_tempo_omnibus_wallet( - self, - vault_account_id: Annotated[StrictStr, Field(description="The ID of the vault account for which to register the Tempo wallet.")], - asset_id: Annotated[StrictStr, Field(description="The Tempo network asset to register for the vault account.")], - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = 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[CreateVaultAssetResponse]]: - """Register a Tempo omnibus wallet - - Registers a Tempo omnibus wallet for the requested vault account. Triggering this flow requires the vault account to hold PATH_USD with a balance sufficient to cover the gas fee. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param vault_account_id: The ID of the vault account for which to register the Tempo wallet. (required) - :type vault_account_id: str - :param asset_id: The Tempo network asset to register for the vault account. (required) - :type asset_id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: 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="register_tempo_omnibus_wallet", param_name="vault_account_id", param_value=vault_account_id) - validate_not_empty_string(function_name="register_tempo_omnibus_wallet", param_name="asset_id", param_value=asset_id) - - _param = self._register_tempo_omnibus_wallet_serialize( - vault_account_id=vault_account_id, - asset_id=asset_id, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "CreateVaultAssetResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _register_tempo_omnibus_wallet_serialize( - self, - vault_account_id, - asset_id, - idempotency_key, - _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 vault_account_id is not None: - _path_params['vaultAccountId'] = vault_account_id - if asset_id is not None: - _path_params['assetId'] = asset_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # 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='POST', - resource_path='/vault/accounts/{vaultAccountId}/{assetId}/omnibus/tempo/register', - 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 set_customer_ref_id_for_address( self, @@ -4614,6 +4499,7 @@ def set_customer_ref_id_for_address( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="set_customer_ref_id_for_address", ) def _set_customer_ref_id_for_address_serialize( @@ -4776,6 +4662,7 @@ def set_usdc_gateway_deposit_automation_beta( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="set_usdc_gateway_deposit_automation_beta", ) def _set_usdc_gateway_deposit_automation_beta_serialize( @@ -4932,6 +4819,7 @@ def set_vault_account_auto_fuel( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="set_vault_account_auto_fuel", ) def _set_vault_account_auto_fuel_serialize( @@ -5088,6 +4976,7 @@ def set_vault_account_customer_ref_id( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="set_vault_account_customer_ref_id", ) def _set_vault_account_customer_ref_id_serialize( @@ -5240,6 +5129,7 @@ def unhide_vault_account( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="unhide_vault_account", ) def _unhide_vault_account_serialize( @@ -5385,6 +5275,7 @@ def update_usdc_gateway_deposit_automation_beta( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="update_usdc_gateway_deposit_automation_beta", ) def _update_usdc_gateway_deposit_automation_beta_serialize( @@ -5544,6 +5435,7 @@ def update_vault_account( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="update_vault_account", ) def _update_vault_account_serialize( @@ -5710,6 +5602,7 @@ def update_vault_account_asset_address( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="update_vault_account_asset_address", ) def _update_vault_account_asset_address_serialize( @@ -5873,6 +5766,7 @@ def update_vault_account_asset_balance( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="update_vault_account_asset_balance", ) def _update_vault_account_asset_balance_serialize( diff --git a/fireblocks/api/web3_connections_api.py b/fireblocks/api/web3_connections_api.py index fa898738..f0f5377e 100644 --- a/fireblocks/api/web3_connections_api.py +++ b/fireblocks/api/web3_connections_api.py @@ -118,6 +118,7 @@ def create( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create", ) def _create_serialize( @@ -286,6 +287,7 @@ def get( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get", ) def _get_serialize( @@ -445,6 +447,7 @@ def remove( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="remove", ) def _remove_serialize( @@ -584,6 +587,7 @@ def submit( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="submit", ) def _submit_serialize( diff --git a/fireblocks/api/webhooks_api.py b/fireblocks/api/webhooks_api.py index 5148c0ad..ff87dabc 100644 --- a/fireblocks/api/webhooks_api.py +++ b/fireblocks/api/webhooks_api.py @@ -116,6 +116,7 @@ def resend_transaction_webhooks( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="resend_transaction_webhooks", ) def _resend_transaction_webhooks_serialize( @@ -263,6 +264,7 @@ def resend_webhooks( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="resend_webhooks", ) def _resend_webhooks_serialize( diff --git a/fireblocks/api/webhooks_v2_api.py b/fireblocks/api/webhooks_v2_api.py index 765f501c..c6cbd97e 100644 --- a/fireblocks/api/webhooks_v2_api.py +++ b/fireblocks/api/webhooks_v2_api.py @@ -133,6 +133,7 @@ def create_webhook( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_webhook", ) def _create_webhook_serialize( @@ -281,6 +282,7 @@ def create_webhook_mtls_config( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_webhook_mtls_config", ) def _create_webhook_mtls_config_serialize( @@ -429,6 +431,7 @@ def create_webhook_oauth( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="create_webhook_oauth", ) def _create_webhook_oauth_serialize( @@ -574,6 +577,7 @@ def delete_webhook( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="delete_webhook", ) def _delete_webhook_serialize( @@ -708,6 +712,7 @@ def delete_webhook_mtls_config( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="delete_webhook_mtls_config", ) def _delete_webhook_mtls_config_serialize( @@ -847,6 +852,7 @@ def delete_webhook_oauth( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="delete_webhook_oauth", ) def _delete_webhook_oauth_serialize( @@ -986,6 +992,7 @@ def get_metrics( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_metrics", ) def _get_metrics_serialize( @@ -1117,6 +1124,7 @@ def get_mtls_csr( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_mtls_csr", ) def _get_mtls_csr_serialize( @@ -1257,6 +1265,7 @@ def get_notification( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_notification", ) def _get_notification_serialize( @@ -1407,6 +1416,7 @@ def get_notification_attempts( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_notification_attempts", ) def _get_notification_attempts_serialize( @@ -1585,6 +1595,7 @@ def get_notifications( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_notifications", ) def _get_notifications_serialize( @@ -1766,6 +1777,7 @@ def get_resend_by_query_job_status( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_resend_by_query_job_status", ) def _get_resend_by_query_job_status_serialize( @@ -1903,6 +1915,7 @@ def get_resend_job_status( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_resend_job_status", ) def _get_resend_job_status_serialize( @@ -2035,6 +2048,7 @@ def get_webhook( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_webhook", ) def _get_webhook_serialize( @@ -2164,6 +2178,7 @@ def get_webhook_mtls_config( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_webhook_mtls_config", ) def _get_webhook_mtls_config_serialize( @@ -2292,6 +2307,7 @@ def get_webhook_mtls_configs( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_webhook_mtls_configs", ) def _get_webhook_mtls_configs_serialize( @@ -2424,6 +2440,7 @@ def get_webhook_oauth( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_webhook_oauth", ) def _get_webhook_oauth_serialize( @@ -2548,6 +2565,7 @@ def get_webhook_oauths( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_webhook_oauths", ) def _get_webhook_oauths_serialize( @@ -2681,6 +2699,7 @@ def get_webhooks( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_webhooks", ) def _get_webhooks_serialize( @@ -2831,6 +2850,7 @@ def resend_failed_notifications( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="resend_failed_notifications", ) def _resend_failed_notifications_serialize( @@ -2988,6 +3008,7 @@ def resend_notification_by_id( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="resend_notification_by_id", ) def _resend_notification_by_id_serialize( @@ -3132,6 +3153,7 @@ def resend_notifications_by_query( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="resend_notifications_by_query", ) def _resend_notifications_by_query_serialize( @@ -3288,6 +3310,7 @@ def resend_notifications_by_resource_id( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="resend_notifications_by_resource_id", ) def _resend_notifications_by_resource_id_serialize( @@ -3440,6 +3463,7 @@ def update_webhook( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="update_webhook", ) def _update_webhook_serialize( @@ -3590,6 +3614,7 @@ def update_webhook_mtls_config( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="update_webhook_mtls_config", ) def _update_webhook_mtls_config_serialize( @@ -3739,6 +3764,7 @@ def update_webhook_oauth( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="update_webhook_oauth", ) def _update_webhook_oauth_serialize( diff --git a/fireblocks/api/whitelist_ip_addresses_api.py b/fireblocks/api/whitelist_ip_addresses_api.py index 30ae040a..982cdd2e 100644 --- a/fireblocks/api/whitelist_ip_addresses_api.py +++ b/fireblocks/api/whitelist_ip_addresses_api.py @@ -108,6 +108,7 @@ def get_whitelist_ip_addresses( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_whitelist_ip_addresses", ) def _get_whitelist_ip_addresses_serialize( diff --git a/fireblocks/api/workspace_api.py b/fireblocks/api/workspace_api.py index cba2fa90..b760070e 100644 --- a/fireblocks/api/workspace_api.py +++ b/fireblocks/api/workspace_api.py @@ -98,6 +98,7 @@ def get_workspace( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_workspace", ) def _get_workspace_serialize( diff --git a/fireblocks/api/workspace_status_beta_api.py b/fireblocks/api/workspace_status_beta_api.py index f6b35647..cc51716a 100644 --- a/fireblocks/api/workspace_status_beta_api.py +++ b/fireblocks/api/workspace_status_beta_api.py @@ -98,6 +98,7 @@ def get_workspace_status( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, + _operation_id="get_workspace_status", ) def _get_workspace_status_serialize( diff --git a/fireblocks/api_client.py b/fireblocks/api_client.py index a646b2e8..f3ff1c46 100644 --- a/fireblocks/api_client.py +++ b/fireblocks/api_client.py @@ -28,6 +28,7 @@ from pydantic import SecretStr from fireblocks.configuration import Configuration +from fireblocks.lifecycle_warning import warn_on_lifecycle_state from fireblocks.unknown_model import create_unknown_model from fireblocks.api_response import ApiResponse, T as ApiResponseT import fireblocks.models @@ -243,6 +244,7 @@ def call_api( post_params: Optional[List[Tuple[str, Any]]] = None, _request_timeout: Optional[Union[int, float, Tuple]] = None, _response_types_map: Optional[Dict[str, ApiResponseT]] = None, + _operation_id: Optional[str] = None, ) -> ApiResponse[ApiResponseT]: """Makes the HTTP request (synchronous) :param method: Method to call. @@ -253,6 +255,7 @@ def call_api( :param post_params dict: Request post form parameters, for `application/x-www-form-urlencoded`, `multipart/form-data`. :param _request_timeout: timeout setting for this request. + :param _operation_id: operation being called, used for the lifecycle warning. :return: RESTResponse """ # perform request and return response @@ -265,6 +268,11 @@ def call_api( _request_timeout=_request_timeout, ) response_data.read() + # Ahead of response_deserialize, which raises on a non-2xx status: the + # lifecycle header is present on allowed error responses too. + warn_on_lifecycle_state( + response_data.getheaders(), _operation_id, response_data.status + ) return self.response_deserialize( response_data=response_data, response_types_map=_response_types_map, diff --git a/fireblocks/client.py b/fireblocks/client.py index 50353536..befe2475 100644 --- a/fireblocks/client.py +++ b/fireblocks/client.py @@ -62,7 +62,7 @@ from fireblocks.api.tags_api import TagsApi from fireblocks.api.tempo_beta_api import TempoBetaApi from fireblocks.api.tokenization_api import TokenizationApi -from fireblocks.api.trading_beta_api import TradingBetaApi +from fireblocks.api.trading_api import TradingApi from fireblocks.api.transactions_api import TransactionsApi from fireblocks.api.travel_rule_api import TravelRuleApi from fireblocks.api.utxo_management_beta_api import UTXOManagementBetaApi @@ -130,7 +130,7 @@ def __init__(self, configuration: ClientConfiguration = None): self._tags = None self._tempo_beta = None self._tokenization = None - self._trading_beta = None + self._trading = None self._transactions = None self._travel_rule = None self._utxo_management_beta = None @@ -424,10 +424,10 @@ def tokenization(self) -> TokenizationApi: return self._tokenization @property - def trading_beta(self) -> TradingBetaApi: - if self._trading_beta is None: - self._trading_beta = TradingBetaApi(self._api_client) - return self._trading_beta + def trading(self) -> TradingApi: + if self._trading is None: + self._trading = TradingApi(self._api_client) + return self._trading @property def transactions(self) -> TransactionsApi: diff --git a/fireblocks/configuration.py b/fireblocks/configuration.py index ad660dfa..c1a025c0 100644 --- a/fireblocks/configuration.py +++ b/fireblocks/configuration.py @@ -550,7 +550,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: 34.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/lifecycle_warning.py b/fireblocks/lifecycle_warning.py new file mode 100644 index 00000000..1d9fb3cb --- /dev/null +++ b/fireblocks/lifecycle_warning.py @@ -0,0 +1,169 @@ +""" +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 logging +import os +import re +from typing import Any, Dict, Mapping, Optional + +# Set (e.g. to 1) to suppress lifecycle warnings entirely; 0 and false do not suppress. +SUPPRESS_ENV_VAR = "FIREBLOCKS_SDK_SUPPRESS_LIFECYCLE_WARNING" + +LIFECYCLE_STATE_HEADER = "Fireblocks-Lifecycle-State" +SUNSET_HEADER = "Sunset" +LINK_HEADER = "Link" + +# Lifecycle warnings log under a dedicated child namespace so they can be muted +# without silencing genuine SDK errors. +LOGGER_NAME = "fireblocks.lifecycle" + +BETA_STATE = "beta" +DEPRECATED_STATE = "deprecated" +CLOSED_STATE = "closed" +WARNING_STATES = frozenset({BETA_STATE, DEPRECATED_STATE, CLOSED_STATE}) + +# The gateway answers a closed operation with 410 Gone to every caller without a +# temporary exception. That response already says what happened, so no warning. +GONE_STATUS = 410 + +REL_DEPRECATION = "deprecation" +REL_SUCCESSOR_VERSION = "successor-version" + +BETA_MESSAGE = ( + "Operation '{operation_id}' is in 'beta' lifecycle state and is not generally " + "available. It may change or be removed without notice." +) +CLOSED_MESSAGE = ( + "Operation '{operation_id}' has been closed and is no longer supported. Your access is " + "provided under a temporary exception and may be revoked. Contact your Customer Success " + "Manager for migration support" +) +DEPRECATED_MESSAGE = ( + "Operation '{operation_id}' is deprecated and will stop working after {sunset}." +) +DEPRECATED_MESSAGE_NO_SUNSET = "Operation '{operation_id}' is deprecated." +SUCCESSOR_CLAUSE = " Use {successor} instead." +MIGRATION_GUIDE_CLAUSE = " Migration guide: {url}" + +# RFC 8288. Anchored on the angle brackets rather than split on commas, because a +# comma is legal inside a URI and urllib3 joins repeated Link headers with ", ". +# `rel` may follow other parameters (`; type="text/html"; rel="deprecation"`), +# which [^<]*? allows without running into the next link, and its value may list +# several space-separated relation types. +_LINK_PATTERN = re.compile( + r'<([^>]*)>[^<]*?;\s*rel\s*=\s*(?:"([^"]*)"|([^\s;,]+))', re.IGNORECASE +) + + +def _get_header(headers: Optional[Mapping[str, Any]], name: str) -> Optional[str]: + """Case-insensitive header lookup that tolerates a plain dict.""" + if not headers: + return None + getter = getattr(headers, "get", None) + if getter is not None: + value = getter(name) + if value is not None: + return value if isinstance(value, str) else str(value) + lowered = name.lower() + for key, value in headers.items(): + if isinstance(key, str) and key.lower() == lowered: + return value if isinstance(value, str) else str(value) + return None + + +def _parse_links(headers: Optional[Mapping[str, Any]]) -> Dict[str, str]: + """Map link relation -> URL, first occurrence wins.""" + raw = _get_header(headers, LINK_HEADER) + if not raw: + return {} + links: Dict[str, str] = {} + for url, quoted, bare in _LINK_PATTERN.findall(raw): + for relation in (quoted or bare).lower().split(): + links.setdefault(relation, url.strip()) + return links + + +def build_lifecycle_warning( + headers: Optional[Mapping[str, Any]], + operation_id: str, + status_code: Optional[int] = None, +) -> Optional[str]: + """Build the warning for a response, or None when nothing should be logged. + + Silent on: absent or empty header, an unrecognised state, `ga`, and a `closed` + operation answered with 410 Gone. An unknown status counts as "not 410". + + Header values are emitted as received. They are gateway-authored — the gateway + strips any downstream-supplied lifecycle headers and reapplies its own, derived + from the deployed specification, which is validated by the OpenAPI lint rules. + """ + raw_state = _get_header(headers, LIFECYCLE_STATE_HEADER) + if not raw_state: + return None + state = raw_state.strip().lower() + if state not in WARNING_STATES: + return None + + if state == BETA_STATE: + return BETA_MESSAGE.format(operation_id=operation_id) + + if state == CLOSED_STATE: + if status_code == GONE_STATUS: + return None + return CLOSED_MESSAGE.format(operation_id=operation_id) + + sunset = _get_header(headers, SUNSET_HEADER) + sunset = sunset.strip() if sunset else None + if sunset: + message = DEPRECATED_MESSAGE.format(operation_id=operation_id, sunset=sunset) + else: + message = DEPRECATED_MESSAGE_NO_SUNSET.format(operation_id=operation_id) + + links = _parse_links(headers) + successor = links.get(REL_SUCCESSOR_VERSION) + if successor: + message += SUCCESSOR_CLAUSE.format(successor=successor) + migration_guide = links.get(REL_DEPRECATION) + if migration_guide: + message += MIGRATION_GUIDE_CLAUSE.format(url=migration_guide) + return message + + +def is_suppressed(value: Optional[str]) -> bool: + """True when the suppression env var is set to anything other than 0 or false.""" + return bool(value) and value not in ("0", "false") + + +def warn_on_lifecycle_state( + headers: Optional[Mapping[str, Any]], + operation_id: Optional[str], + status_code: Optional[int] = None, +) -> None: + """Emit one warning per execution when the response reports a non-GA state. + + Suppressed when FIREBLOCKS_SDK_SUPPRESS_LIFECYCLE_WARNING is set to anything + other than 0 or false. + + Never raises: a malformed header must not break a caller's request. + """ + if not operation_id or is_suppressed(os.environ.get(SUPPRESS_ENV_VAR)): + return + try: + message = build_lifecycle_warning(headers, operation_id, status_code) + if message: + # Acquired here rather than at module scope on purpose: + # logging.config.dictConfig defaults disable_existing_loggers=True and + # would disable a logger created at import time, before the application + # configures logging. + logging.getLogger(LOGGER_NAME).warning(message) + except Exception: # pragma: no cover - defensive, never break the request + pass diff --git a/fireblocks/models/__init__.py b/fireblocks/models/__init__.py index c74f0680..a266198a 100644 --- a/fireblocks/models/__init__.py +++ b/fireblocks/models/__init__.py @@ -82,7 +82,6 @@ from fireblocks.models.addresses_filters import AddressesFilters from fireblocks.models.alert_exposure_type_enum import AlertExposureTypeEnum from fireblocks.models.alert_level_enum import AlertLevelEnum -from fireblocks.models.allocation_withdraw_payload import AllocationWithdrawPayload from fireblocks.models.allow_list_payload import AllowListPayload from fireblocks.models.allowlist_entry import AllowlistEntry from fireblocks.models.allowlist_entry_response import AllowlistEntryResponse @@ -182,6 +181,9 @@ from fireblocks.models.blockchain_state_filter import BlockchainStateFilter from fireblocks.models.blockchain_transfer import BlockchainTransfer from fireblocks.models.bps_fee import BpsFee +from fireblocks.models.bulk_proof_of_ownership import BulkProofOfOwnership +from fireblocks.models.bulk_signing_key import BulkSigningKey +from fireblocks.models.bulk_signing_key_job import BulkSigningKeyJob from fireblocks.models.business_entity_type_enum import BusinessEntityTypeEnum from fireblocks.models.business_identification import BusinessIdentification from fireblocks.models.byork_config_response import ByorkConfigResponse @@ -198,7 +200,6 @@ from fireblocks.models.callback_handler_request import CallbackHandlerRequest from fireblocks.models.cancel_transaction_response import CancelTransactionResponse from fireblocks.models.canton_call import CantonCall -from fireblocks.models.canton_call_allocation_withdraw import CantonCallAllocationWithdraw from fireblocks.models.canton_call_allow_list_add import CantonCallAllowListAdd from fireblocks.models.canton_call_allow_list_remove import CantonCallAllowListRemove from fireblocks.models.canton_call_details import CantonCallDetails @@ -317,6 +318,8 @@ from fireblocks.models.create_assets_request import CreateAssetsRequest from fireblocks.models.create_blockchain_request import CreateBlockchainRequest from fireblocks.models.create_blockchain_response import CreateBlockchainResponse +from fireblocks.models.create_bulk_signing_keys import CreateBulkSigningKeys +from fireblocks.models.create_bulk_signing_keys_response import CreateBulkSigningKeysResponse from fireblocks.models.create_config_operation_request import CreateConfigOperationRequest from fireblocks.models.create_connection_request import CreateConnectionRequest from fireblocks.models.create_connection_response import CreateConnectionResponse @@ -530,6 +533,7 @@ from fireblocks.models.get_automation_settings_response import GetAutomationSettingsResponse from fireblocks.models.get_billing_info_response import GetBillingInfoResponse from fireblocks.models.get_blockchain_by_id_response import GetBlockchainByIdResponse +from fireblocks.models.get_bulk_signing_keys_jobs_response import GetBulkSigningKeysJobsResponse from fireblocks.models.get_byork_verdict_response import GetByorkVerdictResponse from fireblocks.models.get_connected_accounts_credentials_public_key_response import GetConnectedAccountsCredentialsPublicKeyResponse from fireblocks.models.get_connections_response import GetConnectionsResponse @@ -688,6 +692,7 @@ from fireblocks.models.offer_response_accepted import OfferResponseAccepted from fireblocks.models.offer_response_allocation_accept import OfferResponseAllocationAccept from fireblocks.models.offer_response_allocation_reject import OfferResponseAllocationReject +from fireblocks.models.offer_response_allocation_withdraw import OfferResponseAllocationWithdraw from fireblocks.models.offer_response_dtcc_onboarding_accept import OfferResponseDtccOnboardingAccept from fireblocks.models.offer_response_dtcc_onboarding_reject import OfferResponseDtccOnboardingReject from fireblocks.models.offer_response_tradeweb_accept import OfferResponseTradewebAccept diff --git a/fireblocks/models/allow_list_payload.py b/fireblocks/models/allow_list_payload.py index 3fc92c5e..c8628a45 100644 --- a/fireblocks/models/allow_list_payload.py +++ b/fireblocks/models/allow_list_payload.py @@ -18,7 +18,7 @@ import re # noqa: F401 import json -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator +from pydantic import BaseModel, ConfigDict, Field, StrictStr from typing import Any, ClassVar, Dict, List from typing_extensions import Annotated from typing import Optional, Set @@ -28,17 +28,8 @@ class AllowListPayload(BaseModel): """ AllowListPayload """ # noqa: E501 - vault_account_id: StrictStr = Field(description="The vault account whose Canton wallet acts here.", alias="vaultAccountId") - blockchain_id: StrictStr = Field(description="The blockchain this party is connected to — `CANTON` or `CANTON_TEST`.", alias="blockchainId") wallets: Annotated[List[StrictStr], Field(min_length=1)] = Field(description="Canton party ids to add or remove.") - __properties: ClassVar[List[str]] = ["vaultAccountId", "blockchainId", "wallets"] - - @field_validator('blockchain_id') - def blockchain_id_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['CANTON', 'CANTON_TEST']): - raise ValueError("must be one of enum values ('CANTON', 'CANTON_TEST')") - return value + __properties: ClassVar[List[str]] = ["wallets"] model_config = ConfigDict( populate_by_name=True, @@ -91,8 +82,6 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: return cls.model_validate(obj) _obj = cls.model_validate({ - "vaultAccountId": obj.get("vaultAccountId"), - "blockchainId": obj.get("blockchainId"), "wallets": obj.get("wallets") }) return _obj diff --git a/fireblocks/models/bulk_proof_of_ownership.py b/fireblocks/models/bulk_proof_of_ownership.py new file mode 100644 index 00000000..04308136 --- /dev/null +++ b/fireblocks/models/bulk_proof_of_ownership.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 +from typing import Any, ClassVar, Dict, List +from typing_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class BulkProofOfOwnership(BaseModel): + """ + Proof that the customer holds the private key. Required for every key, unlike the single key endpoint: bulk registration has no interactive step in which a proof can arrive later. + """ # noqa: E501 + message: Annotated[str, Field(min_length=64, strict=True, max_length=2048)] = Field(description="The message to be signed by the key as proof of ownership. 64 to 1024 bytes in hexadecimal format.") + signature: Annotated[str, Field(min_length=128, strict=True, max_length=128)] = Field(description="The signature of the message. 64 bytes in hexadecimal format.") + __properties: ClassVar[List[str]] = ["message", "signature"] + + 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 BulkProofOfOwnership 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 BulkProofOfOwnership from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "message": obj.get("message"), + "signature": obj.get("signature") + }) + return _obj + + diff --git a/fireblocks/models/bulk_signing_key.py b/fireblocks/models/bulk_signing_key.py new file mode 100644 index 00000000..93298414 --- /dev/null +++ b/fireblocks/models/bulk_signing_key.py @@ -0,0 +1,99 @@ +# 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 +from typing_extensions import Annotated +from fireblocks.models.bulk_proof_of_ownership import BulkProofOfOwnership +from typing import Optional, Set +from typing_extensions import Self + +class BulkSigningKey(BaseModel): + """ + BulkSigningKey + """ # noqa: E501 + signing_device_key_id: Annotated[str, Field(strict=True, max_length=256)] = Field(description="The ID, name or label of the key specified on the customer's signing device.", alias="signingDeviceKeyId") + signed_cert_pem: StrictStr = Field(description="The signed certificate that includes the public key PEM of the signing key, signed by the validation key declared for the request.", alias="signedCertPem") + agent_user_id: Annotated[str, Field(min_length=36, strict=True, max_length=36)] = Field(description="Id of user to which this key belongs", alias="agentUserId") + proof_of_ownership: BulkProofOfOwnership = Field(alias="proofOfOwnership") + __properties: ClassVar[List[str]] = ["signingDeviceKeyId", "signedCertPem", "agentUserId", "proofOfOwnership"] + + 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 BulkSigningKey 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 proof_of_ownership + if self.proof_of_ownership: + _dict['proofOfOwnership'] = self.proof_of_ownership.to_dict() + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of BulkSigningKey from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "signingDeviceKeyId": obj.get("signingDeviceKeyId"), + "signedCertPem": obj.get("signedCertPem"), + "agentUserId": obj.get("agentUserId"), + "proofOfOwnership": BulkProofOfOwnership.from_dict(obj["proofOfOwnership"]) if obj.get("proofOfOwnership") is not None else None + }) + return _obj + + diff --git a/fireblocks/models/bulk_signing_key_job.py b/fireblocks/models/bulk_signing_key_job.py new file mode 100644 index 00000000..ba391657 --- /dev/null +++ b/fireblocks/models/bulk_signing_key_job.py @@ -0,0 +1,123 @@ +# 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, StrictFloat, StrictInt, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional, Union +from typing import Optional, Set +from typing_extensions import Self + +class BulkSigningKeyJob(BaseModel): + """ + BulkSigningKeyJob + """ # noqa: E501 + job_id: StrictStr = Field(description="Id of the registration job.", alias="jobId") + status: StrictStr = Field(description="QUEUED means the job is waiting for another bulk registration to finish, since only a limited number run at once. IN_PROGRESS means it is running. COMPLETED means every submitted key is present in the workspace. FAILED means the request was refused before any key was registered, so `reason` has to be acted on before resubmitting is worth anything. INCOMPLETE means some keys are not registered; resubmitting the same request retries exactly those, and `reason` says whether that is likely to help -- keys not registered because of a transient failure will succeed, a key whose certificate or proof was rejected will be rejected again.") + total: Union[StrictFloat, StrictInt] = Field(description="Keys in the submitted request.") + created: Union[StrictFloat, StrictInt] = Field(description="Keys registered by this job.") + already_registered: Union[StrictFloat, StrictInt] = Field(description="Keys already present in the workspace, recognized and skipped.", alias="alreadyRegistered") + failed: Union[StrictFloat, StrictInt] = Field(description="Keys rejected. See `reason`.") + reason: Optional[StrictStr] = Field(default=None, description="Free text describing what went wrong. Null while the job is healthy.") + file_hash: Optional[StrictStr] = Field(default=None, description="Hex digest over the submitted keys. Two jobs sharing a digest were the same set of keys, which makes a sequence of resubmissions recognizable.", alias="fileHash") + created_at: Union[StrictFloat, StrictInt] = Field(description="Creation date (timestamp) in milliseconds.", alias="createdAt") + updated_at: Union[StrictFloat, StrictInt] = Field(description="Last progress update (timestamp) in milliseconds.", alias="updatedAt") + __properties: ClassVar[List[str]] = ["jobId", "status", "total", "created", "alreadyRegistered", "failed", "reason", "fileHash", "createdAt", "updatedAt"] + + @field_validator('status') + def status_validate_enum(cls, value): + """Validates the enum""" + if value not in set(['QUEUED', 'IN_PROGRESS', 'COMPLETED', 'INCOMPLETE', 'FAILED']): + raise ValueError("must be one of enum values ('QUEUED', 'IN_PROGRESS', 'COMPLETED', 'INCOMPLETE', 'FAILED')") + 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 BulkSigningKeyJob 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, + ) + # set to None if reason (nullable) is None + # and model_fields_set contains the field + if self.reason is None and "reason" in self.model_fields_set: + _dict['reason'] = None + + # set to None if file_hash (nullable) is None + # and model_fields_set contains the field + if self.file_hash is None and "file_hash" in self.model_fields_set: + _dict['fileHash'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of BulkSigningKeyJob from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "jobId": obj.get("jobId"), + "status": obj.get("status"), + "total": obj.get("total"), + "created": obj.get("created"), + "alreadyRegistered": obj.get("alreadyRegistered"), + "failed": obj.get("failed"), + "reason": obj.get("reason"), + "fileHash": obj.get("fileHash"), + "createdAt": obj.get("createdAt"), + "updatedAt": obj.get("updatedAt") + }) + return _obj + + diff --git a/fireblocks/models/canton_call.py b/fireblocks/models/canton_call.py index 4ee336e0..d9ae0453 100644 --- a/fireblocks/models/canton_call.py +++ b/fireblocks/models/canton_call.py @@ -18,7 +18,6 @@ import pprint from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator from typing import Any, List, Optional -from fireblocks.models.canton_call_allocation_withdraw import CantonCallAllocationWithdraw from fireblocks.models.canton_call_allow_list_add import CantonCallAllowListAdd from fireblocks.models.canton_call_allow_list_remove import CantonCallAllowListRemove from fireblocks.models.canton_call_end_investor_invite import CantonCallEndInvestorInvite @@ -29,7 +28,7 @@ from typing import Union, List, Set, Optional, Dict from typing_extensions import Literal, Self -CANTONCALL_ONE_OF_SCHEMAS = ["CantonCallAllocationWithdraw", "CantonCallAllowListAdd", "CantonCallAllowListRemove", "CantonCallEndInvestorInvite", "CantonCallEndInvestorInviteCancel", "CantonCallEndInvestorOffboard", "CantonCallParticipantOnboarding"] +CANTONCALL_ONE_OF_SCHEMAS = ["CantonCallAllowListAdd", "CantonCallAllowListRemove", "CantonCallEndInvestorInvite", "CantonCallEndInvestorInviteCancel", "CantonCallEndInvestorOffboard", "CantonCallParticipantOnboarding"] class CantonCall(BaseModel): """ @@ -47,10 +46,8 @@ class CantonCall(BaseModel): oneof_schema_5_validator: Optional[CantonCallAllowListAdd] = None # data type: CantonCallAllowListRemove oneof_schema_6_validator: Optional[CantonCallAllowListRemove] = None - # data type: CantonCallAllocationWithdraw - oneof_schema_7_validator: Optional[CantonCallAllocationWithdraw] = None - actual_instance: Optional[Union[CantonCallAllocationWithdraw, CantonCallAllowListAdd, CantonCallAllowListRemove, CantonCallEndInvestorInvite, CantonCallEndInvestorInviteCancel, CantonCallEndInvestorOffboard, CantonCallParticipantOnboarding]] = None - one_of_schemas: Set[str] = { "CantonCallAllocationWithdraw", "CantonCallAllowListAdd", "CantonCallAllowListRemove", "CantonCallEndInvestorInvite", "CantonCallEndInvestorInviteCancel", "CantonCallEndInvestorOffboard", "CantonCallParticipantOnboarding" } + actual_instance: Optional[Union[CantonCallAllowListAdd, CantonCallAllowListRemove, CantonCallEndInvestorInvite, CantonCallEndInvestorInviteCancel, CantonCallEndInvestorOffboard, CantonCallParticipantOnboarding]] = None + one_of_schemas: Set[str] = { "CantonCallAllowListAdd", "CantonCallAllowListRemove", "CantonCallEndInvestorInvite", "CantonCallEndInvestorInviteCancel", "CantonCallEndInvestorOffboard", "CantonCallParticipantOnboarding" } model_config = ConfigDict( validate_assignment=True, @@ -106,17 +103,12 @@ def actual_instance_must_validate_oneof(cls, v): error_messages.append(f"Error! Input type `{type(v)}` is not `CantonCallAllowListRemove`") else: match += 1 - # validate data type: CantonCallAllocationWithdraw - if not isinstance(v, CantonCallAllocationWithdraw): - error_messages.append(f"Error! Input type `{type(v)}` is not `CantonCallAllocationWithdraw`") - else: - match += 1 if match > 1: # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in CantonCall with oneOf schemas: CantonCallAllocationWithdraw, CantonCallAllowListAdd, CantonCallAllowListRemove, CantonCallEndInvestorInvite, CantonCallEndInvestorInviteCancel, CantonCallEndInvestorOffboard, CantonCallParticipantOnboarding. Details: " + ", ".join(error_messages)) + raise ValueError("Multiple matches found when setting `actual_instance` in CantonCall with oneOf schemas: CantonCallAllowListAdd, CantonCallAllowListRemove, CantonCallEndInvestorInvite, CantonCallEndInvestorInviteCancel, CantonCallEndInvestorOffboard, CantonCallParticipantOnboarding. Details: " + ", ".join(error_messages)) elif match == 0: # no match - raise ValueError("No match found when setting `actual_instance` in CantonCall with oneOf schemas: CantonCallAllocationWithdraw, CantonCallAllowListAdd, CantonCallAllowListRemove, CantonCallEndInvestorInvite, CantonCallEndInvestorInviteCancel, CantonCallEndInvestorOffboard, CantonCallParticipantOnboarding. Details: " + ", ".join(error_messages)) + raise ValueError("No match found when setting `actual_instance` in CantonCall with oneOf schemas: CantonCallAllowListAdd, CantonCallAllowListRemove, CantonCallEndInvestorInvite, CantonCallEndInvestorInviteCancel, CantonCallEndInvestorOffboard, CantonCallParticipantOnboarding. Details: " + ", ".join(error_messages)) else: return v @@ -167,19 +159,13 @@ def from_json(cls, json_str: str) -> Self: match += 1 except (ValidationError, ValueError) as e: error_messages.append(str(e)) - # deserialize data into CantonCallAllocationWithdraw - try: - instance.actual_instance = CantonCallAllocationWithdraw.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 CantonCall with oneOf schemas: CantonCallAllocationWithdraw, CantonCallAllowListAdd, CantonCallAllowListRemove, CantonCallEndInvestorInvite, CantonCallEndInvestorInviteCancel, CantonCallEndInvestorOffboard, CantonCallParticipantOnboarding. Details: " + ", ".join(error_messages)) + raise ValueError("Multiple matches found when deserializing the JSON string into CantonCall with oneOf schemas: CantonCallAllowListAdd, CantonCallAllowListRemove, CantonCallEndInvestorInvite, CantonCallEndInvestorInviteCancel, CantonCallEndInvestorOffboard, CantonCallParticipantOnboarding. Details: " + ", ".join(error_messages)) elif match == 0: # no match - raise ValueError("No match found when deserializing the JSON string into CantonCall with oneOf schemas: CantonCallAllocationWithdraw, CantonCallAllowListAdd, CantonCallAllowListRemove, CantonCallEndInvestorInvite, CantonCallEndInvestorInviteCancel, CantonCallEndInvestorOffboard, CantonCallParticipantOnboarding. Details: " + ", ".join(error_messages)) + raise ValueError("No match found when deserializing the JSON string into CantonCall with oneOf schemas: CantonCallAllowListAdd, CantonCallAllowListRemove, CantonCallEndInvestorInvite, CantonCallEndInvestorInviteCancel, CantonCallEndInvestorOffboard, CantonCallParticipantOnboarding. Details: " + ", ".join(error_messages)) else: return instance @@ -193,7 +179,7 @@ def to_json(self) -> str: else: return json.dumps(self.actual_instance) - def to_dict(self) -> Optional[Union[Dict[str, Any], CantonCallAllocationWithdraw, CantonCallAllowListAdd, CantonCallAllowListRemove, CantonCallEndInvestorInvite, CantonCallEndInvestorInviteCancel, CantonCallEndInvestorOffboard, CantonCallParticipantOnboarding]]: + def to_dict(self) -> Optional[Union[Dict[str, Any], CantonCallAllowListAdd, CantonCallAllowListRemove, CantonCallEndInvestorInvite, CantonCallEndInvestorInviteCancel, CantonCallEndInvestorOffboard, CantonCallParticipantOnboarding]]: """Returns the dict representation of the actual instance""" if self.actual_instance is None: return None diff --git a/fireblocks/models/canton_call_allow_list_add.py b/fireblocks/models/canton_call_allow_list_add.py index 44a19a31..f552327e 100644 --- a/fireblocks/models/canton_call_allow_list_add.py +++ b/fireblocks/models/canton_call_allow_list_add.py @@ -29,8 +29,10 @@ class CantonCallAllowListAdd(BaseModel): CantonCallAllowListAdd """ # noqa: E501 type: StrictStr = Field(description="Which call to make. Selects the shape of `payload`.") + vault_account_id: StrictStr = Field(description="The vault account whose Canton wallet makes this call.", alias="vaultAccountId") + blockchain_id: StrictStr = Field(description="The blockchain the vault account's Canton party is connected to — `CANTON` or `CANTON_TEST`.", alias="blockchainId") payload: AllowListPayload - __properties: ClassVar[List[str]] = ["type", "payload"] + __properties: ClassVar[List[str]] = ["type", "vaultAccountId", "blockchainId", "payload"] @field_validator('type') def type_validate_enum(cls, value): @@ -39,6 +41,13 @@ def type_validate_enum(cls, value): raise ValueError("must be one of enum values ('DTCC_ALLOW_LIST_ADD')") return value + @field_validator('blockchain_id') + def blockchain_id_validate_enum(cls, value): + """Validates the enum""" + if value not in set(['CANTON', 'CANTON_TEST']): + raise ValueError("must be one of enum values ('CANTON', 'CANTON_TEST')") + return value + model_config = ConfigDict( populate_by_name=True, validate_assignment=True, @@ -94,6 +103,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: _obj = cls.model_validate({ "type": obj.get("type"), + "vaultAccountId": obj.get("vaultAccountId"), + "blockchainId": obj.get("blockchainId"), "payload": AllowListPayload.from_dict(obj["payload"]) if obj.get("payload") is not None else None }) return _obj diff --git a/fireblocks/models/canton_call_allow_list_remove.py b/fireblocks/models/canton_call_allow_list_remove.py index 6a8a91ae..605c3d05 100644 --- a/fireblocks/models/canton_call_allow_list_remove.py +++ b/fireblocks/models/canton_call_allow_list_remove.py @@ -29,8 +29,10 @@ class CantonCallAllowListRemove(BaseModel): CantonCallAllowListRemove """ # noqa: E501 type: StrictStr = Field(description="Which call to make. Selects the shape of `payload`.") + vault_account_id: StrictStr = Field(description="The vault account whose Canton wallet makes this call.", alias="vaultAccountId") + blockchain_id: StrictStr = Field(description="The blockchain the vault account's Canton party is connected to — `CANTON` or `CANTON_TEST`.", alias="blockchainId") payload: AllowListPayload - __properties: ClassVar[List[str]] = ["type", "payload"] + __properties: ClassVar[List[str]] = ["type", "vaultAccountId", "blockchainId", "payload"] @field_validator('type') def type_validate_enum(cls, value): @@ -39,6 +41,13 @@ def type_validate_enum(cls, value): raise ValueError("must be one of enum values ('DTCC_ALLOW_LIST_REMOVE')") return value + @field_validator('blockchain_id') + def blockchain_id_validate_enum(cls, value): + """Validates the enum""" + if value not in set(['CANTON', 'CANTON_TEST']): + raise ValueError("must be one of enum values ('CANTON', 'CANTON_TEST')") + return value + model_config = ConfigDict( populate_by_name=True, validate_assignment=True, @@ -94,6 +103,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: _obj = cls.model_validate({ "type": obj.get("type"), + "vaultAccountId": obj.get("vaultAccountId"), + "blockchainId": obj.get("blockchainId"), "payload": AllowListPayload.from_dict(obj["payload"]) if obj.get("payload") is not None else None }) return _obj diff --git a/fireblocks/models/canton_call_details.py b/fireblocks/models/canton_call_details.py index 22bcfe20..64d2819e 100644 --- a/fireblocks/models/canton_call_details.py +++ b/fireblocks/models/canton_call_details.py @@ -31,9 +31,9 @@ class CantonCallDetails(BaseModel): """ # noqa: E501 version: Optional[StrictInt] = Field(default=None, description="The shape of this block. Stamped at creation and never changed, so a reader always knows which version it is holding.") domain: Optional[CantonDomainEnum] = None - type: Optional[StrictStr] = Field(default=None, description="The call type, matching the `type` sent when the call was created.") + type: Optional[StrictStr] = Field(default=None, description="The call type, matching the `type` sent when the call was created. Transactions created before a type moved to the offers endpoint keep the value they were written with — `ALLOCATION_WITHDRAW` is one; new withdraws are offer responses.") vendor: Optional[CantonVendorEnum] = None - original_transaction_id: Optional[StrictStr] = Field(default=None, description="The transaction this call acts on. On a withdraw it is the allocation that was withdrawn, so the withdraw transaction read on its own still says what it withdrew.", alias="originalTransactionId") + original_transaction_id: Optional[StrictStr] = Field(default=None, description="The transaction this call acts on, where it acts on one.", alias="originalTransactionId") __properties: ClassVar[List[str]] = ["version", "domain", "type", "vendor", "originalTransactionId"] model_config = ConfigDict( diff --git a/fireblocks/models/canton_call_end_investor_invite.py b/fireblocks/models/canton_call_end_investor_invite.py index ae0009e4..cfc12c01 100644 --- a/fireblocks/models/canton_call_end_investor_invite.py +++ b/fireblocks/models/canton_call_end_investor_invite.py @@ -29,8 +29,10 @@ class CantonCallEndInvestorInvite(BaseModel): CantonCallEndInvestorInvite """ # noqa: E501 type: StrictStr = Field(description="Which call to make. Selects the shape of `payload`.") + vault_account_id: StrictStr = Field(description="The vault account whose Canton wallet makes this call.", alias="vaultAccountId") + blockchain_id: StrictStr = Field(description="The blockchain the vault account's Canton party is connected to — `CANTON` or `CANTON_TEST`.", alias="blockchainId") payload: EndInvestorPayload - __properties: ClassVar[List[str]] = ["type", "payload"] + __properties: ClassVar[List[str]] = ["type", "vaultAccountId", "blockchainId", "payload"] @field_validator('type') def type_validate_enum(cls, value): @@ -39,6 +41,13 @@ def type_validate_enum(cls, value): raise ValueError("must be one of enum values ('DTCC_END_INVESTOR_INVITE')") return value + @field_validator('blockchain_id') + def blockchain_id_validate_enum(cls, value): + """Validates the enum""" + if value not in set(['CANTON', 'CANTON_TEST']): + raise ValueError("must be one of enum values ('CANTON', 'CANTON_TEST')") + return value + model_config = ConfigDict( populate_by_name=True, validate_assignment=True, @@ -94,6 +103,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: _obj = cls.model_validate({ "type": obj.get("type"), + "vaultAccountId": obj.get("vaultAccountId"), + "blockchainId": obj.get("blockchainId"), "payload": EndInvestorPayload.from_dict(obj["payload"]) if obj.get("payload") is not None else None }) return _obj diff --git a/fireblocks/models/canton_call_end_investor_invite_cancel.py b/fireblocks/models/canton_call_end_investor_invite_cancel.py index da7b63fe..ed8640cb 100644 --- a/fireblocks/models/canton_call_end_investor_invite_cancel.py +++ b/fireblocks/models/canton_call_end_investor_invite_cancel.py @@ -29,8 +29,10 @@ class CantonCallEndInvestorInviteCancel(BaseModel): CantonCallEndInvestorInviteCancel """ # noqa: E501 type: StrictStr = Field(description="Which call to make. Selects the shape of `payload`.") + vault_account_id: StrictStr = Field(description="The vault account whose Canton wallet makes this call.", alias="vaultAccountId") + blockchain_id: StrictStr = Field(description="The blockchain the vault account's Canton party is connected to — `CANTON` or `CANTON_TEST`.", alias="blockchainId") payload: EndInvestorPayload - __properties: ClassVar[List[str]] = ["type", "payload"] + __properties: ClassVar[List[str]] = ["type", "vaultAccountId", "blockchainId", "payload"] @field_validator('type') def type_validate_enum(cls, value): @@ -39,6 +41,13 @@ def type_validate_enum(cls, value): raise ValueError("must be one of enum values ('DTCC_END_INVESTOR_INVITE_CANCEL')") return value + @field_validator('blockchain_id') + def blockchain_id_validate_enum(cls, value): + """Validates the enum""" + if value not in set(['CANTON', 'CANTON_TEST']): + raise ValueError("must be one of enum values ('CANTON', 'CANTON_TEST')") + return value + model_config = ConfigDict( populate_by_name=True, validate_assignment=True, @@ -94,6 +103,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: _obj = cls.model_validate({ "type": obj.get("type"), + "vaultAccountId": obj.get("vaultAccountId"), + "blockchainId": obj.get("blockchainId"), "payload": EndInvestorPayload.from_dict(obj["payload"]) if obj.get("payload") is not None else None }) return _obj diff --git a/fireblocks/models/canton_call_end_investor_offboard.py b/fireblocks/models/canton_call_end_investor_offboard.py index 2d8c342f..346ba1b2 100644 --- a/fireblocks/models/canton_call_end_investor_offboard.py +++ b/fireblocks/models/canton_call_end_investor_offboard.py @@ -29,8 +29,10 @@ class CantonCallEndInvestorOffboard(BaseModel): CantonCallEndInvestorOffboard """ # noqa: E501 type: StrictStr = Field(description="Which call to make. Selects the shape of `payload`.") + vault_account_id: StrictStr = Field(description="The vault account whose Canton wallet makes this call.", alias="vaultAccountId") + blockchain_id: StrictStr = Field(description="The blockchain the vault account's Canton party is connected to — `CANTON` or `CANTON_TEST`.", alias="blockchainId") payload: EndInvestorPayload - __properties: ClassVar[List[str]] = ["type", "payload"] + __properties: ClassVar[List[str]] = ["type", "vaultAccountId", "blockchainId", "payload"] @field_validator('type') def type_validate_enum(cls, value): @@ -39,6 +41,13 @@ def type_validate_enum(cls, value): raise ValueError("must be one of enum values ('DTCC_END_INVESTOR_OFFBOARD')") return value + @field_validator('blockchain_id') + def blockchain_id_validate_enum(cls, value): + """Validates the enum""" + if value not in set(['CANTON', 'CANTON_TEST']): + raise ValueError("must be one of enum values ('CANTON', 'CANTON_TEST')") + return value + model_config = ConfigDict( populate_by_name=True, validate_assignment=True, @@ -94,6 +103,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: _obj = cls.model_validate({ "type": obj.get("type"), + "vaultAccountId": obj.get("vaultAccountId"), + "blockchainId": obj.get("blockchainId"), "payload": EndInvestorPayload.from_dict(obj["payload"]) if obj.get("payload") is not None else None }) return _obj diff --git a/fireblocks/models/canton_call_participant_onboarding.py b/fireblocks/models/canton_call_participant_onboarding.py index d49de55c..0c665db4 100644 --- a/fireblocks/models/canton_call_participant_onboarding.py +++ b/fireblocks/models/canton_call_participant_onboarding.py @@ -19,7 +19,7 @@ import json from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List +from typing import Any, ClassVar, Dict, List, Optional from fireblocks.models.participant_onboarding_payload import ParticipantOnboardingPayload from typing import Optional, Set from typing_extensions import Self @@ -29,8 +29,10 @@ class CantonCallParticipantOnboarding(BaseModel): CantonCallParticipantOnboarding """ # noqa: E501 type: StrictStr = Field(description="Which call to make. Selects the shape of `payload`.") - payload: ParticipantOnboardingPayload - __properties: ClassVar[List[str]] = ["type", "payload"] + vault_account_id: StrictStr = Field(description="The vault account whose Canton wallet makes this call.", alias="vaultAccountId") + blockchain_id: StrictStr = Field(description="The blockchain the vault account's Canton party is connected to — `CANTON` or `CANTON_TEST`.", alias="blockchainId") + payload: Optional[ParticipantOnboardingPayload] = None + __properties: ClassVar[List[str]] = ["type", "vaultAccountId", "blockchainId", "payload"] @field_validator('type') def type_validate_enum(cls, value): @@ -39,6 +41,13 @@ def type_validate_enum(cls, value): raise ValueError("must be one of enum values ('DTCC_PARTICIPANT_ONBOARDING')") return value + @field_validator('blockchain_id') + def blockchain_id_validate_enum(cls, value): + """Validates the enum""" + if value not in set(['CANTON', 'CANTON_TEST']): + raise ValueError("must be one of enum values ('CANTON', 'CANTON_TEST')") + return value + model_config = ConfigDict( populate_by_name=True, validate_assignment=True, @@ -94,6 +103,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: _obj = cls.model_validate({ "type": obj.get("type"), + "vaultAccountId": obj.get("vaultAccountId"), + "blockchainId": obj.get("blockchainId"), "payload": ParticipantOnboardingPayload.from_dict(obj["payload"]) if obj.get("payload") is not None else None }) return _obj diff --git a/fireblocks/models/canton_offer_response_details.py b/fireblocks/models/canton_offer_response_details.py index dc15ad69..cbce8db4 100644 --- a/fireblocks/models/canton_offer_response_details.py +++ b/fireblocks/models/canton_offer_response_details.py @@ -28,17 +28,19 @@ class CantonOfferResponseDetails(BaseModel): """ - The transaction belongs to an offer conversation: the offer itself, the response to it, or a leg that carries no answer of its own. The only block that changes over a transaction's lifetime. + The transaction belongs to an offer conversation: the offer itself, a response to it, or a leg that carries no answer of its own. The only block that changes over a transaction's lifetime. An offer can have more than one response — an allocation offer is accepted and later withdrawn — so every response transaction states which answer it is in `responseType`. """ # noqa: E501 version: Optional[StrictInt] = Field(default=None, description="The shape of this block. Stamped at creation and never changed, so a reader always knows which version it is holding.") domain: Optional[CantonDomainEnum] = None vendor: Optional[CantonVendorEnum] = None - available_responses: Optional[List[StrictStr]] = Field(default=None, description="The responses that can be sent for this offer right now. An empty array means nothing is answerable on this transaction — which is the difference between an actionable offer and a linked leg that shares its sub-status.", alias="availableResponses") + available_responses: Optional[List[StrictStr]] = Field(default=None, description="The responses this offer accepts — copy one into `responseType` to answer it. Present on the offer only, set when it arrives and never changed: it states what the offer TYPE accepts, not whether it is answerable right now. The respond endpoint is the authority on that, and answers `409` when the offer's state or expiry rules a response out — for example an `ALLOCATION_WITHDRAW` sent before the accept has settled. An empty array means nothing is answerable on this transaction — the difference between an actionable offer and a linked leg that shares its sub-status.", alias="availableResponses") expires_at: Optional[datetime] = Field(default=None, description="When the offer expires, where it has a deadline.", alias="expiresAt") approval_transaction_id: Optional[StrictStr] = Field(default=None, description="The response transaction, once one has been dispatched for this offer.", alias="approvalTransactionId") original_transaction_id: Optional[StrictStr] = Field(default=None, description="The transaction this one relates to — the offer a response answered.", alias="originalTransactionId") + response_type: Optional[StrictStr] = Field(default=None, description="On a response transaction, which answer it is — the `responseType` that was sent. Absent on the offer itself.", alias="responseType") + allocation_transaction_id: Optional[StrictStr] = Field(default=None, description="On an `ALLOCATION_WITHDRAW` response only — the accept whose allocation this withdraw released, so the withdraw transaction read on its own says what it undid.", alias="allocationTransactionId") verdict: Optional[StrictStr] = Field(default=None, description="The outcome, set once the transaction reaches a terminal status.") - __properties: ClassVar[List[str]] = ["version", "domain", "vendor", "availableResponses", "expiresAt", "approvalTransactionId", "originalTransactionId", "verdict"] + __properties: ClassVar[List[str]] = ["version", "domain", "vendor", "availableResponses", "expiresAt", "approvalTransactionId", "originalTransactionId", "responseType", "allocationTransactionId", "verdict"] @field_validator('verdict') def verdict_validate_enum(cls, value): @@ -108,6 +110,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "expiresAt": obj.get("expiresAt"), "approvalTransactionId": obj.get("approvalTransactionId"), "originalTransactionId": obj.get("originalTransactionId"), + "responseType": obj.get("responseType"), + "allocationTransactionId": obj.get("allocationTransactionId"), "verdict": obj.get("verdict") }) return _obj diff --git a/fireblocks/models/create_bulk_signing_keys.py b/fireblocks/models/create_bulk_signing_keys.py new file mode 100644 index 00000000..8d59bbd8 --- /dev/null +++ b/fireblocks/models/create_bulk_signing_keys.py @@ -0,0 +1,99 @@ +# 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 +from typing_extensions import Annotated +from fireblocks.models.bulk_signing_key import BulkSigningKey +from typing import Optional, Set +from typing_extensions import Self + +class CreateBulkSigningKeys(BaseModel): + """ + CreateBulkSigningKeys + """ # noqa: E501 + validation_key_id: Annotated[str, Field(strict=True, max_length=64)] = Field(description="The id of the validation key that signed every certificate in this request, as returned when the validation key was registered. Not the signingDeviceKeyId of any signing key.", alias="validationKeyId") + keys: Annotated[List[BulkSigningKey], Field(min_length=1, max_length=10000)] = Field(description="The signing keys to register.") + __properties: ClassVar[List[str]] = ["validationKeyId", "keys"] + + 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 CreateBulkSigningKeys 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 keys (list) + _items = [] + if self.keys: + for _item_keys in self.keys: + if _item_keys: + _items.append(_item_keys.to_dict()) + _dict['keys'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of CreateBulkSigningKeys from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "validationKeyId": obj.get("validationKeyId"), + "keys": [BulkSigningKey.from_dict(_item) for _item in obj["keys"]] if obj.get("keys") is not None else None + }) + return _obj + + diff --git a/fireblocks/models/allocation_withdraw_payload.py b/fireblocks/models/create_bulk_signing_keys_response.py similarity index 79% rename from fireblocks/models/allocation_withdraw_payload.py rename to fireblocks/models/create_bulk_signing_keys_response.py index 4e67253e..9fbba665 100644 --- a/fireblocks/models/allocation_withdraw_payload.py +++ b/fireblocks/models/create_bulk_signing_keys_response.py @@ -23,12 +23,12 @@ from typing import Optional, Set from typing_extensions import Self -class AllocationWithdrawPayload(BaseModel): +class CreateBulkSigningKeysResponse(BaseModel): """ - AllocationWithdrawPayload + CreateBulkSigningKeysResponse """ # noqa: E501 - allocation_transaction_id: StrictStr = Field(description="The Fireblocks transaction id of the outgoing response that created the allocation. The allocation is resolved from it — Canton contract ids are never accepted here.", alias="allocationTransactionId") - __properties: ClassVar[List[str]] = ["allocationTransactionId"] + job_id: StrictStr = Field(description="Id of the registration job. Poll it for progress.", alias="jobId") + __properties: ClassVar[List[str]] = ["jobId"] model_config = ConfigDict( populate_by_name=True, @@ -48,7 +48,7 @@ def to_json(self) -> str: @classmethod def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AllocationWithdrawPayload from a JSON string""" + """Create an instance of CreateBulkSigningKeysResponse from a JSON string""" return cls.from_dict(json.loads(json_str)) def to_dict(self) -> Dict[str, Any]: @@ -73,7 +73,7 @@ def to_dict(self) -> Dict[str, Any]: @classmethod def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AllocationWithdrawPayload from a dict""" + """Create an instance of CreateBulkSigningKeysResponse from a dict""" if obj is None: return None @@ -81,7 +81,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: return cls.model_validate(obj) _obj = cls.model_validate({ - "allocationTransactionId": obj.get("allocationTransactionId") + "jobId": obj.get("jobId") }) return _obj diff --git a/fireblocks/models/end_investor_payload.py b/fireblocks/models/end_investor_payload.py index baa634b4..f8326b2d 100644 --- a/fireblocks/models/end_investor_payload.py +++ b/fireblocks/models/end_investor_payload.py @@ -18,7 +18,7 @@ import re # noqa: F401 import json -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator +from pydantic import BaseModel, ConfigDict, Field, StrictStr from typing import Any, ClassVar, Dict, List from typing import Optional, Set from typing_extensions import Self @@ -27,17 +27,8 @@ class EndInvestorPayload(BaseModel): """ Shared by invite / invite-cancel / offboard — identical wire shape, different verb. """ # noqa: E501 - vault_account_id: StrictStr = Field(description="The vault account whose Canton wallet acts here.", alias="vaultAccountId") - blockchain_id: StrictStr = Field(description="The blockchain this party is connected to — `CANTON` or `CANTON_TEST`.", alias="blockchainId") end_investor: StrictStr = Field(description="The end investor's Canton party id.", alias="endInvestor") - __properties: ClassVar[List[str]] = ["vaultAccountId", "blockchainId", "endInvestor"] - - @field_validator('blockchain_id') - def blockchain_id_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['CANTON', 'CANTON_TEST']): - raise ValueError("must be one of enum values ('CANTON', 'CANTON_TEST')") - return value + __properties: ClassVar[List[str]] = ["endInvestor"] model_config = ConfigDict( populate_by_name=True, @@ -90,8 +81,6 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: return cls.model_validate(obj) _obj = cls.model_validate({ - "vaultAccountId": obj.get("vaultAccountId"), - "blockchainId": obj.get("blockchainId"), "endInvestor": obj.get("endInvestor") }) return _obj diff --git a/fireblocks/models/canton_call_allocation_withdraw.py b/fireblocks/models/get_bulk_signing_keys_jobs_response.py similarity index 67% rename from fireblocks/models/canton_call_allocation_withdraw.py rename to fireblocks/models/get_bulk_signing_keys_jobs_response.py index 3d1398ee..90de81fe 100644 --- a/fireblocks/models/canton_call_allocation_withdraw.py +++ b/fireblocks/models/get_bulk_signing_keys_jobs_response.py @@ -18,26 +18,19 @@ import re # noqa: F401 import json -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from fireblocks.models.allocation_withdraw_payload import AllocationWithdrawPayload +from pydantic import BaseModel, ConfigDict, Field, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from fireblocks.models.bulk_signing_key_job import BulkSigningKeyJob from typing import Optional, Set from typing_extensions import Self -class CantonCallAllocationWithdraw(BaseModel): +class GetBulkSigningKeysJobsResponse(BaseModel): """ - CantonCallAllocationWithdraw + GetBulkSigningKeysJobsResponse """ # noqa: E501 - type: StrictStr = Field(description="Which call to make. Selects the shape of `payload`.") - payload: AllocationWithdrawPayload - __properties: ClassVar[List[str]] = ["type", "payload"] - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['ALLOCATION_WITHDRAW']): - raise ValueError("must be one of enum values ('ALLOCATION_WITHDRAW')") - return value + data: List[BulkSigningKeyJob] = Field(description="Registration jobs for the workspace, newest first.") + next: Optional[StrictStr] = Field(default=None, description="Cursor to the next page. Absent on the last page.") + __properties: ClassVar[List[str]] = ["data", "next"] model_config = ConfigDict( populate_by_name=True, @@ -57,7 +50,7 @@ def to_json(self) -> str: @classmethod def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CantonCallAllocationWithdraw from a JSON string""" + """Create an instance of GetBulkSigningKeysJobsResponse from a JSON string""" return cls.from_dict(json.loads(json_str)) def to_dict(self) -> Dict[str, Any]: @@ -78,14 +71,18 @@ def to_dict(self) -> Dict[str, Any]: exclude=excluded_fields, exclude_none=True, ) - # override the default output from pydantic by calling `to_dict()` of payload - if self.payload: - _dict['payload'] = self.payload.to_dict() + # 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 return _dict @classmethod def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CantonCallAllocationWithdraw from a dict""" + """Create an instance of GetBulkSigningKeysJobsResponse from a dict""" if obj is None: return None @@ -93,8 +90,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: return cls.model_validate(obj) _obj = cls.model_validate({ - "type": obj.get("type"), - "payload": AllocationWithdrawPayload.from_dict(obj["payload"]) if obj.get("payload") is not None else None + "data": [BulkSigningKeyJob.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/offer_response.py b/fireblocks/models/offer_response.py index c9127ca9..ee337955 100644 --- a/fireblocks/models/offer_response.py +++ b/fireblocks/models/offer_response.py @@ -20,6 +20,7 @@ from typing import Any, List, Optional from fireblocks.models.offer_response_allocation_accept import OfferResponseAllocationAccept from fireblocks.models.offer_response_allocation_reject import OfferResponseAllocationReject +from fireblocks.models.offer_response_allocation_withdraw import OfferResponseAllocationWithdraw from fireblocks.models.offer_response_dtcc_onboarding_accept import OfferResponseDtccOnboardingAccept from fireblocks.models.offer_response_dtcc_onboarding_reject import OfferResponseDtccOnboardingReject from fireblocks.models.offer_response_tradeweb_accept import OfferResponseTradewebAccept @@ -31,7 +32,7 @@ from typing import Union, List, Set, Optional, Dict from typing_extensions import Literal, Self -OFFERRESPONSE_ONE_OF_SCHEMAS = ["OfferResponseAllocationAccept", "OfferResponseAllocationReject", "OfferResponseDtccOnboardingAccept", "OfferResponseDtccOnboardingReject", "OfferResponseTradewebAccept", "OfferResponseTradewebReject", "OfferResponseTransferAccept", "OfferResponseTransferReject", "OfferResponseTransferWithdraw"] +OFFERRESPONSE_ONE_OF_SCHEMAS = ["OfferResponseAllocationAccept", "OfferResponseAllocationReject", "OfferResponseAllocationWithdraw", "OfferResponseDtccOnboardingAccept", "OfferResponseDtccOnboardingReject", "OfferResponseTradewebAccept", "OfferResponseTradewebReject", "OfferResponseTransferAccept", "OfferResponseTransferReject", "OfferResponseTransferWithdraw"] class OfferResponse(BaseModel): """ @@ -55,8 +56,10 @@ class OfferResponse(BaseModel): oneof_schema_8_validator: Optional[OfferResponseTransferReject] = None # data type: OfferResponseTransferWithdraw oneof_schema_9_validator: Optional[OfferResponseTransferWithdraw] = None - actual_instance: Optional[Union[OfferResponseAllocationAccept, OfferResponseAllocationReject, OfferResponseDtccOnboardingAccept, OfferResponseDtccOnboardingReject, OfferResponseTradewebAccept, OfferResponseTradewebReject, OfferResponseTransferAccept, OfferResponseTransferReject, OfferResponseTransferWithdraw]] = None - one_of_schemas: Set[str] = { "OfferResponseAllocationAccept", "OfferResponseAllocationReject", "OfferResponseDtccOnboardingAccept", "OfferResponseDtccOnboardingReject", "OfferResponseTradewebAccept", "OfferResponseTradewebReject", "OfferResponseTransferAccept", "OfferResponseTransferReject", "OfferResponseTransferWithdraw" } + # data type: OfferResponseAllocationWithdraw + oneof_schema_10_validator: Optional[OfferResponseAllocationWithdraw] = None + actual_instance: Optional[Union[OfferResponseAllocationAccept, OfferResponseAllocationReject, OfferResponseAllocationWithdraw, OfferResponseDtccOnboardingAccept, OfferResponseDtccOnboardingReject, OfferResponseTradewebAccept, OfferResponseTradewebReject, OfferResponseTransferAccept, OfferResponseTransferReject, OfferResponseTransferWithdraw]] = None + one_of_schemas: Set[str] = { "OfferResponseAllocationAccept", "OfferResponseAllocationReject", "OfferResponseAllocationWithdraw", "OfferResponseDtccOnboardingAccept", "OfferResponseDtccOnboardingReject", "OfferResponseTradewebAccept", "OfferResponseTradewebReject", "OfferResponseTransferAccept", "OfferResponseTransferReject", "OfferResponseTransferWithdraw" } model_config = ConfigDict( validate_assignment=True, @@ -127,12 +130,17 @@ def actual_instance_must_validate_oneof(cls, v): error_messages.append(f"Error! Input type `{type(v)}` is not `OfferResponseTransferWithdraw`") else: match += 1 + # validate data type: OfferResponseAllocationWithdraw + if not isinstance(v, OfferResponseAllocationWithdraw): + error_messages.append(f"Error! Input type `{type(v)}` is not `OfferResponseAllocationWithdraw`") + else: + match += 1 if match > 1: # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in OfferResponse with oneOf schemas: OfferResponseAllocationAccept, OfferResponseAllocationReject, OfferResponseDtccOnboardingAccept, OfferResponseDtccOnboardingReject, OfferResponseTradewebAccept, OfferResponseTradewebReject, OfferResponseTransferAccept, OfferResponseTransferReject, OfferResponseTransferWithdraw. Details: " + ", ".join(error_messages)) + raise ValueError("Multiple matches found when setting `actual_instance` in OfferResponse with oneOf schemas: OfferResponseAllocationAccept, OfferResponseAllocationReject, OfferResponseAllocationWithdraw, OfferResponseDtccOnboardingAccept, OfferResponseDtccOnboardingReject, OfferResponseTradewebAccept, OfferResponseTradewebReject, OfferResponseTransferAccept, OfferResponseTransferReject, OfferResponseTransferWithdraw. Details: " + ", ".join(error_messages)) elif match == 0: # no match - raise ValueError("No match found when setting `actual_instance` in OfferResponse with oneOf schemas: OfferResponseAllocationAccept, OfferResponseAllocationReject, OfferResponseDtccOnboardingAccept, OfferResponseDtccOnboardingReject, OfferResponseTradewebAccept, OfferResponseTradewebReject, OfferResponseTransferAccept, OfferResponseTransferReject, OfferResponseTransferWithdraw. Details: " + ", ".join(error_messages)) + raise ValueError("No match found when setting `actual_instance` in OfferResponse with oneOf schemas: OfferResponseAllocationAccept, OfferResponseAllocationReject, OfferResponseAllocationWithdraw, OfferResponseDtccOnboardingAccept, OfferResponseDtccOnboardingReject, OfferResponseTradewebAccept, OfferResponseTradewebReject, OfferResponseTransferAccept, OfferResponseTransferReject, OfferResponseTransferWithdraw. Details: " + ", ".join(error_messages)) else: return v @@ -201,13 +209,19 @@ def from_json(cls, json_str: str) -> Self: match += 1 except (ValidationError, ValueError) as e: error_messages.append(str(e)) + # deserialize data into OfferResponseAllocationWithdraw + try: + instance.actual_instance = OfferResponseAllocationWithdraw.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 OfferResponse with oneOf schemas: OfferResponseAllocationAccept, OfferResponseAllocationReject, OfferResponseDtccOnboardingAccept, OfferResponseDtccOnboardingReject, OfferResponseTradewebAccept, OfferResponseTradewebReject, OfferResponseTransferAccept, OfferResponseTransferReject, OfferResponseTransferWithdraw. Details: " + ", ".join(error_messages)) + raise ValueError("Multiple matches found when deserializing the JSON string into OfferResponse with oneOf schemas: OfferResponseAllocationAccept, OfferResponseAllocationReject, OfferResponseAllocationWithdraw, OfferResponseDtccOnboardingAccept, OfferResponseDtccOnboardingReject, OfferResponseTradewebAccept, OfferResponseTradewebReject, OfferResponseTransferAccept, OfferResponseTransferReject, OfferResponseTransferWithdraw. Details: " + ", ".join(error_messages)) elif match == 0: # no match - raise ValueError("No match found when deserializing the JSON string into OfferResponse with oneOf schemas: OfferResponseAllocationAccept, OfferResponseAllocationReject, OfferResponseDtccOnboardingAccept, OfferResponseDtccOnboardingReject, OfferResponseTradewebAccept, OfferResponseTradewebReject, OfferResponseTransferAccept, OfferResponseTransferReject, OfferResponseTransferWithdraw. Details: " + ", ".join(error_messages)) + raise ValueError("No match found when deserializing the JSON string into OfferResponse with oneOf schemas: OfferResponseAllocationAccept, OfferResponseAllocationReject, OfferResponseAllocationWithdraw, OfferResponseDtccOnboardingAccept, OfferResponseDtccOnboardingReject, OfferResponseTradewebAccept, OfferResponseTradewebReject, OfferResponseTransferAccept, OfferResponseTransferReject, OfferResponseTransferWithdraw. Details: " + ", ".join(error_messages)) else: return instance @@ -221,7 +235,7 @@ def to_json(self) -> str: else: return json.dumps(self.actual_instance) - def to_dict(self) -> Optional[Union[Dict[str, Any], OfferResponseAllocationAccept, OfferResponseAllocationReject, OfferResponseDtccOnboardingAccept, OfferResponseDtccOnboardingReject, OfferResponseTradewebAccept, OfferResponseTradewebReject, OfferResponseTransferAccept, OfferResponseTransferReject, OfferResponseTransferWithdraw]]: + def to_dict(self) -> Optional[Union[Dict[str, Any], OfferResponseAllocationAccept, OfferResponseAllocationReject, OfferResponseAllocationWithdraw, OfferResponseDtccOnboardingAccept, OfferResponseDtccOnboardingReject, OfferResponseTradewebAccept, OfferResponseTradewebReject, OfferResponseTransferAccept, OfferResponseTransferReject, OfferResponseTransferWithdraw]]: """Returns the dict representation of the actual instance""" if self.actual_instance is None: return None diff --git a/fireblocks/models/offer_response_allocation_withdraw.py b/fireblocks/models/offer_response_allocation_withdraw.py new file mode 100644 index 00000000..fe8869d0 --- /dev/null +++ b/fireblocks/models/offer_response_allocation_withdraw.py @@ -0,0 +1,95 @@ +# 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, field_validator +from typing import Any, ClassVar, Dict, List +from typing import Optional, Set +from typing_extensions import Self + +class OfferResponseAllocationWithdraw(BaseModel): + """ + Withdraw the allocation you made by accepting this offer, unlocking the holding. Carries no arguments — the allocation is resolved from the offer. Answers `409` until the accept has settled. + """ # noqa: E501 + response_type: StrictStr = Field(description="How you are answering the offer. Must be one of the values listed in the transaction's `cantonDetails.offerResponse.availableResponses` — TOP-LEVEL on the transaction, not nested under an `additionalInfo` envelope, which does not exist on `TransactionResponse`. `availableResponses` states what this offer TYPE accepts. It is set when the offer arrives and does not change, so it does NOT tell you whether the offer is still answerable — check `expiresAt` and the transaction's status for that, and expect this endpoint to be the authority: it re-checks state and expiry on every call and answers 409 when either has moved.", alias="responseType") + __properties: ClassVar[List[str]] = ["responseType"] + + @field_validator('response_type') + def response_type_validate_enum(cls, value): + """Validates the enum""" + if value not in set(['ALLOCATION_WITHDRAW']): + raise ValueError("must be one of enum values ('ALLOCATION_WITHDRAW')") + 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 OfferResponseAllocationWithdraw 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 OfferResponseAllocationWithdraw from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "responseType": obj.get("responseType") + }) + return _obj + + diff --git a/fireblocks/models/participant_onboarding_payload.py b/fireblocks/models/participant_onboarding_payload.py index fd175456..af226215 100644 --- a/fireblocks/models/participant_onboarding_payload.py +++ b/fireblocks/models/participant_onboarding_payload.py @@ -19,31 +19,22 @@ import json from datetime import datetime -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator +from pydantic import BaseModel, ConfigDict, Field, StrictStr from typing import Any, ClassVar, Dict, List, Optional from typing import Optional, Set from typing_extensions import Self class ParticipantOnboardingPayload(BaseModel): """ - ParticipantOnboardingPayload + Optional, and so is every field in it: omit `payload` entirely to onboard with DTCC's published parties for the blockchain and the default expiry. """ # noqa: E501 - vault_account_id: StrictStr = Field(description="The vault account that acts as the participant. Its Canton party is derived for you.", alias="vaultAccountId") - blockchain_id: StrictStr = Field(description="The blockchain this party is connected to — `CANTON` or `CANTON_TEST`.", alias="blockchainId") expires_at: Optional[datetime] = Field(default=None, description="When the onboarding request expires if it has not been answered. RFC 3339.", alias="expiresAt") - operator: StrictStr = Field(description="DTCC infra operator party id.") - compliance: StrictStr = Field(description="DTCC compliance party id.") - registrar: StrictStr = Field(description="DTCC registrar party id — co-signs the accept.") - client_onboarder: StrictStr = Field(description="DTCC client onboarder party id — co-signs the accept.", alias="clientOnboarder") - upgrader: StrictStr = Field(description="DTCC upgrader party id — the Model Upgrade Tool authority. Supplied by DTCC during the off-chain registration, alongside the other party ids.") - __properties: ClassVar[List[str]] = ["vaultAccountId", "blockchainId", "expiresAt", "operator", "compliance", "registrar", "clientOnboarder", "upgrader"] - - @field_validator('blockchain_id') - def blockchain_id_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['CANTON', 'CANTON_TEST']): - raise ValueError("must be one of enum values ('CANTON', 'CANTON_TEST')") - return value + operator: Optional[StrictStr] = Field(default=None, description="DTCC infra operator party id. Optional — overrides the service's default for the blockchain.") + compliance: Optional[StrictStr] = Field(default=None, description="DTCC compliance party id. Optional — overrides the service's default for the blockchain.") + registrar: Optional[StrictStr] = Field(default=None, description="DTCC registrar party id — co-signs the accept. Optional — overrides the service's default for the blockchain.") + client_onboarder: Optional[StrictStr] = Field(default=None, description="DTCC client onboarder party id — co-signs the accept. Optional — overrides the service's default for the blockchain.", alias="clientOnboarder") + upgrader: Optional[StrictStr] = Field(default=None, description="DTCC upgrader party id — the Model Upgrade Tool authority. Optional — overrides the service's default for the blockchain.") + __properties: ClassVar[List[str]] = ["expiresAt", "operator", "compliance", "registrar", "clientOnboarder", "upgrader"] model_config = ConfigDict( populate_by_name=True, @@ -96,8 +87,6 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: return cls.model_validate(obj) _obj = cls.model_validate({ - "vaultAccountId": obj.get("vaultAccountId"), - "blockchainId": obj.get("blockchainId"), "expiresAt": obj.get("expiresAt"), "operator": obj.get("operator"), "compliance": obj.get("compliance"), diff --git a/fireblocks/threaded_api_client.py b/fireblocks/threaded_api_client.py index 8c876aa9..ea130d74 100644 --- a/fireblocks/threaded_api_client.py +++ b/fireblocks/threaded_api_client.py @@ -94,6 +94,7 @@ def call_api( post_params: Optional[List[Tuple[str, Any]]] = None, _request_timeout: Optional[Union[int, float, Tuple]] = None, _response_types_map: Optional[Dict[str, ApiResponseT]] = None, + _operation_id: Optional[str] = None, ) -> Future[ApiResponse[ApiResponseT]]: header_params = header_params or {} parsed_url = urlparse(url) @@ -112,6 +113,7 @@ def call_api( post_params, _request_timeout, _response_types_map, + _operation_id, ) def _update_headers(self, header_params, method, path, body): diff --git a/pyproject.toml b/pyproject.toml index 73645886..08a27f53 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "fireblocks" -version = "34.0.0" +version = "0.0.0" description = "Fireblocks API" authors = ["Fireblocks "] license = "MIT License" diff --git a/setup.py b/setup.py index a431a550..8e55f57b 100644 --- a/setup.py +++ b/setup.py @@ -23,7 +23,7 @@ # prerequisite: setuptools # http://pypi.python.org/pypi/setuptools NAME = "fireblocks" -VERSION = "34.0.0" +VERSION = "0.0.0" PYTHON_REQUIRES = ">= 3.8" REQUIRES = [ "urllib3 >= 2.1.0, < 3.0.0", diff --git a/test/fireblocks/test_client.py b/test/fireblocks/test_client.py index 613d9b84..09603bbf 100644 --- a/test/fireblocks/test_client.py +++ b/test/fireblocks/test_client.py @@ -60,7 +60,7 @@ from fireblocks.api.tags_api import TagsApi from fireblocks.api.tempo_beta_api import TempoBetaApi from fireblocks.api.tokenization_api import TokenizationApi -from fireblocks.api.trading_beta_api import TradingBetaApi +from fireblocks.api.trading_api import TradingApi from fireblocks.api.transactions_api import TransactionsApi from fireblocks.api.travel_rule_api import TravelRuleApi from fireblocks.api.utxo_management_beta_api import UTXOManagementBetaApi @@ -219,8 +219,8 @@ def test_get_tempo_beta(fireblocks_instance): def test_get_tokenization(fireblocks_instance): assert isinstance(fireblocks_instance.tokenization, TokenizationApi) -def test_get_trading_beta(fireblocks_instance): - assert isinstance(fireblocks_instance.trading_beta, TradingBetaApi) +def test_get_trading(fireblocks_instance): + assert isinstance(fireblocks_instance.trading, TradingApi) def test_get_transactions(fireblocks_instance): assert isinstance(fireblocks_instance.transactions, TransactionsApi) diff --git a/test/fireblocks/test_lifecycle_warning.py b/test/fireblocks/test_lifecycle_warning.py new file mode 100644 index 00000000..084bf735 --- /dev/null +++ b/test/fireblocks/test_lifecycle_warning.py @@ -0,0 +1,394 @@ +""" + 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 logging + +import pytest + +from fireblocks.lifecycle_warning import ( + LIFECYCLE_STATE_HEADER, + LINK_HEADER, + LOGGER_NAME, + SUNSET_HEADER, + SUPPRESS_ENV_VAR, + build_lifecycle_warning, + is_suppressed, + warn_on_lifecycle_state, +) + +SUNSET = "Fri, 15 Jan 2027 00:00:00 GMT" +MIGRATION_GUIDE = "https://developer.fireblocks.com/docs/v2-migration" +SUCCESSOR = "https://api.fireblocks.io/v1/transactions_v2" + + +def _headers(state=None, sunset=None, link=None): + headers = {} + if state is not None: + headers[LIFECYCLE_STATE_HEADER] = state + if sunset is not None: + headers[SUNSET_HEADER] = sunset + if link is not None: + headers[LINK_HEADER] = link + return headers + + +@pytest.fixture(autouse=True) +def _suppression_not_set(monkeypatch): + """A developer may export FIREBLOCKS_SDK_SUPPRESS_LIFECYCLE_WARNING in their shell + to quiet the warnings. Tests that expect a warning must not inherit that.""" + monkeypatch.delenv(SUPPRESS_ENV_VAR, raising=False) + + +@pytest.fixture +def logs(caplog): + """Capture lifecycle warnings. Returns caplog itself: `caplog.records` must be + read during the test body, since pytest keeps a separate record list per phase.""" + caplog.set_level(logging.WARNING, logger=LOGGER_NAME) + return caplog + + +# --- emission --------------------------------------------------------------- + +def test_non_ga_state_emits_one_warning(logs): + warn_on_lifecycle_state(_headers(state="beta"), "createTransaction") + assert len(logs.records) == 1 + assert "createTransaction" in logs.records[0].getMessage() + assert "beta" in logs.records[0].getMessage() + + +def test_same_operation_twice_emits_two_warnings(logs): + """Per-execution, not deduplicated.""" + warn_on_lifecycle_state(_headers(state="beta"), "createTransaction") + warn_on_lifecycle_state(_headers(state="beta"), "createTransaction") + assert len(logs.records) == 2 + + +def test_two_different_operations_emit_two_warnings(logs): + warn_on_lifecycle_state(_headers(state="beta"), "createTransaction") + warn_on_lifecycle_state(_headers(state="closed"), "getVaultAccount", 200) + assert len(logs.records) == 2 + + +def test_warning_is_emitted_at_warning_level(logs): + warn_on_lifecycle_state(_headers(state="beta"), "createTransaction") + assert logs.records[0].levelno == logging.WARNING + assert logs.records[0].name == LOGGER_NAME + + +# --- silence ---------------------------------------------------------------- + +@pytest.mark.parametrize( + "state", + [ + "ga", + "internal", + "unlisted", + "private_beta", # the old name for beta: no longer recognised + "quantum_preview", + "", + " ", + "private beta", + "private-beta", + "