From 9f1df241bb68747c52310f40d323b4b2be040e23 Mon Sep 17 00:00:00 2001 From: fireblocks_dx_team Date: Sun, 2 Feb 2025 10:52:47 +0000 Subject: [PATCH] Generated SDK #538 --- .openapi-generator/FILES | 15 + README.md | 8 + docs/AddExchangeAccountRequest.md | 33 +++ docs/AddExchangeAccountResponse.md | 31 ++ docs/AmlRegistrationResultFullPayload.md | 31 ++ docs/ComplianceApi.md | 75 +++++ docs/ComplianceResultFullPayload.md | 34 +++ docs/ComplianceScreeningResultFullPayload.md | 33 +++ docs/ExchangeAccountsApi.md | 149 ++++++++++ docs/ExchangeType.md | 1 + ...ngeAccountsCredentialsPublicKeyResponse.md | 1 + fireblocks/__init__.py | 11 +- fireblocks/api/compliance_api.py | 127 +++++++++ fireblocks/api/exchange_accounts_api.py | 266 ++++++++++++++++++ fireblocks/configuration.py | 2 +- fireblocks/models/__init__.py | 5 + .../models/add_exchange_account_request.py | 97 +++++++ .../models/add_exchange_account_response.py | 93 ++++++ .../aml_registration_result_full_payload.py | 92 ++++++ .../models/collection_ownership_response.py | 4 +- .../models/compliance_result_full_payload.py | 136 +++++++++ ...ompliance_screening_result_full_payload.py | 106 +++++++ fireblocks/models/exchange_type.py | 56 ++-- ...ccounts_credentials_public_key_response.py | 6 +- fireblocks/models/token_ownership_response.py | 4 +- fireblocks/models/token_response.py | 4 +- fireblocks/models/webhook_event.py | 15 +- pyproject.toml | 2 +- setup.py | 2 +- test/test_add_exchange_account_request.py | 60 ++++ test/test_add_exchange_account_response.py | 56 ++++ ...st_aml_registration_result_full_payload.py | 58 ++++ test/test_compliance_api.py | 7 + test/test_compliance_result_full_payload.py | 84 ++++++ ...ompliance_screening_result_full_payload.py | 60 ++++ test/test_exchange_account.py | 2 +- test/test_exchange_accounts_api.py | 14 + test/test_exchange_accounts_paged.py | 2 +- ...ccounts_credentials_public_key_response.py | 4 +- 39 files changed, 1747 insertions(+), 39 deletions(-) create mode 100644 docs/AddExchangeAccountRequest.md create mode 100644 docs/AddExchangeAccountResponse.md create mode 100644 docs/AmlRegistrationResultFullPayload.md create mode 100644 docs/ComplianceResultFullPayload.md create mode 100644 docs/ComplianceScreeningResultFullPayload.md create mode 100644 fireblocks/models/add_exchange_account_request.py create mode 100644 fireblocks/models/add_exchange_account_response.py create mode 100644 fireblocks/models/aml_registration_result_full_payload.py create mode 100644 fireblocks/models/compliance_result_full_payload.py create mode 100644 fireblocks/models/compliance_screening_result_full_payload.py create mode 100644 test/test_add_exchange_account_request.py create mode 100644 test/test_add_exchange_account_response.py create mode 100644 test/test_aml_registration_result_full_payload.py create mode 100644 test/test_compliance_result_full_payload.py create mode 100644 test/test_compliance_screening_result_full_payload.py diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES index 11364fba..37ab040f 100644 --- a/.openapi-generator/FILES +++ b/.openapi-generator/FILES @@ -18,8 +18,11 @@ docs/AddCollateralRequestBody.md docs/AddContractAssetRequest.md docs/AddCosignerRequest.md docs/AddCosignerResponse.md +docs/AddExchangeAccountRequest.md +docs/AddExchangeAccountResponse.md docs/AdditionalInfo.md docs/AmlRegistrationResult.md +docs/AmlRegistrationResultFullPayload.md docs/AmlScreeningResult.md docs/AmountAggregationTimePeriodMethod.md docs/AmountAndChainDescriptor.md @@ -83,8 +86,10 @@ docs/CollectionTokenMetadataDto.md docs/CollectionType.md docs/ComplianceApi.md docs/ComplianceResult.md +docs/ComplianceResultFullPayload.md docs/ComplianceScreeningConfigurationApi.md docs/ComplianceScreeningResult.md +docs/ComplianceScreeningResultFullPayload.md docs/ConfigChangeRequestStatus.md docs/ConfigConversionOperationSnapshot.md docs/ConfigDisbursementOperationSnapshot.md @@ -619,8 +624,11 @@ fireblocks/models/add_collateral_request_body.py fireblocks/models/add_contract_asset_request.py fireblocks/models/add_cosigner_request.py fireblocks/models/add_cosigner_response.py +fireblocks/models/add_exchange_account_request.py +fireblocks/models/add_exchange_account_response.py fireblocks/models/additional_info.py fireblocks/models/aml_registration_result.py +fireblocks/models/aml_registration_result_full_payload.py fireblocks/models/aml_screening_result.py fireblocks/models/amount_aggregation_time_period_method.py fireblocks/models/amount_and_chain_descriptor.py @@ -679,7 +687,9 @@ fireblocks/models/collection_token_metadata_attribute_dto.py fireblocks/models/collection_token_metadata_dto.py fireblocks/models/collection_type.py fireblocks/models/compliance_result.py +fireblocks/models/compliance_result_full_payload.py fireblocks/models/compliance_screening_result.py +fireblocks/models/compliance_screening_result_full_payload.py fireblocks/models/config_change_request_status.py fireblocks/models/config_conversion_operation_snapshot.py fireblocks/models/config_disbursement_operation_snapshot.py @@ -1148,8 +1158,11 @@ test/test_add_collateral_request_body.py test/test_add_contract_asset_request.py test/test_add_cosigner_request.py test/test_add_cosigner_response.py +test/test_add_exchange_account_request.py +test/test_add_exchange_account_response.py test/test_additional_info.py test/test_aml_registration_result.py +test/test_aml_registration_result_full_payload.py test/test_aml_screening_result.py test/test_amount_aggregation_time_period_method.py test/test_amount_and_chain_descriptor.py @@ -1214,8 +1227,10 @@ test/test_collection_token_metadata_dto.py test/test_collection_type.py test/test_compliance_api.py test/test_compliance_result.py +test/test_compliance_result_full_payload.py test/test_compliance_screening_configuration_api.py test/test_compliance_screening_result.py +test/test_compliance_screening_result_full_payload.py test/test_config_change_request_status.py test/test_config_conversion_operation_snapshot.py test/test_config_disbursement_operation_snapshot.py diff --git a/README.md b/README.md index dfdb3ae3..21bc2a00 100644 --- a/README.md +++ b/README.md @@ -247,6 +247,7 @@ Class | Method | HTTP request | Description *ComplianceApi* | [**get_aml_post_screening_policy**](docs/ComplianceApi.md#get_aml_post_screening_policy) | **GET** /screening/aml/post_screening_policy | AML - View Post-Screening Policy *ComplianceApi* | [**get_aml_screening_policy**](docs/ComplianceApi.md#get_aml_screening_policy) | **GET** /screening/aml/screening_policy | AML - View Screening Policy *ComplianceApi* | [**get_post_screening_policy**](docs/ComplianceApi.md#get_post_screening_policy) | **GET** /screening/travel_rule/post_screening_policy | Travel Rule - View Post-Screening Policy +*ComplianceApi* | [**get_screening_full_details**](docs/ComplianceApi.md#get_screening_full_details) | **GET** /screening/transaction/{txId} | Provides all the compliance details for the given screened transaction. *ComplianceApi* | [**get_screening_policy**](docs/ComplianceApi.md#get_screening_policy) | **GET** /screening/travel_rule/screening_policy | Travel Rule - View Screening Policy *ComplianceApi* | [**retry_rejected_transaction_bypass_screening_checks**](docs/ComplianceApi.md#retry_rejected_transaction_bypass_screening_checks) | **POST** /screening/transaction/{txId}/bypass_screening_policy | Calling the \"Bypass Screening Policy\" API endpoint triggers a new transaction, with the API user as the initiator, bypassing the screening policy check *ComplianceApi* | [**update_aml_screening_configuration**](docs/ComplianceApi.md#update_aml_screening_configuration) | **PUT** /screening/aml/policy_configuration | Update AML Configuration @@ -291,9 +292,11 @@ Class | Method | HTTP request | Description *DeployedContractsApi* | [**get_deployed_contracts**](docs/DeployedContractsApi.md#get_deployed_contracts) | **GET** /tokenization/contracts | List deployed contracts data *EmbeddedWalletsApi* | [**get_public_key_info_for_address_ncw**](docs/EmbeddedWalletsApi.md#get_public_key_info_for_address_ncw) | **GET** /ncw/{walletId}/accounts/{accountId}/{assetId}/{change}/{addressIndex}/public_key_info | Get the public key of an asset *EmbeddedWalletsApi* | [**get_public_key_info_ncw**](docs/EmbeddedWalletsApi.md#get_public_key_info_ncw) | **GET** /ncw/{walletId}/public_key_info | Get the public key for a derivation path +*ExchangeAccountsApi* | [**add_exchange_account**](docs/ExchangeAccountsApi.md#add_exchange_account) | **POST** /exchange_accounts | Add an exchange account *ExchangeAccountsApi* | [**convert_assets**](docs/ExchangeAccountsApi.md#convert_assets) | **POST** /exchange_accounts/{exchangeAccountId}/convert | Convert exchange account funds from the source asset to the destination asset. *ExchangeAccountsApi* | [**get_exchange_account**](docs/ExchangeAccountsApi.md#get_exchange_account) | **GET** /exchange_accounts/{exchangeAccountId} | Find a specific exchange account *ExchangeAccountsApi* | [**get_exchange_account_asset**](docs/ExchangeAccountsApi.md#get_exchange_account_asset) | **GET** /exchange_accounts/{exchangeAccountId}/{assetId} | Find an asset for an exchange account +*ExchangeAccountsApi* | [**get_exchange_accounts_credentials_public_key**](docs/ExchangeAccountsApi.md#get_exchange_accounts_credentials_public_key) | **GET** /exchange_accounts/credentials_public_key | Get public key to encrypt exchange credentials *ExchangeAccountsApi* | [**get_paged_exchange_accounts**](docs/ExchangeAccountsApi.md#get_paged_exchange_accounts) | **GET** /exchange_accounts/paged | Pagination list exchange accounts *ExchangeAccountsApi* | [**internal_transfer**](docs/ExchangeAccountsApi.md#internal_transfer) | **POST** /exchange_accounts/{exchangeAccountId}/internal_transfer | Internal transfer for exchange accounts *ExternalWalletsApi* | [**add_asset_to_external_wallet**](docs/ExternalWalletsApi.md#add_asset_to_external_wallet) | **POST** /external_wallets/{walletId}/{assetId} | Add an asset to an external wallet. @@ -509,8 +512,11 @@ Class | Method | HTTP request | Description - [AddContractAssetRequest](docs/AddContractAssetRequest.md) - [AddCosignerRequest](docs/AddCosignerRequest.md) - [AddCosignerResponse](docs/AddCosignerResponse.md) + - [AddExchangeAccountRequest](docs/AddExchangeAccountRequest.md) + - [AddExchangeAccountResponse](docs/AddExchangeAccountResponse.md) - [AdditionalInfo](docs/AdditionalInfo.md) - [AmlRegistrationResult](docs/AmlRegistrationResult.md) + - [AmlRegistrationResultFullPayload](docs/AmlRegistrationResultFullPayload.md) - [AmlScreeningResult](docs/AmlScreeningResult.md) - [AmountAggregationTimePeriodMethod](docs/AmountAggregationTimePeriodMethod.md) - [AmountAndChainDescriptor](docs/AmountAndChainDescriptor.md) @@ -568,7 +574,9 @@ Class | Method | HTTP request | Description - [CollectionTokenMetadataDto](docs/CollectionTokenMetadataDto.md) - [CollectionType](docs/CollectionType.md) - [ComplianceResult](docs/ComplianceResult.md) + - [ComplianceResultFullPayload](docs/ComplianceResultFullPayload.md) - [ComplianceScreeningResult](docs/ComplianceScreeningResult.md) + - [ComplianceScreeningResultFullPayload](docs/ComplianceScreeningResultFullPayload.md) - [ConfigChangeRequestStatus](docs/ConfigChangeRequestStatus.md) - [ConfigConversionOperationSnapshot](docs/ConfigConversionOperationSnapshot.md) - [ConfigDisbursementOperationSnapshot](docs/ConfigDisbursementOperationSnapshot.md) diff --git a/docs/AddExchangeAccountRequest.md b/docs/AddExchangeAccountRequest.md new file mode 100644 index 00000000..bd19da31 --- /dev/null +++ b/docs/AddExchangeAccountRequest.md @@ -0,0 +1,33 @@ +# AddExchangeAccountRequest + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**exchange_type** | [**ExchangeType**](ExchangeType.md) | | +**name** | **str** | Display name of the exchange account | +**creds** | **str** | Encrypted credentials | [optional] +**key** | **str** | Api key of the exchange | [optional] +**main_account_id** | **str** | Optional - main account id of the exchange | [optional] + +## Example + +```python +from fireblocks.models.add_exchange_account_request import AddExchangeAccountRequest + +# TODO update the JSON string below +json = "{}" +# create an instance of AddExchangeAccountRequest from a JSON string +add_exchange_account_request_instance = AddExchangeAccountRequest.from_json(json) +# print the JSON string representation of the object +print(AddExchangeAccountRequest.to_json()) + +# convert the object into a dict +add_exchange_account_request_dict = add_exchange_account_request_instance.to_dict() +# create an instance of AddExchangeAccountRequest from a dict +add_exchange_account_request_from_dict = AddExchangeAccountRequest.from_dict(add_exchange_account_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/AddExchangeAccountResponse.md b/docs/AddExchangeAccountResponse.md new file mode 100644 index 00000000..c1c4e3a9 --- /dev/null +++ b/docs/AddExchangeAccountResponse.md @@ -0,0 +1,31 @@ +# AddExchangeAccountResponse + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | Exchange account's identifier | [optional] +**name** | **str** | Display name of the exchange account | [optional] +**exchange_type** | [**ExchangeType**](ExchangeType.md) | | [optional] + +## Example + +```python +from fireblocks.models.add_exchange_account_response import AddExchangeAccountResponse + +# TODO update the JSON string below +json = "{}" +# create an instance of AddExchangeAccountResponse from a JSON string +add_exchange_account_response_instance = AddExchangeAccountResponse.from_json(json) +# print the JSON string representation of the object +print(AddExchangeAccountResponse.to_json()) + +# convert the object into a dict +add_exchange_account_response_dict = add_exchange_account_response_instance.to_dict() +# create an instance of AddExchangeAccountResponse from a dict +add_exchange_account_response_from_dict = AddExchangeAccountResponse.from_dict(add_exchange_account_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/AmlRegistrationResultFullPayload.md b/docs/AmlRegistrationResultFullPayload.md new file mode 100644 index 00000000..05914bea --- /dev/null +++ b/docs/AmlRegistrationResultFullPayload.md @@ -0,0 +1,31 @@ +# AmlRegistrationResultFullPayload + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**provider** | **str** | | [optional] +**success** | **bool** | | [optional] +**timestamp** | **float** | | [optional] + +## Example + +```python +from fireblocks.models.aml_registration_result_full_payload import AmlRegistrationResultFullPayload + +# TODO update the JSON string below +json = "{}" +# create an instance of AmlRegistrationResultFullPayload from a JSON string +aml_registration_result_full_payload_instance = AmlRegistrationResultFullPayload.from_json(json) +# print the JSON string representation of the object +print(AmlRegistrationResultFullPayload.to_json()) + +# convert the object into a dict +aml_registration_result_full_payload_dict = aml_registration_result_full_payload_instance.to_dict() +# create an instance of AmlRegistrationResultFullPayload from a dict +aml_registration_result_full_payload_from_dict = AmlRegistrationResultFullPayload.from_dict(aml_registration_result_full_payload_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/ComplianceApi.md b/docs/ComplianceApi.md index d7905f3b..53bb8a03 100644 --- a/docs/ComplianceApi.md +++ b/docs/ComplianceApi.md @@ -7,6 +7,7 @@ Method | HTTP request | Description [**get_aml_post_screening_policy**](ComplianceApi.md#get_aml_post_screening_policy) | **GET** /screening/aml/post_screening_policy | AML - View Post-Screening Policy [**get_aml_screening_policy**](ComplianceApi.md#get_aml_screening_policy) | **GET** /screening/aml/screening_policy | AML - View Screening Policy [**get_post_screening_policy**](ComplianceApi.md#get_post_screening_policy) | **GET** /screening/travel_rule/post_screening_policy | Travel Rule - View Post-Screening Policy +[**get_screening_full_details**](ComplianceApi.md#get_screening_full_details) | **GET** /screening/transaction/{txId} | Provides all the compliance details for the given screened transaction. [**get_screening_policy**](ComplianceApi.md#get_screening_policy) | **GET** /screening/travel_rule/screening_policy | Travel Rule - View Screening Policy [**retry_rejected_transaction_bypass_screening_checks**](ComplianceApi.md#retry_rejected_transaction_bypass_screening_checks) | **POST** /screening/transaction/{txId}/bypass_screening_policy | Calling the \"Bypass Screening Policy\" API endpoint triggers a new transaction, with the API user as the initiator, bypassing the screening policy check [**update_aml_screening_configuration**](ComplianceApi.md#update_aml_screening_configuration) | **PUT** /screening/aml/policy_configuration | Update AML Configuration @@ -221,6 +222,80 @@ 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_screening_full_details** +> ComplianceResultFullPayload get_screening_full_details(tx_id) + +Provides all the compliance details for the given screened transaction. + +Provides all the compliance details for the given screened transaction. + +### Example + + +```python +from fireblocks.models.compliance_result_full_payload import ComplianceResultFullPayload +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: + tx_id = '550e8400-e29b-41d4-a716-446655440000' # str | Fireblocks transaction ID of the screened transaction + + try: + # Provides all the compliance details for the given screened transaction. + api_response = fireblocks.compliance.get_screening_full_details(tx_id).result() + print("The response of ComplianceApi->get_screening_full_details:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling ComplianceApi->get_screening_full_details: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **tx_id** | **str**| Fireblocks transaction ID of the screened transaction | + +### Return type + +[**ComplianceResultFullPayload**](ComplianceResultFullPayload.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | A compliance object | * X-Request-ID -
| +**0** | Error Response | * X-Request-ID -
| + +[[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_screening_policy** > ScreeningProviderRulesConfigurationResponse get_screening_policy() diff --git a/docs/ComplianceResultFullPayload.md b/docs/ComplianceResultFullPayload.md new file mode 100644 index 00000000..6a143cf1 --- /dev/null +++ b/docs/ComplianceResultFullPayload.md @@ -0,0 +1,34 @@ +# ComplianceResultFullPayload + +The result of the Compliance AML/Travel Rule screening. + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**aml** | [**List[ComplianceScreeningResultFullPayload]**](ComplianceScreeningResultFullPayload.md) | The end result of the AML screening. | [optional] +**tr** | [**List[ComplianceScreeningResultFullPayload]**](ComplianceScreeningResultFullPayload.md) | The result of the Travel Rule screening. | [optional] +**aml_list** | [**List[ComplianceScreeningResultFullPayload]**](ComplianceScreeningResultFullPayload.md) | The list of all results of the AML screening. | [optional] +**status** | **str** | Status of compliance result screening. | [optional] +**aml_registration** | [**List[AmlRegistrationResultFullPayload]**](AmlRegistrationResultFullPayload.md) | The results of the AML address registration. | [optional] + +## Example + +```python +from fireblocks.models.compliance_result_full_payload import ComplianceResultFullPayload + +# TODO update the JSON string below +json = "{}" +# create an instance of ComplianceResultFullPayload from a JSON string +compliance_result_full_payload_instance = ComplianceResultFullPayload.from_json(json) +# print the JSON string representation of the object +print(ComplianceResultFullPayload.to_json()) + +# convert the object into a dict +compliance_result_full_payload_dict = compliance_result_full_payload_instance.to_dict() +# create an instance of ComplianceResultFullPayload from a dict +compliance_result_full_payload_from_dict = ComplianceResultFullPayload.from_dict(compliance_result_full_payload_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/ComplianceScreeningResultFullPayload.md b/docs/ComplianceScreeningResultFullPayload.md new file mode 100644 index 00000000..2a6623d6 --- /dev/null +++ b/docs/ComplianceScreeningResultFullPayload.md @@ -0,0 +1,33 @@ +# ComplianceScreeningResultFullPayload + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**provider** | **str** | | [optional] +**payload** | **object** | The payload of the screening result. The payload is a JSON object that contains the screening result. The payload is different for each screening provider. | [optional] +**bypass_reason** | **str** | | [optional] +**screening_status** | **str** | | [optional] +**timestamp** | **float** | | [optional] + +## Example + +```python +from fireblocks.models.compliance_screening_result_full_payload import ComplianceScreeningResultFullPayload + +# TODO update the JSON string below +json = "{}" +# create an instance of ComplianceScreeningResultFullPayload from a JSON string +compliance_screening_result_full_payload_instance = ComplianceScreeningResultFullPayload.from_json(json) +# print the JSON string representation of the object +print(ComplianceScreeningResultFullPayload.to_json()) + +# convert the object into a dict +compliance_screening_result_full_payload_dict = compliance_screening_result_full_payload_instance.to_dict() +# create an instance of ComplianceScreeningResultFullPayload from a dict +compliance_screening_result_full_payload_from_dict = ComplianceScreeningResultFullPayload.from_dict(compliance_screening_result_full_payload_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/ExchangeAccountsApi.md b/docs/ExchangeAccountsApi.md index c7a0d8a4..454bd186 100644 --- a/docs/ExchangeAccountsApi.md +++ b/docs/ExchangeAccountsApi.md @@ -4,13 +4,92 @@ All URIs are relative to *https://api.fireblocks.io/v1* Method | HTTP request | Description ------------- | ------------- | ------------- +[**add_exchange_account**](ExchangeAccountsApi.md#add_exchange_account) | **POST** /exchange_accounts | Add an exchange account [**convert_assets**](ExchangeAccountsApi.md#convert_assets) | **POST** /exchange_accounts/{exchangeAccountId}/convert | Convert exchange account funds from the source asset to the destination asset. [**get_exchange_account**](ExchangeAccountsApi.md#get_exchange_account) | **GET** /exchange_accounts/{exchangeAccountId} | Find a specific exchange account [**get_exchange_account_asset**](ExchangeAccountsApi.md#get_exchange_account_asset) | **GET** /exchange_accounts/{exchangeAccountId}/{assetId} | Find an asset for an exchange account +[**get_exchange_accounts_credentials_public_key**](ExchangeAccountsApi.md#get_exchange_accounts_credentials_public_key) | **GET** /exchange_accounts/credentials_public_key | Get public key to encrypt exchange credentials [**get_paged_exchange_accounts**](ExchangeAccountsApi.md#get_paged_exchange_accounts) | **GET** /exchange_accounts/paged | Pagination list exchange accounts [**internal_transfer**](ExchangeAccountsApi.md#internal_transfer) | **POST** /exchange_accounts/{exchangeAccountId}/internal_transfer | Internal transfer for exchange accounts +# **add_exchange_account** +> AddExchangeAccountResponse add_exchange_account(add_exchange_account_request, idempotency_key=idempotency_key) + +Add an exchange account + +Add an exchange account to exchanges. + +### Example + + +```python +from fireblocks.models.add_exchange_account_request import AddExchangeAccountRequest +from fireblocks.models.add_exchange_account_response import AddExchangeAccountResponse +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: + add_exchange_account_request = fireblocks.AddExchangeAccountRequest() # AddExchangeAccountRequest | + 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: + # Add an exchange account + api_response = fireblocks.exchange_accounts.add_exchange_account(add_exchange_account_request, idempotency_key=idempotency_key).result() + print("The response of ExchangeAccountsApi->add_exchange_account:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling ExchangeAccountsApi->add_exchange_account: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **add_exchange_account_request** | [**AddExchangeAccountRequest**](AddExchangeAccountRequest.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 + +[**AddExchangeAccountResponse**](AddExchangeAccountResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**201** | An Exchange Account identifier 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) + # **convert_assets** > ConvertAssetsResponse convert_assets(exchange_account_id, idempotency_key=idempotency_key, convert_assets_request=convert_assets_request) @@ -240,6 +319,76 @@ 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_exchange_accounts_credentials_public_key** +> GetExchangeAccountsCredentialsPublicKeyResponse get_exchange_accounts_credentials_public_key() + +Get public key to encrypt exchange credentials + +Return public key + +### Example + + +```python +from fireblocks.models.get_exchange_accounts_credentials_public_key_response import GetExchangeAccountsCredentialsPublicKeyResponse +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: + + try: + # Get public key to encrypt exchange credentials + api_response = fireblocks.exchange_accounts.get_exchange_accounts_credentials_public_key().result() + print("The response of ExchangeAccountsApi->get_exchange_accounts_credentials_public_key:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling ExchangeAccountsApi->get_exchange_accounts_credentials_public_key: %s\n" % e) +``` + + + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**GetExchangeAccountsCredentialsPublicKeyResponse**](GetExchangeAccountsCredentialsPublicKeyResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | public key as string | * 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_paged_exchange_accounts** > List[ExchangeAccountsPaged] get_paged_exchange_accounts(limit, before=before, after=after) diff --git a/docs/ExchangeType.md b/docs/ExchangeType.md index ba5c4dd3..d1420f6d 100644 --- a/docs/ExchangeType.md +++ b/docs/ExchangeType.md @@ -1,5 +1,6 @@ # ExchangeType +Exchange account's type ## Properties diff --git a/docs/GetExchangeAccountsCredentialsPublicKeyResponse.md b/docs/GetExchangeAccountsCredentialsPublicKeyResponse.md index 325e9c2c..a3d2d949 100644 --- a/docs/GetExchangeAccountsCredentialsPublicKeyResponse.md +++ b/docs/GetExchangeAccountsCredentialsPublicKeyResponse.md @@ -6,6 +6,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **public_key** | **str** | Public key string | +**tenant_id** | **str** | Tenant identifier | ## Example diff --git a/fireblocks/__init__.py b/fireblocks/__init__.py index 8e738c86..53355176 100644 --- a/fireblocks/__init__.py +++ b/fireblocks/__init__.py @@ -15,7 +15,7 @@ """ # noqa: E501 -__version__ = "6.0.0" +__version__ = "0.0.0" # import apis into sdk package from fireblocks.api.api_user_api import ApiUserApi @@ -107,8 +107,13 @@ from fireblocks.models.add_contract_asset_request import AddContractAssetRequest from fireblocks.models.add_cosigner_request import AddCosignerRequest from fireblocks.models.add_cosigner_response import AddCosignerResponse +from fireblocks.models.add_exchange_account_request import AddExchangeAccountRequest +from fireblocks.models.add_exchange_account_response import AddExchangeAccountResponse from fireblocks.models.additional_info import AdditionalInfo from fireblocks.models.aml_registration_result import AmlRegistrationResult +from fireblocks.models.aml_registration_result_full_payload import ( + AmlRegistrationResultFullPayload, +) from fireblocks.models.aml_screening_result import AmlScreeningResult from fireblocks.models.amount_aggregation_time_period_method import ( AmountAggregationTimePeriodMethod, @@ -180,7 +185,11 @@ from fireblocks.models.collection_token_metadata_dto import CollectionTokenMetadataDto from fireblocks.models.collection_type import CollectionType from fireblocks.models.compliance_result import ComplianceResult +from fireblocks.models.compliance_result_full_payload import ComplianceResultFullPayload from fireblocks.models.compliance_screening_result import ComplianceScreeningResult +from fireblocks.models.compliance_screening_result_full_payload import ( + ComplianceScreeningResultFullPayload, +) from fireblocks.models.config_change_request_status import ConfigChangeRequestStatus from fireblocks.models.config_conversion_operation_snapshot import ( ConfigConversionOperationSnapshot, diff --git a/fireblocks/api/compliance_api.py b/fireblocks/api/compliance_api.py index e8caa08e..c5e17930 100644 --- a/fireblocks/api/compliance_api.py +++ b/fireblocks/api/compliance_api.py @@ -21,6 +21,7 @@ from pydantic import Field, StrictStr from typing import Optional from typing_extensions import Annotated +from fireblocks.models.compliance_result_full_payload import ComplianceResultFullPayload from fireblocks.models.create_transaction_response import CreateTransactionResponse from fireblocks.models.screening_configurations_request import ScreeningConfigurationsRequest from fireblocks.models.screening_policy_response import ScreeningPolicyResponse @@ -397,6 +398,132 @@ def _get_post_screening_policy_serialize( + @validate_call + def get_screening_full_details( + self, + tx_id: Annotated[StrictStr, Field(description="Fireblocks transaction ID of the screened transaction")], + _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[ComplianceResultFullPayload]]: + """Provides all the compliance details for the given screened transaction. + + Provides all the compliance details for the given screened transaction. + + :param tx_id: Fireblocks transaction ID of the screened transaction (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_screening_full_details", param_name="tx_id", param_value=tx_id) + + _param = self._get_screening_full_details_serialize( + 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': "ComplianceResultFullPayload", + 'default': "ErrorSchema", + } + + return self.api_client.call_api( + *_param, + _request_timeout=_request_timeout, + _response_types_map=_response_types_map, + ) + + def _get_screening_full_details_serialize( + self, + 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]] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + 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` + _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/transaction/{txId}', + 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_screening_policy( self, diff --git a/fireblocks/api/exchange_accounts_api.py b/fireblocks/api/exchange_accounts_api.py index a843d47f..b51c8d8b 100644 --- a/fireblocks/api/exchange_accounts_api.py +++ b/fireblocks/api/exchange_accounts_api.py @@ -21,12 +21,15 @@ from pydantic import Field, StrictStr from typing import List, Optional, Union from typing_extensions import Annotated +from fireblocks.models.add_exchange_account_request import AddExchangeAccountRequest +from fireblocks.models.add_exchange_account_response import AddExchangeAccountResponse from fireblocks.models.convert_assets_request import ConvertAssetsRequest from fireblocks.models.convert_assets_response import ConvertAssetsResponse from fireblocks.models.create_internal_transfer_request import CreateInternalTransferRequest from fireblocks.models.exchange_account import ExchangeAccount from fireblocks.models.exchange_accounts_paged import ExchangeAccountsPaged from fireblocks.models.exchange_asset import ExchangeAsset +from fireblocks.models.get_exchange_accounts_credentials_public_key_response import GetExchangeAccountsCredentialsPublicKeyResponse from fireblocks.models.internal_transfer_response import InternalTransferResponse from fireblocks.api_client import ApiClient, RequestSerialized @@ -48,6 +51,151 @@ def __init__(self, api_client=None) -> None: self.api_client = api_client + @validate_call + def add_exchange_account( + self, + add_exchange_account_request: AddExchangeAccountRequest, + 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[AddExchangeAccountResponse]]: + """Add an exchange account + + Add an exchange account to exchanges. + + :param add_exchange_account_request: (required) + :type add_exchange_account_request: AddExchangeAccountRequest + :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. + :type idempotency_key: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + + _param = self._add_exchange_account_serialize( + add_exchange_account_request=add_exchange_account_request, + 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]] = { + '201': "AddExchangeAccountResponse", + 'default': "ErrorSchema", + } + + return self.api_client.call_api( + *_param, + _request_timeout=_request_timeout, + _response_types_map=_response_types_map, + ) + + def _add_exchange_account_serialize( + self, + add_exchange_account_request, + 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]] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + # process the header parameters + if idempotency_key is not None: + _header_params['Idempotency-Key'] = idempotency_key + # process the form parameters + # process the body parameter + if add_exchange_account_request is not None: + _body_params = add_exchange_account_request + + + # set the HTTP header `Accept` + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/exchange_accounts', + 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 convert_assets( self, @@ -461,6 +609,124 @@ def _get_exchange_account_asset_serialize( + @validate_call + def get_exchange_accounts_credentials_public_key( + self, + _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[GetExchangeAccountsCredentialsPublicKeyResponse]]: + """Get public key to encrypt exchange credentials + + Return public key + + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + + _param = self._get_exchange_accounts_credentials_public_key_serialize( + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "GetExchangeAccountsCredentialsPublicKeyResponse", + 'default': "ErrorSchema", + } + + return self.api_client.call_api( + *_param, + _request_timeout=_request_timeout, + _response_types_map=_response_types_map, + ) + + def _get_exchange_accounts_credentials_public_key_serialize( + self, + _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]] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + _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='/exchange_accounts/credentials_public_key', + 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_paged_exchange_accounts( self, diff --git a/fireblocks/configuration.py b/fireblocks/configuration.py index c4d6141e..03f60c7b 100644 --- a/fireblocks/configuration.py +++ b/fireblocks/configuration.py @@ -424,7 +424,7 @@ def to_debug_report(self): "OS: {env}\n" "Python Version: {pyversion}\n" "Version of the API: 1.6.2\n" - "SDK Package Version: 6.0.0".format(env=sys.platform, pyversion=sys.version) + "SDK Package Version: 0.0.0".format(env=sys.platform, pyversion=sys.version) ) def get_host_settings(self): diff --git a/fireblocks/models/__init__.py b/fireblocks/models/__init__.py index 6fff745c..1e423849 100644 --- a/fireblocks/models/__init__.py +++ b/fireblocks/models/__init__.py @@ -31,8 +31,11 @@ from fireblocks.models.add_contract_asset_request import AddContractAssetRequest from fireblocks.models.add_cosigner_request import AddCosignerRequest from fireblocks.models.add_cosigner_response import AddCosignerResponse +from fireblocks.models.add_exchange_account_request import AddExchangeAccountRequest +from fireblocks.models.add_exchange_account_response import AddExchangeAccountResponse from fireblocks.models.additional_info import AdditionalInfo from fireblocks.models.aml_registration_result import AmlRegistrationResult +from fireblocks.models.aml_registration_result_full_payload import AmlRegistrationResultFullPayload from fireblocks.models.aml_screening_result import AmlScreeningResult from fireblocks.models.amount_aggregation_time_period_method import AmountAggregationTimePeriodMethod from fireblocks.models.amount_and_chain_descriptor import AmountAndChainDescriptor @@ -90,7 +93,9 @@ from fireblocks.models.collection_token_metadata_dto import CollectionTokenMetadataDto from fireblocks.models.collection_type import CollectionType from fireblocks.models.compliance_result import ComplianceResult +from fireblocks.models.compliance_result_full_payload import ComplianceResultFullPayload from fireblocks.models.compliance_screening_result import ComplianceScreeningResult +from fireblocks.models.compliance_screening_result_full_payload import ComplianceScreeningResultFullPayload from fireblocks.models.config_change_request_status import ConfigChangeRequestStatus from fireblocks.models.config_conversion_operation_snapshot import ConfigConversionOperationSnapshot from fireblocks.models.config_disbursement_operation_snapshot import ConfigDisbursementOperationSnapshot diff --git a/fireblocks/models/add_exchange_account_request.py b/fireblocks/models/add_exchange_account_request.py new file mode 100644 index 00000000..d642c954 --- /dev/null +++ b/fireblocks/models/add_exchange_account_request.py @@ -0,0 +1,97 @@ +# coding: utf-8 + +""" + Fireblocks API + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + + The version of the OpenAPI document: 1.6.2 + Contact: support@fireblocks.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from fireblocks.models.exchange_type import ExchangeType +from typing import Optional, Set +from typing_extensions import Self + +class AddExchangeAccountRequest(BaseModel): + """ + AddExchangeAccountRequest + """ # noqa: E501 + exchange_type: ExchangeType = Field(alias="exchangeType") + name: StrictStr = Field(description="Display name of the exchange account") + creds: Optional[StrictStr] = Field(default=None, description="Encrypted credentials") + key: Optional[StrictStr] = Field(default=None, description="Api key of the exchange") + main_account_id: Optional[StrictStr] = Field(default=None, description="Optional - main account id of the exchange", alias="mainAccountId") + __properties: ClassVar[List[str]] = ["exchangeType", "name", "creds", "key", "mainAccountId"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of AddExchangeAccountRequest from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of AddExchangeAccountRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "exchangeType": obj.get("exchangeType"), + "name": obj.get("name"), + "creds": obj.get("creds"), + "key": obj.get("key"), + "mainAccountId": obj.get("mainAccountId") + }) + return _obj + + diff --git a/fireblocks/models/add_exchange_account_response.py b/fireblocks/models/add_exchange_account_response.py new file mode 100644 index 00000000..74d3aa73 --- /dev/null +++ b/fireblocks/models/add_exchange_account_response.py @@ -0,0 +1,93 @@ +# coding: utf-8 + +""" + Fireblocks API + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + + The version of the OpenAPI document: 1.6.2 + Contact: support@fireblocks.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from fireblocks.models.exchange_type import ExchangeType +from typing import Optional, Set +from typing_extensions import Self + +class AddExchangeAccountResponse(BaseModel): + """ + AddExchangeAccountResponse + """ # noqa: E501 + id: Optional[StrictStr] = Field(default=None, description="Exchange account's identifier") + name: Optional[StrictStr] = Field(default=None, description="Display name of the exchange account") + exchange_type: Optional[ExchangeType] = Field(default=None, alias="exchangeType") + __properties: ClassVar[List[str]] = ["id", "name", "exchangeType"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of AddExchangeAccountResponse from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of AddExchangeAccountResponse from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "id": obj.get("id"), + "name": obj.get("name"), + "exchangeType": obj.get("exchangeType") + }) + return _obj + + diff --git a/fireblocks/models/aml_registration_result_full_payload.py b/fireblocks/models/aml_registration_result_full_payload.py new file mode 100644 index 00000000..515b8769 --- /dev/null +++ b/fireblocks/models/aml_registration_result_full_payload.py @@ -0,0 +1,92 @@ +# coding: utf-8 + +""" + Fireblocks API + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + + The version of the OpenAPI document: 1.6.2 + Contact: support@fireblocks.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, StrictBool, StrictFloat, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional, Union +from typing import Optional, Set +from typing_extensions import Self + +class AmlRegistrationResultFullPayload(BaseModel): + """ + AmlRegistrationResultFullPayload + """ # noqa: E501 + provider: Optional[StrictStr] = None + success: Optional[StrictBool] = None + timestamp: Optional[Union[StrictFloat, StrictInt]] = None + __properties: ClassVar[List[str]] = ["provider", "success", "timestamp"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of AmlRegistrationResultFullPayload from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of AmlRegistrationResultFullPayload from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "provider": obj.get("provider"), + "success": obj.get("success"), + "timestamp": obj.get("timestamp") + }) + return _obj + + diff --git a/fireblocks/models/collection_ownership_response.py b/fireblocks/models/collection_ownership_response.py index 12192073..07f81edc 100644 --- a/fireblocks/models/collection_ownership_response.py +++ b/fireblocks/models/collection_ownership_response.py @@ -38,8 +38,8 @@ class CollectionOwnershipResponse(BaseModel): @field_validator('blockchain_descriptor') def blockchain_descriptor_validate_enum(cls, value): """Validates the enum""" - if value not in set(['ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA_TEST']): - raise ValueError("must be one of enum values ('ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA_TEST')") + if value not in set(['ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX']): + raise ValueError("must be one of enum values ('ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX')") return value model_config = ConfigDict( diff --git a/fireblocks/models/compliance_result_full_payload.py b/fireblocks/models/compliance_result_full_payload.py new file mode 100644 index 00000000..c86930d5 --- /dev/null +++ b/fireblocks/models/compliance_result_full_payload.py @@ -0,0 +1,136 @@ +# coding: utf-8 + +""" + Fireblocks API + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + + The version of the OpenAPI document: 1.6.2 + Contact: support@fireblocks.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional +from fireblocks.models.aml_registration_result_full_payload import AmlRegistrationResultFullPayload +from fireblocks.models.compliance_screening_result_full_payload import ComplianceScreeningResultFullPayload +from typing import Optional, Set +from typing_extensions import Self + +class ComplianceResultFullPayload(BaseModel): + """ + The result of the Compliance AML/Travel Rule screening. + """ # noqa: E501 + aml: Optional[List[ComplianceScreeningResultFullPayload]] = Field(default=None, description="The end result of the AML screening.") + tr: Optional[List[ComplianceScreeningResultFullPayload]] = Field(default=None, description="The result of the Travel Rule screening.") + aml_list: Optional[List[ComplianceScreeningResultFullPayload]] = Field(default=None, description="The list of all results of the AML screening.", alias="amlList") + status: Optional[StrictStr] = Field(default=None, description="Status of compliance result screening.") + aml_registration: Optional[List[AmlRegistrationResultFullPayload]] = Field(default=None, description="The results of the AML address registration.", alias="amlRegistration") + __properties: ClassVar[List[str]] = ["aml", "tr", "amlList", "status", "amlRegistration"] + + @field_validator('status') + def status_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['Started', 'NetworkConnectionAddressResolve', 'ScreeningPrepare', 'AMLStarted', 'AMLCompleted', 'AMLFailed', 'AMLInBackground', 'TRPreconditionChecks', 'TRStarted', 'TRCompleted', 'TRFailed', 'Completed', 'IncomingStarted', 'IncomingScreeningPrepare', 'IncomingWaitForFirstConfirmation', 'AMLIncomingStarted', 'AMLIncomingCompleted', 'AMLIncomingFailed', 'AMLIncomingInBackground', 'TRIncomingStarted', 'TRIncomingCompleted', 'TRIncomingFailed', 'IncomingCompleted']): + raise ValueError("must be one of enum values ('Started', 'NetworkConnectionAddressResolve', 'ScreeningPrepare', 'AMLStarted', 'AMLCompleted', 'AMLFailed', 'AMLInBackground', 'TRPreconditionChecks', 'TRStarted', 'TRCompleted', 'TRFailed', 'Completed', 'IncomingStarted', 'IncomingScreeningPrepare', 'IncomingWaitForFirstConfirmation', 'AMLIncomingStarted', 'AMLIncomingCompleted', 'AMLIncomingFailed', 'AMLIncomingInBackground', 'TRIncomingStarted', 'TRIncomingCompleted', 'TRIncomingFailed', 'IncomingCompleted')") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ComplianceResultFullPayload from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of each item in aml (list) + _items = [] + if self.aml: + for _item in self.aml: + if _item: + _items.append(_item.to_dict()) + _dict['aml'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tr (list) + _items = [] + if self.tr: + for _item in self.tr: + if _item: + _items.append(_item.to_dict()) + _dict['tr'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in aml_list (list) + _items = [] + if self.aml_list: + for _item in self.aml_list: + if _item: + _items.append(_item.to_dict()) + _dict['amlList'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in aml_registration (list) + _items = [] + if self.aml_registration: + for _item in self.aml_registration: + if _item: + _items.append(_item.to_dict()) + _dict['amlRegistration'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of ComplianceResultFullPayload from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "aml": [ComplianceScreeningResultFullPayload.from_dict(_item) for _item in obj["aml"]] if obj.get("aml") is not None else None, + "tr": [ComplianceScreeningResultFullPayload.from_dict(_item) for _item in obj["tr"]] if obj.get("tr") is not None else None, + "amlList": [ComplianceScreeningResultFullPayload.from_dict(_item) for _item in obj["amlList"]] if obj.get("amlList") is not None else None, + "status": obj.get("status"), + "amlRegistration": [AmlRegistrationResultFullPayload.from_dict(_item) for _item in obj["amlRegistration"]] if obj.get("amlRegistration") is not None else None + }) + return _obj + + diff --git a/fireblocks/models/compliance_screening_result_full_payload.py b/fireblocks/models/compliance_screening_result_full_payload.py new file mode 100644 index 00000000..cf038dbb --- /dev/null +++ b/fireblocks/models/compliance_screening_result_full_payload.py @@ -0,0 +1,106 @@ +# coding: utf-8 + +""" + Fireblocks API + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + + The version of the OpenAPI document: 1.6.2 + Contact: support@fireblocks.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional, Union +from typing import Optional, Set +from typing_extensions import Self + +class ComplianceScreeningResultFullPayload(BaseModel): + """ + ComplianceScreeningResultFullPayload + """ # noqa: E501 + provider: Optional[StrictStr] = None + payload: Optional[Dict[str, Any]] = Field(default=None, description="The payload of the screening result. The payload is a JSON object that contains the screening result. The payload is different for each screening provider. ") + bypass_reason: Optional[StrictStr] = Field(default=None, alias="bypassReason") + screening_status: Optional[StrictStr] = Field(default=None, alias="screeningStatus") + timestamp: Optional[Union[StrictFloat, StrictInt]] = None + __properties: ClassVar[List[str]] = ["provider", "payload", "bypassReason", "screeningStatus", "timestamp"] + + @field_validator('screening_status') + def screening_status_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['COMPLETED', 'PENDING', 'BYPASSED', 'FAILED', 'FROZEN']): + raise ValueError("must be one of enum values ('COMPLETED', 'PENDING', 'BYPASSED', 'FAILED', 'FROZEN')") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ComplianceScreeningResultFullPayload from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of ComplianceScreeningResultFullPayload from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "provider": obj.get("provider"), + "payload": obj.get("payload"), + "bypassReason": obj.get("bypassReason"), + "screeningStatus": obj.get("screeningStatus"), + "timestamp": obj.get("timestamp") + }) + return _obj + + diff --git a/fireblocks/models/exchange_type.py b/fireblocks/models/exchange_type.py index 453f7b48..0072b669 100644 --- a/fireblocks/models/exchange_type.py +++ b/fireblocks/models/exchange_type.py @@ -21,38 +21,54 @@ class ExchangeType(str, Enum): """ - ExchangeType + Exchange account's type """ """ allowed enum values """ - BINANCE = 'BINANCE' - BINANCEUS = 'BINANCEUS' - BITFINEX = 'BITFINEX' + INDEPENDENT_RESERVE = 'INDEPENDENT_RESERVE' + ENCLAVE_MARKETS = 'ENCLAVE_MARKETS' + BIT = 'BIT' + COINFLEX = 'COINFLEX' + KUCOIN = 'KUCOIN' + PXS = 'PXS' + LIQUID = 'LIQUID' BITHUMB = 'BITHUMB' - BITMEX = 'BITMEX' + BITFINEX = 'BITFINEX' BITSO = 'BITSO' BITSTAMP = 'BITSTAMP' - BITTREX = 'BITTREX' - CIRCLE = 'CIRCLE' - COINBASEPRO = 'COINBASEPRO' - COINMETRO = 'COINMETRO' - COINSPRO = 'COINSPRO' + KRAKEN = 'KRAKEN' + KRAKENINTL = 'KRAKENINTL' + BINANCE = 'BINANCE' + BINANCEUS = 'BINANCEUS' CRYPTOCOM = 'CRYPTOCOM' - DERIBIT = 'DERIBIT' - FTX = 'FTX' - FIXUS = 'FIXUS' - GEMINI = 'GEMINI' + BYBIT_V2 = 'BYBIT_V2' + COINBASEPRO = 'COINBASEPRO' + COINBASEPRIME = 'COINBASEPRIME' + COINBASEINTERNATIONAL = 'COINBASEINTERNATIONAL' + WHITEBIT = 'WHITEBIT' + COINBASEEXCHANGE = 'COINBASEEXCHANGE' + KORBIT = 'KORBIT' HITBTC = 'HITBTC' + GEMINI = 'GEMINI' + CIRCLE = 'CIRCLE' + BITMEX = 'BITMEX' HUOBI = 'HUOBI' - KORBIT = 'KORBIT' - KRAKEN = 'KRAKEN' - LIQUID = 'LIQUID' - POLONIEX = 'POLONIEX' - OKCOIN = 'OKCOIN' + DERIBIT = 'DERIBIT' + OKCOIN_V5 = 'OKCOIN_V5' OKEX = 'OKEX' - SEEDCX = 'SEEDCX' + COINMETRO = 'COINMETRO' + GATEIO = 'GATEIO' + SCRYPT = 'SCRYPT' + COINHAKO = 'COINHAKO' + LIGHTBIT = 'LIGHTBIT' + BULLISH = 'BULLISH' + CANVAS_CONNECT = 'CANVAS_CONNECT' + BITGET = 'BITGET' + LUNO = 'LUNO' + BIT_GENERA = 'BIT_GENERA' + TRANSFERO = 'TRANSFERO' @classmethod def from_json(cls, json_str: str) -> Self: diff --git a/fireblocks/models/get_exchange_accounts_credentials_public_key_response.py b/fireblocks/models/get_exchange_accounts_credentials_public_key_response.py index 931a334d..22c21df6 100644 --- a/fireblocks/models/get_exchange_accounts_credentials_public_key_response.py +++ b/fireblocks/models/get_exchange_accounts_credentials_public_key_response.py @@ -28,7 +28,8 @@ class GetExchangeAccountsCredentialsPublicKeyResponse(BaseModel): GetExchangeAccountsCredentialsPublicKeyResponse """ # noqa: E501 public_key: StrictStr = Field(description="Public key string", alias="publicKey") - __properties: ClassVar[List[str]] = ["publicKey"] + tenant_id: StrictStr = Field(description="Tenant identifier", alias="tenantId") + __properties: ClassVar[List[str]] = ["publicKey", "tenantId"] model_config = ConfigDict( populate_by_name=True, @@ -81,7 +82,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: return cls.model_validate(obj) _obj = cls.model_validate({ - "publicKey": obj.get("publicKey") + "publicKey": obj.get("publicKey"), + "tenantId": obj.get("tenantId") }) return _obj diff --git a/fireblocks/models/token_ownership_response.py b/fireblocks/models/token_ownership_response.py index dc971d9b..b2ee681f 100644 --- a/fireblocks/models/token_ownership_response.py +++ b/fireblocks/models/token_ownership_response.py @@ -53,8 +53,8 @@ class TokenOwnershipResponse(BaseModel): @field_validator('blockchain_descriptor') def blockchain_descriptor_validate_enum(cls, value): """Validates the enum""" - if value not in set(['ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA_TEST']): - raise ValueError("must be one of enum values ('ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA_TEST')") + if value not in set(['ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX']): + raise ValueError("must be one of enum values ('ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX')") return value @field_validator('status') diff --git a/fireblocks/models/token_response.py b/fireblocks/models/token_response.py index 6ce4ac58..45d3db10 100644 --- a/fireblocks/models/token_response.py +++ b/fireblocks/models/token_response.py @@ -46,8 +46,8 @@ class TokenResponse(BaseModel): @field_validator('blockchain_descriptor') def blockchain_descriptor_validate_enum(cls, value): """Validates the enum""" - if value not in set(['ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA_TEST']): - raise ValueError("must be one of enum values ('ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA_TEST')") + if value not in set(['ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX']): + raise ValueError("must be one of enum values ('ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX')") return value model_config = ConfigDict( diff --git a/fireblocks/models/webhook_event.py b/fireblocks/models/webhook_event.py index be21c8a5..5f429bbb 100644 --- a/fireblocks/models/webhook_event.py +++ b/fireblocks/models/webhook_event.py @@ -31,18 +31,23 @@ class WebhookEvent(str, Enum): TRANSACTION_DOT_STATUS_DOT_UPDATED = 'transaction.status.updated' TRANSACTION_DOT_APPROVAL_STATUS_DOT_UPDATED = 'transaction.approval_status.updated' EXTERNAL_WALLET_DOT_ASSET_DOT_ADDED = 'external_wallet.asset.added' + EXTERNAL_WALLET_DOT_ASSET_DOT_REMOVED = 'external_wallet.asset.removed' INTERNAL_WALLET_DOT_ASSET_DOT_ADDED = 'internal_wallet.asset.added' INTERNAL_WALLET_DOT_ASSET_DOT_REMOVED = 'internal_wallet.asset.removed' CONTRACT_WALLET_DOT_ASSET_DOT_ADDED = 'contract_wallet.asset.added' CONTRACT_WALLET_DOT_ASSET_DOT_REMOVED = 'contract_wallet.asset.removed' VAULT_ACCOUNT_DOT_CREATED = 'vault_account.created' - VAULT_ACCOUNT_DOT_ASSET_DOT_ADDED = 'vault_account.asset.added' + VAULT_ACCOUNT_DOT_ASSET_DOT_LISTED = 'vault_account.asset.listed' VAULT_ACCOUNT_DOT_ASSET_DOT_BALANCE_UPDATED = 'vault_account.asset.balance_updated' VAULT_ACCOUNT_DOT_NFT_DOT_BALANCE_UPDATED = 'vault_account.nft.balance_updated' - EMBEDDED_WALLET_DOT_ASSET_DOT_ADDED = 'embedded_wallet.asset.added' + EMBEDDED_WALLET_DOT_CREATED = 'embedded_wallet.created' EMBEDDED_WALLET_DOT_ASSET_DOT_BALANCE_UPDATED = 'embedded_wallet.asset.balance_updated' - EXCHANGE_ACCOUNT_DOT_ADDED = 'exchange_account.added' - FIAT_ACCOUNT_DOT_ADDED = 'fiat_account.added' + EMBEDDED_WALLET_DOT_ASSET_DOT_LISTED = 'embedded_wallet.asset.listed' + EMBEDDED_WALLET_DOT_ACCOUNT_DOT_CREATED = 'embedded_wallet.account.created' + EMBEDDED_WALLET_DOT_DEVICE_DOT_ADDED = 'embedded_wallet.device.added' + EMBEDDED_WALLET_DOT_TRANSACTION_DOT_UPDATED = 'embedded_wallet.transaction.updated' + EXCHANGE_ACCOUNT_DOT_CONNECTED = 'exchange_account.connected' + FIAT_ACCOUNT_DOT_CONNECTED = 'fiat_account.connected' TICKET_DOT_CREATED = 'ticket.created' TICKET_DOT_SUBMITTED = 'ticket.submitted' TICKET_DOT_EXPIRED = 'ticket.expired' @@ -62,6 +67,8 @@ class WebhookEvent(str, Enum): TICKET_DOT_TERM_DOT_FUNDING_FAILED = 'ticket.term.funding_failed' TICKET_DOT_TERM_DOT_FUNDING_COMPLETED = 'ticket.term.funding_completed' TICKET_DOT_TERM_DOT_TRANSACTION_STATUS_CHANGED = 'ticket.term.transaction_status_changed' + SETTLEMENT_DOT_CREATED = 'settlement.created' + COLLATERAL_DOT_STATUS_DOT_UPDATED = 'collateral.status.updated' @classmethod def from_json(cls, json_str: str) -> Self: diff --git a/pyproject.toml b/pyproject.toml index dd60181d..176ccaff 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "fireblocks" -version = "6.0.0" +version = "0.0.0" description = "Fireblocks API" authors = ["Fireblocks "] license = "MIT License" diff --git a/setup.py b/setup.py index 2468569c..f0a9f52b 100644 --- a/setup.py +++ b/setup.py @@ -23,7 +23,7 @@ # prerequisite: setuptools # http://pypi.python.org/pypi/setuptools NAME = "fireblocks" -VERSION = "6.0.0" +VERSION = "0.0.0" PYTHON_REQUIRES = ">=3.8" REQUIRES = [ "urllib3 >= 1.25.3, < 2.1.0", diff --git a/test/test_add_exchange_account_request.py b/test/test_add_exchange_account_request.py new file mode 100644 index 00000000..958decd4 --- /dev/null +++ b/test/test_add_exchange_account_request.py @@ -0,0 +1,60 @@ +# coding: utf-8 + +""" + Fireblocks API + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + + The version of the OpenAPI document: 1.6.2 + Contact: support@fireblocks.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from fireblocks.models.add_exchange_account_request import AddExchangeAccountRequest + + +class TestAddExchangeAccountRequest(unittest.TestCase): + """AddExchangeAccountRequest unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> AddExchangeAccountRequest: + """Test AddExchangeAccountRequest + include_option 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 `AddExchangeAccountRequest` + """ + model = AddExchangeAccountRequest() + if include_optional: + return AddExchangeAccountRequest( + exchange_type = 'INDEPENDENT_RESERVE', + name = '', + creds = '', + key = '', + main_account_id = '' + ) + else: + return AddExchangeAccountRequest( + exchange_type = 'INDEPENDENT_RESERVE', + name = '', + ) + """ + + def testAddExchangeAccountRequest(self): + """Test AddExchangeAccountRequest""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + + +if __name__ == "__main__": + unittest.main() diff --git a/test/test_add_exchange_account_response.py b/test/test_add_exchange_account_response.py new file mode 100644 index 00000000..46d440ef --- /dev/null +++ b/test/test_add_exchange_account_response.py @@ -0,0 +1,56 @@ +# coding: utf-8 + +""" + Fireblocks API + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + + The version of the OpenAPI document: 1.6.2 + Contact: support@fireblocks.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from fireblocks.models.add_exchange_account_response import AddExchangeAccountResponse + + +class TestAddExchangeAccountResponse(unittest.TestCase): + """AddExchangeAccountResponse unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> AddExchangeAccountResponse: + """Test AddExchangeAccountResponse + include_option 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 `AddExchangeAccountResponse` + """ + model = AddExchangeAccountResponse() + if include_optional: + return AddExchangeAccountResponse( + id = '', + name = '', + exchange_type = 'INDEPENDENT_RESERVE' + ) + else: + return AddExchangeAccountResponse( + ) + """ + + def testAddExchangeAccountResponse(self): + """Test AddExchangeAccountResponse""" + # 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_aml_registration_result_full_payload.py b/test/test_aml_registration_result_full_payload.py new file mode 100644 index 00000000..37523e76 --- /dev/null +++ b/test/test_aml_registration_result_full_payload.py @@ -0,0 +1,58 @@ +# coding: utf-8 + +""" + Fireblocks API + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + + The version of the OpenAPI document: 1.6.2 + Contact: support@fireblocks.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from fireblocks.models.aml_registration_result_full_payload import ( + AmlRegistrationResultFullPayload, +) + + +class TestAmlRegistrationResultFullPayload(unittest.TestCase): + """AmlRegistrationResultFullPayload unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> AmlRegistrationResultFullPayload: + """Test AmlRegistrationResultFullPayload + include_option 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 `AmlRegistrationResultFullPayload` + """ + model = AmlRegistrationResultFullPayload() + if include_optional: + return AmlRegistrationResultFullPayload( + provider = '', + success = True, + timestamp = 1.337 + ) + else: + return AmlRegistrationResultFullPayload( + ) + """ + + def testAmlRegistrationResultFullPayload(self): + """Test AmlRegistrationResultFullPayload""" + # 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_compliance_api.py b/test/test_compliance_api.py index 7e76348e..99a825ba 100644 --- a/test/test_compliance_api.py +++ b/test/test_compliance_api.py @@ -48,6 +48,13 @@ def test_get_post_screening_policy(self) -> None: """ pass + def test_get_screening_full_details(self) -> None: + """Test case for get_screening_full_details + + Provides all the compliance details for the given screened transaction. + """ + pass + def test_get_screening_policy(self) -> None: """Test case for get_screening_policy diff --git a/test/test_compliance_result_full_payload.py b/test/test_compliance_result_full_payload.py new file mode 100644 index 00000000..d91d662c --- /dev/null +++ b/test/test_compliance_result_full_payload.py @@ -0,0 +1,84 @@ +# coding: utf-8 + +""" + Fireblocks API + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + + The version of the OpenAPI document: 1.6.2 + Contact: support@fireblocks.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from fireblocks.models.compliance_result_full_payload import ComplianceResultFullPayload + + +class TestComplianceResultFullPayload(unittest.TestCase): + """ComplianceResultFullPayload unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> ComplianceResultFullPayload: + """Test ComplianceResultFullPayload + include_option 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 `ComplianceResultFullPayload` + """ + model = ComplianceResultFullPayload() + if include_optional: + return ComplianceResultFullPayload( + aml = [ + fireblocks.models.compliance_screening_result_full_payload.ComplianceScreeningResultFullPayload( + provider = '', + payload = fireblocks.models.payload.payload(), + bypass_reason = '', + screening_status = 'COMPLETED', + timestamp = 1.337, ) + ], + tr = [ + fireblocks.models.compliance_screening_result_full_payload.ComplianceScreeningResultFullPayload( + provider = '', + payload = fireblocks.models.payload.payload(), + bypass_reason = '', + screening_status = 'COMPLETED', + timestamp = 1.337, ) + ], + aml_list = [ + fireblocks.models.compliance_screening_result_full_payload.ComplianceScreeningResultFullPayload( + provider = '', + payload = fireblocks.models.payload.payload(), + bypass_reason = '', + screening_status = 'COMPLETED', + timestamp = 1.337, ) + ], + status = 'Started', + aml_registration = [ + fireblocks.models.aml_registration_result_full_payload.AmlRegistrationResultFullPayload( + provider = '', + success = True, + timestamp = 1.337, ) + ] + ) + else: + return ComplianceResultFullPayload( + ) + """ + + def testComplianceResultFullPayload(self): + """Test ComplianceResultFullPayload""" + # 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_compliance_screening_result_full_payload.py b/test/test_compliance_screening_result_full_payload.py new file mode 100644 index 00000000..9171d8ca --- /dev/null +++ b/test/test_compliance_screening_result_full_payload.py @@ -0,0 +1,60 @@ +# coding: utf-8 + +""" + Fireblocks API + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + + The version of the OpenAPI document: 1.6.2 + Contact: support@fireblocks.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from fireblocks.models.compliance_screening_result_full_payload import ( + ComplianceScreeningResultFullPayload, +) + + +class TestComplianceScreeningResultFullPayload(unittest.TestCase): + """ComplianceScreeningResultFullPayload unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> ComplianceScreeningResultFullPayload: + """Test ComplianceScreeningResultFullPayload + include_option 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 `ComplianceScreeningResultFullPayload` + """ + model = ComplianceScreeningResultFullPayload() + if include_optional: + return ComplianceScreeningResultFullPayload( + provider = '', + payload = None, + bypass_reason = '', + screening_status = 'COMPLETED', + timestamp = 1.337 + ) + else: + return ComplianceScreeningResultFullPayload( + ) + """ + + def testComplianceScreeningResultFullPayload(self): + """Test ComplianceScreeningResultFullPayload""" + # 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_exchange_account.py b/test/test_exchange_account.py index f95ecd40..e89fe735 100644 --- a/test/test_exchange_account.py +++ b/test/test_exchange_account.py @@ -38,7 +38,7 @@ def make_instance(self, include_optional) -> ExchangeAccount: if include_optional: return ExchangeAccount( id = '', - type = 'BINANCE', + type = 'INDEPENDENT_RESERVE', name = '', status = '', assets = [ diff --git a/test/test_exchange_accounts_api.py b/test/test_exchange_accounts_api.py index 0d63ebda..2735bee1 100644 --- a/test/test_exchange_accounts_api.py +++ b/test/test_exchange_accounts_api.py @@ -27,6 +27,13 @@ def setUp(self) -> None: def tearDown(self) -> None: pass + def test_add_exchange_account(self) -> None: + """Test case for add_exchange_account + + Add an exchange account + """ + pass + def test_convert_assets(self) -> None: """Test case for convert_assets @@ -48,6 +55,13 @@ def test_get_exchange_account_asset(self) -> None: """ pass + def test_get_exchange_accounts_credentials_public_key(self) -> None: + """Test case for get_exchange_accounts_credentials_public_key + + Get public key to encrypt exchange credentials + """ + pass + def test_get_paged_exchange_accounts(self) -> None: """Test case for get_paged_exchange_accounts diff --git a/test/test_exchange_accounts_paged.py b/test/test_exchange_accounts_paged.py index b0a0c772..0571be27 100644 --- a/test/test_exchange_accounts_paged.py +++ b/test/test_exchange_accounts_paged.py @@ -40,7 +40,7 @@ def make_instance(self, include_optional) -> ExchangeAccountsPaged: exchange_account = [ fireblocks.models.exchange_account.ExchangeAccount( id = '', - type = 'BINANCE', + type = 'INDEPENDENT_RESERVE', name = '', status = '', assets = [ diff --git a/test/test_get_exchange_accounts_credentials_public_key_response.py b/test/test_get_exchange_accounts_credentials_public_key_response.py index 67ed8074..a61158de 100644 --- a/test/test_get_exchange_accounts_credentials_public_key_response.py +++ b/test/test_get_exchange_accounts_credentials_public_key_response.py @@ -41,11 +41,13 @@ def make_instance( model = GetExchangeAccountsCredentialsPublicKeyResponse() if include_optional: return GetExchangeAccountsCredentialsPublicKeyResponse( - public_key = '' + public_key = '', + tenant_id = '' ) else: return GetExchangeAccountsCredentialsPublicKeyResponse( public_key = '', + tenant_id = '', ) """