diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES index 225cbeb1..307e0a4a 100644 --- a/.openapi-generator/FILES +++ b/.openapi-generator/FILES @@ -94,9 +94,8 @@ docs/AmountOverTimeConfig.md docs/AmountRange.md docs/AmountRangeMinMax.md docs/AmountRangeMinMax2.md -docs/ApiKey.md -docs/ApiKeysPaginatedResponse.md docs/ApiUserApi.md +docs/ApiUsersPaginatedResponse.md docs/ApprovalApiKey.md docs/ApprovalApiPublicKey.md docs/ApprovalRequest.md @@ -311,7 +310,8 @@ docs/ConversionValidationFailure.md docs/ConvertAssetsRequest.md docs/ConvertAssetsResponse.md docs/Cosigner.md -docs/CosignersBetaApi.md +docs/CosignerApiUser.md +docs/CosignersApi.md docs/CosignersPaginatedResponse.md docs/CounterpartyGroup.md docs/CounterpartyGroupsPaginatedResponse.md @@ -603,8 +603,8 @@ docs/InternalWalletsApi.md docs/InvalidParamaterValueError.md docs/IssueApiUserPairingTokenResponse.md docs/JobCreated.md -docs/KeyLinkBetaApi.md -docs/KeysBetaApi.md +docs/KeyLinkApi.md +docs/KeysApi.md docs/LayerZeroAdapterCreateParams.md docs/LbtPaymentInfo.md docs/LeanAbiFunction.md @@ -746,8 +746,8 @@ docs/PaginatedAssetWalletResponse.md docs/PaginatedAssetWalletResponsePaging.md docs/PaginatedAssetsResponse.md docs/Paging.md -docs/PairApiKeyRequest.md -docs/PairApiKeyResponse.md +docs/PairApiUserRequest.md +docs/PairApiUserResponse.md docs/Parameter.md docs/ParameterWithValue.md docs/ParticipantOnboardingPayload.md @@ -1088,6 +1088,7 @@ docs/TRLinkManualDecisionAction.md docs/TRLinkManualDecisionDestinationDetail.md docs/TRLinkManualDecisionRequest.md docs/TRLinkManualDecisionResponse.md +docs/TRLinkManualDecisionResponseStatusEnum.md docs/TRLinkManualDecisionSource.md docs/TRLinkMissingTrmAction.md docs/TRLinkMissingTrmAction2.md @@ -1403,7 +1404,7 @@ fireblocks/api/contacts_api.py fireblocks/api/contract_interactions_api.py fireblocks/api/contract_templates_api.py fireblocks/api/contracts_api.py -fireblocks/api/cosigners_beta_api.py +fireblocks/api/cosigners_api.py fireblocks/api/deployed_contracts_api.py fireblocks/api/earn_api.py fireblocks/api/embedded_wallets_api.py @@ -1413,8 +1414,8 @@ fireblocks/api/fiat_accounts_api.py fireblocks/api/gas_stations_api.py fireblocks/api/genie_beta_api.py fireblocks/api/internal_wallets_api.py -fireblocks/api/key_link_beta_api.py -fireblocks/api/keys_beta_api.py +fireblocks/api/key_link_api.py +fireblocks/api/keys_api.py fireblocks/api/network_connections_api.py fireblocks/api/nfts_api.py fireblocks/api/off_exchanges_api.py @@ -1549,9 +1550,8 @@ fireblocks/models/amount_over_time_config.py fireblocks/models/amount_range.py fireblocks/models/amount_range_min_max.py fireblocks/models/amount_range_min_max2.py -fireblocks/models/api_key.py -fireblocks/models/api_keys_paginated_response.py fireblocks/models/api_user.py +fireblocks/models/api_users_paginated_response.py fireblocks/models/approval_api_key.py fireblocks/models/approval_api_public_key.py fireblocks/models/approval_request.py @@ -1752,6 +1752,7 @@ fireblocks/models/conversion_validation_failure.py fireblocks/models/convert_assets_request.py fireblocks/models/convert_assets_response.py fireblocks/models/cosigner.py +fireblocks/models/cosigner_api_user.py fireblocks/models/cosigners_paginated_response.py fireblocks/models/counterparty_group.py fireblocks/models/counterparty_groups_paginated_response.py @@ -2170,8 +2171,8 @@ fireblocks/models/paginated_asset_wallet_response.py fireblocks/models/paginated_asset_wallet_response_paging.py fireblocks/models/paginated_assets_response.py fireblocks/models/paging.py -fireblocks/models/pair_api_key_request.py -fireblocks/models/pair_api_key_response.py +fireblocks/models/pair_api_user_request.py +fireblocks/models/pair_api_user_response.py fireblocks/models/parameter.py fireblocks/models/parameter_with_value.py fireblocks/models/participant_onboarding_payload.py @@ -2533,6 +2534,7 @@ fireblocks/models/tr_link_manual_decision_action.py fireblocks/models/tr_link_manual_decision_destination_detail.py fireblocks/models/tr_link_manual_decision_request.py fireblocks/models/tr_link_manual_decision_response.py +fireblocks/models/tr_link_manual_decision_response_status_enum.py fireblocks/models/tr_link_manual_decision_source.py fireblocks/models/tr_link_missing_trm_action.py fireblocks/models/tr_link_missing_trm_action2.py @@ -2900,10 +2902,9 @@ test/test_amount_over_time_config.py test/test_amount_range.py test/test_amount_range_min_max.py test/test_amount_range_min_max2.py -test/test_api_key.py -test/test_api_keys_paginated_response.py test/test_api_user.py test/test_api_user_api.py +test/test_api_users_paginated_response.py test/test_approval_api_key.py test/test_approval_api_public_key.py test/test_approval_request.py @@ -3118,7 +3119,8 @@ test/test_conversion_validation_failure.py test/test_convert_assets_request.py test/test_convert_assets_response.py test/test_cosigner.py -test/test_cosigners_beta_api.py +test/test_cosigner_api_user.py +test/test_cosigners_api.py test/test_cosigners_paginated_response.py test/test_counterparty_group.py test/test_counterparty_groups_paginated_response.py @@ -3410,8 +3412,8 @@ test/test_internal_wallets_api.py test/test_invalid_paramater_value_error.py test/test_issue_api_user_pairing_token_response.py test/test_job_created.py -test/test_key_link_beta_api.py -test/test_keys_beta_api.py +test/test_key_link_api.py +test/test_keys_api.py test/test_layer_zero_adapter_create_params.py test/test_lbt_payment_info.py test/test_lean_abi_function.py @@ -3553,8 +3555,8 @@ test/test_paginated_asset_wallet_response.py test/test_paginated_asset_wallet_response_paging.py test/test_paginated_assets_response.py test/test_paging.py -test/test_pair_api_key_request.py -test/test_pair_api_key_response.py +test/test_pair_api_user_request.py +test/test_pair_api_user_response.py test/test_parameter.py test/test_parameter_with_value.py test/test_participant_onboarding_payload.py @@ -3929,6 +3931,7 @@ test/test_tr_link_manual_decision_action.py test/test_tr_link_manual_decision_destination_detail.py test/test_tr_link_manual_decision_request.py test/test_tr_link_manual_decision_response.py +test/test_tr_link_manual_decision_response_status_enum.py test/test_tr_link_manual_decision_source.py test/test_tr_link_missing_trm_action.py test/test_tr_link_missing_trm_action2.py diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 268fed6c..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). - -## [v35.2.0](https://github.com/fireblocks/py-sdk/compare/v24.0.0...v35.2.0) - 2026-10-28 - -### Merged - -- Generated SDK #2999499117 [`#167`](https://github.com/fireblocks/py-sdk/pull/167) - -## [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 ab4e8fac..4937cb2f 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ 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. +This SDK follows [semantic versioning](https://semver.org), with one exception: operations in the `ea` (Early Availability, EA) lifecycle state. EA operations are not generally available and may not be accessible to all customers. They can change or break before they reach GA. ## Usage @@ -239,7 +239,7 @@ 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. +Operation 'create_transaction' is in EA (Early Availability) and is not generally available. It may change or break before it reaches GA. ``` Deprecated operations report their sunset date, and the replacement and migration @@ -398,16 +398,16 @@ Class | Method | HTTP request | Description *ContractsApi* | [**get_contract**](docs/ContractsApi.md#get_contract) | **GET** /contracts/{contractId} | Find a Specific Whitelisted Contract *ContractsApi* | [**get_contract_asset**](docs/ContractsApi.md#get_contract_asset) | **GET** /contracts/{contractId}/{assetId} | Find a whitelisted contract's asset *ContractsApi* | [**get_contracts**](docs/ContractsApi.md#get_contracts) | **GET** /contracts | List Whitelisted Contracts -*CosignersBetaApi* | [**add_cosigner**](docs/CosignersBetaApi.md#add_cosigner) | **POST** /cosigners | Add cosigner -*CosignersBetaApi* | [**get_api_key**](docs/CosignersBetaApi.md#get_api_key) | **GET** /cosigners/{cosignerId}/api_keys/{apiKeyId} | Get API key -*CosignersBetaApi* | [**get_api_keys**](docs/CosignersBetaApi.md#get_api_keys) | **GET** /cosigners/{cosignerId}/api_keys | Get all API keys -*CosignersBetaApi* | [**get_cosigner**](docs/CosignersBetaApi.md#get_cosigner) | **GET** /cosigners/{cosignerId} | Get cosigner -*CosignersBetaApi* | [**get_cosigners**](docs/CosignersBetaApi.md#get_cosigners) | **GET** /cosigners | Get all cosigners -*CosignersBetaApi* | [**get_request_status**](docs/CosignersBetaApi.md#get_request_status) | **GET** /cosigners/{cosignerId}/api_keys/{apiKeyId}/{requestId} | Get request status -*CosignersBetaApi* | [**pair_api_key**](docs/CosignersBetaApi.md#pair_api_key) | **PUT** /cosigners/{cosignerId}/api_keys/{apiKeyId} | Pair API key -*CosignersBetaApi* | [**rename_cosigner**](docs/CosignersBetaApi.md#rename_cosigner) | **PATCH** /cosigners/{cosignerId} | Rename cosigner -*CosignersBetaApi* | [**unpair_api_key**](docs/CosignersBetaApi.md#unpair_api_key) | **DELETE** /cosigners/{cosignerId}/api_keys/{apiKeyId} | Unpair API key -*CosignersBetaApi* | [**update_callback_handler**](docs/CosignersBetaApi.md#update_callback_handler) | **PATCH** /cosigners/{cosignerId}/api_keys/{apiKeyId} | Update API key callback handler +*CosignersApi* | [**add_cosigner**](docs/CosignersApi.md#add_cosigner) | **POST** /cosigners | Add cosigner +*CosignersApi* | [**get_cosigner**](docs/CosignersApi.md#get_cosigner) | **GET** /cosigners/{cosignerId} | Get cosigner +*CosignersApi* | [**get_cosigner_api_user**](docs/CosignersApi.md#get_cosigner_api_user) | **GET** /cosigners/{cosignerId}/api_users/{apiUserId} | Get API user +*CosignersApi* | [**get_cosigner_api_user_request_status**](docs/CosignersApi.md#get_cosigner_api_user_request_status) | **GET** /cosigners/{cosignerId}/api_users/{apiUserId}/{requestId} | Get API user request status +*CosignersApi* | [**get_cosigner_api_users**](docs/CosignersApi.md#get_cosigner_api_users) | **GET** /cosigners/{cosignerId}/api_users | Get all API users +*CosignersApi* | [**get_cosigners**](docs/CosignersApi.md#get_cosigners) | **GET** /cosigners | Get all cosigners +*CosignersApi* | [**pair_cosigner_api_user**](docs/CosignersApi.md#pair_cosigner_api_user) | **PUT** /cosigners/{cosignerId}/api_users/{apiUserId} | Pair API user +*CosignersApi* | [**rename_cosigner**](docs/CosignersApi.md#rename_cosigner) | **PATCH** /cosigners/{cosignerId} | Rename cosigner +*CosignersApi* | [**unpair_cosigner_api_user**](docs/CosignersApi.md#unpair_cosigner_api_user) | **DELETE** /cosigners/{cosignerId}/api_users/{apiUserId} | Unpair API user +*CosignersApi* | [**update_cosigner_api_user_callback_handler**](docs/CosignersApi.md#update_cosigner_api_user_callback_handler) | **PATCH** /cosigners/{cosignerId}/api_users/{apiUserId} | Update API user callback handler *DeployedContractsApi* | [**add_contract_abi**](docs/DeployedContractsApi.md#add_contract_abi) | **POST** /tokenization/contracts/abi | Save contract ABI *DeployedContractsApi* | [**fetch_contract_abi**](docs/DeployedContractsApi.md#fetch_contract_abi) | **POST** /tokenization/contracts/fetch_abi | Fetch the contract ABI *DeployedContractsApi* | [**get_deployed_contract_by_address**](docs/DeployedContractsApi.md#get_deployed_contract_by_address) | **GET** /tokenization/contracts/{assetId}/{contractAddress} | Return deployed contract data @@ -476,20 +476,21 @@ 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` -*KeyLinkBetaApi* | [**get_validation_keys_list**](docs/KeyLinkBetaApi.md#get_validation_keys_list) | **GET** /key_link/validation_keys | Get list of registered validation keys -*KeyLinkBetaApi* | [**set_agent_id**](docs/KeyLinkBetaApi.md#set_agent_id) | **PATCH** /key_link/signing_keys/{keyId}/agent_user_id | Set agent user id -*KeyLinkBetaApi* | [**update_signing_key**](docs/KeyLinkBetaApi.md#update_signing_key) | **PATCH** /key_link/signing_keys/{keyId} | Modify the signing keyId -*KeysBetaApi* | [**get_mpc_keys_list**](docs/KeysBetaApi.md#get_mpc_keys_list) | **GET** /keys/mpc/list | Get list of mpc keys -*KeysBetaApi* | [**get_mpc_keys_list_by_user**](docs/KeysBetaApi.md#get_mpc_keys_list_by_user) | **GET** /keys/mpc/list/{userId} | Get list of mpc keys by `userId` +*KeyLinkApi* | [**create_bulk_signing_keys**](docs/KeyLinkApi.md#create_bulk_signing_keys) | **POST** /key_link/signing_keys/bulk | Register signing keys in bulk +*KeyLinkApi* | [**create_signing_key**](docs/KeyLinkApi.md#create_signing_key) | **POST** /key_link/signing_keys | Add a new signing key +*KeyLinkApi* | [**create_validation_key**](docs/KeyLinkApi.md#create_validation_key) | **POST** /key_link/validation_keys | Add a new validation key +*KeyLinkApi* | [**disable_validation_key**](docs/KeyLinkApi.md#disable_validation_key) | **PATCH** /key_link/validation_keys/{keyId} | Disables a validation key +*KeyLinkApi* | [**get_bulk_signing_keys_job**](docs/KeyLinkApi.md#get_bulk_signing_keys_job) | **GET** /key_link/signing_keys/bulk/jobs/{jobId} | Get a bulk registration job +*KeyLinkApi* | [**get_bulk_signing_keys_jobs**](docs/KeyLinkApi.md#get_bulk_signing_keys_jobs) | **GET** /key_link/signing_keys/bulk/jobs | Get bulk registration jobs +*KeyLinkApi* | [**get_signing_key**](docs/KeyLinkApi.md#get_signing_key) | **GET** /key_link/signing_keys/{keyId} | Get a signing key by `keyId` +*KeyLinkApi* | [**get_signing_keys_list**](docs/KeyLinkApi.md#get_signing_keys_list) | **GET** /key_link/signing_keys | Get list of signing keys +*KeyLinkApi* | [**get_validation_key**](docs/KeyLinkApi.md#get_validation_key) | **GET** /key_link/validation_keys/{keyId} | Get a validation key by `keyId` +*KeyLinkApi* | [**get_validation_keys_list**](docs/KeyLinkApi.md#get_validation_keys_list) | **GET** /key_link/validation_keys | Get list of registered validation keys +*KeyLinkApi* | [**revoke_validation_key**](docs/KeyLinkApi.md#revoke_validation_key) | **POST** /key_link/validation_keys/{keyId}/revoke | Revokes a validation key +*KeyLinkApi* | [**set_agent_id**](docs/KeyLinkApi.md#set_agent_id) | **PATCH** /key_link/signing_keys/{keyId}/agent_user_id | Set agent user id +*KeyLinkApi* | [**update_signing_key**](docs/KeyLinkApi.md#update_signing_key) | **PATCH** /key_link/signing_keys/{keyId} | Modify the signing keyId +*KeysApi* | [**get_mpc_keys_list**](docs/KeysApi.md#get_mpc_keys_list) | **GET** /keys/mpc/list | Get list of mpc keys +*KeysApi* | [**get_mpc_keys_list_by_user**](docs/KeysApi.md#get_mpc_keys_list_by_user) | **GET** /keys/mpc/list/{userId} | Get list of mpc keys by `userId` *NFTsApi* | [**get_nft**](docs/NFTsApi.md#get_nft) | **GET** /nfts/tokens/{id} | List token data by ID *NFTsApi* | [**get_nfts**](docs/NFTsApi.md#get_nfts) | **GET** /nfts/tokens | List tokens by IDs *NFTsApi* | [**get_ownership_tokens**](docs/NFTsApi.md#get_ownership_tokens) | **GET** /nfts/ownership/tokens | List all owned tokens (paginated) @@ -600,6 +601,7 @@ Class | Method | HTTP request | Description *TRLinkApi* | [**get_tr_link_customer_integrations**](docs/TRLinkApi.md#get_tr_link_customer_integrations) | **GET** /screening/trlink/customers/{customerId}/integrations | Get customer integrations *TRLinkApi* | [**get_tr_link_customers**](docs/TRLinkApi.md#get_tr_link_customers) | **GET** /screening/trlink/customers | Get all customers *TRLinkApi* | [**get_tr_link_integration_public_key**](docs/TRLinkApi.md#get_tr_link_integration_public_key) | **GET** /screening/trlink/customers/integration/{customerIntegrationId}/public_key | Get public key for PII encryption +*TRLinkApi* | [**get_tr_link_manual_decision**](docs/TRLinkApi.md#get_tr_link_manual_decision) | **GET** /screening/trlink/customers/integration/{customerIntegrationId}/transactions/{txId}/manual_decision | Get manual decision for missing TRM *TRLinkApi* | [**get_tr_link_partners**](docs/TRLinkApi.md#get_tr_link_partners) | **GET** /screening/trlink/partners | List available TRSupport partners *TRLinkApi* | [**get_tr_link_policy**](docs/TRLinkApi.md#get_tr_link_policy) | **GET** /screening/trlink/policy | Get TRLink policy *TRLinkApi* | [**get_tr_link_supported_asset**](docs/TRLinkApi.md#get_tr_link_supported_asset) | **GET** /screening/trlink/customers/integration/{customerIntegrationId}/assets/{assetId} | Get supported asset by ID @@ -868,8 +870,7 @@ Class | Method | HTTP request | Description - [AmountRange](docs/AmountRange.md) - [AmountRangeMinMax](docs/AmountRangeMinMax.md) - [AmountRangeMinMax2](docs/AmountRangeMinMax2.md) - - [ApiKey](docs/ApiKey.md) - - [ApiKeysPaginatedResponse](docs/ApiKeysPaginatedResponse.md) + - [ApiUsersPaginatedResponse](docs/ApiUsersPaginatedResponse.md) - [ApprovalApiKey](docs/ApprovalApiKey.md) - [ApprovalApiPublicKey](docs/ApprovalApiPublicKey.md) - [ApprovalRequest](docs/ApprovalRequest.md) @@ -1070,6 +1071,7 @@ Class | Method | HTTP request | Description - [ConvertAssetsRequest](docs/ConvertAssetsRequest.md) - [ConvertAssetsResponse](docs/ConvertAssetsResponse.md) - [Cosigner](docs/Cosigner.md) + - [CosignerApiUser](docs/CosignerApiUser.md) - [CosignersPaginatedResponse](docs/CosignersPaginatedResponse.md) - [CounterpartyGroup](docs/CounterpartyGroup.md) - [CounterpartyGroupsPaginatedResponse](docs/CounterpartyGroupsPaginatedResponse.md) @@ -1488,8 +1490,8 @@ Class | Method | HTTP request | Description - [PaginatedAssetWalletResponsePaging](docs/PaginatedAssetWalletResponsePaging.md) - [PaginatedAssetsResponse](docs/PaginatedAssetsResponse.md) - [Paging](docs/Paging.md) - - [PairApiKeyRequest](docs/PairApiKeyRequest.md) - - [PairApiKeyResponse](docs/PairApiKeyResponse.md) + - [PairApiUserRequest](docs/PairApiUserRequest.md) + - [PairApiUserResponse](docs/PairApiUserResponse.md) - [Parameter](docs/Parameter.md) - [ParameterWithValue](docs/ParameterWithValue.md) - [ParticipantOnboardingPayload](docs/ParticipantOnboardingPayload.md) @@ -1820,6 +1822,7 @@ Class | Method | HTTP request | Description - [TRLinkManualDecisionDestinationDetail](docs/TRLinkManualDecisionDestinationDetail.md) - [TRLinkManualDecisionRequest](docs/TRLinkManualDecisionRequest.md) - [TRLinkManualDecisionResponse](docs/TRLinkManualDecisionResponse.md) + - [TRLinkManualDecisionResponseStatusEnum](docs/TRLinkManualDecisionResponseStatusEnum.md) - [TRLinkManualDecisionSource](docs/TRLinkManualDecisionSource.md) - [TRLinkMissingTrmAction](docs/TRLinkMissingTrmAction.md) - [TRLinkMissingTrmAction2](docs/TRLinkMissingTrmAction2.md) diff --git a/docs/AddCosignerRequest.md b/docs/AddCosignerRequest.md index 52ea9c0b..028e8073 100644 --- a/docs/AddCosignerRequest.md +++ b/docs/AddCosignerRequest.md @@ -5,7 +5,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**api_key_id** | **str** | The id of the API key to be paired with the cosigner | +**api_user_id** | **str** | The id of the API user to be paired with the cosigner | **name** | **str** | The name of the cosigner | **existing_cosigner** | **bool** | Whether the cosigner already exists in another workspace | [optional] [default to False] diff --git a/docs/AddCosignerResponse.md b/docs/AddCosignerResponse.md index 32146293..91e1eb50 100644 --- a/docs/AddCosignerResponse.md +++ b/docs/AddCosignerResponse.md @@ -5,7 +5,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**api_key_id** | **str** | The id of the API key to be paired with the cosigner | +**api_user_id** | **str** | The id of the API user to be paired with the cosigner | **name** | **str** | The name of the cosigner | **existing_cosigner** | **bool** | Whether the cosigner already exists in another workspace | [optional] [default to False] **pending_cosigner_id** | **str** | The unique identifier of a pending cosigner | diff --git a/docs/ApiKey.md b/docs/ApiKey.md deleted file mode 100644 index 2c96dd7f..00000000 --- a/docs/ApiKey.md +++ /dev/null @@ -1,31 +0,0 @@ -# ApiKey - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | The unique identifier of the API key | -**last_seen** | **datetime** | The date the API key was last seen | [optional] -**callback_handler** | [**CallbackHandler**](CallbackHandler.md) | | [optional] - -## Example - -```python -from fireblocks.models.api_key import ApiKey - -# TODO update the JSON string below -json = "{}" -# create an instance of ApiKey from a JSON string -api_key_instance = ApiKey.from_json(json) -# print the JSON string representation of the object -print(ApiKey.to_json()) - -# convert the object into a dict -api_key_dict = api_key_instance.to_dict() -# create an instance of ApiKey from a dict -api_key_from_dict = ApiKey.from_dict(api_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/ApiKeysPaginatedResponse.md b/docs/ApiKeysPaginatedResponse.md deleted file mode 100644 index 81167552..00000000 --- a/docs/ApiKeysPaginatedResponse.md +++ /dev/null @@ -1,30 +0,0 @@ -# ApiKeysPaginatedResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**data** | [**List[ApiKey]**](ApiKey.md) | The data of the current page | -**next** | **str** | The ID of the next page | [optional] - -## Example - -```python -from fireblocks.models.api_keys_paginated_response import ApiKeysPaginatedResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of ApiKeysPaginatedResponse from a JSON string -api_keys_paginated_response_instance = ApiKeysPaginatedResponse.from_json(json) -# print the JSON string representation of the object -print(ApiKeysPaginatedResponse.to_json()) - -# convert the object into a dict -api_keys_paginated_response_dict = api_keys_paginated_response_instance.to_dict() -# create an instance of ApiKeysPaginatedResponse from a dict -api_keys_paginated_response_from_dict = ApiKeysPaginatedResponse.from_dict(api_keys_paginated_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - diff --git a/docs/ApiUsersPaginatedResponse.md b/docs/ApiUsersPaginatedResponse.md new file mode 100644 index 00000000..7d12531c --- /dev/null +++ b/docs/ApiUsersPaginatedResponse.md @@ -0,0 +1,30 @@ +# ApiUsersPaginatedResponse + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**data** | [**List[CosignerApiUser]**](CosignerApiUser.md) | The data of the current page | +**next** | **str** | The ID of the next page | [optional] + +## Example + +```python +from fireblocks.models.api_users_paginated_response import ApiUsersPaginatedResponse + +# TODO update the JSON string below +json = "{}" +# create an instance of ApiUsersPaginatedResponse from a JSON string +api_users_paginated_response_instance = ApiUsersPaginatedResponse.from_json(json) +# print the JSON string representation of the object +print(ApiUsersPaginatedResponse.to_json()) + +# convert the object into a dict +api_users_paginated_response_dict = api_users_paginated_response_instance.to_dict() +# create an instance of ApiUsersPaginatedResponse from a dict +api_users_paginated_response_from_dict = ApiUsersPaginatedResponse.from_dict(api_users_paginated_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/ConsoleUserApi.md b/docs/ConsoleUserApi.md index 5c52a43d..6ba256e1 100644 --- a/docs/ConsoleUserApi.md +++ b/docs/ConsoleUserApi.md @@ -99,7 +99,7 @@ Requests deletion of a console user. The request is asynchronous: it goes throug - 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. +**Note:** This endpoint is in Early Availability (EA) and may change or break before it reaches GA. ### Example diff --git a/docs/CosignerApiUser.md b/docs/CosignerApiUser.md new file mode 100644 index 00000000..46fc7814 --- /dev/null +++ b/docs/CosignerApiUser.md @@ -0,0 +1,31 @@ +# CosignerApiUser + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | The unique identifier of the API user | +**last_seen** | **datetime** | The date the API user was last seen | [optional] +**callback_handler** | [**CallbackHandler**](CallbackHandler.md) | | [optional] + +## Example + +```python +from fireblocks.models.cosigner_api_user import CosignerApiUser + +# TODO update the JSON string below +json = "{}" +# create an instance of CosignerApiUser from a JSON string +cosigner_api_user_instance = CosignerApiUser.from_json(json) +# print the JSON string representation of the object +print(CosignerApiUser.to_json()) + +# convert the object into a dict +cosigner_api_user_dict = cosigner_api_user_instance.to_dict() +# create an instance of CosignerApiUser from a dict +cosigner_api_user_from_dict = CosignerApiUser.from_dict(cosigner_api_user_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/CosignersBetaApi.md b/docs/CosignersApi.md similarity index 73% rename from docs/CosignersBetaApi.md rename to docs/CosignersApi.md index 8a84fd54..fc53322f 100644 --- a/docs/CosignersBetaApi.md +++ b/docs/CosignersApi.md @@ -1,19 +1,19 @@ -# fireblocks.CosignersBetaApi +# fireblocks.CosignersApi All URIs are relative to *https://api.fireblocks.io/v1* Method | HTTP request | Description ------------- | ------------- | ------------- -[**add_cosigner**](CosignersBetaApi.md#add_cosigner) | **POST** /cosigners | Add cosigner -[**get_api_key**](CosignersBetaApi.md#get_api_key) | **GET** /cosigners/{cosignerId}/api_keys/{apiKeyId} | Get API key -[**get_api_keys**](CosignersBetaApi.md#get_api_keys) | **GET** /cosigners/{cosignerId}/api_keys | Get all API keys -[**get_cosigner**](CosignersBetaApi.md#get_cosigner) | **GET** /cosigners/{cosignerId} | Get cosigner -[**get_cosigners**](CosignersBetaApi.md#get_cosigners) | **GET** /cosigners | Get all cosigners -[**get_request_status**](CosignersBetaApi.md#get_request_status) | **GET** /cosigners/{cosignerId}/api_keys/{apiKeyId}/{requestId} | Get request status -[**pair_api_key**](CosignersBetaApi.md#pair_api_key) | **PUT** /cosigners/{cosignerId}/api_keys/{apiKeyId} | Pair API key -[**rename_cosigner**](CosignersBetaApi.md#rename_cosigner) | **PATCH** /cosigners/{cosignerId} | Rename cosigner -[**unpair_api_key**](CosignersBetaApi.md#unpair_api_key) | **DELETE** /cosigners/{cosignerId}/api_keys/{apiKeyId} | Unpair API key -[**update_callback_handler**](CosignersBetaApi.md#update_callback_handler) | **PATCH** /cosigners/{cosignerId}/api_keys/{apiKeyId} | Update API key callback handler +[**add_cosigner**](CosignersApi.md#add_cosigner) | **POST** /cosigners | Add cosigner +[**get_cosigner**](CosignersApi.md#get_cosigner) | **GET** /cosigners/{cosignerId} | Get cosigner +[**get_cosigner_api_user**](CosignersApi.md#get_cosigner_api_user) | **GET** /cosigners/{cosignerId}/api_users/{apiUserId} | Get API user +[**get_cosigner_api_user_request_status**](CosignersApi.md#get_cosigner_api_user_request_status) | **GET** /cosigners/{cosignerId}/api_users/{apiUserId}/{requestId} | Get API user request status +[**get_cosigner_api_users**](CosignersApi.md#get_cosigner_api_users) | **GET** /cosigners/{cosignerId}/api_users | Get all API users +[**get_cosigners**](CosignersApi.md#get_cosigners) | **GET** /cosigners | Get all cosigners +[**pair_cosigner_api_user**](CosignersApi.md#pair_cosigner_api_user) | **PUT** /cosigners/{cosignerId}/api_users/{apiUserId} | Pair API user +[**rename_cosigner**](CosignersApi.md#rename_cosigner) | **PATCH** /cosigners/{cosignerId} | Rename cosigner +[**unpair_cosigner_api_user**](CosignersApi.md#unpair_cosigner_api_user) | **DELETE** /cosigners/{cosignerId}/api_users/{apiUserId} | Unpair API user +[**update_cosigner_api_user_callback_handler**](CosignersApi.md#update_cosigner_api_user_callback_handler) | **PATCH** /cosigners/{cosignerId}/api_users/{apiUserId} | Update API user callback handler # **add_cosigner** @@ -21,7 +21,7 @@ Method | HTTP request | Description Add cosigner -Add a new cosigner. The cosigner will be pending pairing until the API key is manually paired +Add a new cosigner. The cosigner will be pending pairing until the API user is manually paired (see `pairCosignerApiUser`). Endpoint Permission: Admin and Non-Signing Admin. ### Example @@ -55,11 +55,11 @@ with Fireblocks(configuration) as fireblocks: try: # Add cosigner - api_response = fireblocks.cosigners_beta.add_cosigner(add_cosigner_request, idempotency_key=idempotency_key).result() - print("The response of CosignersBetaApi->add_cosigner:\n") + api_response = fireblocks.cosigners.add_cosigner(add_cosigner_request, idempotency_key=idempotency_key).result() + print("The response of CosignersApi->add_cosigner:\n") pprint(api_response) except Exception as e: - print("Exception when calling CosignersBetaApi->add_cosigner: %s\n" % e) + print("Exception when calling CosignersApi->add_cosigner: %s\n" % e) ``` @@ -94,20 +94,19 @@ 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_api_key** -> ApiKey get_api_key(cosigner_id, api_key_id) +# **get_cosigner** +> Cosigner get_cosigner(cosigner_id) -Get API key +Get cosigner -Get an API key by ID. -**Note:** These endpoints are currently in beta and might be subject to changes. +Get a cosigner by ID. Endpoint Permission: Admin and Non-Signing Admin. ### Example ```python -from fireblocks.models.api_key import ApiKey +from fireblocks.models.cosigner import Cosigner from fireblocks.client import Fireblocks from fireblocks.client_configuration import ClientConfiguration from fireblocks.exceptions import ApiException @@ -129,15 +128,14 @@ configuration = ClientConfiguration( # Enter a context with an instance of the API client with Fireblocks(configuration) as fireblocks: cosigner_id = '44fcead0-7053-4831-a53a-df7fb90d440f' # str | The unique identifier of the cosigner - api_key_id = '44fcead0-7053-4831-a53a-df7fb90d440f' # str | The unique identifier of the API key try: - # Get API key - api_response = fireblocks.cosigners_beta.get_api_key(cosigner_id, api_key_id).result() - print("The response of CosignersBetaApi->get_api_key:\n") + # Get cosigner + api_response = fireblocks.cosigners.get_cosigner(cosigner_id).result() + print("The response of CosignersApi->get_cosigner:\n") pprint(api_response) except Exception as e: - print("Exception when calling CosignersBetaApi->get_api_key: %s\n" % e) + print("Exception when calling CosignersApi->get_cosigner: %s\n" % e) ``` @@ -148,11 +146,10 @@ with Fireblocks(configuration) as fireblocks: Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- **cosigner_id** | **str**| The unique identifier of the cosigner | - **api_key_id** | **str**| The unique identifier of the API key | ### Return type -[**ApiKey**](ApiKey.md) +[**Cosigner**](Cosigner.md) ### Authorization @@ -167,25 +164,24 @@ No authorization required | Status code | Description | Response headers | |-------------|-------------|------------------| -**200** | An ApiKey object | * X-Request-ID -
| +**200** | A cosigner object | * 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_api_keys** -> ApiKeysPaginatedResponse get_api_keys(cosigner_id, order=order, page_cursor=page_cursor, page_size=page_size) +# **get_cosigner_api_user** +> CosignerApiUser get_cosigner_api_user(cosigner_id, api_user_id) -Get all API keys +Get API user -Get all cosigner paired API keys (paginated). -**Note:** These endpoints are currently in beta and might be subject to changes. +Get an API user by ID. Endpoint Permission: Admin and Non-Signing Admin. ### Example ```python -from fireblocks.models.api_keys_paginated_response import ApiKeysPaginatedResponse +from fireblocks.models.cosigner_api_user import CosignerApiUser from fireblocks.client import Fireblocks from fireblocks.client_configuration import ClientConfiguration from fireblocks.exceptions import ApiException @@ -207,17 +203,15 @@ configuration = ClientConfiguration( # Enter a context with an instance of the API client with Fireblocks(configuration) as fireblocks: cosigner_id = '44fcead0-7053-4831-a53a-df7fb90d440f' # str | The unique identifier of the cosigner - order = DESC # str | ASC / DESC ordering (default DESC) (optional) (default to DESC) - page_cursor = 'page_cursor_example' # str | Cursor of the required page (optional) - page_size = 10 # float | Maximum number of items in the page (optional) (default to 10) + api_user_id = '44fcead0-7053-4831-a53a-df7fb90d440f' # str | The unique identifier of the API user try: - # Get all API keys - api_response = fireblocks.cosigners_beta.get_api_keys(cosigner_id, order=order, page_cursor=page_cursor, page_size=page_size).result() - print("The response of CosignersBetaApi->get_api_keys:\n") + # Get API user + api_response = fireblocks.cosigners.get_cosigner_api_user(cosigner_id, api_user_id).result() + print("The response of CosignersApi->get_cosigner_api_user:\n") pprint(api_response) except Exception as e: - print("Exception when calling CosignersBetaApi->get_api_keys: %s\n" % e) + print("Exception when calling CosignersApi->get_cosigner_api_user: %s\n" % e) ``` @@ -228,13 +222,11 @@ with Fireblocks(configuration) as fireblocks: Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- **cosigner_id** | **str**| The unique identifier of the cosigner | - **order** | **str**| ASC / DESC ordering (default DESC) | [optional] [default to DESC] - **page_cursor** | **str**| Cursor of the required page | [optional] - **page_size** | **float**| Maximum number of items in the page | [optional] [default to 10] + **api_user_id** | **str**| The unique identifier of the API user | ### Return type -[**ApiKeysPaginatedResponse**](ApiKeysPaginatedResponse.md) +[**CosignerApiUser**](CosignerApiUser.md) ### Authorization @@ -249,25 +241,24 @@ No authorization required | Status code | Description | Response headers | |-------------|-------------|------------------| -**200** | A paginated response containing ApiKey objects | * X-Request-ID -
| +**200** | A CosignerApiUser object | * 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_cosigner** -> Cosigner get_cosigner(cosigner_id) +# **get_cosigner_api_user_request_status** +> Status get_cosigner_api_user_request_status(cosigner_id, api_user_id, request_id) -Get cosigner +Get API user request status -Get a cosigner by ID. -**Note:** These endpoints are currently in beta and might be subject to changes. +Get the status of an asynchronous request Endpoint Permission: Admin and Non-Signing Admin. ### Example ```python -from fireblocks.models.cosigner import Cosigner +from fireblocks.models.status import Status from fireblocks.client import Fireblocks from fireblocks.client_configuration import ClientConfiguration from fireblocks.exceptions import ApiException @@ -289,14 +280,16 @@ configuration = ClientConfiguration( # Enter a context with an instance of the API client with Fireblocks(configuration) as fireblocks: cosigner_id = '44fcead0-7053-4831-a53a-df7fb90d440f' # str | The unique identifier of the cosigner + api_user_id = '44fcead0-7053-4831-a53a-df7fb90d440f' # str | The unique identifier of the API user + request_id = 'request_id_example' # str | try: - # Get cosigner - api_response = fireblocks.cosigners_beta.get_cosigner(cosigner_id).result() - print("The response of CosignersBetaApi->get_cosigner:\n") + # Get API user request status + api_response = fireblocks.cosigners.get_cosigner_api_user_request_status(cosigner_id, api_user_id, request_id).result() + print("The response of CosignersApi->get_cosigner_api_user_request_status:\n") pprint(api_response) except Exception as e: - print("Exception when calling CosignersBetaApi->get_cosigner: %s\n" % e) + print("Exception when calling CosignersApi->get_cosigner_api_user_request_status: %s\n" % e) ``` @@ -307,10 +300,12 @@ with Fireblocks(configuration) as fireblocks: Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- **cosigner_id** | **str**| The unique identifier of the cosigner | + **api_user_id** | **str**| The unique identifier of the API user | + **request_id** | **str**| | ### Return type -[**Cosigner**](Cosigner.md) +[**Status**](Status.md) ### Authorization @@ -325,25 +320,24 @@ No authorization required | Status code | Description | Response headers | |-------------|-------------|------------------| -**200** | A cosigner object | * X-Request-ID -
| +**200** | The status of the request | * X-Request-ID -
| **0** | Error Response | * X-Request-ID -
| [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **get_cosigners** -> CosignersPaginatedResponse get_cosigners(order=order, page_cursor=page_cursor, page_size=page_size) +# **get_cosigner_api_users** +> ApiUsersPaginatedResponse get_cosigner_api_users(cosigner_id, order=order, page_cursor=page_cursor, page_size=page_size) -Get all cosigners +Get all API users -Get all workspace cosigners (paginated). -**Note:** These endpoints are currently in beta and might be subject to changes. +Get all cosigner paired API users (paginated). Endpoint Permission: Admin and Non-Signing Admin. ### Example ```python -from fireblocks.models.cosigners_paginated_response import CosignersPaginatedResponse +from fireblocks.models.api_users_paginated_response import ApiUsersPaginatedResponse from fireblocks.client import Fireblocks from fireblocks.client_configuration import ClientConfiguration from fireblocks.exceptions import ApiException @@ -364,17 +358,18 @@ configuration = ClientConfiguration( # Enter a context with an instance of the API client with Fireblocks(configuration) as fireblocks: + cosigner_id = '44fcead0-7053-4831-a53a-df7fb90d440f' # str | The unique identifier of the cosigner order = DESC # str | ASC / DESC ordering (default DESC) (optional) (default to DESC) page_cursor = 'page_cursor_example' # str | Cursor of the required page (optional) page_size = 10 # float | Maximum number of items in the page (optional) (default to 10) try: - # Get all cosigners - api_response = fireblocks.cosigners_beta.get_cosigners(order=order, page_cursor=page_cursor, page_size=page_size).result() - print("The response of CosignersBetaApi->get_cosigners:\n") + # Get all API users + api_response = fireblocks.cosigners.get_cosigner_api_users(cosigner_id, order=order, page_cursor=page_cursor, page_size=page_size).result() + print("The response of CosignersApi->get_cosigner_api_users:\n") pprint(api_response) except Exception as e: - print("Exception when calling CosignersBetaApi->get_cosigners: %s\n" % e) + print("Exception when calling CosignersApi->get_cosigner_api_users: %s\n" % e) ``` @@ -384,13 +379,14 @@ with Fireblocks(configuration) as fireblocks: Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- + **cosigner_id** | **str**| The unique identifier of the cosigner | **order** | **str**| ASC / DESC ordering (default DESC) | [optional] [default to DESC] **page_cursor** | **str**| Cursor of the required page | [optional] **page_size** | **float**| Maximum number of items in the page | [optional] [default to 10] ### Return type -[**CosignersPaginatedResponse**](CosignersPaginatedResponse.md) +[**ApiUsersPaginatedResponse**](ApiUsersPaginatedResponse.md) ### Authorization @@ -405,24 +401,24 @@ No authorization required | Status code | Description | Response headers | |-------------|-------------|------------------| -**200** | A paginated response containing Cosigner objects | * X-Request-ID -
| +**200** | A paginated response containing CosignerApiUser objects | * 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_request_status** -> Status get_request_status(cosigner_id, api_key_id, request_id) +# **get_cosigners** +> CosignersPaginatedResponse get_cosigners(order=order, page_cursor=page_cursor, page_size=page_size) -Get request status +Get all cosigners -Get the status of an asynchronous request +Get all workspace cosigners (paginated). Endpoint Permission: Admin and Non-Signing Admin. ### Example ```python -from fireblocks.models.status import Status +from fireblocks.models.cosigners_paginated_response import CosignersPaginatedResponse from fireblocks.client import Fireblocks from fireblocks.client_configuration import ClientConfiguration from fireblocks.exceptions import ApiException @@ -443,17 +439,17 @@ configuration = ClientConfiguration( # Enter a context with an instance of the API client with Fireblocks(configuration) as fireblocks: - cosigner_id = '44fcead0-7053-4831-a53a-df7fb90d440f' # str | The unique identifier of the cosigner - api_key_id = '44fcead0-7053-4831-a53a-df7fb90d440f' # str | The unique identifier of the API key - request_id = 'request_id_example' # str | + order = DESC # str | ASC / DESC ordering (default DESC) (optional) (default to DESC) + page_cursor = 'page_cursor_example' # str | Cursor of the required page (optional) + page_size = 10 # float | Maximum number of items in the page (optional) (default to 10) try: - # Get request status - api_response = fireblocks.cosigners_beta.get_request_status(cosigner_id, api_key_id, request_id).result() - print("The response of CosignersBetaApi->get_request_status:\n") + # Get all cosigners + api_response = fireblocks.cosigners.get_cosigners(order=order, page_cursor=page_cursor, page_size=page_size).result() + print("The response of CosignersApi->get_cosigners:\n") pprint(api_response) except Exception as e: - print("Exception when calling CosignersBetaApi->get_request_status: %s\n" % e) + print("Exception when calling CosignersApi->get_cosigners: %s\n" % e) ``` @@ -463,13 +459,13 @@ with Fireblocks(configuration) as fireblocks: Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **cosigner_id** | **str**| The unique identifier of the cosigner | - **api_key_id** | **str**| The unique identifier of the API key | - **request_id** | **str**| | + **order** | **str**| ASC / DESC ordering (default DESC) | [optional] [default to DESC] + **page_cursor** | **str**| Cursor of the required page | [optional] + **page_size** | **float**| Maximum number of items in the page | [optional] [default to 10] ### Return type -[**Status**](Status.md) +[**CosignersPaginatedResponse**](CosignersPaginatedResponse.md) ### Authorization @@ -484,25 +480,25 @@ No authorization required | Status code | Description | Response headers | |-------------|-------------|------------------| -**200** | The status of the request | * X-Request-ID -
| +**200** | A paginated response containing Cosigner objects | * 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) -# **pair_api_key** -> PairApiKeyResponse pair_api_key(cosigner_id, api_key_id, pair_api_key_request, idempotency_key=idempotency_key) +# **pair_cosigner_api_user** +> PairApiUserResponse pair_cosigner_api_user(cosigner_id, api_user_id, pair_api_user_request, idempotency_key=idempotency_key) -Pair API key +Pair API user -Pair an API key to a cosigner +Pair an API user to a cosigner Endpoint Permission: Admin and Non-Signing Admin. ### Example ```python -from fireblocks.models.pair_api_key_request import PairApiKeyRequest -from fireblocks.models.pair_api_key_response import PairApiKeyResponse +from fireblocks.models.pair_api_user_request import PairApiUserRequest +from fireblocks.models.pair_api_user_response import PairApiUserResponse from fireblocks.client import Fireblocks from fireblocks.client_configuration import ClientConfiguration from fireblocks.exceptions import ApiException @@ -524,17 +520,17 @@ configuration = ClientConfiguration( # Enter a context with an instance of the API client with Fireblocks(configuration) as fireblocks: cosigner_id = '44fcead0-7053-4831-a53a-df7fb90d440f' # str | The unique identifier of the cosigner - api_key_id = '44fcead0-7053-4831-a53a-df7fb90d440f' # str | The unique identifier of the API key - pair_api_key_request = fireblocks.PairApiKeyRequest() # PairApiKeyRequest | + api_user_id = '44fcead0-7053-4831-a53a-df7fb90d440f' # str | The unique identifier of the API user + pair_api_user_request = fireblocks.PairApiUserRequest() # PairApiUserRequest | 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: - # Pair API key - api_response = fireblocks.cosigners_beta.pair_api_key(cosigner_id, api_key_id, pair_api_key_request, idempotency_key=idempotency_key).result() - print("The response of CosignersBetaApi->pair_api_key:\n") + # Pair API user + api_response = fireblocks.cosigners.pair_cosigner_api_user(cosigner_id, api_user_id, pair_api_user_request, idempotency_key=idempotency_key).result() + print("The response of CosignersApi->pair_cosigner_api_user:\n") pprint(api_response) except Exception as e: - print("Exception when calling CosignersBetaApi->pair_api_key: %s\n" % e) + print("Exception when calling CosignersApi->pair_cosigner_api_user: %s\n" % e) ``` @@ -545,13 +541,13 @@ with Fireblocks(configuration) as fireblocks: Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- **cosigner_id** | **str**| The unique identifier of the cosigner | - **api_key_id** | **str**| The unique identifier of the API key | - **pair_api_key_request** | [**PairApiKeyRequest**](PairApiKeyRequest.md)| | + **api_user_id** | **str**| The unique identifier of the API user | + **pair_api_user_request** | [**PairApiUserRequest**](PairApiUserRequest.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 -[**PairApiKeyResponse**](PairApiKeyResponse.md) +[**PairApiUserResponse**](PairApiUserResponse.md) ### Authorization @@ -566,7 +562,7 @@ No authorization required | Status code | Description | Response headers | |-------------|-------------|------------------| -**202** | The API key object to be paired | * X-Request-ID -
* Location -
| +**202** | The API user object to be paired | * X-Request-ID -
* Location -
| **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) @@ -577,7 +573,6 @@ No authorization required Rename cosigner Rename a cosigner by ID. -**Note:** These endpoints are currently in beta and might be subject to changes. Endpoint Permission: Admin and Non-Signing Admin. ### Example @@ -611,11 +606,11 @@ with Fireblocks(configuration) as fireblocks: try: # Rename cosigner - api_response = fireblocks.cosigners_beta.rename_cosigner(cosigner_id, rename_cosigner).result() - print("The response of CosignersBetaApi->rename_cosigner:\n") + api_response = fireblocks.cosigners.rename_cosigner(cosigner_id, rename_cosigner).result() + print("The response of CosignersApi->rename_cosigner:\n") pprint(api_response) except Exception as e: - print("Exception when calling CosignersBetaApi->rename_cosigner: %s\n" % e) + print("Exception when calling CosignersApi->rename_cosigner: %s\n" % e) ``` @@ -650,19 +645,19 @@ 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) -# **unpair_api_key** -> ApiKey unpair_api_key(cosigner_id, api_key_id) +# **unpair_cosigner_api_user** +> CosignerApiUser unpair_cosigner_api_user(cosigner_id, api_user_id) -Unpair API key +Unpair API user -Unpair an API key from a cosigner +Unpair an API user from a cosigner Endpoint Permission: Admin and Non-Signing Admin. ### Example ```python -from fireblocks.models.api_key import ApiKey +from fireblocks.models.cosigner_api_user import CosignerApiUser from fireblocks.client import Fireblocks from fireblocks.client_configuration import ClientConfiguration from fireblocks.exceptions import ApiException @@ -684,15 +679,15 @@ configuration = ClientConfiguration( # Enter a context with an instance of the API client with Fireblocks(configuration) as fireblocks: cosigner_id = '44fcead0-7053-4831-a53a-df7fb90d440f' # str | The unique identifier of the cosigner - api_key_id = '44fcead0-7053-4831-a53a-df7fb90d440f' # str | The unique identifier of the API key + api_user_id = '44fcead0-7053-4831-a53a-df7fb90d440f' # str | The unique identifier of the API user try: - # Unpair API key - api_response = fireblocks.cosigners_beta.unpair_api_key(cosigner_id, api_key_id).result() - print("The response of CosignersBetaApi->unpair_api_key:\n") + # Unpair API user + api_response = fireblocks.cosigners.unpair_cosigner_api_user(cosigner_id, api_user_id).result() + print("The response of CosignersApi->unpair_cosigner_api_user:\n") pprint(api_response) except Exception as e: - print("Exception when calling CosignersBetaApi->unpair_api_key: %s\n" % e) + print("Exception when calling CosignersApi->unpair_cosigner_api_user: %s\n" % e) ``` @@ -703,11 +698,11 @@ with Fireblocks(configuration) as fireblocks: Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- **cosigner_id** | **str**| The unique identifier of the cosigner | - **api_key_id** | **str**| The unique identifier of the API key | + **api_user_id** | **str**| The unique identifier of the API user | ### Return type -[**ApiKey**](ApiKey.md) +[**CosignerApiUser**](CosignerApiUser.md) ### Authorization @@ -722,17 +717,17 @@ No authorization required | Status code | Description | Response headers | |-------------|-------------|------------------| -**202** | The API key object to be unpaired | * X-Request-ID -
* Location -
| +**202** | The API user object to be unpaired | * X-Request-ID -
* Location -
| **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) -# **update_callback_handler** -> UpdateCallbackHandlerResponse update_callback_handler(cosigner_id, api_key_id, update_callback_handler_request) +# **update_cosigner_api_user_callback_handler** +> UpdateCallbackHandlerResponse update_cosigner_api_user_callback_handler(cosigner_id, api_user_id, update_callback_handler_request) -Update API key callback handler +Update API user callback handler -Update the callback handler of an API key +Update the callback handler of an API user Endpoint Permission: Admin and Non-Signing Admin. ### Example @@ -762,16 +757,16 @@ configuration = ClientConfiguration( # Enter a context with an instance of the API client with Fireblocks(configuration) as fireblocks: cosigner_id = '44fcead0-7053-4831-a53a-df7fb90d440f' # str | The unique identifier of the cosigner - api_key_id = '44fcead0-7053-4831-a53a-df7fb90d440f' # str | The unique identifier of the API key + api_user_id = '44fcead0-7053-4831-a53a-df7fb90d440f' # str | The unique identifier of the API user update_callback_handler_request = fireblocks.UpdateCallbackHandlerRequest() # UpdateCallbackHandlerRequest | try: - # Update API key callback handler - api_response = fireblocks.cosigners_beta.update_callback_handler(cosigner_id, api_key_id, update_callback_handler_request).result() - print("The response of CosignersBetaApi->update_callback_handler:\n") + # Update API user callback handler + api_response = fireblocks.cosigners.update_cosigner_api_user_callback_handler(cosigner_id, api_user_id, update_callback_handler_request).result() + print("The response of CosignersApi->update_cosigner_api_user_callback_handler:\n") pprint(api_response) except Exception as e: - print("Exception when calling CosignersBetaApi->update_callback_handler: %s\n" % e) + print("Exception when calling CosignersApi->update_cosigner_api_user_callback_handler: %s\n" % e) ``` @@ -782,7 +777,7 @@ with Fireblocks(configuration) as fireblocks: Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- **cosigner_id** | **str**| The unique identifier of the cosigner | - **api_key_id** | **str**| The unique identifier of the API key | + **api_user_id** | **str**| The unique identifier of the API user | **update_callback_handler_request** | [**UpdateCallbackHandlerRequest**](UpdateCallbackHandlerRequest.md)| | ### Return type @@ -802,7 +797,7 @@ No authorization required | Status code | Description | Response headers | |-------------|-------------|------------------| -**202** | The API key object with the new callback handler | * X-Request-ID -
* Location -
| +**202** | The API user object with the new callback handler | * X-Request-ID -
* Location -
| **0** | Error Response | * X-Request-ID -
| [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) diff --git a/docs/CreateMultipleAccountsRequest.md b/docs/CreateMultipleAccountsRequest.md index 5db265d4..94211761 100644 --- a/docs/CreateMultipleAccountsRequest.md +++ b/docs/CreateMultipleAccountsRequest.md @@ -11,6 +11,8 @@ Name | Type | Description | Notes **vault_account_names_starting_index** | **int** | Copy vault accounts names starting from this index. If names array is used it'll fail | [optional] **prefix** | **str** | When copying from existing vault accounts (vaultAccountNamesStartingIndex) then adding a prefix to the names. If names array is used it'll fail | [optional] **tag_ids** | **List[str]** | Optional list of tag IDs to attach to all created vault accounts | [optional] +**vault_type** | **str** | Type of vault accounts to create. The default type is MPC. KEY_LINK creates Key Link vault accounts. It requires a Key Link workspace. With autoAssign set to true, the vault accounts are bound to the workspace's Key Link signing keys, assigned automatically from the available keys, and only one KEY_LINK bulk creation with autoAssign set to true can run per workspace at a time. With autoAssign set to false (the default), the vault accounts are created without keys. With KEY_LINK, names, vaultAccountNamesStartingIndex, prefix and tagIds work as they do for MPC, and baseAssetIds may be empty to create vault accounts without wallets. | [optional] [default to 'MPC'] +**auto_assign** | **bool** | Applicable only when vaultType is KEY_LINK. For MPC, this parameter is ignored. If set to true, keys are assigned to every created vault account. If there are not enough available keys to assign, the request returns an error and no vault accounts are created. If set to false, the vault accounts are created without any keys, and baseAssetIds must be empty because wallets can only be created for vault accounts that have keys. | [optional] [default to False] ## Example diff --git a/docs/CreateTempoTransferRequest.md b/docs/CreateTempoTransferRequest.md index 897039e4..4953af55 100644 --- a/docs/CreateTempoTransferRequest.md +++ b/docs/CreateTempoTransferRequest.md @@ -28,7 +28,6 @@ Name | Type | Description | Notes **fee_payer_account_id** | **str** | Vault account ID of the fee payer sponsoring this transfer. | [optional] **nonce_strategy** | **str** | Tempo's 2-dimensional nonce strategy: `SEQUENTIAL` runs under a single nonce lane (lane 0); `USER_DEFINED_LANE` runs in parallel under a specified lane (1–16), and requires `nonceLane`; `EXPIRING` marks the transaction with an expiry of up to 5 minutes (Tempo-defined) and does not use `nonceLane`. | [optional] **nonce_lane** | **int** | The nonce lane to use, 1–16. Required and only meaningful when nonceStrategy is USER_DEFINED_LANE; not used for SEQUENTIAL or EXPIRING. | [optional] -**memo** | **str** | Beta. Tempo TIP-20 memo (max 32 bytes). | [optional] ## Example diff --git a/docs/KeyLinkBetaApi.md b/docs/KeyLinkApi.md similarity index 78% rename from docs/KeyLinkBetaApi.md rename to docs/KeyLinkApi.md index 2be0864f..4f1c9311 100644 --- a/docs/KeyLinkBetaApi.md +++ b/docs/KeyLinkApi.md @@ -1,21 +1,22 @@ -# fireblocks.KeyLinkBetaApi +# fireblocks.KeyLinkApi 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` -[**get_validation_keys_list**](KeyLinkBetaApi.md#get_validation_keys_list) | **GET** /key_link/validation_keys | Get list of registered validation keys -[**set_agent_id**](KeyLinkBetaApi.md#set_agent_id) | **PATCH** /key_link/signing_keys/{keyId}/agent_user_id | Set agent user id -[**update_signing_key**](KeyLinkBetaApi.md#update_signing_key) | **PATCH** /key_link/signing_keys/{keyId} | Modify the signing keyId +[**create_bulk_signing_keys**](KeyLinkApi.md#create_bulk_signing_keys) | **POST** /key_link/signing_keys/bulk | Register signing keys in bulk +[**create_signing_key**](KeyLinkApi.md#create_signing_key) | **POST** /key_link/signing_keys | Add a new signing key +[**create_validation_key**](KeyLinkApi.md#create_validation_key) | **POST** /key_link/validation_keys | Add a new validation key +[**disable_validation_key**](KeyLinkApi.md#disable_validation_key) | **PATCH** /key_link/validation_keys/{keyId} | Disables a validation key +[**get_bulk_signing_keys_job**](KeyLinkApi.md#get_bulk_signing_keys_job) | **GET** /key_link/signing_keys/bulk/jobs/{jobId} | Get a bulk registration job +[**get_bulk_signing_keys_jobs**](KeyLinkApi.md#get_bulk_signing_keys_jobs) | **GET** /key_link/signing_keys/bulk/jobs | Get bulk registration jobs +[**get_signing_key**](KeyLinkApi.md#get_signing_key) | **GET** /key_link/signing_keys/{keyId} | Get a signing key by `keyId` +[**get_signing_keys_list**](KeyLinkApi.md#get_signing_keys_list) | **GET** /key_link/signing_keys | Get list of signing keys +[**get_validation_key**](KeyLinkApi.md#get_validation_key) | **GET** /key_link/validation_keys/{keyId} | Get a validation key by `keyId` +[**get_validation_keys_list**](KeyLinkApi.md#get_validation_keys_list) | **GET** /key_link/validation_keys | Get list of registered validation keys +[**revoke_validation_key**](KeyLinkApi.md#revoke_validation_key) | **POST** /key_link/validation_keys/{keyId}/revoke | Revokes a validation key +[**set_agent_id**](KeyLinkApi.md#set_agent_id) | **PATCH** /key_link/signing_keys/{keyId}/agent_user_id | Set agent user id +[**update_signing_key**](KeyLinkApi.md#update_signing_key) | **PATCH** /key_link/signing_keys/{keyId} | Modify the signing keyId # **create_bulk_signing_keys** @@ -56,11 +57,11 @@ with Fireblocks(configuration) as fireblocks: 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") + api_response = fireblocks.key_link.create_bulk_signing_keys(create_bulk_signing_keys, idempotency_key=idempotency_key).result() + print("The response of KeyLinkApi->create_bulk_signing_keys:\n") pprint(api_response) except Exception as e: - print("Exception when calling KeyLinkBetaApi->create_bulk_signing_keys: %s\n" % e) + print("Exception when calling KeyLinkApi->create_bulk_signing_keys: %s\n" % e) ``` @@ -134,11 +135,11 @@ with Fireblocks(configuration) as fireblocks: try: # Add a new signing key - api_response = fireblocks.key_link_beta.create_signing_key(create_signing_key_dto, idempotency_key=idempotency_key).result() - print("The response of KeyLinkBetaApi->create_signing_key:\n") + api_response = fireblocks.key_link.create_signing_key(create_signing_key_dto, idempotency_key=idempotency_key).result() + print("The response of KeyLinkApi->create_signing_key:\n") pprint(api_response) except Exception as e: - print("Exception when calling KeyLinkBetaApi->create_signing_key: %s\n" % e) + print("Exception when calling KeyLinkApi->create_signing_key: %s\n" % e) ``` @@ -211,11 +212,11 @@ with Fireblocks(configuration) as fireblocks: try: # Add a new validation key - api_response = fireblocks.key_link_beta.create_validation_key(create_validation_key_dto, idempotency_key=idempotency_key).result() - print("The response of KeyLinkBetaApi->create_validation_key:\n") + api_response = fireblocks.key_link.create_validation_key(create_validation_key_dto, idempotency_key=idempotency_key).result() + print("The response of KeyLinkApi->create_validation_key:\n") pprint(api_response) except Exception as e: - print("Exception when calling KeyLinkBetaApi->create_validation_key: %s\n" % e) + print("Exception when calling KeyLinkApi->create_validation_key: %s\n" % e) ``` @@ -255,6 +256,7 @@ No authorization required Disables a validation key +DEPRECATED - Please use `POST /key_link/validation_keys/{keyId}/revoke` instead. Allows disabling validation key even if it has not expired yet. It is not allowed to enable the validation key back. Another key has to be used for future validations. ### Example @@ -288,11 +290,11 @@ with Fireblocks(configuration) as fireblocks: try: # Disables a validation key - api_response = fireblocks.key_link_beta.disable_validation_key(key_id, modify_validation_key_dto).result() - print("The response of KeyLinkBetaApi->disable_validation_key:\n") + api_response = fireblocks.key_link.disable_validation_key(key_id, modify_validation_key_dto).result() + print("The response of KeyLinkApi->disable_validation_key:\n") pprint(api_response) except Exception as e: - print("Exception when calling KeyLinkBetaApi->disable_validation_key: %s\n" % e) + print("Exception when calling KeyLinkApi->disable_validation_key: %s\n" % e) ``` @@ -363,11 +365,11 @@ with Fireblocks(configuration) as fireblocks: 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") + api_response = fireblocks.key_link.get_bulk_signing_keys_job(job_id).result() + print("The response of KeyLinkApi->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) + print("Exception when calling KeyLinkApi->get_bulk_signing_keys_job: %s\n" % e) ``` @@ -438,11 +440,11 @@ with Fireblocks(configuration) as fireblocks: 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") + api_response = fireblocks.key_link.get_bulk_signing_keys_jobs(page_cursor=page_cursor, page_size=page_size).result() + print("The response of KeyLinkApi->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) + print("Exception when calling KeyLinkApi->get_bulk_signing_keys_jobs: %s\n" % e) ``` @@ -513,11 +515,11 @@ with Fireblocks(configuration) as fireblocks: try: # Get a signing key by `keyId` - api_response = fireblocks.key_link_beta.get_signing_key(key_id).result() - print("The response of KeyLinkBetaApi->get_signing_key:\n") + api_response = fireblocks.key_link.get_signing_key(key_id).result() + print("The response of KeyLinkApi->get_signing_key:\n") pprint(api_response) except Exception as e: - print("Exception when calling KeyLinkBetaApi->get_signing_key: %s\n" % e) + print("Exception when calling KeyLinkApi->get_signing_key: %s\n" % e) ``` @@ -597,11 +599,11 @@ with Fireblocks(configuration) as fireblocks: try: # Get list of signing keys - api_response = fireblocks.key_link_beta.get_signing_keys_list(page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order, vault_account_id=vault_account_id, agent_user_id=agent_user_id, algorithm=algorithm, enabled=enabled, available=available, is_assigned=is_assigned, key_prefix=key_prefix).result() - print("The response of KeyLinkBetaApi->get_signing_keys_list:\n") + api_response = fireblocks.key_link.get_signing_keys_list(page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order, vault_account_id=vault_account_id, agent_user_id=agent_user_id, algorithm=algorithm, enabled=enabled, available=available, is_assigned=is_assigned, key_prefix=key_prefix).result() + print("The response of KeyLinkApi->get_signing_keys_list:\n") pprint(api_response) except Exception as e: - print("Exception when calling KeyLinkBetaApi->get_signing_keys_list: %s\n" % e) + print("Exception when calling KeyLinkApi->get_signing_keys_list: %s\n" % e) ``` @@ -681,11 +683,11 @@ with Fireblocks(configuration) as fireblocks: try: # Get a validation key by `keyId` - api_response = fireblocks.key_link_beta.get_validation_key(key_id).result() - print("The response of KeyLinkBetaApi->get_validation_key:\n") + api_response = fireblocks.key_link.get_validation_key(key_id).result() + print("The response of KeyLinkApi->get_validation_key:\n") pprint(api_response) except Exception as e: - print("Exception when calling KeyLinkBetaApi->get_validation_key: %s\n" % e) + print("Exception when calling KeyLinkApi->get_validation_key: %s\n" % e) ``` @@ -720,11 +722,11 @@ 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_validation_keys_list** -> GetValidationKeyResponseDto get_validation_keys_list(page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order) +> GetValidationKeyResponseDto get_validation_keys_list(page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order, include_revoked=include_revoked) Get list of registered validation keys -Returns the list of validation keys in the workspace +Returns the list of validation keys in the workspace. By default, revoked keys are filtered out. Use `includeRevoked=true` to show all keys. ### Example @@ -755,14 +757,15 @@ with Fireblocks(configuration) as fireblocks: page_size = 10 # float | Amount of results to return in the next page (optional) (default to 10) sort_by = createdAt # str | Field(s) to use for sorting (optional) (default to createdAt) order = ASC # str | Is the order ascending or descending (optional) (default to ASC) + include_revoked = False # bool | Include revoked validation keys in the response (optional) (default to False) try: # Get list of registered validation keys - api_response = fireblocks.key_link_beta.get_validation_keys_list(page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order).result() - print("The response of KeyLinkBetaApi->get_validation_keys_list:\n") + api_response = fireblocks.key_link.get_validation_keys_list(page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order, include_revoked=include_revoked).result() + print("The response of KeyLinkApi->get_validation_keys_list:\n") pprint(api_response) except Exception as e: - print("Exception when calling KeyLinkBetaApi->get_validation_keys_list: %s\n" % e) + print("Exception when calling KeyLinkApi->get_validation_keys_list: %s\n" % e) ``` @@ -776,6 +779,7 @@ Name | Type | Description | Notes **page_size** | **float**| Amount of results to return in the next page | [optional] [default to 10] **sort_by** | **str**| Field(s) to use for sorting | [optional] [default to createdAt] **order** | **str**| Is the order ascending or descending | [optional] [default to ASC] + **include_revoked** | **bool**| Include revoked validation keys in the response | [optional] [default to False] ### Return type @@ -799,6 +803,82 @@ 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) +# **revoke_validation_key** +> ValidationKeyDto revoke_validation_key(key_id, idempotency_key=idempotency_key) + +Revokes a validation key + +Revokes a validation key, making it permanently unusable for validation. Once revoked, a key cannot be un-revoked. Another key has to be used for future validations. + +### Example + + +```python +from fireblocks.models.validation_key_dto import ValidationKeyDto +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: + key_id = '46a92767-5f93-4a46-9eed-f012196bb4fc' # str | The unique identifier for the validation key provided by Fireblocks + 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: + # Revokes a validation key + api_response = fireblocks.key_link.revoke_validation_key(key_id, idempotency_key=idempotency_key).result() + print("The response of KeyLinkApi->revoke_validation_key:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling KeyLinkApi->revoke_validation_key: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **key_id** | **str**| The unique identifier for the validation key provided by Fireblocks | + **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 + +[**ValidationKeyDto**](ValidationKeyDto.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Revoked validation key data | * 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_agent_id** > set_agent_id(key_id, modify_signing_key_agent_id_dto) @@ -835,9 +915,9 @@ with Fireblocks(configuration) as fireblocks: try: # Set agent user id - fireblocks.key_link_beta.set_agent_id(key_id, modify_signing_key_agent_id_dto).result() + fireblocks.key_link.set_agent_id(key_id, modify_signing_key_agent_id_dto).result() except Exception as e: - print("Exception when calling KeyLinkBetaApi->set_agent_id: %s\n" % e) + print("Exception when calling KeyLinkApi->set_agent_id: %s\n" % e) ``` @@ -910,11 +990,11 @@ with Fireblocks(configuration) as fireblocks: try: # Modify the signing keyId - api_response = fireblocks.key_link_beta.update_signing_key(key_id, modify_signing_key_dto).result() - print("The response of KeyLinkBetaApi->update_signing_key:\n") + api_response = fireblocks.key_link.update_signing_key(key_id, modify_signing_key_dto).result() + print("The response of KeyLinkApi->update_signing_key:\n") pprint(api_response) except Exception as e: - print("Exception when calling KeyLinkBetaApi->update_signing_key: %s\n" % e) + print("Exception when calling KeyLinkApi->update_signing_key: %s\n" % e) ``` diff --git a/docs/KeysBetaApi.md b/docs/KeysApi.md similarity index 81% rename from docs/KeysBetaApi.md rename to docs/KeysApi.md index 6b52f743..e8d9409b 100644 --- a/docs/KeysBetaApi.md +++ b/docs/KeysApi.md @@ -1,11 +1,11 @@ -# fireblocks.KeysBetaApi +# fireblocks.KeysApi All URIs are relative to *https://api.fireblocks.io/v1* Method | HTTP request | Description ------------- | ------------- | ------------- -[**get_mpc_keys_list**](KeysBetaApi.md#get_mpc_keys_list) | **GET** /keys/mpc/list | Get list of mpc keys -[**get_mpc_keys_list_by_user**](KeysBetaApi.md#get_mpc_keys_list_by_user) | **GET** /keys/mpc/list/{userId} | Get list of mpc keys by `userId` +[**get_mpc_keys_list**](KeysApi.md#get_mpc_keys_list) | **GET** /keys/mpc/list | Get list of mpc keys +[**get_mpc_keys_list_by_user**](KeysApi.md#get_mpc_keys_list_by_user) | **GET** /keys/mpc/list/{userId} | Get list of mpc keys by `userId` # **get_mpc_keys_list** @@ -14,8 +14,6 @@ Method | HTTP request | Description Get list of mpc keys Returns a list of MPC signing keys of the workspace. For each key, the list of players associated with it is attached. -**Note:** -This endpoint is currently in beta and might be subject to changes. ### Example @@ -45,11 +43,11 @@ with Fireblocks(configuration) as fireblocks: try: # Get list of mpc keys - api_response = fireblocks.keys_beta.get_mpc_keys_list().result() - print("The response of KeysBetaApi->get_mpc_keys_list:\n") + api_response = fireblocks.keys.get_mpc_keys_list().result() + print("The response of KeysApi->get_mpc_keys_list:\n") pprint(api_response) except Exception as e: - print("Exception when calling KeysBetaApi->get_mpc_keys_list: %s\n" % e) + print("Exception when calling KeysApi->get_mpc_keys_list: %s\n" % e) ``` @@ -86,8 +84,6 @@ No authorization required Get list of mpc keys by `userId` Returns a list of MPC signing keys of a specific user. For each key, the list of players associated with it is attached. -**Note:** -This endpoint is currently in beta and might be subject to changes. ### Example @@ -118,11 +114,11 @@ with Fireblocks(configuration) as fireblocks: try: # Get list of mpc keys by `userId` - api_response = fireblocks.keys_beta.get_mpc_keys_list_by_user(user_id).result() - print("The response of KeysBetaApi->get_mpc_keys_list_by_user:\n") + api_response = fireblocks.keys.get_mpc_keys_list_by_user(user_id).result() + print("The response of KeysApi->get_mpc_keys_list_by_user:\n") pprint(api_response) except Exception as e: - print("Exception when calling KeysBetaApi->get_mpc_keys_list_by_user: %s\n" % e) + print("Exception when calling KeysApi->get_mpc_keys_list_by_user: %s\n" % e) ``` diff --git a/docs/PairApiKeyResponse.md b/docs/PairApiKeyResponse.md deleted file mode 100644 index d01f84c9..00000000 --- a/docs/PairApiKeyResponse.md +++ /dev/null @@ -1,30 +0,0 @@ -# PairApiKeyResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | The unique identifier of the API key | -**callback_handler** | [**CallbackHandlerRequest**](CallbackHandlerRequest.md) | | [optional] - -## Example - -```python -from fireblocks.models.pair_api_key_response import PairApiKeyResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of PairApiKeyResponse from a JSON string -pair_api_key_response_instance = PairApiKeyResponse.from_json(json) -# print the JSON string representation of the object -print(PairApiKeyResponse.to_json()) - -# convert the object into a dict -pair_api_key_response_dict = pair_api_key_response_instance.to_dict() -# create an instance of PairApiKeyResponse from a dict -pair_api_key_response_from_dict = PairApiKeyResponse.from_dict(pair_api_key_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/PairApiKeyRequest.md b/docs/PairApiUserRequest.md similarity index 53% rename from docs/PairApiKeyRequest.md rename to docs/PairApiUserRequest.md index 881c598d..f316f9c5 100644 --- a/docs/PairApiKeyRequest.md +++ b/docs/PairApiUserRequest.md @@ -1,4 +1,4 @@ -# PairApiKeyRequest +# PairApiUserRequest ## Properties @@ -10,19 +10,19 @@ Name | Type | Description | Notes ## Example ```python -from fireblocks.models.pair_api_key_request import PairApiKeyRequest +from fireblocks.models.pair_api_user_request import PairApiUserRequest # TODO update the JSON string below json = "{}" -# create an instance of PairApiKeyRequest from a JSON string -pair_api_key_request_instance = PairApiKeyRequest.from_json(json) +# create an instance of PairApiUserRequest from a JSON string +pair_api_user_request_instance = PairApiUserRequest.from_json(json) # print the JSON string representation of the object -print(PairApiKeyRequest.to_json()) +print(PairApiUserRequest.to_json()) # convert the object into a dict -pair_api_key_request_dict = pair_api_key_request_instance.to_dict() -# create an instance of PairApiKeyRequest from a dict -pair_api_key_request_from_dict = PairApiKeyRequest.from_dict(pair_api_key_request_dict) +pair_api_user_request_dict = pair_api_user_request_instance.to_dict() +# create an instance of PairApiUserRequest from a dict +pair_api_user_request_from_dict = PairApiUserRequest.from_dict(pair_api_user_request_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/PairApiUserResponse.md b/docs/PairApiUserResponse.md new file mode 100644 index 00000000..47464995 --- /dev/null +++ b/docs/PairApiUserResponse.md @@ -0,0 +1,30 @@ +# PairApiUserResponse + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | The unique identifier of the API user | +**callback_handler** | [**CallbackHandlerRequest**](CallbackHandlerRequest.md) | | [optional] + +## Example + +```python +from fireblocks.models.pair_api_user_response import PairApiUserResponse + +# TODO update the JSON string below +json = "{}" +# create an instance of PairApiUserResponse from a JSON string +pair_api_user_response_instance = PairApiUserResponse.from_json(json) +# print the JSON string representation of the object +print(PairApiUserResponse.to_json()) + +# convert the object into a dict +pair_api_user_response_dict = pair_api_user_response_instance.to_dict() +# create an instance of PairApiUserResponse from a dict +pair_api_user_response_from_dict = PairApiUserResponse.from_dict(pair_api_user_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/TRLinkApi.md b/docs/TRLinkApi.md index 31f68ede..39f4e6be 100644 --- a/docs/TRLinkApi.md +++ b/docs/TRLinkApi.md @@ -18,6 +18,7 @@ Method | HTTP request | Description [**get_tr_link_customer_integrations**](TRLinkApi.md#get_tr_link_customer_integrations) | **GET** /screening/trlink/customers/{customerId}/integrations | Get customer integrations [**get_tr_link_customers**](TRLinkApi.md#get_tr_link_customers) | **GET** /screening/trlink/customers | Get all customers [**get_tr_link_integration_public_key**](TRLinkApi.md#get_tr_link_integration_public_key) | **GET** /screening/trlink/customers/integration/{customerIntegrationId}/public_key | Get public key for PII encryption +[**get_tr_link_manual_decision**](TRLinkApi.md#get_tr_link_manual_decision) | **GET** /screening/trlink/customers/integration/{customerIntegrationId}/transactions/{txId}/manual_decision | Get manual decision for missing TRM [**get_tr_link_partners**](TRLinkApi.md#get_tr_link_partners) | **GET** /screening/trlink/partners | List available TRSupport partners [**get_tr_link_policy**](TRLinkApi.md#get_tr_link_policy) | **GET** /screening/trlink/policy | Get TRLink policy [**get_tr_link_supported_asset**](TRLinkApi.md#get_tr_link_supported_asset) | **GET** /screening/trlink/customers/integration/{customerIntegrationId}/assets/{assetId} | Get supported asset by ID @@ -432,7 +433,7 @@ No authorization required Manual decision for missing TRM -Accept or reject destinations stuck in NoTRM step without waiting for TRP webhook or policy timeout. +Accept or reject destinations waiting for a Travel Rule message (missing TRM), without waiting for a TRP webhook or the missing-TRM policy timeout. You can submit before a destination enters the missing-TRM wait; if it can't be updated immediately, the decision is applied on the next processing attempt instead (status ACCEPTED). Check `status` in the response to see whether the decision has been applied. ### Example @@ -503,7 +504,10 @@ No authorization required | Status code | Description | Response headers | |-------------|-------------|------------------| -**200** | Decision applied successfully | - | +**200** | Decision applied (status APPLIED), accepted for the next processing attempt (status ACCEPTED), or accepted early (status PRE_ACCEPTED). | * X-Request-ID -
| +**404** | Customer integration not found or not owned by tenant (code 2125). | * X-Request-ID -
| +**409** | Manual decision already final for this transaction (code 2127) or transaction screening already completed (code 2129). | * X-Request-ID -
| +**425** | Too Early - screening has not started for this transaction yet. | * 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) @@ -1095,6 +1099,83 @@ 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_tr_link_manual_decision** +> TRLinkManualDecisionResponse get_tr_link_manual_decision(customer_integration_id, tx_id) + +Get manual decision for missing TRM + +Returns the current manual missing-TRM decision for a transaction. Use to follow a decision that is not yet applied, or to check status at any time. + +### Example + + +```python +from fireblocks.models.tr_link_manual_decision_response import TRLinkManualDecisionResponse +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: + customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6' # str | Customer integration unique identifier + tx_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850e' # str | Fireblocks transaction unique identifier + + try: + # Get manual decision for missing TRM + api_response = fireblocks.tr_link.get_tr_link_manual_decision(customer_integration_id, tx_id).result() + print("The response of TRLinkApi->get_tr_link_manual_decision:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling TRLinkApi->get_tr_link_manual_decision: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **customer_integration_id** | **str**| Customer integration unique identifier | + **tx_id** | **str**| Fireblocks transaction unique identifier | + +### Return type + +[**TRLinkManualDecisionResponse**](TRLinkManualDecisionResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Current manual decision (status APPLIED, ACCEPTED, or PRE_ACCEPTED). | * X-Request-ID -
| +**404** | No manual decision for this transaction (code 2128), or customer integration not found or not owned by tenant (code 2125). | * 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_tr_link_partners** > List[TRLinkPartnerResponse] get_tr_link_partners() diff --git a/docs/TRLinkManualDecisionAction.md b/docs/TRLinkManualDecisionAction.md index 8830b624..7b204751 100644 --- a/docs/TRLinkManualDecisionAction.md +++ b/docs/TRLinkManualDecisionAction.md @@ -1,6 +1,6 @@ # TRLinkManualDecisionAction -Decision action for destinations in NoTRM status +Decision action for destinations waiting for a Travel Rule message (missing TRM) ## Enum diff --git a/docs/TRLinkManualDecisionDestinationDetail.md b/docs/TRLinkManualDecisionDestinationDetail.md index 6081dd79..ad8b427c 100644 --- a/docs/TRLinkManualDecisionDestinationDetail.md +++ b/docs/TRLinkManualDecisionDestinationDetail.md @@ -8,7 +8,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **destination_screening_id** | **str** | Destination screening record ID | **applied** | **bool** | Whether the decision was applied to this destination | -**skip_reason** | **str** | Reason if the destination was skipped | [optional] +**skip_reason** | **str** | Reason when applied is false. Common values: deferred apply (destination could not be updated immediately), already applied, status changed, trmId exists, destination not found. | [optional] ## Example diff --git a/docs/TRLinkManualDecisionRequest.md b/docs/TRLinkManualDecisionRequest.md index 61bfa165..ec1d92cf 100644 --- a/docs/TRLinkManualDecisionRequest.md +++ b/docs/TRLinkManualDecisionRequest.md @@ -1,6 +1,6 @@ # TRLinkManualDecisionRequest -Request to manually accept or reject destinations stuck in NoTRM status +Request to manually accept or reject destinations waiting for a Travel Rule message (missing TRM) ## Properties diff --git a/docs/TRLinkManualDecisionResponse.md b/docs/TRLinkManualDecisionResponse.md index 49a23c5a..ac9277f1 100644 --- a/docs/TRLinkManualDecisionResponse.md +++ b/docs/TRLinkManualDecisionResponse.md @@ -1,11 +1,12 @@ # TRLinkManualDecisionResponse -Response containing the result of the manual decision +Response containing the result of a manual missing-TRM decision (POST write or GET read). ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- +**status** | [**TRLinkManualDecisionResponseStatusEnum**](TRLinkManualDecisionResponseStatusEnum.md) | | **action** | [**TRLinkManualDecisionAction**](TRLinkManualDecisionAction.md) | | **source** | [**TRLinkManualDecisionSource**](TRLinkManualDecisionSource.md) | | **tx_id** | **str** | Transaction ID | diff --git a/docs/TRLinkManualDecisionResponseStatusEnum.md b/docs/TRLinkManualDecisionResponseStatusEnum.md new file mode 100644 index 00000000..688bbf1c --- /dev/null +++ b/docs/TRLinkManualDecisionResponseStatusEnum.md @@ -0,0 +1,15 @@ +# TRLinkManualDecisionResponseStatusEnum + +APPLIED - Decision applied to at least one destination immediately. ACCEPTED - Intent stored for deferred apply on the next processing attempt. PRE_ACCEPTED - Intent stored on the transaction before destinations entered the missing-TRM wait. + +## Enum + +* `APPLIED` (value: `'APPLIED'`) + +* `ACCEPTED` (value: `'ACCEPTED'`) + +* `PRE_ACCEPTED` (value: `'PRE_ACCEPTED'`) + +[[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/TRLinkManualDecisionSource.md b/docs/TRLinkManualDecisionSource.md index 6ae2902d..f487013e 100644 --- a/docs/TRLinkManualDecisionSource.md +++ b/docs/TRLinkManualDecisionSource.md @@ -1,12 +1,12 @@ # TRLinkManualDecisionSource -Source of the manual decision +Source of the manual decision. Values are lowercase. ## Enum -* `MANUAL` (value: `'MANUAL'`) +* `MANUAL` (value: `'manual'`) -* `POLICY` (value: `'POLICY'`) +* `POLICY` (value: `'policy'`) [[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/TempoTransferDestination.md b/docs/TempoTransferDestination.md index f159130a..ece91493 100644 --- a/docs/TempoTransferDestination.md +++ b/docs/TempoTransferDestination.md @@ -9,6 +9,7 @@ Name | Type | Description | Notes **type** | **str** | The kind of destination. | **id** | **str** | Required when type is VAULT_ACCOUNT or UNMANAGED_WALLET. | [optional] **one_time_address** | [**OneTimeAddress**](OneTimeAddress.md) | | [optional] +**memo** | **str** | Tempo TIP-20 memo, sent on-chain with the transfer to this destination. Exactly 32 bytes once UTF-8 encoded. NOTES: - The memo is public and permanent on-chain, so do not put sensitive data in it. - A memo is currently supported only for a transfer with a single destination | [optional] ## Example diff --git a/docs/TypedMessageTransactionStatusEnum.md b/docs/TypedMessageTransactionStatusEnum.md index 46eb546f..57187a3f 100644 --- a/docs/TypedMessageTransactionStatusEnum.md +++ b/docs/TypedMessageTransactionStatusEnum.md @@ -16,12 +16,16 @@ Status of the typed message transaction from Fireblocks. For details, see [Prima * `PENDING_3_RD_PARTY` (value: `'PENDING_3RD_PARTY'`) +* `SIGNED` (value: `'SIGNED'`) + * `BROADCASTING` (value: `'BROADCASTING'`) * `PENDING_AML_SCREENING` (value: `'PENDING_AML_SCREENING'`) * `CONFIRMING` (value: `'CONFIRMING'`) +* `COMPLETED` (value: `'COMPLETED'`) + * `PARTIALLY_COMPLETED` (value: `'PARTIALLY_COMPLETED'`) * `PENDING_EMAIL_APPROVAL` (value: `'PENDING_EMAIL_APPROVAL'`) diff --git a/docs/ValidationKeyDto.md b/docs/ValidationKeyDto.md index 6e9c0f90..fc738351 100644 --- a/docs/ValidationKeyDto.md +++ b/docs/ValidationKeyDto.md @@ -10,6 +10,8 @@ Name | Type | Description | Notes **days_till_expired** | **float** | | **enabled** | **bool** | True if the validation key is enabled. | **created_at** | **float** | Creation date (timestamp) in milliseconds. | +**expiration_time** | **float** | Expiration date (Unix timestamp) in milliseconds. | +**revoked** | **bool** | True if the validation key is revoked. | [default to False] ## Example diff --git a/docs/VaultsApi.md b/docs/VaultsApi.md index 51314f91..b8944dbb 100644 --- a/docs/VaultsApi.md +++ b/docs/VaultsApi.md @@ -373,6 +373,7 @@ Create multiple vault accounts by running an async job. - The HBAR, TON, SUI, TERRA, ALGO, and DOT blockchains are not supported. - These endpoints are currently in beta and might be subject to changes. - Limited to a maximum of 10,000 accounts per operation. +- With `vaultType: KEY_LINK`, creates Key Link vault accounts; set `autoAssign: true` to bind them to the workspace's signing keys (see `vaultType` and `autoAssign`). **Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor. diff --git a/fireblocks/__init__.py b/fireblocks/__init__.py index 14d7716f..8e2d0264 100644 --- a/fireblocks/__init__.py +++ b/fireblocks/__init__.py @@ -14,7 +14,7 @@ Do not edit the class manually. """ # noqa: E501 -__version__ = "35.2.0" +__version__ = "0.0.0" # import apis into sdk package from fireblocks.api.api_user_api import ApiUserApi @@ -36,7 +36,7 @@ from fireblocks.api.contract_interactions_api import ContractInteractionsApi from fireblocks.api.contract_templates_api import ContractTemplatesApi from fireblocks.api.contracts_api import ContractsApi -from fireblocks.api.cosigners_beta_api import CosignersBetaApi +from fireblocks.api.cosigners_api import CosignersApi from fireblocks.api.deployed_contracts_api import DeployedContractsApi from fireblocks.api.earn_api import EarnApi from fireblocks.api.embedded_wallets_api import EmbeddedWalletsApi @@ -46,8 +46,8 @@ from fireblocks.api.gas_stations_api import GasStationsApi from fireblocks.api.genie_beta_api import GenieBetaApi from fireblocks.api.internal_wallets_api import InternalWalletsApi -from fireblocks.api.key_link_beta_api import KeyLinkBetaApi -from fireblocks.api.keys_beta_api import KeysBetaApi +from fireblocks.api.key_link_api import KeyLinkApi +from fireblocks.api.keys_api import KeysApi from fireblocks.api.nfts_api import NFTsApi from fireblocks.api.network_connections_api import NetworkConnectionsApi from fireblocks.api.ota_beta_api import OTABetaApi @@ -234,8 +234,7 @@ from fireblocks.models.amount_range import AmountRange from fireblocks.models.amount_range_min_max import AmountRangeMinMax from fireblocks.models.amount_range_min_max2 import AmountRangeMinMax2 -from fireblocks.models.api_key import ApiKey -from fireblocks.models.api_keys_paginated_response import ApiKeysPaginatedResponse +from fireblocks.models.api_users_paginated_response import ApiUsersPaginatedResponse from fireblocks.models.approval_api_key import ApprovalApiKey from fireblocks.models.approval_api_public_key import ApprovalApiPublicKey from fireblocks.models.approval_request import ApprovalRequest @@ -524,6 +523,7 @@ from fireblocks.models.convert_assets_request import ConvertAssetsRequest from fireblocks.models.convert_assets_response import ConvertAssetsResponse from fireblocks.models.cosigner import Cosigner +from fireblocks.models.cosigner_api_user import CosignerApiUser from fireblocks.models.cosigners_paginated_response import CosignersPaginatedResponse from fireblocks.models.counterparty_group import CounterpartyGroup from fireblocks.models.counterparty_groups_paginated_response import ( @@ -1196,8 +1196,8 @@ ) from fireblocks.models.paginated_assets_response import PaginatedAssetsResponse from fireblocks.models.paging import Paging -from fireblocks.models.pair_api_key_request import PairApiKeyRequest -from fireblocks.models.pair_api_key_response import PairApiKeyResponse +from fireblocks.models.pair_api_user_request import PairApiUserRequest +from fireblocks.models.pair_api_user_response import PairApiUserResponse from fireblocks.models.parameter import Parameter from fireblocks.models.parameter_with_value import ParameterWithValue from fireblocks.models.participant_onboarding_payload import ( @@ -1686,6 +1686,9 @@ from fireblocks.models.tr_link_manual_decision_response import ( TRLinkManualDecisionResponse, ) +from fireblocks.models.tr_link_manual_decision_response_status_enum import ( + TRLinkManualDecisionResponseStatusEnum, +) from fireblocks.models.tr_link_manual_decision_source import TRLinkManualDecisionSource from fireblocks.models.tr_link_missing_trm_action import TRLinkMissingTrmAction from fireblocks.models.tr_link_missing_trm_action2 import TRLinkMissingTrmAction2 diff --git a/fireblocks/api/__init__.py b/fireblocks/api/__init__.py index a32d5411..1e69bf55 100644 --- a/fireblocks/api/__init__.py +++ b/fireblocks/api/__init__.py @@ -16,7 +16,7 @@ from fireblocks.api.contract_interactions_api import ContractInteractionsApi from fireblocks.api.contract_templates_api import ContractTemplatesApi from fireblocks.api.contracts_api import ContractsApi -from fireblocks.api.cosigners_beta_api import CosignersBetaApi +from fireblocks.api.cosigners_api import CosignersApi from fireblocks.api.deployed_contracts_api import DeployedContractsApi from fireblocks.api.earn_api import EarnApi from fireblocks.api.embedded_wallets_api import EmbeddedWalletsApi @@ -26,8 +26,8 @@ from fireblocks.api.gas_stations_api import GasStationsApi from fireblocks.api.genie_beta_api import GenieBetaApi from fireblocks.api.internal_wallets_api import InternalWalletsApi -from fireblocks.api.key_link_beta_api import KeyLinkBetaApi -from fireblocks.api.keys_beta_api import KeysBetaApi +from fireblocks.api.key_link_api import KeyLinkApi +from fireblocks.api.keys_api import KeysApi from fireblocks.api.nfts_api import NFTsApi from fireblocks.api.network_connections_api import NetworkConnectionsApi from fireblocks.api.ota_beta_api import OTABetaApi diff --git a/fireblocks/api/console_user_api.py b/fireblocks/api/console_user_api.py index ed40f05b..8d79efd5 100644 --- a/fireblocks/api/console_user_api.py +++ b/fireblocks/api/console_user_api.py @@ -217,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. - 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. + 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 in Early Availability (EA) and may change or break before it reaches GA. :param id: The ID of the console user to delete (required) :type id: str diff --git a/fireblocks/api/cosigners_beta_api.py b/fireblocks/api/cosigners_api.py similarity index 87% rename from fireblocks/api/cosigners_beta_api.py rename to fireblocks/api/cosigners_api.py index dca61a40..306cbf04 100644 --- a/fireblocks/api/cosigners_beta_api.py +++ b/fireblocks/api/cosigners_api.py @@ -23,12 +23,12 @@ from typing_extensions import Annotated from fireblocks.models.add_cosigner_request import AddCosignerRequest from fireblocks.models.add_cosigner_response import AddCosignerResponse -from fireblocks.models.api_key import ApiKey -from fireblocks.models.api_keys_paginated_response import ApiKeysPaginatedResponse +from fireblocks.models.api_users_paginated_response import ApiUsersPaginatedResponse from fireblocks.models.cosigner import Cosigner +from fireblocks.models.cosigner_api_user import CosignerApiUser from fireblocks.models.cosigners_paginated_response import CosignersPaginatedResponse -from fireblocks.models.pair_api_key_request import PairApiKeyRequest -from fireblocks.models.pair_api_key_response import PairApiKeyResponse +from fireblocks.models.pair_api_user_request import PairApiUserRequest +from fireblocks.models.pair_api_user_response import PairApiUserResponse from fireblocks.models.rename_cosigner import RenameCosigner from fireblocks.models.status import Status from fireblocks.models.update_callback_handler_request import UpdateCallbackHandlerRequest @@ -40,7 +40,7 @@ from fireblocks.validation_utils import validate_not_empty_string -class CosignersBetaApi: +class CosignersApi: """NOTE: This class is auto generated by OpenAPI Generator Ref: https://openapi-generator.tech @@ -73,7 +73,7 @@ def add_cosigner( ) -> Future[ApiResponse[AddCosignerResponse]]: """Add cosigner - Add a new cosigner. The cosigner will be pending pairing until the API key is manually paired Endpoint Permission: Admin and Non-Signing Admin. + Add a new cosigner. The cosigner will be pending pairing until the API user is manually paired (see `pairCosignerApiUser`). Endpoint Permission: Admin and Non-Signing Admin. :param add_cosigner_request: (required) :type add_cosigner_request: AddCosignerRequest @@ -203,10 +203,9 @@ def _add_cosigner_serialize( @validate_call - def get_api_key( + def get_cosigner( self, cosigner_id: Annotated[StrictStr, Field(description="The unique identifier of the cosigner")], - api_key_id: Annotated[StrictStr, Field(description="The unique identifier of the API key")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -219,15 +218,13 @@ def get_api_key( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ApiKey]]: - """Get API key + ) -> Future[ApiResponse[Cosigner]]: + """Get cosigner - Get an API key by ID. **Note:** These endpoints are currently in beta and might be subject to changes. Endpoint Permission: Admin and Non-Signing Admin. + Get a cosigner by ID. Endpoint Permission: Admin and Non-Signing Admin. :param cosigner_id: The unique identifier of the cosigner (required) :type cosigner_id: str - :param api_key_id: The unique identifier of the API key (required) - :type api_key_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 @@ -250,12 +247,10 @@ def get_api_key( :return: Returns the result object. """ # noqa: E501 - validate_not_empty_string(function_name="get_api_key", param_name="cosigner_id", param_value=cosigner_id) - validate_not_empty_string(function_name="get_api_key", param_name="api_key_id", param_value=api_key_id) + validate_not_empty_string(function_name="get_cosigner", param_name="cosigner_id", param_value=cosigner_id) - _param = self._get_api_key_serialize( + _param = self._get_cosigner_serialize( cosigner_id=cosigner_id, - api_key_id=api_key_id, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, @@ -263,7 +258,7 @@ def get_api_key( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "ApiKey", + '200': "Cosigner", 'default': "ErrorSchema", } @@ -271,13 +266,12 @@ def get_api_key( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, - _operation_id="get_api_key", + _operation_id="get_cosigner", ) - def _get_api_key_serialize( + def _get_cosigner_serialize( self, cosigner_id, - api_key_id, _request_auth, _content_type, _headers, @@ -301,8 +295,6 @@ def _get_api_key_serialize( # process the path parameters if cosigner_id is not None: _path_params['cosignerId'] = cosigner_id - if api_key_id is not None: - _path_params['apiKeyId'] = api_key_id # process the query parameters # process the header parameters # process the form parameters @@ -324,7 +316,7 @@ def _get_api_key_serialize( return self.api_client.param_serialize( method='GET', - resource_path='/cosigners/{cosignerId}/api_keys/{apiKeyId}', + resource_path='/cosigners/{cosignerId}', path_params=_path_params, query_params=_query_params, header_params=_header_params, @@ -341,12 +333,10 @@ def _get_api_key_serialize( @validate_call - def get_api_keys( + def get_cosigner_api_user( self, cosigner_id: Annotated[StrictStr, Field(description="The unique identifier of the cosigner")], - order: Annotated[Optional[StrictStr], Field(description="ASC / DESC ordering (default DESC)")] = None, - page_cursor: Annotated[Optional[StrictStr], Field(description="Cursor of the required page")] = None, - page_size: Annotated[Optional[Union[Annotated[float, Field(le=100, strict=True, ge=1)], Annotated[int, Field(le=100, strict=True, ge=1)]]], Field(description="Maximum number of items in the page")] = None, + api_user_id: Annotated[StrictStr, Field(description="The unique identifier of the API user")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -359,19 +349,15 @@ def get_api_keys( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ApiKeysPaginatedResponse]]: - """Get all API keys + ) -> Future[ApiResponse[CosignerApiUser]]: + """Get API user - Get all cosigner paired API keys (paginated). **Note:** These endpoints are currently in beta and might be subject to changes. Endpoint Permission: Admin and Non-Signing Admin. + Get an API user by ID. Endpoint Permission: Admin and Non-Signing Admin. :param cosigner_id: The unique identifier of the cosigner (required) :type cosigner_id: str - :param order: ASC / DESC ordering (default DESC) - :type order: str - :param page_cursor: Cursor of the required page - :type page_cursor: str - :param page_size: Maximum number of items in the page - :type page_size: float + :param api_user_id: The unique identifier of the API user (required) + :type api_user_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 @@ -394,13 +380,12 @@ def get_api_keys( :return: Returns the result object. """ # noqa: E501 - validate_not_empty_string(function_name="get_api_keys", param_name="cosigner_id", param_value=cosigner_id) + validate_not_empty_string(function_name="get_cosigner_api_user", param_name="cosigner_id", param_value=cosigner_id) + validate_not_empty_string(function_name="get_cosigner_api_user", param_name="api_user_id", param_value=api_user_id) - _param = self._get_api_keys_serialize( + _param = self._get_cosigner_api_user_serialize( cosigner_id=cosigner_id, - order=order, - page_cursor=page_cursor, - page_size=page_size, + api_user_id=api_user_id, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, @@ -408,7 +393,7 @@ def get_api_keys( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "ApiKeysPaginatedResponse", + '200': "CosignerApiUser", 'default': "ErrorSchema", } @@ -416,15 +401,13 @@ def get_api_keys( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, - _operation_id="get_api_keys", + _operation_id="get_cosigner_api_user", ) - def _get_api_keys_serialize( + def _get_cosigner_api_user_serialize( self, cosigner_id, - order, - page_cursor, - page_size, + api_user_id, _request_auth, _content_type, _headers, @@ -448,19 +431,9 @@ def _get_api_keys_serialize( # process the path parameters if cosigner_id is not None: _path_params['cosignerId'] = cosigner_id + if api_user_id is not None: + _path_params['apiUserId'] = api_user_id # process the query parameters - if order is not None: - - _query_params.append(('order', order)) - - 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 @@ -481,7 +454,7 @@ def _get_api_keys_serialize( return self.api_client.param_serialize( method='GET', - resource_path='/cosigners/{cosignerId}/api_keys', + resource_path='/cosigners/{cosignerId}/api_users/{apiUserId}', path_params=_path_params, query_params=_query_params, header_params=_header_params, @@ -498,9 +471,11 @@ def _get_api_keys_serialize( @validate_call - def get_cosigner( + def get_cosigner_api_user_request_status( self, cosigner_id: Annotated[StrictStr, Field(description="The unique identifier of the cosigner")], + api_user_id: Annotated[StrictStr, Field(description="The unique identifier of the API user")], + request_id: StrictStr, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -513,13 +488,17 @@ def get_cosigner( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[Cosigner]]: - """Get cosigner + ) -> Future[ApiResponse[Status]]: + """Get API user request status - Get a cosigner by ID. **Note:** These endpoints are currently in beta and might be subject to changes. Endpoint Permission: Admin and Non-Signing Admin. + Get the status of an asynchronous request Endpoint Permission: Admin and Non-Signing Admin. :param cosigner_id: The unique identifier of the cosigner (required) :type cosigner_id: str + :param api_user_id: The unique identifier of the API user (required) + :type api_user_id: str + :param request_id: (required) + :type request_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 @@ -542,10 +521,14 @@ def get_cosigner( :return: Returns the result object. """ # noqa: E501 - validate_not_empty_string(function_name="get_cosigner", param_name="cosigner_id", param_value=cosigner_id) + validate_not_empty_string(function_name="get_cosigner_api_user_request_status", param_name="cosigner_id", param_value=cosigner_id) + validate_not_empty_string(function_name="get_cosigner_api_user_request_status", param_name="api_user_id", param_value=api_user_id) + validate_not_empty_string(function_name="get_cosigner_api_user_request_status", param_name="request_id", param_value=request_id) - _param = self._get_cosigner_serialize( + _param = self._get_cosigner_api_user_request_status_serialize( cosigner_id=cosigner_id, + api_user_id=api_user_id, + request_id=request_id, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, @@ -553,7 +536,7 @@ def get_cosigner( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "Cosigner", + '200': "Status", 'default': "ErrorSchema", } @@ -561,12 +544,14 @@ def get_cosigner( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, - _operation_id="get_cosigner", + _operation_id="get_cosigner_api_user_request_status", ) - def _get_cosigner_serialize( + def _get_cosigner_api_user_request_status_serialize( self, cosigner_id, + api_user_id, + request_id, _request_auth, _content_type, _headers, @@ -590,6 +575,10 @@ def _get_cosigner_serialize( # process the path parameters if cosigner_id is not None: _path_params['cosignerId'] = cosigner_id + if api_user_id is not None: + _path_params['apiUserId'] = api_user_id + if request_id is not None: + _path_params['requestId'] = request_id # process the query parameters # process the header parameters # process the form parameters @@ -611,7 +600,7 @@ def _get_cosigner_serialize( return self.api_client.param_serialize( method='GET', - resource_path='/cosigners/{cosignerId}', + resource_path='/cosigners/{cosignerId}/api_users/{apiUserId}/{requestId}', path_params=_path_params, query_params=_query_params, header_params=_header_params, @@ -628,8 +617,9 @@ def _get_cosigner_serialize( @validate_call - def get_cosigners( + def get_cosigner_api_users( self, + cosigner_id: Annotated[StrictStr, Field(description="The unique identifier of the cosigner")], order: Annotated[Optional[StrictStr], Field(description="ASC / DESC ordering (default DESC)")] = None, page_cursor: Annotated[Optional[StrictStr], Field(description="Cursor of the required page")] = None, page_size: Annotated[Optional[Union[Annotated[float, Field(le=100, strict=True, ge=1)], Annotated[int, Field(le=100, strict=True, ge=1)]]], Field(description="Maximum number of items in the page")] = None, @@ -645,11 +635,13 @@ def get_cosigners( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[CosignersPaginatedResponse]]: - """Get all cosigners + ) -> Future[ApiResponse[ApiUsersPaginatedResponse]]: + """Get all API users - Get all workspace cosigners (paginated). **Note:** These endpoints are currently in beta and might be subject to changes. Endpoint Permission: Admin and Non-Signing Admin. + Get all cosigner paired API users (paginated). Endpoint Permission: Admin and Non-Signing Admin. + :param cosigner_id: The unique identifier of the cosigner (required) + :type cosigner_id: str :param order: ASC / DESC ordering (default DESC) :type order: str :param page_cursor: Cursor of the required page @@ -678,8 +670,10 @@ def get_cosigners( :return: Returns the result object. """ # noqa: E501 + validate_not_empty_string(function_name="get_cosigner_api_users", param_name="cosigner_id", param_value=cosigner_id) - _param = self._get_cosigners_serialize( + _param = self._get_cosigner_api_users_serialize( + cosigner_id=cosigner_id, order=order, page_cursor=page_cursor, page_size=page_size, @@ -690,7 +684,7 @@ def get_cosigners( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "CosignersPaginatedResponse", + '200': "ApiUsersPaginatedResponse", 'default': "ErrorSchema", } @@ -698,11 +692,12 @@ def get_cosigners( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, - _operation_id="get_cosigners", + _operation_id="get_cosigner_api_users", ) - def _get_cosigners_serialize( + def _get_cosigner_api_users_serialize( self, + cosigner_id, order, page_cursor, page_size, @@ -727,6 +722,8 @@ def _get_cosigners_serialize( _body_params: Optional[bytes] = None # process the path parameters + if cosigner_id is not None: + _path_params['cosignerId'] = cosigner_id # process the query parameters if order is not None: @@ -760,7 +757,7 @@ def _get_cosigners_serialize( return self.api_client.param_serialize( method='GET', - resource_path='/cosigners', + resource_path='/cosigners/{cosignerId}/api_users', path_params=_path_params, query_params=_query_params, header_params=_header_params, @@ -777,11 +774,11 @@ def _get_cosigners_serialize( @validate_call - def get_request_status( + def get_cosigners( self, - cosigner_id: Annotated[StrictStr, Field(description="The unique identifier of the cosigner")], - api_key_id: Annotated[StrictStr, Field(description="The unique identifier of the API key")], - request_id: StrictStr, + order: Annotated[Optional[StrictStr], Field(description="ASC / DESC ordering (default DESC)")] = None, + page_cursor: Annotated[Optional[StrictStr], Field(description="Cursor of the required page")] = None, + page_size: Annotated[Optional[Union[Annotated[float, Field(le=100, strict=True, ge=1)], Annotated[int, Field(le=100, strict=True, ge=1)]]], Field(description="Maximum number of items in the page")] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -794,17 +791,17 @@ def get_request_status( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[Status]]: - """Get request status + ) -> Future[ApiResponse[CosignersPaginatedResponse]]: + """Get all cosigners - Get the status of an asynchronous request Endpoint Permission: Admin and Non-Signing Admin. + Get all workspace cosigners (paginated). Endpoint Permission: Admin and Non-Signing Admin. - :param cosigner_id: The unique identifier of the cosigner (required) - :type cosigner_id: str - :param api_key_id: The unique identifier of the API key (required) - :type api_key_id: str - :param request_id: (required) - :type request_id: str + :param order: ASC / DESC ordering (default DESC) + :type order: str + :param page_cursor: Cursor of the required page + :type page_cursor: str + :param page_size: Maximum number of items in the page + :type page_size: float :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 @@ -827,14 +824,11 @@ def get_request_status( :return: Returns the result object. """ # noqa: E501 - validate_not_empty_string(function_name="get_request_status", param_name="cosigner_id", param_value=cosigner_id) - validate_not_empty_string(function_name="get_request_status", param_name="api_key_id", param_value=api_key_id) - validate_not_empty_string(function_name="get_request_status", param_name="request_id", param_value=request_id) - _param = self._get_request_status_serialize( - cosigner_id=cosigner_id, - api_key_id=api_key_id, - request_id=request_id, + _param = self._get_cosigners_serialize( + order=order, + page_cursor=page_cursor, + page_size=page_size, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, @@ -842,7 +836,7 @@ def get_request_status( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "Status", + '200': "CosignersPaginatedResponse", 'default': "ErrorSchema", } @@ -850,14 +844,14 @@ def get_request_status( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, - _operation_id="get_request_status", + _operation_id="get_cosigners", ) - def _get_request_status_serialize( + def _get_cosigners_serialize( self, - cosigner_id, - api_key_id, - request_id, + order, + page_cursor, + page_size, _request_auth, _content_type, _headers, @@ -879,13 +873,19 @@ def _get_request_status_serialize( _body_params: Optional[bytes] = None # process the path parameters - if cosigner_id is not None: - _path_params['cosignerId'] = cosigner_id - if api_key_id is not None: - _path_params['apiKeyId'] = api_key_id - if request_id is not None: - _path_params['requestId'] = request_id # process the query parameters + if order is not None: + + _query_params.append(('order', order)) + + 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 @@ -906,7 +906,7 @@ def _get_request_status_serialize( return self.api_client.param_serialize( method='GET', - resource_path='/cosigners/{cosignerId}/api_keys/{apiKeyId}/{requestId}', + resource_path='/cosigners', path_params=_path_params, query_params=_query_params, header_params=_header_params, @@ -923,11 +923,11 @@ def _get_request_status_serialize( @validate_call - def pair_api_key( + def pair_cosigner_api_user( self, cosigner_id: Annotated[StrictStr, Field(description="The unique identifier of the cosigner")], - api_key_id: Annotated[StrictStr, Field(description="The unique identifier of the API key")], - pair_api_key_request: PairApiKeyRequest, + api_user_id: Annotated[StrictStr, Field(description="The unique identifier of the API user")], + pair_api_user_request: PairApiUserRequest, 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, @@ -941,17 +941,17 @@ def pair_api_key( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[PairApiKeyResponse]]: - """Pair API key + ) -> Future[ApiResponse[PairApiUserResponse]]: + """Pair API user - Pair an API key to a cosigner Endpoint Permission: Admin and Non-Signing Admin. + Pair an API user to a cosigner Endpoint Permission: Admin and Non-Signing Admin. :param cosigner_id: The unique identifier of the cosigner (required) :type cosigner_id: str - :param api_key_id: The unique identifier of the API key (required) - :type api_key_id: str - :param pair_api_key_request: (required) - :type pair_api_key_request: PairApiKeyRequest + :param api_user_id: The unique identifier of the API user (required) + :type api_user_id: str + :param pair_api_user_request: (required) + :type pair_api_user_request: PairApiUserRequest :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 @@ -976,13 +976,13 @@ def pair_api_key( :return: Returns the result object. """ # noqa: E501 - validate_not_empty_string(function_name="pair_api_key", param_name="cosigner_id", param_value=cosigner_id) - validate_not_empty_string(function_name="pair_api_key", param_name="api_key_id", param_value=api_key_id) + validate_not_empty_string(function_name="pair_cosigner_api_user", param_name="cosigner_id", param_value=cosigner_id) + validate_not_empty_string(function_name="pair_cosigner_api_user", param_name="api_user_id", param_value=api_user_id) - _param = self._pair_api_key_serialize( + _param = self._pair_cosigner_api_user_serialize( cosigner_id=cosigner_id, - api_key_id=api_key_id, - pair_api_key_request=pair_api_key_request, + api_user_id=api_user_id, + pair_api_user_request=pair_api_user_request, idempotency_key=idempotency_key, _request_auth=_request_auth, _content_type=_content_type, @@ -991,7 +991,7 @@ def pair_api_key( ) _response_types_map: Dict[str, Optional[str]] = { - '202': "PairApiKeyResponse", + '202': "PairApiUserResponse", 'default': "ErrorSchema", } @@ -999,14 +999,14 @@ def pair_api_key( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, - _operation_id="pair_api_key", + _operation_id="pair_cosigner_api_user", ) - def _pair_api_key_serialize( + def _pair_cosigner_api_user_serialize( self, cosigner_id, - api_key_id, - pair_api_key_request, + api_user_id, + pair_api_user_request, idempotency_key, _request_auth, _content_type, @@ -1031,16 +1031,16 @@ def _pair_api_key_serialize( # process the path parameters if cosigner_id is not None: _path_params['cosignerId'] = cosigner_id - if api_key_id is not None: - _path_params['apiKeyId'] = api_key_id + if api_user_id is not None: + _path_params['apiUserId'] = api_user_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 - if pair_api_key_request is not None: - _body_params = pair_api_key_request + if pair_api_user_request is not None: + _body_params = pair_api_user_request # set the HTTP header `Accept` @@ -1071,7 +1071,7 @@ def _pair_api_key_serialize( return self.api_client.param_serialize( method='PUT', - resource_path='/cosigners/{cosignerId}/api_keys/{apiKeyId}', + resource_path='/cosigners/{cosignerId}/api_users/{apiUserId}', path_params=_path_params, query_params=_query_params, header_params=_header_params, @@ -1107,7 +1107,7 @@ def rename_cosigner( ) -> Future[ApiResponse[Cosigner]]: """Rename cosigner - Rename a cosigner by ID. **Note:** These endpoints are currently in beta and might be subject to changes. Endpoint Permission: Admin and Non-Signing Admin. + Rename a cosigner by ID. Endpoint Permission: Admin and Non-Signing Admin. :param cosigner_id: The unique identifier of the cosigner (required) :type cosigner_id: str @@ -1238,10 +1238,10 @@ def _rename_cosigner_serialize( @validate_call - def unpair_api_key( + def unpair_cosigner_api_user( self, cosigner_id: Annotated[StrictStr, Field(description="The unique identifier of the cosigner")], - api_key_id: Annotated[StrictStr, Field(description="The unique identifier of the API key")], + api_user_id: Annotated[StrictStr, Field(description="The unique identifier of the API user")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -1254,15 +1254,15 @@ def unpair_api_key( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ApiKey]]: - """Unpair API key + ) -> Future[ApiResponse[CosignerApiUser]]: + """Unpair API user - Unpair an API key from a cosigner Endpoint Permission: Admin and Non-Signing Admin. + Unpair an API user from a cosigner Endpoint Permission: Admin and Non-Signing Admin. :param cosigner_id: The unique identifier of the cosigner (required) :type cosigner_id: str - :param api_key_id: The unique identifier of the API key (required) - :type api_key_id: str + :param api_user_id: The unique identifier of the API user (required) + :type api_user_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 @@ -1285,12 +1285,12 @@ def unpair_api_key( :return: Returns the result object. """ # noqa: E501 - validate_not_empty_string(function_name="unpair_api_key", param_name="cosigner_id", param_value=cosigner_id) - validate_not_empty_string(function_name="unpair_api_key", param_name="api_key_id", param_value=api_key_id) + validate_not_empty_string(function_name="unpair_cosigner_api_user", param_name="cosigner_id", param_value=cosigner_id) + validate_not_empty_string(function_name="unpair_cosigner_api_user", param_name="api_user_id", param_value=api_user_id) - _param = self._unpair_api_key_serialize( + _param = self._unpair_cosigner_api_user_serialize( cosigner_id=cosigner_id, - api_key_id=api_key_id, + api_user_id=api_user_id, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, @@ -1298,7 +1298,7 @@ def unpair_api_key( ) _response_types_map: Dict[str, Optional[str]] = { - '202': "ApiKey", + '202': "CosignerApiUser", 'default': "ErrorSchema", } @@ -1306,13 +1306,13 @@ def unpair_api_key( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, - _operation_id="unpair_api_key", + _operation_id="unpair_cosigner_api_user", ) - def _unpair_api_key_serialize( + def _unpair_cosigner_api_user_serialize( self, cosigner_id, - api_key_id, + api_user_id, _request_auth, _content_type, _headers, @@ -1336,8 +1336,8 @@ def _unpair_api_key_serialize( # process the path parameters if cosigner_id is not None: _path_params['cosignerId'] = cosigner_id - if api_key_id is not None: - _path_params['apiKeyId'] = api_key_id + if api_user_id is not None: + _path_params['apiUserId'] = api_user_id # process the query parameters # process the header parameters # process the form parameters @@ -1359,7 +1359,7 @@ def _unpair_api_key_serialize( return self.api_client.param_serialize( method='DELETE', - resource_path='/cosigners/{cosignerId}/api_keys/{apiKeyId}', + resource_path='/cosigners/{cosignerId}/api_users/{apiUserId}', path_params=_path_params, query_params=_query_params, header_params=_header_params, @@ -1376,10 +1376,10 @@ def _unpair_api_key_serialize( @validate_call - def update_callback_handler( + def update_cosigner_api_user_callback_handler( self, cosigner_id: Annotated[StrictStr, Field(description="The unique identifier of the cosigner")], - api_key_id: Annotated[StrictStr, Field(description="The unique identifier of the API key")], + api_user_id: Annotated[StrictStr, Field(description="The unique identifier of the API user")], update_callback_handler_request: UpdateCallbackHandlerRequest, _request_timeout: Union[ None, @@ -1394,14 +1394,14 @@ def update_callback_handler( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> Future[ApiResponse[UpdateCallbackHandlerResponse]]: - """Update API key callback handler + """Update API user callback handler - Update the callback handler of an API key Endpoint Permission: Admin and Non-Signing Admin. + Update the callback handler of an API user Endpoint Permission: Admin and Non-Signing Admin. :param cosigner_id: The unique identifier of the cosigner (required) :type cosigner_id: str - :param api_key_id: The unique identifier of the API key (required) - :type api_key_id: str + :param api_user_id: The unique identifier of the API user (required) + :type api_user_id: str :param update_callback_handler_request: (required) :type update_callback_handler_request: UpdateCallbackHandlerRequest :param _request_timeout: timeout setting for this request. If one @@ -1426,12 +1426,12 @@ def update_callback_handler( :return: Returns the result object. """ # noqa: E501 - validate_not_empty_string(function_name="update_callback_handler", param_name="cosigner_id", param_value=cosigner_id) - validate_not_empty_string(function_name="update_callback_handler", param_name="api_key_id", param_value=api_key_id) + validate_not_empty_string(function_name="update_cosigner_api_user_callback_handler", param_name="cosigner_id", param_value=cosigner_id) + validate_not_empty_string(function_name="update_cosigner_api_user_callback_handler", param_name="api_user_id", param_value=api_user_id) - _param = self._update_callback_handler_serialize( + _param = self._update_cosigner_api_user_callback_handler_serialize( cosigner_id=cosigner_id, - api_key_id=api_key_id, + api_user_id=api_user_id, update_callback_handler_request=update_callback_handler_request, _request_auth=_request_auth, _content_type=_content_type, @@ -1448,13 +1448,13 @@ def update_callback_handler( *_param, _request_timeout=_request_timeout, _response_types_map=_response_types_map, - _operation_id="update_callback_handler", + _operation_id="update_cosigner_api_user_callback_handler", ) - def _update_callback_handler_serialize( + def _update_cosigner_api_user_callback_handler_serialize( self, cosigner_id, - api_key_id, + api_user_id, update_callback_handler_request, _request_auth, _content_type, @@ -1479,8 +1479,8 @@ def _update_callback_handler_serialize( # process the path parameters if cosigner_id is not None: _path_params['cosignerId'] = cosigner_id - if api_key_id is not None: - _path_params['apiKeyId'] = api_key_id + if api_user_id is not None: + _path_params['apiUserId'] = api_user_id # process the query parameters # process the header parameters # process the form parameters @@ -1517,7 +1517,7 @@ def _update_callback_handler_serialize( return self.api_client.param_serialize( method='PATCH', - resource_path='/cosigners/{cosignerId}/api_keys/{apiKeyId}', + resource_path='/cosigners/{cosignerId}/api_users/{apiUserId}', path_params=_path_params, query_params=_query_params, header_params=_header_params, diff --git a/fireblocks/api/key_link_beta_api.py b/fireblocks/api/key_link_api.py similarity index 91% rename from fireblocks/api/key_link_beta_api.py rename to fireblocks/api/key_link_api.py index 3e5f7815..3af07ab6 100644 --- a/fireblocks/api/key_link_beta_api.py +++ b/fireblocks/api/key_link_api.py @@ -42,7 +42,7 @@ from fireblocks.validation_utils import validate_not_empty_string -class KeyLinkBetaApi: +class KeyLinkApi: """NOTE: This class is auto generated by OpenAPI Generator Ref: https://openapi-generator.tech @@ -521,9 +521,9 @@ def disable_validation_key( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> Future[ApiResponse[ValidationKeyDto]]: - """Disables a validation key + """(Deprecated) Disables a validation key - Allows disabling validation key even if it has not expired yet. It is not allowed to enable the validation key back. Another key has to be used for future validations. + DEPRECATED - Please use `POST /key_link/validation_keys/{keyId}/revoke` instead. Allows disabling validation key even if it has not expired yet. It is not allowed to enable the validation key back. Another key has to be used for future validations. :param key_id: The unique identifier for the validation key provided by Fireblocks (required) :type key_id: str @@ -550,6 +550,7 @@ def disable_validation_key( :type _host_index: int, optional :return: Returns the result object. """ # noqa: E501 + warnings.warn("PATCH /key_link/validation_keys/{keyId} is deprecated.", DeprecationWarning) validate_not_empty_string(function_name="disable_validation_key", param_name="key_id", param_value=key_id) @@ -1411,6 +1412,7 @@ def get_validation_keys_list( page_size: Annotated[Optional[Union[Annotated[float, Field(le=50, strict=True, ge=1)], Annotated[int, Field(le=50, strict=True, ge=1)]]], Field(description="Amount of results to return in the next page")] = None, sort_by: Annotated[Optional[StrictStr], Field(description="Field(s) to use for sorting")] = None, order: Annotated[Optional[StrictStr], Field(description="Is the order ascending or descending")] = None, + include_revoked: Annotated[Optional[StrictBool], Field(description="Include revoked validation keys in the response")] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -1426,7 +1428,7 @@ def get_validation_keys_list( ) -> Future[ApiResponse[GetValidationKeyResponseDto]]: """Get list of registered validation keys - Returns the list of validation keys in the workspace + Returns the list of validation keys in the workspace. By default, revoked keys are filtered out. Use `includeRevoked=true` to show all keys. :param page_cursor: Cursor to the next page :type page_cursor: str @@ -1436,6 +1438,8 @@ def get_validation_keys_list( :type sort_by: str :param order: Is the order ascending or descending :type order: str + :param include_revoked: Include revoked validation keys in the response + :type include_revoked: bool :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 @@ -1464,6 +1468,7 @@ def get_validation_keys_list( page_size=page_size, sort_by=sort_by, order=order, + include_revoked=include_revoked, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, @@ -1488,6 +1493,7 @@ def _get_validation_keys_list_serialize( page_size, sort_by, order, + include_revoked, _request_auth, _content_type, _headers, @@ -1526,6 +1532,10 @@ def _get_validation_keys_list_serialize( _query_params.append(('order', order)) + if include_revoked is not None: + + _query_params.append(('includeRevoked', include_revoked)) + # process the header parameters # process the form parameters # process the body parameter @@ -1562,6 +1572,143 @@ def _get_validation_keys_list_serialize( + @validate_call + def revoke_validation_key( + self, + key_id: Annotated[StrictStr, Field(description="The unique identifier for the validation key provided by Fireblocks")], + 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[ValidationKeyDto]]: + """Revokes a validation key + + Revokes a validation key, making it permanently unusable for validation. Once revoked, a key cannot be un-revoked. Another key has to be used for future validations. + + :param key_id: The unique identifier for the validation key provided by Fireblocks (required) + :type key_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="revoke_validation_key", param_name="key_id", param_value=key_id) + + _param = self._revoke_validation_key_serialize( + key_id=key_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': "ValidationKeyDto", + 'default': "ErrorSchema", + } + + return self.api_client.call_api( + *_param, + _request_timeout=_request_timeout, + _response_types_map=_response_types_map, + _operation_id="revoke_validation_key", + ) + + def _revoke_validation_key_serialize( + self, + key_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 key_id is not None: + _path_params['keyId'] = key_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='/key_link/validation_keys/{keyId}/revoke', + 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_agent_id( self, diff --git a/fireblocks/api/keys_beta_api.py b/fireblocks/api/keys_api.py similarity index 97% rename from fireblocks/api/keys_beta_api.py rename to fireblocks/api/keys_api.py index fa2f28fc..ac6baac2 100644 --- a/fireblocks/api/keys_beta_api.py +++ b/fireblocks/api/keys_api.py @@ -28,7 +28,7 @@ from fireblocks.validation_utils import validate_not_empty_string -class KeysBetaApi: +class KeysApi: """NOTE: This class is auto generated by OpenAPI Generator Ref: https://openapi-generator.tech @@ -59,7 +59,7 @@ def get_mpc_keys_list( ) -> Future[ApiResponse[GetMpcKeysResponse]]: """Get list of mpc keys - Returns a list of MPC signing keys of the workspace. For each key, the list of players associated with it is attached. **Note:** This endpoint is currently in beta and might be subject to changes. + Returns a list of MPC signing keys of the workspace. For each key, the list of players associated with it is attached. :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -182,7 +182,7 @@ def get_mpc_keys_list_by_user( ) -> Future[ApiResponse[GetMpcKeysResponse]]: """Get list of mpc keys by `userId` - Returns a list of MPC signing keys of a specific user. For each key, the list of players associated with it is attached. **Note:** This endpoint is currently in beta and might be subject to changes. + Returns a list of MPC signing keys of a specific user. For each key, the list of players associated with it is attached. :param user_id: The id for the user (required) :type user_id: str diff --git a/fireblocks/api/tr_link_api.py b/fireblocks/api/tr_link_api.py index 730101ec..e1872bc4 100644 --- a/fireblocks/api/tr_link_api.py +++ b/fireblocks/api/tr_link_api.py @@ -868,7 +868,7 @@ def create_tr_link_manual_decision( ) -> Future[ApiResponse[TRLinkManualDecisionResponse]]: """Manual decision for missing TRM - Accept or reject destinations stuck in NoTRM step without waiting for TRP webhook or policy timeout. + Accept or reject destinations waiting for a Travel Rule message (missing TRM), without waiting for a TRP webhook or the missing-TRM policy timeout. You can submit before a destination enters the missing-TRM wait; if it can't be updated immediately, the decision is applied on the next processing attempt instead (status ACCEPTED). Check `status` in the response to see whether the decision has been applied. :param customer_integration_id: Customer integration unique identifier (required) :type customer_integration_id: str @@ -916,6 +916,9 @@ def create_tr_link_manual_decision( _response_types_map: Dict[str, Optional[str]] = { '200': "TRLinkManualDecisionResponse", + '404': "ErrorSchema", + '409': "ErrorSchema", + '425': "ErrorSchema", 'default': "ErrorSchema", } @@ -2078,6 +2081,145 @@ def _get_tr_link_integration_public_key_serialize( + @validate_call + def get_tr_link_manual_decision( + self, + customer_integration_id: Annotated[StrictStr, Field(description="Customer integration unique identifier")], + tx_id: Annotated[StrictStr, Field(description="Fireblocks transaction unique identifier")], + _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[TRLinkManualDecisionResponse]]: + """Get manual decision for missing TRM + + Returns the current manual missing-TRM decision for a transaction. Use to follow a decision that is not yet applied, or to check status at any time. + + :param customer_integration_id: Customer integration unique identifier (required) + :type customer_integration_id: str + :param tx_id: Fireblocks transaction unique identifier (required) + :type tx_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_tr_link_manual_decision", param_name="customer_integration_id", param_value=customer_integration_id) + validate_not_empty_string(function_name="get_tr_link_manual_decision", param_name="tx_id", param_value=tx_id) + + _param = self._get_tr_link_manual_decision_serialize( + customer_integration_id=customer_integration_id, + tx_id=tx_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "TRLinkManualDecisionResponse", + '404': "ErrorSchema", + 'default': "ErrorSchema", + } + + return self.api_client.call_api( + *_param, + _request_timeout=_request_timeout, + _response_types_map=_response_types_map, + _operation_id="get_tr_link_manual_decision", + ) + + def _get_tr_link_manual_decision_serialize( + self, + customer_integration_id, + tx_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 customer_integration_id is not None: + _path_params['customerIntegrationId'] = customer_integration_id + if tx_id is not None: + _path_params['txId'] = tx_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='/screening/trlink/customers/integration/{customerIntegrationId}/transactions/{txId}/manual_decision', + 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_tr_link_partners( self, diff --git a/fireblocks/api/vaults_api.py b/fireblocks/api/vaults_api.py index 9e26c978..456985d8 100644 --- a/fireblocks/api/vaults_api.py +++ b/fireblocks/api/vaults_api.py @@ -691,7 +691,7 @@ def create_multiple_accounts( ) -> Future[ApiResponse[JobCreated]]: """Bulk creation of new vault accounts - Create multiple vault accounts by running an async job. - The HBAR, TON, SUI, TERRA, ALGO, and DOT blockchains are not supported. - These endpoints are currently in beta and might be subject to changes. - Limited to a maximum of 10,000 accounts per operation. **Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor. + Create multiple vault accounts by running an async job. - The HBAR, TON, SUI, TERRA, ALGO, and DOT blockchains are not supported. - These endpoints are currently in beta and might be subject to changes. - Limited to a maximum of 10,000 accounts per operation. - With `vaultType: KEY_LINK`, creates Key Link vault accounts; set `autoAssign: true` to bind them to the workspace's signing keys (see `vaultType` and `autoAssign`). **Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor. :param create_multiple_accounts_request: (required) :type create_multiple_accounts_request: CreateMultipleAccountsRequest diff --git a/fireblocks/client.py b/fireblocks/client.py index cb7db72c..b634bb40 100644 --- a/fireblocks/client.py +++ b/fireblocks/client.py @@ -33,7 +33,7 @@ from fireblocks.api.contract_interactions_api import ContractInteractionsApi from fireblocks.api.contract_templates_api import ContractTemplatesApi from fireblocks.api.contracts_api import ContractsApi -from fireblocks.api.cosigners_beta_api import CosignersBetaApi +from fireblocks.api.cosigners_api import CosignersApi from fireblocks.api.deployed_contracts_api import DeployedContractsApi from fireblocks.api.earn_api import EarnApi from fireblocks.api.embedded_wallets_api import EmbeddedWalletsApi @@ -43,8 +43,8 @@ from fireblocks.api.gas_stations_api import GasStationsApi from fireblocks.api.genie_beta_api import GenieBetaApi from fireblocks.api.internal_wallets_api import InternalWalletsApi -from fireblocks.api.key_link_beta_api import KeyLinkBetaApi -from fireblocks.api.keys_beta_api import KeysBetaApi +from fireblocks.api.key_link_api import KeyLinkApi +from fireblocks.api.keys_api import KeysApi from fireblocks.api.nfts_api import NFTsApi from fireblocks.api.network_connections_api import NetworkConnectionsApi from fireblocks.api.ota_beta_api import OTABetaApi @@ -102,7 +102,7 @@ def __init__(self, configuration: ClientConfiguration = None): self._contract_interactions = None self._contract_templates = None self._contracts = None - self._cosigners_beta = None + self._cosigners = None self._deployed_contracts = None self._earn = None self._embedded_wallets = None @@ -112,8 +112,8 @@ def __init__(self, configuration: ClientConfiguration = None): self._gas_stations = None self._genie_beta = None self._internal_wallets = None - self._key_link_beta = None - self._keys_beta = None + self._key_link = None + self._keys = None self._nfts = None self._network_connections = None self._ota_beta = None @@ -250,10 +250,10 @@ def contracts(self) -> ContractsApi: return self._contracts @property - def cosigners_beta(self) -> CosignersBetaApi: - if self._cosigners_beta is None: - self._cosigners_beta = CosignersBetaApi(self._api_client) - return self._cosigners_beta + def cosigners(self) -> CosignersApi: + if self._cosigners is None: + self._cosigners = CosignersApi(self._api_client) + return self._cosigners @property def deployed_contracts(self) -> DeployedContractsApi: @@ -310,16 +310,16 @@ def internal_wallets(self) -> InternalWalletsApi: return self._internal_wallets @property - def key_link_beta(self) -> KeyLinkBetaApi: - if self._key_link_beta is None: - self._key_link_beta = KeyLinkBetaApi(self._api_client) - return self._key_link_beta + def key_link(self) -> KeyLinkApi: + if self._key_link is None: + self._key_link = KeyLinkApi(self._api_client) + return self._key_link @property - def keys_beta(self) -> KeysBetaApi: - if self._keys_beta is None: - self._keys_beta = KeysBetaApi(self._api_client) - return self._keys_beta + def keys(self) -> KeysApi: + if self._keys is None: + self._keys = KeysApi(self._api_client) + return self._keys @property def nfts(self) -> NFTsApi: diff --git a/fireblocks/configuration.py b/fireblocks/configuration.py index 09f09c91..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: 35.2.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 index 1d9fb3cb..64165fc2 100644 --- a/fireblocks/lifecycle_warning.py +++ b/fireblocks/lifecycle_warning.py @@ -26,10 +26,12 @@ # without silencing genuine SDK errors. LOGGER_NAME = "fireblocks.lifecycle" +EA_STATE = "ea" +# Deprecated: use EA_STATE. The beta lifecycle state was renamed to ea and no longer warns. BETA_STATE = "beta" DEPRECATED_STATE = "deprecated" CLOSED_STATE = "closed" -WARNING_STATES = frozenset({BETA_STATE, DEPRECATED_STATE, CLOSED_STATE}) +WARNING_STATES = frozenset({EA_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. @@ -38,6 +40,11 @@ REL_DEPRECATION = "deprecation" REL_SUCCESSOR_VERSION = "successor-version" +EA_MESSAGE = ( + "Operation '{operation_id}' is in EA (Early Availability) and is not generally " + "available. It may change or break before it reaches GA." +) +# Deprecated: use EA_MESSAGE. No longer used: the beta state does not warn. BETA_MESSAGE = ( "Operation '{operation_id}' is in 'beta' lifecycle state and is not generally " "available. It may change or be removed without notice." @@ -113,8 +120,8 @@ def build_lifecycle_warning( if state not in WARNING_STATES: return None - if state == BETA_STATE: - return BETA_MESSAGE.format(operation_id=operation_id) + if state == EA_STATE: + return EA_MESSAGE.format(operation_id=operation_id) if state == CLOSED_STATE: if status_code == GONE_STATUS: diff --git a/fireblocks/models/__init__.py b/fireblocks/models/__init__.py index 834c42dc..5963b927 100644 --- a/fireblocks/models/__init__.py +++ b/fireblocks/models/__init__.py @@ -107,8 +107,7 @@ from fireblocks.models.amount_range import AmountRange from fireblocks.models.amount_range_min_max import AmountRangeMinMax from fireblocks.models.amount_range_min_max2 import AmountRangeMinMax2 -from fireblocks.models.api_key import ApiKey -from fireblocks.models.api_keys_paginated_response import ApiKeysPaginatedResponse +from fireblocks.models.api_users_paginated_response import ApiUsersPaginatedResponse from fireblocks.models.approval_api_key import ApprovalApiKey from fireblocks.models.approval_api_public_key import ApprovalApiPublicKey from fireblocks.models.approval_request import ApprovalRequest @@ -309,6 +308,7 @@ from fireblocks.models.convert_assets_request import ConvertAssetsRequest from fireblocks.models.convert_assets_response import ConvertAssetsResponse from fireblocks.models.cosigner import Cosigner +from fireblocks.models.cosigner_api_user import CosignerApiUser from fireblocks.models.cosigners_paginated_response import CosignersPaginatedResponse from fireblocks.models.counterparty_group import CounterpartyGroup from fireblocks.models.counterparty_groups_paginated_response import CounterpartyGroupsPaginatedResponse @@ -727,8 +727,8 @@ from fireblocks.models.paginated_asset_wallet_response_paging import PaginatedAssetWalletResponsePaging from fireblocks.models.paginated_assets_response import PaginatedAssetsResponse from fireblocks.models.paging import Paging -from fireblocks.models.pair_api_key_request import PairApiKeyRequest -from fireblocks.models.pair_api_key_response import PairApiKeyResponse +from fireblocks.models.pair_api_user_request import PairApiUserRequest +from fireblocks.models.pair_api_user_response import PairApiUserResponse from fireblocks.models.parameter import Parameter from fireblocks.models.parameter_with_value import ParameterWithValue from fireblocks.models.participant_onboarding_payload import ParticipantOnboardingPayload @@ -1059,6 +1059,7 @@ from fireblocks.models.tr_link_manual_decision_destination_detail import TRLinkManualDecisionDestinationDetail from fireblocks.models.tr_link_manual_decision_request import TRLinkManualDecisionRequest from fireblocks.models.tr_link_manual_decision_response import TRLinkManualDecisionResponse +from fireblocks.models.tr_link_manual_decision_response_status_enum import TRLinkManualDecisionResponseStatusEnum from fireblocks.models.tr_link_manual_decision_source import TRLinkManualDecisionSource from fireblocks.models.tr_link_missing_trm_action import TRLinkMissingTrmAction from fireblocks.models.tr_link_missing_trm_action2 import TRLinkMissingTrmAction2 diff --git a/fireblocks/models/add_cosigner_request.py b/fireblocks/models/add_cosigner_request.py index 820e793b..a2e1f0f4 100644 --- a/fireblocks/models/add_cosigner_request.py +++ b/fireblocks/models/add_cosigner_request.py @@ -28,10 +28,10 @@ class AddCosignerRequest(BaseModel): """ AddCosignerRequest """ # noqa: E501 - api_key_id: StrictStr = Field(description="The id of the API key to be paired with the cosigner", alias="apiKeyId") + api_user_id: StrictStr = Field(description="The id of the API user to be paired with the cosigner", alias="apiUserId") name: Annotated[str, Field(min_length=1, strict=True)] = Field(description="The name of the cosigner") existing_cosigner: Optional[StrictBool] = Field(default=False, description="Whether the cosigner already exists in another workspace", alias="existingCosigner") - __properties: ClassVar[List[str]] = ["apiKeyId", "name", "existingCosigner"] + __properties: ClassVar[List[str]] = ["apiUserId", "name", "existingCosigner"] model_config = ConfigDict( populate_by_name=True, @@ -84,7 +84,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: return cls.model_validate(obj) _obj = cls.model_validate({ - "apiKeyId": obj.get("apiKeyId"), + "apiUserId": obj.get("apiUserId"), "name": obj.get("name"), "existingCosigner": obj.get("existingCosigner") if obj.get("existingCosigner") is not None else False }) diff --git a/fireblocks/models/add_cosigner_response.py b/fireblocks/models/add_cosigner_response.py index bb4a06c4..29b67b90 100644 --- a/fireblocks/models/add_cosigner_response.py +++ b/fireblocks/models/add_cosigner_response.py @@ -28,11 +28,11 @@ class AddCosignerResponse(BaseModel): """ AddCosignerResponse """ # noqa: E501 - api_key_id: StrictStr = Field(description="The id of the API key to be paired with the cosigner", alias="apiKeyId") + api_user_id: StrictStr = Field(description="The id of the API user to be paired with the cosigner", alias="apiUserId") name: Annotated[str, Field(min_length=1, strict=True)] = Field(description="The name of the cosigner") existing_cosigner: Optional[StrictBool] = Field(default=False, description="Whether the cosigner already exists in another workspace", alias="existingCosigner") pending_cosigner_id: StrictStr = Field(description="The unique identifier of a pending cosigner", alias="pendingCosignerId") - __properties: ClassVar[List[str]] = ["apiKeyId", "name", "existingCosigner", "pendingCosignerId"] + __properties: ClassVar[List[str]] = ["apiUserId", "name", "existingCosigner", "pendingCosignerId"] model_config = ConfigDict( populate_by_name=True, @@ -85,7 +85,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: return cls.model_validate(obj) _obj = cls.model_validate({ - "apiKeyId": obj.get("apiKeyId"), + "apiUserId": obj.get("apiUserId"), "name": obj.get("name"), "existingCosigner": obj.get("existingCosigner") if obj.get("existingCosigner") is not None else False, "pendingCosignerId": obj.get("pendingCosignerId") diff --git a/fireblocks/models/api_keys_paginated_response.py b/fireblocks/models/api_users_paginated_response.py similarity index 86% rename from fireblocks/models/api_keys_paginated_response.py rename to fireblocks/models/api_users_paginated_response.py index 6b4fa82d..436c53c3 100644 --- a/fireblocks/models/api_keys_paginated_response.py +++ b/fireblocks/models/api_users_paginated_response.py @@ -20,15 +20,15 @@ from pydantic import BaseModel, ConfigDict, Field, StrictStr from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.api_key import ApiKey +from fireblocks.models.cosigner_api_user import CosignerApiUser from typing import Optional, Set from typing_extensions import Self -class ApiKeysPaginatedResponse(BaseModel): +class ApiUsersPaginatedResponse(BaseModel): """ - ApiKeysPaginatedResponse + ApiUsersPaginatedResponse """ # noqa: E501 - data: List[ApiKey] = Field(description="The data of the current page") + data: List[CosignerApiUser] = Field(description="The data of the current page") next: Optional[StrictStr] = Field(default=None, description="The ID of the next page") __properties: ClassVar[List[str]] = ["data", "next"] @@ -50,7 +50,7 @@ def to_json(self) -> str: @classmethod def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ApiKeysPaginatedResponse from a JSON string""" + """Create an instance of ApiUsersPaginatedResponse from a JSON string""" return cls.from_dict(json.loads(json_str)) def to_dict(self) -> Dict[str, Any]: @@ -87,7 +87,7 @@ def to_dict(self) -> Dict[str, Any]: @classmethod def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ApiKeysPaginatedResponse from a dict""" + """Create an instance of ApiUsersPaginatedResponse from a dict""" if obj is None: return None @@ -95,7 +95,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: return cls.model_validate(obj) _obj = cls.model_validate({ - "data": [ApiKey.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, + "data": [CosignerApiUser.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/api_key.py b/fireblocks/models/cosigner_api_user.py similarity index 92% rename from fireblocks/models/api_key.py rename to fireblocks/models/cosigner_api_user.py index 9f5fb56b..387207d5 100644 --- a/fireblocks/models/api_key.py +++ b/fireblocks/models/cosigner_api_user.py @@ -25,12 +25,12 @@ from typing import Optional, Set from typing_extensions import Self -class ApiKey(BaseModel): +class CosignerApiUser(BaseModel): """ - ApiKey + CosignerApiUser """ # noqa: E501 - id: StrictStr = Field(description="The unique identifier of the API key") - last_seen: Optional[datetime] = Field(default=None, description="The date the API key was last seen", alias="lastSeen") + id: StrictStr = Field(description="The unique identifier of the API user") + last_seen: Optional[datetime] = Field(default=None, description="The date the API user was last seen", alias="lastSeen") callback_handler: Optional[CallbackHandler] = Field(default=None, alias="callbackHandler") __properties: ClassVar[List[str]] = ["id", "lastSeen", "callbackHandler"] @@ -52,7 +52,7 @@ def to_json(self) -> str: @classmethod def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ApiKey from a JSON string""" + """Create an instance of CosignerApiUser from a JSON string""" return cls.from_dict(json.loads(json_str)) def to_dict(self) -> Dict[str, Any]: @@ -80,7 +80,7 @@ def to_dict(self) -> Dict[str, Any]: @classmethod def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ApiKey from a dict""" + """Create an instance of CosignerApiUser from a dict""" if obj is None: return None diff --git a/fireblocks/models/create_multiple_accounts_request.py b/fireblocks/models/create_multiple_accounts_request.py index 0a365cc6..09c1cee5 100644 --- a/fireblocks/models/create_multiple_accounts_request.py +++ b/fireblocks/models/create_multiple_accounts_request.py @@ -18,7 +18,7 @@ import re # noqa: F401 import json -from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr, field_validator from typing import Any, ClassVar, Dict, List, Optional from typing_extensions import Annotated from typing import Optional, Set @@ -34,7 +34,19 @@ class CreateMultipleAccountsRequest(BaseModel): vault_account_names_starting_index: Optional[StrictInt] = Field(default=None, description="Copy vault accounts names starting from this index. If names array is used it'll fail", alias="vaultAccountNamesStartingIndex") prefix: Optional[StrictStr] = Field(default=None, description="When copying from existing vault accounts (vaultAccountNamesStartingIndex) then adding a prefix to the names. If names array is used it'll fail") tag_ids: Optional[Annotated[List[StrictStr], Field(max_length=20)]] = Field(default=None, description="Optional list of tag IDs to attach to all created vault accounts", alias="tagIds") - __properties: ClassVar[List[str]] = ["count", "baseAssetIds", "names", "vaultAccountNamesStartingIndex", "prefix", "tagIds"] + vault_type: Optional[StrictStr] = Field(default='MPC', description="Type of vault accounts to create. The default type is MPC. KEY_LINK creates Key Link vault accounts. It requires a Key Link workspace. With autoAssign set to true, the vault accounts are bound to the workspace's Key Link signing keys, assigned automatically from the available keys, and only one KEY_LINK bulk creation with autoAssign set to true can run per workspace at a time. With autoAssign set to false (the default), the vault accounts are created without keys. With KEY_LINK, names, vaultAccountNamesStartingIndex, prefix and tagIds work as they do for MPC, and baseAssetIds may be empty to create vault accounts without wallets. ", alias="vaultType") + auto_assign: Optional[StrictBool] = Field(default=False, description="Applicable only when vaultType is KEY_LINK. For MPC, this parameter is ignored. If set to true, keys are assigned to every created vault account. If there are not enough available keys to assign, the request returns an error and no vault accounts are created. If set to false, the vault accounts are created without any keys, and baseAssetIds must be empty because wallets can only be created for vault accounts that have keys. ", alias="autoAssign") + __properties: ClassVar[List[str]] = ["count", "baseAssetIds", "names", "vaultAccountNamesStartingIndex", "prefix", "tagIds", "vaultType", "autoAssign"] + + @field_validator('vault_type') + def vault_type_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['MPC', 'KEY_LINK']): + raise ValueError("must be one of enum values ('MPC', 'KEY_LINK')") + return value model_config = ConfigDict( populate_by_name=True, @@ -92,7 +104,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "names": obj.get("names"), "vaultAccountNamesStartingIndex": obj.get("vaultAccountNamesStartingIndex"), "prefix": obj.get("prefix"), - "tagIds": obj.get("tagIds") + "tagIds": obj.get("tagIds"), + "vaultType": obj.get("vaultType") if obj.get("vaultType") is not None else 'MPC', + "autoAssign": obj.get("autoAssign") if obj.get("autoAssign") is not None else False }) return _obj diff --git a/fireblocks/models/create_tempo_transfer_request.py b/fireblocks/models/create_tempo_transfer_request.py index dae1fade..1c6b8602 100644 --- a/fireblocks/models/create_tempo_transfer_request.py +++ b/fireblocks/models/create_tempo_transfer_request.py @@ -54,8 +54,7 @@ class CreateTempoTransferRequest(BaseModel): fee_payer_account_id: Optional[StrictStr] = Field(default=None, description="Vault account ID of the fee payer sponsoring this transfer.", alias="feePayerAccountId") nonce_strategy: Optional[StrictStr] = Field(default=None, description="Tempo's 2-dimensional nonce strategy: `SEQUENTIAL` runs under a single nonce lane (lane 0); `USER_DEFINED_LANE` runs in parallel under a specified lane (1–16), and requires `nonceLane`; `EXPIRING` marks the transaction with an expiry of up to 5 minutes (Tempo-defined) and does not use `nonceLane`.", alias="nonceStrategy") nonce_lane: Optional[Annotated[int, Field(le=16, strict=True, ge=1)]] = Field(default=None, description="The nonce lane to use, 1–16. Required and only meaningful when nonceStrategy is USER_DEFINED_LANE; not used for SEQUENTIAL or EXPIRING.", alias="nonceLane") - memo: Optional[StrictStr] = Field(default=None, description="Beta. Tempo TIP-20 memo (max 32 bytes).") - __properties: ClassVar[List[str]] = ["note", "externalTxId", "feeCurrency", "assetId", "source", "destination", "amount", "treatAsGrossAmount", "feeLevel", "travelRuleMessage", "travelRuleMessageId", "useGasless", "configurations", "maxFeePerGas", "maxPriorityFeePerGas", "destinations", "failOnLowFee", "gasLimit", "replaceTxByHash", "feePayerAccountId", "nonceStrategy", "nonceLane", "memo"] + __properties: ClassVar[List[str]] = ["note", "externalTxId", "feeCurrency", "assetId", "source", "destination", "amount", "treatAsGrossAmount", "feeLevel", "travelRuleMessage", "travelRuleMessageId", "useGasless", "configurations", "maxFeePerGas", "maxPriorityFeePerGas", "destinations", "failOnLowFee", "gasLimit", "replaceTxByHash", "feePayerAccountId", "nonceStrategy", "nonceLane"] @field_validator('fee_level') def fee_level_validate_enum(cls, value): @@ -165,8 +164,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "replaceTxByHash": obj.get("replaceTxByHash"), "feePayerAccountId": obj.get("feePayerAccountId"), "nonceStrategy": obj.get("nonceStrategy"), - "nonceLane": obj.get("nonceLane"), - "memo": obj.get("memo") + "nonceLane": obj.get("nonceLane") }) return _obj diff --git a/fireblocks/models/pair_api_key_request.py b/fireblocks/models/pair_api_user_request.py similarity index 93% rename from fireblocks/models/pair_api_key_request.py rename to fireblocks/models/pair_api_user_request.py index c0262a63..1ed31e06 100644 --- a/fireblocks/models/pair_api_key_request.py +++ b/fireblocks/models/pair_api_user_request.py @@ -24,9 +24,9 @@ from typing import Optional, Set from typing_extensions import Self -class PairApiKeyRequest(BaseModel): +class PairApiUserRequest(BaseModel): """ - PairApiKeyRequest + PairApiUserRequest """ # noqa: E501 callback_handler: Optional[CallbackHandlerRequest] = Field(default=None, alias="callbackHandler") __properties: ClassVar[List[str]] = ["callbackHandler"] @@ -49,7 +49,7 @@ def to_json(self) -> str: @classmethod def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PairApiKeyRequest from a JSON string""" + """Create an instance of PairApiUserRequest from a JSON string""" return cls.from_dict(json.loads(json_str)) def to_dict(self) -> Dict[str, Any]: @@ -77,7 +77,7 @@ def to_dict(self) -> Dict[str, Any]: @classmethod def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PairApiKeyRequest from a dict""" + """Create an instance of PairApiUserRequest from a dict""" if obj is None: return None diff --git a/fireblocks/models/pair_api_key_response.py b/fireblocks/models/pair_api_user_response.py similarity index 93% rename from fireblocks/models/pair_api_key_response.py rename to fireblocks/models/pair_api_user_response.py index 4fcd4ff4..8ddf2724 100644 --- a/fireblocks/models/pair_api_key_response.py +++ b/fireblocks/models/pair_api_user_response.py @@ -24,11 +24,11 @@ from typing import Optional, Set from typing_extensions import Self -class PairApiKeyResponse(BaseModel): +class PairApiUserResponse(BaseModel): """ - PairApiKeyResponse + PairApiUserResponse """ # noqa: E501 - id: StrictStr = Field(description="The unique identifier of the API key") + id: StrictStr = Field(description="The unique identifier of the API user") callback_handler: Optional[CallbackHandlerRequest] = Field(default=None, alias="callbackHandler") __properties: ClassVar[List[str]] = ["id", "callbackHandler"] @@ -50,7 +50,7 @@ def to_json(self) -> str: @classmethod def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PairApiKeyResponse from a JSON string""" + """Create an instance of PairApiUserResponse from a JSON string""" return cls.from_dict(json.loads(json_str)) def to_dict(self) -> Dict[str, Any]: @@ -78,7 +78,7 @@ def to_dict(self) -> Dict[str, Any]: @classmethod def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PairApiKeyResponse from a dict""" + """Create an instance of PairApiUserResponse from a dict""" if obj is None: return None diff --git a/fireblocks/models/tempo_transfer_destination.py b/fireblocks/models/tempo_transfer_destination.py index 7642ecee..280bb09d 100644 --- a/fireblocks/models/tempo_transfer_destination.py +++ b/fireblocks/models/tempo_transfer_destination.py @@ -31,7 +31,8 @@ class TempoTransferDestination(BaseModel): type: StrictStr = Field(description="The kind of destination.") id: Optional[StrictStr] = Field(default=None, description="Required when type is VAULT_ACCOUNT or UNMANAGED_WALLET.") one_time_address: Optional[OneTimeAddress] = Field(default=None, alias="oneTimeAddress") - __properties: ClassVar[List[str]] = ["type", "id", "oneTimeAddress"] + memo: Optional[StrictStr] = Field(default=None, description="Tempo TIP-20 memo, sent on-chain with the transfer to this destination. Exactly 32 bytes once UTF-8 encoded. NOTES: - The memo is public and permanent on-chain, so do not put sensitive data in it. - A memo is currently supported only for a transfer with a single destination") + __properties: ClassVar[List[str]] = ["type", "id", "oneTimeAddress", "memo"] @field_validator('type') def type_validate_enum(cls, value): @@ -96,7 +97,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: _obj = cls.model_validate({ "type": obj.get("type"), "id": obj.get("id"), - "oneTimeAddress": OneTimeAddress.from_dict(obj["oneTimeAddress"]) if obj.get("oneTimeAddress") is not None else None + "oneTimeAddress": OneTimeAddress.from_dict(obj["oneTimeAddress"]) if obj.get("oneTimeAddress") is not None else None, + "memo": obj.get("memo") }) return _obj diff --git a/fireblocks/models/tr_link_manual_decision_action.py b/fireblocks/models/tr_link_manual_decision_action.py index efe82d06..b4f56b91 100644 --- a/fireblocks/models/tr_link_manual_decision_action.py +++ b/fireblocks/models/tr_link_manual_decision_action.py @@ -21,7 +21,7 @@ class TRLinkManualDecisionAction(str, Enum): """ - Decision action for destinations in NoTRM status + Decision action for destinations waiting for a Travel Rule message (missing TRM) """ """ diff --git a/fireblocks/models/tr_link_manual_decision_destination_detail.py b/fireblocks/models/tr_link_manual_decision_destination_detail.py index 1b1b4b6d..fe0c9065 100644 --- a/fireblocks/models/tr_link_manual_decision_destination_detail.py +++ b/fireblocks/models/tr_link_manual_decision_destination_detail.py @@ -29,7 +29,7 @@ class TRLinkManualDecisionDestinationDetail(BaseModel): """ # noqa: E501 destination_screening_id: StrictStr = Field(description="Destination screening record ID", alias="destinationScreeningId") applied: StrictBool = Field(description="Whether the decision was applied to this destination") - skip_reason: Optional[StrictStr] = Field(default=None, description="Reason if the destination was skipped", alias="skipReason") + skip_reason: Optional[StrictStr] = Field(default=None, description="Reason when applied is false. Common values: deferred apply (destination could not be updated immediately), already applied, status changed, trmId exists, destination not found.", alias="skipReason") __properties: ClassVar[List[str]] = ["destinationScreeningId", "applied", "skipReason"] model_config = ConfigDict( diff --git a/fireblocks/models/tr_link_manual_decision_request.py b/fireblocks/models/tr_link_manual_decision_request.py index 5e1c3a1d..d924d117 100644 --- a/fireblocks/models/tr_link_manual_decision_request.py +++ b/fireblocks/models/tr_link_manual_decision_request.py @@ -27,7 +27,7 @@ class TRLinkManualDecisionRequest(BaseModel): """ - Request to manually accept or reject destinations stuck in NoTRM status + Request to manually accept or reject destinations waiting for a Travel Rule message (missing TRM) """ # noqa: E501 action: TRLinkManualDecisionAction reason: Optional[Annotated[str, Field(strict=True, max_length=500)]] = Field(default=None, description="Optional reason for the manual decision (e.g. 'Internal KYC approved'). Do not include PII.") diff --git a/fireblocks/models/tr_link_manual_decision_response.py b/fireblocks/models/tr_link_manual_decision_response.py index c8e85520..bed20c64 100644 --- a/fireblocks/models/tr_link_manual_decision_response.py +++ b/fireblocks/models/tr_link_manual_decision_response.py @@ -23,21 +23,23 @@ from typing_extensions import Annotated from fireblocks.models.tr_link_manual_decision_action import TRLinkManualDecisionAction from fireblocks.models.tr_link_manual_decision_destination_detail import TRLinkManualDecisionDestinationDetail +from fireblocks.models.tr_link_manual_decision_response_status_enum import TRLinkManualDecisionResponseStatusEnum from fireblocks.models.tr_link_manual_decision_source import TRLinkManualDecisionSource from typing import Optional, Set from typing_extensions import Self class TRLinkManualDecisionResponse(BaseModel): """ - Response containing the result of the manual decision + Response containing the result of a manual missing-TRM decision (POST write or GET read). """ # noqa: E501 + status: TRLinkManualDecisionResponseStatusEnum action: TRLinkManualDecisionAction source: TRLinkManualDecisionSource tx_id: StrictStr = Field(description="Transaction ID", alias="txId") destinations_affected: StrictInt = Field(description="Number of destinations where the decision was applied", alias="destinationsAffected") destinations_skipped: StrictInt = Field(description="Number of destinations that were skipped", alias="destinationsSkipped") details: Annotated[List[TRLinkManualDecisionDestinationDetail], Field(min_length=0, max_length=100)] = Field(description="Per-destination details") - __properties: ClassVar[List[str]] = ["action", "source", "txId", "destinationsAffected", "destinationsSkipped", "details"] + __properties: ClassVar[List[str]] = ["status", "action", "source", "txId", "destinationsAffected", "destinationsSkipped", "details"] model_config = ConfigDict( populate_by_name=True, @@ -97,6 +99,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: return cls.model_validate(obj) _obj = cls.model_validate({ + "status": obj.get("status"), "action": obj.get("action"), "source": obj.get("source"), "txId": obj.get("txId"), diff --git a/fireblocks/models/tr_link_manual_decision_response_status_enum.py b/fireblocks/models/tr_link_manual_decision_response_status_enum.py new file mode 100644 index 00000000..501bba95 --- /dev/null +++ b/fireblocks/models/tr_link_manual_decision_response_status_enum.py @@ -0,0 +1,39 @@ +# coding: utf-8 + +""" + Fireblocks API + + Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + + The version of the OpenAPI document: 1.6.2 + Contact: developers@fireblocks.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import json +from enum import Enum +from typing_extensions import Self + + +class TRLinkManualDecisionResponseStatusEnum(str, Enum): + """ + APPLIED - Decision applied to at least one destination immediately. ACCEPTED - Intent stored for deferred apply on the next processing attempt. PRE_ACCEPTED - Intent stored on the transaction before destinations entered the missing-TRM wait. + """ + + """ + allowed enum values + """ + APPLIED = 'APPLIED' + ACCEPTED = 'ACCEPTED' + PRE_ACCEPTED = 'PRE_ACCEPTED' + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Create an instance of TRLinkManualDecisionResponseStatusEnum from a JSON string""" + return cls(json.loads(json_str)) + + diff --git a/fireblocks/models/tr_link_manual_decision_source.py b/fireblocks/models/tr_link_manual_decision_source.py index a7926001..36e436d4 100644 --- a/fireblocks/models/tr_link_manual_decision_source.py +++ b/fireblocks/models/tr_link_manual_decision_source.py @@ -21,14 +21,14 @@ class TRLinkManualDecisionSource(str, Enum): """ - Source of the manual decision + Source of the manual decision. Values are lowercase. """ """ allowed enum values """ - MANUAL = 'MANUAL' - POLICY = 'POLICY' + MANUAL = 'manual' + POLICY = 'policy' @classmethod def from_json(cls, json_str: str) -> Self: diff --git a/fireblocks/models/typed_message_transaction_status_enum.py b/fireblocks/models/typed_message_transaction_status_enum.py index 62162089..f5bd51bf 100644 --- a/fireblocks/models/typed_message_transaction_status_enum.py +++ b/fireblocks/models/typed_message_transaction_status_enum.py @@ -33,9 +33,11 @@ class TypedMessageTransactionStatusEnum(str, Enum): PENDING_AUTHORIZATION = 'PENDING_AUTHORIZATION' PENDING_3_RD_PARTY_MANUAL_APPROVAL = 'PENDING_3RD_PARTY_MANUAL_APPROVAL' PENDING_3_RD_PARTY = 'PENDING_3RD_PARTY' + SIGNED = 'SIGNED' BROADCASTING = 'BROADCASTING' PENDING_AML_SCREENING = 'PENDING_AML_SCREENING' CONFIRMING = 'CONFIRMING' + COMPLETED = 'COMPLETED' PARTIALLY_COMPLETED = 'PARTIALLY_COMPLETED' PENDING_EMAIL_APPROVAL = 'PENDING_EMAIL_APPROVAL' CANCELLED = 'CANCELLED' diff --git a/fireblocks/models/validation_key_dto.py b/fireblocks/models/validation_key_dto.py index fc1f1cf1..87eff862 100644 --- a/fireblocks/models/validation_key_dto.py +++ b/fireblocks/models/validation_key_dto.py @@ -33,7 +33,9 @@ class ValidationKeyDto(BaseModel): days_till_expired: Union[Annotated[float, Field(strict=True, ge=1)], Annotated[int, Field(strict=True, ge=1)]] = Field(alias="daysTillExpired") enabled: StrictBool = Field(description="True if the validation key is enabled.") created_at: Union[StrictFloat, StrictInt] = Field(description="Creation date (timestamp) in milliseconds.", alias="createdAt") - __properties: ClassVar[List[str]] = ["keyId", "publicKeyPem", "daysTillExpired", "enabled", "createdAt"] + expiration_time: Union[StrictFloat, StrictInt] = Field(description="Expiration date (Unix timestamp) in milliseconds.", alias="expirationTime") + revoked: StrictBool = Field(description="True if the validation key is revoked.") + __properties: ClassVar[List[str]] = ["keyId", "publicKeyPem", "daysTillExpired", "enabled", "createdAt", "expirationTime", "revoked"] model_config = ConfigDict( populate_by_name=True, @@ -90,7 +92,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "publicKeyPem": obj.get("publicKeyPem"), "daysTillExpired": obj.get("daysTillExpired"), "enabled": obj.get("enabled"), - "createdAt": obj.get("createdAt") + "createdAt": obj.get("createdAt"), + "expirationTime": obj.get("expirationTime"), + "revoked": obj.get("revoked") if obj.get("revoked") is not None else False }) return _obj diff --git a/pyproject.toml b/pyproject.toml index 8981d0ec..08a27f53 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "fireblocks" -version = "35.2.0" +version = "0.0.0" description = "Fireblocks API" authors = ["Fireblocks "] license = "MIT License" diff --git a/setup.py b/setup.py index 66c79983..8e55f57b 100644 --- a/setup.py +++ b/setup.py @@ -23,7 +23,7 @@ # prerequisite: setuptools # http://pypi.python.org/pypi/setuptools NAME = "fireblocks" -VERSION = "35.2.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 98105be8..6efd2f58 100644 --- a/test/fireblocks/test_client.py +++ b/test/fireblocks/test_client.py @@ -31,7 +31,7 @@ from fireblocks.api.contract_interactions_api import ContractInteractionsApi from fireblocks.api.contract_templates_api import ContractTemplatesApi from fireblocks.api.contracts_api import ContractsApi -from fireblocks.api.cosigners_beta_api import CosignersBetaApi +from fireblocks.api.cosigners_api import CosignersApi from fireblocks.api.deployed_contracts_api import DeployedContractsApi from fireblocks.api.earn_api import EarnApi from fireblocks.api.embedded_wallets_api import EmbeddedWalletsApi @@ -41,8 +41,8 @@ from fireblocks.api.gas_stations_api import GasStationsApi from fireblocks.api.genie_beta_api import GenieBetaApi from fireblocks.api.internal_wallets_api import InternalWalletsApi -from fireblocks.api.key_link_beta_api import KeyLinkBetaApi -from fireblocks.api.keys_beta_api import KeysBetaApi +from fireblocks.api.key_link_api import KeyLinkApi +from fireblocks.api.keys_api import KeysApi from fireblocks.api.nfts_api import NFTsApi from fireblocks.api.network_connections_api import NetworkConnectionsApi from fireblocks.api.ota_beta_api import OTABetaApi @@ -133,8 +133,8 @@ def test_get_contract_templates(fireblocks_instance): def test_get_contracts(fireblocks_instance): assert isinstance(fireblocks_instance.contracts, ContractsApi) -def test_get_cosigners_beta(fireblocks_instance): - assert isinstance(fireblocks_instance.cosigners_beta, CosignersBetaApi) +def test_get_cosigners(fireblocks_instance): + assert isinstance(fireblocks_instance.cosigners, CosignersApi) def test_get_deployed_contracts(fireblocks_instance): assert isinstance(fireblocks_instance.deployed_contracts, DeployedContractsApi) @@ -163,11 +163,11 @@ def test_get_genie_beta(fireblocks_instance): def test_get_internal_wallets(fireblocks_instance): assert isinstance(fireblocks_instance.internal_wallets, InternalWalletsApi) -def test_get_key_link_beta(fireblocks_instance): - assert isinstance(fireblocks_instance.key_link_beta, KeyLinkBetaApi) +def test_get_key_link(fireblocks_instance): + assert isinstance(fireblocks_instance.key_link, KeyLinkApi) -def test_get_keys_beta(fireblocks_instance): - assert isinstance(fireblocks_instance.keys_beta, KeysBetaApi) +def test_get_keys(fireblocks_instance): + assert isinstance(fireblocks_instance.keys, KeysApi) def test_get_nfts(fireblocks_instance): assert isinstance(fireblocks_instance.nfts, NFTsApi) diff --git a/test/fireblocks/test_lifecycle_warning.py b/test/fireblocks/test_lifecycle_warning.py index 084bf735..9a4345b9 100644 --- a/test/fireblocks/test_lifecycle_warning.py +++ b/test/fireblocks/test_lifecycle_warning.py @@ -16,11 +16,15 @@ import pytest from fireblocks.lifecycle_warning import ( + BETA_MESSAGE, + BETA_STATE, + EA_STATE, LIFECYCLE_STATE_HEADER, LINK_HEADER, LOGGER_NAME, SUNSET_HEADER, SUPPRESS_ENV_VAR, + WARNING_STATES, build_lifecycle_warning, is_suppressed, warn_on_lifecycle_state, @@ -60,27 +64,27 @@ def logs(caplog): # --- emission --------------------------------------------------------------- def test_non_ga_state_emits_one_warning(logs): - warn_on_lifecycle_state(_headers(state="beta"), "createTransaction") + warn_on_lifecycle_state(_headers(state="ea"), "createTransaction") assert len(logs.records) == 1 assert "createTransaction" in logs.records[0].getMessage() - assert "beta" in logs.records[0].getMessage() + assert "EA (Early Availability)" 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") + warn_on_lifecycle_state(_headers(state="ea"), "createTransaction") + warn_on_lifecycle_state(_headers(state="ea"), "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="ea"), "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") + warn_on_lifecycle_state(_headers(state="ea"), "createTransaction") assert logs.records[0].levelno == logging.WARNING assert logs.records[0].name == LOGGER_NAME @@ -93,7 +97,8 @@ def test_warning_is_emitted_at_warning_level(logs): "ga", "internal", "unlisted", - "private_beta", # the old name for beta: no longer recognised + "beta", # retired names for ea: no longer recognised + "private_beta", "quantum_preview", "", " ", @@ -117,7 +122,7 @@ def test_unknown_state_does_not_raise(logs): def test_missing_operation_id_is_silent(logs): - warn_on_lifecycle_state(_headers(state="beta"), None) + warn_on_lifecycle_state(_headers(state="ea"), None) assert logs.records == [] @@ -136,14 +141,15 @@ def test_uppercase_state_value_still_warns(): ["Fireblocks-Lifecycle-State", "fireblocks-lifecycle-state", "FIREBLOCKS-LIFECYCLE-STATE"], ) def test_header_name_lookup_is_case_insensitive(header_name): - message = build_lifecycle_warning({header_name: "beta"}, "op") + message = build_lifecycle_warning({header_name: "ea"}, "op") assert message is not None -def test_state_value_is_rendered_verbatim_as_snake_case(): - message = build_lifecycle_warning(_headers(state="beta"), "op") - assert "'beta'" in message - assert "Private Beta" not in message +def test_state_is_named_as_ea(): + message = build_lifecycle_warning(_headers(state="ea"), "op") + assert "EA (Early Availability)" in message + assert "'ea'" not in message + assert "beta" not in message.lower() # --- deprecated message shapes ---------------------------------------------- @@ -275,7 +281,7 @@ def test_muting_lifecycle_namespace_leaves_other_sdk_logging_intact(caplog): lifecycle_logger.setLevel(logging.ERROR) try: with caplog.at_level(logging.WARNING, logger="fireblocks"): - warn_on_lifecycle_state(_headers(state="beta"), "createTransaction") + warn_on_lifecycle_state(_headers(state="ea"), "createTransaction") logging.getLogger("fireblocks.connection_pool").warning("unrelated sdk warning") messages = [record.getMessage() for record in caplog.records] assert "unrelated sdk warning" in messages @@ -324,28 +330,28 @@ def test_is_not_suppressed_for_unset_empty_zero_or_false(value): @pytest.mark.parametrize("value", ["1", "true", "yes"]) def test_env_var_suppresses_warning(logs, monkeypatch, value): monkeypatch.setenv(SUPPRESS_ENV_VAR, value) - warn_on_lifecycle_state(_headers(state="beta"), "createTransaction") + warn_on_lifecycle_state(_headers(state="ea"), "createTransaction") assert logs.records == [] @pytest.mark.parametrize("value", ["0", "false", ""]) def test_zero_false_and_empty_do_not_suppress(logs, monkeypatch, value): monkeypatch.setenv(SUPPRESS_ENV_VAR, value) - warn_on_lifecycle_state(_headers(state="beta"), "createTransaction") + warn_on_lifecycle_state(_headers(state="ea"), "createTransaction") assert len(logs.records) == 1 def test_unset_env_var_does_not_suppress(logs, monkeypatch): monkeypatch.delenv(SUPPRESS_ENV_VAR, raising=False) - warn_on_lifecycle_state(_headers(state="beta"), "createTransaction") + warn_on_lifecycle_state(_headers(state="ea"), "createTransaction") assert len(logs.records) == 1 -# --- beta wording, closed handling and HTTP status -------------------- +# --- EA wording, closed handling and HTTP status -------------------- -BETA_TEXT = ( - "Operation 'op' is in 'beta' lifecycle state and is not generally available. " - "It may change or be removed without notice." +EA_TEXT = ( + "Operation 'op' is in EA (Early Availability) and is not generally available. " + "It may change or break before it reaches GA." ) CLOSED_TEXT = ( "Operation 'op' has been closed and is no longer supported. Your access is provided " @@ -354,13 +360,13 @@ def test_unset_env_var_does_not_suppress(logs, monkeypatch): ) -def test_beta_message_text(): - assert build_lifecycle_warning(_headers(state="beta"), "op") == BETA_TEXT +def test_ea_message_text(): + assert build_lifecycle_warning(_headers(state="ea"), "op") == EA_TEXT @pytest.mark.parametrize("status", [None, 200, 400, 403, 500]) -def test_beta_warns_regardless_of_status(status): - assert build_lifecycle_warning(_headers(state="beta"), "op", status) == BETA_TEXT +def test_ea_warns_regardless_of_status(status): + assert build_lifecycle_warning(_headers(state="ea"), "op", status) == EA_TEXT def test_closed_with_410_is_silent(): @@ -392,3 +398,10 @@ def test_closed_410_emits_no_log_record(logs): def test_closed_200_emits_the_exception_message(logs): warn_on_lifecycle_state(_headers(state="closed"), "op", 200) assert [r.getMessage() for r in logs.records] == [CLOSED_TEXT] + + +def test_deprecated_beta_aliases_are_exported_but_never_warn(): + assert BETA_STATE == "beta" + assert BETA_STATE not in WARNING_STATES + assert EA_STATE in WARNING_STATES + assert BETA_MESSAGE diff --git a/test/test_add_connected_account_request.py b/test/test_add_connected_account_request.py index 78f5165e..2b71f745 100644 --- a/test/test_add_connected_account_request.py +++ b/test/test_add_connected_account_request.py @@ -38,7 +38,7 @@ def make_instance(self, include_optional) -> AddConnectedAccountRequest: return AddConnectedAccountRequest( provider_id = 'BINANCE', display_name = 'My Binance Account', - creds = '[B@430b8f4b', + creds = '[B@3006c89c', api_key = 'api_key_abc123', main_account_id = 'acc-parent-001', account_id = 'provider-acc-001', @@ -47,7 +47,7 @@ def make_instance(self, include_optional) -> AddConnectedAccountRequest: else: return AddConnectedAccountRequest( provider_id = 'BINANCE', - creds = '[B@430b8f4b', + creds = '[B@3006c89c', api_key = 'api_key_abc123', ) """ diff --git a/test/test_add_cosigner_request.py b/test/test_add_cosigner_request.py index 4b18cdb8..940bbf7e 100644 --- a/test/test_add_cosigner_request.py +++ b/test/test_add_cosigner_request.py @@ -36,13 +36,13 @@ def make_instance(self, include_optional) -> AddCosignerRequest: model = AddCosignerRequest() if include_optional: return AddCosignerRequest( - api_key_id = '123e4567-e89b-12d3-a456-426614174000', + api_user_id = '123e4567-e89b-12d3-a456-426614174000', name = 'My Cosigner 1', existing_cosigner = False ) else: return AddCosignerRequest( - api_key_id = '123e4567-e89b-12d3-a456-426614174000', + api_user_id = '123e4567-e89b-12d3-a456-426614174000', name = 'My Cosigner 1', ) """ diff --git a/test/test_add_cosigner_response.py b/test/test_add_cosigner_response.py index d1fc880c..faacf9e1 100644 --- a/test/test_add_cosigner_response.py +++ b/test/test_add_cosigner_response.py @@ -36,14 +36,14 @@ def make_instance(self, include_optional) -> AddCosignerResponse: model = AddCosignerResponse() if include_optional: return AddCosignerResponse( - api_key_id = '123e4567-e89b-12d3-a456-426614174000', + api_user_id = '123e4567-e89b-12d3-a456-426614174000', name = 'My Cosigner 1', existing_cosigner = False, pending_cosigner_id = '44fcead0-7053-4831-a53a-df7fb90d440f' ) else: return AddCosignerResponse( - api_key_id = '123e4567-e89b-12d3-a456-426614174000', + api_user_id = '123e4567-e89b-12d3-a456-426614174000', name = 'My Cosigner 1', pending_cosigner_id = '44fcead0-7053-4831-a53a-df7fb90d440f', ) diff --git a/test/test_address_registry_create_proof_of_ownership_response.py b/test/test_address_registry_create_proof_of_ownership_response.py index 343fc235..ea8decec 100644 --- a/test/test_address_registry_create_proof_of_ownership_response.py +++ b/test/test_address_registry_create_proof_of_ownership_response.py @@ -40,14 +40,14 @@ def make_instance( model = AddressRegistryCreateProofOfOwnershipResponse() if include_optional: return AddressRegistryCreateProofOfOwnershipResponse( - pdf = '[B@2da901c1', + pdf = '[B@6163c562', export_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', verification_hash = 'BHS2QaqGyYegvLBy5qrGhrES3A2n5JPD7ubpgJozRgeA', expires_at = '2027-08-17' ) else: return AddressRegistryCreateProofOfOwnershipResponse( - pdf = '[B@2da901c1', + pdf = '[B@6163c562', export_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', verification_hash = 'BHS2QaqGyYegvLBy5qrGhrES3A2n5JPD7ubpgJozRgeA', expires_at = '2027-08-17', diff --git a/test/test_api_keys_paginated_response.py b/test/test_api_keys_paginated_response.py deleted file mode 100644 index 533cf1f5..00000000 --- a/test/test_api_keys_paginated_response.py +++ /dev/null @@ -1,75 +0,0 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - -import unittest - -from fireblocks.models.api_keys_paginated_response import ApiKeysPaginatedResponse - - -class TestApiKeysPaginatedResponse(unittest.TestCase): - """ApiKeysPaginatedResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ApiKeysPaginatedResponse: - """Test ApiKeysPaginatedResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ApiKeysPaginatedResponse` - """ - model = ApiKeysPaginatedResponse() - if include_optional: - return ApiKeysPaginatedResponse( - data = [ - fireblocks.models.api_key.ApiKey( - id = '44fcead0-7053-4831-a53a-df7fb90d440f', - last_seen = '2021-07-01T00:00Z', - callback_handler = fireblocks.models.callback_handler.CallbackHandler( - url = 'https://example.com/callback-handler', - public_key = '-----BEGIN PUBLIC KEY----- -... truncated ... ------END PUBLIC KEY-----', - cert_public_key_hash = '', ), ) - ], - next = 'eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9' - ) - else: - return ApiKeysPaginatedResponse( - data = [ - fireblocks.models.api_key.ApiKey( - id = '44fcead0-7053-4831-a53a-df7fb90d440f', - last_seen = '2021-07-01T00:00Z', - callback_handler = fireblocks.models.callback_handler.CallbackHandler( - url = 'https://example.com/callback-handler', - public_key = '-----BEGIN PUBLIC KEY----- -... truncated ... ------END PUBLIC KEY-----', - cert_public_key_hash = '', ), ) - ], - ) - """ - - def testApiKeysPaginatedResponse(self): - """Test ApiKeysPaginatedResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() diff --git a/test/test_api_users_paginated_response.py b/test/test_api_users_paginated_response.py new file mode 100644 index 00000000..438a14c0 --- /dev/null +++ b/test/test_api_users_paginated_response.py @@ -0,0 +1,55 @@ +# coding: utf-8 + +""" +Fireblocks API + +Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + +The version of the OpenAPI document: 1.6.2 +Contact: developers@fireblocks.com +Generated by OpenAPI Generator (https://openapi-generator.tech) + +Do not edit the class manually. +""" # noqa: E501 + +import unittest + +from fireblocks.models.api_users_paginated_response import ApiUsersPaginatedResponse + + +class TestApiUsersPaginatedResponse(unittest.TestCase): + """ApiUsersPaginatedResponse unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> ApiUsersPaginatedResponse: + """Test ApiUsersPaginatedResponse + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included""" + # uncomment below to create an instance of `ApiUsersPaginatedResponse` + """ + model = ApiUsersPaginatedResponse() + if include_optional: + return ApiUsersPaginatedResponse( + data = [{"id":"44fcead0-7053-4831-a53a-df7fb90d440f","lastSeen":"2021-07-01T00:00:00.000Z"}], + next = 'eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9' + ) + else: + return ApiUsersPaginatedResponse( + data = [{"id":"44fcead0-7053-4831-a53a-df7fb90d440f","lastSeen":"2021-07-01T00:00:00.000Z"}], + ) + """ + + def testApiUsersPaginatedResponse(self): + """Test ApiUsersPaginatedResponse""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + + +if __name__ == "__main__": + unittest.main() diff --git a/test/test_audit_log_entry.py b/test/test_audit_log_entry.py index 2c9a3145..d38f10ec 100644 --- a/test/test_audit_log_entry.py +++ b/test/test_audit_log_entry.py @@ -38,13 +38,13 @@ def make_instance(self, include_optional) -> AuditLogEntry: return AuditLogEntry( timestamp = '1700000000', event_type = 'STATUS_TRANSITION', - data = '[B@423321e7' + data = '[B@44beb6a9' ) else: return AuditLogEntry( timestamp = '1700000000', event_type = 'STATUS_TRANSITION', - data = '[B@423321e7', + data = '[B@44beb6a9', ) """ diff --git a/test/test_api_key.py b/test/test_cosigner_api_user.py similarity index 76% rename from test/test_api_key.py rename to test/test_cosigner_api_user.py index b8a05b6c..755a4974 100644 --- a/test/test_api_key.py +++ b/test/test_cosigner_api_user.py @@ -14,11 +14,11 @@ import unittest -from fireblocks.models.api_key import ApiKey +from fireblocks.models.cosigner_api_user import CosignerApiUser -class TestApiKey(unittest.TestCase): - """ApiKey unit test stubs""" +class TestCosignerApiUser(unittest.TestCase): + """CosignerApiUser unit test stubs""" def setUp(self): pass @@ -26,16 +26,16 @@ def setUp(self): def tearDown(self): pass - def make_instance(self, include_optional) -> ApiKey: - """Test ApiKey + def make_instance(self, include_optional) -> CosignerApiUser: + """Test CosignerApiUser include_optional is a boolean, when False only required params are included, when True both required and optional params are included""" - # uncomment below to create an instance of `ApiKey` + # uncomment below to create an instance of `CosignerApiUser` """ - model = ApiKey() + model = CosignerApiUser() if include_optional: - return ApiKey( + return CosignerApiUser( id = '44fcead0-7053-4831-a53a-df7fb90d440f', last_seen = '2021-07-01T00:00Z', callback_handler = fireblocks.models.callback_handler.CallbackHandler( @@ -46,13 +46,13 @@ def make_instance(self, include_optional) -> ApiKey: cert_public_key_hash = '', ) ) else: - return ApiKey( + return CosignerApiUser( id = '44fcead0-7053-4831-a53a-df7fb90d440f', ) """ - def testApiKey(self): - """Test ApiKey""" + def testCosignerApiUser(self): + """Test CosignerApiUser""" # inst_req_only = self.make_instance(include_optional=False) # inst_req_and_optional = self.make_instance(include_optional=True) diff --git a/test/test_cosigners_beta_api.py b/test/test_cosigners_api.py similarity index 58% rename from test/test_cosigners_beta_api.py rename to test/test_cosigners_api.py index 94f97512..d474d643 100644 --- a/test/test_cosigners_beta_api.py +++ b/test/test_cosigners_api.py @@ -14,14 +14,14 @@ import unittest -from fireblocks.api.cosigners_beta_api import CosignersBetaApi +from fireblocks.api.cosigners_api import CosignersApi -class TestCosignersBetaApi(unittest.TestCase): - """CosignersBetaApi unit test stubs""" +class TestCosignersApi(unittest.TestCase): + """CosignersApi unit test stubs""" def setUp(self) -> None: - self.api = CosignersBetaApi() + self.api = CosignersApi() def tearDown(self) -> None: pass @@ -33,45 +33,45 @@ def test_add_cosigner(self) -> None: """ pass - def test_get_api_key(self) -> None: - """Test case for get_api_key + def test_get_cosigner(self) -> None: + """Test case for get_cosigner - Get API key + Get cosigner """ pass - def test_get_api_keys(self) -> None: - """Test case for get_api_keys + def test_get_cosigner_api_user(self) -> None: + """Test case for get_cosigner_api_user - Get all API keys + Get API user """ pass - def test_get_cosigner(self) -> None: - """Test case for get_cosigner + def test_get_cosigner_api_user_request_status(self) -> None: + """Test case for get_cosigner_api_user_request_status - Get cosigner + Get API user request status """ pass - def test_get_cosigners(self) -> None: - """Test case for get_cosigners + def test_get_cosigner_api_users(self) -> None: + """Test case for get_cosigner_api_users - Get all cosigners + Get all API users """ pass - def test_get_request_status(self) -> None: - """Test case for get_request_status + def test_get_cosigners(self) -> None: + """Test case for get_cosigners - Get request status + Get all cosigners """ pass - def test_pair_api_key(self) -> None: - """Test case for pair_api_key + def test_pair_cosigner_api_user(self) -> None: + """Test case for pair_cosigner_api_user - Pair API key + Pair API user """ pass @@ -82,17 +82,17 @@ def test_rename_cosigner(self) -> None: """ pass - def test_unpair_api_key(self) -> None: - """Test case for unpair_api_key + def test_unpair_cosigner_api_user(self) -> None: + """Test case for unpair_cosigner_api_user - Unpair API key + Unpair API user """ pass - def test_update_callback_handler(self) -> None: - """Test case for update_callback_handler + def test_update_cosigner_api_user_callback_handler(self) -> None: + """Test case for update_cosigner_api_user_callback_handler - Update API key callback handler + Update API user callback handler """ pass diff --git a/test/test_create_multiple_accounts_request.py b/test/test_create_multiple_accounts_request.py index f9e10386..ce45214d 100644 --- a/test/test_create_multiple_accounts_request.py +++ b/test/test_create_multiple_accounts_request.py @@ -43,7 +43,9 @@ def make_instance(self, include_optional) -> CreateMultipleAccountsRequest: names = ["first va","client 65502e71-ecdf-48da-a074-c1753befc7fb"], vault_account_names_starting_index = 0, prefix = 'Copied from: ', - tag_ids = ["a1b2c3d4-e5f6-7890-abcd-ef1234567890","b2c3d4e5-f6a7-8901-bcde-f12345678901"] + tag_ids = ["a1b2c3d4-e5f6-7890-abcd-ef1234567890","b2c3d4e5-f6a7-8901-bcde-f12345678901"], + vault_type = 'MPC', + auto_assign = True ) else: return CreateMultipleAccountsRequest( diff --git a/test/test_create_tempo_transfer_request.py b/test/test_create_tempo_transfer_request.py index d26845e3..8b1a5bfe 100644 --- a/test/test_create_tempo_transfer_request.py +++ b/test/test_create_tempo_transfer_request.py @@ -58,8 +58,7 @@ def make_instance(self, include_optional) -> CreateTempoTransferRequest: replace_tx_by_hash = '0x9fc76417374aa880d4449a1f7f31ec597f00b1f6f3dd2d66f4c9c6c445836d8', fee_payer_account_id = '3', nonce_strategy = 'SEQUENTIAL', - nonce_lane = 1, - memo = 'invoice-1234' + nonce_lane = 1 ) else: return CreateTempoTransferRequest( diff --git a/test/test_create_validation_key_response_dto.py b/test/test_create_validation_key_response_dto.py index e412ad06..687bc119 100644 --- a/test/test_create_validation_key_response_dto.py +++ b/test/test_create_validation_key_response_dto.py @@ -43,7 +43,9 @@ def make_instance(self, include_optional) -> CreateValidationKeyResponseDto: public_key_pem = '-----BEGIN PUBLIC KEY ... END PUBLIC KEY-----', days_till_expired = 365, enabled = False, - created_at = 12345633, ), + created_at = 12345633, + expiration_time = 17098568, + revoked = False, ), admins = [ '' ], @@ -57,7 +59,9 @@ def make_instance(self, include_optional) -> CreateValidationKeyResponseDto: public_key_pem = '-----BEGIN PUBLIC KEY ... END PUBLIC KEY-----', days_till_expired = 365, enabled = False, - created_at = 12345633, ), + created_at = 12345633, + expiration_time = 17098568, + revoked = False, ), admins = [ '' ], diff --git a/test/test_extra_parameters.py b/test/test_extra_parameters.py index 85a75fa5..5b2d6fa7 100644 --- a/test/test_extra_parameters.py +++ b/test/test_extra_parameters.py @@ -41,7 +41,7 @@ def make_instance(self, include_optional) -> ExtraParameters: contract_call_data = '', program_call_data = '', soroban_call_data = fireblocks.models.soroban_call_data.SorobanCallData( - envelope_xdr = '[B@753348c3', ), + envelope_xdr = '[B@3d431770', ), inputs_selection = { }, allow_base_asset_address = True, pii_data = { } diff --git a/test/test_get_validation_key_response_dto.py b/test/test_get_validation_key_response_dto.py index a70c9daf..10f4e8d6 100644 --- a/test/test_get_validation_key_response_dto.py +++ b/test/test_get_validation_key_response_dto.py @@ -44,7 +44,9 @@ def make_instance(self, include_optional) -> GetValidationKeyResponseDto: public_key_pem = '-----BEGIN PUBLIC KEY ... END PUBLIC KEY-----', days_till_expired = 365, enabled = False, - created_at = 12345633, ) + created_at = 12345633, + expiration_time = 17098568, + revoked = False, ) ], next = '' ) @@ -56,7 +58,9 @@ def make_instance(self, include_optional) -> GetValidationKeyResponseDto: public_key_pem = '-----BEGIN PUBLIC KEY ... END PUBLIC KEY-----', days_till_expired = 365, enabled = False, - created_at = 12345633, ) + created_at = 12345633, + expiration_time = 17098568, + revoked = False, ) ], ) """ diff --git a/test/test_key_link_beta_api.py b/test/test_key_link_api.py similarity index 89% rename from test/test_key_link_beta_api.py rename to test/test_key_link_api.py index 11783dbb..818d4baa 100644 --- a/test/test_key_link_beta_api.py +++ b/test/test_key_link_api.py @@ -14,14 +14,14 @@ import unittest -from fireblocks.api.key_link_beta_api import KeyLinkBetaApi +from fireblocks.api.key_link_api import KeyLinkApi -class TestKeyLinkBetaApi(unittest.TestCase): - """KeyLinkBetaApi unit test stubs""" +class TestKeyLinkApi(unittest.TestCase): + """KeyLinkApi unit test stubs""" def setUp(self) -> None: - self.api = KeyLinkBetaApi() + self.api = KeyLinkApi() def tearDown(self) -> None: pass @@ -96,6 +96,13 @@ def test_get_validation_keys_list(self) -> None: """ pass + def test_revoke_validation_key(self) -> None: + """Test case for revoke_validation_key + + Revokes a validation key + """ + pass + def test_set_agent_id(self) -> None: """Test case for set_agent_id diff --git a/test/test_keys_beta_api.py b/test/test_keys_api.py similarity index 86% rename from test/test_keys_beta_api.py rename to test/test_keys_api.py index 7ad4da52..e084bca3 100644 --- a/test/test_keys_beta_api.py +++ b/test/test_keys_api.py @@ -14,14 +14,14 @@ import unittest -from fireblocks.api.keys_beta_api import KeysBetaApi +from fireblocks.api.keys_api import KeysApi -class TestKeysBetaApi(unittest.TestCase): - """KeysBetaApi unit test stubs""" +class TestKeysApi(unittest.TestCase): + """KeysApi unit test stubs""" def setUp(self) -> None: - self.api = KeysBetaApi() + self.api = KeysApi() def tearDown(self) -> None: pass diff --git a/test/test_pair_api_key_request.py b/test/test_pair_api_user_request.py similarity index 73% rename from test/test_pair_api_key_request.py rename to test/test_pair_api_user_request.py index ef778b03..cc01dc29 100644 --- a/test/test_pair_api_key_request.py +++ b/test/test_pair_api_user_request.py @@ -14,11 +14,11 @@ import unittest -from fireblocks.models.pair_api_key_request import PairApiKeyRequest +from fireblocks.models.pair_api_user_request import PairApiUserRequest -class TestPairApiKeyRequest(unittest.TestCase): - """PairApiKeyRequest unit test stubs""" +class TestPairApiUserRequest(unittest.TestCase): + """PairApiUserRequest unit test stubs""" def setUp(self): pass @@ -26,16 +26,16 @@ def setUp(self): def tearDown(self): pass - def make_instance(self, include_optional) -> PairApiKeyRequest: - """Test PairApiKeyRequest + def make_instance(self, include_optional) -> PairApiUserRequest: + """Test PairApiUserRequest include_optional is a boolean, when False only required params are included, when True both required and optional params are included""" - # uncomment below to create an instance of `PairApiKeyRequest` + # uncomment below to create an instance of `PairApiUserRequest` """ - model = PairApiKeyRequest() + model = PairApiUserRequest() if include_optional: - return PairApiKeyRequest( + return PairApiUserRequest( callback_handler = fireblocks.models.callback_handler_request.CallbackHandlerRequest( url = 'https://example.com/callback-handler', public_key = '-----BEGIN PUBLIC KEY----- @@ -45,12 +45,12 @@ def make_instance(self, include_optional) -> PairApiKeyRequest: -----END CERTIFICATE-----', ) ) else: - return PairApiKeyRequest( + return PairApiUserRequest( ) """ - def testPairApiKeyRequest(self): - """Test PairApiKeyRequest""" + def testPairApiUserRequest(self): + """Test PairApiUserRequest""" # inst_req_only = self.make_instance(include_optional=False) # inst_req_and_optional = self.make_instance(include_optional=True) diff --git a/test/test_pair_api_key_response.py b/test/test_pair_api_user_response.py similarity index 74% rename from test/test_pair_api_key_response.py rename to test/test_pair_api_user_response.py index 3c00ae4d..1c97664d 100644 --- a/test/test_pair_api_key_response.py +++ b/test/test_pair_api_user_response.py @@ -14,11 +14,11 @@ import unittest -from fireblocks.models.pair_api_key_response import PairApiKeyResponse +from fireblocks.models.pair_api_user_response import PairApiUserResponse -class TestPairApiKeyResponse(unittest.TestCase): - """PairApiKeyResponse unit test stubs""" +class TestPairApiUserResponse(unittest.TestCase): + """PairApiUserResponse unit test stubs""" def setUp(self): pass @@ -26,16 +26,16 @@ def setUp(self): def tearDown(self): pass - def make_instance(self, include_optional) -> PairApiKeyResponse: - """Test PairApiKeyResponse + def make_instance(self, include_optional) -> PairApiUserResponse: + """Test PairApiUserResponse include_optional is a boolean, when False only required params are included, when True both required and optional params are included""" - # uncomment below to create an instance of `PairApiKeyResponse` + # uncomment below to create an instance of `PairApiUserResponse` """ - model = PairApiKeyResponse() + model = PairApiUserResponse() if include_optional: - return PairApiKeyResponse( + return PairApiUserResponse( id = '44fcead0-7053-4831-a53a-df7fb90d440f', callback_handler = fireblocks.models.callback_handler_request.CallbackHandlerRequest( url = 'https://example.com/callback-handler', @@ -46,13 +46,13 @@ def make_instance(self, include_optional) -> PairApiKeyResponse: -----END CERTIFICATE-----', ) ) else: - return PairApiKeyResponse( + return PairApiUserResponse( id = '44fcead0-7053-4831-a53a-df7fb90d440f', ) """ - def testPairApiKeyResponse(self): - """Test PairApiKeyResponse""" + def testPairApiUserResponse(self): + """Test PairApiUserResponse""" # inst_req_only = self.make_instance(include_optional=False) # inst_req_and_optional = self.make_instance(include_optional=True) diff --git a/test/test_soroban_call_data.py b/test/test_soroban_call_data.py index d8d2ce52..f6c8c923 100644 --- a/test/test_soroban_call_data.py +++ b/test/test_soroban_call_data.py @@ -36,11 +36,11 @@ def make_instance(self, include_optional) -> SorobanCallData: model = SorobanCallData() if include_optional: return SorobanCallData( - envelope_xdr = '[B@753348c3' + envelope_xdr = '[B@3d431770' ) else: return SorobanCallData( - envelope_xdr = '[B@753348c3', + envelope_xdr = '[B@3d431770', ) """ diff --git a/test/test_tempo_transfer_destination.py b/test/test_tempo_transfer_destination.py index 18a08d09..3df57333 100644 --- a/test/test_tempo_transfer_destination.py +++ b/test/test_tempo_transfer_destination.py @@ -40,7 +40,8 @@ def make_instance(self, include_optional) -> TempoTransferDestination: id = '1', one_time_address = fireblocks.models.one_time_address.OneTimeAddress( address = '', - tag = '', ) + tag = '', ), + memo = 'invoice-4968-reference-83b4-7adc' ) else: return TempoTransferDestination( diff --git a/test/test_tr_link_api.py b/test/test_tr_link_api.py index 839e3888..f436c544 100644 --- a/test/test_tr_link_api.py +++ b/test/test_tr_link_api.py @@ -124,6 +124,13 @@ def test_get_tr_link_integration_public_key(self) -> None: """ pass + def test_get_tr_link_manual_decision(self) -> None: + """Test case for get_tr_link_manual_decision + + Get manual decision for missing TRM + """ + pass + def test_get_tr_link_partners(self) -> None: """Test case for get_tr_link_partners diff --git a/test/test_tr_link_manual_decision_destination_detail.py b/test/test_tr_link_manual_decision_destination_detail.py index dea717d3..8c4cdf59 100644 --- a/test/test_tr_link_manual_decision_destination_detail.py +++ b/test/test_tr_link_manual_decision_destination_detail.py @@ -40,7 +40,7 @@ def make_instance(self, include_optional) -> TRLinkManualDecisionDestinationDeta return TRLinkManualDecisionDestinationDetail( destination_screening_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', applied = True, - skip_reason = '' + skip_reason = 'deferred apply' ) else: return TRLinkManualDecisionDestinationDetail( diff --git a/test/test_tr_link_manual_decision_response.py b/test/test_tr_link_manual_decision_response.py index 2f5c8d6d..63728c17 100644 --- a/test/test_tr_link_manual_decision_response.py +++ b/test/test_tr_link_manual_decision_response.py @@ -38,8 +38,9 @@ def make_instance(self, include_optional) -> TRLinkManualDecisionResponse: model = TRLinkManualDecisionResponse() if include_optional: return TRLinkManualDecisionResponse( + status = 'APPLIED', action = 'ACCEPT', - source = 'MANUAL', + source = 'manual', tx_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850e', destinations_affected = 2, destinations_skipped = 0, @@ -47,13 +48,14 @@ def make_instance(self, include_optional) -> TRLinkManualDecisionResponse: fireblocks.models.tr_link_manual_decision_destination_detail.TRLinkManualDecisionDestinationDetail( destination_screening_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', applied = True, - skip_reason = '', ) + skip_reason = 'deferred apply', ) ] ) else: return TRLinkManualDecisionResponse( + status = 'APPLIED', action = 'ACCEPT', - source = 'MANUAL', + source = 'manual', tx_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850e', destinations_affected = 2, destinations_skipped = 0, @@ -61,7 +63,7 @@ def make_instance(self, include_optional) -> TRLinkManualDecisionResponse: fireblocks.models.tr_link_manual_decision_destination_detail.TRLinkManualDecisionDestinationDetail( destination_screening_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', applied = True, - skip_reason = '', ) + skip_reason = 'deferred apply', ) ], ) """ diff --git a/test/test_tr_link_manual_decision_response_status_enum.py b/test/test_tr_link_manual_decision_response_status_enum.py new file mode 100644 index 00000000..6c714365 --- /dev/null +++ b/test/test_tr_link_manual_decision_response_status_enum.py @@ -0,0 +1,37 @@ +# coding: utf-8 + +""" +Fireblocks API + +Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + +The version of the OpenAPI document: 1.6.2 +Contact: developers@fireblocks.com +Generated by OpenAPI Generator (https://openapi-generator.tech) + +Do not edit the class manually. +""" # noqa: E501 + +import unittest + +from fireblocks.models.tr_link_manual_decision_response_status_enum import ( + TRLinkManualDecisionResponseStatusEnum, +) + + +class TestTRLinkManualDecisionResponseStatusEnum(unittest.TestCase): + """TRLinkManualDecisionResponseStatusEnum unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def testTRLinkManualDecisionResponseStatusEnum(self): + """Test TRLinkManualDecisionResponseStatusEnum""" + # inst = TRLinkManualDecisionResponseStatusEnum() + + +if __name__ == "__main__": + unittest.main() diff --git a/test/test_update_connected_account_credentials_request.py b/test/test_update_connected_account_credentials_request.py index 6f5f8382..c007b13a 100644 --- a/test/test_update_connected_account_credentials_request.py +++ b/test/test_update_connected_account_credentials_request.py @@ -40,12 +40,12 @@ def make_instance( model = UpdateConnectedAccountCredentialsRequest() if include_optional: return UpdateConnectedAccountCredentialsRequest( - creds = '[B@3714e415', + creds = '[B@261d7771', api_key = 'api_key_new_abc123' ) else: return UpdateConnectedAccountCredentialsRequest( - creds = '[B@3714e415', + creds = '[B@261d7771', api_key = 'api_key_new_abc123', ) """ diff --git a/test/test_validation_key_dto.py b/test/test_validation_key_dto.py index f1cf1db0..b32971ec 100644 --- a/test/test_validation_key_dto.py +++ b/test/test_validation_key_dto.py @@ -40,7 +40,9 @@ def make_instance(self, include_optional) -> ValidationKeyDto: public_key_pem = '-----BEGIN PUBLIC KEY ... END PUBLIC KEY-----', days_till_expired = 365, enabled = False, - created_at = 12345633 + created_at = 12345633, + expiration_time = 17098568, + revoked = False ) else: return ValidationKeyDto( @@ -49,6 +51,8 @@ def make_instance(self, include_optional) -> ValidationKeyDto: days_till_expired = 365, enabled = False, created_at = 12345633, + expiration_time = 17098568, + revoked = False, ) """