diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES
index 41125cf0..d32d1317 100644
--- a/.openapi-generator/FILES
+++ b/.openapi-generator/FILES
@@ -10,6 +10,7 @@ docs/Account.md
docs/AccountAccess.md
docs/AccountBase.md
docs/AccountBasedAccessProvider.md
+docs/AccountBasedAccessProviderDetails.md
docs/AccountConfig.md
docs/AccountHolderDetails.md
docs/AccountIdentifier.md
@@ -17,6 +18,9 @@ docs/AccountProviderID.md
docs/AccountReference.md
docs/AccountType.md
docs/AccountType2.md
+docs/AchAccountType.md
+docs/AchAddress.md
+docs/AchDestination.md
docs/AchPaymentInfo.md
docs/AdapterProcessingResult.md
docs/AddAbiRequestDto.md
@@ -31,16 +35,25 @@ docs/AdditionalInfo.md
docs/AdditionalInfoRequest.md
docs/AdditionalInfoRequestAdditionalInfo.md
docs/AddressNotAvailableError.md
+docs/AlertExposureTypeEnum.md
+docs/AlertLevelEnum.md
+docs/AmlAlert.md
+docs/AmlMatchedRule.md
docs/AmlRegistrationResult.md
docs/AmlRegistrationResultFullPayload.md
+docs/AmlResult.md
docs/AmlScreeningResult.md
+docs/AmlStatusEnum.md
docs/AmlVerdictManualRequest.md
docs/AmlVerdictManualResponse.md
docs/AmountAndChainDescriptor.md
+docs/AmountConfig.md
+docs/AmountConfigCurrency.md
docs/AmountInfo.md
docs/AmountOverTimeConfig.md
-docs/AmountOverTimeConfigRange.md
docs/AmountRange.md
+docs/AmountRangeMinMax.md
+docs/AmountRangeMinMax2.md
docs/ApiKey.md
docs/ApiKeysPaginatedResponse.md
docs/ApiUserApi.md
@@ -229,6 +242,7 @@ docs/CreateWalletRequest.md
docs/CreateWebhookRequest.md
docs/CreateWorkflowExecutionRequestParamsInner.md
docs/CustomRoutingDest.md
+docs/DAppAddressConfig.md
docs/DVPSettlement.md
docs/DefaultNetworkRoutingDest.md
docs/Delegation.md
@@ -250,6 +264,7 @@ docs/DestinationTransferPeerPath.md
docs/DestinationTransferPeerPathResponse.md
docs/DirectAccess.md
docs/DirectAccessProvider.md
+docs/DirectAccessProviderDetails.md
docs/DisbursementAmountInstruction.md
docs/DisbursementConfigOperation.md
docs/DisbursementInstruction.md
@@ -329,11 +344,13 @@ docs/FeeBreakdownOneOf1.md
docs/FeeInfo.md
docs/FeeLevel.md
docs/FeePayerInfo.md
+docs/FeePropertiesDetails.md
docs/FetchAbiRequestDto.md
docs/FiatAccount.md
docs/FiatAccountType.md
docs/FiatAccountsApi.md
docs/FiatAsset.md
+docs/FiatDestination.md
docs/FiatTransfer.md
docs/FixedFee.md
docs/FreezeTransactionResponse.md
@@ -369,6 +386,8 @@ docs/GetValidationKeyResponseDto.md
docs/GetWhitelistIpAddressesResponse.md
docs/GetWorkspaceStatusResponse.md
docs/HttpContractDoesNotExistError.md
+docs/IbanAddress.md
+docs/IbanDestination.md
docs/IbanPaymentInfo.md
docs/Identification.md
docs/IdlType.md
@@ -420,17 +439,23 @@ docs/LegacyPublishResult.md
docs/LegacySrcOrDestAttributesInner.md
docs/LimitExecutionRequestDetails.md
docs/LimitExecutionResponseDetails.md
+docs/LimitTypeDetails.md
docs/ListAssetsResponse.md
docs/ListBlockchainsResponse.md
docs/ListOwnedCollectionsResponse.md
docs/ListOwnedTokensResponse.md
+docs/LocalBankTransferAfricaAddress.md
+docs/LocalBankTransferAfricaDestination.md
docs/Manifest.md
docs/MarketExecutionRequestDetails.md
docs/MarketExecutionResponseDetails.md
docs/MarketRequoteRequestDetails.md
+docs/MarketTypeDetails.md
docs/MediaEntityResponse.md
docs/MergeStakeAccountsRequest.md
docs/MergeStakeAccountsResponse.md
+docs/MobileMoneyAddress.md
+docs/MobileMoneyDestination.md
docs/ModifySigningKeyAgentIdDto.md
docs/ModifySigningKeyDto.md
docs/ModifyValidationKeyDto.md
@@ -465,6 +490,7 @@ docs/OneTimeAddressAccount.md
docs/OneTimeAddressReference.md
docs/OperationExecutionFailure.md
docs/OrderDetails.md
+docs/OrderSide.md
docs/OrderStatus.md
docs/OrderSummary.md
docs/PaginatedAddressResponse.md
@@ -486,6 +512,7 @@ docs/PaymentAccount.md
docs/PaymentAccountResponse.md
docs/PaymentAccountType.md
docs/PaymentInstructions.md
+docs/PaymentInstructionsDetails.md
docs/PaymentsPayoutApi.md
docs/PayoutInitMethod.md
docs/PayoutInstruction.md
@@ -498,11 +525,14 @@ docs/PeerAdapterInfo.md
docs/PeerType.md
docs/PersonalIdentification.md
docs/PersonalIdentificationFullName.md
+docs/PixAddress.md
+docs/PixDestination.md
docs/PixPaymentInfo.md
docs/PlatformAccount.md
docs/Players.md
docs/PolicyAndValidationResponse.md
docs/PolicyCheckResult.md
+docs/PolicyCurrency.md
docs/PolicyEditorBetaApi.md
docs/PolicyEditorV2BetaApi.md
docs/PolicyMetadata.md
@@ -512,8 +542,11 @@ docs/PolicyRule.md
docs/PolicyRuleCheckResult.md
docs/PolicyRuleError.md
docs/PolicyStatus.md
+docs/PolicyTag.md
docs/PolicyType.md
docs/PolicyValidation.md
+docs/PolicyVerdictActionEnum.md
+docs/PolicyVerdictActionEnum2.md
docs/PostOrderSettlement.md
docs/PostalAddress.md
docs/PreScreening.md
@@ -528,11 +561,13 @@ docs/PublishResult.md
docs/Quote.md
docs/QuoteExecutionRequestDetails.md
docs/QuoteExecutionResponseDetails.md
+docs/QuoteExecutionTypeDetails.md
docs/QuoteExecutionWithRequoteRequestDetails.md
-docs/QuoteExecutionWithRequoteRequestDetailsAllOfReQuote.md
docs/QuoteExecutionWithRequoteResponseDetails.md
-docs/QuoteExecutionWithRequoteResponseDetailsAllOfReQuote.md
+docs/QuotePropertiesDetails.md
docs/QuotesResponse.md
+docs/ReQuoteDetails.md
+docs/ReQuoteDetailsReQuote.md
docs/ReadAbiFunction.md
docs/ReadCallFunctionDto.md
docs/ReadCallFunctionDtoAbiFunction.md
@@ -562,8 +597,14 @@ docs/RespondToConnectionRequest.md
docs/RetryRequoteRequestDetails.md
docs/RewardInfo.md
docs/RewardsInfo.md
+docs/SEPAAddress.md
+docs/SEPADestination.md
docs/SOLAccount.md
docs/SOLAccountWithValue.md
+docs/ScreeningAlertExposureTypeEnum.md
+docs/ScreeningAmlAlert.md
+docs/ScreeningAmlMatchedRule.md
+docs/ScreeningAmlResult.md
docs/ScreeningConfigurationsRequest.md
docs/ScreeningMetadataConfig.md
docs/ScreeningOperationExecution.md
@@ -572,9 +613,20 @@ docs/ScreeningOperationFailure.md
docs/ScreeningOperationType.md
docs/ScreeningPolicyResponse.md
docs/ScreeningProviderRulesConfigurationResponse.md
+docs/ScreeningRiskLevelEnum.md
+docs/ScreeningTRLinkAmount.md
+docs/ScreeningTRLinkMissingTrmDecision.md
+docs/ScreeningTRLinkMissingTrmRule.md
+docs/ScreeningTRLinkPostScreeningRule.md
+docs/ScreeningTRLinkPrescreeningRule.md
+docs/ScreeningTRLinkRuleBase.md
+docs/ScreeningTravelRuleMatchedRule.md
+docs/ScreeningTravelRulePrescreeningRule.md
+docs/ScreeningTravelRuleResult.md
docs/ScreeningUpdateConfigurations.md
docs/ScreeningValidationFailure.md
docs/ScreeningVerdict.md
+docs/ScreeningVerdictEnum.md
docs/ScreeningVerdictMatchedRule.md
docs/SearchNetworkIdsResponse.md
docs/SepaPaymentInfo.md
@@ -641,12 +693,15 @@ docs/SolanaConfig.md
docs/SolanaInstruction.md
docs/SolanaInstructionWithValue.md
docs/SolanaSimpleCreateParams.md
+docs/SourceConfig.md
docs/SourceTransferPeerPath.md
docs/SourceTransferPeerPathResponse.md
docs/SpamOwnershipResponse.md
docs/SpamTokenResponse.md
+docs/SpeiAddress.md
docs/SpeiAdvancedPaymentInfo.md
docs/SpeiBasicPaymentInfo.md
+docs/SpeiDestination.md
docs/SplitRequest.md
docs/SplitResponse.md
docs/StakeRequest.md
@@ -655,8 +710,34 @@ docs/StakingApi.md
docs/StakingProvider.md
docs/Status.md
docs/StellarRippleCreateParamsDto.md
+docs/SwiftAddress.md
+docs/SwiftDestination.md
docs/SystemMessageInfo.md
+docs/TRLinkAmount.md
+docs/TRLinkMissingTrmAction.md
+docs/TRLinkMissingTrmActionEnum.md
+docs/TRLinkMissingTrmDecision.md
+docs/TRLinkMissingTrmRule.md
+docs/TRLinkPostScreeningRule.md
+docs/TRLinkPreScreeningAction.md
+docs/TRLinkPreScreeningActionEnum.md
+docs/TRLinkPreScreeningRule.md
+docs/TRLinkProviderResult.md
+docs/TRLinkProviderResultWithRule.md
+docs/TRLinkProviderResultWithRule2.md
+docs/TRLinkRegistrationResult.md
+docs/TRLinkRegistrationResultFullPayload.md
+docs/TRLinkRegistrationStatus.md
+docs/TRLinkRegistrationStatusEnum.md
+docs/TRLinkResult.md
+docs/TRLinkResultFullPayload.md
+docs/TRLinkRuleBase.md
+docs/TRLinkTrmScreeningStatus.md
+docs/TRLinkTrmScreeningStatusEnum.md
+docs/TRLinkVerdict.md
+docs/TRLinkVerdictEnum.md
docs/Tag.md
+docs/TagAttachmentOperationAction.md
docs/TagsApi.md
docs/TagsPagedResponse.md
docs/Task.md
@@ -686,8 +767,10 @@ docs/TradingErrorResponse.md
docs/TradingErrorResponseError.md
docs/TradingProvider.md
docs/Transaction.md
+docs/TransactionDirection.md
docs/TransactionFee.md
docs/TransactionOperation.md
+docs/TransactionOperationEnum.md
docs/TransactionReceiptResponse.md
docs/TransactionRequest.md
docs/TransactionRequestAmount.md
@@ -715,19 +798,24 @@ docs/TransferOperationPreviewOutput.md
docs/TransferOperationType.md
docs/TransferPeerPathSubType.md
docs/TransferPeerPathType.md
+docs/TransferPeerSubTypeEnum.md
+docs/TransferPeerTypeEnum.md
docs/TransferRail.md
docs/TransferReceipt.md
docs/TransferValidationFailure.md
+docs/TravelRuleActionEnum.md
docs/TravelRuleAddress.md
docs/TravelRuleApi.md
docs/TravelRuleCreateTransactionRequest.md
docs/TravelRuleDateAndPlaceOfBirth.md
+docs/TravelRuleDirectionEnum.md
docs/TravelRuleGeographicAddress.md
docs/TravelRuleGetAllVASPsResponse.md
docs/TravelRuleIssuer.md
docs/TravelRuleIssuers.md
docs/TravelRuleLegalPerson.md
docs/TravelRuleLegalPersonNameIdentifier.md
+docs/TravelRuleMatchedRule.md
docs/TravelRuleNationalIdentification.md
docs/TravelRuleNaturalNameIdentifier.md
docs/TravelRuleNaturalPerson.md
@@ -736,6 +824,9 @@ docs/TravelRuleOwnershipProof.md
docs/TravelRulePerson.md
docs/TravelRulePiiIVMS.md
docs/TravelRulePolicyRuleResponse.md
+docs/TravelRulePrescreeningRule.md
+docs/TravelRuleResult.md
+docs/TravelRuleStatusEnum.md
docs/TravelRuleTransactionBlockchainInfo.md
docs/TravelRuleUpdateVASPDetails.md
docs/TravelRuleVASP.md
@@ -753,7 +844,10 @@ docs/TravelRuleValidatePiiIVMS.md
docs/TravelRuleValidateTransactionRequest.md
docs/TravelRuleValidateTransactionResponse.md
docs/TravelRuleVaspForVault.md
+docs/TravelRuleVerdictEnum.md
docs/TxLog.md
+docs/USWireAddress.md
+docs/USWireDestination.md
docs/UnfreezeTransactionResponse.md
docs/UnmanagedWallet.md
docs/UnspentInput.md
@@ -785,8 +879,13 @@ docs/ValidatedTransactionsForRescan.md
docs/ValidationKeyDto.md
docs/Validator.md
docs/VaultAccount.md
+docs/VaultAccountTagAttachmentOperation.md
+docs/VaultAccountTagAttachmentPendingOperation.md
+docs/VaultAccountTagAttachmentRejectedOperation.md
docs/VaultAccountsPagedResponse.md
docs/VaultAccountsPagedResponsePaging.md
+docs/VaultAccountsTagAttachmentOperationsRequest.md
+docs/VaultAccountsTagAttachmentOperationsResponse.md
docs/VaultAccountsTagAttachmentsRequest.md
docs/VaultActionStatus.md
docs/VaultAsset.md
@@ -800,6 +899,7 @@ docs/WalletAssetAdditionalInfo.md
docs/Web3ConnectionsApi.md
docs/Webhook.md
docs/WebhookEvent.md
+docs/WebhookMetric.md
docs/WebhookPaginatedResponse.md
docs/WebhooksApi.md
docs/WebhooksV2Api.md
@@ -877,6 +977,7 @@ fireblocks/models/account.py
fireblocks/models/account_access.py
fireblocks/models/account_base.py
fireblocks/models/account_based_access_provider.py
+fireblocks/models/account_based_access_provider_details.py
fireblocks/models/account_config.py
fireblocks/models/account_holder_details.py
fireblocks/models/account_identifier.py
@@ -884,6 +985,9 @@ fireblocks/models/account_provider_id.py
fireblocks/models/account_reference.py
fireblocks/models/account_type.py
fireblocks/models/account_type2.py
+fireblocks/models/ach_account_type.py
+fireblocks/models/ach_address.py
+fireblocks/models/ach_destination.py
fireblocks/models/ach_payment_info.py
fireblocks/models/adapter_processing_result.py
fireblocks/models/add_abi_request_dto.py
@@ -898,16 +1002,25 @@ fireblocks/models/additional_info.py
fireblocks/models/additional_info_request.py
fireblocks/models/additional_info_request_additional_info.py
fireblocks/models/address_not_available_error.py
+fireblocks/models/alert_exposure_type_enum.py
+fireblocks/models/alert_level_enum.py
+fireblocks/models/aml_alert.py
+fireblocks/models/aml_matched_rule.py
fireblocks/models/aml_registration_result.py
fireblocks/models/aml_registration_result_full_payload.py
+fireblocks/models/aml_result.py
fireblocks/models/aml_screening_result.py
+fireblocks/models/aml_status_enum.py
fireblocks/models/aml_verdict_manual_request.py
fireblocks/models/aml_verdict_manual_response.py
fireblocks/models/amount_and_chain_descriptor.py
+fireblocks/models/amount_config.py
+fireblocks/models/amount_config_currency.py
fireblocks/models/amount_info.py
fireblocks/models/amount_over_time_config.py
-fireblocks/models/amount_over_time_config_range.py
fireblocks/models/amount_range.py
+fireblocks/models/amount_range_min_max.py
+fireblocks/models/amount_range_min_max2.py
fireblocks/models/api_key.py
fireblocks/models/api_keys_paginated_response.py
fireblocks/models/api_user.py
@@ -1085,6 +1198,7 @@ fireblocks/models/create_wallet_request.py
fireblocks/models/create_webhook_request.py
fireblocks/models/create_workflow_execution_request_params_inner.py
fireblocks/models/custom_routing_dest.py
+fireblocks/models/d_app_address_config.py
fireblocks/models/default_network_routing_dest.py
fireblocks/models/delegation.py
fireblocks/models/delegation_summary.py
@@ -1104,6 +1218,7 @@ fireblocks/models/destination_transfer_peer_path.py
fireblocks/models/destination_transfer_peer_path_response.py
fireblocks/models/direct_access.py
fireblocks/models/direct_access_provider.py
+fireblocks/models/direct_access_provider_details.py
fireblocks/models/disbursement_amount_instruction.py
fireblocks/models/disbursement_config_operation.py
fireblocks/models/disbursement_instruction.py
@@ -1181,10 +1296,12 @@ fireblocks/models/fee_breakdown_one_of1.py
fireblocks/models/fee_info.py
fireblocks/models/fee_level.py
fireblocks/models/fee_payer_info.py
+fireblocks/models/fee_properties_details.py
fireblocks/models/fetch_abi_request_dto.py
fireblocks/models/fiat_account.py
fireblocks/models/fiat_account_type.py
fireblocks/models/fiat_asset.py
+fireblocks/models/fiat_destination.py
fireblocks/models/fiat_transfer.py
fireblocks/models/fixed_fee.py
fireblocks/models/freeze_transaction_response.py
@@ -1219,6 +1336,8 @@ fireblocks/models/get_validation_key_response_dto.py
fireblocks/models/get_whitelist_ip_addresses_response.py
fireblocks/models/get_workspace_status_response.py
fireblocks/models/http_contract_does_not_exist_error.py
+fireblocks/models/iban_address.py
+fireblocks/models/iban_destination.py
fireblocks/models/iban_payment_info.py
fireblocks/models/identification.py
fireblocks/models/idl_type.py
@@ -1266,17 +1385,23 @@ fireblocks/models/legacy_publish_result.py
fireblocks/models/legacy_src_or_dest_attributes_inner.py
fireblocks/models/limit_execution_request_details.py
fireblocks/models/limit_execution_response_details.py
+fireblocks/models/limit_type_details.py
fireblocks/models/list_assets_response.py
fireblocks/models/list_blockchains_response.py
fireblocks/models/list_owned_collections_response.py
fireblocks/models/list_owned_tokens_response.py
+fireblocks/models/local_bank_transfer_africa_address.py
+fireblocks/models/local_bank_transfer_africa_destination.py
fireblocks/models/manifest.py
fireblocks/models/market_execution_request_details.py
fireblocks/models/market_execution_response_details.py
fireblocks/models/market_requote_request_details.py
+fireblocks/models/market_type_details.py
fireblocks/models/media_entity_response.py
fireblocks/models/merge_stake_accounts_request.py
fireblocks/models/merge_stake_accounts_response.py
+fireblocks/models/mobile_money_address.py
+fireblocks/models/mobile_money_destination.py
fireblocks/models/modify_signing_key_agent_id_dto.py
fireblocks/models/modify_signing_key_dto.py
fireblocks/models/modify_validation_key_dto.py
@@ -1307,6 +1432,7 @@ fireblocks/models/one_time_address_account.py
fireblocks/models/one_time_address_reference.py
fireblocks/models/operation_execution_failure.py
fireblocks/models/order_details.py
+fireblocks/models/order_side.py
fireblocks/models/order_status.py
fireblocks/models/order_summary.py
fireblocks/models/paginated_address_response.py
@@ -1328,6 +1454,7 @@ fireblocks/models/payment_account.py
fireblocks/models/payment_account_response.py
fireblocks/models/payment_account_type.py
fireblocks/models/payment_instructions.py
+fireblocks/models/payment_instructions_details.py
fireblocks/models/payout_init_method.py
fireblocks/models/payout_instruction.py
fireblocks/models/payout_instruction_response.py
@@ -1339,11 +1466,14 @@ fireblocks/models/peer_adapter_info.py
fireblocks/models/peer_type.py
fireblocks/models/personal_identification.py
fireblocks/models/personal_identification_full_name.py
+fireblocks/models/pix_address.py
+fireblocks/models/pix_destination.py
fireblocks/models/pix_payment_info.py
fireblocks/models/platform_account.py
fireblocks/models/players.py
fireblocks/models/policy_and_validation_response.py
fireblocks/models/policy_check_result.py
+fireblocks/models/policy_currency.py
fireblocks/models/policy_metadata.py
fireblocks/models/policy_operator.py
fireblocks/models/policy_response.py
@@ -1351,8 +1481,11 @@ fireblocks/models/policy_rule.py
fireblocks/models/policy_rule_check_result.py
fireblocks/models/policy_rule_error.py
fireblocks/models/policy_status.py
+fireblocks/models/policy_tag.py
fireblocks/models/policy_type.py
fireblocks/models/policy_validation.py
+fireblocks/models/policy_verdict_action_enum.py
+fireblocks/models/policy_verdict_action_enum2.py
fireblocks/models/post_order_settlement.py
fireblocks/models/postal_address.py
fireblocks/models/pre_screening.py
@@ -1367,11 +1500,13 @@ fireblocks/models/publish_result.py
fireblocks/models/quote.py
fireblocks/models/quote_execution_request_details.py
fireblocks/models/quote_execution_response_details.py
+fireblocks/models/quote_execution_type_details.py
fireblocks/models/quote_execution_with_requote_request_details.py
-fireblocks/models/quote_execution_with_requote_request_details_all_of_re_quote.py
fireblocks/models/quote_execution_with_requote_response_details.py
-fireblocks/models/quote_execution_with_requote_response_details_all_of_re_quote.py
+fireblocks/models/quote_properties_details.py
fireblocks/models/quotes_response.py
+fireblocks/models/re_quote_details.py
+fireblocks/models/re_quote_details_re_quote.py
fireblocks/models/read_abi_function.py
fireblocks/models/read_call_function_dto.py
fireblocks/models/read_call_function_dto_abi_function.py
@@ -1400,6 +1535,10 @@ fireblocks/models/respond_to_connection_request.py
fireblocks/models/retry_requote_request_details.py
fireblocks/models/reward_info.py
fireblocks/models/rewards_info.py
+fireblocks/models/screening_alert_exposure_type_enum.py
+fireblocks/models/screening_aml_alert.py
+fireblocks/models/screening_aml_matched_rule.py
+fireblocks/models/screening_aml_result.py
fireblocks/models/screening_configurations_request.py
fireblocks/models/screening_metadata_config.py
fireblocks/models/screening_operation_execution.py
@@ -1408,11 +1547,24 @@ fireblocks/models/screening_operation_failure.py
fireblocks/models/screening_operation_type.py
fireblocks/models/screening_policy_response.py
fireblocks/models/screening_provider_rules_configuration_response.py
+fireblocks/models/screening_risk_level_enum.py
+fireblocks/models/screening_tr_link_amount.py
+fireblocks/models/screening_tr_link_missing_trm_decision.py
+fireblocks/models/screening_tr_link_missing_trm_rule.py
+fireblocks/models/screening_tr_link_post_screening_rule.py
+fireblocks/models/screening_tr_link_prescreening_rule.py
+fireblocks/models/screening_tr_link_rule_base.py
+fireblocks/models/screening_travel_rule_matched_rule.py
+fireblocks/models/screening_travel_rule_prescreening_rule.py
+fireblocks/models/screening_travel_rule_result.py
fireblocks/models/screening_update_configurations.py
fireblocks/models/screening_validation_failure.py
fireblocks/models/screening_verdict.py
+fireblocks/models/screening_verdict_enum.py
fireblocks/models/screening_verdict_matched_rule.py
fireblocks/models/search_network_ids_response.py
+fireblocks/models/sepa_address.py
+fireblocks/models/sepa_destination.py
fireblocks/models/sepa_payment_info.py
fireblocks/models/session_dto.py
fireblocks/models/session_metadata.py
@@ -1478,12 +1630,15 @@ fireblocks/models/solana_config.py
fireblocks/models/solana_instruction.py
fireblocks/models/solana_instruction_with_value.py
fireblocks/models/solana_simple_create_params.py
+fireblocks/models/source_config.py
fireblocks/models/source_transfer_peer_path.py
fireblocks/models/source_transfer_peer_path_response.py
fireblocks/models/spam_ownership_response.py
fireblocks/models/spam_token_response.py
+fireblocks/models/spei_address.py
fireblocks/models/spei_advanced_payment_info.py
fireblocks/models/spei_basic_payment_info.py
+fireblocks/models/spei_destination.py
fireblocks/models/split_request.py
fireblocks/models/split_response.py
fireblocks/models/stake_request.py
@@ -1491,8 +1646,11 @@ fireblocks/models/stake_response.py
fireblocks/models/staking_provider.py
fireblocks/models/status.py
fireblocks/models/stellar_ripple_create_params_dto.py
+fireblocks/models/swift_address.py
+fireblocks/models/swift_destination.py
fireblocks/models/system_message_info.py
fireblocks/models/tag.py
+fireblocks/models/tag_attachment_operation_action.py
fireblocks/models/tags_paged_response.py
fireblocks/models/task.py
fireblocks/models/templates_paginated_response.py
@@ -1514,13 +1672,38 @@ fireblocks/models/token_ownership_spam_update_payload.py
fireblocks/models/token_ownership_status_update_payload.py
fireblocks/models/token_response.py
fireblocks/models/tokens_paginated_response.py
+fireblocks/models/tr_link_amount.py
+fireblocks/models/tr_link_missing_trm_action.py
+fireblocks/models/tr_link_missing_trm_action_enum.py
+fireblocks/models/tr_link_missing_trm_decision.py
+fireblocks/models/tr_link_missing_trm_rule.py
+fireblocks/models/tr_link_post_screening_rule.py
+fireblocks/models/tr_link_pre_screening_action.py
+fireblocks/models/tr_link_pre_screening_action_enum.py
+fireblocks/models/tr_link_pre_screening_rule.py
+fireblocks/models/tr_link_provider_result.py
+fireblocks/models/tr_link_provider_result_with_rule.py
+fireblocks/models/tr_link_provider_result_with_rule2.py
+fireblocks/models/tr_link_registration_result.py
+fireblocks/models/tr_link_registration_result_full_payload.py
+fireblocks/models/tr_link_registration_status.py
+fireblocks/models/tr_link_registration_status_enum.py
+fireblocks/models/tr_link_result.py
+fireblocks/models/tr_link_result_full_payload.py
+fireblocks/models/tr_link_rule_base.py
+fireblocks/models/tr_link_trm_screening_status.py
+fireblocks/models/tr_link_trm_screening_status_enum.py
+fireblocks/models/tr_link_verdict.py
+fireblocks/models/tr_link_verdict_enum.py
fireblocks/models/trading_account_type.py
fireblocks/models/trading_error_response.py
fireblocks/models/trading_error_response_error.py
fireblocks/models/trading_provider.py
fireblocks/models/transaction.py
+fireblocks/models/transaction_direction.py
fireblocks/models/transaction_fee.py
fireblocks/models/transaction_operation.py
+fireblocks/models/transaction_operation_enum.py
fireblocks/models/transaction_receipt_response.py
fireblocks/models/transaction_request.py
fireblocks/models/transaction_request_amount.py
@@ -1547,18 +1730,23 @@ fireblocks/models/transfer_operation_preview_output.py
fireblocks/models/transfer_operation_type.py
fireblocks/models/transfer_peer_path_sub_type.py
fireblocks/models/transfer_peer_path_type.py
+fireblocks/models/transfer_peer_sub_type_enum.py
+fireblocks/models/transfer_peer_type_enum.py
fireblocks/models/transfer_rail.py
fireblocks/models/transfer_receipt.py
fireblocks/models/transfer_validation_failure.py
+fireblocks/models/travel_rule_action_enum.py
fireblocks/models/travel_rule_address.py
fireblocks/models/travel_rule_create_transaction_request.py
fireblocks/models/travel_rule_date_and_place_of_birth.py
+fireblocks/models/travel_rule_direction_enum.py
fireblocks/models/travel_rule_geographic_address.py
fireblocks/models/travel_rule_get_all_vasps_response.py
fireblocks/models/travel_rule_issuer.py
fireblocks/models/travel_rule_issuers.py
fireblocks/models/travel_rule_legal_person.py
fireblocks/models/travel_rule_legal_person_name_identifier.py
+fireblocks/models/travel_rule_matched_rule.py
fireblocks/models/travel_rule_national_identification.py
fireblocks/models/travel_rule_natural_name_identifier.py
fireblocks/models/travel_rule_natural_person.py
@@ -1567,6 +1755,9 @@ fireblocks/models/travel_rule_ownership_proof.py
fireblocks/models/travel_rule_person.py
fireblocks/models/travel_rule_pii_ivms.py
fireblocks/models/travel_rule_policy_rule_response.py
+fireblocks/models/travel_rule_prescreening_rule.py
+fireblocks/models/travel_rule_result.py
+fireblocks/models/travel_rule_status_enum.py
fireblocks/models/travel_rule_transaction_blockchain_info.py
fireblocks/models/travel_rule_update_vasp_details.py
fireblocks/models/travel_rule_validate_date_and_place_of_birth.py
@@ -1584,6 +1775,7 @@ fireblocks/models/travel_rule_validate_transaction_request.py
fireblocks/models/travel_rule_validate_transaction_response.py
fireblocks/models/travel_rule_vasp.py
fireblocks/models/travel_rule_vasp_for_vault.py
+fireblocks/models/travel_rule_verdict_enum.py
fireblocks/models/tx_log.py
fireblocks/models/unfreeze_transaction_response.py
fireblocks/models/unmanaged_wallet.py
@@ -1599,6 +1791,8 @@ fireblocks/models/update_token_ownership_status_dto.py
fireblocks/models/update_vault_account_asset_address_request.py
fireblocks/models/update_vault_account_request.py
fireblocks/models/update_webhook_request.py
+fireblocks/models/us_wire_address.py
+fireblocks/models/us_wire_destination.py
fireblocks/models/us_wire_payment_info.py
fireblocks/models/user_group_create_request.py
fireblocks/models/user_group_create_response.py
@@ -1614,8 +1808,13 @@ fireblocks/models/validated_transactions_for_rescan.py
fireblocks/models/validation_key_dto.py
fireblocks/models/validator.py
fireblocks/models/vault_account.py
+fireblocks/models/vault_account_tag_attachment_operation.py
+fireblocks/models/vault_account_tag_attachment_pending_operation.py
+fireblocks/models/vault_account_tag_attachment_rejected_operation.py
fireblocks/models/vault_accounts_paged_response.py
fireblocks/models/vault_accounts_paged_response_paging.py
+fireblocks/models/vault_accounts_tag_attachment_operations_request.py
+fireblocks/models/vault_accounts_tag_attachment_operations_response.py
fireblocks/models/vault_accounts_tag_attachments_request.py
fireblocks/models/vault_action_status.py
fireblocks/models/vault_asset.py
@@ -1627,6 +1826,7 @@ fireblocks/models/wallet_asset.py
fireblocks/models/wallet_asset_additional_info.py
fireblocks/models/webhook.py
fireblocks/models/webhook_event.py
+fireblocks/models/webhook_metric.py
fireblocks/models/webhook_paginated_response.py
fireblocks/models/withdraw_request.py
fireblocks/models/workflow_config_status.py
@@ -1666,6 +1866,7 @@ test/test_account.py
test/test_account_access.py
test/test_account_base.py
test/test_account_based_access_provider.py
+test/test_account_based_access_provider_details.py
test/test_account_config.py
test/test_account_holder_details.py
test/test_account_identifier.py
@@ -1673,6 +1874,9 @@ test/test_account_provider_id.py
test/test_account_reference.py
test/test_account_type.py
test/test_account_type2.py
+test/test_ach_account_type.py
+test/test_ach_address.py
+test/test_ach_destination.py
test/test_ach_payment_info.py
test/test_adapter_processing_result.py
test/test_add_abi_request_dto.py
@@ -1687,16 +1891,25 @@ test/test_additional_info.py
test/test_additional_info_request.py
test/test_additional_info_request_additional_info.py
test/test_address_not_available_error.py
+test/test_alert_exposure_type_enum.py
+test/test_alert_level_enum.py
+test/test_aml_alert.py
+test/test_aml_matched_rule.py
test/test_aml_registration_result.py
test/test_aml_registration_result_full_payload.py
+test/test_aml_result.py
test/test_aml_screening_result.py
+test/test_aml_status_enum.py
test/test_aml_verdict_manual_request.py
test/test_aml_verdict_manual_response.py
test/test_amount_and_chain_descriptor.py
+test/test_amount_config.py
+test/test_amount_config_currency.py
test/test_amount_info.py
test/test_amount_over_time_config.py
-test/test_amount_over_time_config_range.py
test/test_amount_range.py
+test/test_amount_range_min_max.py
+test/test_amount_range_min_max2.py
test/test_api_key.py
test/test_api_keys_paginated_response.py
test/test_api_user.py
@@ -1886,6 +2099,7 @@ test/test_create_wallet_request.py
test/test_create_webhook_request.py
test/test_create_workflow_execution_request_params_inner.py
test/test_custom_routing_dest.py
+test/test_d_app_address_config.py
test/test_default_network_routing_dest.py
test/test_delegation.py
test/test_delegation_summary.py
@@ -1906,6 +2120,7 @@ test/test_destination_transfer_peer_path.py
test/test_destination_transfer_peer_path_response.py
test/test_direct_access.py
test/test_direct_access_provider.py
+test/test_direct_access_provider_details.py
test/test_disbursement_amount_instruction.py
test/test_disbursement_config_operation.py
test/test_disbursement_instruction.py
@@ -1986,11 +2201,13 @@ test/test_fee_breakdown_one_of1.py
test/test_fee_info.py
test/test_fee_level.py
test/test_fee_payer_info.py
+test/test_fee_properties_details.py
test/test_fetch_abi_request_dto.py
test/test_fiat_account.py
test/test_fiat_account_type.py
test/test_fiat_accounts_api.py
test/test_fiat_asset.py
+test/test_fiat_destination.py
test/test_fiat_transfer.py
test/test_fixed_fee.py
test/test_freeze_transaction_response.py
@@ -2026,6 +2243,8 @@ test/test_get_validation_key_response_dto.py
test/test_get_whitelist_ip_addresses_response.py
test/test_get_workspace_status_response.py
test/test_http_contract_does_not_exist_error.py
+test/test_iban_address.py
+test/test_iban_destination.py
test/test_iban_payment_info.py
test/test_identification.py
test/test_idl_type.py
@@ -2077,17 +2296,23 @@ test/test_legacy_publish_result.py
test/test_legacy_src_or_dest_attributes_inner.py
test/test_limit_execution_request_details.py
test/test_limit_execution_response_details.py
+test/test_limit_type_details.py
test/test_list_assets_response.py
test/test_list_blockchains_response.py
test/test_list_owned_collections_response.py
test/test_list_owned_tokens_response.py
+test/test_local_bank_transfer_africa_address.py
+test/test_local_bank_transfer_africa_destination.py
test/test_manifest.py
test/test_market_execution_request_details.py
test/test_market_execution_response_details.py
test/test_market_requote_request_details.py
+test/test_market_type_details.py
test/test_media_entity_response.py
test/test_merge_stake_accounts_request.py
test/test_merge_stake_accounts_response.py
+test/test_mobile_money_address.py
+test/test_mobile_money_destination.py
test/test_modify_signing_key_agent_id_dto.py
test/test_modify_signing_key_dto.py
test/test_modify_validation_key_dto.py
@@ -2121,6 +2346,7 @@ test/test_one_time_address_account.py
test/test_one_time_address_reference.py
test/test_operation_execution_failure.py
test/test_order_details.py
+test/test_order_side.py
test/test_order_status.py
test/test_order_summary.py
test/test_ota_beta_api.py
@@ -2143,6 +2369,7 @@ test/test_payment_account.py
test/test_payment_account_response.py
test/test_payment_account_type.py
test/test_payment_instructions.py
+test/test_payment_instructions_details.py
test/test_payments_payout_api.py
test/test_payout_init_method.py
test/test_payout_instruction.py
@@ -2155,11 +2382,14 @@ test/test_peer_adapter_info.py
test/test_peer_type.py
test/test_personal_identification.py
test/test_personal_identification_full_name.py
+test/test_pix_address.py
+test/test_pix_destination.py
test/test_pix_payment_info.py
test/test_platform_account.py
test/test_players.py
test/test_policy_and_validation_response.py
test/test_policy_check_result.py
+test/test_policy_currency.py
test/test_policy_editor_beta_api.py
test/test_policy_editor_v2_beta_api.py
test/test_policy_metadata.py
@@ -2169,8 +2399,11 @@ test/test_policy_rule.py
test/test_policy_rule_check_result.py
test/test_policy_rule_error.py
test/test_policy_status.py
+test/test_policy_tag.py
test/test_policy_type.py
test/test_policy_validation.py
+test/test_policy_verdict_action_enum.py
+test/test_policy_verdict_action_enum2.py
test/test_post_order_settlement.py
test/test_postal_address.py
test/test_pre_screening.py
@@ -2185,11 +2418,13 @@ test/test_publish_result.py
test/test_quote.py
test/test_quote_execution_request_details.py
test/test_quote_execution_response_details.py
+test/test_quote_execution_type_details.py
test/test_quote_execution_with_requote_request_details.py
-test/test_quote_execution_with_requote_request_details_all_of_re_quote.py
test/test_quote_execution_with_requote_response_details.py
-test/test_quote_execution_with_requote_response_details_all_of_re_quote.py
+test/test_quote_properties_details.py
test/test_quotes_response.py
+test/test_re_quote_details.py
+test/test_re_quote_details_re_quote.py
test/test_read_abi_function.py
test/test_read_call_function_dto.py
test/test_read_call_function_dto_abi_function.py
@@ -2219,6 +2454,10 @@ test/test_respond_to_connection_request.py
test/test_retry_requote_request_details.py
test/test_reward_info.py
test/test_rewards_info.py
+test/test_screening_alert_exposure_type_enum.py
+test/test_screening_aml_alert.py
+test/test_screening_aml_matched_rule.py
+test/test_screening_aml_result.py
test/test_screening_configurations_request.py
test/test_screening_metadata_config.py
test/test_screening_operation_execution.py
@@ -2227,11 +2466,24 @@ test/test_screening_operation_failure.py
test/test_screening_operation_type.py
test/test_screening_policy_response.py
test/test_screening_provider_rules_configuration_response.py
+test/test_screening_risk_level_enum.py
+test/test_screening_tr_link_amount.py
+test/test_screening_tr_link_missing_trm_decision.py
+test/test_screening_tr_link_missing_trm_rule.py
+test/test_screening_tr_link_post_screening_rule.py
+test/test_screening_tr_link_prescreening_rule.py
+test/test_screening_tr_link_rule_base.py
+test/test_screening_travel_rule_matched_rule.py
+test/test_screening_travel_rule_prescreening_rule.py
+test/test_screening_travel_rule_result.py
test/test_screening_update_configurations.py
test/test_screening_validation_failure.py
test/test_screening_verdict.py
+test/test_screening_verdict_enum.py
test/test_screening_verdict_matched_rule.py
test/test_search_network_ids_response.py
+test/test_sepa_address.py
+test/test_sepa_destination.py
test/test_sepa_payment_info.py
test/test_session_dto.py
test/test_session_metadata.py
@@ -2298,12 +2550,15 @@ test/test_solana_config.py
test/test_solana_instruction.py
test/test_solana_instruction_with_value.py
test/test_solana_simple_create_params.py
+test/test_source_config.py
test/test_source_transfer_peer_path.py
test/test_source_transfer_peer_path_response.py
test/test_spam_ownership_response.py
test/test_spam_token_response.py
+test/test_spei_address.py
test/test_spei_advanced_payment_info.py
test/test_spei_basic_payment_info.py
+test/test_spei_destination.py
test/test_split_request.py
test/test_split_response.py
test/test_stake_request.py
@@ -2312,8 +2567,11 @@ test/test_staking_api.py
test/test_staking_provider.py
test/test_status.py
test/test_stellar_ripple_create_params_dto.py
+test/test_swift_address.py
+test/test_swift_destination.py
test/test_system_message_info.py
test/test_tag.py
+test/test_tag_attachment_operation_action.py
test/test_tags_api.py
test/test_tags_paged_response.py
test/test_task.py
@@ -2337,14 +2595,39 @@ test/test_token_ownership_status_update_payload.py
test/test_token_response.py
test/test_tokenization_api.py
test/test_tokens_paginated_response.py
+test/test_tr_link_amount.py
+test/test_tr_link_missing_trm_action.py
+test/test_tr_link_missing_trm_action_enum.py
+test/test_tr_link_missing_trm_decision.py
+test/test_tr_link_missing_trm_rule.py
+test/test_tr_link_post_screening_rule.py
+test/test_tr_link_pre_screening_action.py
+test/test_tr_link_pre_screening_action_enum.py
+test/test_tr_link_pre_screening_rule.py
+test/test_tr_link_provider_result.py
+test/test_tr_link_provider_result_with_rule.py
+test/test_tr_link_provider_result_with_rule2.py
+test/test_tr_link_registration_result.py
+test/test_tr_link_registration_result_full_payload.py
+test/test_tr_link_registration_status.py
+test/test_tr_link_registration_status_enum.py
+test/test_tr_link_result.py
+test/test_tr_link_result_full_payload.py
+test/test_tr_link_rule_base.py
+test/test_tr_link_trm_screening_status.py
+test/test_tr_link_trm_screening_status_enum.py
+test/test_tr_link_verdict.py
+test/test_tr_link_verdict_enum.py
test/test_trading_account_type.py
test/test_trading_beta_api.py
test/test_trading_error_response.py
test/test_trading_error_response_error.py
test/test_trading_provider.py
test/test_transaction.py
+test/test_transaction_direction.py
test/test_transaction_fee.py
test/test_transaction_operation.py
+test/test_transaction_operation_enum.py
test/test_transaction_receipt_response.py
test/test_transaction_request.py
test/test_transaction_request_amount.py
@@ -2372,19 +2655,24 @@ test/test_transfer_operation_preview_output.py
test/test_transfer_operation_type.py
test/test_transfer_peer_path_sub_type.py
test/test_transfer_peer_path_type.py
+test/test_transfer_peer_sub_type_enum.py
+test/test_transfer_peer_type_enum.py
test/test_transfer_rail.py
test/test_transfer_receipt.py
test/test_transfer_validation_failure.py
+test/test_travel_rule_action_enum.py
test/test_travel_rule_address.py
test/test_travel_rule_api.py
test/test_travel_rule_create_transaction_request.py
test/test_travel_rule_date_and_place_of_birth.py
+test/test_travel_rule_direction_enum.py
test/test_travel_rule_geographic_address.py
test/test_travel_rule_get_all_vasps_response.py
test/test_travel_rule_issuer.py
test/test_travel_rule_issuers.py
test/test_travel_rule_legal_person.py
test/test_travel_rule_legal_person_name_identifier.py
+test/test_travel_rule_matched_rule.py
test/test_travel_rule_national_identification.py
test/test_travel_rule_natural_name_identifier.py
test/test_travel_rule_natural_person.py
@@ -2393,6 +2681,9 @@ test/test_travel_rule_ownership_proof.py
test/test_travel_rule_person.py
test/test_travel_rule_pii_ivms.py
test/test_travel_rule_policy_rule_response.py
+test/test_travel_rule_prescreening_rule.py
+test/test_travel_rule_result.py
+test/test_travel_rule_status_enum.py
test/test_travel_rule_transaction_blockchain_info.py
test/test_travel_rule_update_vasp_details.py
test/test_travel_rule_validate_date_and_place_of_birth.py
@@ -2410,6 +2701,7 @@ test/test_travel_rule_validate_transaction_request.py
test/test_travel_rule_validate_transaction_response.py
test/test_travel_rule_vasp.py
test/test_travel_rule_vasp_for_vault.py
+test/test_travel_rule_verdict_enum.py
test/test_tx_log.py
test/test_unfreeze_transaction_response.py
test/test_unmanaged_wallet.py
@@ -2425,6 +2717,8 @@ test/test_update_token_ownership_status_dto.py
test/test_update_vault_account_asset_address_request.py
test/test_update_vault_account_request.py
test/test_update_webhook_request.py
+test/test_us_wire_address.py
+test/test_us_wire_destination.py
test/test_us_wire_payment_info.py
test/test_user_group_create_request.py
test/test_user_group_create_response.py
@@ -2442,8 +2736,13 @@ test/test_validated_transactions_for_rescan.py
test/test_validation_key_dto.py
test/test_validator.py
test/test_vault_account.py
+test/test_vault_account_tag_attachment_operation.py
+test/test_vault_account_tag_attachment_pending_operation.py
+test/test_vault_account_tag_attachment_rejected_operation.py
test/test_vault_accounts_paged_response.py
test/test_vault_accounts_paged_response_paging.py
+test/test_vault_accounts_tag_attachment_operations_request.py
+test/test_vault_accounts_tag_attachment_operations_response.py
test/test_vault_accounts_tag_attachments_request.py
test/test_vault_action_status.py
test/test_vault_asset.py
@@ -2457,6 +2756,7 @@ test/test_wallet_asset_additional_info.py
test/test_web3_connections_api.py
test/test_webhook.py
test/test_webhook_event.py
+test/test_webhook_metric.py
test/test_webhook_paginated_response.py
test/test_webhooks_api.py
test/test_webhooks_v2_api.py
diff --git a/README.md b/README.md
index 69c19e60..6e826365 100644
--- a/README.md
+++ b/README.md
@@ -501,14 +501,15 @@ Class | Method | HTTP request | Description
*UserGroupsBetaApi* | [**update_user_group**](docs/UserGroupsBetaApi.md#update_user_group) | **PUT** /management/user_groups/{groupId} | Update user group
*UsersApi* | [**get_users**](docs/UsersApi.md#get_users) | **GET** /users | List users
*VaultsApi* | [**activate_asset_for_vault_account**](docs/VaultsApi.md#activate_asset_for_vault_account) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/activate | Activate a wallet in a vault account
-*VaultsApi* | [**attach_tags_to_vault_accounts**](docs/VaultsApi.md#attach_tags_to_vault_accounts) | **POST** /vault/accounts/attached_tags/attach | Attach tags to a vault accounts
+*VaultsApi* | [**attach_or_detach_tags_from_vault_accounts**](docs/VaultsApi.md#attach_or_detach_tags_from_vault_accounts) | **POST** /vault/accounts/attached_tags | Attach or detach tags from a vault accounts
+*VaultsApi* | [**attach_tags_to_vault_accounts**](docs/VaultsApi.md#attach_tags_to_vault_accounts) | **POST** /vault/accounts/attached_tags/attach | Attach tags to a vault accounts (deprecated)
*VaultsApi* | [**create_legacy_address**](docs/VaultsApi.md#create_legacy_address) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}/create_legacy | Convert a segwit address to legacy format
*VaultsApi* | [**create_multiple_accounts**](docs/VaultsApi.md#create_multiple_accounts) | **POST** /vault/accounts/bulk | Bulk creation of new vault accounts
*VaultsApi* | [**create_multiple_deposit_addresses**](docs/VaultsApi.md#create_multiple_deposit_addresses) | **POST** /vault/accounts/addresses/bulk | Bulk creation of new deposit addresses
*VaultsApi* | [**create_vault_account**](docs/VaultsApi.md#create_vault_account) | **POST** /vault/accounts | Create a new vault account
*VaultsApi* | [**create_vault_account_asset**](docs/VaultsApi.md#create_vault_account_asset) | **POST** /vault/accounts/{vaultAccountId}/{assetId} | Create a new wallet
*VaultsApi* | [**create_vault_account_asset_address**](docs/VaultsApi.md#create_vault_account_asset_address) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/addresses | Create new asset deposit address
-*VaultsApi* | [**detach_tags_from_vault_accounts**](docs/VaultsApi.md#detach_tags_from_vault_accounts) | **POST** /vault/accounts/attached_tags/detach | Detach tags from a vault accounts
+*VaultsApi* | [**detach_tags_from_vault_accounts**](docs/VaultsApi.md#detach_tags_from_vault_accounts) | **POST** /vault/accounts/attached_tags/detach | Detach tags from a vault accounts (deprecated)
*VaultsApi* | [**get_asset_wallets**](docs/VaultsApi.md#get_asset_wallets) | **GET** /vault/asset_wallets | List asset wallets (Paginated)
*VaultsApi* | [**get_create_multiple_deposit_addresses_job_status**](docs/VaultsApi.md#get_create_multiple_deposit_addresses_job_status) | **GET** /vault/accounts/addresses/bulk/{jobId} | Get job status of bulk creation of new deposit addresses
*VaultsApi* | [**get_create_multiple_vault_accounts_job_status**](docs/VaultsApi.md#get_create_multiple_vault_accounts_job_status) | **GET** /vault/accounts/bulk/{jobId} | Get job status of bulk creation of new vault accounts
@@ -538,6 +539,7 @@ Class | Method | HTTP request | Description
*WebhooksApi* | [**resend_webhooks**](docs/WebhooksApi.md#resend_webhooks) | **POST** /webhooks/resend | Resend failed webhooks
*WebhooksV2Api* | [**create_webhook**](docs/WebhooksV2Api.md#create_webhook) | **POST** /webhooks | Create new webhook
*WebhooksV2Api* | [**delete_webhook**](docs/WebhooksV2Api.md#delete_webhook) | **DELETE** /webhooks/{webhookId} | Delete webhook
+*WebhooksV2Api* | [**get_metrics**](docs/WebhooksV2Api.md#get_metrics) | **GET** /webhooks/{webhookId}/metrics/{metricName} | Get webhook metrics
*WebhooksV2Api* | [**get_notification**](docs/WebhooksV2Api.md#get_notification) | **GET** /webhooks/{webhookId}/notifications/{notificationId} | Get notification by id
*WebhooksV2Api* | [**get_notification_attempts**](docs/WebhooksV2Api.md#get_notification_attempts) | **GET** /webhooks/{webhookId}/notifications/{notificationId}/attempts | Get notification attempts
*WebhooksV2Api* | [**get_notifications**](docs/WebhooksV2Api.md#get_notifications) | **GET** /webhooks/{webhookId}/notifications | Get all notifications by webhook id
@@ -562,6 +564,7 @@ Class | Method | HTTP request | Description
- [AccountAccess](docs/AccountAccess.md)
- [AccountBase](docs/AccountBase.md)
- [AccountBasedAccessProvider](docs/AccountBasedAccessProvider.md)
+ - [AccountBasedAccessProviderDetails](docs/AccountBasedAccessProviderDetails.md)
- [AccountConfig](docs/AccountConfig.md)
- [AccountHolderDetails](docs/AccountHolderDetails.md)
- [AccountIdentifier](docs/AccountIdentifier.md)
@@ -569,6 +572,9 @@ Class | Method | HTTP request | Description
- [AccountReference](docs/AccountReference.md)
- [AccountType](docs/AccountType.md)
- [AccountType2](docs/AccountType2.md)
+ - [AchAccountType](docs/AchAccountType.md)
+ - [AchAddress](docs/AchAddress.md)
+ - [AchDestination](docs/AchDestination.md)
- [AchPaymentInfo](docs/AchPaymentInfo.md)
- [AdapterProcessingResult](docs/AdapterProcessingResult.md)
- [AddAbiRequestDto](docs/AddAbiRequestDto.md)
@@ -583,16 +589,25 @@ Class | Method | HTTP request | Description
- [AdditionalInfoRequest](docs/AdditionalInfoRequest.md)
- [AdditionalInfoRequestAdditionalInfo](docs/AdditionalInfoRequestAdditionalInfo.md)
- [AddressNotAvailableError](docs/AddressNotAvailableError.md)
+ - [AlertExposureTypeEnum](docs/AlertExposureTypeEnum.md)
+ - [AlertLevelEnum](docs/AlertLevelEnum.md)
+ - [AmlAlert](docs/AmlAlert.md)
+ - [AmlMatchedRule](docs/AmlMatchedRule.md)
- [AmlRegistrationResult](docs/AmlRegistrationResult.md)
- [AmlRegistrationResultFullPayload](docs/AmlRegistrationResultFullPayload.md)
+ - [AmlResult](docs/AmlResult.md)
- [AmlScreeningResult](docs/AmlScreeningResult.md)
+ - [AmlStatusEnum](docs/AmlStatusEnum.md)
- [AmlVerdictManualRequest](docs/AmlVerdictManualRequest.md)
- [AmlVerdictManualResponse](docs/AmlVerdictManualResponse.md)
- [AmountAndChainDescriptor](docs/AmountAndChainDescriptor.md)
+ - [AmountConfig](docs/AmountConfig.md)
+ - [AmountConfigCurrency](docs/AmountConfigCurrency.md)
- [AmountInfo](docs/AmountInfo.md)
- [AmountOverTimeConfig](docs/AmountOverTimeConfig.md)
- - [AmountOverTimeConfigRange](docs/AmountOverTimeConfigRange.md)
- [AmountRange](docs/AmountRange.md)
+ - [AmountRangeMinMax](docs/AmountRangeMinMax.md)
+ - [AmountRangeMinMax2](docs/AmountRangeMinMax2.md)
- [ApiKey](docs/ApiKey.md)
- [ApiKeysPaginatedResponse](docs/ApiKeysPaginatedResponse.md)
- [ApproversConfig](docs/ApproversConfig.md)
@@ -769,6 +784,7 @@ Class | Method | HTTP request | Description
- [CreateWebhookRequest](docs/CreateWebhookRequest.md)
- [CreateWorkflowExecutionRequestParamsInner](docs/CreateWorkflowExecutionRequestParamsInner.md)
- [CustomRoutingDest](docs/CustomRoutingDest.md)
+ - [DAppAddressConfig](docs/DAppAddressConfig.md)
- [DVPSettlement](docs/DVPSettlement.md)
- [DefaultNetworkRoutingDest](docs/DefaultNetworkRoutingDest.md)
- [Delegation](docs/Delegation.md)
@@ -789,6 +805,7 @@ Class | Method | HTTP request | Description
- [DestinationTransferPeerPathResponse](docs/DestinationTransferPeerPathResponse.md)
- [DirectAccess](docs/DirectAccess.md)
- [DirectAccessProvider](docs/DirectAccessProvider.md)
+ - [DirectAccessProviderDetails](docs/DirectAccessProviderDetails.md)
- [DisbursementAmountInstruction](docs/DisbursementAmountInstruction.md)
- [DisbursementConfigOperation](docs/DisbursementConfigOperation.md)
- [DisbursementInstruction](docs/DisbursementInstruction.md)
@@ -865,10 +882,12 @@ Class | Method | HTTP request | Description
- [FeeInfo](docs/FeeInfo.md)
- [FeeLevel](docs/FeeLevel.md)
- [FeePayerInfo](docs/FeePayerInfo.md)
+ - [FeePropertiesDetails](docs/FeePropertiesDetails.md)
- [FetchAbiRequestDto](docs/FetchAbiRequestDto.md)
- [FiatAccount](docs/FiatAccount.md)
- [FiatAccountType](docs/FiatAccountType.md)
- [FiatAsset](docs/FiatAsset.md)
+ - [FiatDestination](docs/FiatDestination.md)
- [FiatTransfer](docs/FiatTransfer.md)
- [FixedFee](docs/FixedFee.md)
- [FreezeTransactionResponse](docs/FreezeTransactionResponse.md)
@@ -903,6 +922,8 @@ Class | Method | HTTP request | Description
- [GetWhitelistIpAddressesResponse](docs/GetWhitelistIpAddressesResponse.md)
- [GetWorkspaceStatusResponse](docs/GetWorkspaceStatusResponse.md)
- [HttpContractDoesNotExistError](docs/HttpContractDoesNotExistError.md)
+ - [IbanAddress](docs/IbanAddress.md)
+ - [IbanDestination](docs/IbanDestination.md)
- [IbanPaymentInfo](docs/IbanPaymentInfo.md)
- [Identification](docs/Identification.md)
- [IdlType](docs/IdlType.md)
@@ -950,17 +971,23 @@ Class | Method | HTTP request | Description
- [LegacySrcOrDestAttributesInner](docs/LegacySrcOrDestAttributesInner.md)
- [LimitExecutionRequestDetails](docs/LimitExecutionRequestDetails.md)
- [LimitExecutionResponseDetails](docs/LimitExecutionResponseDetails.md)
+ - [LimitTypeDetails](docs/LimitTypeDetails.md)
- [ListAssetsResponse](docs/ListAssetsResponse.md)
- [ListBlockchainsResponse](docs/ListBlockchainsResponse.md)
- [ListOwnedCollectionsResponse](docs/ListOwnedCollectionsResponse.md)
- [ListOwnedTokensResponse](docs/ListOwnedTokensResponse.md)
+ - [LocalBankTransferAfricaAddress](docs/LocalBankTransferAfricaAddress.md)
+ - [LocalBankTransferAfricaDestination](docs/LocalBankTransferAfricaDestination.md)
- [Manifest](docs/Manifest.md)
- [MarketExecutionRequestDetails](docs/MarketExecutionRequestDetails.md)
- [MarketExecutionResponseDetails](docs/MarketExecutionResponseDetails.md)
- [MarketRequoteRequestDetails](docs/MarketRequoteRequestDetails.md)
+ - [MarketTypeDetails](docs/MarketTypeDetails.md)
- [MediaEntityResponse](docs/MediaEntityResponse.md)
- [MergeStakeAccountsRequest](docs/MergeStakeAccountsRequest.md)
- [MergeStakeAccountsResponse](docs/MergeStakeAccountsResponse.md)
+ - [MobileMoneyAddress](docs/MobileMoneyAddress.md)
+ - [MobileMoneyDestination](docs/MobileMoneyDestination.md)
- [ModifySigningKeyAgentIdDto](docs/ModifySigningKeyAgentIdDto.md)
- [ModifySigningKeyDto](docs/ModifySigningKeyDto.md)
- [ModifyValidationKeyDto](docs/ModifyValidationKeyDto.md)
@@ -991,6 +1018,7 @@ Class | Method | HTTP request | Description
- [OneTimeAddressReference](docs/OneTimeAddressReference.md)
- [OperationExecutionFailure](docs/OperationExecutionFailure.md)
- [OrderDetails](docs/OrderDetails.md)
+ - [OrderSide](docs/OrderSide.md)
- [OrderStatus](docs/OrderStatus.md)
- [OrderSummary](docs/OrderSummary.md)
- [PaginatedAddressResponse](docs/PaginatedAddressResponse.md)
@@ -1012,6 +1040,7 @@ Class | Method | HTTP request | Description
- [PaymentAccountResponse](docs/PaymentAccountResponse.md)
- [PaymentAccountType](docs/PaymentAccountType.md)
- [PaymentInstructions](docs/PaymentInstructions.md)
+ - [PaymentInstructionsDetails](docs/PaymentInstructionsDetails.md)
- [PayoutInitMethod](docs/PayoutInitMethod.md)
- [PayoutInstruction](docs/PayoutInstruction.md)
- [PayoutInstructionResponse](docs/PayoutInstructionResponse.md)
@@ -1023,11 +1052,14 @@ Class | Method | HTTP request | Description
- [PeerType](docs/PeerType.md)
- [PersonalIdentification](docs/PersonalIdentification.md)
- [PersonalIdentificationFullName](docs/PersonalIdentificationFullName.md)
+ - [PixAddress](docs/PixAddress.md)
+ - [PixDestination](docs/PixDestination.md)
- [PixPaymentInfo](docs/PixPaymentInfo.md)
- [PlatformAccount](docs/PlatformAccount.md)
- [Players](docs/Players.md)
- [PolicyAndValidationResponse](docs/PolicyAndValidationResponse.md)
- [PolicyCheckResult](docs/PolicyCheckResult.md)
+ - [PolicyCurrency](docs/PolicyCurrency.md)
- [PolicyMetadata](docs/PolicyMetadata.md)
- [PolicyOperator](docs/PolicyOperator.md)
- [PolicyResponse](docs/PolicyResponse.md)
@@ -1035,8 +1067,11 @@ Class | Method | HTTP request | Description
- [PolicyRuleCheckResult](docs/PolicyRuleCheckResult.md)
- [PolicyRuleError](docs/PolicyRuleError.md)
- [PolicyStatus](docs/PolicyStatus.md)
+ - [PolicyTag](docs/PolicyTag.md)
- [PolicyType](docs/PolicyType.md)
- [PolicyValidation](docs/PolicyValidation.md)
+ - [PolicyVerdictActionEnum](docs/PolicyVerdictActionEnum.md)
+ - [PolicyVerdictActionEnum2](docs/PolicyVerdictActionEnum2.md)
- [PostOrderSettlement](docs/PostOrderSettlement.md)
- [PostalAddress](docs/PostalAddress.md)
- [PreScreening](docs/PreScreening.md)
@@ -1051,11 +1086,13 @@ Class | Method | HTTP request | Description
- [Quote](docs/Quote.md)
- [QuoteExecutionRequestDetails](docs/QuoteExecutionRequestDetails.md)
- [QuoteExecutionResponseDetails](docs/QuoteExecutionResponseDetails.md)
+ - [QuoteExecutionTypeDetails](docs/QuoteExecutionTypeDetails.md)
- [QuoteExecutionWithRequoteRequestDetails](docs/QuoteExecutionWithRequoteRequestDetails.md)
- - [QuoteExecutionWithRequoteRequestDetailsAllOfReQuote](docs/QuoteExecutionWithRequoteRequestDetailsAllOfReQuote.md)
- [QuoteExecutionWithRequoteResponseDetails](docs/QuoteExecutionWithRequoteResponseDetails.md)
- - [QuoteExecutionWithRequoteResponseDetailsAllOfReQuote](docs/QuoteExecutionWithRequoteResponseDetailsAllOfReQuote.md)
+ - [QuotePropertiesDetails](docs/QuotePropertiesDetails.md)
- [QuotesResponse](docs/QuotesResponse.md)
+ - [ReQuoteDetails](docs/ReQuoteDetails.md)
+ - [ReQuoteDetailsReQuote](docs/ReQuoteDetailsReQuote.md)
- [ReadAbiFunction](docs/ReadAbiFunction.md)
- [ReadCallFunctionDto](docs/ReadCallFunctionDto.md)
- [ReadCallFunctionDtoAbiFunction](docs/ReadCallFunctionDtoAbiFunction.md)
@@ -1084,8 +1121,14 @@ Class | Method | HTTP request | Description
- [RetryRequoteRequestDetails](docs/RetryRequoteRequestDetails.md)
- [RewardInfo](docs/RewardInfo.md)
- [RewardsInfo](docs/RewardsInfo.md)
+ - [SEPAAddress](docs/SEPAAddress.md)
+ - [SEPADestination](docs/SEPADestination.md)
- [SOLAccount](docs/SOLAccount.md)
- [SOLAccountWithValue](docs/SOLAccountWithValue.md)
+ - [ScreeningAlertExposureTypeEnum](docs/ScreeningAlertExposureTypeEnum.md)
+ - [ScreeningAmlAlert](docs/ScreeningAmlAlert.md)
+ - [ScreeningAmlMatchedRule](docs/ScreeningAmlMatchedRule.md)
+ - [ScreeningAmlResult](docs/ScreeningAmlResult.md)
- [ScreeningConfigurationsRequest](docs/ScreeningConfigurationsRequest.md)
- [ScreeningMetadataConfig](docs/ScreeningMetadataConfig.md)
- [ScreeningOperationExecution](docs/ScreeningOperationExecution.md)
@@ -1094,9 +1137,20 @@ Class | Method | HTTP request | Description
- [ScreeningOperationType](docs/ScreeningOperationType.md)
- [ScreeningPolicyResponse](docs/ScreeningPolicyResponse.md)
- [ScreeningProviderRulesConfigurationResponse](docs/ScreeningProviderRulesConfigurationResponse.md)
+ - [ScreeningRiskLevelEnum](docs/ScreeningRiskLevelEnum.md)
+ - [ScreeningTRLinkAmount](docs/ScreeningTRLinkAmount.md)
+ - [ScreeningTRLinkMissingTrmDecision](docs/ScreeningTRLinkMissingTrmDecision.md)
+ - [ScreeningTRLinkMissingTrmRule](docs/ScreeningTRLinkMissingTrmRule.md)
+ - [ScreeningTRLinkPostScreeningRule](docs/ScreeningTRLinkPostScreeningRule.md)
+ - [ScreeningTRLinkPrescreeningRule](docs/ScreeningTRLinkPrescreeningRule.md)
+ - [ScreeningTRLinkRuleBase](docs/ScreeningTRLinkRuleBase.md)
+ - [ScreeningTravelRuleMatchedRule](docs/ScreeningTravelRuleMatchedRule.md)
+ - [ScreeningTravelRulePrescreeningRule](docs/ScreeningTravelRulePrescreeningRule.md)
+ - [ScreeningTravelRuleResult](docs/ScreeningTravelRuleResult.md)
- [ScreeningUpdateConfigurations](docs/ScreeningUpdateConfigurations.md)
- [ScreeningValidationFailure](docs/ScreeningValidationFailure.md)
- [ScreeningVerdict](docs/ScreeningVerdict.md)
+ - [ScreeningVerdictEnum](docs/ScreeningVerdictEnum.md)
- [ScreeningVerdictMatchedRule](docs/ScreeningVerdictMatchedRule.md)
- [SearchNetworkIdsResponse](docs/SearchNetworkIdsResponse.md)
- [SepaPaymentInfo](docs/SepaPaymentInfo.md)
@@ -1162,12 +1216,15 @@ Class | Method | HTTP request | Description
- [SolanaInstruction](docs/SolanaInstruction.md)
- [SolanaInstructionWithValue](docs/SolanaInstructionWithValue.md)
- [SolanaSimpleCreateParams](docs/SolanaSimpleCreateParams.md)
+ - [SourceConfig](docs/SourceConfig.md)
- [SourceTransferPeerPath](docs/SourceTransferPeerPath.md)
- [SourceTransferPeerPathResponse](docs/SourceTransferPeerPathResponse.md)
- [SpamOwnershipResponse](docs/SpamOwnershipResponse.md)
- [SpamTokenResponse](docs/SpamTokenResponse.md)
+ - [SpeiAddress](docs/SpeiAddress.md)
- [SpeiAdvancedPaymentInfo](docs/SpeiAdvancedPaymentInfo.md)
- [SpeiBasicPaymentInfo](docs/SpeiBasicPaymentInfo.md)
+ - [SpeiDestination](docs/SpeiDestination.md)
- [SplitRequest](docs/SplitRequest.md)
- [SplitResponse](docs/SplitResponse.md)
- [StakeRequest](docs/StakeRequest.md)
@@ -1175,8 +1232,34 @@ Class | Method | HTTP request | Description
- [StakingProvider](docs/StakingProvider.md)
- [Status](docs/Status.md)
- [StellarRippleCreateParamsDto](docs/StellarRippleCreateParamsDto.md)
+ - [SwiftAddress](docs/SwiftAddress.md)
+ - [SwiftDestination](docs/SwiftDestination.md)
- [SystemMessageInfo](docs/SystemMessageInfo.md)
+ - [TRLinkAmount](docs/TRLinkAmount.md)
+ - [TRLinkMissingTrmAction](docs/TRLinkMissingTrmAction.md)
+ - [TRLinkMissingTrmActionEnum](docs/TRLinkMissingTrmActionEnum.md)
+ - [TRLinkMissingTrmDecision](docs/TRLinkMissingTrmDecision.md)
+ - [TRLinkMissingTrmRule](docs/TRLinkMissingTrmRule.md)
+ - [TRLinkPostScreeningRule](docs/TRLinkPostScreeningRule.md)
+ - [TRLinkPreScreeningAction](docs/TRLinkPreScreeningAction.md)
+ - [TRLinkPreScreeningActionEnum](docs/TRLinkPreScreeningActionEnum.md)
+ - [TRLinkPreScreeningRule](docs/TRLinkPreScreeningRule.md)
+ - [TRLinkProviderResult](docs/TRLinkProviderResult.md)
+ - [TRLinkProviderResultWithRule](docs/TRLinkProviderResultWithRule.md)
+ - [TRLinkProviderResultWithRule2](docs/TRLinkProviderResultWithRule2.md)
+ - [TRLinkRegistrationResult](docs/TRLinkRegistrationResult.md)
+ - [TRLinkRegistrationResultFullPayload](docs/TRLinkRegistrationResultFullPayload.md)
+ - [TRLinkRegistrationStatus](docs/TRLinkRegistrationStatus.md)
+ - [TRLinkRegistrationStatusEnum](docs/TRLinkRegistrationStatusEnum.md)
+ - [TRLinkResult](docs/TRLinkResult.md)
+ - [TRLinkResultFullPayload](docs/TRLinkResultFullPayload.md)
+ - [TRLinkRuleBase](docs/TRLinkRuleBase.md)
+ - [TRLinkTrmScreeningStatus](docs/TRLinkTrmScreeningStatus.md)
+ - [TRLinkTrmScreeningStatusEnum](docs/TRLinkTrmScreeningStatusEnum.md)
+ - [TRLinkVerdict](docs/TRLinkVerdict.md)
+ - [TRLinkVerdictEnum](docs/TRLinkVerdictEnum.md)
- [Tag](docs/Tag.md)
+ - [TagAttachmentOperationAction](docs/TagAttachmentOperationAction.md)
- [TagsPagedResponse](docs/TagsPagedResponse.md)
- [Task](docs/Task.md)
- [TemplatesPaginatedResponse](docs/TemplatesPaginatedResponse.md)
@@ -1203,8 +1286,10 @@ Class | Method | HTTP request | Description
- [TradingErrorResponseError](docs/TradingErrorResponseError.md)
- [TradingProvider](docs/TradingProvider.md)
- [Transaction](docs/Transaction.md)
+ - [TransactionDirection](docs/TransactionDirection.md)
- [TransactionFee](docs/TransactionFee.md)
- [TransactionOperation](docs/TransactionOperation.md)
+ - [TransactionOperationEnum](docs/TransactionOperationEnum.md)
- [TransactionReceiptResponse](docs/TransactionReceiptResponse.md)
- [TransactionRequest](docs/TransactionRequest.md)
- [TransactionRequestAmount](docs/TransactionRequestAmount.md)
@@ -1231,18 +1316,23 @@ Class | Method | HTTP request | Description
- [TransferOperationType](docs/TransferOperationType.md)
- [TransferPeerPathSubType](docs/TransferPeerPathSubType.md)
- [TransferPeerPathType](docs/TransferPeerPathType.md)
+ - [TransferPeerSubTypeEnum](docs/TransferPeerSubTypeEnum.md)
+ - [TransferPeerTypeEnum](docs/TransferPeerTypeEnum.md)
- [TransferRail](docs/TransferRail.md)
- [TransferReceipt](docs/TransferReceipt.md)
- [TransferValidationFailure](docs/TransferValidationFailure.md)
+ - [TravelRuleActionEnum](docs/TravelRuleActionEnum.md)
- [TravelRuleAddress](docs/TravelRuleAddress.md)
- [TravelRuleCreateTransactionRequest](docs/TravelRuleCreateTransactionRequest.md)
- [TravelRuleDateAndPlaceOfBirth](docs/TravelRuleDateAndPlaceOfBirth.md)
+ - [TravelRuleDirectionEnum](docs/TravelRuleDirectionEnum.md)
- [TravelRuleGeographicAddress](docs/TravelRuleGeographicAddress.md)
- [TravelRuleGetAllVASPsResponse](docs/TravelRuleGetAllVASPsResponse.md)
- [TravelRuleIssuer](docs/TravelRuleIssuer.md)
- [TravelRuleIssuers](docs/TravelRuleIssuers.md)
- [TravelRuleLegalPerson](docs/TravelRuleLegalPerson.md)
- [TravelRuleLegalPersonNameIdentifier](docs/TravelRuleLegalPersonNameIdentifier.md)
+ - [TravelRuleMatchedRule](docs/TravelRuleMatchedRule.md)
- [TravelRuleNationalIdentification](docs/TravelRuleNationalIdentification.md)
- [TravelRuleNaturalNameIdentifier](docs/TravelRuleNaturalNameIdentifier.md)
- [TravelRuleNaturalPerson](docs/TravelRuleNaturalPerson.md)
@@ -1251,6 +1341,9 @@ Class | Method | HTTP request | Description
- [TravelRulePerson](docs/TravelRulePerson.md)
- [TravelRulePiiIVMS](docs/TravelRulePiiIVMS.md)
- [TravelRulePolicyRuleResponse](docs/TravelRulePolicyRuleResponse.md)
+ - [TravelRulePrescreeningRule](docs/TravelRulePrescreeningRule.md)
+ - [TravelRuleResult](docs/TravelRuleResult.md)
+ - [TravelRuleStatusEnum](docs/TravelRuleStatusEnum.md)
- [TravelRuleTransactionBlockchainInfo](docs/TravelRuleTransactionBlockchainInfo.md)
- [TravelRuleUpdateVASPDetails](docs/TravelRuleUpdateVASPDetails.md)
- [TravelRuleVASP](docs/TravelRuleVASP.md)
@@ -1268,7 +1361,10 @@ Class | Method | HTTP request | Description
- [TravelRuleValidateTransactionRequest](docs/TravelRuleValidateTransactionRequest.md)
- [TravelRuleValidateTransactionResponse](docs/TravelRuleValidateTransactionResponse.md)
- [TravelRuleVaspForVault](docs/TravelRuleVaspForVault.md)
+ - [TravelRuleVerdictEnum](docs/TravelRuleVerdictEnum.md)
- [TxLog](docs/TxLog.md)
+ - [USWireAddress](docs/USWireAddress.md)
+ - [USWireDestination](docs/USWireDestination.md)
- [UnfreezeTransactionResponse](docs/UnfreezeTransactionResponse.md)
- [UnmanagedWallet](docs/UnmanagedWallet.md)
- [UnspentInput](docs/UnspentInput.md)
@@ -1298,8 +1394,13 @@ Class | Method | HTTP request | Description
- [ValidationKeyDto](docs/ValidationKeyDto.md)
- [Validator](docs/Validator.md)
- [VaultAccount](docs/VaultAccount.md)
+ - [VaultAccountTagAttachmentOperation](docs/VaultAccountTagAttachmentOperation.md)
+ - [VaultAccountTagAttachmentPendingOperation](docs/VaultAccountTagAttachmentPendingOperation.md)
+ - [VaultAccountTagAttachmentRejectedOperation](docs/VaultAccountTagAttachmentRejectedOperation.md)
- [VaultAccountsPagedResponse](docs/VaultAccountsPagedResponse.md)
- [VaultAccountsPagedResponsePaging](docs/VaultAccountsPagedResponsePaging.md)
+ - [VaultAccountsTagAttachmentOperationsRequest](docs/VaultAccountsTagAttachmentOperationsRequest.md)
+ - [VaultAccountsTagAttachmentOperationsResponse](docs/VaultAccountsTagAttachmentOperationsResponse.md)
- [VaultAccountsTagAttachmentsRequest](docs/VaultAccountsTagAttachmentsRequest.md)
- [VaultActionStatus](docs/VaultActionStatus.md)
- [VaultAsset](docs/VaultAsset.md)
@@ -1311,6 +1412,7 @@ Class | Method | HTTP request | Description
- [WalletAssetAdditionalInfo](docs/WalletAssetAdditionalInfo.md)
- [Webhook](docs/Webhook.md)
- [WebhookEvent](docs/WebhookEvent.md)
+ - [WebhookMetric](docs/WebhookMetric.md)
- [WebhookPaginatedResponse](docs/WebhookPaginatedResponse.md)
- [WithdrawRequest](docs/WithdrawRequest.md)
- [WorkflowConfigStatus](docs/WorkflowConfigStatus.md)
diff --git a/docs/AccountBasedAccessProviderDetails.md b/docs/AccountBasedAccessProviderDetails.md
new file mode 100644
index 00000000..0fadad55
--- /dev/null
+++ b/docs/AccountBasedAccessProviderDetails.md
@@ -0,0 +1,31 @@
+# AccountBasedAccessProviderDetails
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**manifest** | [**Manifest**](Manifest.md) | |
+**connected** | **bool** | Whether the provider is currently connected |
+**accounts** | [**List[AccountBase]**](AccountBase.md) | | [optional]
+
+## Example
+
+```python
+from fireblocks.models.account_based_access_provider_details import AccountBasedAccessProviderDetails
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AccountBasedAccessProviderDetails from a JSON string
+account_based_access_provider_details_instance = AccountBasedAccessProviderDetails.from_json(json)
+# print the JSON string representation of the object
+print(AccountBasedAccessProviderDetails.to_json())
+
+# convert the object into a dict
+account_based_access_provider_details_dict = account_based_access_provider_details_instance.to_dict()
+# create an instance of AccountBasedAccessProviderDetails from a dict
+account_based_access_provider_details_from_dict = AccountBasedAccessProviderDetails.from_dict(account_based_access_provider_details_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/AccountConfig.md b/docs/AccountConfig.md
index ab40691e..5bb3d236 100644
--- a/docs/AccountConfig.md
+++ b/docs/AccountConfig.md
@@ -1,14 +1,15 @@
# AccountConfig
-Policy source/destination configuration
+Policy account configuration
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**type** | [**AccountType2**](AccountType2.md) | |
+**type** | [**List[AccountType2]**](AccountType2.md) | Account types | [optional]
**sub_type** | [**List[AccountIdentifier]**](AccountIdentifier.md) | | [optional]
**ids** | [**List[AccountIdentifier]**](AccountIdentifier.md) | | [optional]
+**tags** | [**List[PolicyTag]**](PolicyTag.md) | Tags for account matching | [optional]
**operator** | [**PolicyOperator**](PolicyOperator.md) | |
**match_from** | **str** | Whether to match from account or source | [optional]
diff --git a/docs/AchAccountType.md b/docs/AchAccountType.md
new file mode 100644
index 00000000..45e8cd68
--- /dev/null
+++ b/docs/AchAccountType.md
@@ -0,0 +1,13 @@
+# AchAccountType
+
+Type of the bank account.
+
+## Enum
+
+* `CHECKING` (value: `'CHECKING'`)
+
+* `SAVINGS` (value: `'SAVINGS'`)
+
+[[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/AchAddress.md b/docs/AchAddress.md
new file mode 100644
index 00000000..9067e1b3
--- /dev/null
+++ b/docs/AchAddress.md
@@ -0,0 +1,33 @@
+# AchAddress
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**account_holder** | [**AccountHolderDetails**](AccountHolderDetails.md) | |
+**bank_name** | **str** | Name of the bank. | [optional]
+**bank_account_number** | **str** | The bank account number for the ACH transfer. |
+**routing_number** | **str** | Routing number identifying the bank account. |
+**account_type** | [**AchAccountType**](AchAccountType.md) | |
+
+## Example
+
+```python
+from fireblocks.models.ach_address import AchAddress
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AchAddress from a JSON string
+ach_address_instance = AchAddress.from_json(json)
+# print the JSON string representation of the object
+print(AchAddress.to_json())
+
+# convert the object into a dict
+ach_address_dict = ach_address_instance.to_dict()
+# create an instance of AchAddress from a dict
+ach_address_from_dict = AchAddress.from_dict(ach_address_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/AchDestination.md b/docs/AchDestination.md
new file mode 100644
index 00000000..9c4e9d8b
--- /dev/null
+++ b/docs/AchDestination.md
@@ -0,0 +1,30 @@
+# AchDestination
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**type** | **str** | |
+**address** | [**AchAddress**](AchAddress.md) | |
+
+## Example
+
+```python
+from fireblocks.models.ach_destination import AchDestination
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AchDestination from a JSON string
+ach_destination_instance = AchDestination.from_json(json)
+# print the JSON string representation of the object
+print(AchDestination.to_json())
+
+# convert the object into a dict
+ach_destination_dict = ach_destination_instance.to_dict()
+# create an instance of AchDestination from a dict
+ach_destination_from_dict = AchDestination.from_dict(ach_destination_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/AlertExposureTypeEnum.md b/docs/AlertExposureTypeEnum.md
new file mode 100644
index 00000000..77e2f003
--- /dev/null
+++ b/docs/AlertExposureTypeEnum.md
@@ -0,0 +1,13 @@
+# AlertExposureTypeEnum
+
+Alert exposure type (AlertExposureType enum)
+
+## Enum
+
+* `DIRECT` (value: `'DIRECT'`)
+
+* `INDIRECT` (value: `'INDIRECT'`)
+
+[[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/AlertLevelEnum.md b/docs/AlertLevelEnum.md
new file mode 100644
index 00000000..21910667
--- /dev/null
+++ b/docs/AlertLevelEnum.md
@@ -0,0 +1,17 @@
+# AlertLevelEnum
+
+Alert level severity
+
+## Enum
+
+* `SEVERE` (value: `'SEVERE'`)
+
+* `HIGH` (value: `'HIGH'`)
+
+* `MEDIUM` (value: `'MEDIUM'`)
+
+* `LOW` (value: `'LOW'`)
+
+[[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/AmlAlert.md b/docs/AmlAlert.md
new file mode 100644
index 00000000..2efd3b57
--- /dev/null
+++ b/docs/AmlAlert.md
@@ -0,0 +1,38 @@
+# AmlAlert
+
+AML alert information
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**alert_level** | [**AlertLevelEnum**](AlertLevelEnum.md) | |
+**alert_name** | **str** | Name or type of the alert | [optional]
+**category** | **str** | Alert category | [optional]
+**service** | **str** | Service that generated the alert | [optional]
+**external_id** | **str** | External identifier for the alert |
+**alert_amount** | **float** | Amount associated with the alert |
+**exposure_type** | [**AlertExposureTypeEnum**](AlertExposureTypeEnum.md) | |
+**policy_action** | **str** | Recommended action based on policy | [optional]
+**category_id** | **float** | Category identifier | [optional]
+
+## Example
+
+```python
+from fireblocks.models.aml_alert import AmlAlert
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AmlAlert from a JSON string
+aml_alert_instance = AmlAlert.from_json(json)
+# print the JSON string representation of the object
+print(AmlAlert.to_json())
+
+# convert the object into a dict
+aml_alert_dict = aml_alert_instance.to_dict()
+# create an instance of AmlAlert from a dict
+aml_alert_from_dict = AmlAlert.from_dict(aml_alert_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/AmlMatchedRule.md b/docs/AmlMatchedRule.md
new file mode 100644
index 00000000..79f07b89
--- /dev/null
+++ b/docs/AmlMatchedRule.md
@@ -0,0 +1,32 @@
+# AmlMatchedRule
+
+AML matched rule information
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**rule_id** | **str** | Identifier of the matched rule | [optional]
+**rule_name** | **str** | Name of the matched rule | [optional]
+**action** | [**PolicyVerdictActionEnum**](PolicyVerdictActionEnum.md) | | [optional]
+
+## Example
+
+```python
+from fireblocks.models.aml_matched_rule import AmlMatchedRule
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AmlMatchedRule from a JSON string
+aml_matched_rule_instance = AmlMatchedRule.from_json(json)
+# print the JSON string representation of the object
+print(AmlMatchedRule.to_json())
+
+# convert the object into a dict
+aml_matched_rule_dict = aml_matched_rule_instance.to_dict()
+# create an instance of AmlMatchedRule from a dict
+aml_matched_rule_from_dict = AmlMatchedRule.from_dict(aml_matched_rule_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/AmlResult.md b/docs/AmlResult.md
new file mode 100644
index 00000000..d31c6fa1
--- /dev/null
+++ b/docs/AmlResult.md
@@ -0,0 +1,33 @@
+# AmlResult
+
+Detailed AML screening result information. Contains alerts, risk scores, and other AML-specific data from provider-specific responses.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**alerts** | [**List[AmlAlert]**](AmlAlert.md) | List of AML alerts triggered during screening | [optional]
+**provider_response** | **Dict[str, object]** | Complete response from the AML provider. This is a dynamic object that varies significantly between different AML providers (Chainalysis, Elliptic, etc.). Each provider has their own proprietary response format and schema. Examples of provider-specific structures: - Chainalysis: Contains cluster info, risk scores, sanctions data - Elliptic: Includes risk assessment, entity types, compliance flags The structure is provider-dependent and cannot be standardized as each vendor implements their own proprietary data models and response formats. | [optional]
+**matched_rule** | [**AmlMatchedRule**](AmlMatchedRule.md) | | [optional]
+**matched_alert** | [**AmlAlert**](AmlAlert.md) | | [optional]
+
+## Example
+
+```python
+from fireblocks.models.aml_result import AmlResult
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AmlResult from a JSON string
+aml_result_instance = AmlResult.from_json(json)
+# print the JSON string representation of the object
+print(AmlResult.to_json())
+
+# convert the object into a dict
+aml_result_dict = aml_result_instance.to_dict()
+# create an instance of AmlResult from a dict
+aml_result_from_dict = AmlResult.from_dict(aml_result_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/AmlStatusEnum.md b/docs/AmlStatusEnum.md
new file mode 100644
index 00000000..ad8cc9ec
--- /dev/null
+++ b/docs/AmlStatusEnum.md
@@ -0,0 +1,19 @@
+# AmlStatusEnum
+
+AML screening status
+
+## Enum
+
+* `COMPLETED` (value: `'COMPLETED'`)
+
+* `PENDING` (value: `'PENDING'`)
+
+* `BYPASSED` (value: `'BYPASSED'`)
+
+* `FAILED` (value: `'FAILED'`)
+
+* `FROZEN` (value: `'FROZEN'`)
+
+[[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/AmountConfig.md b/docs/AmountConfig.md
new file mode 100644
index 00000000..fdd23ea1
--- /dev/null
+++ b/docs/AmountConfig.md
@@ -0,0 +1,30 @@
+# AmountConfig
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**range** | [**AmountRangeMinMax2**](AmountRangeMinMax2.md) | |
+**currency** | [**PolicyCurrency**](PolicyCurrency.md) | | [optional]
+
+## Example
+
+```python
+from fireblocks.models.amount_config import AmountConfig
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AmountConfig from a JSON string
+amount_config_instance = AmountConfig.from_json(json)
+# print the JSON string representation of the object
+print(AmountConfig.to_json())
+
+# convert the object into a dict
+amount_config_dict = amount_config_instance.to_dict()
+# create an instance of AmountConfig from a dict
+amount_config_from_dict = AmountConfig.from_dict(amount_config_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/AmountConfigCurrency.md b/docs/AmountConfigCurrency.md
new file mode 100644
index 00000000..67b84b34
--- /dev/null
+++ b/docs/AmountConfigCurrency.md
@@ -0,0 +1,30 @@
+# AmountConfigCurrency
+
+Currency property for amount configuration
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**currency** | [**PolicyCurrency**](PolicyCurrency.md) | | [optional]
+
+## Example
+
+```python
+from fireblocks.models.amount_config_currency import AmountConfigCurrency
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AmountConfigCurrency from a JSON string
+amount_config_currency_instance = AmountConfigCurrency.from_json(json)
+# print the JSON string representation of the object
+print(AmountConfigCurrency.to_json())
+
+# convert the object into a dict
+amount_config_currency_dict = amount_config_currency_instance.to_dict()
+# create an instance of AmountConfigCurrency from a dict
+amount_config_currency_from_dict = AmountConfigCurrency.from_dict(amount_config_currency_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/AmountOverTimeConfig.md b/docs/AmountOverTimeConfig.md
index d16ae087..04680784 100644
--- a/docs/AmountOverTimeConfig.md
+++ b/docs/AmountOverTimeConfig.md
@@ -6,8 +6,8 @@ Amount over time configuration
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**range** | [**AmountOverTimeConfigRange**](AmountOverTimeConfigRange.md) | |
-**currency** | **str** | Currency for the amount | [optional]
+**range** | [**AmountRangeMinMax2**](AmountRangeMinMax2.md) | |
+**currency** | [**PolicyCurrency**](PolicyCurrency.md) | |
**time_period** | [**TimePeriodConfig**](TimePeriodConfig.md) | |
## Example
diff --git a/docs/AmountOverTimeConfigRange.md b/docs/AmountOverTimeConfigRange.md
deleted file mode 100644
index 5a2bb1cb..00000000
--- a/docs/AmountOverTimeConfigRange.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# AmountOverTimeConfigRange
-
-Amount range configuration
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**min** | **str** | Minimum amount |
-**max** | **str** | Maximum amount (optional) | [optional]
-
-## Example
-
-```python
-from fireblocks.models.amount_over_time_config_range import AmountOverTimeConfigRange
-
-# TODO update the JSON string below
-json = "{}"
-# create an instance of AmountOverTimeConfigRange from a JSON string
-amount_over_time_config_range_instance = AmountOverTimeConfigRange.from_json(json)
-# print the JSON string representation of the object
-print(AmountOverTimeConfigRange.to_json())
-
-# convert the object into a dict
-amount_over_time_config_range_dict = amount_over_time_config_range_instance.to_dict()
-# create an instance of AmountOverTimeConfigRange from a dict
-amount_over_time_config_range_from_dict = AmountOverTimeConfigRange.from_dict(amount_over_time_config_range_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/AmountRange.md b/docs/AmountRange.md
index e7193c96..5d763cbb 100644
--- a/docs/AmountRange.md
+++ b/docs/AmountRange.md
@@ -1,14 +1,12 @@
# AmountRange
-Amount range configuration
+Amount range with minimum and maximum values
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**min** | **str** | Minimum amount |
-**max** | **str** | Maximum amount |
-**currency** | **str** | Currency for the amount |
+**range** | [**AmountRangeMinMax2**](AmountRangeMinMax2.md) | |
## Example
diff --git a/docs/AmountRangeMinMax.md b/docs/AmountRangeMinMax.md
new file mode 100644
index 00000000..aec79b88
--- /dev/null
+++ b/docs/AmountRangeMinMax.md
@@ -0,0 +1,31 @@
+# AmountRangeMinMax
+
+Amount range with minimum and maximum values
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**min** | **str** | Minimum amount | [optional]
+**max** | **str** | Maximum amount | [optional]
+
+## Example
+
+```python
+from fireblocks.models.amount_range_min_max import AmountRangeMinMax
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AmountRangeMinMax from a JSON string
+amount_range_min_max_instance = AmountRangeMinMax.from_json(json)
+# print the JSON string representation of the object
+print(AmountRangeMinMax.to_json())
+
+# convert the object into a dict
+amount_range_min_max_dict = amount_range_min_max_instance.to_dict()
+# create an instance of AmountRangeMinMax from a dict
+amount_range_min_max_from_dict = AmountRangeMinMax.from_dict(amount_range_min_max_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/AmountRangeMinMax2.md b/docs/AmountRangeMinMax2.md
new file mode 100644
index 00000000..89a49229
--- /dev/null
+++ b/docs/AmountRangeMinMax2.md
@@ -0,0 +1,31 @@
+# AmountRangeMinMax2
+
+Amount range with minimum and maximum values
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**min** | **str** | Minimum amount |
+**max** | **str** | Maximum amount | [optional]
+
+## Example
+
+```python
+from fireblocks.models.amount_range_min_max2 import AmountRangeMinMax2
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AmountRangeMinMax2 from a JSON string
+amount_range_min_max2_instance = AmountRangeMinMax2.from_json(json)
+# print the JSON string representation of the object
+print(AmountRangeMinMax2.to_json())
+
+# convert the object into a dict
+amount_range_min_max2_dict = amount_range_min_max2_instance.to_dict()
+# create an instance of AmountRangeMinMax2 from a dict
+amount_range_min_max2_from_dict = AmountRangeMinMax2.from_dict(amount_range_min_max2_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/ApproversConfig.md b/docs/ApproversConfig.md
index c3346ac9..76441500 100644
--- a/docs/ApproversConfig.md
+++ b/docs/ApproversConfig.md
@@ -6,7 +6,7 @@ Approvers configuration
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**can_initiator_approve** | **bool** | Whether initiator can approve | [optional]
+**can_initiator_approve** | **bool** | Whether initiator can approve |
**operator** | **str** | Operator for approval groups | [optional]
**allow_operator_as_authorizer** | **bool** | Whether operator can be authorizer | [optional]
**approval_groups** | [**List[ApproversConfigApprovalGroupsInner]**](ApproversConfigApprovalGroupsInner.md) | List of approval groups | [optional]
diff --git a/docs/BlockchainsAssetsApi.md b/docs/BlockchainsAssetsApi.md
index 1fb0067f..24cd1a9c 100644
--- a/docs/BlockchainsAssetsApi.md
+++ b/docs/BlockchainsAssetsApi.md
@@ -445,6 +445,7 @@ Register a new asset to a workspace and return the newly created asset's details
- TRON
- NEAR
- Solana
+- Sui
### Example
diff --git a/docs/ComplianceResultFullPayload.md b/docs/ComplianceResultFullPayload.md
index 5287f183..eddd4314 100644
--- a/docs/ComplianceResultFullPayload.md
+++ b/docs/ComplianceResultFullPayload.md
@@ -11,6 +11,8 @@ Name | Type | Description | Notes
**aml_list** | [**List[ComplianceScreeningResultFullPayload]**](ComplianceScreeningResultFullPayload.md) | The list of all results of the AML screening. | [optional]
**status** | [**ComplianceResultStatusesEnum**](ComplianceResultStatusesEnum.md) | | [optional]
**aml_registration** | [**AmlRegistrationResultFullPayload**](AmlRegistrationResultFullPayload.md) | | [optional]
+**trlink_registration** | [**TRLinkRegistrationResultFullPayload**](TRLinkRegistrationResultFullPayload.md) | | [optional]
+**trlink_destinations** | [**List[TRLinkResultFullPayload]**](TRLinkResultFullPayload.md) | The list of TRLink destination screening results. | [optional]
## Example
diff --git a/docs/ComplianceResultStatusesEnum.md b/docs/ComplianceResultStatusesEnum.md
index 7d2694f4..df1aa93d 100644
--- a/docs/ComplianceResultStatusesEnum.md
+++ b/docs/ComplianceResultStatusesEnum.md
@@ -1,9 +1,13 @@
# ComplianceResultStatusesEnum
-Status of compliance result screening.
+Status of compliance result screening
## Enum
+* `UNKNOWN` (value: `'Unknown'`)
+
+* `STALLED` (value: `'Stalled'`)
+
* `STARTED` (value: `'Started'`)
* `NETWORKCONNECTIONADDRESSRESOLVE` (value: `'NetworkConnectionAddressResolve'`)
@@ -22,14 +26,46 @@ Status of compliance result screening.
* `TRSTARTED` (value: `'TRStarted'`)
+* `TRLINKSTARTED` (value: `'TRLinkStarted'`)
+
+* `TRLINKDESTINATIONSTARTED` (value: `'TRLinkDestinationStarted'`)
+
+* `TRLINKDESTINATIONPRESCREENPOLICY` (value: `'TRLinkDestinationPrescreenPolicy'`)
+
+* `TRLINKDESTINATIONNOTRMPOLICY` (value: `'TRLinkDestinationNoTRMPolicy'`)
+
+* `TRLINKDESTINATIONSCREEN` (value: `'TRLinkDestinationScreen'`)
+
+* `TRLINKDESTINATIONPOSTSCREENPOLICY` (value: `'TRLinkDestinationPostscreenPolicy'`)
+
+* `TRLINKDESTINATIONCOMPLETED` (value: `'TRLinkDestinationCompleted'`)
+
+* `TRLINKCOMPLETED` (value: `'TRLinkCompleted'`)
+
* `TRCOMPLETED` (value: `'TRCompleted'`)
* `TRFAILED` (value: `'TRFailed'`)
* `COMPLETED` (value: `'Completed'`)
+* `REGISTRATIONSTARTED` (value: `'RegistrationStarted'`)
+
+* `REGISTRATIONWAITFORFIRSTCONFIRMATION` (value: `'RegistrationWaitForFirstConfirmation'`)
+
+* `AMLREGISTRATIONSTARTED` (value: `'AMLRegistrationStarted'`)
+
+* `AMLREGISTRATIONCOMPLETED` (value: `'AMLRegistrationCompleted'`)
+
+* `TRUPDATESTARTED` (value: `'TRUpdateStarted'`)
+
+* `TRUPDATECOMPLETED` (value: `'TRUpdateCompleted'`)
+
+* `UPDATECOMPLETED` (value: `'UpdateCompleted'`)
+
* `INCOMINGSTARTED` (value: `'IncomingStarted'`)
+* `INCOMINGBYORKSL` (value: `'IncomingByorkSL'`)
+
* `INCOMINGSCREENINGPREPARE` (value: `'IncomingScreeningPrepare'`)
* `INCOMINGWAITFORFIRSTCONFIRMATION` (value: `'IncomingWaitForFirstConfirmation'`)
@@ -50,7 +86,19 @@ Status of compliance result screening.
* `INCOMINGCOMPLETED` (value: `'IncomingCompleted'`)
-* `UPDATECOMPLETED` (value: `'UpdateCompleted'`)
+* `ADDRESSAMLINITIATED` (value: `'AddressAmlInitiated'`)
+
+* `ADDRESSAMLADDRESSRESOLVE` (value: `'AddressAmlAddressResolve'`)
+
+* `ADDRESSAMLPREPARE` (value: `'AddressAmlPrepare'`)
+
+* `ADDRESSAMLPROCESSING` (value: `'AddressAmlProcessing'`)
+
+* `ADDRESSAMLSUCCEEDED` (value: `'AddressAmlSucceeded'`)
+
+* `ADDRESSAMLFAILED` (value: `'AddressAmlFailed'`)
+
+* `ADDRESSAMLCOMPLETED` (value: `'AddressAmlCompleted'`)
[[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/ComplianceResults.md b/docs/ComplianceResults.md
index 4c3bd02b..a6b3351e 100644
--- a/docs/ComplianceResults.md
+++ b/docs/ComplianceResults.md
@@ -11,6 +11,8 @@ Name | Type | Description | Notes
**aml_list** | [**List[ComplianceScreeningResult]**](ComplianceScreeningResult.md) | The list of all results of the AML screening. | [optional]
**status** | [**ComplianceResultStatusesEnum**](ComplianceResultStatusesEnum.md) | | [optional]
**aml_registration** | [**AmlRegistrationResult**](AmlRegistrationResult.md) | | [optional]
+**trlink_registration** | [**TRLinkRegistrationResult**](TRLinkRegistrationResult.md) | | [optional]
+**trlink_destinations** | [**List[TRLinkResult]**](TRLinkResult.md) | The list of TRLink destination screening results. | [optional]
## Example
diff --git a/docs/ComplianceScreeningResult.md b/docs/ComplianceScreeningResult.md
index 20e602be..9f1ba3de 100644
--- a/docs/ComplianceScreeningResult.md
+++ b/docs/ComplianceScreeningResult.md
@@ -1,15 +1,41 @@
# ComplianceScreeningResult
+The result of the AML/Travel Rule screening. This unified schema contains all fields that may be returned for both AML and Travel Rule screening results. Not all fields will be present in every response - the actual fields depend on the screening type and provider.
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**provider** | **str** | Screening provider | [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** | Reason AML screening was bypassed | [optional]
-**screening_status** | **str** | | [optional]
-**timestamp** | **float** | | [optional]
+**provider** | **str** | The AML/Travel Rule provider name. For AML: ELLIPTIC, CHAINALYSIS, SCORECHAIN, MERKLE_SCIENCE, etc. For Travel Rule: NOTABENE, SYGNA, or any TRLink provider name | [optional]
+**payload** | **object** | The raw payload of the screening result from the provider. The payload is a JSON object that contains the screening result. The payload structure is different for each screening provider. This field contains the complete, unmodified response from the screening service. | [optional]
+**timestamp** | **float** | Unix timestamp in milliseconds when the screening result was generated | [optional]
+**screening_status** | **str** | Current status of the screening process | [optional]
+**bypass_reason** | **str** | Reason for bypassing the screening, if applicable. For AML: SANCTIONS_SCREENING_BYPASS, SANCTIONS_RECIPIENT_BYPASS, etc. For Travel Rule: BELOW_THRESHOLD, NO_TRM_AVAILABLE, etc. | [optional]
+**status** | [**AmlStatusEnum**](AmlStatusEnum.md) | | [optional]
+**prev_status** | [**AmlStatusEnum**](AmlStatusEnum.md) | | [optional]
+**prev_bypass_reason** | **str** | Previous bypass reason before the current bypass reason change | [optional]
+**verdict** | [**ScreeningVerdictEnum**](ScreeningVerdictEnum.md) | | [optional]
+**risk** | [**ScreeningRiskLevelEnum**](ScreeningRiskLevelEnum.md) | | [optional]
+**extended_risk** | [**ScreeningRiskLevelEnum**](ScreeningRiskLevelEnum.md) | | [optional]
+**external_id** | **str** | External identifier for the screening (provider-specific) | [optional]
+**customer_ref_id** | **str** | Customer-provided reference identifier for tracking | [optional]
+**ref_id** | **str** | Internal reference identifier | [optional]
+**category** | **str** | Risk category classification. Examples: EXCHANGE, GAMBLING, MIXER, DARKNET_SERVICE, SANCTIONED_ENTITY | [optional]
+**category_id** | **float** | Numeric identifier for the risk category | [optional]
+**dest_address** | **str** | The destination blockchain address associated with the screening | [optional]
+**dest_tag** | **str** | Destination tag or memo (for chains that support it like XRP, XLM) | [optional]
+**dest_record_id** | **str** | The destination record identifier used by the screening provider | [optional]
+**address_resolution_signature** | **str** | Cryptographic signature for address resolution verification | [optional]
+**aml_result** | [**AmlResult**](AmlResult.md) | | [optional]
+**result** | [**TravelRuleResult**](TravelRuleResult.md) | | [optional]
+**details_message** | **str** | Additional human-readable details or message about the screening result | [optional]
+**matched_alert** | **object** | Information about the AML alert that was matched, if any. Contains details about the specific alert that triggered during screening. | [optional]
+**matched_rule** | **object** | The matched rule information for this screening result. Contains details about which screening rule was applied and matched. | [optional]
+**matched_prescreening_rule** | [**TravelRulePrescreeningRule**](TravelRulePrescreeningRule.md) | | [optional]
+**matched_no_trm_screening_rule** | **object** | Matched no-TRM (Travel Rule Message) screening rule details. Used when TRLink screening detects a missing TRM scenario. | [optional]
+**customer_integration_id** | **str** | Customer integration identifier used by Travel Rule providers | [optional]
+**customer_short_name** | **str** | Customer short name registered with Travel Rule providers | [optional]
+**travel_rule_message_id** | **str** | Travel rule message identifier for linking and tracking across providers | [optional]
## Example
diff --git a/docs/ComplianceScreeningResultFullPayload.md b/docs/ComplianceScreeningResultFullPayload.md
index 9c701e6d..0b6b97f3 100644
--- a/docs/ComplianceScreeningResultFullPayload.md
+++ b/docs/ComplianceScreeningResultFullPayload.md
@@ -1,16 +1,41 @@
# ComplianceScreeningResultFullPayload
-The result of the Travel Rule screening.
+The result of the AML/Travel Rule screening. This unified schema contains all fields that may be returned for both AML and Travel Rule screening results. Not all fields will be present in every response - the actual fields depend on the screening type and provider.
## 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]
+**provider** | **str** | The AML/Travel Rule provider name. For AML: ELLIPTIC, CHAINALYSIS, etc. For Travel Rule: NOTABENE, SUMSUB, or any TRLink provider name | [optional]
+**payload** | **object** | The raw payload of the screening result from the provider. The payload is a JSON object that contains the screening result. The payload structure is different for each screening provider. This field contains the complete, unmodified response from the screening service. | [optional]
+**timestamp** | **float** | Unix timestamp in milliseconds when the screening result was generated | [optional]
+**screening_status** | **str** | Current status of the screening process | [optional]
+**bypass_reason** | **str** | Reason for bypassing the screening, if applicable. For AML: SANCTIONS_SCREENING_BYPASS, SANCTIONS_RECIPIENT_BYPASS, etc. For Travel Rule: BELOW_THRESHOLD, NO_TRM_AVAILABLE, etc. | [optional]
+**status** | [**AmlStatusEnum**](AmlStatusEnum.md) | | [optional]
+**prev_status** | [**AmlStatusEnum**](AmlStatusEnum.md) | | [optional]
+**prev_bypass_reason** | **str** | Previous bypass reason before the current bypass reason change | [optional]
+**verdict** | [**ScreeningVerdictEnum**](ScreeningVerdictEnum.md) | | [optional]
+**risk** | [**ScreeningRiskLevelEnum**](ScreeningRiskLevelEnum.md) | | [optional]
+**extended_risk** | [**ScreeningRiskLevelEnum**](ScreeningRiskLevelEnum.md) | | [optional]
+**external_id** | **str** | External identifier for the screening (provider-specific) | [optional]
+**customer_ref_id** | **str** | Customer-provided reference identifier for tracking | [optional]
+**ref_id** | **str** | Internal reference identifier | [optional]
+**category** | **str** | Risk category classification. Examples: EXCHANGE, GAMBLING, MIXER, DARKNET_SERVICE, SANCTIONED_ENTITY | [optional]
+**category_id** | **float** | Numeric identifier for the risk category | [optional]
+**dest_address** | **str** | The destination blockchain address associated with the screening | [optional]
+**dest_tag** | **str** | Destination tag or memo (for chains that support it like XRP, XLM) | [optional]
+**dest_record_id** | **str** | The destination record identifier used by the screening provider | [optional]
+**address_resolution_signature** | **str** | Cryptographic signature for address resolution verification | [optional]
+**aml_result** | [**ScreeningAmlResult**](ScreeningAmlResult.md) | | [optional]
+**result** | [**ScreeningTravelRuleResult**](ScreeningTravelRuleResult.md) | | [optional]
+**details_message** | **str** | Additional human-readable details or message about the screening result | [optional]
+**matched_alert** | **object** | Information about the AML alert that was matched, if any. Contains details about the specific alert that triggered during screening. | [optional]
+**matched_rule** | **object** | The matched rule information for this screening result. Contains details about which screening rule was applied and matched. | [optional]
+**matched_prescreening_rule** | [**ScreeningTravelRulePrescreeningRule**](ScreeningTravelRulePrescreeningRule.md) | | [optional]
+**matched_no_trm_screening_rule** | **object** | Matched no-TRM (Travel Rule Message) screening rule details. Used when TRLink screening detects a missing TRM scenario. | [optional]
+**customer_integration_id** | **str** | Customer integration identifier used by Travel Rule providers | [optional]
+**customer_short_name** | **str** | Customer short name registered with Travel Rule providers | [optional]
+**travel_rule_message_id** | **str** | Travel rule message identifier for linking and tracking across providers | [optional]
## Example
diff --git a/docs/DAppAddressConfig.md b/docs/DAppAddressConfig.md
new file mode 100644
index 00000000..d55a106e
--- /dev/null
+++ b/docs/DAppAddressConfig.md
@@ -0,0 +1,33 @@
+# DAppAddressConfig
+
+dApp address configuration for policy rules
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**global_whitelisted** | **List[str]** | Globally whitelisted addresses |
+**tenant_whitelisted** | **List[str]** | Tenant whitelisted addresses |
+**urls** | **List[str]** | Allowed all address |
+**operator** | [**PolicyOperator**](PolicyOperator.md) | |
+
+## Example
+
+```python
+from fireblocks.models.d_app_address_config import DAppAddressConfig
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of DAppAddressConfig from a JSON string
+d_app_address_config_instance = DAppAddressConfig.from_json(json)
+# print the JSON string representation of the object
+print(DAppAddressConfig.to_json())
+
+# convert the object into a dict
+d_app_address_config_dict = d_app_address_config_instance.to_dict()
+# create an instance of DAppAddressConfig from a dict
+d_app_address_config_from_dict = DAppAddressConfig.from_dict(d_app_address_config_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/DestinationConfig.md b/docs/DestinationConfig.md
index 820ff44c..e664b7f7 100644
--- a/docs/DestinationConfig.md
+++ b/docs/DestinationConfig.md
@@ -6,11 +6,12 @@ Destination configuration for policy rules
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**type** | [**AccountType2**](AccountType2.md) | |
+**type** | [**List[AccountType2]**](AccountType2.md) | Destination account types | [optional]
**sub_type** | [**List[AccountIdentifier]**](AccountIdentifier.md) | | [optional]
**ids** | [**List[AccountIdentifier]**](AccountIdentifier.md) | | [optional]
+**tags** | [**List[PolicyTag]**](PolicyTag.md) | Tags for destination matching | [optional]
**operator** | [**PolicyOperator**](PolicyOperator.md) | |
-**match_from** | **str** | Whether to match from account or source | [optional]
+**match_from** | **str** | Whether to match from account or source (relevant only for ORDER policy type). If set to ACCOUNT, only matchFrom is allowed and other fields are not required. | [optional]
**address_type** | **str** | Type of destination addresses allowed |
## Example
diff --git a/docs/DirectAccessProviderDetails.md b/docs/DirectAccessProviderDetails.md
new file mode 100644
index 00000000..b8849694
--- /dev/null
+++ b/docs/DirectAccessProviderDetails.md
@@ -0,0 +1,31 @@
+# DirectAccessProviderDetails
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**approved** | **bool** | Whether the provider was approved for use | [optional]
+**has_terms_of_service** | **bool** | Whether the provider has terms of service |
+**terms_of_service_url** | **str** | URL to the terms of service document | [optional]
+
+## Example
+
+```python
+from fireblocks.models.direct_access_provider_details import DirectAccessProviderDetails
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of DirectAccessProviderDetails from a JSON string
+direct_access_provider_details_instance = DirectAccessProviderDetails.from_json(json)
+# print the JSON string representation of the object
+print(DirectAccessProviderDetails.to_json())
+
+# convert the object into a dict
+direct_access_provider_details_dict = direct_access_provider_details_instance.to_dict()
+# create an instance of DirectAccessProviderDetails from a dict
+direct_access_provider_details_from_dict = DirectAccessProviderDetails.from_dict(direct_access_provider_details_dict)
+```
+[[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/ExecutionRequestDetails.md b/docs/ExecutionRequestDetails.md
index e6799082..18b8fa7b 100644
--- a/docs/ExecutionRequestDetails.md
+++ b/docs/ExecutionRequestDetails.md
@@ -16,7 +16,7 @@ Name | Type | Description | Notes
**quote_asset_id** | **str** | Target asset identifier |
**quote_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional]
**quote_id** | **str** | Quote ID for quote orders |
-**re_quote** | [**QuoteExecutionWithRequoteRequestDetailsAllOfReQuote**](QuoteExecutionWithRequoteRequestDetailsAllOfReQuote.md) | | [optional]
+**re_quote** | [**ReQuoteDetailsReQuote**](ReQuoteDetailsReQuote.md) | | [optional]
## Example
diff --git a/docs/ExecutionResponseDetails.md b/docs/ExecutionResponseDetails.md
index be841f30..ceb14874 100644
--- a/docs/ExecutionResponseDetails.md
+++ b/docs/ExecutionResponseDetails.md
@@ -16,7 +16,7 @@ Name | Type | Description | Notes
**quote_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional]
**quote_id** | **str** | Quote ID for quote orders |
**quote_amount** | **str** | Quote amount for quote orders |
-**re_quote** | [**QuoteExecutionWithRequoteResponseDetailsAllOfReQuote**](QuoteExecutionWithRequoteResponseDetailsAllOfReQuote.md) | | [optional]
+**re_quote** | [**ReQuoteDetailsReQuote**](ReQuoteDetailsReQuote.md) | | [optional]
## Example
diff --git a/docs/ExecutionStepType.md b/docs/ExecutionStepType.md
index d2ed71dd..80c28855 100644
--- a/docs/ExecutionStepType.md
+++ b/docs/ExecutionStepType.md
@@ -13,6 +13,8 @@
* `SETTLEMENT` (value: `'SETTLEMENT'`)
+* `DELIVERY` (value: `'DELIVERY'`)
+
[[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/FeePropertiesDetails.md b/docs/FeePropertiesDetails.md
new file mode 100644
index 00000000..e983e842
--- /dev/null
+++ b/docs/FeePropertiesDetails.md
@@ -0,0 +1,31 @@
+# FeePropertiesDetails
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**fee_type** | **str** | The type of fee, such as ORDER, NETWORK, or SPREAD. ORDER - Fee for executing the order. NETWORK - Fee for network transactions. SPREAD - Fee for the difference between buy and sell prices. |
+**asset_id** | **str** | The asset identifier for the fee. |
+**amount_type** | **str** | The type of amount for the fee, either FIXED or BPS (basis points). |
+
+## Example
+
+```python
+from fireblocks.models.fee_properties_details import FeePropertiesDetails
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of FeePropertiesDetails from a JSON string
+fee_properties_details_instance = FeePropertiesDetails.from_json(json)
+# print the JSON string representation of the object
+print(FeePropertiesDetails.to_json())
+
+# convert the object into a dict
+fee_properties_details_dict = fee_properties_details_instance.to_dict()
+# create an instance of FeePropertiesDetails from a dict
+fee_properties_details_from_dict = FeePropertiesDetails.from_dict(fee_properties_details_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/FiatDestination.md b/docs/FiatDestination.md
new file mode 100644
index 00000000..e3df9c0e
--- /dev/null
+++ b/docs/FiatDestination.md
@@ -0,0 +1,30 @@
+# FiatDestination
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**type** | **str** | |
+**address** | [**MobileMoneyAddress**](MobileMoneyAddress.md) | |
+
+## Example
+
+```python
+from fireblocks.models.fiat_destination import FiatDestination
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of FiatDestination from a JSON string
+fiat_destination_instance = FiatDestination.from_json(json)
+# print the JSON string representation of the object
+print(FiatDestination.to_json())
+
+# convert the object into a dict
+fiat_destination_dict = fiat_destination_instance.to_dict()
+# create an instance of FiatDestination from a dict
+fiat_destination_from_dict = FiatDestination.from_dict(fiat_destination_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/IbanAddress.md b/docs/IbanAddress.md
new file mode 100644
index 00000000..09ea557b
--- /dev/null
+++ b/docs/IbanAddress.md
@@ -0,0 +1,30 @@
+# IbanAddress
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**account_holder** | [**AccountHolderDetails**](AccountHolderDetails.md) | |
+**iban** | **str** | |
+
+## Example
+
+```python
+from fireblocks.models.iban_address import IbanAddress
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of IbanAddress from a JSON string
+iban_address_instance = IbanAddress.from_json(json)
+# print the JSON string representation of the object
+print(IbanAddress.to_json())
+
+# convert the object into a dict
+iban_address_dict = iban_address_instance.to_dict()
+# create an instance of IbanAddress from a dict
+iban_address_from_dict = IbanAddress.from_dict(iban_address_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/IbanDestination.md b/docs/IbanDestination.md
new file mode 100644
index 00000000..9432114d
--- /dev/null
+++ b/docs/IbanDestination.md
@@ -0,0 +1,30 @@
+# IbanDestination
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**type** | **str** | |
+**address** | [**IbanAddress**](IbanAddress.md) | |
+
+## Example
+
+```python
+from fireblocks.models.iban_destination import IbanDestination
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of IbanDestination from a JSON string
+iban_destination_instance = IbanDestination.from_json(json)
+# print the JSON string representation of the object
+print(IbanDestination.to_json())
+
+# convert the object into a dict
+iban_destination_dict = iban_destination_instance.to_dict()
+# create an instance of IbanDestination from a dict
+iban_destination_from_dict = IbanDestination.from_dict(iban_destination_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/InitiatorConfig.md b/docs/InitiatorConfig.md
index 39652f3d..404eff58 100644
--- a/docs/InitiatorConfig.md
+++ b/docs/InitiatorConfig.md
@@ -11,7 +11,7 @@ Name | Type | Description | Notes
**services** | **List[str]** | | [optional]
**fb_admin_groups** | **List[str]** | | [optional]
**exchange** | **List[str]** | | [optional]
-**operator** | [**PolicyOperator**](PolicyOperator.md) | |
+**operator** | [**PolicyOperator**](PolicyOperator.md) | | [optional]
## Example
diff --git a/docs/InitiatorConfigPattern.md b/docs/InitiatorConfigPattern.md
index 83eb46fa..790505f3 100644
--- a/docs/InitiatorConfigPattern.md
+++ b/docs/InitiatorConfigPattern.md
@@ -10,7 +10,7 @@ Name | Type | Description | Notes
**services** | **List[str]** | | [optional]
**fb_admin_groups** | **List[str]** | | [optional]
**exchange** | **List[str]** | | [optional]
-**operator** | [**PolicyOperator**](PolicyOperator.md) | |
+**operator** | [**PolicyOperator**](PolicyOperator.md) | | [optional]
## Example
diff --git a/docs/LimitExecutionRequestDetails.md b/docs/LimitExecutionRequestDetails.md
index 7fec96ac..1e2d9731 100644
--- a/docs/LimitExecutionRequestDetails.md
+++ b/docs/LimitExecutionRequestDetails.md
@@ -5,15 +5,15 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
+**type** | **str** | Order type for limit orders |
+**time_in_force** | [**TimeInForce**](TimeInForce.md) | |
+**limit_price** | **str** | Price for limit orders |
**side** | **str** | Side of the order | [default to 'BUY']
**base_amount** | **str** | Amount to convert |
**base_asset_id** | **str** | Source asset identifier |
**base_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional]
**quote_asset_id** | **str** | Target asset identifier |
**quote_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional]
-**type** | **str** | Order type for limit orders |
-**time_in_force** | [**TimeInForce**](TimeInForce.md) | |
-**limit_price** | **str** | Price for limit orders |
## Example
diff --git a/docs/LimitExecutionResponseDetails.md b/docs/LimitExecutionResponseDetails.md
index 599fed11..88d0a6fd 100644
--- a/docs/LimitExecutionResponseDetails.md
+++ b/docs/LimitExecutionResponseDetails.md
@@ -5,15 +5,15 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
+**type** | **str** | Order type for limit orders |
+**time_in_force** | [**TimeInForce**](TimeInForce.md) | |
+**limit_price** | **str** | Price for limit orders |
**side** | **str** | Side of the order | [default to 'BUY']
**base_amount** | **str** | Amount to convert |
**base_asset_id** | **str** | Source asset identifier |
**base_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional]
**quote_asset_id** | **str** | Target asset identifier |
**quote_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional]
-**type** | **str** | Order type for limit orders |
-**time_in_force** | [**TimeInForce**](TimeInForce.md) | |
-**limit_price** | **str** | Price for limit orders |
## Example
diff --git a/docs/LimitTypeDetails.md b/docs/LimitTypeDetails.md
new file mode 100644
index 00000000..8b795d94
--- /dev/null
+++ b/docs/LimitTypeDetails.md
@@ -0,0 +1,31 @@
+# LimitTypeDetails
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**type** | **str** | Order type for limit orders |
+**time_in_force** | [**TimeInForce**](TimeInForce.md) | |
+**limit_price** | **str** | Price for limit orders |
+
+## Example
+
+```python
+from fireblocks.models.limit_type_details import LimitTypeDetails
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of LimitTypeDetails from a JSON string
+limit_type_details_instance = LimitTypeDetails.from_json(json)
+# print the JSON string representation of the object
+print(LimitTypeDetails.to_json())
+
+# convert the object into a dict
+limit_type_details_dict = limit_type_details_instance.to_dict()
+# create an instance of LimitTypeDetails from a dict
+limit_type_details_from_dict = LimitTypeDetails.from_dict(limit_type_details_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/LocalBankTransferAfricaAddress.md b/docs/LocalBankTransferAfricaAddress.md
new file mode 100644
index 00000000..61830dd5
--- /dev/null
+++ b/docs/LocalBankTransferAfricaAddress.md
@@ -0,0 +1,32 @@
+# LocalBankTransferAfricaAddress
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**account_holder** | [**AccountHolderDetails**](AccountHolderDetails.md) | |
+**account_number** | **str** | |
+**bank_name** | **str** | Name of the bank |
+**bank_code** | **str** | Internal bank identifier |
+
+## Example
+
+```python
+from fireblocks.models.local_bank_transfer_africa_address import LocalBankTransferAfricaAddress
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of LocalBankTransferAfricaAddress from a JSON string
+local_bank_transfer_africa_address_instance = LocalBankTransferAfricaAddress.from_json(json)
+# print the JSON string representation of the object
+print(LocalBankTransferAfricaAddress.to_json())
+
+# convert the object into a dict
+local_bank_transfer_africa_address_dict = local_bank_transfer_africa_address_instance.to_dict()
+# create an instance of LocalBankTransferAfricaAddress from a dict
+local_bank_transfer_africa_address_from_dict = LocalBankTransferAfricaAddress.from_dict(local_bank_transfer_africa_address_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/LocalBankTransferAfricaDestination.md b/docs/LocalBankTransferAfricaDestination.md
new file mode 100644
index 00000000..2a96f127
--- /dev/null
+++ b/docs/LocalBankTransferAfricaDestination.md
@@ -0,0 +1,30 @@
+# LocalBankTransferAfricaDestination
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**type** | **str** | |
+**address** | [**LocalBankTransferAfricaAddress**](LocalBankTransferAfricaAddress.md) | |
+
+## Example
+
+```python
+from fireblocks.models.local_bank_transfer_africa_destination import LocalBankTransferAfricaDestination
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of LocalBankTransferAfricaDestination from a JSON string
+local_bank_transfer_africa_destination_instance = LocalBankTransferAfricaDestination.from_json(json)
+# print the JSON string representation of the object
+print(LocalBankTransferAfricaDestination.to_json())
+
+# convert the object into a dict
+local_bank_transfer_africa_destination_dict = local_bank_transfer_africa_destination_instance.to_dict()
+# create an instance of LocalBankTransferAfricaDestination from a dict
+local_bank_transfer_africa_destination_from_dict = LocalBankTransferAfricaDestination.from_dict(local_bank_transfer_africa_destination_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/MarketExecutionRequestDetails.md b/docs/MarketExecutionRequestDetails.md
index 21ca130a..8928c724 100644
--- a/docs/MarketExecutionRequestDetails.md
+++ b/docs/MarketExecutionRequestDetails.md
@@ -5,13 +5,13 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
+**type** | **str** | Order type for market orders |
**side** | **str** | Side of the order | [default to 'BUY']
**base_amount** | **str** | Amount to convert |
**base_asset_id** | **str** | Source asset identifier |
**base_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional]
**quote_asset_id** | **str** | Target asset identifier |
**quote_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional]
-**type** | **str** | Order type for market orders |
## Example
diff --git a/docs/MarketExecutionResponseDetails.md b/docs/MarketExecutionResponseDetails.md
index 76eaf5db..7df73b82 100644
--- a/docs/MarketExecutionResponseDetails.md
+++ b/docs/MarketExecutionResponseDetails.md
@@ -5,13 +5,13 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
+**type** | **str** | Order type for market orders |
**side** | **str** | Side of the order | [default to 'BUY']
**base_amount** | **str** | Amount to convert |
**base_asset_id** | **str** | Source asset identifier |
**base_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional]
**quote_asset_id** | **str** | Target asset identifier |
**quote_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional]
-**type** | **str** | Order type for market orders |
## Example
diff --git a/docs/MarketTypeDetails.md b/docs/MarketTypeDetails.md
new file mode 100644
index 00000000..c16ed6a2
--- /dev/null
+++ b/docs/MarketTypeDetails.md
@@ -0,0 +1,29 @@
+# MarketTypeDetails
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**type** | **str** | Order type for market orders |
+
+## Example
+
+```python
+from fireblocks.models.market_type_details import MarketTypeDetails
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of MarketTypeDetails from a JSON string
+market_type_details_instance = MarketTypeDetails.from_json(json)
+# print the JSON string representation of the object
+print(MarketTypeDetails.to_json())
+
+# convert the object into a dict
+market_type_details_dict = market_type_details_instance.to_dict()
+# create an instance of MarketTypeDetails from a dict
+market_type_details_from_dict = MarketTypeDetails.from_dict(market_type_details_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/MobileMoneyAddress.md b/docs/MobileMoneyAddress.md
new file mode 100644
index 00000000..b5783c24
--- /dev/null
+++ b/docs/MobileMoneyAddress.md
@@ -0,0 +1,33 @@
+# MobileMoneyAddress
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**account_holder** | [**AccountHolderDetails**](AccountHolderDetails.md) | |
+**mobile_phone_number** | **str** | Mobile phone number in E.164 format |
+**provider** | **str** | Mobile money provider |
+**beneficiary_document_id** | **str** | Beneficiary document identification (may be required) | [optional]
+**beneficiary_relationship** | **str** | Relationship to beneficiary for AML purposes | [optional]
+
+## Example
+
+```python
+from fireblocks.models.mobile_money_address import MobileMoneyAddress
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of MobileMoneyAddress from a JSON string
+mobile_money_address_instance = MobileMoneyAddress.from_json(json)
+# print the JSON string representation of the object
+print(MobileMoneyAddress.to_json())
+
+# convert the object into a dict
+mobile_money_address_dict = mobile_money_address_instance.to_dict()
+# create an instance of MobileMoneyAddress from a dict
+mobile_money_address_from_dict = MobileMoneyAddress.from_dict(mobile_money_address_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/MobileMoneyDestination.md b/docs/MobileMoneyDestination.md
new file mode 100644
index 00000000..c023c51f
--- /dev/null
+++ b/docs/MobileMoneyDestination.md
@@ -0,0 +1,30 @@
+# MobileMoneyDestination
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**type** | **str** | |
+**address** | [**MobileMoneyAddress**](MobileMoneyAddress.md) | |
+
+## Example
+
+```python
+from fireblocks.models.mobile_money_destination import MobileMoneyDestination
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of MobileMoneyDestination from a JSON string
+mobile_money_destination_instance = MobileMoneyDestination.from_json(json)
+# print the JSON string representation of the object
+print(MobileMoneyDestination.to_json())
+
+# convert the object into a dict
+mobile_money_destination_dict = mobile_money_destination_instance.to_dict()
+# create an instance of MobileMoneyDestination from a dict
+mobile_money_destination_from_dict = MobileMoneyDestination.from_dict(mobile_money_destination_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/OrderSide.md b/docs/OrderSide.md
new file mode 100644
index 00000000..58fb022b
--- /dev/null
+++ b/docs/OrderSide.md
@@ -0,0 +1,15 @@
+# OrderSide
+
+Order side for trading operations
+
+## Enum
+
+* `BUY` (value: `'BUY'`)
+
+* `SELL` (value: `'SELL'`)
+
+* `ANY` (value: `'ANY'`)
+
+[[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/OrderStatus.md b/docs/OrderStatus.md
index e49dbe7e..47f0cddf 100644
--- a/docs/OrderStatus.md
+++ b/docs/OrderStatus.md
@@ -5,6 +5,8 @@
* `CREATED` (value: `'CREATED'`)
+* `AWAITING_PAYMENT` (value: `'AWAITING_PAYMENT'`)
+
* `PENDING_USER_ACTION` (value: `'PENDING_USER_ACTION'`)
* `PROCESSING` (value: `'PROCESSING'`)
diff --git a/docs/PaymentInstructions.md b/docs/PaymentInstructions.md
index caa1b573..9606025c 100644
--- a/docs/PaymentInstructions.md
+++ b/docs/PaymentInstructions.md
@@ -6,8 +6,8 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**type** | **str** | |
-**address** | [**AccountHolderDetails**](AccountHolderDetails.md) | |
-**reference_id** | **str** | |
+**address** | [**MobileMoneyAddress**](MobileMoneyAddress.md) | |
+**reference_id** | **str** | | [optional]
## Example
diff --git a/docs/PaymentInstructionsDetails.md b/docs/PaymentInstructionsDetails.md
new file mode 100644
index 00000000..7567879a
--- /dev/null
+++ b/docs/PaymentInstructionsDetails.md
@@ -0,0 +1,29 @@
+# PaymentInstructionsDetails
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**reference_id** | **str** | | [optional]
+
+## Example
+
+```python
+from fireblocks.models.payment_instructions_details import PaymentInstructionsDetails
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of PaymentInstructionsDetails from a JSON string
+payment_instructions_details_instance = PaymentInstructionsDetails.from_json(json)
+# print the JSON string representation of the object
+print(PaymentInstructionsDetails.to_json())
+
+# convert the object into a dict
+payment_instructions_details_dict = payment_instructions_details_instance.to_dict()
+# create an instance of PaymentInstructionsDetails from a dict
+payment_instructions_details_from_dict = PaymentInstructionsDetails.from_dict(payment_instructions_details_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/PixAddress.md b/docs/PixAddress.md
new file mode 100644
index 00000000..ecf970dd
--- /dev/null
+++ b/docs/PixAddress.md
@@ -0,0 +1,33 @@
+# PixAddress
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**account_holder** | [**AccountHolderDetails**](AccountHolderDetails.md) | |
+**pix_key** | **str** | |
+**key_type** | **str** | |
+**bank_name** | **str** | | [optional]
+**bank_code** | **str** | | [optional]
+
+## Example
+
+```python
+from fireblocks.models.pix_address import PixAddress
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of PixAddress from a JSON string
+pix_address_instance = PixAddress.from_json(json)
+# print the JSON string representation of the object
+print(PixAddress.to_json())
+
+# convert the object into a dict
+pix_address_dict = pix_address_instance.to_dict()
+# create an instance of PixAddress from a dict
+pix_address_from_dict = PixAddress.from_dict(pix_address_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/PixDestination.md b/docs/PixDestination.md
new file mode 100644
index 00000000..c2df7d9b
--- /dev/null
+++ b/docs/PixDestination.md
@@ -0,0 +1,30 @@
+# PixDestination
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**type** | **str** | |
+**address** | [**PixAddress**](PixAddress.md) | |
+
+## Example
+
+```python
+from fireblocks.models.pix_destination import PixDestination
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of PixDestination from a JSON string
+pix_destination_instance = PixDestination.from_json(json)
+# print the JSON string representation of the object
+print(PixDestination.to_json())
+
+# convert the object into a dict
+pix_destination_dict = pix_destination_instance.to_dict()
+# create an instance of PixDestination from a dict
+pix_destination_from_dict = PixDestination.from_dict(pix_destination_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/PolicyCurrency.md b/docs/PolicyCurrency.md
new file mode 100644
index 00000000..8df99662
--- /dev/null
+++ b/docs/PolicyCurrency.md
@@ -0,0 +1,15 @@
+# PolicyCurrency
+
+Currency for the amount
+
+## Enum
+
+* `NATIVE` (value: `'NATIVE'`)
+
+* `USD` (value: `'USD'`)
+
+* `EUR` (value: `'EUR'`)
+
+[[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/PolicyOperator.md b/docs/PolicyOperator.md
index 5ee53d89..c32bbddd 100644
--- a/docs/PolicyOperator.md
+++ b/docs/PolicyOperator.md
@@ -6,8 +6,6 @@ Operator for selection
* `INCLUDES` (value: `'INCLUDES'`)
-* `EXCLUDES` (value: `'EXCLUDES'`)
-
[[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/PolicyRule.md b/docs/PolicyRule.md
index 3a9c4d62..fd927741 100644
--- a/docs/PolicyRule.md
+++ b/docs/PolicyRule.md
@@ -12,13 +12,14 @@ Name | Type | Description | Notes
**type** | [**PolicyType**](PolicyType.md) | |
**sub_type** | [**PolicyType**](PolicyType.md) | | [optional]
**initiator** | [**InitiatorConfigPattern**](InitiatorConfigPattern.md) | |
-**asset** | [**AssetConfig**](AssetConfig.md) | |
-**source** | [**AccountConfig**](AccountConfig.md) | |
+**asset** | [**AssetConfig**](AssetConfig.md) | | [optional]
+**source** | [**SourceConfig**](SourceConfig.md) | |
**destination** | [**DestinationConfig**](DestinationConfig.md) | | [optional]
**account** | [**AccountConfig**](AccountConfig.md) | | [optional]
+**side** | [**OrderSide**](OrderSide.md) | | [optional]
**verdict** | [**VerdictConfig**](VerdictConfig.md) | |
**amount_over_time** | [**AmountOverTimeConfig**](AmountOverTimeConfig.md) | | [optional]
-**amount** | [**AmountRange**](AmountRange.md) | | [optional]
+**amount** | [**AmountConfig**](AmountConfig.md) | | [optional]
**external_descriptor** | **str** | External descriptor for the rule | [optional]
**method** | [**ContractMethodPattern**](ContractMethodPattern.md) | | [optional]
**is_global_policy** | **bool** | Whether this is a global policy | [optional]
@@ -28,6 +29,7 @@ Name | Type | Description | Notes
**base_asset** | [**AssetConfig**](AssetConfig.md) | | [optional]
**quote_amount** | [**AmountRange**](AmountRange.md) | | [optional]
**base_amount** | [**AmountRange**](AmountRange.md) | | [optional]
+**d_app_address** | [**DAppAddressConfig**](DAppAddressConfig.md) | | [optional]
**derivation_path** | [**DerivationPathConfig**](DerivationPathConfig.md) | | [optional]
**index** | **float** | Index for the policy rule | [optional]
diff --git a/docs/PolicyTag.md b/docs/PolicyTag.md
new file mode 100644
index 00000000..44f94bcf
--- /dev/null
+++ b/docs/PolicyTag.md
@@ -0,0 +1,30 @@
+# PolicyTag
+
+Policy tag for matching
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | Tag identifier |
+
+## Example
+
+```python
+from fireblocks.models.policy_tag import PolicyTag
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of PolicyTag from a JSON string
+policy_tag_instance = PolicyTag.from_json(json)
+# print the JSON string representation of the object
+print(PolicyTag.to_json())
+
+# convert the object into a dict
+policy_tag_dict = policy_tag_instance.to_dict()
+# create an instance of PolicyTag from a dict
+policy_tag_from_dict = PolicyTag.from_dict(policy_tag_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/PolicyVerdictActionEnum.md b/docs/PolicyVerdictActionEnum.md
new file mode 100644
index 00000000..b14a73e8
--- /dev/null
+++ b/docs/PolicyVerdictActionEnum.md
@@ -0,0 +1,29 @@
+# PolicyVerdictActionEnum
+
+Policy verdict action
+
+## Enum
+
+* `ALLOW` (value: `'ALLOW'`)
+
+* `BLOCK` (value: `'BLOCK'`)
+
+* `ENUM_2_MINUS_TIER` (value: `'2-TIER'`)
+
+* `SCREEN` (value: `'SCREEN'`)
+
+* `ACCEPT` (value: `'ACCEPT'`)
+
+* `REJECT` (value: `'REJECT'`)
+
+* `ALERT` (value: `'ALERT'`)
+
+* `WAIT` (value: `'WAIT'`)
+
+* `FREEZE` (value: `'FREEZE'`)
+
+* `CANCEL` (value: `'CANCEL'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/PolicyVerdictActionEnum2.md b/docs/PolicyVerdictActionEnum2.md
new file mode 100644
index 00000000..2234a3f3
--- /dev/null
+++ b/docs/PolicyVerdictActionEnum2.md
@@ -0,0 +1,27 @@
+# PolicyVerdictActionEnum2
+
+Policy verdict action
+
+## Enum
+
+* `ALLOW` (value: `'ALLOW'`)
+
+* `BLOCK` (value: `'BLOCK'`)
+
+* `SCREEN` (value: `'SCREEN'`)
+
+* `ACCEPT` (value: `'ACCEPT'`)
+
+* `REJECT` (value: `'REJECT'`)
+
+* `ALERT` (value: `'ALERT'`)
+
+* `WAIT` (value: `'WAIT'`)
+
+* `FREEZE` (value: `'FREEZE'`)
+
+* `CANCEL` (value: `'CANCEL'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/QuoteExecutionResponseDetails.md b/docs/QuoteExecutionResponseDetails.md
index 5260183e..f6be91fa 100644
--- a/docs/QuoteExecutionResponseDetails.md
+++ b/docs/QuoteExecutionResponseDetails.md
@@ -5,15 +5,15 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
+**type** | **str** | Order type for quote orders |
+**quote_id** | **str** | Quote ID for quote orders |
+**quote_amount** | **str** | Quote amount for quote orders |
**side** | **str** | Side of the order | [default to 'BUY']
**base_amount** | **str** | Amount to convert |
**base_asset_id** | **str** | Source asset identifier |
**base_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional]
**quote_asset_id** | **str** | Target asset identifier |
**quote_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional]
-**type** | **str** | Order type for quote orders |
-**quote_id** | **str** | Quote ID for quote orders |
-**quote_amount** | **str** | Quote amount for quote orders |
## Example
diff --git a/docs/QuoteExecutionTypeDetails.md b/docs/QuoteExecutionTypeDetails.md
new file mode 100644
index 00000000..a85c8bc5
--- /dev/null
+++ b/docs/QuoteExecutionTypeDetails.md
@@ -0,0 +1,31 @@
+# QuoteExecutionTypeDetails
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**type** | **str** | Order type for quote orders |
+**quote_id** | **str** | Quote ID for quote orders |
+**quote_amount** | **str** | Quote amount for quote orders |
+
+## Example
+
+```python
+from fireblocks.models.quote_execution_type_details import QuoteExecutionTypeDetails
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of QuoteExecutionTypeDetails from a JSON string
+quote_execution_type_details_instance = QuoteExecutionTypeDetails.from_json(json)
+# print the JSON string representation of the object
+print(QuoteExecutionTypeDetails.to_json())
+
+# convert the object into a dict
+quote_execution_type_details_dict = quote_execution_type_details_instance.to_dict()
+# create an instance of QuoteExecutionTypeDetails from a dict
+quote_execution_type_details_from_dict = QuoteExecutionTypeDetails.from_dict(quote_execution_type_details_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/QuoteExecutionWithRequoteRequestDetails.md b/docs/QuoteExecutionWithRequoteRequestDetails.md
index 1bf90cd3..dc74749b 100644
--- a/docs/QuoteExecutionWithRequoteRequestDetails.md
+++ b/docs/QuoteExecutionWithRequoteRequestDetails.md
@@ -7,7 +7,7 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**type** | **str** | Order type for quote orders |
**quote_id** | **str** | Quote ID for quote orders |
-**re_quote** | [**QuoteExecutionWithRequoteRequestDetailsAllOfReQuote**](QuoteExecutionWithRequoteRequestDetailsAllOfReQuote.md) | | [optional]
+**re_quote** | [**ReQuoteDetailsReQuote**](ReQuoteDetailsReQuote.md) | | [optional]
## Example
diff --git a/docs/QuoteExecutionWithRequoteRequestDetailsAllOfReQuote.md b/docs/QuoteExecutionWithRequoteRequestDetailsAllOfReQuote.md
deleted file mode 100644
index 369c43ec..00000000
--- a/docs/QuoteExecutionWithRequoteRequestDetailsAllOfReQuote.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# QuoteExecutionWithRequoteRequestDetailsAllOfReQuote
-
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**type** | **str** | Indicates that the order should be re-quoted if the original quote is expired. This will lead to a market order. |
-**count** | **float** | If quote is expired, how many times to re-generate new quotes to try having the order executed as in the original quote. |
-**slippage_bps** | **float** | Slippage tolerance in basis points (bps) for quote orders - 1 is 0.01% and 10000 is 100% | [optional] [default to 1]
-
-## Example
-
-```python
-from fireblocks.models.quote_execution_with_requote_request_details_all_of_re_quote import QuoteExecutionWithRequoteRequestDetailsAllOfReQuote
-
-# TODO update the JSON string below
-json = "{}"
-# create an instance of QuoteExecutionWithRequoteRequestDetailsAllOfReQuote from a JSON string
-quote_execution_with_requote_request_details_all_of_re_quote_instance = QuoteExecutionWithRequoteRequestDetailsAllOfReQuote.from_json(json)
-# print the JSON string representation of the object
-print(QuoteExecutionWithRequoteRequestDetailsAllOfReQuote.to_json())
-
-# convert the object into a dict
-quote_execution_with_requote_request_details_all_of_re_quote_dict = quote_execution_with_requote_request_details_all_of_re_quote_instance.to_dict()
-# create an instance of QuoteExecutionWithRequoteRequestDetailsAllOfReQuote from a dict
-quote_execution_with_requote_request_details_all_of_re_quote_from_dict = QuoteExecutionWithRequoteRequestDetailsAllOfReQuote.from_dict(quote_execution_with_requote_request_details_all_of_re_quote_dict)
-```
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
-
-
diff --git a/docs/QuoteExecutionWithRequoteResponseDetails.md b/docs/QuoteExecutionWithRequoteResponseDetails.md
index b5b7aaa8..224f5dc8 100644
--- a/docs/QuoteExecutionWithRequoteResponseDetails.md
+++ b/docs/QuoteExecutionWithRequoteResponseDetails.md
@@ -14,7 +14,7 @@ Name | Type | Description | Notes
**base_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional]
**quote_asset_id** | **str** | Target asset identifier |
**quote_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional]
-**re_quote** | [**QuoteExecutionWithRequoteResponseDetailsAllOfReQuote**](QuoteExecutionWithRequoteResponseDetailsAllOfReQuote.md) | | [optional]
+**re_quote** | [**ReQuoteDetailsReQuote**](ReQuoteDetailsReQuote.md) | | [optional]
## Example
diff --git a/docs/QuoteExecutionWithRequoteResponseDetailsAllOfReQuote.md b/docs/QuoteExecutionWithRequoteResponseDetailsAllOfReQuote.md
deleted file mode 100644
index 23502c18..00000000
--- a/docs/QuoteExecutionWithRequoteResponseDetailsAllOfReQuote.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# QuoteExecutionWithRequoteResponseDetailsAllOfReQuote
-
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**type** | **str** | Indicates that the order should be re-quoted if the original quote is expired. This will lead to a market order. |
-**count** | **float** | If quote is expired, how many times to re-generate new quotes to try having the order executed as in the original quote. |
-**slippage_bps** | **float** | Slippage tolerance in basis points (bps) for quote orders - 1 is 0.01% and 10000 is 100% | [optional] [default to 1]
-
-## Example
-
-```python
-from fireblocks.models.quote_execution_with_requote_response_details_all_of_re_quote import QuoteExecutionWithRequoteResponseDetailsAllOfReQuote
-
-# TODO update the JSON string below
-json = "{}"
-# create an instance of QuoteExecutionWithRequoteResponseDetailsAllOfReQuote from a JSON string
-quote_execution_with_requote_response_details_all_of_re_quote_instance = QuoteExecutionWithRequoteResponseDetailsAllOfReQuote.from_json(json)
-# print the JSON string representation of the object
-print(QuoteExecutionWithRequoteResponseDetailsAllOfReQuote.to_json())
-
-# convert the object into a dict
-quote_execution_with_requote_response_details_all_of_re_quote_dict = quote_execution_with_requote_response_details_all_of_re_quote_instance.to_dict()
-# create an instance of QuoteExecutionWithRequoteResponseDetailsAllOfReQuote from a dict
-quote_execution_with_requote_response_details_all_of_re_quote_from_dict = QuoteExecutionWithRequoteResponseDetailsAllOfReQuote.from_dict(quote_execution_with_requote_response_details_all_of_re_quote_dict)
-```
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
-
-
diff --git a/docs/QuotePropertiesDetails.md b/docs/QuotePropertiesDetails.md
new file mode 100644
index 00000000..2c24e6e5
--- /dev/null
+++ b/docs/QuotePropertiesDetails.md
@@ -0,0 +1,40 @@
+# QuotePropertiesDetails
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**via** | [**AccessType**](AccessType.md) | |
+**id** | **str** | |
+**type** | **str** | |
+**quote_asset_id** | **str** | |
+**base_asset_id** | **str** | |
+**base_amount** | **str** | |
+**quote_amount** | **str** | |
+**price_impact** | **float** | | [optional]
+**quote_min_amount** | **str** | | [optional]
+**execution_steps** | [**List[ExecutionStepDetails]**](ExecutionStepDetails.md) | | [optional]
+**general_fees** | [**List[Fee]**](Fee.md) | | [optional]
+**side** | **str** | Side of the order |
+
+## Example
+
+```python
+from fireblocks.models.quote_properties_details import QuotePropertiesDetails
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of QuotePropertiesDetails from a JSON string
+quote_properties_details_instance = QuotePropertiesDetails.from_json(json)
+# print the JSON string representation of the object
+print(QuotePropertiesDetails.to_json())
+
+# convert the object into a dict
+quote_properties_details_dict = quote_properties_details_instance.to_dict()
+# create an instance of QuotePropertiesDetails from a dict
+quote_properties_details_from_dict = QuotePropertiesDetails.from_dict(quote_properties_details_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/ReQuoteDetails.md b/docs/ReQuoteDetails.md
new file mode 100644
index 00000000..ab834584
--- /dev/null
+++ b/docs/ReQuoteDetails.md
@@ -0,0 +1,29 @@
+# ReQuoteDetails
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**re_quote** | [**ReQuoteDetailsReQuote**](ReQuoteDetailsReQuote.md) | | [optional]
+
+## Example
+
+```python
+from fireblocks.models.re_quote_details import ReQuoteDetails
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ReQuoteDetails from a JSON string
+re_quote_details_instance = ReQuoteDetails.from_json(json)
+# print the JSON string representation of the object
+print(ReQuoteDetails.to_json())
+
+# convert the object into a dict
+re_quote_details_dict = re_quote_details_instance.to_dict()
+# create an instance of ReQuoteDetails from a dict
+re_quote_details_from_dict = ReQuoteDetails.from_dict(re_quote_details_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/ReQuoteDetailsReQuote.md b/docs/ReQuoteDetailsReQuote.md
new file mode 100644
index 00000000..657de1f2
--- /dev/null
+++ b/docs/ReQuoteDetailsReQuote.md
@@ -0,0 +1,31 @@
+# ReQuoteDetailsReQuote
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**type** | **str** | Indicates that the order should be re-quoted if the original quote is expired. This will lead to a market order. |
+**count** | **float** | If quote is expired, how many times to re-generate new quotes to try having the order executed as in the original quote. |
+**slippage_bps** | **float** | Slippage tolerance in basis points (bps) for quote orders - 1 is 0.01% and 10000 is 100% | [optional]
+
+## Example
+
+```python
+from fireblocks.models.re_quote_details_re_quote import ReQuoteDetailsReQuote
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ReQuoteDetailsReQuote from a JSON string
+re_quote_details_re_quote_instance = ReQuoteDetailsReQuote.from_json(json)
+# print the JSON string representation of the object
+print(ReQuoteDetailsReQuote.to_json())
+
+# convert the object into a dict
+re_quote_details_re_quote_dict = re_quote_details_re_quote_instance.to_dict()
+# create an instance of ReQuoteDetailsReQuote from a dict
+re_quote_details_re_quote_from_dict = ReQuoteDetailsReQuote.from_dict(re_quote_details_re_quote_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/RegisterNewAssetRequest.md b/docs/RegisterNewAssetRequest.md
index 84e65820..ad23df8f 100644
--- a/docs/RegisterNewAssetRequest.md
+++ b/docs/RegisterNewAssetRequest.md
@@ -6,7 +6,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**blockchain_id** | **str** | Native asset ID of the blockchain |
-**address** | **str** | Asset address. - EVM-based chains: token contract address - Stellar (XLM): issuer address - Algorand (ALGO): asset ID - TRON (TRX): token contract address - NEAR: token address - Solana: token's mint account address |
+**address** | **str** | Asset address. - EVM-based chains: token contract address - Stellar (XLM): issuer address - Algorand (ALGO): asset ID - TRON (TRX): token contract address - NEAR: token address - Solana: token's mint account address - Sui: token's type |
**symbol** | **str** | Required for Stellar only, asset code is expected. | [optional]
## Example
diff --git a/docs/RetryRequoteRequestDetails.md b/docs/RetryRequoteRequestDetails.md
index 9dca9d34..d778b267 100644
--- a/docs/RetryRequoteRequestDetails.md
+++ b/docs/RetryRequoteRequestDetails.md
@@ -7,7 +7,7 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**type** | **str** | Indicates that the order should be re-quoted if the original quote is expired, trying to match the original quote. |
**count** | **float** | If quote is expired, how many times to re-generate new quotes to try having the order executed as in the original quote. |
-**slippage_bps** | **float** | Slippage tolerance in basis points (bps) for quote orders - 1 is 0.01% and 10000 is 100% | [optional] [default to 1]
+**slippage_bps** | **float** | Slippage tolerance in basis points (bps) for quote orders - 1 is 0.01% and 10000 is 100% | [optional]
## Example
diff --git a/docs/SEPAAddress.md b/docs/SEPAAddress.md
new file mode 100644
index 00000000..e6e7c535
--- /dev/null
+++ b/docs/SEPAAddress.md
@@ -0,0 +1,36 @@
+# SEPAAddress
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**account_holder** | [**AccountHolderDetails**](AccountHolderDetails.md) | |
+**iban** | **str** | |
+**bic** | **str** | Bank Identifier Code (SWIFT/BIC) | [optional]
+**bank_name** | **str** | | [optional]
+**bank_branch** | **str** | | [optional]
+**bank_address** | **str** | | [optional]
+**purpose_code** | **str** | ISO purpose code for the transfer | [optional]
+**tax_id** | **str** | Beneficiary tax identification number | [optional]
+
+## Example
+
+```python
+from fireblocks.models.sepa_address import SEPAAddress
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SEPAAddress from a JSON string
+sepa_address_instance = SEPAAddress.from_json(json)
+# print the JSON string representation of the object
+print(SEPAAddress.to_json())
+
+# convert the object into a dict
+sepa_address_dict = sepa_address_instance.to_dict()
+# create an instance of SEPAAddress from a dict
+sepa_address_from_dict = SEPAAddress.from_dict(sepa_address_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/SEPADestination.md b/docs/SEPADestination.md
new file mode 100644
index 00000000..ba753cb7
--- /dev/null
+++ b/docs/SEPADestination.md
@@ -0,0 +1,30 @@
+# SEPADestination
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**type** | **str** | |
+**address** | [**SEPAAddress**](SEPAAddress.md) | |
+
+## Example
+
+```python
+from fireblocks.models.sepa_destination import SEPADestination
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SEPADestination from a JSON string
+sepa_destination_instance = SEPADestination.from_json(json)
+# print the JSON string representation of the object
+print(SEPADestination.to_json())
+
+# convert the object into a dict
+sepa_destination_dict = sepa_destination_instance.to_dict()
+# create an instance of SEPADestination from a dict
+sepa_destination_from_dict = SEPADestination.from_dict(sepa_destination_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/ScreeningAlertExposureTypeEnum.md b/docs/ScreeningAlertExposureTypeEnum.md
new file mode 100644
index 00000000..e1de9823
--- /dev/null
+++ b/docs/ScreeningAlertExposureTypeEnum.md
@@ -0,0 +1,13 @@
+# ScreeningAlertExposureTypeEnum
+
+Alert exposure type
+
+## Enum
+
+* `DIRECT` (value: `'DIRECT'`)
+
+* `INDIRECT` (value: `'INDIRECT'`)
+
+[[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/ScreeningAmlAlert.md b/docs/ScreeningAmlAlert.md
new file mode 100644
index 00000000..c5795311
--- /dev/null
+++ b/docs/ScreeningAmlAlert.md
@@ -0,0 +1,38 @@
+# ScreeningAmlAlert
+
+AML alert information
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**alert_level** | [**AlertLevelEnum**](AlertLevelEnum.md) | |
+**alert_name** | **str** | Name or type of the alert | [optional]
+**category** | **str** | Alert category | [optional]
+**service** | **str** | Service that generated the alert | [optional]
+**external_id** | **str** | External identifier for the alert |
+**alert_amount** | **float** | Amount associated with the alert |
+**exposure_type** | [**ScreeningAlertExposureTypeEnum**](ScreeningAlertExposureTypeEnum.md) | |
+**policy_action** | **str** | Recommended action based on policy | [optional]
+**category_id** | **float** | Category identifier | [optional]
+
+## Example
+
+```python
+from fireblocks.models.screening_aml_alert import ScreeningAmlAlert
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ScreeningAmlAlert from a JSON string
+screening_aml_alert_instance = ScreeningAmlAlert.from_json(json)
+# print the JSON string representation of the object
+print(ScreeningAmlAlert.to_json())
+
+# convert the object into a dict
+screening_aml_alert_dict = screening_aml_alert_instance.to_dict()
+# create an instance of ScreeningAmlAlert from a dict
+screening_aml_alert_from_dict = ScreeningAmlAlert.from_dict(screening_aml_alert_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/ScreeningAmlMatchedRule.md b/docs/ScreeningAmlMatchedRule.md
new file mode 100644
index 00000000..b51c160e
--- /dev/null
+++ b/docs/ScreeningAmlMatchedRule.md
@@ -0,0 +1,32 @@
+# ScreeningAmlMatchedRule
+
+AML matched rule information
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**rule_id** | **str** | Identifier of the matched rule | [optional]
+**rule_name** | **str** | Name of the matched rule | [optional]
+**action** | [**PolicyVerdictActionEnum2**](PolicyVerdictActionEnum2.md) | | [optional]
+
+## Example
+
+```python
+from fireblocks.models.screening_aml_matched_rule import ScreeningAmlMatchedRule
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ScreeningAmlMatchedRule from a JSON string
+screening_aml_matched_rule_instance = ScreeningAmlMatchedRule.from_json(json)
+# print the JSON string representation of the object
+print(ScreeningAmlMatchedRule.to_json())
+
+# convert the object into a dict
+screening_aml_matched_rule_dict = screening_aml_matched_rule_instance.to_dict()
+# create an instance of ScreeningAmlMatchedRule from a dict
+screening_aml_matched_rule_from_dict = ScreeningAmlMatchedRule.from_dict(screening_aml_matched_rule_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/ScreeningAmlResult.md b/docs/ScreeningAmlResult.md
new file mode 100644
index 00000000..ea61c52d
--- /dev/null
+++ b/docs/ScreeningAmlResult.md
@@ -0,0 +1,33 @@
+# ScreeningAmlResult
+
+Detailed AML screening result information. Contains alerts, risk scores, and other AML-specific data from provider-specific responses.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**alerts** | [**List[ScreeningAmlAlert]**](ScreeningAmlAlert.md) | List of AML alerts triggered during screening | [optional]
+**provider_response** | **Dict[str, object]** | Complete response from the AML provider. This is a dynamic object that varies significantly between different AML providers (Chainalysis, Elliptic, etc.). Each provider has their own proprietary response format and schema. Examples of provider-specific structures: - Chainalysis: Contains cluster info, risk scores, sanctions data - Elliptic: Includes risk assessment, entity types, compliance flags The structure is provider-dependent and cannot be standardized as each vendor implements their own proprietary data models and response formats. | [optional]
+**matched_rule** | [**ScreeningAmlMatchedRule**](ScreeningAmlMatchedRule.md) | | [optional]
+**matched_alert** | [**ScreeningAmlAlert**](ScreeningAmlAlert.md) | | [optional]
+
+## Example
+
+```python
+from fireblocks.models.screening_aml_result import ScreeningAmlResult
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ScreeningAmlResult from a JSON string
+screening_aml_result_instance = ScreeningAmlResult.from_json(json)
+# print the JSON string representation of the object
+print(ScreeningAmlResult.to_json())
+
+# convert the object into a dict
+screening_aml_result_dict = screening_aml_result_instance.to_dict()
+# create an instance of ScreeningAmlResult from a dict
+screening_aml_result_from_dict = ScreeningAmlResult.from_dict(screening_aml_result_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/ScreeningMetadataConfig.md b/docs/ScreeningMetadataConfig.md
index 8a1122c4..156bd61b 100644
--- a/docs/ScreeningMetadataConfig.md
+++ b/docs/ScreeningMetadataConfig.md
@@ -6,7 +6,7 @@ Screening metadata configuration
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**direction** | **str** | Direction of transaction |
+**direction** | **str** | Direction of transaction | [optional]
**provider** | **str** | Screening provider | [optional]
**risk_rating** | **str** | Risk rating threshold | [optional]
**risk_score** | **str** | Risk score threshold | [optional]
diff --git a/docs/ScreeningRiskLevelEnum.md b/docs/ScreeningRiskLevelEnum.md
new file mode 100644
index 00000000..c8294e56
--- /dev/null
+++ b/docs/ScreeningRiskLevelEnum.md
@@ -0,0 +1,21 @@
+# ScreeningRiskLevelEnum
+
+Risk level assessment for screening results. Possible values vary by provider and context.
+
+## Enum
+
+* `VERY_HIGH` (value: `'VERY_HIGH'`)
+
+* `SEVERE` (value: `'SEVERE'`)
+
+* `HIGH` (value: `'HIGH'`)
+
+* `MEDIUM` (value: `'MEDIUM'`)
+
+* `LOW` (value: `'LOW'`)
+
+* `UNKNOWN` (value: `'UNKNOWN'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/ScreeningTRLinkAmount.md b/docs/ScreeningTRLinkAmount.md
new file mode 100644
index 00000000..bb0835b3
--- /dev/null
+++ b/docs/ScreeningTRLinkAmount.md
@@ -0,0 +1,31 @@
+# ScreeningTRLinkAmount
+
+TRLink amount definition with range and currency, compatible with TAP format from Policy Engine V2
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**range** | [**AmountRangeMinMax**](AmountRangeMinMax.md) | | [optional]
+**currency** | **str** | Currency type | [optional]
+
+## Example
+
+```python
+from fireblocks.models.screening_tr_link_amount import ScreeningTRLinkAmount
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ScreeningTRLinkAmount from a JSON string
+screening_tr_link_amount_instance = ScreeningTRLinkAmount.from_json(json)
+# print the JSON string representation of the object
+print(ScreeningTRLinkAmount.to_json())
+
+# convert the object into a dict
+screening_tr_link_amount_dict = screening_tr_link_amount_instance.to_dict()
+# create an instance of ScreeningTRLinkAmount from a dict
+screening_tr_link_amount_from_dict = ScreeningTRLinkAmount.from_dict(screening_tr_link_amount_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/ScreeningTRLinkMissingTrmDecision.md b/docs/ScreeningTRLinkMissingTrmDecision.md
new file mode 100644
index 00000000..5b232b81
--- /dev/null
+++ b/docs/ScreeningTRLinkMissingTrmDecision.md
@@ -0,0 +1,52 @@
+# ScreeningTRLinkMissingTrmDecision
+
+Interface for reporting missing TRM screening decisions in ITRLinkResult
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**customer_id** | **str** | Reference to TrlinkCustomer.id | [optional]
+**direction** | [**TravelRuleDirectionEnum**](TravelRuleDirectionEnum.md) | | [optional]
+**source_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional]
+**source_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional]
+**source_address** | **str** | Source address | [optional]
+**dest_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional]
+**dest_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional]
+**dest_address** | **str** | Destination address | [optional]
+**source_id** | **str** | Source ID | [optional]
+**dest_id** | **str** | Destination ID | [optional]
+**asset** | **str** | Asset symbol | [optional]
+**base_asset** | **str** | Base asset symbol | [optional]
+**amount** | [**ScreeningTRLinkAmount**](ScreeningTRLinkAmount.md) | | [optional]
+**network_protocol** | **str** | Network protocol | [optional]
+**operation** | [**TransactionOperationEnum**](TransactionOperationEnum.md) | | [optional]
+**description** | **str** | Rule description | [optional]
+**is_default** | **bool** | Whether this is a default rule | [optional] [default to False]
+**valid_before** | **float** | Unix timestamp when rule expires | [optional]
+**valid_after** | **float** | Unix timestamp when rule becomes valid | [optional]
+**action** | [**TRLinkMissingTrmActionEnum**](TRLinkMissingTrmActionEnum.md) | |
+**source** | **str** | TRLink missing TRM source |
+**timestamp** | **datetime** | Timestamp of the decision | [optional]
+**reason** | **str** | Reason for the decision | [optional]
+
+## Example
+
+```python
+from fireblocks.models.screening_tr_link_missing_trm_decision import ScreeningTRLinkMissingTrmDecision
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ScreeningTRLinkMissingTrmDecision from a JSON string
+screening_tr_link_missing_trm_decision_instance = ScreeningTRLinkMissingTrmDecision.from_json(json)
+# print the JSON string representation of the object
+print(ScreeningTRLinkMissingTrmDecision.to_json())
+
+# convert the object into a dict
+screening_tr_link_missing_trm_decision_dict = screening_tr_link_missing_trm_decision_instance.to_dict()
+# create an instance of ScreeningTRLinkMissingTrmDecision from a dict
+screening_tr_link_missing_trm_decision_from_dict = ScreeningTRLinkMissingTrmDecision.from_dict(screening_tr_link_missing_trm_decision_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/ScreeningTRLinkMissingTrmRule.md b/docs/ScreeningTRLinkMissingTrmRule.md
new file mode 100644
index 00000000..b0fbc6cf
--- /dev/null
+++ b/docs/ScreeningTRLinkMissingTrmRule.md
@@ -0,0 +1,49 @@
+# ScreeningTRLinkMissingTrmRule
+
+TRLink missing TRM rule definition
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**customer_id** | **str** | Reference to TrlinkCustomer.id | [optional]
+**direction** | [**TravelRuleDirectionEnum**](TravelRuleDirectionEnum.md) | | [optional]
+**source_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional]
+**source_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional]
+**source_address** | **str** | Source address | [optional]
+**dest_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional]
+**dest_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional]
+**dest_address** | **str** | Destination address | [optional]
+**source_id** | **str** | Source ID | [optional]
+**dest_id** | **str** | Destination ID | [optional]
+**asset** | **str** | Asset symbol | [optional]
+**base_asset** | **str** | Base asset symbol | [optional]
+**amount** | [**ScreeningTRLinkAmount**](ScreeningTRLinkAmount.md) | | [optional]
+**network_protocol** | **str** | Network protocol | [optional]
+**operation** | [**TransactionOperationEnum**](TransactionOperationEnum.md) | | [optional]
+**description** | **str** | Rule description | [optional]
+**is_default** | **bool** | Whether this is a default rule | [optional] [default to False]
+**valid_before** | **float** | Unix timestamp when rule expires | [optional]
+**valid_after** | **float** | Unix timestamp when rule becomes valid | [optional]
+**action** | [**TRLinkMissingTrmActionEnum**](TRLinkMissingTrmActionEnum.md) | |
+
+## Example
+
+```python
+from fireblocks.models.screening_tr_link_missing_trm_rule import ScreeningTRLinkMissingTrmRule
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ScreeningTRLinkMissingTrmRule from a JSON string
+screening_tr_link_missing_trm_rule_instance = ScreeningTRLinkMissingTrmRule.from_json(json)
+# print the JSON string representation of the object
+print(ScreeningTRLinkMissingTrmRule.to_json())
+
+# convert the object into a dict
+screening_tr_link_missing_trm_rule_dict = screening_tr_link_missing_trm_rule_instance.to_dict()
+# create an instance of ScreeningTRLinkMissingTrmRule from a dict
+screening_tr_link_missing_trm_rule_from_dict = ScreeningTRLinkMissingTrmRule.from_dict(screening_tr_link_missing_trm_rule_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/ScreeningTRLinkPostScreeningRule.md b/docs/ScreeningTRLinkPostScreeningRule.md
new file mode 100644
index 00000000..5b000c6a
--- /dev/null
+++ b/docs/ScreeningTRLinkPostScreeningRule.md
@@ -0,0 +1,51 @@
+# ScreeningTRLinkPostScreeningRule
+
+TRLink post-screening rule definition
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**customer_id** | **str** | Reference to TrlinkCustomer.id | [optional]
+**direction** | [**TravelRuleDirectionEnum**](TravelRuleDirectionEnum.md) | | [optional]
+**source_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional]
+**source_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional]
+**source_address** | **str** | Source address | [optional]
+**dest_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional]
+**dest_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional]
+**dest_address** | **str** | Destination address | [optional]
+**source_id** | **str** | Source ID | [optional]
+**dest_id** | **str** | Destination ID | [optional]
+**asset** | **str** | Asset symbol | [optional]
+**base_asset** | **str** | Base asset symbol | [optional]
+**amount** | [**ScreeningTRLinkAmount**](ScreeningTRLinkAmount.md) | | [optional]
+**network_protocol** | **str** | Network protocol | [optional]
+**operation** | [**TransactionOperationEnum**](TransactionOperationEnum.md) | | [optional]
+**description** | **str** | Rule description | [optional]
+**is_default** | **bool** | Whether this is a default rule | [optional] [default to False]
+**provider_ident** | **str** | Provider identifier | [optional]
+**trm_status** | [**TRLinkTrmScreeningStatusEnum**](TRLinkTrmScreeningStatusEnum.md) | | [optional]
+**valid_before** | **float** | Unix timestamp when rule expires | [optional]
+**valid_after** | **float** | Unix timestamp when rule becomes valid | [optional]
+**action** | [**TRLinkVerdictEnum**](TRLinkVerdictEnum.md) | |
+
+## Example
+
+```python
+from fireblocks.models.screening_tr_link_post_screening_rule import ScreeningTRLinkPostScreeningRule
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ScreeningTRLinkPostScreeningRule from a JSON string
+screening_tr_link_post_screening_rule_instance = ScreeningTRLinkPostScreeningRule.from_json(json)
+# print the JSON string representation of the object
+print(ScreeningTRLinkPostScreeningRule.to_json())
+
+# convert the object into a dict
+screening_tr_link_post_screening_rule_dict = screening_tr_link_post_screening_rule_instance.to_dict()
+# create an instance of ScreeningTRLinkPostScreeningRule from a dict
+screening_tr_link_post_screening_rule_from_dict = ScreeningTRLinkPostScreeningRule.from_dict(screening_tr_link_post_screening_rule_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/ScreeningTRLinkPrescreeningRule.md b/docs/ScreeningTRLinkPrescreeningRule.md
new file mode 100644
index 00000000..31d2582a
--- /dev/null
+++ b/docs/ScreeningTRLinkPrescreeningRule.md
@@ -0,0 +1,47 @@
+# ScreeningTRLinkPrescreeningRule
+
+TRLink pre-screening rule definition
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**customer_id** | **str** | Reference to TrlinkCustomer.id | [optional]
+**direction** | [**TravelRuleDirectionEnum**](TravelRuleDirectionEnum.md) | | [optional]
+**source_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional]
+**source_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional]
+**source_address** | **str** | Source address | [optional]
+**dest_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional]
+**dest_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional]
+**dest_address** | **str** | Destination address | [optional]
+**source_id** | **str** | Source ID | [optional]
+**dest_id** | **str** | Destination ID | [optional]
+**asset** | **str** | Asset symbol | [optional]
+**base_asset** | **str** | Base asset symbol | [optional]
+**amount** | [**ScreeningTRLinkAmount**](ScreeningTRLinkAmount.md) | | [optional]
+**network_protocol** | **str** | Network protocol | [optional]
+**operation** | [**TransactionOperationEnum**](TransactionOperationEnum.md) | | [optional]
+**description** | **str** | Rule description | [optional]
+**is_default** | **bool** | Whether this is a default rule | [optional] [default to False]
+**action** | [**TRLinkPreScreeningActionEnum**](TRLinkPreScreeningActionEnum.md) | |
+
+## Example
+
+```python
+from fireblocks.models.screening_tr_link_prescreening_rule import ScreeningTRLinkPrescreeningRule
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ScreeningTRLinkPrescreeningRule from a JSON string
+screening_tr_link_prescreening_rule_instance = ScreeningTRLinkPrescreeningRule.from_json(json)
+# print the JSON string representation of the object
+print(ScreeningTRLinkPrescreeningRule.to_json())
+
+# convert the object into a dict
+screening_tr_link_prescreening_rule_dict = screening_tr_link_prescreening_rule_instance.to_dict()
+# create an instance of ScreeningTRLinkPrescreeningRule from a dict
+screening_tr_link_prescreening_rule_from_dict = ScreeningTRLinkPrescreeningRule.from_dict(screening_tr_link_prescreening_rule_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/ScreeningTRLinkRuleBase.md b/docs/ScreeningTRLinkRuleBase.md
new file mode 100644
index 00000000..b4249443
--- /dev/null
+++ b/docs/ScreeningTRLinkRuleBase.md
@@ -0,0 +1,46 @@
+# ScreeningTRLinkRuleBase
+
+Base interface for TRLink policy rules
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**customer_id** | **str** | Reference to TrlinkCustomer.id | [optional]
+**direction** | [**TravelRuleDirectionEnum**](TravelRuleDirectionEnum.md) | | [optional]
+**source_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional]
+**source_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional]
+**source_address** | **str** | Source address | [optional]
+**dest_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional]
+**dest_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional]
+**dest_address** | **str** | Destination address | [optional]
+**source_id** | **str** | Source ID | [optional]
+**dest_id** | **str** | Destination ID | [optional]
+**asset** | **str** | Asset symbol | [optional]
+**base_asset** | **str** | Base asset symbol | [optional]
+**amount** | [**ScreeningTRLinkAmount**](ScreeningTRLinkAmount.md) | | [optional]
+**network_protocol** | **str** | Network protocol | [optional]
+**operation** | [**TransactionOperationEnum**](TransactionOperationEnum.md) | | [optional]
+**description** | **str** | Rule description | [optional]
+**is_default** | **bool** | Whether this is a default rule | [optional] [default to False]
+
+## Example
+
+```python
+from fireblocks.models.screening_tr_link_rule_base import ScreeningTRLinkRuleBase
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ScreeningTRLinkRuleBase from a JSON string
+screening_tr_link_rule_base_instance = ScreeningTRLinkRuleBase.from_json(json)
+# print the JSON string representation of the object
+print(ScreeningTRLinkRuleBase.to_json())
+
+# convert the object into a dict
+screening_tr_link_rule_base_dict = screening_tr_link_rule_base_instance.to_dict()
+# create an instance of ScreeningTRLinkRuleBase from a dict
+screening_tr_link_rule_base_from_dict = ScreeningTRLinkRuleBase.from_dict(screening_tr_link_rule_base_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/ScreeningTravelRuleMatchedRule.md b/docs/ScreeningTravelRuleMatchedRule.md
new file mode 100644
index 00000000..838a8c31
--- /dev/null
+++ b/docs/ScreeningTravelRuleMatchedRule.md
@@ -0,0 +1,35 @@
+# ScreeningTravelRuleMatchedRule
+
+The travel rule configuration that was matched
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**direction** | [**TravelRuleDirectionEnum**](TravelRuleDirectionEnum.md) | | [optional]
+**status** | [**TravelRuleStatusEnum**](TravelRuleStatusEnum.md) | | [optional]
+**amount_usd** | **float** | Amount in USD | [optional]
+**amount** | **float** | Amount in base currency | [optional]
+**asset** | **str** | Asset identifier | [optional]
+**action** | [**TravelRuleVerdictEnum**](TravelRuleVerdictEnum.md) | | [optional]
+
+## Example
+
+```python
+from fireblocks.models.screening_travel_rule_matched_rule import ScreeningTravelRuleMatchedRule
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ScreeningTravelRuleMatchedRule from a JSON string
+screening_travel_rule_matched_rule_instance = ScreeningTravelRuleMatchedRule.from_json(json)
+# print the JSON string representation of the object
+print(ScreeningTravelRuleMatchedRule.to_json())
+
+# convert the object into a dict
+screening_travel_rule_matched_rule_dict = screening_travel_rule_matched_rule_instance.to_dict()
+# create an instance of ScreeningTravelRuleMatchedRule from a dict
+screening_travel_rule_matched_rule_from_dict = ScreeningTravelRuleMatchedRule.from_dict(screening_travel_rule_matched_rule_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/ScreeningTravelRulePrescreeningRule.md b/docs/ScreeningTravelRulePrescreeningRule.md
new file mode 100644
index 00000000..3ebf1da8
--- /dev/null
+++ b/docs/ScreeningTravelRulePrescreeningRule.md
@@ -0,0 +1,46 @@
+# ScreeningTravelRulePrescreeningRule
+
+Matched prescreening rule details. Prescreening rules are evaluated before the main screening to determine if screening is necessary or should be bypassed.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**bypass_reason** | **str** | Reason for bypass if prescreening rule triggered a bypass | [optional]
+**source_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional]
+**source_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional]
+**dest_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional]
+**dest_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional]
+**transfer_peer_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional]
+**transfer_peer_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional]
+**dest_address** | **str** | Destination address | [optional]
+**source_id** | **str** | Source ID | [optional]
+**dest_id** | **str** | Destination ID | [optional]
+**asset** | **str** | Asset identifier | [optional]
+**base_asset** | **str** | Base asset | [optional]
+**amount** | **float** | Amount | [optional]
+**amount_usd** | **float** | Amount in USD | [optional]
+**network_protocol** | **str** | Network protocol | [optional]
+**operation** | [**TransactionOperationEnum**](TransactionOperationEnum.md) | | [optional]
+**action** | [**TravelRuleActionEnum**](TravelRuleActionEnum.md) | | [optional]
+
+## Example
+
+```python
+from fireblocks.models.screening_travel_rule_prescreening_rule import ScreeningTravelRulePrescreeningRule
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ScreeningTravelRulePrescreeningRule from a JSON string
+screening_travel_rule_prescreening_rule_instance = ScreeningTravelRulePrescreeningRule.from_json(json)
+# print the JSON string representation of the object
+print(ScreeningTravelRulePrescreeningRule.to_json())
+
+# convert the object into a dict
+screening_travel_rule_prescreening_rule_dict = screening_travel_rule_prescreening_rule_instance.to_dict()
+# create an instance of ScreeningTravelRulePrescreeningRule from a dict
+screening_travel_rule_prescreening_rule_from_dict = ScreeningTravelRulePrescreeningRule.from_dict(screening_travel_rule_prescreening_rule_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/ScreeningTravelRuleResult.md b/docs/ScreeningTravelRuleResult.md
new file mode 100644
index 00000000..5da79c13
--- /dev/null
+++ b/docs/ScreeningTravelRuleResult.md
@@ -0,0 +1,34 @@
+# ScreeningTravelRuleResult
+
+Detailed Travel Rule screening result containing provider-specific data. Contains Travel Rule specific information like verified status, rule type, and actions.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**direction** | [**TravelRuleDirectionEnum**](TravelRuleDirectionEnum.md) | | [optional]
+**is_verified** | **bool** | Whether the travel rule information was verified | [optional]
+**action** | [**TravelRuleVerdictEnum**](TravelRuleVerdictEnum.md) | | [optional]
+**provider_response** | **Dict[str, object]** | Complete response from the travel rule provider. This is a dynamic object that varies significantly between different travel rule providers (NOTABENE etc.). Each provider has their own proprietary response format and schema. Examples of provider-specific structures: - NOTABENE: Contains VASP information, PII data, protocol-specific fields The structure is provider-dependent and cannot be standardized as each vendor implements their own proprietary data models and response formats. | [optional]
+**matched_rule** | [**ScreeningTravelRuleMatchedRule**](ScreeningTravelRuleMatchedRule.md) | | [optional]
+
+## Example
+
+```python
+from fireblocks.models.screening_travel_rule_result import ScreeningTravelRuleResult
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ScreeningTravelRuleResult from a JSON string
+screening_travel_rule_result_instance = ScreeningTravelRuleResult.from_json(json)
+# print the JSON string representation of the object
+print(ScreeningTravelRuleResult.to_json())
+
+# convert the object into a dict
+screening_travel_rule_result_dict = screening_travel_rule_result_instance.to_dict()
+# create an instance of ScreeningTravelRuleResult from a dict
+screening_travel_rule_result_from_dict = ScreeningTravelRuleResult.from_dict(screening_travel_rule_result_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/ScreeningVerdictEnum.md b/docs/ScreeningVerdictEnum.md
new file mode 100644
index 00000000..78f8cbd5
--- /dev/null
+++ b/docs/ScreeningVerdictEnum.md
@@ -0,0 +1,25 @@
+# ScreeningVerdictEnum
+
+The final verdict of the screening (unified for AML, Travel Rule, and TRLink). Different providers may return different verdict values: - AML: PASS, FAIL, ALERT - Travel Rule: PASS, FAIL, TRAVEL_RULE_REQUIRED - TRLink: PASS, REJECT, WARN
+
+## Enum
+
+* `PASS` (value: `'PASS'`)
+
+* `FAIL` (value: `'FAIL'`)
+
+* `ALERT` (value: `'ALERT'`)
+
+* `REJECT` (value: `'REJECT'`)
+
+* `WARN` (value: `'WARN'`)
+
+* `TRAVEL_RULE_REQUIRED` (value: `'TRAVEL_RULE_REQUIRED'`)
+
+* `ACCEPT` (value: `'ACCEPT'`)
+
+* `REVIEW` (value: `'REVIEW'`)
+
+[[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/SourceConfig.md b/docs/SourceConfig.md
new file mode 100644
index 00000000..dae1a67f
--- /dev/null
+++ b/docs/SourceConfig.md
@@ -0,0 +1,35 @@
+# SourceConfig
+
+Source account configuration for policy rules
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**type** | [**List[AccountType2]**](AccountType2.md) | Source account types | [optional]
+**sub_type** | [**List[AccountIdentifier]**](AccountIdentifier.md) | Source account subtypes | [optional]
+**ids** | [**List[AccountIdentifier]**](AccountIdentifier.md) | Source account identifiers | [optional]
+**tags** | [**List[PolicyTag]**](PolicyTag.md) | Tags for source matching | [optional]
+**operator** | [**PolicyOperator**](PolicyOperator.md) | |
+**match_from** | **str** | Whether to match from account (relevant only for ORDER policy type) | [optional]
+
+## Example
+
+```python
+from fireblocks.models.source_config import SourceConfig
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SourceConfig from a JSON string
+source_config_instance = SourceConfig.from_json(json)
+# print the JSON string representation of the object
+print(SourceConfig.to_json())
+
+# convert the object into a dict
+source_config_dict = source_config_instance.to_dict()
+# create an instance of SourceConfig from a dict
+source_config_from_dict = SourceConfig.from_dict(source_config_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/SpeiAddress.md b/docs/SpeiAddress.md
new file mode 100644
index 00000000..4ec9e7c4
--- /dev/null
+++ b/docs/SpeiAddress.md
@@ -0,0 +1,31 @@
+# SpeiAddress
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**account_holder** | [**AccountHolderDetails**](AccountHolderDetails.md) | |
+**bank_name** | **str** | Name of the bank. | [optional]
+**bank_account_number** | **str** | The bank account number for the SPEI transfer. |
+
+## Example
+
+```python
+from fireblocks.models.spei_address import SpeiAddress
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SpeiAddress from a JSON string
+spei_address_instance = SpeiAddress.from_json(json)
+# print the JSON string representation of the object
+print(SpeiAddress.to_json())
+
+# convert the object into a dict
+spei_address_dict = spei_address_instance.to_dict()
+# create an instance of SpeiAddress from a dict
+spei_address_from_dict = SpeiAddress.from_dict(spei_address_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/SpeiDestination.md b/docs/SpeiDestination.md
new file mode 100644
index 00000000..14e1f024
--- /dev/null
+++ b/docs/SpeiDestination.md
@@ -0,0 +1,30 @@
+# SpeiDestination
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**type** | **str** | |
+**address** | [**SpeiAddress**](SpeiAddress.md) | |
+
+## Example
+
+```python
+from fireblocks.models.spei_destination import SpeiDestination
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SpeiDestination from a JSON string
+spei_destination_instance = SpeiDestination.from_json(json)
+# print the JSON string representation of the object
+print(SpeiDestination.to_json())
+
+# convert the object into a dict
+spei_destination_dict = spei_destination_instance.to_dict()
+# create an instance of SpeiDestination from a dict
+spei_destination_from_dict = SpeiDestination.from_dict(spei_destination_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/SwiftAddress.md b/docs/SwiftAddress.md
new file mode 100644
index 00000000..764a0ad8
--- /dev/null
+++ b/docs/SwiftAddress.md
@@ -0,0 +1,31 @@
+# SwiftAddress
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**account_holder** | [**AccountHolderDetails**](AccountHolderDetails.md) | |
+**swift_code** | **str** | |
+**routing_number** | **str** | Routing number identifying the bank account. |
+
+## Example
+
+```python
+from fireblocks.models.swift_address import SwiftAddress
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SwiftAddress from a JSON string
+swift_address_instance = SwiftAddress.from_json(json)
+# print the JSON string representation of the object
+print(SwiftAddress.to_json())
+
+# convert the object into a dict
+swift_address_dict = swift_address_instance.to_dict()
+# create an instance of SwiftAddress from a dict
+swift_address_from_dict = SwiftAddress.from_dict(swift_address_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/SwiftDestination.md b/docs/SwiftDestination.md
new file mode 100644
index 00000000..dd97184c
--- /dev/null
+++ b/docs/SwiftDestination.md
@@ -0,0 +1,30 @@
+# SwiftDestination
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**type** | **str** | |
+**address** | [**SwiftAddress**](SwiftAddress.md) | |
+
+## Example
+
+```python
+from fireblocks.models.swift_destination import SwiftDestination
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SwiftDestination from a JSON string
+swift_destination_instance = SwiftDestination.from_json(json)
+# print the JSON string representation of the object
+print(SwiftDestination.to_json())
+
+# convert the object into a dict
+swift_destination_dict = swift_destination_instance.to_dict()
+# create an instance of SwiftDestination from a dict
+swift_destination_from_dict = SwiftDestination.from_dict(swift_destination_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/TRLinkAmount.md b/docs/TRLinkAmount.md
new file mode 100644
index 00000000..c785b557
--- /dev/null
+++ b/docs/TRLinkAmount.md
@@ -0,0 +1,31 @@
+# TRLinkAmount
+
+TRLink amount definition with range and currency, compatible with TAP format from Policy Engine V2
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**range** | [**AmountRangeMinMax**](AmountRangeMinMax.md) | | [optional]
+**currency** | **str** | Currency type | [optional]
+
+## Example
+
+```python
+from fireblocks.models.tr_link_amount import TRLinkAmount
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of TRLinkAmount from a JSON string
+tr_link_amount_instance = TRLinkAmount.from_json(json)
+# print the JSON string representation of the object
+print(TRLinkAmount.to_json())
+
+# convert the object into a dict
+tr_link_amount_dict = tr_link_amount_instance.to_dict()
+# create an instance of TRLinkAmount from a dict
+tr_link_amount_from_dict = TRLinkAmount.from_dict(tr_link_amount_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/TRLinkMissingTrmAction.md b/docs/TRLinkMissingTrmAction.md
new file mode 100644
index 00000000..0e564fa8
--- /dev/null
+++ b/docs/TRLinkMissingTrmAction.md
@@ -0,0 +1,17 @@
+# TRLinkMissingTrmAction
+
+TRLink missing TRM action
+
+## Enum
+
+* `WAIT` (value: `'WAIT'`)
+
+* `REJECT` (value: `'REJECT'`)
+
+* `ACCEPT` (value: `'ACCEPT'`)
+
+* `INITIATE_TRM` (value: `'INITIATE_TRM'`)
+
+[[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/TRLinkMissingTrmActionEnum.md b/docs/TRLinkMissingTrmActionEnum.md
new file mode 100644
index 00000000..4cc2db4b
--- /dev/null
+++ b/docs/TRLinkMissingTrmActionEnum.md
@@ -0,0 +1,17 @@
+# TRLinkMissingTrmActionEnum
+
+TRLink missing TRM action
+
+## Enum
+
+* `WAIT` (value: `'WAIT'`)
+
+* `REJECT` (value: `'REJECT'`)
+
+* `ACCEPT` (value: `'ACCEPT'`)
+
+* `INITIATE_TRM` (value: `'INITIATE_TRM'`)
+
+[[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/TRLinkMissingTrmDecision.md b/docs/TRLinkMissingTrmDecision.md
new file mode 100644
index 00000000..6a00646c
--- /dev/null
+++ b/docs/TRLinkMissingTrmDecision.md
@@ -0,0 +1,52 @@
+# TRLinkMissingTrmDecision
+
+Interface for reporting missing TRM screening decisions in ITRLinkResult
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**customer_id** | **str** | Reference to TrlinkCustomer.id | [optional]
+**direction** | [**TransactionDirection**](TransactionDirection.md) | | [optional]
+**source_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional]
+**source_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional]
+**source_address** | **str** | Source address | [optional]
+**dest_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional]
+**dest_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional]
+**dest_address** | **str** | Destination address | [optional]
+**source_id** | **str** | Source ID | [optional]
+**dest_id** | **str** | Destination ID | [optional]
+**asset** | **str** | Asset symbol | [optional]
+**base_asset** | **str** | Base asset symbol | [optional]
+**amount** | [**TRLinkAmount**](TRLinkAmount.md) | | [optional]
+**network_protocol** | **str** | Network protocol | [optional]
+**operation** | [**TransactionOperationEnum**](TransactionOperationEnum.md) | | [optional]
+**description** | **str** | Rule description | [optional]
+**is_default** | **bool** | Whether this is a default rule | [optional] [default to False]
+**valid_before** | **float** | Unix timestamp when rule expires | [optional]
+**valid_after** | **float** | Unix timestamp when rule becomes valid | [optional]
+**action** | [**TRLinkMissingTrmAction**](TRLinkMissingTrmAction.md) | |
+**source** | **str** | TRLink missing TRM source |
+**timestamp** | **datetime** | Timestamp of the decision | [optional]
+**reason** | **str** | Reason for the decision | [optional]
+
+## Example
+
+```python
+from fireblocks.models.tr_link_missing_trm_decision import TRLinkMissingTrmDecision
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of TRLinkMissingTrmDecision from a JSON string
+tr_link_missing_trm_decision_instance = TRLinkMissingTrmDecision.from_json(json)
+# print the JSON string representation of the object
+print(TRLinkMissingTrmDecision.to_json())
+
+# convert the object into a dict
+tr_link_missing_trm_decision_dict = tr_link_missing_trm_decision_instance.to_dict()
+# create an instance of TRLinkMissingTrmDecision from a dict
+tr_link_missing_trm_decision_from_dict = TRLinkMissingTrmDecision.from_dict(tr_link_missing_trm_decision_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/TRLinkMissingTrmRule.md b/docs/TRLinkMissingTrmRule.md
new file mode 100644
index 00000000..ee79847a
--- /dev/null
+++ b/docs/TRLinkMissingTrmRule.md
@@ -0,0 +1,49 @@
+# TRLinkMissingTrmRule
+
+TRLink missing TRM rule definition
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**customer_id** | **str** | Reference to TrlinkCustomer.id | [optional]
+**direction** | [**TransactionDirection**](TransactionDirection.md) | | [optional]
+**source_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional]
+**source_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional]
+**source_address** | **str** | Source address | [optional]
+**dest_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional]
+**dest_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional]
+**dest_address** | **str** | Destination address | [optional]
+**source_id** | **str** | Source ID | [optional]
+**dest_id** | **str** | Destination ID | [optional]
+**asset** | **str** | Asset symbol | [optional]
+**base_asset** | **str** | Base asset symbol | [optional]
+**amount** | [**TRLinkAmount**](TRLinkAmount.md) | | [optional]
+**network_protocol** | **str** | Network protocol | [optional]
+**operation** | [**TransactionOperationEnum**](TransactionOperationEnum.md) | | [optional]
+**description** | **str** | Rule description | [optional]
+**is_default** | **bool** | Whether this is a default rule | [optional] [default to False]
+**valid_before** | **float** | Unix timestamp when rule expires | [optional]
+**valid_after** | **float** | Unix timestamp when rule becomes valid | [optional]
+**action** | [**TRLinkMissingTrmAction**](TRLinkMissingTrmAction.md) | |
+
+## Example
+
+```python
+from fireblocks.models.tr_link_missing_trm_rule import TRLinkMissingTrmRule
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of TRLinkMissingTrmRule from a JSON string
+tr_link_missing_trm_rule_instance = TRLinkMissingTrmRule.from_json(json)
+# print the JSON string representation of the object
+print(TRLinkMissingTrmRule.to_json())
+
+# convert the object into a dict
+tr_link_missing_trm_rule_dict = tr_link_missing_trm_rule_instance.to_dict()
+# create an instance of TRLinkMissingTrmRule from a dict
+tr_link_missing_trm_rule_from_dict = TRLinkMissingTrmRule.from_dict(tr_link_missing_trm_rule_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/TRLinkPostScreeningRule.md b/docs/TRLinkPostScreeningRule.md
new file mode 100644
index 00000000..055e5b46
--- /dev/null
+++ b/docs/TRLinkPostScreeningRule.md
@@ -0,0 +1,51 @@
+# TRLinkPostScreeningRule
+
+TRLink post-screening rule definition
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**customer_id** | **str** | Reference to TrlinkCustomer.id | [optional]
+**direction** | [**TransactionDirection**](TransactionDirection.md) | | [optional]
+**source_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional]
+**source_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional]
+**source_address** | **str** | Source address | [optional]
+**dest_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional]
+**dest_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional]
+**dest_address** | **str** | Destination address | [optional]
+**source_id** | **str** | Source ID | [optional]
+**dest_id** | **str** | Destination ID | [optional]
+**asset** | **str** | Asset symbol | [optional]
+**base_asset** | **str** | Base asset symbol | [optional]
+**amount** | [**TRLinkAmount**](TRLinkAmount.md) | | [optional]
+**network_protocol** | **str** | Network protocol | [optional]
+**operation** | [**TransactionOperationEnum**](TransactionOperationEnum.md) | | [optional]
+**description** | **str** | Rule description | [optional]
+**is_default** | **bool** | Whether this is a default rule | [optional] [default to False]
+**provider_ident** | **str** | Provider identifier | [optional]
+**trm_status** | [**TRLinkTrmScreeningStatus**](TRLinkTrmScreeningStatus.md) | | [optional]
+**valid_before** | **float** | Unix timestamp when rule expires | [optional]
+**valid_after** | **float** | Unix timestamp when rule becomes valid | [optional]
+**action** | [**TRLinkVerdict**](TRLinkVerdict.md) | |
+
+## Example
+
+```python
+from fireblocks.models.tr_link_post_screening_rule import TRLinkPostScreeningRule
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of TRLinkPostScreeningRule from a JSON string
+tr_link_post_screening_rule_instance = TRLinkPostScreeningRule.from_json(json)
+# print the JSON string representation of the object
+print(TRLinkPostScreeningRule.to_json())
+
+# convert the object into a dict
+tr_link_post_screening_rule_dict = tr_link_post_screening_rule_instance.to_dict()
+# create an instance of TRLinkPostScreeningRule from a dict
+tr_link_post_screening_rule_from_dict = TRLinkPostScreeningRule.from_dict(tr_link_post_screening_rule_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/TRLinkPreScreeningAction.md b/docs/TRLinkPreScreeningAction.md
new file mode 100644
index 00000000..386b1242
--- /dev/null
+++ b/docs/TRLinkPreScreeningAction.md
@@ -0,0 +1,13 @@
+# TRLinkPreScreeningAction
+
+TRLink pre-screening action
+
+## Enum
+
+* `SCREEN` (value: `'SCREEN'`)
+
+* `PASS` (value: `'PASS'`)
+
+[[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/TRLinkPreScreeningActionEnum.md b/docs/TRLinkPreScreeningActionEnum.md
new file mode 100644
index 00000000..74c987eb
--- /dev/null
+++ b/docs/TRLinkPreScreeningActionEnum.md
@@ -0,0 +1,13 @@
+# TRLinkPreScreeningActionEnum
+
+TRLink pre-screening action
+
+## Enum
+
+* `SCREEN` (value: `'SCREEN'`)
+
+* `PASS` (value: `'PASS'`)
+
+[[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/TRLinkPreScreeningRule.md b/docs/TRLinkPreScreeningRule.md
new file mode 100644
index 00000000..080c74dd
--- /dev/null
+++ b/docs/TRLinkPreScreeningRule.md
@@ -0,0 +1,47 @@
+# TRLinkPreScreeningRule
+
+TRLink pre-screening rule definition
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**customer_id** | **str** | Reference to TrlinkCustomer.id | [optional]
+**direction** | [**TransactionDirection**](TransactionDirection.md) | | [optional]
+**source_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional]
+**source_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional]
+**source_address** | **str** | Source address | [optional]
+**dest_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional]
+**dest_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional]
+**dest_address** | **str** | Destination address | [optional]
+**source_id** | **str** | Source ID | [optional]
+**dest_id** | **str** | Destination ID | [optional]
+**asset** | **str** | Asset symbol | [optional]
+**base_asset** | **str** | Base asset symbol | [optional]
+**amount** | [**TRLinkAmount**](TRLinkAmount.md) | | [optional]
+**network_protocol** | **str** | Network protocol | [optional]
+**operation** | [**TransactionOperationEnum**](TransactionOperationEnum.md) | | [optional]
+**description** | **str** | Rule description | [optional]
+**is_default** | **bool** | Whether this is a default rule | [optional] [default to False]
+**action** | [**TRLinkPreScreeningAction**](TRLinkPreScreeningAction.md) | |
+
+## Example
+
+```python
+from fireblocks.models.tr_link_pre_screening_rule import TRLinkPreScreeningRule
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of TRLinkPreScreeningRule from a JSON string
+tr_link_pre_screening_rule_instance = TRLinkPreScreeningRule.from_json(json)
+# print the JSON string representation of the object
+print(TRLinkPreScreeningRule.to_json())
+
+# convert the object into a dict
+tr_link_pre_screening_rule_dict = tr_link_pre_screening_rule_instance.to_dict()
+# create an instance of TRLinkPreScreeningRule from a dict
+tr_link_pre_screening_rule_from_dict = TRLinkPreScreeningRule.from_dict(tr_link_pre_screening_rule_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/TRLinkProviderResult.md b/docs/TRLinkProviderResult.md
new file mode 100644
index 00000000..3ebe816c
--- /dev/null
+++ b/docs/TRLinkProviderResult.md
@@ -0,0 +1,30 @@
+# TRLinkProviderResult
+
+Provider-specific response data wrapper
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**provider_response** | **object** | Raw provider response | [optional]
+
+## Example
+
+```python
+from fireblocks.models.tr_link_provider_result import TRLinkProviderResult
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of TRLinkProviderResult from a JSON string
+tr_link_provider_result_instance = TRLinkProviderResult.from_json(json)
+# print the JSON string representation of the object
+print(TRLinkProviderResult.to_json())
+
+# convert the object into a dict
+tr_link_provider_result_dict = tr_link_provider_result_instance.to_dict()
+# create an instance of TRLinkProviderResult from a dict
+tr_link_provider_result_from_dict = TRLinkProviderResult.from_dict(tr_link_provider_result_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/TRLinkProviderResultWithRule.md b/docs/TRLinkProviderResultWithRule.md
new file mode 100644
index 00000000..2293f21a
--- /dev/null
+++ b/docs/TRLinkProviderResultWithRule.md
@@ -0,0 +1,31 @@
+# TRLinkProviderResultWithRule
+
+Provider response and matched rule wrapper for TRLink screening results
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**provider_response** | **object** | Raw provider response | [optional]
+**matched_rule** | [**TRLinkPostScreeningRule**](TRLinkPostScreeningRule.md) | | [optional]
+
+## Example
+
+```python
+from fireblocks.models.tr_link_provider_result_with_rule import TRLinkProviderResultWithRule
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of TRLinkProviderResultWithRule from a JSON string
+tr_link_provider_result_with_rule_instance = TRLinkProviderResultWithRule.from_json(json)
+# print the JSON string representation of the object
+print(TRLinkProviderResultWithRule.to_json())
+
+# convert the object into a dict
+tr_link_provider_result_with_rule_dict = tr_link_provider_result_with_rule_instance.to_dict()
+# create an instance of TRLinkProviderResultWithRule from a dict
+tr_link_provider_result_with_rule_from_dict = TRLinkProviderResultWithRule.from_dict(tr_link_provider_result_with_rule_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/TRLinkProviderResultWithRule2.md b/docs/TRLinkProviderResultWithRule2.md
new file mode 100644
index 00000000..95b5f39f
--- /dev/null
+++ b/docs/TRLinkProviderResultWithRule2.md
@@ -0,0 +1,31 @@
+# TRLinkProviderResultWithRule2
+
+Provider response and matched rule wrapper for TRLink screening results
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**provider_response** | **object** | Raw provider response | [optional]
+**matched_rule** | [**ScreeningTRLinkPostScreeningRule**](ScreeningTRLinkPostScreeningRule.md) | | [optional]
+
+## Example
+
+```python
+from fireblocks.models.tr_link_provider_result_with_rule2 import TRLinkProviderResultWithRule2
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of TRLinkProviderResultWithRule2 from a JSON string
+tr_link_provider_result_with_rule2_instance = TRLinkProviderResultWithRule2.from_json(json)
+# print the JSON string representation of the object
+print(TRLinkProviderResultWithRule2.to_json())
+
+# convert the object into a dict
+tr_link_provider_result_with_rule2_dict = tr_link_provider_result_with_rule2_instance.to_dict()
+# create an instance of TRLinkProviderResultWithRule2 from a dict
+tr_link_provider_result_with_rule2_from_dict = TRLinkProviderResultWithRule2.from_dict(tr_link_provider_result_with_rule2_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/TRLinkRegistrationResult.md b/docs/TRLinkRegistrationResult.md
new file mode 100644
index 00000000..8f24cee1
--- /dev/null
+++ b/docs/TRLinkRegistrationResult.md
@@ -0,0 +1,39 @@
+# TRLinkRegistrationResult
+
+TRLink registration result containing status and metadata
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**status** | [**TRLinkRegistrationStatus**](TRLinkRegistrationStatus.md) | |
+**provider** | **str** | The TRLink provider name | [optional]
+**success** | **bool** | Whether the registration was successful | [optional]
+**timestamp** | **float** | Unix timestamp of the registration |
+**dest_record_id** | **str** | Destination record identifier | [optional]
+**travel_rule_message_id** | **str** | Travel rule message identifier for linking | [optional]
+**customer_integration_id** | **str** | Customer integration identifier | [optional]
+**customer_short_name** | **str** | Customer short name | [optional]
+**result** | [**TRLinkProviderResult**](TRLinkProviderResult.md) | | [optional]
+**matched_prescreening_rule** | [**TRLinkPreScreeningRule**](TRLinkPreScreeningRule.md) | | [optional]
+
+## Example
+
+```python
+from fireblocks.models.tr_link_registration_result import TRLinkRegistrationResult
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of TRLinkRegistrationResult from a JSON string
+tr_link_registration_result_instance = TRLinkRegistrationResult.from_json(json)
+# print the JSON string representation of the object
+print(TRLinkRegistrationResult.to_json())
+
+# convert the object into a dict
+tr_link_registration_result_dict = tr_link_registration_result_instance.to_dict()
+# create an instance of TRLinkRegistrationResult from a dict
+tr_link_registration_result_from_dict = TRLinkRegistrationResult.from_dict(tr_link_registration_result_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/TRLinkRegistrationResultFullPayload.md b/docs/TRLinkRegistrationResultFullPayload.md
new file mode 100644
index 00000000..712af8d8
--- /dev/null
+++ b/docs/TRLinkRegistrationResultFullPayload.md
@@ -0,0 +1,39 @@
+# TRLinkRegistrationResultFullPayload
+
+TRLink registration result containing status and metadata
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**status** | [**TRLinkRegistrationStatusEnum**](TRLinkRegistrationStatusEnum.md) | |
+**provider** | **str** | The TRLink provider name | [optional]
+**success** | **bool** | Whether the registration was successful | [optional]
+**timestamp** | **float** | Unix timestamp of the registration |
+**dest_record_id** | **str** | Destination record identifier | [optional]
+**travel_rule_message_id** | **str** | Travel rule message identifier for linking | [optional]
+**customer_integration_id** | **str** | Customer integration identifier | [optional]
+**customer_short_name** | **str** | Customer short name | [optional]
+**result** | [**TRLinkProviderResult**](TRLinkProviderResult.md) | | [optional]
+**matched_prescreening_rule** | [**ScreeningTRLinkPrescreeningRule**](ScreeningTRLinkPrescreeningRule.md) | | [optional]
+
+## Example
+
+```python
+from fireblocks.models.tr_link_registration_result_full_payload import TRLinkRegistrationResultFullPayload
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of TRLinkRegistrationResultFullPayload from a JSON string
+tr_link_registration_result_full_payload_instance = TRLinkRegistrationResultFullPayload.from_json(json)
+# print the JSON string representation of the object
+print(TRLinkRegistrationResultFullPayload.to_json())
+
+# convert the object into a dict
+tr_link_registration_result_full_payload_dict = tr_link_registration_result_full_payload_instance.to_dict()
+# create an instance of TRLinkRegistrationResultFullPayload from a dict
+tr_link_registration_result_full_payload_from_dict = TRLinkRegistrationResultFullPayload.from_dict(tr_link_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/TRLinkRegistrationStatus.md b/docs/TRLinkRegistrationStatus.md
new file mode 100644
index 00000000..915b4393
--- /dev/null
+++ b/docs/TRLinkRegistrationStatus.md
@@ -0,0 +1,19 @@
+# TRLinkRegistrationStatus
+
+TRLink registration status
+
+## Enum
+
+* `STARTING` (value: `'STARTING'`)
+
+* `PRESCREENED` (value: `'PRESCREENED'`)
+
+* `COMPLETED` (value: `'COMPLETED'`)
+
+* `FAILED` (value: `'FAILED'`)
+
+* `VOID` (value: `'VOID'`)
+
+[[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/TRLinkRegistrationStatusEnum.md b/docs/TRLinkRegistrationStatusEnum.md
new file mode 100644
index 00000000..7762f710
--- /dev/null
+++ b/docs/TRLinkRegistrationStatusEnum.md
@@ -0,0 +1,19 @@
+# TRLinkRegistrationStatusEnum
+
+TRLink registration status
+
+## Enum
+
+* `STARTING` (value: `'STARTING'`)
+
+* `PRESCREENED` (value: `'PRESCREENED'`)
+
+* `COMPLETED` (value: `'COMPLETED'`)
+
+* `FAILED` (value: `'FAILED'`)
+
+* `VOID` (value: `'VOID'`)
+
+[[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/TRLinkResult.md b/docs/TRLinkResult.md
new file mode 100644
index 00000000..ccb05044
--- /dev/null
+++ b/docs/TRLinkResult.md
@@ -0,0 +1,43 @@
+# TRLinkResult
+
+TRLink screening result
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**provider** | **str** | The TRLink provider name |
+**timestamp** | **float** | Unix timestamp of the screening result |
+**status** | **str** | Status of the TRLink screening |
+**verdict** | [**TRLinkVerdict**](TRLinkVerdict.md) | | [optional]
+**dest_address** | **str** | The destination address associated with the TRLink screening | [optional]
+**dest_tag** | **str** | Destination tag for the screening | [optional]
+**bypass_reason** | **str** | Reason for bypassing the TRLink screening | [optional]
+**details_message** | **str** | Additional details message about the screening result | [optional]
+**customer_integration_id** | **str** | Customer integration identifier | [optional]
+**customer_short_name** | **str** | Customer short name | [optional]
+**travel_rule_message_id** | **str** | Travel rule message identifier for linking | [optional]
+**result** | [**TRLinkProviderResultWithRule**](TRLinkProviderResultWithRule.md) | | [optional]
+**matched_prescreening_rule** | [**TRLinkPreScreeningRule**](TRLinkPreScreeningRule.md) | | [optional]
+**matched_no_trm_screening_rule** | [**TRLinkMissingTrmDecision**](TRLinkMissingTrmDecision.md) | | [optional]
+
+## Example
+
+```python
+from fireblocks.models.tr_link_result import TRLinkResult
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of TRLinkResult from a JSON string
+tr_link_result_instance = TRLinkResult.from_json(json)
+# print the JSON string representation of the object
+print(TRLinkResult.to_json())
+
+# convert the object into a dict
+tr_link_result_dict = tr_link_result_instance.to_dict()
+# create an instance of TRLinkResult from a dict
+tr_link_result_from_dict = TRLinkResult.from_dict(tr_link_result_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/TRLinkResultFullPayload.md b/docs/TRLinkResultFullPayload.md
new file mode 100644
index 00000000..98683c27
--- /dev/null
+++ b/docs/TRLinkResultFullPayload.md
@@ -0,0 +1,43 @@
+# TRLinkResultFullPayload
+
+TRLink screening result
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**provider** | **str** | The TRLink provider name |
+**timestamp** | **float** | Unix timestamp of the screening result |
+**status** | **str** | Status of the TRLink screening |
+**verdict** | [**TRLinkVerdictEnum**](TRLinkVerdictEnum.md) | | [optional]
+**dest_address** | **str** | The destination address associated with the TRLink screening | [optional]
+**dest_tag** | **str** | Destination tag for the screening | [optional]
+**bypass_reason** | **str** | Reason for bypassing the TRLink screening | [optional]
+**details_message** | **str** | Additional details message about the screening result | [optional]
+**customer_integration_id** | **str** | Customer integration identifier | [optional]
+**customer_short_name** | **str** | Customer short name | [optional]
+**travel_rule_message_id** | **str** | Travel rule message identifier for linking | [optional]
+**result** | [**TRLinkProviderResultWithRule2**](TRLinkProviderResultWithRule2.md) | | [optional]
+**matched_prescreening_rule** | [**ScreeningTRLinkPrescreeningRule**](ScreeningTRLinkPrescreeningRule.md) | | [optional]
+**matched_no_trm_screening_rule** | [**ScreeningTRLinkMissingTrmDecision**](ScreeningTRLinkMissingTrmDecision.md) | | [optional]
+
+## Example
+
+```python
+from fireblocks.models.tr_link_result_full_payload import TRLinkResultFullPayload
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of TRLinkResultFullPayload from a JSON string
+tr_link_result_full_payload_instance = TRLinkResultFullPayload.from_json(json)
+# print the JSON string representation of the object
+print(TRLinkResultFullPayload.to_json())
+
+# convert the object into a dict
+tr_link_result_full_payload_dict = tr_link_result_full_payload_instance.to_dict()
+# create an instance of TRLinkResultFullPayload from a dict
+tr_link_result_full_payload_from_dict = TRLinkResultFullPayload.from_dict(tr_link_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/TRLinkRuleBase.md b/docs/TRLinkRuleBase.md
new file mode 100644
index 00000000..e0249806
--- /dev/null
+++ b/docs/TRLinkRuleBase.md
@@ -0,0 +1,46 @@
+# TRLinkRuleBase
+
+Base interface for TRLink policy rules
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**customer_id** | **str** | Reference to TrlinkCustomer.id | [optional]
+**direction** | [**TransactionDirection**](TransactionDirection.md) | | [optional]
+**source_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional]
+**source_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional]
+**source_address** | **str** | Source address | [optional]
+**dest_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional]
+**dest_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional]
+**dest_address** | **str** | Destination address | [optional]
+**source_id** | **str** | Source ID | [optional]
+**dest_id** | **str** | Destination ID | [optional]
+**asset** | **str** | Asset symbol | [optional]
+**base_asset** | **str** | Base asset symbol | [optional]
+**amount** | [**TRLinkAmount**](TRLinkAmount.md) | | [optional]
+**network_protocol** | **str** | Network protocol | [optional]
+**operation** | [**TransactionOperationEnum**](TransactionOperationEnum.md) | | [optional]
+**description** | **str** | Rule description | [optional]
+**is_default** | **bool** | Whether this is a default rule | [optional] [default to False]
+
+## Example
+
+```python
+from fireblocks.models.tr_link_rule_base import TRLinkRuleBase
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of TRLinkRuleBase from a JSON string
+tr_link_rule_base_instance = TRLinkRuleBase.from_json(json)
+# print the JSON string representation of the object
+print(TRLinkRuleBase.to_json())
+
+# convert the object into a dict
+tr_link_rule_base_dict = tr_link_rule_base_instance.to_dict()
+# create an instance of TRLinkRuleBase from a dict
+tr_link_rule_base_from_dict = TRLinkRuleBase.from_dict(tr_link_rule_base_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/TRLinkTrmScreeningStatus.md b/docs/TRLinkTrmScreeningStatus.md
new file mode 100644
index 00000000..35e51d45
--- /dev/null
+++ b/docs/TRLinkTrmScreeningStatus.md
@@ -0,0 +1,17 @@
+# TRLinkTrmScreeningStatus
+
+TRLink TRM screening status
+
+## Enum
+
+* `PENDING` (value: `'PENDING'`)
+
+* `ACCEPTED` (value: `'ACCEPTED'`)
+
+* `REJECTED` (value: `'REJECTED'`)
+
+* `FAILED` (value: `'FAILED'`)
+
+[[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/TRLinkTrmScreeningStatusEnum.md b/docs/TRLinkTrmScreeningStatusEnum.md
new file mode 100644
index 00000000..1d572b6e
--- /dev/null
+++ b/docs/TRLinkTrmScreeningStatusEnum.md
@@ -0,0 +1,17 @@
+# TRLinkTrmScreeningStatusEnum
+
+TRLink TRM screening status
+
+## Enum
+
+* `PENDING` (value: `'PENDING'`)
+
+* `ACCEPTED` (value: `'ACCEPTED'`)
+
+* `REJECTED` (value: `'REJECTED'`)
+
+* `FAILED` (value: `'FAILED'`)
+
+[[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/TRLinkVerdict.md b/docs/TRLinkVerdict.md
new file mode 100644
index 00000000..d2d760dc
--- /dev/null
+++ b/docs/TRLinkVerdict.md
@@ -0,0 +1,17 @@
+# TRLinkVerdict
+
+TRLink verdict after screening
+
+## Enum
+
+* `ACCEPT` (value: `'ACCEPT'`)
+
+* `ALERT` (value: `'ALERT'`)
+
+* `REJECT` (value: `'REJECT'`)
+
+* `WAIT` (value: `'WAIT'`)
+
+[[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/TRLinkVerdictEnum.md b/docs/TRLinkVerdictEnum.md
new file mode 100644
index 00000000..2f0b4942
--- /dev/null
+++ b/docs/TRLinkVerdictEnum.md
@@ -0,0 +1,17 @@
+# TRLinkVerdictEnum
+
+TRLink verdict after screening
+
+## Enum
+
+* `ACCEPT` (value: `'ACCEPT'`)
+
+* `ALERT` (value: `'ALERT'`)
+
+* `REJECT` (value: `'REJECT'`)
+
+* `WAIT` (value: `'WAIT'`)
+
+[[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/Tag.md b/docs/Tag.md
index 0a73508e..d9cb1895 100644
--- a/docs/Tag.md
+++ b/docs/Tag.md
@@ -8,6 +8,9 @@ Name | Type | Description | Notes
**id** | **str** | The unique identifier of the tag |
**label** | **str** | The tag label |
**description** | **str** | Description for the tag | [optional]
+**is_protected** | **bool** | Whether the tag is protected | [optional]
+**color** | **str** | The color of the tag in hex format | [optional]
+**updated_at** | **str** | The date and time the tag was last updated | [optional]
## Example
diff --git a/docs/TagAttachmentOperationAction.md b/docs/TagAttachmentOperationAction.md
new file mode 100644
index 00000000..60315f2f
--- /dev/null
+++ b/docs/TagAttachmentOperationAction.md
@@ -0,0 +1,12 @@
+# TagAttachmentOperationAction
+
+
+## Enum
+
+* `ATTACH` (value: `'ATTACH'`)
+
+* `DETACH` (value: `'DETACH'`)
+
+[[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/TransactionDirection.md b/docs/TransactionDirection.md
new file mode 100644
index 00000000..f04ca14a
--- /dev/null
+++ b/docs/TransactionDirection.md
@@ -0,0 +1,13 @@
+# TransactionDirection
+
+Transaction direction
+
+## Enum
+
+* `INBOUND` (value: `'INBOUND'`)
+
+* `OUTBOUND` (value: `'OUTBOUND'`)
+
+[[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/TransactionOperationEnum.md b/docs/TransactionOperationEnum.md
new file mode 100644
index 00000000..5faa05f1
--- /dev/null
+++ b/docs/TransactionOperationEnum.md
@@ -0,0 +1,37 @@
+# TransactionOperationEnum
+
+Transaction operation type
+
+## Enum
+
+* `TRANSFER` (value: `'TRANSFER'`)
+
+* `BURN` (value: `'BURN'`)
+
+* `CONTRACT_CALL` (value: `'CONTRACT_CALL'`)
+
+* `MINT` (value: `'MINT'`)
+
+* `RAW` (value: `'RAW'`)
+
+* `TYPED_MESSAGE` (value: `'TYPED_MESSAGE'`)
+
+* `ENABLE_ASSET` (value: `'ENABLE_ASSET'`)
+
+* `STAKE` (value: `'STAKE'`)
+
+* `UNSTAKE` (value: `'UNSTAKE'`)
+
+* `WITHDRAW` (value: `'WITHDRAW'`)
+
+* `REDEEM_FROM_COMPOUND` (value: `'REDEEM_FROM_COMPOUND'`)
+
+* `SUPPLY_TO_COMPOUND` (value: `'SUPPLY_TO_COMPOUND'`)
+
+* `PROGRAM_CALL` (value: `'PROGRAM_CALL'`)
+
+* `APPROVE` (value: `'APPROVE'`)
+
+[[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/TransactionsApi.md b/docs/TransactionsApi.md
index 66cbd554..5162b9ad 100644
--- a/docs/TransactionsApi.md
+++ b/docs/TransactionsApi.md
@@ -637,7 +637,7 @@ No authorization required
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **get_transactions**
-> List[TransactionResponse] get_transactions(before=before, after=after, status=status, order_by=order_by, sort=sort, limit=limit, source_type=source_type, source_id=source_id, dest_type=dest_type, dest_id=dest_id, assets=assets, tx_hash=tx_hash, source_wallet_id=source_wallet_id, dest_wallet_id=dest_wallet_id)
+> List[TransactionResponse] get_transactions(next=next, prev=prev, before=before, after=after, status=status, order_by=order_by, sort=sort, limit=limit, source_type=source_type, source_id=source_id, dest_type=dest_type, dest_id=dest_id, assets=assets, tx_hash=tx_hash, source_wallet_id=source_wallet_id, dest_wallet_id=dest_wallet_id)
List transaction history
@@ -668,6 +668,8 @@ configuration = ClientConfiguration(
# Enter a context with an instance of the API client
with Fireblocks(configuration) as fireblocks:
+ next = 'next_example' # str | Cursor returned in next-page header that can be used to fetch the next page of results (optional)
+ prev = 'prev_example' # str | Cursor returned in prev-page header that can be used to fetch the previous page of results (optional)
before = 'before_example' # str | Unix timestamp in milliseconds. Returns only transactions created before the specified date (optional)
after = 'after_example' # str | Unix timestamp in milliseconds. Returns only transactions created after the specified date (optional)
status = 'status_example' # str | You can filter by one of the statuses. (optional)
@@ -685,7 +687,7 @@ with Fireblocks(configuration) as fireblocks:
try:
# List transaction history
- api_response = fireblocks.transactions.get_transactions(before=before, after=after, status=status, order_by=order_by, sort=sort, limit=limit, source_type=source_type, source_id=source_id, dest_type=dest_type, dest_id=dest_id, assets=assets, tx_hash=tx_hash, source_wallet_id=source_wallet_id, dest_wallet_id=dest_wallet_id).result()
+ api_response = fireblocks.transactions.get_transactions(next=next, prev=prev, before=before, after=after, status=status, order_by=order_by, sort=sort, limit=limit, source_type=source_type, source_id=source_id, dest_type=dest_type, dest_id=dest_id, assets=assets, tx_hash=tx_hash, source_wallet_id=source_wallet_id, dest_wallet_id=dest_wallet_id).result()
print("The response of TransactionsApi->get_transactions:\n")
pprint(api_response)
except Exception as e:
@@ -699,6 +701,8 @@ with Fireblocks(configuration) as fireblocks:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
+ **next** | **str**| Cursor returned in next-page header that can be used to fetch the next page of results | [optional]
+ **prev** | **str**| Cursor returned in prev-page header that can be used to fetch the previous page of results | [optional]
**before** | **str**| Unix timestamp in milliseconds. Returns only transactions created before the specified date | [optional]
**after** | **str**| Unix timestamp in milliseconds. Returns only transactions created after the specified date | [optional]
**status** | **str**| You can filter by one of the statuses. | [optional]
diff --git a/docs/TransferPeerSubTypeEnum.md b/docs/TransferPeerSubTypeEnum.md
new file mode 100644
index 00000000..570d7d30
--- /dev/null
+++ b/docs/TransferPeerSubTypeEnum.md
@@ -0,0 +1,17 @@
+# TransferPeerSubTypeEnum
+
+Transfer peer sub-type for prescreening rules
+
+## Enum
+
+* `EXTERNAL` (value: `'EXTERNAL'`)
+
+* `INTERNAL` (value: `'INTERNAL'`)
+
+* `CONTRACT` (value: `'CONTRACT'`)
+
+* `EXCHANGETEST` (value: `'EXCHANGETEST'`)
+
+[[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/TransferPeerTypeEnum.md b/docs/TransferPeerTypeEnum.md
new file mode 100644
index 00000000..a5c2c776
--- /dev/null
+++ b/docs/TransferPeerTypeEnum.md
@@ -0,0 +1,37 @@
+# TransferPeerTypeEnum
+
+Transfer peer type (source or destination)
+
+## Enum
+
+* `VAULT_ACCOUNT` (value: `'VAULT_ACCOUNT'`)
+
+* `EXCHANGE_ACCOUNT` (value: `'EXCHANGE_ACCOUNT'`)
+
+* `INTERNAL_WALLET` (value: `'INTERNAL_WALLET'`)
+
+* `EXTERNAL_WALLET` (value: `'EXTERNAL_WALLET'`)
+
+* `CONTRACT` (value: `'CONTRACT'`)
+
+* `NETWORK_CONNECTION` (value: `'NETWORK_CONNECTION'`)
+
+* `FIAT_ACCOUNT` (value: `'FIAT_ACCOUNT'`)
+
+* `COMPOUND` (value: `'COMPOUND'`)
+
+* `GAS_STATION` (value: `'GAS_STATION'`)
+
+* `ONE_TIME_ADDRESS` (value: `'ONE_TIME_ADDRESS'`)
+
+* `UNKNOWN` (value: `'UNKNOWN'`)
+
+* `END_USER_WALLET` (value: `'END_USER_WALLET'`)
+
+* `PROGRAM_CALL` (value: `'PROGRAM_CALL'`)
+
+* `MULTI_DESTINATION` (value: `'MULTI_DESTINATION'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/TravelRuleActionEnum.md b/docs/TravelRuleActionEnum.md
new file mode 100644
index 00000000..01e82b18
--- /dev/null
+++ b/docs/TravelRuleActionEnum.md
@@ -0,0 +1,15 @@
+# TravelRuleActionEnum
+
+Travel rule action
+
+## Enum
+
+* `SCREEN` (value: `'SCREEN'`)
+
+* `BYPASS` (value: `'BYPASS'`)
+
+* `BLOCK` (value: `'BLOCK'`)
+
+[[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/TravelRuleDirectionEnum.md b/docs/TravelRuleDirectionEnum.md
new file mode 100644
index 00000000..4a71097f
--- /dev/null
+++ b/docs/TravelRuleDirectionEnum.md
@@ -0,0 +1,13 @@
+# TravelRuleDirectionEnum
+
+Travel rule direction
+
+## Enum
+
+* `INBOUND` (value: `'INBOUND'`)
+
+* `OUTBOUND` (value: `'OUTBOUND'`)
+
+[[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/TravelRuleMatchedRule.md b/docs/TravelRuleMatchedRule.md
new file mode 100644
index 00000000..775a92b2
--- /dev/null
+++ b/docs/TravelRuleMatchedRule.md
@@ -0,0 +1,35 @@
+# TravelRuleMatchedRule
+
+The travel rule configuration that was matched
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**direction** | [**TravelRuleDirectionEnum**](TravelRuleDirectionEnum.md) | | [optional]
+**status** | [**TravelRuleStatusEnum**](TravelRuleStatusEnum.md) | | [optional]
+**amount_usd** | **float** | Amount in USD | [optional]
+**amount** | **float** | Amount in base currency | [optional]
+**asset** | **str** | Asset identifier | [optional]
+**action** | [**TravelRuleVerdictEnum**](TravelRuleVerdictEnum.md) | | [optional]
+
+## Example
+
+```python
+from fireblocks.models.travel_rule_matched_rule import TravelRuleMatchedRule
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of TravelRuleMatchedRule from a JSON string
+travel_rule_matched_rule_instance = TravelRuleMatchedRule.from_json(json)
+# print the JSON string representation of the object
+print(TravelRuleMatchedRule.to_json())
+
+# convert the object into a dict
+travel_rule_matched_rule_dict = travel_rule_matched_rule_instance.to_dict()
+# create an instance of TravelRuleMatchedRule from a dict
+travel_rule_matched_rule_from_dict = TravelRuleMatchedRule.from_dict(travel_rule_matched_rule_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/TravelRulePrescreeningRule.md b/docs/TravelRulePrescreeningRule.md
new file mode 100644
index 00000000..89e3f001
--- /dev/null
+++ b/docs/TravelRulePrescreeningRule.md
@@ -0,0 +1,46 @@
+# TravelRulePrescreeningRule
+
+Matched prescreening rule details. Prescreening rules are evaluated before the main screening to determine if screening is necessary or should be bypassed.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**bypass_reason** | **str** | Reason for bypass if prescreening rule triggered a bypass | [optional]
+**source_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional]
+**source_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional]
+**dest_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional]
+**dest_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional]
+**transfer_peer_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional]
+**transfer_peer_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional]
+**dest_address** | **str** | Destination address | [optional]
+**source_id** | **str** | Source ID | [optional]
+**dest_id** | **str** | Destination ID | [optional]
+**asset** | **str** | Asset identifier | [optional]
+**base_asset** | **str** | Base asset | [optional]
+**amount** | **float** | Amount | [optional]
+**amount_usd** | **float** | Amount in USD | [optional]
+**network_protocol** | **str** | Network protocol | [optional]
+**operation** | [**TransactionOperationEnum**](TransactionOperationEnum.md) | | [optional]
+**action** | [**TravelRuleActionEnum**](TravelRuleActionEnum.md) | | [optional]
+
+## Example
+
+```python
+from fireblocks.models.travel_rule_prescreening_rule import TravelRulePrescreeningRule
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of TravelRulePrescreeningRule from a JSON string
+travel_rule_prescreening_rule_instance = TravelRulePrescreeningRule.from_json(json)
+# print the JSON string representation of the object
+print(TravelRulePrescreeningRule.to_json())
+
+# convert the object into a dict
+travel_rule_prescreening_rule_dict = travel_rule_prescreening_rule_instance.to_dict()
+# create an instance of TravelRulePrescreeningRule from a dict
+travel_rule_prescreening_rule_from_dict = TravelRulePrescreeningRule.from_dict(travel_rule_prescreening_rule_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/TravelRuleResult.md b/docs/TravelRuleResult.md
new file mode 100644
index 00000000..6f1566c7
--- /dev/null
+++ b/docs/TravelRuleResult.md
@@ -0,0 +1,34 @@
+# TravelRuleResult
+
+Detailed Travel Rule screening result containing provider-specific data. Contains Travel Rule specific information like verified status, rule type, and actions.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**direction** | [**TravelRuleDirectionEnum**](TravelRuleDirectionEnum.md) | | [optional]
+**is_verified** | **bool** | Whether the travel rule information was verified | [optional]
+**action** | [**TravelRuleVerdictEnum**](TravelRuleVerdictEnum.md) | | [optional]
+**provider_response** | **Dict[str, object]** | Complete response from the travel rule provider. This is a dynamic object that varies significantly between different travel rule providers (NOTABENE etc.). Each provider has their own proprietary response format and schema. Examples of provider-specific structures: - NOTABENE: Contains VASP information, PII data, protocol-specific fields The structure is provider-dependent and cannot be standardized as each vendor implements their own proprietary data models and response formats. | [optional]
+**matched_rule** | [**TravelRuleMatchedRule**](TravelRuleMatchedRule.md) | | [optional]
+
+## Example
+
+```python
+from fireblocks.models.travel_rule_result import TravelRuleResult
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of TravelRuleResult from a JSON string
+travel_rule_result_instance = TravelRuleResult.from_json(json)
+# print the JSON string representation of the object
+print(TravelRuleResult.to_json())
+
+# convert the object into a dict
+travel_rule_result_dict = travel_rule_result_instance.to_dict()
+# create an instance of TravelRuleResult from a dict
+travel_rule_result_from_dict = TravelRuleResult.from_dict(travel_rule_result_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/TravelRuleStatusEnum.md b/docs/TravelRuleStatusEnum.md
new file mode 100644
index 00000000..e69a93f1
--- /dev/null
+++ b/docs/TravelRuleStatusEnum.md
@@ -0,0 +1,19 @@
+# TravelRuleStatusEnum
+
+Travel rule status
+
+## Enum
+
+* `COMPLETED` (value: `'COMPLETED'`)
+
+* `PENDING` (value: `'PENDING'`)
+
+* `BYPASSED` (value: `'BYPASSED'`)
+
+* `FAILED` (value: `'FAILED'`)
+
+* `FROZEN` (value: `'FROZEN'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/TravelRuleVerdictEnum.md b/docs/TravelRuleVerdictEnum.md
new file mode 100644
index 00000000..14df8de8
--- /dev/null
+++ b/docs/TravelRuleVerdictEnum.md
@@ -0,0 +1,17 @@
+# TravelRuleVerdictEnum
+
+The final verdict of the travel rule screening
+
+## Enum
+
+* `ACCEPT` (value: `'ACCEPT'`)
+
+* `REJECT` (value: `'REJECT'`)
+
+* `ALERT` (value: `'ALERT'`)
+
+* `REVIEW` (value: `'REVIEW'`)
+
+[[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/USWireAddress.md b/docs/USWireAddress.md
new file mode 100644
index 00000000..8ca3015f
--- /dev/null
+++ b/docs/USWireAddress.md
@@ -0,0 +1,33 @@
+# USWireAddress
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**account_holder** | [**AccountHolderDetails**](AccountHolderDetails.md) | |
+**bank_name** | **str** | Name of the bank. | [optional]
+**bank_account_number** | **str** | The bank account number for the wire transfer. |
+**routing_number** | **str** | Routing number identifying the bank account. |
+**bank_address** | **str** | Address of the bank. | [optional]
+
+## Example
+
+```python
+from fireblocks.models.us_wire_address import USWireAddress
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of USWireAddress from a JSON string
+us_wire_address_instance = USWireAddress.from_json(json)
+# print the JSON string representation of the object
+print(USWireAddress.to_json())
+
+# convert the object into a dict
+us_wire_address_dict = us_wire_address_instance.to_dict()
+# create an instance of USWireAddress from a dict
+us_wire_address_from_dict = USWireAddress.from_dict(us_wire_address_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/USWireDestination.md b/docs/USWireDestination.md
new file mode 100644
index 00000000..0be078d2
--- /dev/null
+++ b/docs/USWireDestination.md
@@ -0,0 +1,30 @@
+# USWireDestination
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**type** | **str** | |
+**address** | [**USWireAddress**](USWireAddress.md) | |
+
+## Example
+
+```python
+from fireblocks.models.us_wire_destination import USWireDestination
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of USWireDestination from a JSON string
+us_wire_destination_instance = USWireDestination.from_json(json)
+# print the JSON string representation of the object
+print(USWireDestination.to_json())
+
+# convert the object into a dict
+us_wire_destination_dict = us_wire_destination_instance.to_dict()
+# create an instance of USWireDestination from a dict
+us_wire_destination_from_dict = USWireDestination.from_dict(us_wire_destination_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/VaultAccountTagAttachmentOperation.md b/docs/VaultAccountTagAttachmentOperation.md
new file mode 100644
index 00000000..27577671
--- /dev/null
+++ b/docs/VaultAccountTagAttachmentOperation.md
@@ -0,0 +1,31 @@
+# VaultAccountTagAttachmentOperation
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**vault_account_id** | **str** | The ID of the vault account |
+**tag_id** | **str** | Tag ID |
+**action** | [**TagAttachmentOperationAction**](TagAttachmentOperationAction.md) | |
+
+## Example
+
+```python
+from fireblocks.models.vault_account_tag_attachment_operation import VaultAccountTagAttachmentOperation
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of VaultAccountTagAttachmentOperation from a JSON string
+vault_account_tag_attachment_operation_instance = VaultAccountTagAttachmentOperation.from_json(json)
+# print the JSON string representation of the object
+print(VaultAccountTagAttachmentOperation.to_json())
+
+# convert the object into a dict
+vault_account_tag_attachment_operation_dict = vault_account_tag_attachment_operation_instance.to_dict()
+# create an instance of VaultAccountTagAttachmentOperation from a dict
+vault_account_tag_attachment_operation_from_dict = VaultAccountTagAttachmentOperation.from_dict(vault_account_tag_attachment_operation_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/VaultAccountTagAttachmentPendingOperation.md b/docs/VaultAccountTagAttachmentPendingOperation.md
new file mode 100644
index 00000000..c4e7bbca
--- /dev/null
+++ b/docs/VaultAccountTagAttachmentPendingOperation.md
@@ -0,0 +1,32 @@
+# VaultAccountTagAttachmentPendingOperation
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**vault_account_id** | **str** | The ID of the vault account |
+**tag_id** | **str** | Tag ID |
+**action** | [**TagAttachmentOperationAction**](TagAttachmentOperationAction.md) | |
+**approval_request_id** | **str** | Pending approval request ID |
+
+## Example
+
+```python
+from fireblocks.models.vault_account_tag_attachment_pending_operation import VaultAccountTagAttachmentPendingOperation
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of VaultAccountTagAttachmentPendingOperation from a JSON string
+vault_account_tag_attachment_pending_operation_instance = VaultAccountTagAttachmentPendingOperation.from_json(json)
+# print the JSON string representation of the object
+print(VaultAccountTagAttachmentPendingOperation.to_json())
+
+# convert the object into a dict
+vault_account_tag_attachment_pending_operation_dict = vault_account_tag_attachment_pending_operation_instance.to_dict()
+# create an instance of VaultAccountTagAttachmentPendingOperation from a dict
+vault_account_tag_attachment_pending_operation_from_dict = VaultAccountTagAttachmentPendingOperation.from_dict(vault_account_tag_attachment_pending_operation_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/VaultAccountTagAttachmentRejectedOperation.md b/docs/VaultAccountTagAttachmentRejectedOperation.md
new file mode 100644
index 00000000..9a694dc3
--- /dev/null
+++ b/docs/VaultAccountTagAttachmentRejectedOperation.md
@@ -0,0 +1,32 @@
+# VaultAccountTagAttachmentRejectedOperation
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**vault_account_id** | **str** | The ID of the vault account |
+**tag_id** | **str** | Tag ID |
+**action** | [**TagAttachmentOperationAction**](TagAttachmentOperationAction.md) | |
+**reason** | **str** | Reason for rejection |
+
+## Example
+
+```python
+from fireblocks.models.vault_account_tag_attachment_rejected_operation import VaultAccountTagAttachmentRejectedOperation
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of VaultAccountTagAttachmentRejectedOperation from a JSON string
+vault_account_tag_attachment_rejected_operation_instance = VaultAccountTagAttachmentRejectedOperation.from_json(json)
+# print the JSON string representation of the object
+print(VaultAccountTagAttachmentRejectedOperation.to_json())
+
+# convert the object into a dict
+vault_account_tag_attachment_rejected_operation_dict = vault_account_tag_attachment_rejected_operation_instance.to_dict()
+# create an instance of VaultAccountTagAttachmentRejectedOperation from a dict
+vault_account_tag_attachment_rejected_operation_from_dict = VaultAccountTagAttachmentRejectedOperation.from_dict(vault_account_tag_attachment_rejected_operation_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/VaultAccountsTagAttachmentOperationsRequest.md b/docs/VaultAccountsTagAttachmentOperationsRequest.md
new file mode 100644
index 00000000..82ecb891
--- /dev/null
+++ b/docs/VaultAccountsTagAttachmentOperationsRequest.md
@@ -0,0 +1,31 @@
+# VaultAccountsTagAttachmentOperationsRequest
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**vault_account_ids** | **List[str]** | The IDs of the vault accounts to attach tags to |
+**tag_ids_to_attach** | **List[str]** | The IDs of the tags to attach | [optional]
+**tag_ids_to_detach** | **List[str]** | The IDs of the tags to detach | [optional]
+
+## Example
+
+```python
+from fireblocks.models.vault_accounts_tag_attachment_operations_request import VaultAccountsTagAttachmentOperationsRequest
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of VaultAccountsTagAttachmentOperationsRequest from a JSON string
+vault_accounts_tag_attachment_operations_request_instance = VaultAccountsTagAttachmentOperationsRequest.from_json(json)
+# print the JSON string representation of the object
+print(VaultAccountsTagAttachmentOperationsRequest.to_json())
+
+# convert the object into a dict
+vault_accounts_tag_attachment_operations_request_dict = vault_accounts_tag_attachment_operations_request_instance.to_dict()
+# create an instance of VaultAccountsTagAttachmentOperationsRequest from a dict
+vault_accounts_tag_attachment_operations_request_from_dict = VaultAccountsTagAttachmentOperationsRequest.from_dict(vault_accounts_tag_attachment_operations_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/VaultAccountsTagAttachmentOperationsResponse.md b/docs/VaultAccountsTagAttachmentOperationsResponse.md
new file mode 100644
index 00000000..bd514aa1
--- /dev/null
+++ b/docs/VaultAccountsTagAttachmentOperationsResponse.md
@@ -0,0 +1,31 @@
+# VaultAccountsTagAttachmentOperationsResponse
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**applied_operations** | [**List[VaultAccountTagAttachmentOperation]**](VaultAccountTagAttachmentOperation.md) | The operations that were applied | [optional]
+**pending_operations** | [**List[VaultAccountTagAttachmentPendingOperation]**](VaultAccountTagAttachmentPendingOperation.md) | The operations that are pending | [optional]
+**rejected_operations** | [**List[VaultAccountTagAttachmentRejectedOperation]**](VaultAccountTagAttachmentRejectedOperation.md) | The operations that were rejected | [optional]
+
+## Example
+
+```python
+from fireblocks.models.vault_accounts_tag_attachment_operations_response import VaultAccountsTagAttachmentOperationsResponse
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of VaultAccountsTagAttachmentOperationsResponse from a JSON string
+vault_accounts_tag_attachment_operations_response_instance = VaultAccountsTagAttachmentOperationsResponse.from_json(json)
+# print the JSON string representation of the object
+print(VaultAccountsTagAttachmentOperationsResponse.to_json())
+
+# convert the object into a dict
+vault_accounts_tag_attachment_operations_response_dict = vault_accounts_tag_attachment_operations_response_instance.to_dict()
+# create an instance of VaultAccountsTagAttachmentOperationsResponse from a dict
+vault_accounts_tag_attachment_operations_response_from_dict = VaultAccountsTagAttachmentOperationsResponse.from_dict(vault_accounts_tag_attachment_operations_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/VaultsApi.md b/docs/VaultsApi.md
index 60462964..cf7f12e7 100644
--- a/docs/VaultsApi.md
+++ b/docs/VaultsApi.md
@@ -5,14 +5,15 @@ All URIs are relative to *https://api.fireblocks.io/v1*
Method | HTTP request | Description
------------- | ------------- | -------------
[**activate_asset_for_vault_account**](VaultsApi.md#activate_asset_for_vault_account) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/activate | Activate a wallet in a vault account
-[**attach_tags_to_vault_accounts**](VaultsApi.md#attach_tags_to_vault_accounts) | **POST** /vault/accounts/attached_tags/attach | Attach tags to a vault accounts
+[**attach_or_detach_tags_from_vault_accounts**](VaultsApi.md#attach_or_detach_tags_from_vault_accounts) | **POST** /vault/accounts/attached_tags | Attach or detach tags from a vault accounts
+[**attach_tags_to_vault_accounts**](VaultsApi.md#attach_tags_to_vault_accounts) | **POST** /vault/accounts/attached_tags/attach | Attach tags to a vault accounts (deprecated)
[**create_legacy_address**](VaultsApi.md#create_legacy_address) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}/create_legacy | Convert a segwit address to legacy format
[**create_multiple_accounts**](VaultsApi.md#create_multiple_accounts) | **POST** /vault/accounts/bulk | Bulk creation of new vault accounts
[**create_multiple_deposit_addresses**](VaultsApi.md#create_multiple_deposit_addresses) | **POST** /vault/accounts/addresses/bulk | Bulk creation of new deposit addresses
[**create_vault_account**](VaultsApi.md#create_vault_account) | **POST** /vault/accounts | Create a new vault account
[**create_vault_account_asset**](VaultsApi.md#create_vault_account_asset) | **POST** /vault/accounts/{vaultAccountId}/{assetId} | Create a new wallet
[**create_vault_account_asset_address**](VaultsApi.md#create_vault_account_asset_address) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/addresses | Create new asset deposit address
-[**detach_tags_from_vault_accounts**](VaultsApi.md#detach_tags_from_vault_accounts) | **POST** /vault/accounts/attached_tags/detach | Detach tags from a vault accounts
+[**detach_tags_from_vault_accounts**](VaultsApi.md#detach_tags_from_vault_accounts) | **POST** /vault/accounts/attached_tags/detach | Detach tags from a vault accounts (deprecated)
[**get_asset_wallets**](VaultsApi.md#get_asset_wallets) | **GET** /vault/asset_wallets | List asset wallets (Paginated)
[**get_create_multiple_deposit_addresses_job_status**](VaultsApi.md#get_create_multiple_deposit_addresses_job_status) | **GET** /vault/accounts/addresses/bulk/{jobId} | Get job status of bulk creation of new deposit addresses
[**get_create_multiple_vault_accounts_job_status**](VaultsApi.md#get_create_multiple_vault_accounts_job_status) | **GET** /vault/accounts/bulk/{jobId} | Get job status of bulk creation of new vault accounts
@@ -114,12 +115,90 @@ 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)
+# **attach_or_detach_tags_from_vault_accounts**
+> VaultAccountsTagAttachmentOperationsResponse attach_or_detach_tags_from_vault_accounts(vault_accounts_tag_attachment_operations_request, idempotency_key=idempotency_key)
+
+Attach or detach tags from a vault accounts
+
+Attach or detach one or more tags from the requested vault accounts.
+
+### Example
+
+
+```python
+from fireblocks.models.vault_accounts_tag_attachment_operations_request import VaultAccountsTagAttachmentOperationsRequest
+from fireblocks.models.vault_accounts_tag_attachment_operations_response import VaultAccountsTagAttachmentOperationsResponse
+from fireblocks.client import Fireblocks
+from fireblocks.client_configuration import ClientConfiguration
+from fireblocks.exceptions import ApiException
+from fireblocks.base_path import BasePath
+from pprint import pprint
+
+# load the secret key content from a file
+with open('your_secret_key_file_path', 'r') as file:
+ secret_key_value = file.read()
+
+# build the configuration
+configuration = ClientConfiguration(
+ api_key="your_api_key",
+ secret_key=secret_key_value,
+ base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1"
+)
+
+
+# Enter a context with an instance of the API client
+with Fireblocks(configuration) as fireblocks:
+ vault_accounts_tag_attachment_operations_request = fireblocks.VaultAccountsTagAttachmentOperationsRequest() # VaultAccountsTagAttachmentOperationsRequest |
+ 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:
+ # Attach or detach tags from a vault accounts
+ api_response = fireblocks.vaults.attach_or_detach_tags_from_vault_accounts(vault_accounts_tag_attachment_operations_request, idempotency_key=idempotency_key).result()
+ print("The response of VaultsApi->attach_or_detach_tags_from_vault_accounts:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling VaultsApi->attach_or_detach_tags_from_vault_accounts: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **vault_accounts_tag_attachment_operations_request** | [**VaultAccountsTagAttachmentOperationsRequest**](VaultAccountsTagAttachmentOperationsRequest.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
+
+[**VaultAccountsTagAttachmentOperationsResponse**](VaultAccountsTagAttachmentOperationsResponse.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Tags were attached/detached successfully | * X-Request-ID -
|
+**400** | - Invalid request parameters. - Same tag ID is provided in both tagIdsToAttach and tagIdsToDetach. - Vault accounts are archived. | * X-Request-ID -
|
+**404** | - Tags with the requested ID not found. - Vault accounts with the requested ID not found. | * 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)
+
# **attach_tags_to_vault_accounts**
> attach_tags_to_vault_accounts(vault_accounts_tag_attachments_request, idempotency_key=idempotency_key)
-Attach tags to a vault accounts
+Attach tags to a vault accounts (deprecated)
-Attach one or more tags to the requested vault accounts.
+Attach one or more tags to the requested vault accounts. This endpoint is deprecated. Please use /vault/accounts/attached_tags instead.
### Example
@@ -149,7 +228,7 @@ with Fireblocks(configuration) as fireblocks:
idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional)
try:
- # Attach tags to a vault accounts
+ # Attach tags to a vault accounts (deprecated)
fireblocks.vaults.attach_tags_to_vault_accounts(vault_accounts_tag_attachments_request, idempotency_key=idempotency_key).result()
except Exception as e:
print("Exception when calling VaultsApi->attach_tags_to_vault_accounts: %s\n" % e)
@@ -671,9 +750,9 @@ No authorization required
# **detach_tags_from_vault_accounts**
> detach_tags_from_vault_accounts(vault_accounts_tag_attachments_request, idempotency_key=idempotency_key)
-Detach tags from a vault accounts
+Detach tags from a vault accounts (deprecated)
-Detach one or more tags from the requested vault account.
+Detach one or more tags from the requested vault account. This endpoint is deprecated. Please use /vault/accounts/attached_tags instead.
### Example
@@ -703,7 +782,7 @@ with Fireblocks(configuration) as fireblocks:
idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional)
try:
- # Detach tags from a vault accounts
+ # Detach tags from a vault accounts (deprecated)
fireblocks.vaults.detach_tags_from_vault_accounts(vault_accounts_tag_attachments_request, idempotency_key=idempotency_key).result()
except Exception as e:
print("Exception when calling VaultsApi->detach_tags_from_vault_accounts: %s\n" % e)
diff --git a/docs/WebhookMetric.md b/docs/WebhookMetric.md
new file mode 100644
index 00000000..006d5f7e
--- /dev/null
+++ b/docs/WebhookMetric.md
@@ -0,0 +1,29 @@
+# WebhookMetric
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**value** | **str** | The value of the metric |
+
+## Example
+
+```python
+from fireblocks.models.webhook_metric import WebhookMetric
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of WebhookMetric from a JSON string
+webhook_metric_instance = WebhookMetric.from_json(json)
+# print the JSON string representation of the object
+print(WebhookMetric.to_json())
+
+# convert the object into a dict
+webhook_metric_dict = webhook_metric_instance.to_dict()
+# create an instance of WebhookMetric from a dict
+webhook_metric_from_dict = WebhookMetric.from_dict(webhook_metric_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/WebhooksV2Api.md b/docs/WebhooksV2Api.md
index 1cd8e796..49c4501b 100644
--- a/docs/WebhooksV2Api.md
+++ b/docs/WebhooksV2Api.md
@@ -6,6 +6,7 @@ Method | HTTP request | Description
------------- | ------------- | -------------
[**create_webhook**](WebhooksV2Api.md#create_webhook) | **POST** /webhooks | Create new webhook
[**delete_webhook**](WebhooksV2Api.md#delete_webhook) | **DELETE** /webhooks/{webhookId} | Delete webhook
+[**get_metrics**](WebhooksV2Api.md#get_metrics) | **GET** /webhooks/{webhookId}/metrics/{metricName} | Get webhook metrics
[**get_notification**](WebhooksV2Api.md#get_notification) | **GET** /webhooks/{webhookId}/notifications/{notificationId} | Get notification by id
[**get_notification_attempts**](WebhooksV2Api.md#get_notification_attempts) | **GET** /webhooks/{webhookId}/notifications/{notificationId}/attempts | Get notification attempts
[**get_notifications**](WebhooksV2Api.md#get_notifications) | **GET** /webhooks/{webhookId}/notifications | Get all notifications by webhook id
@@ -175,6 +176,83 @@ No authorization required
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+# **get_metrics**
+> WebhookMetric get_metrics(webhook_id, metric_name)
+
+Get webhook metrics
+
+Get webhook metrics by webhook id and metric name
+
+
+### Example
+
+
+```python
+from fireblocks.models.webhook_metric import WebhookMetric
+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:
+ webhook_id = '44fcead0-7053-4831-a53a-df7fb90d440f' # str |
+ metric_name = 'LAST_ACTIVE_HOUR_ERROR_RATE' # str | Name of the metric to retrieve
+
+ try:
+ # Get webhook metrics
+ api_response = fireblocks.webhooks_v2.get_metrics(webhook_id, metric_name).result()
+ print("The response of WebhooksV2Api->get_metrics:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling WebhooksV2Api->get_metrics: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **webhook_id** | **str**| |
+ **metric_name** | **str**| Name of the metric to retrieve |
+
+### Return type
+
+[**WebhookMetric**](WebhookMetric.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Webhook metrics | * 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_notification**
> NotificationWithData get_notification(webhook_id, notification_id, include_data=include_data)
diff --git a/fireblocks/__init__.py b/fireblocks/__init__.py
index e2ca3b12..6f713bd6 100644
--- a/fireblocks/__init__.py
+++ b/fireblocks/__init__.py
@@ -15,7 +15,7 @@
""" # noqa: E501
-__version__ = "12.1.2"
+__version__ = "0.0.0"
# import apis into sdk package
from fireblocks.api.api_user_api import ApiUserApi
@@ -88,6 +88,9 @@
from fireblocks.models.account_access import AccountAccess
from fireblocks.models.account_base import AccountBase
from fireblocks.models.account_based_access_provider import AccountBasedAccessProvider
+from fireblocks.models.account_based_access_provider_details import (
+ AccountBasedAccessProviderDetails,
+)
from fireblocks.models.account_config import AccountConfig
from fireblocks.models.account_holder_details import AccountHolderDetails
from fireblocks.models.account_identifier import AccountIdentifier
@@ -95,6 +98,9 @@
from fireblocks.models.account_reference import AccountReference
from fireblocks.models.account_type import AccountType
from fireblocks.models.account_type2 import AccountType2
+from fireblocks.models.ach_account_type import AchAccountType
+from fireblocks.models.ach_address import AchAddress
+from fireblocks.models.ach_destination import AchDestination
from fireblocks.models.ach_payment_info import AchPaymentInfo
from fireblocks.models.adapter_processing_result import AdapterProcessingResult
from fireblocks.models.add_abi_request_dto import AddAbiRequestDto
@@ -113,18 +119,27 @@
AdditionalInfoRequestAdditionalInfo,
)
from fireblocks.models.address_not_available_error import AddressNotAvailableError
+from fireblocks.models.alert_exposure_type_enum import AlertExposureTypeEnum
+from fireblocks.models.alert_level_enum import AlertLevelEnum
+from fireblocks.models.aml_alert import AmlAlert
+from fireblocks.models.aml_matched_rule import AmlMatchedRule
from fireblocks.models.aml_registration_result import AmlRegistrationResult
from fireblocks.models.aml_registration_result_full_payload import (
AmlRegistrationResultFullPayload,
)
+from fireblocks.models.aml_result import AmlResult
from fireblocks.models.aml_screening_result import AmlScreeningResult
+from fireblocks.models.aml_status_enum import AmlStatusEnum
from fireblocks.models.aml_verdict_manual_request import AmlVerdictManualRequest
from fireblocks.models.aml_verdict_manual_response import AmlVerdictManualResponse
from fireblocks.models.amount_and_chain_descriptor import AmountAndChainDescriptor
+from fireblocks.models.amount_config import AmountConfig
+from fireblocks.models.amount_config_currency import AmountConfigCurrency
from fireblocks.models.amount_info import AmountInfo
from fireblocks.models.amount_over_time_config import AmountOverTimeConfig
-from fireblocks.models.amount_over_time_config_range import AmountOverTimeConfigRange
from fireblocks.models.amount_range import AmountRange
+from fireblocks.models.amount_range_min_max import AmountRangeMinMax
+from fireblocks.models.amount_range_min_max2 import AmountRangeMinMax2
from fireblocks.models.api_key import ApiKey
from fireblocks.models.api_keys_paginated_response import ApiKeysPaginatedResponse
from fireblocks.models.approvers_config import ApproversConfig
@@ -397,6 +412,7 @@
CreateWorkflowExecutionRequestParamsInner,
)
from fireblocks.models.custom_routing_dest import CustomRoutingDest
+from fireblocks.models.d_app_address_config import DAppAddressConfig
from fireblocks.models.dvp_settlement import DVPSettlement
from fireblocks.models.default_network_routing_dest import DefaultNetworkRoutingDest
from fireblocks.models.delegation import Delegation
@@ -429,6 +445,7 @@
)
from fireblocks.models.direct_access import DirectAccess
from fireblocks.models.direct_access_provider import DirectAccessProvider
+from fireblocks.models.direct_access_provider_details import DirectAccessProviderDetails
from fireblocks.models.disbursement_amount_instruction import (
DisbursementAmountInstruction,
)
@@ -561,10 +578,12 @@
from fireblocks.models.fee_info import FeeInfo
from fireblocks.models.fee_level import FeeLevel
from fireblocks.models.fee_payer_info import FeePayerInfo
+from fireblocks.models.fee_properties_details import FeePropertiesDetails
from fireblocks.models.fetch_abi_request_dto import FetchAbiRequestDto
from fireblocks.models.fiat_account import FiatAccount
from fireblocks.models.fiat_account_type import FiatAccountType
from fireblocks.models.fiat_asset import FiatAsset
+from fireblocks.models.fiat_destination import FiatDestination
from fireblocks.models.fiat_transfer import FiatTransfer
from fireblocks.models.fixed_fee import FixedFee
from fireblocks.models.freeze_transaction_response import FreezeTransactionResponse
@@ -625,6 +644,8 @@
from fireblocks.models.http_contract_does_not_exist_error import (
HttpContractDoesNotExistError,
)
+from fireblocks.models.iban_address import IbanAddress
+from fireblocks.models.iban_destination import IbanDestination
from fireblocks.models.iban_payment_info import IbanPaymentInfo
from fireblocks.models.identification import Identification
from fireblocks.models.idl_type import IdlType
@@ -704,12 +725,19 @@
from fireblocks.models.limit_execution_response_details import (
LimitExecutionResponseDetails,
)
+from fireblocks.models.limit_type_details import LimitTypeDetails
from fireblocks.models.list_assets_response import ListAssetsResponse
from fireblocks.models.list_blockchains_response import ListBlockchainsResponse
from fireblocks.models.list_owned_collections_response import (
ListOwnedCollectionsResponse,
)
from fireblocks.models.list_owned_tokens_response import ListOwnedTokensResponse
+from fireblocks.models.local_bank_transfer_africa_address import (
+ LocalBankTransferAfricaAddress,
+)
+from fireblocks.models.local_bank_transfer_africa_destination import (
+ LocalBankTransferAfricaDestination,
+)
from fireblocks.models.manifest import Manifest
from fireblocks.models.market_execution_request_details import (
MarketExecutionRequestDetails,
@@ -718,9 +746,12 @@
MarketExecutionResponseDetails,
)
from fireblocks.models.market_requote_request_details import MarketRequoteRequestDetails
+from fireblocks.models.market_type_details import MarketTypeDetails
from fireblocks.models.media_entity_response import MediaEntityResponse
from fireblocks.models.merge_stake_accounts_request import MergeStakeAccountsRequest
from fireblocks.models.merge_stake_accounts_response import MergeStakeAccountsResponse
+from fireblocks.models.mobile_money_address import MobileMoneyAddress
+from fireblocks.models.mobile_money_destination import MobileMoneyDestination
from fireblocks.models.modify_signing_key_agent_id_dto import ModifySigningKeyAgentIdDto
from fireblocks.models.modify_signing_key_dto import ModifySigningKeyDto
from fireblocks.models.modify_validation_key_dto import ModifyValidationKeyDto
@@ -761,6 +792,7 @@
from fireblocks.models.one_time_address_reference import OneTimeAddressReference
from fireblocks.models.operation_execution_failure import OperationExecutionFailure
from fireblocks.models.order_details import OrderDetails
+from fireblocks.models.order_side import OrderSide
from fireblocks.models.order_status import OrderStatus
from fireblocks.models.order_summary import OrderSummary
from fireblocks.models.paginated_address_response import PaginatedAddressResponse
@@ -788,6 +820,7 @@
from fireblocks.models.payment_account_response import PaymentAccountResponse
from fireblocks.models.payment_account_type import PaymentAccountType
from fireblocks.models.payment_instructions import PaymentInstructions
+from fireblocks.models.payment_instructions_details import PaymentInstructionsDetails
from fireblocks.models.payout_init_method import PayoutInitMethod
from fireblocks.models.payout_instruction import PayoutInstruction
from fireblocks.models.payout_instruction_response import PayoutInstructionResponse
@@ -801,11 +834,14 @@
from fireblocks.models.personal_identification_full_name import (
PersonalIdentificationFullName,
)
+from fireblocks.models.pix_address import PixAddress
+from fireblocks.models.pix_destination import PixDestination
from fireblocks.models.pix_payment_info import PixPaymentInfo
from fireblocks.models.platform_account import PlatformAccount
from fireblocks.models.players import Players
from fireblocks.models.policy_and_validation_response import PolicyAndValidationResponse
from fireblocks.models.policy_check_result import PolicyCheckResult
+from fireblocks.models.policy_currency import PolicyCurrency
from fireblocks.models.policy_metadata import PolicyMetadata
from fireblocks.models.policy_operator import PolicyOperator
from fireblocks.models.policy_response import PolicyResponse
@@ -813,8 +849,11 @@
from fireblocks.models.policy_rule_check_result import PolicyRuleCheckResult
from fireblocks.models.policy_rule_error import PolicyRuleError
from fireblocks.models.policy_status import PolicyStatus
+from fireblocks.models.policy_tag import PolicyTag
from fireblocks.models.policy_type import PolicyType
from fireblocks.models.policy_validation import PolicyValidation
+from fireblocks.models.policy_verdict_action_enum import PolicyVerdictActionEnum
+from fireblocks.models.policy_verdict_action_enum2 import PolicyVerdictActionEnum2
from fireblocks.models.post_order_settlement import PostOrderSettlement
from fireblocks.models.postal_address import PostalAddress
from fireblocks.models.pre_screening import PreScreening
@@ -833,19 +872,17 @@
from fireblocks.models.quote_execution_response_details import (
QuoteExecutionResponseDetails,
)
+from fireblocks.models.quote_execution_type_details import QuoteExecutionTypeDetails
from fireblocks.models.quote_execution_with_requote_request_details import (
QuoteExecutionWithRequoteRequestDetails,
)
-from fireblocks.models.quote_execution_with_requote_request_details_all_of_re_quote import (
- QuoteExecutionWithRequoteRequestDetailsAllOfReQuote,
-)
from fireblocks.models.quote_execution_with_requote_response_details import (
QuoteExecutionWithRequoteResponseDetails,
)
-from fireblocks.models.quote_execution_with_requote_response_details_all_of_re_quote import (
- QuoteExecutionWithRequoteResponseDetailsAllOfReQuote,
-)
+from fireblocks.models.quote_properties_details import QuotePropertiesDetails
from fireblocks.models.quotes_response import QuotesResponse
+from fireblocks.models.re_quote_details import ReQuoteDetails
+from fireblocks.models.re_quote_details_re_quote import ReQuoteDetailsReQuote
from fireblocks.models.read_abi_function import ReadAbiFunction
from fireblocks.models.read_call_function_dto import ReadCallFunctionDto
from fireblocks.models.read_call_function_dto_abi_function import (
@@ -902,8 +939,16 @@
from fireblocks.models.retry_requote_request_details import RetryRequoteRequestDetails
from fireblocks.models.reward_info import RewardInfo
from fireblocks.models.rewards_info import RewardsInfo
+from fireblocks.models.sepa_address import SEPAAddress
+from fireblocks.models.sepa_destination import SEPADestination
from fireblocks.models.sol_account import SOLAccount
from fireblocks.models.sol_account_with_value import SOLAccountWithValue
+from fireblocks.models.screening_alert_exposure_type_enum import (
+ ScreeningAlertExposureTypeEnum,
+)
+from fireblocks.models.screening_aml_alert import ScreeningAmlAlert
+from fireblocks.models.screening_aml_matched_rule import ScreeningAmlMatchedRule
+from fireblocks.models.screening_aml_result import ScreeningAmlResult
from fireblocks.models.screening_configurations_request import (
ScreeningConfigurationsRequest,
)
@@ -918,11 +963,34 @@
from fireblocks.models.screening_provider_rules_configuration_response import (
ScreeningProviderRulesConfigurationResponse,
)
+from fireblocks.models.screening_risk_level_enum import ScreeningRiskLevelEnum
+from fireblocks.models.screening_tr_link_amount import ScreeningTRLinkAmount
+from fireblocks.models.screening_tr_link_missing_trm_decision import (
+ ScreeningTRLinkMissingTrmDecision,
+)
+from fireblocks.models.screening_tr_link_missing_trm_rule import (
+ ScreeningTRLinkMissingTrmRule,
+)
+from fireblocks.models.screening_tr_link_post_screening_rule import (
+ ScreeningTRLinkPostScreeningRule,
+)
+from fireblocks.models.screening_tr_link_prescreening_rule import (
+ ScreeningTRLinkPrescreeningRule,
+)
+from fireblocks.models.screening_tr_link_rule_base import ScreeningTRLinkRuleBase
+from fireblocks.models.screening_travel_rule_matched_rule import (
+ ScreeningTravelRuleMatchedRule,
+)
+from fireblocks.models.screening_travel_rule_prescreening_rule import (
+ ScreeningTravelRulePrescreeningRule,
+)
+from fireblocks.models.screening_travel_rule_result import ScreeningTravelRuleResult
from fireblocks.models.screening_update_configurations import (
ScreeningUpdateConfigurations,
)
from fireblocks.models.screening_validation_failure import ScreeningValidationFailure
from fireblocks.models.screening_verdict import ScreeningVerdict
+from fireblocks.models.screening_verdict_enum import ScreeningVerdictEnum
from fireblocks.models.screening_verdict_matched_rule import ScreeningVerdictMatchedRule
from fireblocks.models.search_network_ids_response import SearchNetworkIdsResponse
from fireblocks.models.sepa_payment_info import SepaPaymentInfo
@@ -1032,14 +1100,17 @@
from fireblocks.models.solana_instruction import SolanaInstruction
from fireblocks.models.solana_instruction_with_value import SolanaInstructionWithValue
from fireblocks.models.solana_simple_create_params import SolanaSimpleCreateParams
+from fireblocks.models.source_config import SourceConfig
from fireblocks.models.source_transfer_peer_path import SourceTransferPeerPath
from fireblocks.models.source_transfer_peer_path_response import (
SourceTransferPeerPathResponse,
)
from fireblocks.models.spam_ownership_response import SpamOwnershipResponse
from fireblocks.models.spam_token_response import SpamTokenResponse
+from fireblocks.models.spei_address import SpeiAddress
from fireblocks.models.spei_advanced_payment_info import SpeiAdvancedPaymentInfo
from fireblocks.models.spei_basic_payment_info import SpeiBasicPaymentInfo
+from fireblocks.models.spei_destination import SpeiDestination
from fireblocks.models.split_request import SplitRequest
from fireblocks.models.split_response import SplitResponse
from fireblocks.models.stake_request import StakeRequest
@@ -1049,8 +1120,48 @@
from fireblocks.models.stellar_ripple_create_params_dto import (
StellarRippleCreateParamsDto,
)
+from fireblocks.models.swift_address import SwiftAddress
+from fireblocks.models.swift_destination import SwiftDestination
from fireblocks.models.system_message_info import SystemMessageInfo
+from fireblocks.models.tr_link_amount import TRLinkAmount
+from fireblocks.models.tr_link_missing_trm_action import TRLinkMissingTrmAction
+from fireblocks.models.tr_link_missing_trm_action_enum import TRLinkMissingTrmActionEnum
+from fireblocks.models.tr_link_missing_trm_decision import TRLinkMissingTrmDecision
+from fireblocks.models.tr_link_missing_trm_rule import TRLinkMissingTrmRule
+from fireblocks.models.tr_link_post_screening_rule import TRLinkPostScreeningRule
+from fireblocks.models.tr_link_pre_screening_action import TRLinkPreScreeningAction
+from fireblocks.models.tr_link_pre_screening_action_enum import (
+ TRLinkPreScreeningActionEnum,
+)
+from fireblocks.models.tr_link_pre_screening_rule import TRLinkPreScreeningRule
+from fireblocks.models.tr_link_provider_result import TRLinkProviderResult
+from fireblocks.models.tr_link_provider_result_with_rule import (
+ TRLinkProviderResultWithRule,
+)
+from fireblocks.models.tr_link_provider_result_with_rule2 import (
+ TRLinkProviderResultWithRule2,
+)
+from fireblocks.models.tr_link_registration_result import TRLinkRegistrationResult
+from fireblocks.models.tr_link_registration_result_full_payload import (
+ TRLinkRegistrationResultFullPayload,
+)
+from fireblocks.models.tr_link_registration_status import TRLinkRegistrationStatus
+from fireblocks.models.tr_link_registration_status_enum import (
+ TRLinkRegistrationStatusEnum,
+)
+from fireblocks.models.tr_link_result import TRLinkResult
+from fireblocks.models.tr_link_result_full_payload import TRLinkResultFullPayload
+from fireblocks.models.tr_link_rule_base import TRLinkRuleBase
+from fireblocks.models.tr_link_trm_screening_status import TRLinkTrmScreeningStatus
+from fireblocks.models.tr_link_trm_screening_status_enum import (
+ TRLinkTrmScreeningStatusEnum,
+)
+from fireblocks.models.tr_link_verdict import TRLinkVerdict
+from fireblocks.models.tr_link_verdict_enum import TRLinkVerdictEnum
from fireblocks.models.tag import Tag
+from fireblocks.models.tag_attachment_operation_action import (
+ TagAttachmentOperationAction,
+)
from fireblocks.models.tags_paged_response import TagsPagedResponse
from fireblocks.models.task import Task
from fireblocks.models.templates_paginated_response import TemplatesPaginatedResponse
@@ -1085,8 +1196,10 @@
from fireblocks.models.trading_error_response_error import TradingErrorResponseError
from fireblocks.models.trading_provider import TradingProvider
from fireblocks.models.transaction import Transaction
+from fireblocks.models.transaction_direction import TransactionDirection
from fireblocks.models.transaction_fee import TransactionFee
from fireblocks.models.transaction_operation import TransactionOperation
+from fireblocks.models.transaction_operation_enum import TransactionOperationEnum
from fireblocks.models.transaction_receipt_response import TransactionReceiptResponse
from fireblocks.models.transaction_request import TransactionRequest
from fireblocks.models.transaction_request_amount import TransactionRequestAmount
@@ -1137,9 +1250,12 @@
from fireblocks.models.transfer_operation_type import TransferOperationType
from fireblocks.models.transfer_peer_path_sub_type import TransferPeerPathSubType
from fireblocks.models.transfer_peer_path_type import TransferPeerPathType
+from fireblocks.models.transfer_peer_sub_type_enum import TransferPeerSubTypeEnum
+from fireblocks.models.transfer_peer_type_enum import TransferPeerTypeEnum
from fireblocks.models.transfer_rail import TransferRail
from fireblocks.models.transfer_receipt import TransferReceipt
from fireblocks.models.transfer_validation_failure import TransferValidationFailure
+from fireblocks.models.travel_rule_action_enum import TravelRuleActionEnum
from fireblocks.models.travel_rule_address import TravelRuleAddress
from fireblocks.models.travel_rule_create_transaction_request import (
TravelRuleCreateTransactionRequest,
@@ -1147,6 +1263,7 @@
from fireblocks.models.travel_rule_date_and_place_of_birth import (
TravelRuleDateAndPlaceOfBirth,
)
+from fireblocks.models.travel_rule_direction_enum import TravelRuleDirectionEnum
from fireblocks.models.travel_rule_geographic_address import TravelRuleGeographicAddress
from fireblocks.models.travel_rule_get_all_vasps_response import (
TravelRuleGetAllVASPsResponse,
@@ -1157,6 +1274,7 @@
from fireblocks.models.travel_rule_legal_person_name_identifier import (
TravelRuleLegalPersonNameIdentifier,
)
+from fireblocks.models.travel_rule_matched_rule import TravelRuleMatchedRule
from fireblocks.models.travel_rule_national_identification import (
TravelRuleNationalIdentification,
)
@@ -1173,6 +1291,9 @@
from fireblocks.models.travel_rule_policy_rule_response import (
TravelRulePolicyRuleResponse,
)
+from fireblocks.models.travel_rule_prescreening_rule import TravelRulePrescreeningRule
+from fireblocks.models.travel_rule_result import TravelRuleResult
+from fireblocks.models.travel_rule_status_enum import TravelRuleStatusEnum
from fireblocks.models.travel_rule_transaction_blockchain_info import (
TravelRuleTransactionBlockchainInfo,
)
@@ -1216,7 +1337,10 @@
TravelRuleValidateTransactionResponse,
)
from fireblocks.models.travel_rule_vasp_for_vault import TravelRuleVaspForVault
+from fireblocks.models.travel_rule_verdict_enum import TravelRuleVerdictEnum
from fireblocks.models.tx_log import TxLog
+from fireblocks.models.us_wire_address import USWireAddress
+from fireblocks.models.us_wire_destination import USWireDestination
from fireblocks.models.unfreeze_transaction_response import UnfreezeTransactionResponse
from fireblocks.models.unmanaged_wallet import UnmanagedWallet
from fireblocks.models.unspent_input import UnspentInput
@@ -1260,10 +1384,25 @@
from fireblocks.models.validation_key_dto import ValidationKeyDto
from fireblocks.models.validator import Validator
from fireblocks.models.vault_account import VaultAccount
+from fireblocks.models.vault_account_tag_attachment_operation import (
+ VaultAccountTagAttachmentOperation,
+)
+from fireblocks.models.vault_account_tag_attachment_pending_operation import (
+ VaultAccountTagAttachmentPendingOperation,
+)
+from fireblocks.models.vault_account_tag_attachment_rejected_operation import (
+ VaultAccountTagAttachmentRejectedOperation,
+)
from fireblocks.models.vault_accounts_paged_response import VaultAccountsPagedResponse
from fireblocks.models.vault_accounts_paged_response_paging import (
VaultAccountsPagedResponsePaging,
)
+from fireblocks.models.vault_accounts_tag_attachment_operations_request import (
+ VaultAccountsTagAttachmentOperationsRequest,
+)
+from fireblocks.models.vault_accounts_tag_attachment_operations_response import (
+ VaultAccountsTagAttachmentOperationsResponse,
+)
from fireblocks.models.vault_accounts_tag_attachments_request import (
VaultAccountsTagAttachmentsRequest,
)
@@ -1277,6 +1416,7 @@
from fireblocks.models.wallet_asset_additional_info import WalletAssetAdditionalInfo
from fireblocks.models.webhook import Webhook
from fireblocks.models.webhook_event import WebhookEvent
+from fireblocks.models.webhook_metric import WebhookMetric
from fireblocks.models.webhook_paginated_response import WebhookPaginatedResponse
from fireblocks.models.withdraw_request import WithdrawRequest
from fireblocks.models.workflow_config_status import WorkflowConfigStatus
diff --git a/fireblocks/api/blockchains_assets_api.py b/fireblocks/api/blockchains_assets_api.py
index 16266dbf..4233c734 100644
--- a/fireblocks/api/blockchains_assets_api.py
+++ b/fireblocks/api/blockchains_assets_api.py
@@ -842,7 +842,7 @@ def register_new_asset(
) -> Future[ApiResponse[AssetResponse]]:
"""Register an asset
- Register a new asset to a workspace and return the newly created asset's details. Currently supported chains are: - EVM based chains - Stellar - Algorand - TRON - NEAR - Solana
+ Register a new asset to a workspace and return the newly created asset's details. Currently supported chains are: - EVM based chains - Stellar - Algorand - TRON - NEAR - Solana - Sui
: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
diff --git a/fireblocks/api/transactions_api.py b/fireblocks/api/transactions_api.py
index a54d02b8..8e524ab5 100644
--- a/fireblocks/api/transactions_api.py
+++ b/fireblocks/api/transactions_api.py
@@ -1200,6 +1200,8 @@ def _get_transaction_by_external_id_serialize(
@validate_call
def get_transactions(
self,
+ next: Annotated[Optional[StrictStr], Field(description="Cursor returned in next-page header that can be used to fetch the next page of results")] = None,
+ prev: Annotated[Optional[StrictStr], Field(description="Cursor returned in prev-page header that can be used to fetch the previous page of results")] = None,
before: Annotated[Optional[StrictStr], Field(description="Unix timestamp in milliseconds. Returns only transactions created before the specified date")] = None,
after: Annotated[Optional[StrictStr], Field(description="Unix timestamp in milliseconds. Returns only transactions created after the specified date")] = None,
status: Annotated[Optional[StrictStr], Field(description="You can filter by one of the statuses.")] = None,
@@ -1231,6 +1233,10 @@ def get_transactions(
Lists the transaction history for your workspace.
+ :param next: Cursor returned in next-page header that can be used to fetch the next page of results
+ :type next: str
+ :param prev: Cursor returned in prev-page header that can be used to fetch the previous page of results
+ :type prev: str
:param before: Unix timestamp in milliseconds. Returns only transactions created before the specified date
:type before: str
:param after: Unix timestamp in milliseconds. Returns only transactions created after the specified date
@@ -1283,6 +1289,8 @@ def get_transactions(
_param = self._get_transactions_serialize(
+ next=next,
+ prev=prev,
before=before,
after=after,
status=status,
@@ -1316,6 +1324,8 @@ def get_transactions(
def _get_transactions_serialize(
self,
+ next,
+ prev,
before,
after,
status,
@@ -1352,6 +1362,14 @@ def _get_transactions_serialize(
# process the path parameters
# process the query parameters
+ if next is not None:
+
+ _query_params.append(('next', next))
+
+ if prev is not None:
+
+ _query_params.append(('prev', prev))
+
if before is not None:
_query_params.append(('before', before))
diff --git a/fireblocks/api/vaults_api.py b/fireblocks/api/vaults_api.py
index 789c563e..1f0c9fe2 100644
--- a/fireblocks/api/vaults_api.py
+++ b/fireblocks/api/vaults_api.py
@@ -44,6 +44,8 @@
from fireblocks.models.update_vault_account_request import UpdateVaultAccountRequest
from fireblocks.models.vault_account import VaultAccount
from fireblocks.models.vault_accounts_paged_response import VaultAccountsPagedResponse
+from fireblocks.models.vault_accounts_tag_attachment_operations_request import VaultAccountsTagAttachmentOperationsRequest
+from fireblocks.models.vault_accounts_tag_attachment_operations_response import VaultAccountsTagAttachmentOperationsResponse
from fireblocks.models.vault_accounts_tag_attachments_request import VaultAccountsTagAttachmentsRequest
from fireblocks.models.vault_action_status import VaultActionStatus
from fireblocks.models.vault_asset import VaultAsset
@@ -211,6 +213,155 @@ def _activate_asset_for_vault_account_serialize(
+ @validate_call
+ def attach_or_detach_tags_from_vault_accounts(
+ self,
+ vault_accounts_tag_attachment_operations_request: VaultAccountsTagAttachmentOperationsRequest,
+ 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[VaultAccountsTagAttachmentOperationsResponse]]:
+ """Attach or detach tags from a vault accounts
+
+ Attach or detach one or more tags from the requested vault accounts.
+
+ :param vault_accounts_tag_attachment_operations_request: (required)
+ :type vault_accounts_tag_attachment_operations_request: VaultAccountsTagAttachmentOperationsRequest
+ :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._attach_or_detach_tags_from_vault_accounts_serialize(
+ vault_accounts_tag_attachment_operations_request=vault_accounts_tag_attachment_operations_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]] = {
+ '200': "VaultAccountsTagAttachmentOperationsResponse",
+ '400': "ErrorSchema",
+ '404': "ErrorSchema",
+ }
+
+ return self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout,
+ _response_types_map=_response_types_map,
+ )
+
+ def _attach_or_detach_tags_from_vault_accounts_serialize(
+ self,
+ vault_accounts_tag_attachment_operations_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, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ if idempotency_key is not None:
+ _header_params['Idempotency-Key'] = idempotency_key
+ # process the form parameters
+ # process the body parameter
+ if vault_accounts_tag_attachment_operations_request is not None:
+ _body_params = vault_accounts_tag_attachment_operations_request
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/vault/accounts/attached_tags',
+ 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 attach_tags_to_vault_accounts(
self,
@@ -229,9 +380,9 @@ def attach_tags_to_vault_accounts(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> Future[ApiResponse[None]]:
- """Attach tags to a vault accounts
+ """Attach tags to a vault accounts (deprecated)
- Attach one or more tags to the requested vault accounts.
+ Attach one or more tags to the requested vault accounts. This endpoint is deprecated. Please use /vault/accounts/attached_tags instead.
:param vault_accounts_tag_attachments_request: (required)
:type vault_accounts_tag_attachments_request: VaultAccountsTagAttachmentsRequest
@@ -1293,9 +1444,9 @@ def detach_tags_from_vault_accounts(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> Future[ApiResponse[None]]:
- """Detach tags from a vault accounts
+ """Detach tags from a vault accounts (deprecated)
- Detach one or more tags from the requested vault account.
+ Detach one or more tags from the requested vault account. This endpoint is deprecated. Please use /vault/accounts/attached_tags instead.
:param vault_accounts_tag_attachments_request: (required)
:type vault_accounts_tag_attachments_request: VaultAccountsTagAttachmentsRequest
diff --git a/fireblocks/api/webhooks_v2_api.py b/fireblocks/api/webhooks_v2_api.py
index 252ddda4..006880b2 100644
--- a/fireblocks/api/webhooks_v2_api.py
+++ b/fireblocks/api/webhooks_v2_api.py
@@ -33,6 +33,7 @@
from fireblocks.models.update_webhook_request import UpdateWebhookRequest
from fireblocks.models.webhook import Webhook
from fireblocks.models.webhook_event import WebhookEvent
+from fireblocks.models.webhook_metric import WebhookMetric
from fireblocks.models.webhook_paginated_response import WebhookPaginatedResponse
from fireblocks.api_client import ApiClient, RequestSerialized
@@ -331,6 +332,143 @@ def _delete_webhook_serialize(
+ @validate_call
+ def get_metrics(
+ self,
+ webhook_id: StrictStr,
+ metric_name: Annotated[StrictStr, Field(description="Name of the metric to retrieve")],
+ _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[WebhookMetric]]:
+ """Get webhook metrics
+
+ Get webhook metrics by webhook id and metric name
+
+ :param webhook_id: (required)
+ :type webhook_id: str
+ :param metric_name: Name of the metric to retrieve (required)
+ :type metric_name: 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_metrics", param_name="webhook_id", param_value=webhook_id)
+ validate_not_empty_string(function_name="get_metrics", param_name="metric_name", param_value=metric_name)
+
+ _param = self._get_metrics_serialize(
+ webhook_id=webhook_id,
+ metric_name=metric_name,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "WebhookMetric",
+ 'default': "ErrorSchema",
+ }
+
+ return self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout,
+ _response_types_map=_response_types_map,
+ )
+
+ def _get_metrics_serialize(
+ self,
+ webhook_id,
+ metric_name,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if webhook_id is not None:
+ _path_params['webhookId'] = webhook_id
+ if metric_name is not None:
+ _path_params['metricName'] = metric_name
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/webhooks/{webhookId}/metrics/{metricName}',
+ 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_notification(
self,
diff --git a/fireblocks/configuration.py b/fireblocks/configuration.py
index 86600a69..c8b5be4f 100644
--- a/fireblocks/configuration.py
+++ b/fireblocks/configuration.py
@@ -552,7 +552,7 @@ def to_debug_report(self) -> str:
"OS: {env}\n"
"Python Version: {pyversion}\n"
"Version of the API: 1.6.2\n"
- "SDK Package Version: 12.1.2".format(env=sys.platform, pyversion=sys.version)
+ "SDK Package Version: 0.0.0".format(env=sys.platform, pyversion=sys.version)
)
def get_host_settings(self) -> List[HostSetting]:
diff --git a/fireblocks/models/__init__.py b/fireblocks/models/__init__.py
index 0755d063..e15d5bf9 100644
--- a/fireblocks/models/__init__.py
+++ b/fireblocks/models/__init__.py
@@ -23,6 +23,7 @@
from fireblocks.models.account_access import AccountAccess
from fireblocks.models.account_base import AccountBase
from fireblocks.models.account_based_access_provider import AccountBasedAccessProvider
+from fireblocks.models.account_based_access_provider_details import AccountBasedAccessProviderDetails
from fireblocks.models.account_config import AccountConfig
from fireblocks.models.account_holder_details import AccountHolderDetails
from fireblocks.models.account_identifier import AccountIdentifier
@@ -30,6 +31,9 @@
from fireblocks.models.account_reference import AccountReference
from fireblocks.models.account_type import AccountType
from fireblocks.models.account_type2 import AccountType2
+from fireblocks.models.ach_account_type import AchAccountType
+from fireblocks.models.ach_address import AchAddress
+from fireblocks.models.ach_destination import AchDestination
from fireblocks.models.ach_payment_info import AchPaymentInfo
from fireblocks.models.adapter_processing_result import AdapterProcessingResult
from fireblocks.models.add_abi_request_dto import AddAbiRequestDto
@@ -44,16 +48,25 @@
from fireblocks.models.additional_info_request import AdditionalInfoRequest
from fireblocks.models.additional_info_request_additional_info import AdditionalInfoRequestAdditionalInfo
from fireblocks.models.address_not_available_error import AddressNotAvailableError
+from fireblocks.models.alert_exposure_type_enum import AlertExposureTypeEnum
+from fireblocks.models.alert_level_enum import AlertLevelEnum
+from fireblocks.models.aml_alert import AmlAlert
+from fireblocks.models.aml_matched_rule import AmlMatchedRule
from fireblocks.models.aml_registration_result import AmlRegistrationResult
from fireblocks.models.aml_registration_result_full_payload import AmlRegistrationResultFullPayload
+from fireblocks.models.aml_result import AmlResult
from fireblocks.models.aml_screening_result import AmlScreeningResult
+from fireblocks.models.aml_status_enum import AmlStatusEnum
from fireblocks.models.aml_verdict_manual_request import AmlVerdictManualRequest
from fireblocks.models.aml_verdict_manual_response import AmlVerdictManualResponse
from fireblocks.models.amount_and_chain_descriptor import AmountAndChainDescriptor
+from fireblocks.models.amount_config import AmountConfig
+from fireblocks.models.amount_config_currency import AmountConfigCurrency
from fireblocks.models.amount_info import AmountInfo
from fireblocks.models.amount_over_time_config import AmountOverTimeConfig
-from fireblocks.models.amount_over_time_config_range import AmountOverTimeConfigRange
from fireblocks.models.amount_range import AmountRange
+from fireblocks.models.amount_range_min_max import AmountRangeMinMax
+from fireblocks.models.amount_range_min_max2 import AmountRangeMinMax2
from fireblocks.models.api_key import ApiKey
from fireblocks.models.api_keys_paginated_response import ApiKeysPaginatedResponse
from fireblocks.models.approvers_config import ApproversConfig
@@ -230,6 +243,7 @@
from fireblocks.models.create_webhook_request import CreateWebhookRequest
from fireblocks.models.create_workflow_execution_request_params_inner import CreateWorkflowExecutionRequestParamsInner
from fireblocks.models.custom_routing_dest import CustomRoutingDest
+from fireblocks.models.d_app_address_config import DAppAddressConfig
from fireblocks.models.dvp_settlement import DVPSettlement
from fireblocks.models.default_network_routing_dest import DefaultNetworkRoutingDest
from fireblocks.models.delegation import Delegation
@@ -250,6 +264,7 @@
from fireblocks.models.destination_transfer_peer_path_response import DestinationTransferPeerPathResponse
from fireblocks.models.direct_access import DirectAccess
from fireblocks.models.direct_access_provider import DirectAccessProvider
+from fireblocks.models.direct_access_provider_details import DirectAccessProviderDetails
from fireblocks.models.disbursement_amount_instruction import DisbursementAmountInstruction
from fireblocks.models.disbursement_config_operation import DisbursementConfigOperation
from fireblocks.models.disbursement_instruction import DisbursementInstruction
@@ -326,10 +341,12 @@
from fireblocks.models.fee_info import FeeInfo
from fireblocks.models.fee_level import FeeLevel
from fireblocks.models.fee_payer_info import FeePayerInfo
+from fireblocks.models.fee_properties_details import FeePropertiesDetails
from fireblocks.models.fetch_abi_request_dto import FetchAbiRequestDto
from fireblocks.models.fiat_account import FiatAccount
from fireblocks.models.fiat_account_type import FiatAccountType
from fireblocks.models.fiat_asset import FiatAsset
+from fireblocks.models.fiat_destination import FiatDestination
from fireblocks.models.fiat_transfer import FiatTransfer
from fireblocks.models.fixed_fee import FixedFee
from fireblocks.models.freeze_transaction_response import FreezeTransactionResponse
@@ -364,6 +381,8 @@
from fireblocks.models.get_whitelist_ip_addresses_response import GetWhitelistIpAddressesResponse
from fireblocks.models.get_workspace_status_response import GetWorkspaceStatusResponse
from fireblocks.models.http_contract_does_not_exist_error import HttpContractDoesNotExistError
+from fireblocks.models.iban_address import IbanAddress
+from fireblocks.models.iban_destination import IbanDestination
from fireblocks.models.iban_payment_info import IbanPaymentInfo
from fireblocks.models.identification import Identification
from fireblocks.models.idl_type import IdlType
@@ -411,17 +430,23 @@
from fireblocks.models.legacy_src_or_dest_attributes_inner import LegacySrcOrDestAttributesInner
from fireblocks.models.limit_execution_request_details import LimitExecutionRequestDetails
from fireblocks.models.limit_execution_response_details import LimitExecutionResponseDetails
+from fireblocks.models.limit_type_details import LimitTypeDetails
from fireblocks.models.list_assets_response import ListAssetsResponse
from fireblocks.models.list_blockchains_response import ListBlockchainsResponse
from fireblocks.models.list_owned_collections_response import ListOwnedCollectionsResponse
from fireblocks.models.list_owned_tokens_response import ListOwnedTokensResponse
+from fireblocks.models.local_bank_transfer_africa_address import LocalBankTransferAfricaAddress
+from fireblocks.models.local_bank_transfer_africa_destination import LocalBankTransferAfricaDestination
from fireblocks.models.manifest import Manifest
from fireblocks.models.market_execution_request_details import MarketExecutionRequestDetails
from fireblocks.models.market_execution_response_details import MarketExecutionResponseDetails
from fireblocks.models.market_requote_request_details import MarketRequoteRequestDetails
+from fireblocks.models.market_type_details import MarketTypeDetails
from fireblocks.models.media_entity_response import MediaEntityResponse
from fireblocks.models.merge_stake_accounts_request import MergeStakeAccountsRequest
from fireblocks.models.merge_stake_accounts_response import MergeStakeAccountsResponse
+from fireblocks.models.mobile_money_address import MobileMoneyAddress
+from fireblocks.models.mobile_money_destination import MobileMoneyDestination
from fireblocks.models.modify_signing_key_agent_id_dto import ModifySigningKeyAgentIdDto
from fireblocks.models.modify_signing_key_dto import ModifySigningKeyDto
from fireblocks.models.modify_validation_key_dto import ModifyValidationKeyDto
@@ -452,6 +477,7 @@
from fireblocks.models.one_time_address_reference import OneTimeAddressReference
from fireblocks.models.operation_execution_failure import OperationExecutionFailure
from fireblocks.models.order_details import OrderDetails
+from fireblocks.models.order_side import OrderSide
from fireblocks.models.order_status import OrderStatus
from fireblocks.models.order_summary import OrderSummary
from fireblocks.models.paginated_address_response import PaginatedAddressResponse
@@ -473,6 +499,7 @@
from fireblocks.models.payment_account_response import PaymentAccountResponse
from fireblocks.models.payment_account_type import PaymentAccountType
from fireblocks.models.payment_instructions import PaymentInstructions
+from fireblocks.models.payment_instructions_details import PaymentInstructionsDetails
from fireblocks.models.payout_init_method import PayoutInitMethod
from fireblocks.models.payout_instruction import PayoutInstruction
from fireblocks.models.payout_instruction_response import PayoutInstructionResponse
@@ -484,11 +511,14 @@
from fireblocks.models.peer_type import PeerType
from fireblocks.models.personal_identification import PersonalIdentification
from fireblocks.models.personal_identification_full_name import PersonalIdentificationFullName
+from fireblocks.models.pix_address import PixAddress
+from fireblocks.models.pix_destination import PixDestination
from fireblocks.models.pix_payment_info import PixPaymentInfo
from fireblocks.models.platform_account import PlatformAccount
from fireblocks.models.players import Players
from fireblocks.models.policy_and_validation_response import PolicyAndValidationResponse
from fireblocks.models.policy_check_result import PolicyCheckResult
+from fireblocks.models.policy_currency import PolicyCurrency
from fireblocks.models.policy_metadata import PolicyMetadata
from fireblocks.models.policy_operator import PolicyOperator
from fireblocks.models.policy_response import PolicyResponse
@@ -496,8 +526,11 @@
from fireblocks.models.policy_rule_check_result import PolicyRuleCheckResult
from fireblocks.models.policy_rule_error import PolicyRuleError
from fireblocks.models.policy_status import PolicyStatus
+from fireblocks.models.policy_tag import PolicyTag
from fireblocks.models.policy_type import PolicyType
from fireblocks.models.policy_validation import PolicyValidation
+from fireblocks.models.policy_verdict_action_enum import PolicyVerdictActionEnum
+from fireblocks.models.policy_verdict_action_enum2 import PolicyVerdictActionEnum2
from fireblocks.models.post_order_settlement import PostOrderSettlement
from fireblocks.models.postal_address import PostalAddress
from fireblocks.models.pre_screening import PreScreening
@@ -512,11 +545,13 @@
from fireblocks.models.quote import Quote
from fireblocks.models.quote_execution_request_details import QuoteExecutionRequestDetails
from fireblocks.models.quote_execution_response_details import QuoteExecutionResponseDetails
+from fireblocks.models.quote_execution_type_details import QuoteExecutionTypeDetails
from fireblocks.models.quote_execution_with_requote_request_details import QuoteExecutionWithRequoteRequestDetails
-from fireblocks.models.quote_execution_with_requote_request_details_all_of_re_quote import QuoteExecutionWithRequoteRequestDetailsAllOfReQuote
from fireblocks.models.quote_execution_with_requote_response_details import QuoteExecutionWithRequoteResponseDetails
-from fireblocks.models.quote_execution_with_requote_response_details_all_of_re_quote import QuoteExecutionWithRequoteResponseDetailsAllOfReQuote
+from fireblocks.models.quote_properties_details import QuotePropertiesDetails
from fireblocks.models.quotes_response import QuotesResponse
+from fireblocks.models.re_quote_details import ReQuoteDetails
+from fireblocks.models.re_quote_details_re_quote import ReQuoteDetailsReQuote
from fireblocks.models.read_abi_function import ReadAbiFunction
from fireblocks.models.read_call_function_dto import ReadCallFunctionDto
from fireblocks.models.read_call_function_dto_abi_function import ReadCallFunctionDtoAbiFunction
@@ -545,8 +580,14 @@
from fireblocks.models.retry_requote_request_details import RetryRequoteRequestDetails
from fireblocks.models.reward_info import RewardInfo
from fireblocks.models.rewards_info import RewardsInfo
+from fireblocks.models.sepa_address import SEPAAddress
+from fireblocks.models.sepa_destination import SEPADestination
from fireblocks.models.sol_account import SOLAccount
from fireblocks.models.sol_account_with_value import SOLAccountWithValue
+from fireblocks.models.screening_alert_exposure_type_enum import ScreeningAlertExposureTypeEnum
+from fireblocks.models.screening_aml_alert import ScreeningAmlAlert
+from fireblocks.models.screening_aml_matched_rule import ScreeningAmlMatchedRule
+from fireblocks.models.screening_aml_result import ScreeningAmlResult
from fireblocks.models.screening_configurations_request import ScreeningConfigurationsRequest
from fireblocks.models.screening_metadata_config import ScreeningMetadataConfig
from fireblocks.models.screening_operation_execution import ScreeningOperationExecution
@@ -555,9 +596,20 @@
from fireblocks.models.screening_operation_type import ScreeningOperationType
from fireblocks.models.screening_policy_response import ScreeningPolicyResponse
from fireblocks.models.screening_provider_rules_configuration_response import ScreeningProviderRulesConfigurationResponse
+from fireblocks.models.screening_risk_level_enum import ScreeningRiskLevelEnum
+from fireblocks.models.screening_tr_link_amount import ScreeningTRLinkAmount
+from fireblocks.models.screening_tr_link_missing_trm_decision import ScreeningTRLinkMissingTrmDecision
+from fireblocks.models.screening_tr_link_missing_trm_rule import ScreeningTRLinkMissingTrmRule
+from fireblocks.models.screening_tr_link_post_screening_rule import ScreeningTRLinkPostScreeningRule
+from fireblocks.models.screening_tr_link_prescreening_rule import ScreeningTRLinkPrescreeningRule
+from fireblocks.models.screening_tr_link_rule_base import ScreeningTRLinkRuleBase
+from fireblocks.models.screening_travel_rule_matched_rule import ScreeningTravelRuleMatchedRule
+from fireblocks.models.screening_travel_rule_prescreening_rule import ScreeningTravelRulePrescreeningRule
+from fireblocks.models.screening_travel_rule_result import ScreeningTravelRuleResult
from fireblocks.models.screening_update_configurations import ScreeningUpdateConfigurations
from fireblocks.models.screening_validation_failure import ScreeningValidationFailure
from fireblocks.models.screening_verdict import ScreeningVerdict
+from fireblocks.models.screening_verdict_enum import ScreeningVerdictEnum
from fireblocks.models.screening_verdict_matched_rule import ScreeningVerdictMatchedRule
from fireblocks.models.search_network_ids_response import SearchNetworkIdsResponse
from fireblocks.models.sepa_payment_info import SepaPaymentInfo
@@ -623,12 +675,15 @@
from fireblocks.models.solana_instruction import SolanaInstruction
from fireblocks.models.solana_instruction_with_value import SolanaInstructionWithValue
from fireblocks.models.solana_simple_create_params import SolanaSimpleCreateParams
+from fireblocks.models.source_config import SourceConfig
from fireblocks.models.source_transfer_peer_path import SourceTransferPeerPath
from fireblocks.models.source_transfer_peer_path_response import SourceTransferPeerPathResponse
from fireblocks.models.spam_ownership_response import SpamOwnershipResponse
from fireblocks.models.spam_token_response import SpamTokenResponse
+from fireblocks.models.spei_address import SpeiAddress
from fireblocks.models.spei_advanced_payment_info import SpeiAdvancedPaymentInfo
from fireblocks.models.spei_basic_payment_info import SpeiBasicPaymentInfo
+from fireblocks.models.spei_destination import SpeiDestination
from fireblocks.models.split_request import SplitRequest
from fireblocks.models.split_response import SplitResponse
from fireblocks.models.stake_request import StakeRequest
@@ -636,8 +691,34 @@
from fireblocks.models.staking_provider import StakingProvider
from fireblocks.models.status import Status
from fireblocks.models.stellar_ripple_create_params_dto import StellarRippleCreateParamsDto
+from fireblocks.models.swift_address import SwiftAddress
+from fireblocks.models.swift_destination import SwiftDestination
from fireblocks.models.system_message_info import SystemMessageInfo
+from fireblocks.models.tr_link_amount import TRLinkAmount
+from fireblocks.models.tr_link_missing_trm_action import TRLinkMissingTrmAction
+from fireblocks.models.tr_link_missing_trm_action_enum import TRLinkMissingTrmActionEnum
+from fireblocks.models.tr_link_missing_trm_decision import TRLinkMissingTrmDecision
+from fireblocks.models.tr_link_missing_trm_rule import TRLinkMissingTrmRule
+from fireblocks.models.tr_link_post_screening_rule import TRLinkPostScreeningRule
+from fireblocks.models.tr_link_pre_screening_action import TRLinkPreScreeningAction
+from fireblocks.models.tr_link_pre_screening_action_enum import TRLinkPreScreeningActionEnum
+from fireblocks.models.tr_link_pre_screening_rule import TRLinkPreScreeningRule
+from fireblocks.models.tr_link_provider_result import TRLinkProviderResult
+from fireblocks.models.tr_link_provider_result_with_rule import TRLinkProviderResultWithRule
+from fireblocks.models.tr_link_provider_result_with_rule2 import TRLinkProviderResultWithRule2
+from fireblocks.models.tr_link_registration_result import TRLinkRegistrationResult
+from fireblocks.models.tr_link_registration_result_full_payload import TRLinkRegistrationResultFullPayload
+from fireblocks.models.tr_link_registration_status import TRLinkRegistrationStatus
+from fireblocks.models.tr_link_registration_status_enum import TRLinkRegistrationStatusEnum
+from fireblocks.models.tr_link_result import TRLinkResult
+from fireblocks.models.tr_link_result_full_payload import TRLinkResultFullPayload
+from fireblocks.models.tr_link_rule_base import TRLinkRuleBase
+from fireblocks.models.tr_link_trm_screening_status import TRLinkTrmScreeningStatus
+from fireblocks.models.tr_link_trm_screening_status_enum import TRLinkTrmScreeningStatusEnum
+from fireblocks.models.tr_link_verdict import TRLinkVerdict
+from fireblocks.models.tr_link_verdict_enum import TRLinkVerdictEnum
from fireblocks.models.tag import Tag
+from fireblocks.models.tag_attachment_operation_action import TagAttachmentOperationAction
from fireblocks.models.tags_paged_response import TagsPagedResponse
from fireblocks.models.task import Task
from fireblocks.models.templates_paginated_response import TemplatesPaginatedResponse
@@ -664,8 +745,10 @@
from fireblocks.models.trading_error_response_error import TradingErrorResponseError
from fireblocks.models.trading_provider import TradingProvider
from fireblocks.models.transaction import Transaction
+from fireblocks.models.transaction_direction import TransactionDirection
from fireblocks.models.transaction_fee import TransactionFee
from fireblocks.models.transaction_operation import TransactionOperation
+from fireblocks.models.transaction_operation_enum import TransactionOperationEnum
from fireblocks.models.transaction_receipt_response import TransactionReceiptResponse
from fireblocks.models.transaction_request import TransactionRequest
from fireblocks.models.transaction_request_amount import TransactionRequestAmount
@@ -692,18 +775,23 @@
from fireblocks.models.transfer_operation_type import TransferOperationType
from fireblocks.models.transfer_peer_path_sub_type import TransferPeerPathSubType
from fireblocks.models.transfer_peer_path_type import TransferPeerPathType
+from fireblocks.models.transfer_peer_sub_type_enum import TransferPeerSubTypeEnum
+from fireblocks.models.transfer_peer_type_enum import TransferPeerTypeEnum
from fireblocks.models.transfer_rail import TransferRail
from fireblocks.models.transfer_receipt import TransferReceipt
from fireblocks.models.transfer_validation_failure import TransferValidationFailure
+from fireblocks.models.travel_rule_action_enum import TravelRuleActionEnum
from fireblocks.models.travel_rule_address import TravelRuleAddress
from fireblocks.models.travel_rule_create_transaction_request import TravelRuleCreateTransactionRequest
from fireblocks.models.travel_rule_date_and_place_of_birth import TravelRuleDateAndPlaceOfBirth
+from fireblocks.models.travel_rule_direction_enum import TravelRuleDirectionEnum
from fireblocks.models.travel_rule_geographic_address import TravelRuleGeographicAddress
from fireblocks.models.travel_rule_get_all_vasps_response import TravelRuleGetAllVASPsResponse
from fireblocks.models.travel_rule_issuer import TravelRuleIssuer
from fireblocks.models.travel_rule_issuers import TravelRuleIssuers
from fireblocks.models.travel_rule_legal_person import TravelRuleLegalPerson
from fireblocks.models.travel_rule_legal_person_name_identifier import TravelRuleLegalPersonNameIdentifier
+from fireblocks.models.travel_rule_matched_rule import TravelRuleMatchedRule
from fireblocks.models.travel_rule_national_identification import TravelRuleNationalIdentification
from fireblocks.models.travel_rule_natural_name_identifier import TravelRuleNaturalNameIdentifier
from fireblocks.models.travel_rule_natural_person import TravelRuleNaturalPerson
@@ -712,6 +800,9 @@
from fireblocks.models.travel_rule_person import TravelRulePerson
from fireblocks.models.travel_rule_pii_ivms import TravelRulePiiIVMS
from fireblocks.models.travel_rule_policy_rule_response import TravelRulePolicyRuleResponse
+from fireblocks.models.travel_rule_prescreening_rule import TravelRulePrescreeningRule
+from fireblocks.models.travel_rule_result import TravelRuleResult
+from fireblocks.models.travel_rule_status_enum import TravelRuleStatusEnum
from fireblocks.models.travel_rule_transaction_blockchain_info import TravelRuleTransactionBlockchainInfo
from fireblocks.models.travel_rule_update_vasp_details import TravelRuleUpdateVASPDetails
from fireblocks.models.travel_rule_vasp import TravelRuleVASP
@@ -729,7 +820,10 @@
from fireblocks.models.travel_rule_validate_transaction_request import TravelRuleValidateTransactionRequest
from fireblocks.models.travel_rule_validate_transaction_response import TravelRuleValidateTransactionResponse
from fireblocks.models.travel_rule_vasp_for_vault import TravelRuleVaspForVault
+from fireblocks.models.travel_rule_verdict_enum import TravelRuleVerdictEnum
from fireblocks.models.tx_log import TxLog
+from fireblocks.models.us_wire_address import USWireAddress
+from fireblocks.models.us_wire_destination import USWireDestination
from fireblocks.models.unfreeze_transaction_response import UnfreezeTransactionResponse
from fireblocks.models.unmanaged_wallet import UnmanagedWallet
from fireblocks.models.unspent_input import UnspentInput
@@ -759,8 +853,13 @@
from fireblocks.models.validation_key_dto import ValidationKeyDto
from fireblocks.models.validator import Validator
from fireblocks.models.vault_account import VaultAccount
+from fireblocks.models.vault_account_tag_attachment_operation import VaultAccountTagAttachmentOperation
+from fireblocks.models.vault_account_tag_attachment_pending_operation import VaultAccountTagAttachmentPendingOperation
+from fireblocks.models.vault_account_tag_attachment_rejected_operation import VaultAccountTagAttachmentRejectedOperation
from fireblocks.models.vault_accounts_paged_response import VaultAccountsPagedResponse
from fireblocks.models.vault_accounts_paged_response_paging import VaultAccountsPagedResponsePaging
+from fireblocks.models.vault_accounts_tag_attachment_operations_request import VaultAccountsTagAttachmentOperationsRequest
+from fireblocks.models.vault_accounts_tag_attachment_operations_response import VaultAccountsTagAttachmentOperationsResponse
from fireblocks.models.vault_accounts_tag_attachments_request import VaultAccountsTagAttachmentsRequest
from fireblocks.models.vault_action_status import VaultActionStatus
from fireblocks.models.vault_asset import VaultAsset
@@ -772,6 +871,7 @@
from fireblocks.models.wallet_asset_additional_info import WalletAssetAdditionalInfo
from fireblocks.models.webhook import Webhook
from fireblocks.models.webhook_event import WebhookEvent
+from fireblocks.models.webhook_metric import WebhookMetric
from fireblocks.models.webhook_paginated_response import WebhookPaginatedResponse
from fireblocks.models.withdraw_request import WithdrawRequest
from fireblocks.models.workflow_config_status import WorkflowConfigStatus
diff --git a/fireblocks/models/account_based_access_provider_details.py b/fireblocks/models/account_based_access_provider_details.py
new file mode 100644
index 00000000..00c7d642
--- /dev/null
+++ b/fireblocks/models/account_based_access_provider_details.py
@@ -0,0 +1,104 @@
+# 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, StrictBool
+from typing import Any, ClassVar, Dict, List, Optional
+from fireblocks.models.account_base import AccountBase
+from fireblocks.models.manifest import Manifest
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AccountBasedAccessProviderDetails(BaseModel):
+ """
+ AccountBasedAccessProviderDetails
+ """ # noqa: E501
+ manifest: Manifest
+ connected: StrictBool = Field(description="Whether the provider is currently connected")
+ accounts: Optional[List[AccountBase]] = None
+ __properties: ClassVar[List[str]] = ["manifest", "connected", "accounts"]
+
+ 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 AccountBasedAccessProviderDetails from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # override the default output from pydantic by calling `to_dict()` of manifest
+ if self.manifest:
+ _dict['manifest'] = self.manifest.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of each item in accounts (list)
+ _items = []
+ if self.accounts:
+ for _item_accounts in self.accounts:
+ if _item_accounts:
+ _items.append(_item_accounts.to_dict())
+ _dict['accounts'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of AccountBasedAccessProviderDetails from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "manifest": Manifest.from_dict(obj["manifest"]) if obj.get("manifest") is not None else None,
+ "connected": obj.get("connected"),
+ "accounts": [AccountBase.from_dict(_item) for _item in obj["accounts"]] if obj.get("accounts") is not None else None
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/account_config.py b/fireblocks/models/account_config.py
index 6a06732c..6ce6f7de 100644
--- a/fireblocks/models/account_config.py
+++ b/fireblocks/models/account_config.py
@@ -23,19 +23,21 @@
from fireblocks.models.account_identifier import AccountIdentifier
from fireblocks.models.account_type2 import AccountType2
from fireblocks.models.policy_operator import PolicyOperator
+from fireblocks.models.policy_tag import PolicyTag
from typing import Optional, Set
from typing_extensions import Self
class AccountConfig(BaseModel):
"""
- Policy source/destination configuration
+ Policy account configuration
""" # noqa: E501
- type: AccountType2
+ type: Optional[List[AccountType2]] = Field(default=None, description="Account types")
sub_type: Optional[List[AccountIdentifier]] = Field(default=None, alias="subType")
ids: Optional[List[AccountIdentifier]] = None
+ tags: Optional[List[PolicyTag]] = Field(default=None, description="Tags for account matching")
operator: PolicyOperator
match_from: Optional[StrictStr] = Field(default=None, description="Whether to match from account or source", alias="matchFrom")
- __properties: ClassVar[List[str]] = ["type", "subType", "ids", "operator", "matchFrom"]
+ __properties: ClassVar[List[str]] = ["type", "subType", "ids", "tags", "operator", "matchFrom"]
@field_validator('match_from')
def match_from_validate_enum(cls, value):
@@ -100,6 +102,13 @@ def to_dict(self) -> Dict[str, Any]:
if _item_ids:
_items.append(_item_ids.to_dict())
_dict['ids'] = _items
+ # override the default output from pydantic by calling `to_dict()` of each item in tags (list)
+ _items = []
+ if self.tags:
+ for _item_tags in self.tags:
+ if _item_tags:
+ _items.append(_item_tags.to_dict())
+ _dict['tags'] = _items
return _dict
@classmethod
@@ -115,6 +124,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"type": obj.get("type"),
"subType": [AccountIdentifier.from_dict(_item) for _item in obj["subType"]] if obj.get("subType") is not None else None,
"ids": [AccountIdentifier.from_dict(_item) for _item in obj["ids"]] if obj.get("ids") is not None else None,
+ "tags": [PolicyTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None,
"operator": obj.get("operator"),
"matchFrom": obj.get("matchFrom")
})
diff --git a/fireblocks/models/ach_account_type.py b/fireblocks/models/ach_account_type.py
new file mode 100644
index 00000000..2cfd7668
--- /dev/null
+++ b/fireblocks/models/ach_account_type.py
@@ -0,0 +1,38 @@
+# 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 json
+from enum import Enum
+from typing_extensions import Self
+
+
+class AchAccountType(str, Enum):
+ """
+ Type of the bank account.
+ """
+
+ """
+ allowed enum values
+ """
+ CHECKING = 'CHECKING'
+ SAVINGS = 'SAVINGS'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of AchAccountType from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/fireblocks/models/ach_address.py b/fireblocks/models/ach_address.py
new file mode 100644
index 00000000..ca57d5d7
--- /dev/null
+++ b/fireblocks/models/ach_address.py
@@ -0,0 +1,116 @@
+# 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 typing_extensions import Annotated
+from fireblocks.models.account_holder_details import AccountHolderDetails
+from fireblocks.models.ach_account_type import AchAccountType
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AchAddress(BaseModel):
+ """
+ AchAddress
+ """ # noqa: E501
+ account_holder: AccountHolderDetails = Field(alias="accountHolder")
+ bank_name: Optional[StrictStr] = Field(default=None, description="Name of the bank.", alias="bankName")
+ bank_account_number: Annotated[str, Field(strict=True)] = Field(description="The bank account number for the ACH transfer.", alias="bankAccountNumber")
+ routing_number: Annotated[str, Field(strict=True)] = Field(description="Routing number identifying the bank account.", alias="routingNumber")
+ account_type: AchAccountType = Field(alias="accountType")
+ __properties: ClassVar[List[str]] = ["accountHolder", "bankName", "bankAccountNumber", "routingNumber", "accountType"]
+
+ @field_validator('bank_account_number')
+ def bank_account_number_validate_regular_expression(cls, value):
+ """Validates the regular expression"""
+ if not re.match(r"^\d{4,17}$", value):
+ raise ValueError(r"must validate the regular expression /^\d{4,17}$/")
+ return value
+
+ @field_validator('routing_number')
+ def routing_number_validate_regular_expression(cls, value):
+ """Validates the regular expression"""
+ if not re.match(r"^\d{9}$", value):
+ raise ValueError(r"must validate the regular expression /^\d{9}$/")
+ 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 AchAddress 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 account_holder
+ if self.account_holder:
+ _dict['accountHolder'] = self.account_holder.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of AchAddress from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "accountHolder": AccountHolderDetails.from_dict(obj["accountHolder"]) if obj.get("accountHolder") is not None else None,
+ "bankName": obj.get("bankName"),
+ "bankAccountNumber": obj.get("bankAccountNumber"),
+ "routingNumber": obj.get("routingNumber"),
+ "accountType": obj.get("accountType")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/ach_destination.py b/fireblocks/models/ach_destination.py
new file mode 100644
index 00000000..3461e8a2
--- /dev/null
+++ b/fireblocks/models/ach_destination.py
@@ -0,0 +1,101 @@
+# 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, StrictStr, field_validator
+from typing import Any, ClassVar, Dict, List
+from fireblocks.models.ach_address import AchAddress
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AchDestination(BaseModel):
+ """
+ AchDestination
+ """ # noqa: E501
+ type: StrictStr
+ address: AchAddress
+ __properties: ClassVar[List[str]] = ["type", "address"]
+
+ @field_validator('type')
+ def type_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['ACH']):
+ raise ValueError("must be one of enum values ('ACH')")
+ 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 AchDestination 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 address
+ if self.address:
+ _dict['address'] = self.address.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of AchDestination from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "type": obj.get("type"),
+ "address": AchAddress.from_dict(obj["address"]) if obj.get("address") is not None else None
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/alert_exposure_type_enum.py b/fireblocks/models/alert_exposure_type_enum.py
new file mode 100644
index 00000000..56b717d7
--- /dev/null
+++ b/fireblocks/models/alert_exposure_type_enum.py
@@ -0,0 +1,38 @@
+# 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 json
+from enum import Enum
+from typing_extensions import Self
+
+
+class AlertExposureTypeEnum(str, Enum):
+ """
+ Alert exposure type (AlertExposureType enum)
+ """
+
+ """
+ allowed enum values
+ """
+ DIRECT = 'DIRECT'
+ INDIRECT = 'INDIRECT'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of AlertExposureTypeEnum from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/fireblocks/models/alert_level_enum.py b/fireblocks/models/alert_level_enum.py
new file mode 100644
index 00000000..80391575
--- /dev/null
+++ b/fireblocks/models/alert_level_enum.py
@@ -0,0 +1,40 @@
+# 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 json
+from enum import Enum
+from typing_extensions import Self
+
+
+class AlertLevelEnum(str, Enum):
+ """
+ Alert level severity
+ """
+
+ """
+ allowed enum values
+ """
+ SEVERE = 'SEVERE'
+ HIGH = 'HIGH'
+ MEDIUM = 'MEDIUM'
+ LOW = 'LOW'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of AlertLevelEnum from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/fireblocks/models/aml_alert.py b/fireblocks/models/aml_alert.py
new file mode 100644
index 00000000..7061bb5f
--- /dev/null
+++ b/fireblocks/models/aml_alert.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
+from typing import Any, ClassVar, Dict, List, Optional, Union
+from fireblocks.models.alert_exposure_type_enum import AlertExposureTypeEnum
+from fireblocks.models.alert_level_enum import AlertLevelEnum
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AmlAlert(BaseModel):
+ """
+ AML alert information
+ """ # noqa: E501
+ alert_level: AlertLevelEnum = Field(alias="alertLevel")
+ alert_name: Optional[StrictStr] = Field(default=None, description="Name or type of the alert", alias="alertName")
+ category: Optional[StrictStr] = Field(default=None, description="Alert category")
+ service: Optional[StrictStr] = Field(default=None, description="Service that generated the alert")
+ external_id: StrictStr = Field(description="External identifier for the alert", alias="externalId")
+ alert_amount: Union[StrictFloat, StrictInt] = Field(description="Amount associated with the alert", alias="alertAmount")
+ exposure_type: AlertExposureTypeEnum = Field(alias="exposureType")
+ policy_action: Optional[StrictStr] = Field(default=None, description="Recommended action based on policy", alias="policyAction")
+ category_id: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Category identifier", alias="categoryId")
+ __properties: ClassVar[List[str]] = ["alertLevel", "alertName", "category", "service", "externalId", "alertAmount", "exposureType", "policyAction", "categoryId"]
+
+ 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 AmlAlert 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 AmlAlert from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "alertLevel": obj.get("alertLevel"),
+ "alertName": obj.get("alertName"),
+ "category": obj.get("category"),
+ "service": obj.get("service"),
+ "externalId": obj.get("externalId"),
+ "alertAmount": obj.get("alertAmount"),
+ "exposureType": obj.get("exposureType"),
+ "policyAction": obj.get("policyAction"),
+ "categoryId": obj.get("categoryId")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/aml_matched_rule.py b/fireblocks/models/aml_matched_rule.py
new file mode 100644
index 00000000..1821fe05
--- /dev/null
+++ b/fireblocks/models/aml_matched_rule.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.policy_verdict_action_enum import PolicyVerdictActionEnum
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AmlMatchedRule(BaseModel):
+ """
+ AML matched rule information
+ """ # noqa: E501
+ rule_id: Optional[StrictStr] = Field(default=None, description="Identifier of the matched rule", alias="ruleId")
+ rule_name: Optional[StrictStr] = Field(default=None, description="Name of the matched rule", alias="ruleName")
+ action: Optional[PolicyVerdictActionEnum] = None
+ __properties: ClassVar[List[str]] = ["ruleId", "ruleName", "action"]
+
+ 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 AmlMatchedRule 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 AmlMatchedRule from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "ruleId": obj.get("ruleId"),
+ "ruleName": obj.get("ruleName"),
+ "action": obj.get("action")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/aml_result.py b/fireblocks/models/aml_result.py
new file mode 100644
index 00000000..b4798252
--- /dev/null
+++ b/fireblocks/models/aml_result.py
@@ -0,0 +1,109 @@
+# 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
+from typing import Any, ClassVar, Dict, List, Optional
+from fireblocks.models.aml_alert import AmlAlert
+from fireblocks.models.aml_matched_rule import AmlMatchedRule
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AmlResult(BaseModel):
+ """
+ Detailed AML screening result information. Contains alerts, risk scores, and other AML-specific data from provider-specific responses.
+ """ # noqa: E501
+ alerts: Optional[List[AmlAlert]] = Field(default=None, description="List of AML alerts triggered during screening")
+ provider_response: Optional[Dict[str, Any]] = Field(default=None, description="Complete response from the AML provider. This is a dynamic object that varies significantly between different AML providers (Chainalysis, Elliptic, etc.). Each provider has their own proprietary response format and schema. Examples of provider-specific structures: - Chainalysis: Contains cluster info, risk scores, sanctions data - Elliptic: Includes risk assessment, entity types, compliance flags The structure is provider-dependent and cannot be standardized as each vendor implements their own proprietary data models and response formats. ", alias="providerResponse")
+ matched_rule: Optional[AmlMatchedRule] = Field(default=None, alias="matchedRule")
+ matched_alert: Optional[AmlAlert] = Field(default=None, alias="matchedAlert")
+ __properties: ClassVar[List[str]] = ["alerts", "providerResponse", "matchedRule", "matchedAlert"]
+
+ 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 AmlResult 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 alerts (list)
+ _items = []
+ if self.alerts:
+ for _item_alerts in self.alerts:
+ if _item_alerts:
+ _items.append(_item_alerts.to_dict())
+ _dict['alerts'] = _items
+ # override the default output from pydantic by calling `to_dict()` of matched_rule
+ if self.matched_rule:
+ _dict['matchedRule'] = self.matched_rule.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of matched_alert
+ if self.matched_alert:
+ _dict['matchedAlert'] = self.matched_alert.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of AmlResult from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "alerts": [AmlAlert.from_dict(_item) for _item in obj["alerts"]] if obj.get("alerts") is not None else None,
+ "providerResponse": obj.get("providerResponse"),
+ "matchedRule": AmlMatchedRule.from_dict(obj["matchedRule"]) if obj.get("matchedRule") is not None else None,
+ "matchedAlert": AmlAlert.from_dict(obj["matchedAlert"]) if obj.get("matchedAlert") is not None else None
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/aml_status_enum.py b/fireblocks/models/aml_status_enum.py
new file mode 100644
index 00000000..c9e7ad7f
--- /dev/null
+++ b/fireblocks/models/aml_status_enum.py
@@ -0,0 +1,41 @@
+# 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 json
+from enum import Enum
+from typing_extensions import Self
+
+
+class AmlStatusEnum(str, Enum):
+ """
+ AML screening status
+ """
+
+ """
+ allowed enum values
+ """
+ COMPLETED = 'COMPLETED'
+ PENDING = 'PENDING'
+ BYPASSED = 'BYPASSED'
+ FAILED = 'FAILED'
+ FROZEN = 'FROZEN'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of AmlStatusEnum from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/fireblocks/models/amount_config.py b/fireblocks/models/amount_config.py
new file mode 100644
index 00000000..a0fe3e7a
--- /dev/null
+++ b/fireblocks/models/amount_config.py
@@ -0,0 +1,95 @@
+# 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
+from typing import Any, ClassVar, Dict, List, Optional
+from fireblocks.models.amount_range_min_max2 import AmountRangeMinMax2
+from fireblocks.models.policy_currency import PolicyCurrency
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AmountConfig(BaseModel):
+ """
+ AmountConfig
+ """ # noqa: E501
+ range: AmountRangeMinMax2
+ currency: Optional[PolicyCurrency] = None
+ __properties: ClassVar[List[str]] = ["range", "currency"]
+
+ 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 AmountConfig 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 range
+ if self.range:
+ _dict['range'] = self.range.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of AmountConfig from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "range": AmountRangeMinMax2.from_dict(obj["range"]) if obj.get("range") is not None else None,
+ "currency": obj.get("currency")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/amount_config_currency.py b/fireblocks/models/amount_config_currency.py
new file mode 100644
index 00000000..7c4a308a
--- /dev/null
+++ b/fireblocks/models/amount_config_currency.py
@@ -0,0 +1,89 @@
+# 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
+from typing import Any, ClassVar, Dict, List, Optional
+from fireblocks.models.policy_currency import PolicyCurrency
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AmountConfigCurrency(BaseModel):
+ """
+ Currency property for amount configuration
+ """ # noqa: E501
+ currency: Optional[PolicyCurrency] = None
+ __properties: ClassVar[List[str]] = ["currency"]
+
+ 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 AmountConfigCurrency 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 AmountConfigCurrency from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "currency": obj.get("currency")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/amount_over_time_config.py b/fireblocks/models/amount_over_time_config.py
index ca1331f4..ca27cfa1 100644
--- a/fireblocks/models/amount_over_time_config.py
+++ b/fireblocks/models/amount_over_time_config.py
@@ -18,9 +18,10 @@
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.amount_over_time_config_range import AmountOverTimeConfigRange
+from pydantic import BaseModel, ConfigDict, Field
+from typing import Any, ClassVar, Dict, List
+from fireblocks.models.amount_range_min_max2 import AmountRangeMinMax2
+from fireblocks.models.policy_currency import PolicyCurrency
from fireblocks.models.time_period_config import TimePeriodConfig
from typing import Optional, Set
from typing_extensions import Self
@@ -29,21 +30,11 @@ class AmountOverTimeConfig(BaseModel):
"""
Amount over time configuration
""" # noqa: E501
- range: AmountOverTimeConfigRange
- currency: Optional[StrictStr] = Field(default=None, description="Currency for the amount")
+ range: AmountRangeMinMax2
+ currency: PolicyCurrency
time_period: TimePeriodConfig = Field(alias="timePeriod")
__properties: ClassVar[List[str]] = ["range", "currency", "timePeriod"]
- @field_validator('currency')
- def currency_validate_enum(cls, value):
- """Validates the enum"""
- if value is None:
- return value
-
- if value not in set(['NATIVE', 'USD', 'EUR']):
- raise ValueError("must be one of enum values ('NATIVE', 'USD', 'EUR')")
- return value
-
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
@@ -101,7 +92,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
return cls.model_validate(obj)
_obj = cls.model_validate({
- "range": AmountOverTimeConfigRange.from_dict(obj["range"]) if obj.get("range") is not None else None,
+ "range": AmountRangeMinMax2.from_dict(obj["range"]) if obj.get("range") is not None else None,
"currency": obj.get("currency"),
"timePeriod": TimePeriodConfig.from_dict(obj["timePeriod"]) if obj.get("timePeriod") is not None else None
})
diff --git a/fireblocks/models/amount_range.py b/fireblocks/models/amount_range.py
index 8ef8be78..b0215496 100644
--- a/fireblocks/models/amount_range.py
+++ b/fireblocks/models/amount_range.py
@@ -18,19 +18,18 @@
import re # noqa: F401
import json
-from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from pydantic import BaseModel, ConfigDict
from typing import Any, ClassVar, Dict, List
+from fireblocks.models.amount_range_min_max2 import AmountRangeMinMax2
from typing import Optional, Set
from typing_extensions import Self
class AmountRange(BaseModel):
"""
- Amount range configuration
+ Amount range with minimum and maximum values
""" # noqa: E501
- min: StrictStr = Field(description="Minimum amount")
- max: StrictStr = Field(description="Maximum amount")
- currency: StrictStr = Field(description="Currency for the amount")
- __properties: ClassVar[List[str]] = ["min", "max", "currency"]
+ range: AmountRangeMinMax2
+ __properties: ClassVar[List[str]] = ["range"]
model_config = ConfigDict(
populate_by_name=True,
@@ -71,6 +70,9 @@ def to_dict(self) -> Dict[str, Any]:
exclude=excluded_fields,
exclude_none=True,
)
+ # override the default output from pydantic by calling `to_dict()` of range
+ if self.range:
+ _dict['range'] = self.range.to_dict()
return _dict
@classmethod
@@ -83,9 +85,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
return cls.model_validate(obj)
_obj = cls.model_validate({
- "min": obj.get("min"),
- "max": obj.get("max"),
- "currency": obj.get("currency")
+ "range": AmountRangeMinMax2.from_dict(obj["range"]) if obj.get("range") is not None else None
})
return _obj
diff --git a/fireblocks/models/amount_range_min_max.py b/fireblocks/models/amount_range_min_max.py
new file mode 100644
index 00000000..9e5a8268
--- /dev/null
+++ b/fireblocks/models/amount_range_min_max.py
@@ -0,0 +1,90 @@
+# 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 typing import Optional, Set
+from typing_extensions import Self
+
+class AmountRangeMinMax(BaseModel):
+ """
+ Amount range with minimum and maximum values
+ """ # noqa: E501
+ min: Optional[StrictStr] = Field(default=None, description="Minimum amount")
+ max: Optional[StrictStr] = Field(default=None, description="Maximum amount")
+ __properties: ClassVar[List[str]] = ["min", "max"]
+
+ 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 AmountRangeMinMax 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 AmountRangeMinMax from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "min": obj.get("min"),
+ "max": obj.get("max")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/amount_over_time_config_range.py b/fireblocks/models/amount_range_min_max2.py
similarity index 90%
rename from fireblocks/models/amount_over_time_config_range.py
rename to fireblocks/models/amount_range_min_max2.py
index 8f4f8d29..2e5913f6 100644
--- a/fireblocks/models/amount_over_time_config_range.py
+++ b/fireblocks/models/amount_range_min_max2.py
@@ -23,12 +23,12 @@
from typing import Optional, Set
from typing_extensions import Self
-class AmountOverTimeConfigRange(BaseModel):
+class AmountRangeMinMax2(BaseModel):
"""
- Amount range configuration
+ Amount range with minimum and maximum values
""" # noqa: E501
min: StrictStr = Field(description="Minimum amount")
- max: Optional[StrictStr] = Field(default=None, description="Maximum amount (optional)")
+ max: Optional[StrictStr] = Field(default=None, description="Maximum amount")
__properties: ClassVar[List[str]] = ["min", "max"]
model_config = ConfigDict(
@@ -49,7 +49,7 @@ def to_json(self) -> str:
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
- """Create an instance of AmountOverTimeConfigRange from a JSON string"""
+ """Create an instance of AmountRangeMinMax2 from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
@@ -74,7 +74,7 @@ def to_dict(self) -> Dict[str, Any]:
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
- """Create an instance of AmountOverTimeConfigRange from a dict"""
+ """Create an instance of AmountRangeMinMax2 from a dict"""
if obj is None:
return None
diff --git a/fireblocks/models/approvers_config.py b/fireblocks/models/approvers_config.py
index 6e5abb97..5af0a3cd 100644
--- a/fireblocks/models/approvers_config.py
+++ b/fireblocks/models/approvers_config.py
@@ -28,7 +28,7 @@ class ApproversConfig(BaseModel):
"""
Approvers configuration
""" # noqa: E501
- can_initiator_approve: Optional[StrictBool] = Field(default=None, description="Whether initiator can approve", alias="canInitiatorApprove")
+ can_initiator_approve: StrictBool = Field(description="Whether initiator can approve", alias="canInitiatorApprove")
operator: Optional[StrictStr] = Field(default=None, description="Operator for approval groups")
allow_operator_as_authorizer: Optional[StrictBool] = Field(default=None, description="Whether operator can be authorizer", alias="allowOperatorAsAuthorizer")
approval_groups: Optional[List[ApproversConfigApprovalGroupsInner]] = Field(default=None, description="List of approval groups", alias="approvalGroups")
diff --git a/fireblocks/models/compliance_result_full_payload.py b/fireblocks/models/compliance_result_full_payload.py
index a575a199..b5073d3f 100644
--- a/fireblocks/models/compliance_result_full_payload.py
+++ b/fireblocks/models/compliance_result_full_payload.py
@@ -23,6 +23,8 @@
from fireblocks.models.aml_registration_result_full_payload import AmlRegistrationResultFullPayload
from fireblocks.models.compliance_result_statuses_enum import ComplianceResultStatusesEnum
from fireblocks.models.compliance_screening_result_full_payload import ComplianceScreeningResultFullPayload
+from fireblocks.models.tr_link_registration_result_full_payload import TRLinkRegistrationResultFullPayload
+from fireblocks.models.tr_link_result_full_payload import TRLinkResultFullPayload
from typing import Optional, Set
from typing_extensions import Self
@@ -35,7 +37,9 @@ class ComplianceResultFullPayload(BaseModel):
aml_list: Optional[List[ComplianceScreeningResultFullPayload]] = Field(default=None, description="The list of all results of the AML screening.", alias="amlList")
status: Optional[ComplianceResultStatusesEnum] = None
aml_registration: Optional[AmlRegistrationResultFullPayload] = Field(default=None, alias="amlRegistration")
- __properties: ClassVar[List[str]] = ["aml", "tr", "amlList", "status", "amlRegistration"]
+ trlink_registration: Optional[TRLinkRegistrationResultFullPayload] = Field(default=None, alias="trlinkRegistration")
+ trlink_destinations: Optional[List[TRLinkResultFullPayload]] = Field(default=None, description="The list of TRLink destination screening results.", alias="trlinkDestinations")
+ __properties: ClassVar[List[str]] = ["aml", "tr", "amlList", "status", "amlRegistration", "trlinkRegistration", "trlinkDestinations"]
model_config = ConfigDict(
populate_by_name=True,
@@ -92,6 +96,16 @@ def to_dict(self) -> Dict[str, Any]:
# override the default output from pydantic by calling `to_dict()` of aml_registration
if self.aml_registration:
_dict['amlRegistration'] = self.aml_registration.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of trlink_registration
+ if self.trlink_registration:
+ _dict['trlinkRegistration'] = self.trlink_registration.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of each item in trlink_destinations (list)
+ _items = []
+ if self.trlink_destinations:
+ for _item_trlink_destinations in self.trlink_destinations:
+ if _item_trlink_destinations:
+ _items.append(_item_trlink_destinations.to_dict())
+ _dict['trlinkDestinations'] = _items
return _dict
@classmethod
@@ -108,7 +122,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"tr": ComplianceScreeningResultFullPayload.from_dict(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(obj["amlRegistration"]) if obj.get("amlRegistration") is not None else None
+ "amlRegistration": AmlRegistrationResultFullPayload.from_dict(obj["amlRegistration"]) if obj.get("amlRegistration") is not None else None,
+ "trlinkRegistration": TRLinkRegistrationResultFullPayload.from_dict(obj["trlinkRegistration"]) if obj.get("trlinkRegistration") is not None else None,
+ "trlinkDestinations": [TRLinkResultFullPayload.from_dict(_item) for _item in obj["trlinkDestinations"]] if obj.get("trlinkDestinations") is not None else None
})
return _obj
diff --git a/fireblocks/models/compliance_result_statuses_enum.py b/fireblocks/models/compliance_result_statuses_enum.py
index 7fc280eb..c56c2608 100644
--- a/fireblocks/models/compliance_result_statuses_enum.py
+++ b/fireblocks/models/compliance_result_statuses_enum.py
@@ -21,12 +21,14 @@
class ComplianceResultStatusesEnum(str, Enum):
"""
- Status of compliance result screening.
+ Status of compliance result screening
"""
"""
allowed enum values
"""
+ UNKNOWN = 'Unknown'
+ STALLED = 'Stalled'
STARTED = 'Started'
NETWORKCONNECTIONADDRESSRESOLVE = 'NetworkConnectionAddressResolve'
SCREENINGPREPARE = 'ScreeningPrepare'
@@ -36,10 +38,26 @@ class ComplianceResultStatusesEnum(str, Enum):
AMLINBACKGROUND = 'AMLInBackground'
TRPRECONDITIONCHECKS = 'TRPreconditionChecks'
TRSTARTED = 'TRStarted'
+ TRLINKSTARTED = 'TRLinkStarted'
+ TRLINKDESTINATIONSTARTED = 'TRLinkDestinationStarted'
+ TRLINKDESTINATIONPRESCREENPOLICY = 'TRLinkDestinationPrescreenPolicy'
+ TRLINKDESTINATIONNOTRMPOLICY = 'TRLinkDestinationNoTRMPolicy'
+ TRLINKDESTINATIONSCREEN = 'TRLinkDestinationScreen'
+ TRLINKDESTINATIONPOSTSCREENPOLICY = 'TRLinkDestinationPostscreenPolicy'
+ TRLINKDESTINATIONCOMPLETED = 'TRLinkDestinationCompleted'
+ TRLINKCOMPLETED = 'TRLinkCompleted'
TRCOMPLETED = 'TRCompleted'
TRFAILED = 'TRFailed'
COMPLETED = 'Completed'
+ REGISTRATIONSTARTED = 'RegistrationStarted'
+ REGISTRATIONWAITFORFIRSTCONFIRMATION = 'RegistrationWaitForFirstConfirmation'
+ AMLREGISTRATIONSTARTED = 'AMLRegistrationStarted'
+ AMLREGISTRATIONCOMPLETED = 'AMLRegistrationCompleted'
+ TRUPDATESTARTED = 'TRUpdateStarted'
+ TRUPDATECOMPLETED = 'TRUpdateCompleted'
+ UPDATECOMPLETED = 'UpdateCompleted'
INCOMINGSTARTED = 'IncomingStarted'
+ INCOMINGBYORKSL = 'IncomingByorkSL'
INCOMINGSCREENINGPREPARE = 'IncomingScreeningPrepare'
INCOMINGWAITFORFIRSTCONFIRMATION = 'IncomingWaitForFirstConfirmation'
AMLINCOMINGSTARTED = 'AMLIncomingStarted'
@@ -50,7 +68,13 @@ class ComplianceResultStatusesEnum(str, Enum):
TRINCOMINGCOMPLETED = 'TRIncomingCompleted'
TRINCOMINGFAILED = 'TRIncomingFailed'
INCOMINGCOMPLETED = 'IncomingCompleted'
- UPDATECOMPLETED = 'UpdateCompleted'
+ ADDRESSAMLINITIATED = 'AddressAmlInitiated'
+ ADDRESSAMLADDRESSRESOLVE = 'AddressAmlAddressResolve'
+ ADDRESSAMLPREPARE = 'AddressAmlPrepare'
+ ADDRESSAMLPROCESSING = 'AddressAmlProcessing'
+ ADDRESSAMLSUCCEEDED = 'AddressAmlSucceeded'
+ ADDRESSAMLFAILED = 'AddressAmlFailed'
+ ADDRESSAMLCOMPLETED = 'AddressAmlCompleted'
@classmethod
def from_json(cls, json_str: str) -> Self:
diff --git a/fireblocks/models/compliance_results.py b/fireblocks/models/compliance_results.py
index 18b958e4..8a74859c 100644
--- a/fireblocks/models/compliance_results.py
+++ b/fireblocks/models/compliance_results.py
@@ -23,6 +23,8 @@
from fireblocks.models.aml_registration_result import AmlRegistrationResult
from fireblocks.models.compliance_result_statuses_enum import ComplianceResultStatusesEnum
from fireblocks.models.compliance_screening_result import ComplianceScreeningResult
+from fireblocks.models.tr_link_registration_result import TRLinkRegistrationResult
+from fireblocks.models.tr_link_result import TRLinkResult
from typing import Optional, Set
from typing_extensions import Self
@@ -35,7 +37,9 @@ class ComplianceResults(BaseModel):
aml_list: Optional[List[ComplianceScreeningResult]] = Field(default=None, description="The list of all results of the AML screening.", alias="amlList")
status: Optional[ComplianceResultStatusesEnum] = None
aml_registration: Optional[AmlRegistrationResult] = Field(default=None, alias="amlRegistration")
- __properties: ClassVar[List[str]] = ["aml", "tr", "amlList", "status", "amlRegistration"]
+ trlink_registration: Optional[TRLinkRegistrationResult] = Field(default=None, alias="trlinkRegistration")
+ trlink_destinations: Optional[List[TRLinkResult]] = Field(default=None, description="The list of TRLink destination screening results.", alias="trlinkDestinations")
+ __properties: ClassVar[List[str]] = ["aml", "tr", "amlList", "status", "amlRegistration", "trlinkRegistration", "trlinkDestinations"]
model_config = ConfigDict(
populate_by_name=True,
@@ -92,6 +96,16 @@ def to_dict(self) -> Dict[str, Any]:
# override the default output from pydantic by calling `to_dict()` of aml_registration
if self.aml_registration:
_dict['amlRegistration'] = self.aml_registration.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of trlink_registration
+ if self.trlink_registration:
+ _dict['trlinkRegistration'] = self.trlink_registration.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of each item in trlink_destinations (list)
+ _items = []
+ if self.trlink_destinations:
+ for _item_trlink_destinations in self.trlink_destinations:
+ if _item_trlink_destinations:
+ _items.append(_item_trlink_destinations.to_dict())
+ _dict['trlinkDestinations'] = _items
return _dict
@classmethod
@@ -108,7 +122,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"tr": ComplianceScreeningResult.from_dict(obj["tr"]) if obj.get("tr") is not None else None,
"amlList": [ComplianceScreeningResult.from_dict(_item) for _item in obj["amlList"]] if obj.get("amlList") is not None else None,
"status": obj.get("status"),
- "amlRegistration": AmlRegistrationResult.from_dict(obj["amlRegistration"]) if obj.get("amlRegistration") is not None else None
+ "amlRegistration": AmlRegistrationResult.from_dict(obj["amlRegistration"]) if obj.get("amlRegistration") is not None else None,
+ "trlinkRegistration": TRLinkRegistrationResult.from_dict(obj["trlinkRegistration"]) if obj.get("trlinkRegistration") is not None else None,
+ "trlinkDestinations": [TRLinkResult.from_dict(_item) for _item in obj["trlinkDestinations"]] if obj.get("trlinkDestinations") is not None else None
})
return _obj
diff --git a/fireblocks/models/compliance_screening_result.py b/fireblocks/models/compliance_screening_result.py
index d944a444..7001ee5e 100644
--- a/fireblocks/models/compliance_screening_result.py
+++ b/fireblocks/models/compliance_screening_result.py
@@ -20,39 +20,50 @@
from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, field_validator
from typing import Any, ClassVar, Dict, List, Optional, Union
+from fireblocks.models.aml_result import AmlResult
+from fireblocks.models.aml_status_enum import AmlStatusEnum
+from fireblocks.models.screening_risk_level_enum import ScreeningRiskLevelEnum
+from fireblocks.models.screening_verdict_enum import ScreeningVerdictEnum
+from fireblocks.models.travel_rule_prescreening_rule import TravelRulePrescreeningRule
+from fireblocks.models.travel_rule_result import TravelRuleResult
from typing import Optional, Set
from typing_extensions import Self
class ComplianceScreeningResult(BaseModel):
"""
- ComplianceScreeningResult
+ The result of the AML/Travel Rule screening. This unified schema contains all fields that may be returned for both AML and Travel Rule screening results. Not all fields will be present in every response - the actual fields depend on the screening type and provider.
""" # noqa: E501
- provider: Optional[StrictStr] = Field(default=None, description="Screening provider")
- 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, description="Reason AML screening was bypassed", 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('provider')
- def provider_validate_enum(cls, value):
- """Validates the enum"""
- if value is None:
- return value
-
- if value not in set(['CHAINALYSIS', 'ELLIPTIC', 'CHAINALYSIS_V2', 'ELLIPTIC_HOLISTIC', 'NONE']):
- raise ValueError("must be one of enum values ('CHAINALYSIS', 'ELLIPTIC', 'CHAINALYSIS_V2', 'ELLIPTIC_HOLISTIC', 'NONE')")
- return value
-
- @field_validator('bypass_reason')
- def bypass_reason_validate_enum(cls, value):
- """Validates the enum"""
- if value is None:
- return value
-
- if value not in set(['MANUAL', 'UNSUPPORTED_ASSET', 'BYPASSED_FAILURE', 'UNSUPPORTED_ROUTE', 'PASSED_BY_POLICY', 'TIMED_OUT', 'BAD_CREDENTIALS', 'CONFIGURATION_ERROR', 'DROPPED_BY_BLOCKCHAIN', 'PROCESS_DISMISSED']):
- raise ValueError("must be one of enum values ('MANUAL', 'UNSUPPORTED_ASSET', 'BYPASSED_FAILURE', 'UNSUPPORTED_ROUTE', 'PASSED_BY_POLICY', 'TIMED_OUT', 'BAD_CREDENTIALS', 'CONFIGURATION_ERROR', 'DROPPED_BY_BLOCKCHAIN', 'PROCESS_DISMISSED')")
- return value
+ provider: Optional[StrictStr] = Field(default=None, description="The AML/Travel Rule provider name. For AML: ELLIPTIC, CHAINALYSIS, SCORECHAIN, MERKLE_SCIENCE, etc. For Travel Rule: NOTABENE, SYGNA, or any TRLink provider name ")
+ payload: Optional[Dict[str, Any]] = Field(default=None, description="The raw payload of the screening result from the provider. The payload is a JSON object that contains the screening result. The payload structure is different for each screening provider. This field contains the complete, unmodified response from the screening service. ")
+ timestamp: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Unix timestamp in milliseconds when the screening result was generated")
+ screening_status: Optional[StrictStr] = Field(default=None, description="Current status of the screening process", alias="screeningStatus")
+ bypass_reason: Optional[StrictStr] = Field(default=None, description="Reason for bypassing the screening, if applicable. For AML: SANCTIONS_SCREENING_BYPASS, SANCTIONS_RECIPIENT_BYPASS, etc. For Travel Rule: BELOW_THRESHOLD, NO_TRM_AVAILABLE, etc. ", alias="bypassReason")
+ status: Optional[AmlStatusEnum] = None
+ prev_status: Optional[AmlStatusEnum] = Field(default=None, alias="prevStatus")
+ prev_bypass_reason: Optional[StrictStr] = Field(default=None, description="Previous bypass reason before the current bypass reason change", alias="prevBypassReason")
+ verdict: Optional[ScreeningVerdictEnum] = None
+ risk: Optional[ScreeningRiskLevelEnum] = None
+ extended_risk: Optional[ScreeningRiskLevelEnum] = Field(default=None, alias="extendedRisk")
+ external_id: Optional[StrictStr] = Field(default=None, description="External identifier for the screening (provider-specific)", alias="externalId")
+ customer_ref_id: Optional[StrictStr] = Field(default=None, description="Customer-provided reference identifier for tracking", alias="customerRefId")
+ ref_id: Optional[StrictStr] = Field(default=None, description="Internal reference identifier", alias="refId")
+ category: Optional[StrictStr] = Field(default=None, description="Risk category classification. Examples: EXCHANGE, GAMBLING, MIXER, DARKNET_SERVICE, SANCTIONED_ENTITY ")
+ category_id: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Numeric identifier for the risk category", alias="categoryId")
+ dest_address: Optional[StrictStr] = Field(default=None, description="The destination blockchain address associated with the screening", alias="destAddress")
+ dest_tag: Optional[StrictStr] = Field(default=None, description="Destination tag or memo (for chains that support it like XRP, XLM)", alias="destTag")
+ dest_record_id: Optional[StrictStr] = Field(default=None, description="The destination record identifier used by the screening provider", alias="destRecordId")
+ address_resolution_signature: Optional[StrictStr] = Field(default=None, description="Cryptographic signature for address resolution verification", alias="addressResolutionSignature")
+ aml_result: Optional[AmlResult] = Field(default=None, alias="amlResult")
+ result: Optional[TravelRuleResult] = None
+ details_message: Optional[StrictStr] = Field(default=None, description="Additional human-readable details or message about the screening result", alias="detailsMessage")
+ matched_alert: Optional[Dict[str, Any]] = Field(default=None, description="Information about the AML alert that was matched, if any. Contains details about the specific alert that triggered during screening. ", alias="matchedAlert")
+ matched_rule: Optional[Dict[str, Any]] = Field(default=None, description="The matched rule information for this screening result. Contains details about which screening rule was applied and matched. ", alias="matchedRule")
+ matched_prescreening_rule: Optional[TravelRulePrescreeningRule] = Field(default=None, alias="matchedPrescreeningRule")
+ matched_no_trm_screening_rule: Optional[Dict[str, Any]] = Field(default=None, description="Matched no-TRM (Travel Rule Message) screening rule details. Used when TRLink screening detects a missing TRM scenario. ", alias="matchedNoTrmScreeningRule")
+ customer_integration_id: Optional[StrictStr] = Field(default=None, description="Customer integration identifier used by Travel Rule providers", alias="customerIntegrationId")
+ customer_short_name: Optional[StrictStr] = Field(default=None, description="Customer short name registered with Travel Rule providers", alias="customerShortName")
+ travel_rule_message_id: Optional[StrictStr] = Field(default=None, description="Travel rule message identifier for linking and tracking across providers", alias="travelRuleMessageId")
+ __properties: ClassVar[List[str]] = ["provider", "payload", "timestamp", "screeningStatus", "bypassReason", "status", "prevStatus", "prevBypassReason", "verdict", "risk", "extendedRisk", "externalId", "customerRefId", "refId", "category", "categoryId", "destAddress", "destTag", "destRecordId", "addressResolutionSignature", "amlResult", "result", "detailsMessage", "matchedAlert", "matchedRule", "matchedPrescreeningRule", "matchedNoTrmScreeningRule", "customerIntegrationId", "customerShortName", "travelRuleMessageId"]
@field_validator('screening_status')
def screening_status_validate_enum(cls, value):
@@ -103,6 +114,15 @@ def to_dict(self) -> Dict[str, Any]:
exclude=excluded_fields,
exclude_none=True,
)
+ # override the default output from pydantic by calling `to_dict()` of aml_result
+ if self.aml_result:
+ _dict['amlResult'] = self.aml_result.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of result
+ if self.result:
+ _dict['result'] = self.result.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of matched_prescreening_rule
+ if self.matched_prescreening_rule:
+ _dict['matchedPrescreeningRule'] = self.matched_prescreening_rule.to_dict()
return _dict
@classmethod
@@ -117,9 +137,34 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
_obj = cls.model_validate({
"provider": obj.get("provider"),
"payload": obj.get("payload"),
- "bypassReason": obj.get("bypassReason"),
+ "timestamp": obj.get("timestamp"),
"screeningStatus": obj.get("screeningStatus"),
- "timestamp": obj.get("timestamp")
+ "bypassReason": obj.get("bypassReason"),
+ "status": obj.get("status"),
+ "prevStatus": obj.get("prevStatus"),
+ "prevBypassReason": obj.get("prevBypassReason"),
+ "verdict": obj.get("verdict"),
+ "risk": obj.get("risk"),
+ "extendedRisk": obj.get("extendedRisk"),
+ "externalId": obj.get("externalId"),
+ "customerRefId": obj.get("customerRefId"),
+ "refId": obj.get("refId"),
+ "category": obj.get("category"),
+ "categoryId": obj.get("categoryId"),
+ "destAddress": obj.get("destAddress"),
+ "destTag": obj.get("destTag"),
+ "destRecordId": obj.get("destRecordId"),
+ "addressResolutionSignature": obj.get("addressResolutionSignature"),
+ "amlResult": AmlResult.from_dict(obj["amlResult"]) if obj.get("amlResult") is not None else None,
+ "result": TravelRuleResult.from_dict(obj["result"]) if obj.get("result") is not None else None,
+ "detailsMessage": obj.get("detailsMessage"),
+ "matchedAlert": obj.get("matchedAlert"),
+ "matchedRule": obj.get("matchedRule"),
+ "matchedPrescreeningRule": TravelRulePrescreeningRule.from_dict(obj["matchedPrescreeningRule"]) if obj.get("matchedPrescreeningRule") is not None else None,
+ "matchedNoTrmScreeningRule": obj.get("matchedNoTrmScreeningRule"),
+ "customerIntegrationId": obj.get("customerIntegrationId"),
+ "customerShortName": obj.get("customerShortName"),
+ "travelRuleMessageId": obj.get("travelRuleMessageId")
})
return _obj
diff --git a/fireblocks/models/compliance_screening_result_full_payload.py b/fireblocks/models/compliance_screening_result_full_payload.py
index 0bcf6664..c8af726d 100644
--- a/fireblocks/models/compliance_screening_result_full_payload.py
+++ b/fireblocks/models/compliance_screening_result_full_payload.py
@@ -20,19 +20,50 @@
from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, field_validator
from typing import Any, ClassVar, Dict, List, Optional, Union
+from fireblocks.models.aml_status_enum import AmlStatusEnum
+from fireblocks.models.screening_aml_result import ScreeningAmlResult
+from fireblocks.models.screening_risk_level_enum import ScreeningRiskLevelEnum
+from fireblocks.models.screening_travel_rule_prescreening_rule import ScreeningTravelRulePrescreeningRule
+from fireblocks.models.screening_travel_rule_result import ScreeningTravelRuleResult
+from fireblocks.models.screening_verdict_enum import ScreeningVerdictEnum
from typing import Optional, Set
from typing_extensions import Self
class ComplianceScreeningResultFullPayload(BaseModel):
"""
- The result of the Travel Rule screening.
+ The result of the AML/Travel Rule screening. This unified schema contains all fields that may be returned for both AML and Travel Rule screening results. Not all fields will be present in every response - the actual fields depend on the screening type and provider.
""" # noqa: E501
- provider: Optional[StrictStr] = 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"]
+ provider: Optional[StrictStr] = Field(default=None, description="The AML/Travel Rule provider name. For AML: ELLIPTIC, CHAINALYSIS, etc. For Travel Rule: NOTABENE, SUMSUB, or any TRLink provider name ")
+ payload: Optional[Dict[str, Any]] = Field(default=None, description="The raw payload of the screening result from the provider. The payload is a JSON object that contains the screening result. The payload structure is different for each screening provider. This field contains the complete, unmodified response from the screening service. ")
+ timestamp: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Unix timestamp in milliseconds when the screening result was generated")
+ screening_status: Optional[StrictStr] = Field(default=None, description="Current status of the screening process", alias="screeningStatus")
+ bypass_reason: Optional[StrictStr] = Field(default=None, description="Reason for bypassing the screening, if applicable. For AML: SANCTIONS_SCREENING_BYPASS, SANCTIONS_RECIPIENT_BYPASS, etc. For Travel Rule: BELOW_THRESHOLD, NO_TRM_AVAILABLE, etc. ", alias="bypassReason")
+ status: Optional[AmlStatusEnum] = None
+ prev_status: Optional[AmlStatusEnum] = Field(default=None, alias="prevStatus")
+ prev_bypass_reason: Optional[StrictStr] = Field(default=None, description="Previous bypass reason before the current bypass reason change", alias="prevBypassReason")
+ verdict: Optional[ScreeningVerdictEnum] = None
+ risk: Optional[ScreeningRiskLevelEnum] = None
+ extended_risk: Optional[ScreeningRiskLevelEnum] = Field(default=None, alias="extendedRisk")
+ external_id: Optional[StrictStr] = Field(default=None, description="External identifier for the screening (provider-specific)", alias="externalId")
+ customer_ref_id: Optional[StrictStr] = Field(default=None, description="Customer-provided reference identifier for tracking", alias="customerRefId")
+ ref_id: Optional[StrictStr] = Field(default=None, description="Internal reference identifier", alias="refId")
+ category: Optional[StrictStr] = Field(default=None, description="Risk category classification. Examples: EXCHANGE, GAMBLING, MIXER, DARKNET_SERVICE, SANCTIONED_ENTITY ")
+ category_id: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Numeric identifier for the risk category", alias="categoryId")
+ dest_address: Optional[StrictStr] = Field(default=None, description="The destination blockchain address associated with the screening", alias="destAddress")
+ dest_tag: Optional[StrictStr] = Field(default=None, description="Destination tag or memo (for chains that support it like XRP, XLM)", alias="destTag")
+ dest_record_id: Optional[StrictStr] = Field(default=None, description="The destination record identifier used by the screening provider", alias="destRecordId")
+ address_resolution_signature: Optional[StrictStr] = Field(default=None, description="Cryptographic signature for address resolution verification", alias="addressResolutionSignature")
+ aml_result: Optional[ScreeningAmlResult] = Field(default=None, alias="amlResult")
+ result: Optional[ScreeningTravelRuleResult] = None
+ details_message: Optional[StrictStr] = Field(default=None, description="Additional human-readable details or message about the screening result", alias="detailsMessage")
+ matched_alert: Optional[Dict[str, Any]] = Field(default=None, description="Information about the AML alert that was matched, if any. Contains details about the specific alert that triggered during screening. ", alias="matchedAlert")
+ matched_rule: Optional[Dict[str, Any]] = Field(default=None, description="The matched rule information for this screening result. Contains details about which screening rule was applied and matched. ", alias="matchedRule")
+ matched_prescreening_rule: Optional[ScreeningTravelRulePrescreeningRule] = Field(default=None, alias="matchedPrescreeningRule")
+ matched_no_trm_screening_rule: Optional[Dict[str, Any]] = Field(default=None, description="Matched no-TRM (Travel Rule Message) screening rule details. Used when TRLink screening detects a missing TRM scenario. ", alias="matchedNoTrmScreeningRule")
+ customer_integration_id: Optional[StrictStr] = Field(default=None, description="Customer integration identifier used by Travel Rule providers", alias="customerIntegrationId")
+ customer_short_name: Optional[StrictStr] = Field(default=None, description="Customer short name registered with Travel Rule providers", alias="customerShortName")
+ travel_rule_message_id: Optional[StrictStr] = Field(default=None, description="Travel rule message identifier for linking and tracking across providers", alias="travelRuleMessageId")
+ __properties: ClassVar[List[str]] = ["provider", "payload", "timestamp", "screeningStatus", "bypassReason", "status", "prevStatus", "prevBypassReason", "verdict", "risk", "extendedRisk", "externalId", "customerRefId", "refId", "category", "categoryId", "destAddress", "destTag", "destRecordId", "addressResolutionSignature", "amlResult", "result", "detailsMessage", "matchedAlert", "matchedRule", "matchedPrescreeningRule", "matchedNoTrmScreeningRule", "customerIntegrationId", "customerShortName", "travelRuleMessageId"]
@field_validator('screening_status')
def screening_status_validate_enum(cls, value):
@@ -83,6 +114,15 @@ def to_dict(self) -> Dict[str, Any]:
exclude=excluded_fields,
exclude_none=True,
)
+ # override the default output from pydantic by calling `to_dict()` of aml_result
+ if self.aml_result:
+ _dict['amlResult'] = self.aml_result.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of result
+ if self.result:
+ _dict['result'] = self.result.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of matched_prescreening_rule
+ if self.matched_prescreening_rule:
+ _dict['matchedPrescreeningRule'] = self.matched_prescreening_rule.to_dict()
return _dict
@classmethod
@@ -97,9 +137,34 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
_obj = cls.model_validate({
"provider": obj.get("provider"),
"payload": obj.get("payload"),
- "bypassReason": obj.get("bypassReason"),
+ "timestamp": obj.get("timestamp"),
"screeningStatus": obj.get("screeningStatus"),
- "timestamp": obj.get("timestamp")
+ "bypassReason": obj.get("bypassReason"),
+ "status": obj.get("status"),
+ "prevStatus": obj.get("prevStatus"),
+ "prevBypassReason": obj.get("prevBypassReason"),
+ "verdict": obj.get("verdict"),
+ "risk": obj.get("risk"),
+ "extendedRisk": obj.get("extendedRisk"),
+ "externalId": obj.get("externalId"),
+ "customerRefId": obj.get("customerRefId"),
+ "refId": obj.get("refId"),
+ "category": obj.get("category"),
+ "categoryId": obj.get("categoryId"),
+ "destAddress": obj.get("destAddress"),
+ "destTag": obj.get("destTag"),
+ "destRecordId": obj.get("destRecordId"),
+ "addressResolutionSignature": obj.get("addressResolutionSignature"),
+ "amlResult": ScreeningAmlResult.from_dict(obj["amlResult"]) if obj.get("amlResult") is not None else None,
+ "result": ScreeningTravelRuleResult.from_dict(obj["result"]) if obj.get("result") is not None else None,
+ "detailsMessage": obj.get("detailsMessage"),
+ "matchedAlert": obj.get("matchedAlert"),
+ "matchedRule": obj.get("matchedRule"),
+ "matchedPrescreeningRule": ScreeningTravelRulePrescreeningRule.from_dict(obj["matchedPrescreeningRule"]) if obj.get("matchedPrescreeningRule") is not None else None,
+ "matchedNoTrmScreeningRule": obj.get("matchedNoTrmScreeningRule"),
+ "customerIntegrationId": obj.get("customerIntegrationId"),
+ "customerShortName": obj.get("customerShortName"),
+ "travelRuleMessageId": obj.get("travelRuleMessageId")
})
return _obj
diff --git a/fireblocks/models/d_app_address_config.py b/fireblocks/models/d_app_address_config.py
new file mode 100644
index 00000000..035f9464
--- /dev/null
+++ b/fireblocks/models/d_app_address_config.py
@@ -0,0 +1,95 @@
+# 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
+from fireblocks.models.policy_operator import PolicyOperator
+from typing import Optional, Set
+from typing_extensions import Self
+
+class DAppAddressConfig(BaseModel):
+ """
+ dApp address configuration for policy rules
+ """ # noqa: E501
+ global_whitelisted: List[StrictStr] = Field(description="Globally whitelisted addresses", alias="globalWhitelisted")
+ tenant_whitelisted: List[StrictStr] = Field(description="Tenant whitelisted addresses", alias="tenantWhitelisted")
+ urls: List[StrictStr] = Field(description="Allowed all address")
+ operator: PolicyOperator
+ __properties: ClassVar[List[str]] = ["globalWhitelisted", "tenantWhitelisted", "urls", "operator"]
+
+ 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 DAppAddressConfig 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 DAppAddressConfig from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "globalWhitelisted": obj.get("globalWhitelisted"),
+ "tenantWhitelisted": obj.get("tenantWhitelisted"),
+ "urls": obj.get("urls"),
+ "operator": obj.get("operator")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/destination_config.py b/fireblocks/models/destination_config.py
index ca3ae1b8..937409be 100644
--- a/fireblocks/models/destination_config.py
+++ b/fireblocks/models/destination_config.py
@@ -23,6 +23,7 @@
from fireblocks.models.account_identifier import AccountIdentifier
from fireblocks.models.account_type2 import AccountType2
from fireblocks.models.policy_operator import PolicyOperator
+from fireblocks.models.policy_tag import PolicyTag
from typing import Optional, Set
from typing_extensions import Self
@@ -30,13 +31,14 @@ class DestinationConfig(BaseModel):
"""
Destination configuration for policy rules
""" # noqa: E501
- type: AccountType2
+ type: Optional[List[AccountType2]] = Field(default=None, description="Destination account types")
sub_type: Optional[List[AccountIdentifier]] = Field(default=None, alias="subType")
ids: Optional[List[AccountIdentifier]] = None
+ tags: Optional[List[PolicyTag]] = Field(default=None, description="Tags for destination matching")
operator: PolicyOperator
- match_from: Optional[StrictStr] = Field(default=None, description="Whether to match from account or source", alias="matchFrom")
+ match_from: Optional[StrictStr] = Field(default=None, description="Whether to match from account or source (relevant only for ORDER policy type). If set to ACCOUNT, only matchFrom is allowed and other fields are not required.", alias="matchFrom")
address_type: StrictStr = Field(description="Type of destination addresses allowed", alias="addressType")
- __properties: ClassVar[List[str]] = ["type", "subType", "ids", "operator", "matchFrom", "addressType"]
+ __properties: ClassVar[List[str]] = ["type", "subType", "ids", "tags", "operator", "matchFrom", "addressType"]
@field_validator('match_from')
def match_from_validate_enum(cls, value):
@@ -51,8 +53,8 @@ def match_from_validate_enum(cls, value):
@field_validator('address_type')
def address_type_validate_enum(cls, value):
"""Validates the enum"""
- if value not in set(['ALL', '*', 'WHITELISTED', 'ONE_TIME', 'OEC_PARTNER']):
- raise ValueError("must be one of enum values ('ALL', '*', 'WHITELISTED', 'ONE_TIME', 'OEC_PARTNER')")
+ if value not in set(['*', 'WHITELISTED', 'ONE_TIME']):
+ raise ValueError("must be one of enum values ('*', 'WHITELISTED', 'ONE_TIME')")
return value
model_config = ConfigDict(
@@ -108,6 +110,13 @@ def to_dict(self) -> Dict[str, Any]:
if _item_ids:
_items.append(_item_ids.to_dict())
_dict['ids'] = _items
+ # override the default output from pydantic by calling `to_dict()` of each item in tags (list)
+ _items = []
+ if self.tags:
+ for _item_tags in self.tags:
+ if _item_tags:
+ _items.append(_item_tags.to_dict())
+ _dict['tags'] = _items
return _dict
@classmethod
@@ -123,6 +132,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"type": obj.get("type"),
"subType": [AccountIdentifier.from_dict(_item) for _item in obj["subType"]] if obj.get("subType") is not None else None,
"ids": [AccountIdentifier.from_dict(_item) for _item in obj["ids"]] if obj.get("ids") is not None else None,
+ "tags": [PolicyTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None,
"operator": obj.get("operator"),
"matchFrom": obj.get("matchFrom"),
"addressType": obj.get("addressType")
diff --git a/fireblocks/models/direct_access_provider_details.py b/fireblocks/models/direct_access_provider_details.py
new file mode 100644
index 00000000..ff82d55e
--- /dev/null
+++ b/fireblocks/models/direct_access_provider_details.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, Field, StrictBool, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class DirectAccessProviderDetails(BaseModel):
+ """
+ DirectAccessProviderDetails
+ """ # noqa: E501
+ approved: Optional[StrictBool] = Field(default=None, description="Whether the provider was approved for use")
+ has_terms_of_service: StrictBool = Field(description="Whether the provider has terms of service", alias="hasTermsOfService")
+ terms_of_service_url: Optional[StrictStr] = Field(default=None, description="URL to the terms of service document", alias="termsOfServiceUrl")
+ __properties: ClassVar[List[str]] = ["approved", "hasTermsOfService", "termsOfServiceUrl"]
+
+ 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 DirectAccessProviderDetails 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 DirectAccessProviderDetails from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "approved": obj.get("approved"),
+ "hasTermsOfService": obj.get("hasTermsOfService"),
+ "termsOfServiceUrl": obj.get("termsOfServiceUrl")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/execution_step_type.py b/fireblocks/models/execution_step_type.py
index dd5ad3a5..aaf51b51 100644
--- a/fireblocks/models/execution_step_type.py
+++ b/fireblocks/models/execution_step_type.py
@@ -32,6 +32,7 @@ class ExecutionStepType(str, Enum):
CONTRACT_CALL = 'CONTRACT_CALL'
EXECUTE = 'EXECUTE'
SETTLEMENT = 'SETTLEMENT'
+ DELIVERY = 'DELIVERY'
@classmethod
def from_json(cls, json_str: str) -> Self:
diff --git a/fireblocks/models/fee_properties_details.py b/fireblocks/models/fee_properties_details.py
new file mode 100644
index 00000000..4a7c8df4
--- /dev/null
+++ b/fireblocks/models/fee_properties_details.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, StrictStr, field_validator
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class FeePropertiesDetails(BaseModel):
+ """
+ FeePropertiesDetails
+ """ # noqa: E501
+ fee_type: StrictStr = Field(description="The type of fee, such as ORDER, NETWORK, or SPREAD. ORDER - Fee for executing the order. NETWORK - Fee for network transactions. SPREAD - Fee for the difference between buy and sell prices. ", alias="feeType")
+ asset_id: StrictStr = Field(description="The asset identifier for the fee.", alias="assetId")
+ amount_type: StrictStr = Field(description="The type of amount for the fee, either FIXED or BPS (basis points).", alias="amountType")
+ __properties: ClassVar[List[str]] = ["feeType", "assetId", "amountType"]
+
+ @field_validator('fee_type')
+ def fee_type_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['ORDER', 'NETWORK', 'SPREAD']):
+ raise ValueError("must be one of enum values ('ORDER', 'NETWORK', 'SPREAD')")
+ return value
+
+ @field_validator('amount_type')
+ def amount_type_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['FIXED', 'BPS']):
+ raise ValueError("must be one of enum values ('FIXED', 'BPS')")
+ 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 FeePropertiesDetails 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 FeePropertiesDetails from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "feeType": obj.get("feeType"),
+ "assetId": obj.get("assetId"),
+ "amountType": obj.get("amountType")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/fiat_destination.py b/fireblocks/models/fiat_destination.py
new file mode 100644
index 00000000..9083329a
--- /dev/null
+++ b/fireblocks/models/fiat_destination.py
@@ -0,0 +1,236 @@
+# 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 json
+import pprint
+from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator
+from typing import Any, List, Optional
+from fireblocks.models.ach_destination import AchDestination
+from fireblocks.models.iban_destination import IbanDestination
+from fireblocks.models.local_bank_transfer_africa_destination import LocalBankTransferAfricaDestination
+from fireblocks.models.mobile_money_destination import MobileMoneyDestination
+from fireblocks.models.pix_destination import PixDestination
+from fireblocks.models.sepa_destination import SEPADestination
+from fireblocks.models.spei_destination import SpeiDestination
+from fireblocks.models.swift_destination import SwiftDestination
+from fireblocks.models.us_wire_destination import USWireDestination
+from pydantic import StrictStr, Field
+from typing import Union, List, Set, Optional, Dict
+from typing_extensions import Literal, Self
+
+FIATDESTINATION_ONE_OF_SCHEMAS = ["AchDestination", "IbanDestination", "LocalBankTransferAfricaDestination", "MobileMoneyDestination", "PixDestination", "SEPADestination", "SpeiDestination", "SwiftDestination", "USWireDestination"]
+
+class FiatDestination(BaseModel):
+ """
+ FiatDestination
+ """
+ # data type: IbanDestination
+ oneof_schema_1_validator: Optional[IbanDestination] = None
+ # data type: SwiftDestination
+ oneof_schema_2_validator: Optional[SwiftDestination] = None
+ # data type: AchDestination
+ oneof_schema_3_validator: Optional[AchDestination] = None
+ # data type: USWireDestination
+ oneof_schema_4_validator: Optional[USWireDestination] = None
+ # data type: SpeiDestination
+ oneof_schema_5_validator: Optional[SpeiDestination] = None
+ # data type: SEPADestination
+ oneof_schema_6_validator: Optional[SEPADestination] = None
+ # data type: PixDestination
+ oneof_schema_7_validator: Optional[PixDestination] = None
+ # data type: LocalBankTransferAfricaDestination
+ oneof_schema_8_validator: Optional[LocalBankTransferAfricaDestination] = None
+ # data type: MobileMoneyDestination
+ oneof_schema_9_validator: Optional[MobileMoneyDestination] = None
+ actual_instance: Optional[Union[AchDestination, IbanDestination, LocalBankTransferAfricaDestination, MobileMoneyDestination, PixDestination, SEPADestination, SpeiDestination, SwiftDestination, USWireDestination]] = None
+ one_of_schemas: Set[str] = { "AchDestination", "IbanDestination", "LocalBankTransferAfricaDestination", "MobileMoneyDestination", "PixDestination", "SEPADestination", "SpeiDestination", "SwiftDestination", "USWireDestination" }
+
+ model_config = ConfigDict(
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def __init__(self, *args, **kwargs) -> None:
+ if args:
+ if len(args) > 1:
+ raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`")
+ if kwargs:
+ raise ValueError("If a position argument is used, keyword arguments cannot be used.")
+ super().__init__(actual_instance=args[0])
+ else:
+ super().__init__(**kwargs)
+
+ @field_validator('actual_instance')
+ def actual_instance_must_validate_oneof(cls, v):
+ instance = FiatDestination.model_construct()
+ error_messages = []
+ match = 0
+ # validate data type: IbanDestination
+ if not isinstance(v, IbanDestination):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `IbanDestination`")
+ else:
+ match += 1
+ # validate data type: SwiftDestination
+ if not isinstance(v, SwiftDestination):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `SwiftDestination`")
+ else:
+ match += 1
+ # validate data type: AchDestination
+ if not isinstance(v, AchDestination):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `AchDestination`")
+ else:
+ match += 1
+ # validate data type: USWireDestination
+ if not isinstance(v, USWireDestination):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `USWireDestination`")
+ else:
+ match += 1
+ # validate data type: SpeiDestination
+ if not isinstance(v, SpeiDestination):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `SpeiDestination`")
+ else:
+ match += 1
+ # validate data type: SEPADestination
+ if not isinstance(v, SEPADestination):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `SEPADestination`")
+ else:
+ match += 1
+ # validate data type: PixDestination
+ if not isinstance(v, PixDestination):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `PixDestination`")
+ else:
+ match += 1
+ # validate data type: LocalBankTransferAfricaDestination
+ if not isinstance(v, LocalBankTransferAfricaDestination):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `LocalBankTransferAfricaDestination`")
+ else:
+ match += 1
+ # validate data type: MobileMoneyDestination
+ if not isinstance(v, MobileMoneyDestination):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `MobileMoneyDestination`")
+ else:
+ match += 1
+ if match > 1:
+ # more than 1 match
+ raise ValueError("Multiple matches found when setting `actual_instance` in FiatDestination with oneOf schemas: AchDestination, IbanDestination, LocalBankTransferAfricaDestination, MobileMoneyDestination, PixDestination, SEPADestination, SpeiDestination, SwiftDestination, USWireDestination. Details: " + ", ".join(error_messages))
+ elif match == 0:
+ # no match
+ raise ValueError("No match found when setting `actual_instance` in FiatDestination with oneOf schemas: AchDestination, IbanDestination, LocalBankTransferAfricaDestination, MobileMoneyDestination, PixDestination, SEPADestination, SpeiDestination, SwiftDestination, USWireDestination. Details: " + ", ".join(error_messages))
+ else:
+ return v
+
+ @classmethod
+ def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self:
+ return cls.from_json(json.dumps(obj))
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Returns the object represented by the json string"""
+ instance = cls.model_construct()
+ error_messages = []
+ match = 0
+
+ # deserialize data into IbanDestination
+ try:
+ instance.actual_instance = IbanDestination.from_json(json_str)
+ match += 1
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+ # deserialize data into SwiftDestination
+ try:
+ instance.actual_instance = SwiftDestination.from_json(json_str)
+ match += 1
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+ # deserialize data into AchDestination
+ try:
+ instance.actual_instance = AchDestination.from_json(json_str)
+ match += 1
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+ # deserialize data into USWireDestination
+ try:
+ instance.actual_instance = USWireDestination.from_json(json_str)
+ match += 1
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+ # deserialize data into SpeiDestination
+ try:
+ instance.actual_instance = SpeiDestination.from_json(json_str)
+ match += 1
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+ # deserialize data into SEPADestination
+ try:
+ instance.actual_instance = SEPADestination.from_json(json_str)
+ match += 1
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+ # deserialize data into PixDestination
+ try:
+ instance.actual_instance = PixDestination.from_json(json_str)
+ match += 1
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+ # deserialize data into LocalBankTransferAfricaDestination
+ try:
+ instance.actual_instance = LocalBankTransferAfricaDestination.from_json(json_str)
+ match += 1
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+ # deserialize data into MobileMoneyDestination
+ try:
+ instance.actual_instance = MobileMoneyDestination.from_json(json_str)
+ match += 1
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+
+ if match > 1:
+ # more than 1 match
+ raise ValueError("Multiple matches found when deserializing the JSON string into FiatDestination with oneOf schemas: AchDestination, IbanDestination, LocalBankTransferAfricaDestination, MobileMoneyDestination, PixDestination, SEPADestination, SpeiDestination, SwiftDestination, USWireDestination. Details: " + ", ".join(error_messages))
+ elif match == 0:
+ # no match
+ raise ValueError("No match found when deserializing the JSON string into FiatDestination with oneOf schemas: AchDestination, IbanDestination, LocalBankTransferAfricaDestination, MobileMoneyDestination, PixDestination, SEPADestination, SpeiDestination, SwiftDestination, USWireDestination. Details: " + ", ".join(error_messages))
+ else:
+ return instance
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the actual instance"""
+ if self.actual_instance is None:
+ return "null"
+
+ if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json):
+ return self.actual_instance.to_json()
+ else:
+ return json.dumps(self.actual_instance)
+
+ def to_dict(self) -> Optional[Union[Dict[str, Any], AchDestination, IbanDestination, LocalBankTransferAfricaDestination, MobileMoneyDestination, PixDestination, SEPADestination, SpeiDestination, SwiftDestination, USWireDestination]]:
+ """Returns the dict representation of the actual instance"""
+ if self.actual_instance is None:
+ return None
+
+ if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict):
+ return self.actual_instance.to_dict()
+ else:
+ # primitive type
+ return self.actual_instance
+
+ def to_str(self) -> str:
+ """Returns the string representation of the actual instance"""
+ return pprint.pformat(self.model_dump())
+
+
diff --git a/fireblocks/models/iban_address.py b/fireblocks/models/iban_address.py
new file mode 100644
index 00000000..39d47194
--- /dev/null
+++ b/fireblocks/models/iban_address.py
@@ -0,0 +1,102 @@
+# 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, field_validator
+from typing import Any, ClassVar, Dict, List
+from typing_extensions import Annotated
+from fireblocks.models.account_holder_details import AccountHolderDetails
+from typing import Optional, Set
+from typing_extensions import Self
+
+class IbanAddress(BaseModel):
+ """
+ IbanAddress
+ """ # noqa: E501
+ account_holder: AccountHolderDetails = Field(alias="accountHolder")
+ iban: Annotated[str, Field(strict=True)]
+ __properties: ClassVar[List[str]] = ["accountHolder", "iban"]
+
+ @field_validator('iban')
+ def iban_validate_regular_expression(cls, value):
+ """Validates the regular expression"""
+ if not re.match(r"^[A-Z]{2}\d{2}[a-zA-Z0-9]{1,30}$", value):
+ raise ValueError(r"must validate the regular expression /^[A-Z]{2}\d{2}[a-zA-Z0-9]{1,30}$/")
+ 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 IbanAddress 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 account_holder
+ if self.account_holder:
+ _dict['accountHolder'] = self.account_holder.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of IbanAddress from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "accountHolder": AccountHolderDetails.from_dict(obj["accountHolder"]) if obj.get("accountHolder") is not None else None,
+ "iban": obj.get("iban")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/iban_destination.py b/fireblocks/models/iban_destination.py
new file mode 100644
index 00000000..fe3913ad
--- /dev/null
+++ b/fireblocks/models/iban_destination.py
@@ -0,0 +1,101 @@
+# 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, StrictStr, field_validator
+from typing import Any, ClassVar, Dict, List
+from fireblocks.models.iban_address import IbanAddress
+from typing import Optional, Set
+from typing_extensions import Self
+
+class IbanDestination(BaseModel):
+ """
+ IbanDestination
+ """ # noqa: E501
+ type: StrictStr
+ address: IbanAddress
+ __properties: ClassVar[List[str]] = ["type", "address"]
+
+ @field_validator('type')
+ def type_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['IBAN']):
+ raise ValueError("must be one of enum values ('IBAN')")
+ 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 IbanDestination 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 address
+ if self.address:
+ _dict['address'] = self.address.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of IbanDestination from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "type": obj.get("type"),
+ "address": IbanAddress.from_dict(obj["address"]) if obj.get("address") is not None else None
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/initiator_config.py b/fireblocks/models/initiator_config.py
index 801dcf75..70d87bd5 100644
--- a/fireblocks/models/initiator_config.py
+++ b/fireblocks/models/initiator_config.py
@@ -33,7 +33,7 @@ class InitiatorConfig(BaseModel):
services: Optional[List[StrictStr]] = None
fb_admin_groups: Optional[List[StrictStr]] = Field(default=None, alias="fbAdminGroups")
exchange: Optional[List[StrictStr]] = None
- operator: PolicyOperator
+ operator: Optional[PolicyOperator] = None
__properties: ClassVar[List[str]] = ["users", "groups", "services", "fbAdminGroups", "exchange", "operator"]
model_config = ConfigDict(
diff --git a/fireblocks/models/limit_execution_request_details.py b/fireblocks/models/limit_execution_request_details.py
index ff0f6cb9..173b9106 100644
--- a/fireblocks/models/limit_execution_request_details.py
+++ b/fireblocks/models/limit_execution_request_details.py
@@ -29,23 +29,16 @@ class LimitExecutionRequestDetails(BaseModel):
"""
LimitExecutionRequestDetails
""" # noqa: E501
+ type: StrictStr = Field(description="Order type for limit orders")
+ time_in_force: TimeInForce = Field(alias="timeInForce")
+ limit_price: StrictStr = Field(description="Price for limit orders", alias="limitPrice")
side: StrictStr = Field(description="Side of the order")
base_amount: StrictStr = Field(description="Amount to convert", alias="baseAmount")
base_asset_id: StrictStr = Field(description="Source asset identifier", alias="baseAssetId")
base_asset_rail: Optional[TransferRail] = Field(default=None, alias="baseAssetRail")
quote_asset_id: StrictStr = Field(description="Target asset identifier", alias="quoteAssetId")
quote_asset_rail: Optional[TransferRail] = Field(default=None, alias="quoteAssetRail")
- type: StrictStr = Field(description="Order type for limit orders")
- time_in_force: TimeInForce = Field(alias="timeInForce")
- limit_price: StrictStr = Field(description="Price for limit orders", alias="limitPrice")
- __properties: ClassVar[List[str]] = ["side", "baseAmount", "baseAssetId", "baseAssetRail", "quoteAssetId", "quoteAssetRail", "type", "timeInForce", "limitPrice"]
-
- @field_validator('side')
- def side_validate_enum(cls, value):
- """Validates the enum"""
- if value not in set(['BUY', 'SELL']):
- raise ValueError("must be one of enum values ('BUY', 'SELL')")
- return value
+ __properties: ClassVar[List[str]] = ["type", "timeInForce", "limitPrice", "side", "baseAmount", "baseAssetId", "baseAssetRail", "quoteAssetId", "quoteAssetRail"]
@field_validator('type')
def type_validate_enum(cls, value):
@@ -54,6 +47,13 @@ def type_validate_enum(cls, value):
raise ValueError("must be one of enum values ('LIMIT')")
return value
+ @field_validator('side')
+ def side_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['BUY', 'SELL']):
+ raise ValueError("must be one of enum values ('BUY', 'SELL')")
+ return value
+
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
@@ -105,15 +105,15 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
return cls.model_validate(obj)
_obj = cls.model_validate({
+ "type": obj.get("type"),
+ "timeInForce": obj.get("timeInForce"),
+ "limitPrice": obj.get("limitPrice"),
"side": obj.get("side") if obj.get("side") is not None else 'BUY',
"baseAmount": obj.get("baseAmount"),
"baseAssetId": obj.get("baseAssetId"),
"baseAssetRail": obj.get("baseAssetRail"),
"quoteAssetId": obj.get("quoteAssetId"),
- "quoteAssetRail": obj.get("quoteAssetRail"),
- "type": obj.get("type"),
- "timeInForce": obj.get("timeInForce"),
- "limitPrice": obj.get("limitPrice")
+ "quoteAssetRail": obj.get("quoteAssetRail")
})
return _obj
diff --git a/fireblocks/models/limit_execution_response_details.py b/fireblocks/models/limit_execution_response_details.py
index 7f1dee8c..5d8e064c 100644
--- a/fireblocks/models/limit_execution_response_details.py
+++ b/fireblocks/models/limit_execution_response_details.py
@@ -29,23 +29,16 @@ class LimitExecutionResponseDetails(BaseModel):
"""
LimitExecutionResponseDetails
""" # noqa: E501
+ type: StrictStr = Field(description="Order type for limit orders")
+ time_in_force: TimeInForce = Field(alias="timeInForce")
+ limit_price: StrictStr = Field(description="Price for limit orders", alias="limitPrice")
side: StrictStr = Field(description="Side of the order")
base_amount: StrictStr = Field(description="Amount to convert", alias="baseAmount")
base_asset_id: StrictStr = Field(description="Source asset identifier", alias="baseAssetId")
base_asset_rail: Optional[TransferRail] = Field(default=None, alias="baseAssetRail")
quote_asset_id: StrictStr = Field(description="Target asset identifier", alias="quoteAssetId")
quote_asset_rail: Optional[TransferRail] = Field(default=None, alias="quoteAssetRail")
- type: StrictStr = Field(description="Order type for limit orders")
- time_in_force: TimeInForce = Field(alias="timeInForce")
- limit_price: StrictStr = Field(description="Price for limit orders", alias="limitPrice")
- __properties: ClassVar[List[str]] = ["side", "baseAmount", "baseAssetId", "baseAssetRail", "quoteAssetId", "quoteAssetRail", "type", "timeInForce", "limitPrice"]
-
- @field_validator('side')
- def side_validate_enum(cls, value):
- """Validates the enum"""
- if value not in set(['BUY', 'SELL']):
- raise ValueError("must be one of enum values ('BUY', 'SELL')")
- return value
+ __properties: ClassVar[List[str]] = ["type", "timeInForce", "limitPrice", "side", "baseAmount", "baseAssetId", "baseAssetRail", "quoteAssetId", "quoteAssetRail"]
@field_validator('type')
def type_validate_enum(cls, value):
@@ -54,6 +47,13 @@ def type_validate_enum(cls, value):
raise ValueError("must be one of enum values ('LIMIT')")
return value
+ @field_validator('side')
+ def side_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['BUY', 'SELL']):
+ raise ValueError("must be one of enum values ('BUY', 'SELL')")
+ return value
+
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
@@ -105,15 +105,15 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
return cls.model_validate(obj)
_obj = cls.model_validate({
+ "type": obj.get("type"),
+ "timeInForce": obj.get("timeInForce"),
+ "limitPrice": obj.get("limitPrice"),
"side": obj.get("side") if obj.get("side") is not None else 'BUY',
"baseAmount": obj.get("baseAmount"),
"baseAssetId": obj.get("baseAssetId"),
"baseAssetRail": obj.get("baseAssetRail"),
"quoteAssetId": obj.get("quoteAssetId"),
- "quoteAssetRail": obj.get("quoteAssetRail"),
- "type": obj.get("type"),
- "timeInForce": obj.get("timeInForce"),
- "limitPrice": obj.get("limitPrice")
+ "quoteAssetRail": obj.get("quoteAssetRail")
})
return _obj
diff --git a/fireblocks/models/limit_type_details.py b/fireblocks/models/limit_type_details.py
new file mode 100644
index 00000000..7855abca
--- /dev/null
+++ b/fireblocks/models/limit_type_details.py
@@ -0,0 +1,100 @@
+# 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
+from fireblocks.models.time_in_force import TimeInForce
+from typing import Optional, Set
+from typing_extensions import Self
+
+class LimitTypeDetails(BaseModel):
+ """
+ LimitTypeDetails
+ """ # noqa: E501
+ type: StrictStr = Field(description="Order type for limit orders")
+ time_in_force: TimeInForce = Field(alias="timeInForce")
+ limit_price: StrictStr = Field(description="Price for limit orders", alias="limitPrice")
+ __properties: ClassVar[List[str]] = ["type", "timeInForce", "limitPrice"]
+
+ @field_validator('type')
+ def type_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['LIMIT']):
+ raise ValueError("must be one of enum values ('LIMIT')")
+ 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 LimitTypeDetails 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 LimitTypeDetails from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "type": obj.get("type"),
+ "timeInForce": obj.get("timeInForce"),
+ "limitPrice": obj.get("limitPrice")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/local_bank_transfer_africa_address.py b/fireblocks/models/local_bank_transfer_africa_address.py
new file mode 100644
index 00000000..60f440ce
--- /dev/null
+++ b/fireblocks/models/local_bank_transfer_africa_address.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, StrictStr, field_validator
+from typing import Any, ClassVar, Dict, List
+from typing_extensions import Annotated
+from fireblocks.models.account_holder_details import AccountHolderDetails
+from typing import Optional, Set
+from typing_extensions import Self
+
+class LocalBankTransferAfricaAddress(BaseModel):
+ """
+ LocalBankTransferAfricaAddress
+ """ # noqa: E501
+ account_holder: AccountHolderDetails = Field(alias="accountHolder")
+ account_number: Annotated[str, Field(strict=True)] = Field(alias="accountNumber")
+ bank_name: StrictStr = Field(description="Name of the bank", alias="bankName")
+ bank_code: StrictStr = Field(description="Internal bank identifier", alias="bankCode")
+ __properties: ClassVar[List[str]] = ["accountHolder", "accountNumber", "bankName", "bankCode"]
+
+ @field_validator('account_number')
+ def account_number_validate_regular_expression(cls, value):
+ """Validates the regular expression"""
+ if not re.match(r"^\d{4,17}$", value):
+ raise ValueError(r"must validate the regular expression /^\d{4,17}$/")
+ 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 LocalBankTransferAfricaAddress 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 account_holder
+ if self.account_holder:
+ _dict['accountHolder'] = self.account_holder.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of LocalBankTransferAfricaAddress from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "accountHolder": AccountHolderDetails.from_dict(obj["accountHolder"]) if obj.get("accountHolder") is not None else None,
+ "accountNumber": obj.get("accountNumber"),
+ "bankName": obj.get("bankName"),
+ "bankCode": obj.get("bankCode")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/local_bank_transfer_africa_destination.py b/fireblocks/models/local_bank_transfer_africa_destination.py
new file mode 100644
index 00000000..c1e1f59c
--- /dev/null
+++ b/fireblocks/models/local_bank_transfer_africa_destination.py
@@ -0,0 +1,101 @@
+# 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, StrictStr, field_validator
+from typing import Any, ClassVar, Dict, List
+from fireblocks.models.local_bank_transfer_africa_address import LocalBankTransferAfricaAddress
+from typing import Optional, Set
+from typing_extensions import Self
+
+class LocalBankTransferAfricaDestination(BaseModel):
+ """
+ LocalBankTransferAfricaDestination
+ """ # noqa: E501
+ type: StrictStr
+ address: LocalBankTransferAfricaAddress
+ __properties: ClassVar[List[str]] = ["type", "address"]
+
+ @field_validator('type')
+ def type_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['LOCAL_BANK_TRANSFER_AFRICA']):
+ raise ValueError("must be one of enum values ('LOCAL_BANK_TRANSFER_AFRICA')")
+ 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 LocalBankTransferAfricaDestination 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 address
+ if self.address:
+ _dict['address'] = self.address.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of LocalBankTransferAfricaDestination from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "type": obj.get("type"),
+ "address": LocalBankTransferAfricaAddress.from_dict(obj["address"]) if obj.get("address") is not None else None
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/market_execution_request_details.py b/fireblocks/models/market_execution_request_details.py
index 921a5d9b..42a43c0b 100644
--- a/fireblocks/models/market_execution_request_details.py
+++ b/fireblocks/models/market_execution_request_details.py
@@ -28,21 +28,14 @@ class MarketExecutionRequestDetails(BaseModel):
"""
MarketExecutionRequestDetails
""" # noqa: E501
+ type: StrictStr = Field(description="Order type for market orders")
side: StrictStr = Field(description="Side of the order")
base_amount: StrictStr = Field(description="Amount to convert", alias="baseAmount")
base_asset_id: StrictStr = Field(description="Source asset identifier", alias="baseAssetId")
base_asset_rail: Optional[TransferRail] = Field(default=None, alias="baseAssetRail")
quote_asset_id: StrictStr = Field(description="Target asset identifier", alias="quoteAssetId")
quote_asset_rail: Optional[TransferRail] = Field(default=None, alias="quoteAssetRail")
- type: StrictStr = Field(description="Order type for market orders")
- __properties: ClassVar[List[str]] = ["side", "baseAmount", "baseAssetId", "baseAssetRail", "quoteAssetId", "quoteAssetRail", "type"]
-
- @field_validator('side')
- def side_validate_enum(cls, value):
- """Validates the enum"""
- if value not in set(['BUY', 'SELL']):
- raise ValueError("must be one of enum values ('BUY', 'SELL')")
- return value
+ __properties: ClassVar[List[str]] = ["type", "side", "baseAmount", "baseAssetId", "baseAssetRail", "quoteAssetId", "quoteAssetRail"]
@field_validator('type')
def type_validate_enum(cls, value):
@@ -51,6 +44,13 @@ def type_validate_enum(cls, value):
raise ValueError("must be one of enum values ('MARKET')")
return value
+ @field_validator('side')
+ def side_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['BUY', 'SELL']):
+ raise ValueError("must be one of enum values ('BUY', 'SELL')")
+ return value
+
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
@@ -102,13 +102,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
return cls.model_validate(obj)
_obj = cls.model_validate({
+ "type": obj.get("type"),
"side": obj.get("side") if obj.get("side") is not None else 'BUY',
"baseAmount": obj.get("baseAmount"),
"baseAssetId": obj.get("baseAssetId"),
"baseAssetRail": obj.get("baseAssetRail"),
"quoteAssetId": obj.get("quoteAssetId"),
- "quoteAssetRail": obj.get("quoteAssetRail"),
- "type": obj.get("type")
+ "quoteAssetRail": obj.get("quoteAssetRail")
})
return _obj
diff --git a/fireblocks/models/market_execution_response_details.py b/fireblocks/models/market_execution_response_details.py
index 2cd3b067..16eb59b1 100644
--- a/fireblocks/models/market_execution_response_details.py
+++ b/fireblocks/models/market_execution_response_details.py
@@ -28,21 +28,14 @@ class MarketExecutionResponseDetails(BaseModel):
"""
MarketExecutionResponseDetails
""" # noqa: E501
+ type: StrictStr = Field(description="Order type for market orders")
side: StrictStr = Field(description="Side of the order")
base_amount: StrictStr = Field(description="Amount to convert", alias="baseAmount")
base_asset_id: StrictStr = Field(description="Source asset identifier", alias="baseAssetId")
base_asset_rail: Optional[TransferRail] = Field(default=None, alias="baseAssetRail")
quote_asset_id: StrictStr = Field(description="Target asset identifier", alias="quoteAssetId")
quote_asset_rail: Optional[TransferRail] = Field(default=None, alias="quoteAssetRail")
- type: StrictStr = Field(description="Order type for market orders")
- __properties: ClassVar[List[str]] = ["side", "baseAmount", "baseAssetId", "baseAssetRail", "quoteAssetId", "quoteAssetRail", "type"]
-
- @field_validator('side')
- def side_validate_enum(cls, value):
- """Validates the enum"""
- if value not in set(['BUY', 'SELL']):
- raise ValueError("must be one of enum values ('BUY', 'SELL')")
- return value
+ __properties: ClassVar[List[str]] = ["type", "side", "baseAmount", "baseAssetId", "baseAssetRail", "quoteAssetId", "quoteAssetRail"]
@field_validator('type')
def type_validate_enum(cls, value):
@@ -51,6 +44,13 @@ def type_validate_enum(cls, value):
raise ValueError("must be one of enum values ('MARKET')")
return value
+ @field_validator('side')
+ def side_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['BUY', 'SELL']):
+ raise ValueError("must be one of enum values ('BUY', 'SELL')")
+ return value
+
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
@@ -102,13 +102,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
return cls.model_validate(obj)
_obj = cls.model_validate({
+ "type": obj.get("type"),
"side": obj.get("side") if obj.get("side") is not None else 'BUY',
"baseAmount": obj.get("baseAmount"),
"baseAssetId": obj.get("baseAssetId"),
"baseAssetRail": obj.get("baseAssetRail"),
"quoteAssetId": obj.get("quoteAssetId"),
- "quoteAssetRail": obj.get("quoteAssetRail"),
- "type": obj.get("type")
+ "quoteAssetRail": obj.get("quoteAssetRail")
})
return _obj
diff --git a/fireblocks/models/market_type_details.py b/fireblocks/models/market_type_details.py
new file mode 100644
index 00000000..d9f7f58f
--- /dev/null
+++ b/fireblocks/models/market_type_details.py
@@ -0,0 +1,95 @@
+# 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
+from typing import Optional, Set
+from typing_extensions import Self
+
+class MarketTypeDetails(BaseModel):
+ """
+ MarketTypeDetails
+ """ # noqa: E501
+ type: StrictStr = Field(description="Order type for market orders")
+ __properties: ClassVar[List[str]] = ["type"]
+
+ @field_validator('type')
+ def type_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['MARKET']):
+ raise ValueError("must be one of enum values ('MARKET')")
+ 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 MarketTypeDetails 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 MarketTypeDetails from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "type": obj.get("type")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/mobile_money_address.py b/fireblocks/models/mobile_money_address.py
new file mode 100644
index 00000000..b28b005f
--- /dev/null
+++ b/fireblocks/models/mobile_money_address.py
@@ -0,0 +1,115 @@
+# 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 typing_extensions import Annotated
+from fireblocks.models.account_holder_details import AccountHolderDetails
+from typing import Optional, Set
+from typing_extensions import Self
+
+class MobileMoneyAddress(BaseModel):
+ """
+ MobileMoneyAddress
+ """ # noqa: E501
+ account_holder: AccountHolderDetails = Field(alias="accountHolder")
+ mobile_phone_number: Annotated[str, Field(strict=True)] = Field(description="Mobile phone number in E.164 format", alias="mobilePhoneNumber")
+ provider: StrictStr = Field(description="Mobile money provider")
+ beneficiary_document_id: Optional[StrictStr] = Field(default=None, description="Beneficiary document identification (may be required)", alias="beneficiaryDocumentId")
+ beneficiary_relationship: Optional[StrictStr] = Field(default=None, description="Relationship to beneficiary for AML purposes", alias="beneficiaryRelationship")
+ __properties: ClassVar[List[str]] = ["accountHolder", "mobilePhoneNumber", "provider", "beneficiaryDocumentId", "beneficiaryRelationship"]
+
+ @field_validator('mobile_phone_number')
+ def mobile_phone_number_validate_regular_expression(cls, value):
+ """Validates the regular expression"""
+ if not re.match(r"^\+[1-9]\d{1,14}$", value):
+ raise ValueError(r"must validate the regular expression /^\+[1-9]\d{1,14}$/")
+ return value
+
+ @field_validator('provider')
+ def provider_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['m-pesa', 'airtel', 'mtn', 'tigo', 'orange']):
+ raise ValueError("must be one of enum values ('m-pesa', 'airtel', 'mtn', 'tigo', 'orange')")
+ 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 MobileMoneyAddress 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 account_holder
+ if self.account_holder:
+ _dict['accountHolder'] = self.account_holder.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of MobileMoneyAddress from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "accountHolder": AccountHolderDetails.from_dict(obj["accountHolder"]) if obj.get("accountHolder") is not None else None,
+ "mobilePhoneNumber": obj.get("mobilePhoneNumber"),
+ "provider": obj.get("provider"),
+ "beneficiaryDocumentId": obj.get("beneficiaryDocumentId"),
+ "beneficiaryRelationship": obj.get("beneficiaryRelationship")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/mobile_money_destination.py b/fireblocks/models/mobile_money_destination.py
new file mode 100644
index 00000000..bef8a3a6
--- /dev/null
+++ b/fireblocks/models/mobile_money_destination.py
@@ -0,0 +1,101 @@
+# 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, StrictStr, field_validator
+from typing import Any, ClassVar, Dict, List
+from fireblocks.models.mobile_money_address import MobileMoneyAddress
+from typing import Optional, Set
+from typing_extensions import Self
+
+class MobileMoneyDestination(BaseModel):
+ """
+ MobileMoneyDestination
+ """ # noqa: E501
+ type: StrictStr
+ address: MobileMoneyAddress
+ __properties: ClassVar[List[str]] = ["type", "address"]
+
+ @field_validator('type')
+ def type_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['MOBILE_MONEY']):
+ raise ValueError("must be one of enum values ('MOBILE_MONEY')")
+ 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 MobileMoneyDestination 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 address
+ if self.address:
+ _dict['address'] = self.address.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of MobileMoneyDestination from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "type": obj.get("type"),
+ "address": MobileMoneyAddress.from_dict(obj["address"]) if obj.get("address") is not None else None
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/order_side.py b/fireblocks/models/order_side.py
new file mode 100644
index 00000000..be0cd3ac
--- /dev/null
+++ b/fireblocks/models/order_side.py
@@ -0,0 +1,39 @@
+# 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 json
+from enum import Enum
+from typing_extensions import Self
+
+
+class OrderSide(str, Enum):
+ """
+ Order side for trading operations
+ """
+
+ """
+ allowed enum values
+ """
+ BUY = 'BUY'
+ SELL = 'SELL'
+ ANY = 'ANY'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of OrderSide from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/fireblocks/models/order_status.py b/fireblocks/models/order_status.py
index ae6cff89..143517e4 100644
--- a/fireblocks/models/order_status.py
+++ b/fireblocks/models/order_status.py
@@ -28,6 +28,7 @@ class OrderStatus(str, Enum):
allowed enum values
"""
CREATED = 'CREATED'
+ AWAITING_PAYMENT = 'AWAITING_PAYMENT'
PENDING_USER_ACTION = 'PENDING_USER_ACTION'
PROCESSING = 'PROCESSING'
CANCELED = 'CANCELED'
diff --git a/fireblocks/models/payment_instructions.py b/fireblocks/models/payment_instructions.py
index 19fda89b..82b2cb59 100644
--- a/fireblocks/models/payment_instructions.py
+++ b/fireblocks/models/payment_instructions.py
@@ -19,8 +19,8 @@
import json
from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
-from typing import Any, ClassVar, Dict, List
-from fireblocks.models.account_holder_details import AccountHolderDetails
+from typing import Any, ClassVar, Dict, List, Optional
+from fireblocks.models.mobile_money_address import MobileMoneyAddress
from typing import Optional, Set
from typing_extensions import Self
@@ -29,15 +29,15 @@ class PaymentInstructions(BaseModel):
PaymentInstructions
""" # noqa: E501
type: StrictStr
- address: AccountHolderDetails
- reference_id: StrictStr = Field(alias="referenceId")
+ address: MobileMoneyAddress
+ reference_id: Optional[StrictStr] = Field(default=None, alias="referenceId")
__properties: ClassVar[List[str]] = ["type", "address", "referenceId"]
@field_validator('type')
def type_validate_enum(cls, value):
"""Validates the enum"""
- if value not in set(['IBAN', 'SWIFT', 'ACH', 'US_WIRE', 'SPEI', 'SEPA', 'PIX', 'LOCAL_BANK_TRANSFER_AFRICA', 'MOBILE_MONEY']):
- raise ValueError("must be one of enum values ('IBAN', 'SWIFT', 'ACH', 'US_WIRE', 'SPEI', 'SEPA', 'PIX', 'LOCAL_BANK_TRANSFER_AFRICA', 'MOBILE_MONEY')")
+ if value not in set(['MOBILE_MONEY']):
+ raise ValueError("must be one of enum values ('MOBILE_MONEY')")
return value
model_config = ConfigDict(
@@ -95,7 +95,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
_obj = cls.model_validate({
"type": obj.get("type"),
- "address": AccountHolderDetails.from_dict(obj["address"]) if obj.get("address") is not None else None,
+ "address": MobileMoneyAddress.from_dict(obj["address"]) if obj.get("address") is not None else None,
"referenceId": obj.get("referenceId")
})
return _obj
diff --git a/fireblocks/models/payment_instructions_details.py b/fireblocks/models/payment_instructions_details.py
new file mode 100644
index 00000000..f1b459b5
--- /dev/null
+++ b/fireblocks/models/payment_instructions_details.py
@@ -0,0 +1,88 @@
+# 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 typing import Optional, Set
+from typing_extensions import Self
+
+class PaymentInstructionsDetails(BaseModel):
+ """
+ PaymentInstructionsDetails
+ """ # noqa: E501
+ reference_id: Optional[StrictStr] = Field(default=None, alias="referenceId")
+ __properties: ClassVar[List[str]] = ["referenceId"]
+
+ 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 PaymentInstructionsDetails 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 PaymentInstructionsDetails from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "referenceId": obj.get("referenceId")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/pix_address.py b/fireblocks/models/pix_address.py
new file mode 100644
index 00000000..8ff551aa
--- /dev/null
+++ b/fireblocks/models/pix_address.py
@@ -0,0 +1,107 @@
+# 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.account_holder_details import AccountHolderDetails
+from typing import Optional, Set
+from typing_extensions import Self
+
+class PixAddress(BaseModel):
+ """
+ PixAddress
+ """ # noqa: E501
+ account_holder: AccountHolderDetails = Field(alias="accountHolder")
+ pix_key: StrictStr = Field(alias="pixKey")
+ key_type: StrictStr = Field(alias="keyType")
+ bank_name: Optional[StrictStr] = Field(default=None, alias="bankName")
+ bank_code: Optional[StrictStr] = Field(default=None, alias="bankCode")
+ __properties: ClassVar[List[str]] = ["accountHolder", "pixKey", "keyType", "bankName", "bankCode"]
+
+ @field_validator('key_type')
+ def key_type_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['cpf', 'cnpj', 'email', 'phone', 'random']):
+ raise ValueError("must be one of enum values ('cpf', 'cnpj', 'email', 'phone', 'random')")
+ 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 PixAddress 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 account_holder
+ if self.account_holder:
+ _dict['accountHolder'] = self.account_holder.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of PixAddress from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "accountHolder": AccountHolderDetails.from_dict(obj["accountHolder"]) if obj.get("accountHolder") is not None else None,
+ "pixKey": obj.get("pixKey"),
+ "keyType": obj.get("keyType"),
+ "bankName": obj.get("bankName"),
+ "bankCode": obj.get("bankCode")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/pix_destination.py b/fireblocks/models/pix_destination.py
new file mode 100644
index 00000000..c824eebe
--- /dev/null
+++ b/fireblocks/models/pix_destination.py
@@ -0,0 +1,101 @@
+# 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, StrictStr, field_validator
+from typing import Any, ClassVar, Dict, List
+from fireblocks.models.pix_address import PixAddress
+from typing import Optional, Set
+from typing_extensions import Self
+
+class PixDestination(BaseModel):
+ """
+ PixDestination
+ """ # noqa: E501
+ type: StrictStr
+ address: PixAddress
+ __properties: ClassVar[List[str]] = ["type", "address"]
+
+ @field_validator('type')
+ def type_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['PIX']):
+ raise ValueError("must be one of enum values ('PIX')")
+ 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 PixDestination 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 address
+ if self.address:
+ _dict['address'] = self.address.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of PixDestination from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "type": obj.get("type"),
+ "address": PixAddress.from_dict(obj["address"]) if obj.get("address") is not None else None
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/policy_currency.py b/fireblocks/models/policy_currency.py
new file mode 100644
index 00000000..aa1b9e0e
--- /dev/null
+++ b/fireblocks/models/policy_currency.py
@@ -0,0 +1,39 @@
+# 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 json
+from enum import Enum
+from typing_extensions import Self
+
+
+class PolicyCurrency(str, Enum):
+ """
+ Currency for the amount
+ """
+
+ """
+ allowed enum values
+ """
+ NATIVE = 'NATIVE'
+ USD = 'USD'
+ EUR = 'EUR'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of PolicyCurrency from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/fireblocks/models/policy_operator.py b/fireblocks/models/policy_operator.py
index 021b0dd2..e056dfa3 100644
--- a/fireblocks/models/policy_operator.py
+++ b/fireblocks/models/policy_operator.py
@@ -28,7 +28,6 @@ class PolicyOperator(str, Enum):
allowed enum values
"""
INCLUDES = 'INCLUDES'
- EXCLUDES = 'EXCLUDES'
@classmethod
def from_json(cls, json_str: str) -> Self:
diff --git a/fireblocks/models/policy_rule.py b/fireblocks/models/policy_rule.py
index 8f6f2457..c7243e70 100644
--- a/fireblocks/models/policy_rule.py
+++ b/fireblocks/models/policy_rule.py
@@ -21,16 +21,20 @@
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr, field_validator
from typing import Any, ClassVar, Dict, List, Optional, Union
from fireblocks.models.account_config import AccountConfig
+from fireblocks.models.amount_config import AmountConfig
from fireblocks.models.amount_over_time_config import AmountOverTimeConfig
from fireblocks.models.amount_range import AmountRange
from fireblocks.models.asset_config import AssetConfig
from fireblocks.models.contract_method_pattern import ContractMethodPattern
+from fireblocks.models.d_app_address_config import DAppAddressConfig
from fireblocks.models.derivation_path_config import DerivationPathConfig
from fireblocks.models.destination_config import DestinationConfig
from fireblocks.models.initiator_config_pattern import InitiatorConfigPattern
+from fireblocks.models.order_side import OrderSide
from fireblocks.models.policy_type import PolicyType
from fireblocks.models.program_call_config import ProgramCallConfig
from fireblocks.models.screening_metadata_config import ScreeningMetadataConfig
+from fireblocks.models.source_config import SourceConfig
from fireblocks.models.verdict_config import VerdictConfig
from typing import Optional, Set
from typing_extensions import Self
@@ -45,13 +49,14 @@ class PolicyRule(BaseModel):
type: PolicyType
sub_type: Optional[PolicyType] = Field(default=None, alias="subType")
initiator: InitiatorConfigPattern
- asset: AssetConfig
- source: AccountConfig
+ asset: Optional[AssetConfig] = None
+ source: SourceConfig
destination: Optional[DestinationConfig] = None
account: Optional[AccountConfig] = None
+ side: Optional[OrderSide] = None
verdict: VerdictConfig
amount_over_time: Optional[AmountOverTimeConfig] = Field(default=None, alias="amountOverTime")
- amount: Optional[AmountRange] = None
+ amount: Optional[AmountConfig] = None
external_descriptor: Optional[StrictStr] = Field(default=None, description="External descriptor for the rule", alias="externalDescriptor")
method: Optional[ContractMethodPattern] = None
is_global_policy: Optional[StrictBool] = Field(default=None, description="Whether this is a global policy", alias="isGlobalPolicy")
@@ -61,9 +66,10 @@ class PolicyRule(BaseModel):
base_asset: Optional[AssetConfig] = Field(default=None, alias="baseAsset")
quote_amount: Optional[AmountRange] = Field(default=None, alias="quoteAmount")
base_amount: Optional[AmountRange] = Field(default=None, alias="baseAmount")
+ d_app_address: Optional[DAppAddressConfig] = Field(default=None, alias="dAppAddress")
derivation_path: Optional[DerivationPathConfig] = Field(default=None, alias="derivationPath")
index: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Index for the policy rule")
- __properties: ClassVar[List[str]] = ["name", "id", "policyEngineVersion", "type", "subType", "initiator", "asset", "source", "destination", "account", "verdict", "amountOverTime", "amount", "externalDescriptor", "method", "isGlobalPolicy", "programCall", "screeningMetadata", "quoteAsset", "baseAsset", "quoteAmount", "baseAmount", "derivationPath", "index"]
+ __properties: ClassVar[List[str]] = ["name", "id", "policyEngineVersion", "type", "subType", "initiator", "asset", "source", "destination", "account", "side", "verdict", "amountOverTime", "amount", "externalDescriptor", "method", "isGlobalPolicy", "programCall", "screeningMetadata", "quoteAsset", "baseAsset", "quoteAmount", "baseAmount", "dAppAddress", "derivationPath", "index"]
@field_validator('policy_engine_version')
def policy_engine_version_validate_enum(cls, value):
@@ -156,6 +162,9 @@ def to_dict(self) -> Dict[str, Any]:
# override the default output from pydantic by calling `to_dict()` of base_amount
if self.base_amount:
_dict['baseAmount'] = self.base_amount.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of d_app_address
+ if self.d_app_address:
+ _dict['dAppAddress'] = self.d_app_address.to_dict()
# override the default output from pydantic by calling `to_dict()` of derivation_path
if self.derivation_path:
_dict['derivationPath'] = self.derivation_path.to_dict()
@@ -178,12 +187,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"subType": obj.get("subType"),
"initiator": InitiatorConfigPattern.from_dict(obj["initiator"]) if obj.get("initiator") is not None else None,
"asset": AssetConfig.from_dict(obj["asset"]) if obj.get("asset") is not None else None,
- "source": AccountConfig.from_dict(obj["source"]) if obj.get("source") is not None else None,
+ "source": SourceConfig.from_dict(obj["source"]) if obj.get("source") is not None else None,
"destination": DestinationConfig.from_dict(obj["destination"]) if obj.get("destination") is not None else None,
"account": AccountConfig.from_dict(obj["account"]) if obj.get("account") is not None else None,
+ "side": obj.get("side"),
"verdict": VerdictConfig.from_dict(obj["verdict"]) if obj.get("verdict") is not None else None,
"amountOverTime": AmountOverTimeConfig.from_dict(obj["amountOverTime"]) if obj.get("amountOverTime") is not None else None,
- "amount": AmountRange.from_dict(obj["amount"]) if obj.get("amount") is not None else None,
+ "amount": AmountConfig.from_dict(obj["amount"]) if obj.get("amount") is not None else None,
"externalDescriptor": obj.get("externalDescriptor"),
"method": ContractMethodPattern.from_dict(obj["method"]) if obj.get("method") is not None else None,
"isGlobalPolicy": obj.get("isGlobalPolicy"),
@@ -193,6 +203,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"baseAsset": AssetConfig.from_dict(obj["baseAsset"]) if obj.get("baseAsset") is not None else None,
"quoteAmount": AmountRange.from_dict(obj["quoteAmount"]) if obj.get("quoteAmount") is not None else None,
"baseAmount": AmountRange.from_dict(obj["baseAmount"]) if obj.get("baseAmount") is not None else None,
+ "dAppAddress": DAppAddressConfig.from_dict(obj["dAppAddress"]) if obj.get("dAppAddress") is not None else None,
"derivationPath": DerivationPathConfig.from_dict(obj["derivationPath"]) if obj.get("derivationPath") is not None else None,
"index": obj.get("index")
})
diff --git a/fireblocks/models/policy_tag.py b/fireblocks/models/policy_tag.py
new file mode 100644
index 00000000..b6283795
--- /dev/null
+++ b/fireblocks/models/policy_tag.py
@@ -0,0 +1,88 @@
+# 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
+from typing import Optional, Set
+from typing_extensions import Self
+
+class PolicyTag(BaseModel):
+ """
+ Policy tag for matching
+ """ # noqa: E501
+ id: StrictStr = Field(description="Tag identifier")
+ __properties: ClassVar[List[str]] = ["id"]
+
+ 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 PolicyTag 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 PolicyTag 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")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/policy_verdict_action_enum.py b/fireblocks/models/policy_verdict_action_enum.py
new file mode 100644
index 00000000..c2c4b5dc
--- /dev/null
+++ b/fireblocks/models/policy_verdict_action_enum.py
@@ -0,0 +1,46 @@
+# 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 json
+from enum import Enum
+from typing_extensions import Self
+
+
+class PolicyVerdictActionEnum(str, Enum):
+ """
+ Policy verdict action
+ """
+
+ """
+ allowed enum values
+ """
+ ALLOW = 'ALLOW'
+ BLOCK = 'BLOCK'
+ ENUM_2_MINUS_TIER = '2-TIER'
+ SCREEN = 'SCREEN'
+ ACCEPT = 'ACCEPT'
+ REJECT = 'REJECT'
+ ALERT = 'ALERT'
+ WAIT = 'WAIT'
+ FREEZE = 'FREEZE'
+ CANCEL = 'CANCEL'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of PolicyVerdictActionEnum from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/fireblocks/models/policy_verdict_action_enum2.py b/fireblocks/models/policy_verdict_action_enum2.py
new file mode 100644
index 00000000..ca7d5a99
--- /dev/null
+++ b/fireblocks/models/policy_verdict_action_enum2.py
@@ -0,0 +1,45 @@
+# 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 json
+from enum import Enum
+from typing_extensions import Self
+
+
+class PolicyVerdictActionEnum2(str, Enum):
+ """
+ Policy verdict action
+ """
+
+ """
+ allowed enum values
+ """
+ ALLOW = 'ALLOW'
+ BLOCK = 'BLOCK'
+ SCREEN = 'SCREEN'
+ ACCEPT = 'ACCEPT'
+ REJECT = 'REJECT'
+ ALERT = 'ALERT'
+ WAIT = 'WAIT'
+ FREEZE = 'FREEZE'
+ CANCEL = 'CANCEL'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of PolicyVerdictActionEnum2 from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/fireblocks/models/quote_execution_response_details.py b/fireblocks/models/quote_execution_response_details.py
index 83eccfe1..086c126e 100644
--- a/fireblocks/models/quote_execution_response_details.py
+++ b/fireblocks/models/quote_execution_response_details.py
@@ -28,23 +28,16 @@ class QuoteExecutionResponseDetails(BaseModel):
"""
QuoteExecutionResponseDetails
""" # noqa: E501
+ type: StrictStr = Field(description="Order type for quote orders")
+ quote_id: StrictStr = Field(description="Quote ID for quote orders", alias="quoteId")
+ quote_amount: StrictStr = Field(description="Quote amount for quote orders", alias="quoteAmount")
side: StrictStr = Field(description="Side of the order")
base_amount: StrictStr = Field(description="Amount to convert", alias="baseAmount")
base_asset_id: StrictStr = Field(description="Source asset identifier", alias="baseAssetId")
base_asset_rail: Optional[TransferRail] = Field(default=None, alias="baseAssetRail")
quote_asset_id: StrictStr = Field(description="Target asset identifier", alias="quoteAssetId")
quote_asset_rail: Optional[TransferRail] = Field(default=None, alias="quoteAssetRail")
- type: StrictStr = Field(description="Order type for quote orders")
- quote_id: StrictStr = Field(description="Quote ID for quote orders", alias="quoteId")
- quote_amount: StrictStr = Field(description="Quote amount for quote orders", alias="quoteAmount")
- __properties: ClassVar[List[str]] = ["side", "baseAmount", "baseAssetId", "baseAssetRail", "quoteAssetId", "quoteAssetRail", "type", "quoteId", "quoteAmount"]
-
- @field_validator('side')
- def side_validate_enum(cls, value):
- """Validates the enum"""
- if value not in set(['BUY', 'SELL']):
- raise ValueError("must be one of enum values ('BUY', 'SELL')")
- return value
+ __properties: ClassVar[List[str]] = ["type", "quoteId", "quoteAmount", "side", "baseAmount", "baseAssetId", "baseAssetRail", "quoteAssetId", "quoteAssetRail"]
@field_validator('type')
def type_validate_enum(cls, value):
@@ -53,6 +46,13 @@ def type_validate_enum(cls, value):
raise ValueError("must be one of enum values ('QUOTE')")
return value
+ @field_validator('side')
+ def side_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['BUY', 'SELL']):
+ raise ValueError("must be one of enum values ('BUY', 'SELL')")
+ return value
+
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
@@ -104,15 +104,15 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
return cls.model_validate(obj)
_obj = cls.model_validate({
+ "type": obj.get("type"),
+ "quoteId": obj.get("quoteId"),
+ "quoteAmount": obj.get("quoteAmount"),
"side": obj.get("side") if obj.get("side") is not None else 'BUY',
"baseAmount": obj.get("baseAmount"),
"baseAssetId": obj.get("baseAssetId"),
"baseAssetRail": obj.get("baseAssetRail"),
"quoteAssetId": obj.get("quoteAssetId"),
- "quoteAssetRail": obj.get("quoteAssetRail"),
- "type": obj.get("type"),
- "quoteId": obj.get("quoteId"),
- "quoteAmount": obj.get("quoteAmount")
+ "quoteAssetRail": obj.get("quoteAssetRail")
})
return _obj
diff --git a/fireblocks/models/quote_execution_type_details.py b/fireblocks/models/quote_execution_type_details.py
new file mode 100644
index 00000000..ac295f0d
--- /dev/null
+++ b/fireblocks/models/quote_execution_type_details.py
@@ -0,0 +1,99 @@
+# 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
+from typing import Optional, Set
+from typing_extensions import Self
+
+class QuoteExecutionTypeDetails(BaseModel):
+ """
+ QuoteExecutionTypeDetails
+ """ # noqa: E501
+ type: StrictStr = Field(description="Order type for quote orders")
+ quote_id: StrictStr = Field(description="Quote ID for quote orders", alias="quoteId")
+ quote_amount: StrictStr = Field(description="Quote amount for quote orders", alias="quoteAmount")
+ __properties: ClassVar[List[str]] = ["type", "quoteId", "quoteAmount"]
+
+ @field_validator('type')
+ def type_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['QUOTE']):
+ raise ValueError("must be one of enum values ('QUOTE')")
+ 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 QuoteExecutionTypeDetails 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 QuoteExecutionTypeDetails from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "type": obj.get("type"),
+ "quoteId": obj.get("quoteId"),
+ "quoteAmount": obj.get("quoteAmount")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/quote_execution_with_requote_request_details.py b/fireblocks/models/quote_execution_with_requote_request_details.py
index 45363304..f580ca92 100644
--- a/fireblocks/models/quote_execution_with_requote_request_details.py
+++ b/fireblocks/models/quote_execution_with_requote_request_details.py
@@ -20,7 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
from typing import Any, ClassVar, Dict, List, Optional
-from fireblocks.models.quote_execution_with_requote_request_details_all_of_re_quote import QuoteExecutionWithRequoteRequestDetailsAllOfReQuote
+from fireblocks.models.re_quote_details_re_quote import ReQuoteDetailsReQuote
from typing import Optional, Set
from typing_extensions import Self
@@ -30,7 +30,7 @@ class QuoteExecutionWithRequoteRequestDetails(BaseModel):
""" # noqa: E501
type: StrictStr = Field(description="Order type for quote orders")
quote_id: StrictStr = Field(description="Quote ID for quote orders", alias="quoteId")
- re_quote: Optional[QuoteExecutionWithRequoteRequestDetailsAllOfReQuote] = Field(default=None, alias="reQuote")
+ re_quote: Optional[ReQuoteDetailsReQuote] = Field(default=None, alias="reQuote")
__properties: ClassVar[List[str]] = ["type", "quoteId", "reQuote"]
@field_validator('type')
@@ -96,7 +96,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
_obj = cls.model_validate({
"type": obj.get("type"),
"quoteId": obj.get("quoteId"),
- "reQuote": QuoteExecutionWithRequoteRequestDetailsAllOfReQuote.from_dict(obj["reQuote"]) if obj.get("reQuote") is not None else None
+ "reQuote": ReQuoteDetailsReQuote.from_dict(obj["reQuote"]) if obj.get("reQuote") is not None else None
})
return _obj
diff --git a/fireblocks/models/quote_execution_with_requote_response_details.py b/fireblocks/models/quote_execution_with_requote_response_details.py
index 620c4f45..29f016ab 100644
--- a/fireblocks/models/quote_execution_with_requote_response_details.py
+++ b/fireblocks/models/quote_execution_with_requote_response_details.py
@@ -20,7 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
from typing import Any, ClassVar, Dict, List, Optional
-from fireblocks.models.quote_execution_with_requote_response_details_all_of_re_quote import QuoteExecutionWithRequoteResponseDetailsAllOfReQuote
+from fireblocks.models.re_quote_details_re_quote import ReQuoteDetailsReQuote
from fireblocks.models.transfer_rail import TransferRail
from typing import Optional, Set
from typing_extensions import Self
@@ -38,7 +38,7 @@ class QuoteExecutionWithRequoteResponseDetails(BaseModel):
base_asset_rail: Optional[TransferRail] = Field(default=None, alias="baseAssetRail")
quote_asset_id: StrictStr = Field(description="Target asset identifier", alias="quoteAssetId")
quote_asset_rail: Optional[TransferRail] = Field(default=None, alias="quoteAssetRail")
- re_quote: Optional[QuoteExecutionWithRequoteResponseDetailsAllOfReQuote] = Field(default=None, alias="reQuote")
+ re_quote: Optional[ReQuoteDetailsReQuote] = Field(default=None, alias="reQuote")
__properties: ClassVar[List[str]] = ["type", "quoteId", "quoteAmount", "side", "baseAmount", "baseAssetId", "baseAssetRail", "quoteAssetId", "quoteAssetRail", "reQuote"]
@field_validator('type')
@@ -118,7 +118,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"baseAssetRail": obj.get("baseAssetRail"),
"quoteAssetId": obj.get("quoteAssetId"),
"quoteAssetRail": obj.get("quoteAssetRail"),
- "reQuote": QuoteExecutionWithRequoteResponseDetailsAllOfReQuote.from_dict(obj["reQuote"]) if obj.get("reQuote") is not None else None
+ "reQuote": ReQuoteDetailsReQuote.from_dict(obj["reQuote"]) if obj.get("reQuote") is not None else None
})
return _obj
diff --git a/fireblocks/models/quote_execution_with_requote_response_details_all_of_re_quote.py b/fireblocks/models/quote_execution_with_requote_response_details_all_of_re_quote.py
deleted file mode 100644
index ef3bc213..00000000
--- a/fireblocks/models/quote_execution_with_requote_response_details_all_of_re_quote.py
+++ /dev/null
@@ -1,141 +0,0 @@
-# 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 json
-import pprint
-from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator
-from typing import Any, List, Optional
-from fireblocks.models.market_requote_request_details import MarketRequoteRequestDetails
-from fireblocks.models.retry_requote_request_details import RetryRequoteRequestDetails
-from pydantic import StrictStr, Field
-from typing import Union, List, Set, Optional, Dict
-from typing_extensions import Literal, Self
-
-QUOTEEXECUTIONWITHREQUOTERESPONSEDETAILSALLOFREQUOTE_ONE_OF_SCHEMAS = ["MarketRequoteRequestDetails", "RetryRequoteRequestDetails"]
-
-class QuoteExecutionWithRequoteResponseDetailsAllOfReQuote(BaseModel):
- """
- QuoteExecutionWithRequoteResponseDetailsAllOfReQuote
- """
- # data type: MarketRequoteRequestDetails
- oneof_schema_1_validator: Optional[MarketRequoteRequestDetails] = None
- # data type: RetryRequoteRequestDetails
- oneof_schema_2_validator: Optional[RetryRequoteRequestDetails] = None
- actual_instance: Optional[Union[MarketRequoteRequestDetails, RetryRequoteRequestDetails]] = None
- one_of_schemas: Set[str] = { "MarketRequoteRequestDetails", "RetryRequoteRequestDetails" }
-
- model_config = ConfigDict(
- validate_assignment=True,
- protected_namespaces=(),
- )
-
-
- discriminator_value_class_map: Dict[str, str] = {
- }
-
- def __init__(self, *args, **kwargs) -> None:
- if args:
- if len(args) > 1:
- raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`")
- if kwargs:
- raise ValueError("If a position argument is used, keyword arguments cannot be used.")
- super().__init__(actual_instance=args[0])
- else:
- super().__init__(**kwargs)
-
- @field_validator('actual_instance')
- def actual_instance_must_validate_oneof(cls, v):
- instance = QuoteExecutionWithRequoteResponseDetailsAllOfReQuote.model_construct()
- error_messages = []
- match = 0
- # validate data type: MarketRequoteRequestDetails
- if not isinstance(v, MarketRequoteRequestDetails):
- error_messages.append(f"Error! Input type `{type(v)}` is not `MarketRequoteRequestDetails`")
- else:
- match += 1
- # validate data type: RetryRequoteRequestDetails
- if not isinstance(v, RetryRequoteRequestDetails):
- error_messages.append(f"Error! Input type `{type(v)}` is not `RetryRequoteRequestDetails`")
- else:
- match += 1
- if match > 1:
- # more than 1 match
- raise ValueError("Multiple matches found when setting `actual_instance` in QuoteExecutionWithRequoteResponseDetailsAllOfReQuote with oneOf schemas: MarketRequoteRequestDetails, RetryRequoteRequestDetails. Details: " + ", ".join(error_messages))
- elif match == 0:
- # no match
- raise ValueError("No match found when setting `actual_instance` in QuoteExecutionWithRequoteResponseDetailsAllOfReQuote with oneOf schemas: MarketRequoteRequestDetails, RetryRequoteRequestDetails. Details: " + ", ".join(error_messages))
- else:
- return v
-
- @classmethod
- def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self:
- return cls.from_json(json.dumps(obj))
-
- @classmethod
- def from_json(cls, json_str: str) -> Self:
- """Returns the object represented by the json string"""
- instance = cls.model_construct()
- error_messages = []
- match = 0
-
- # deserialize data into MarketRequoteRequestDetails
- try:
- instance.actual_instance = MarketRequoteRequestDetails.from_json(json_str)
- match += 1
- except (ValidationError, ValueError) as e:
- error_messages.append(str(e))
- # deserialize data into RetryRequoteRequestDetails
- try:
- instance.actual_instance = RetryRequoteRequestDetails.from_json(json_str)
- match += 1
- except (ValidationError, ValueError) as e:
- error_messages.append(str(e))
-
- if match > 1:
- # more than 1 match
- raise ValueError("Multiple matches found when deserializing the JSON string into QuoteExecutionWithRequoteResponseDetailsAllOfReQuote with oneOf schemas: MarketRequoteRequestDetails, RetryRequoteRequestDetails. Details: " + ", ".join(error_messages))
- elif match == 0:
- # no match
- raise ValueError("No match found when deserializing the JSON string into QuoteExecutionWithRequoteResponseDetailsAllOfReQuote with oneOf schemas: MarketRequoteRequestDetails, RetryRequoteRequestDetails. Details: " + ", ".join(error_messages))
- else:
- return instance
-
- def to_json(self) -> str:
- """Returns the JSON representation of the actual instance"""
- if self.actual_instance is None:
- return "null"
-
- if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json):
- return self.actual_instance.to_json()
- else:
- return json.dumps(self.actual_instance)
-
- def to_dict(self) -> Optional[Union[Dict[str, Any], MarketRequoteRequestDetails, RetryRequoteRequestDetails]]:
- """Returns the dict representation of the actual instance"""
- if self.actual_instance is None:
- return None
-
- if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict):
- return self.actual_instance.to_dict()
- else:
- # primitive type
- return self.actual_instance
-
- def to_str(self) -> str:
- """Returns the string representation of the actual instance"""
- return pprint.pformat(self.model_dump())
-
-
diff --git a/fireblocks/models/quote_properties_details.py b/fireblocks/models/quote_properties_details.py
new file mode 100644
index 00000000..b1e5a446
--- /dev/null
+++ b/fireblocks/models/quote_properties_details.py
@@ -0,0 +1,144 @@
+# 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 fireblocks.models.access_type import AccessType
+from fireblocks.models.execution_step_details import ExecutionStepDetails
+from fireblocks.models.fee import Fee
+from typing import Optional, Set
+from typing_extensions import Self
+
+class QuotePropertiesDetails(BaseModel):
+ """
+ QuotePropertiesDetails
+ """ # noqa: E501
+ via: AccessType
+ id: StrictStr
+ type: StrictStr
+ quote_asset_id: StrictStr = Field(alias="quoteAssetId")
+ base_asset_id: StrictStr = Field(alias="baseAssetId")
+ base_amount: StrictStr = Field(alias="baseAmount")
+ quote_amount: StrictStr = Field(alias="quoteAmount")
+ price_impact: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="priceImpact")
+ quote_min_amount: Optional[StrictStr] = Field(default=None, alias="quoteMinAmount")
+ execution_steps: Optional[List[ExecutionStepDetails]] = Field(default=None, alias="executionSteps")
+ general_fees: Optional[List[Fee]] = Field(default=None, alias="generalFees")
+ side: StrictStr = Field(description="Side of the order")
+ __properties: ClassVar[List[str]] = ["via", "id", "type", "quoteAssetId", "baseAssetId", "baseAmount", "quoteAmount", "priceImpact", "quoteMinAmount", "executionSteps", "generalFees", "side"]
+
+ @field_validator('type')
+ def type_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['COMMITTED', 'INDICATIVE']):
+ raise ValueError("must be one of enum values ('COMMITTED', 'INDICATIVE')")
+ return value
+
+ @field_validator('side')
+ def side_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['BUY', 'SELL']):
+ raise ValueError("must be one of enum values ('BUY', 'SELL')")
+ 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 QuotePropertiesDetails 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 via
+ if self.via:
+ _dict['via'] = self.via.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of each item in execution_steps (list)
+ _items = []
+ if self.execution_steps:
+ for _item_execution_steps in self.execution_steps:
+ if _item_execution_steps:
+ _items.append(_item_execution_steps.to_dict())
+ _dict['executionSteps'] = _items
+ # override the default output from pydantic by calling `to_dict()` of each item in general_fees (list)
+ _items = []
+ if self.general_fees:
+ for _item_general_fees in self.general_fees:
+ if _item_general_fees:
+ _items.append(_item_general_fees.to_dict())
+ _dict['generalFees'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of QuotePropertiesDetails from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "via": AccessType.from_dict(obj["via"]) if obj.get("via") is not None else None,
+ "id": obj.get("id"),
+ "type": obj.get("type"),
+ "quoteAssetId": obj.get("quoteAssetId"),
+ "baseAssetId": obj.get("baseAssetId"),
+ "baseAmount": obj.get("baseAmount"),
+ "quoteAmount": obj.get("quoteAmount"),
+ "priceImpact": obj.get("priceImpact"),
+ "quoteMinAmount": obj.get("quoteMinAmount"),
+ "executionSteps": [ExecutionStepDetails.from_dict(_item) for _item in obj["executionSteps"]] if obj.get("executionSteps") is not None else None,
+ "generalFees": [Fee.from_dict(_item) for _item in obj["generalFees"]] if obj.get("generalFees") is not None else None,
+ "side": obj.get("side")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/re_quote_details.py b/fireblocks/models/re_quote_details.py
new file mode 100644
index 00000000..dfb2a835
--- /dev/null
+++ b/fireblocks/models/re_quote_details.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, Field
+from typing import Any, ClassVar, Dict, List, Optional
+from fireblocks.models.re_quote_details_re_quote import ReQuoteDetailsReQuote
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ReQuoteDetails(BaseModel):
+ """
+ ReQuoteDetails
+ """ # noqa: E501
+ re_quote: Optional[ReQuoteDetailsReQuote] = Field(default=None, alias="reQuote")
+ __properties: ClassVar[List[str]] = ["reQuote"]
+
+ 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 ReQuoteDetails 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 re_quote
+ if self.re_quote:
+ _dict['reQuote'] = self.re_quote.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ReQuoteDetails from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "reQuote": ReQuoteDetailsReQuote.from_dict(obj["reQuote"]) if obj.get("reQuote") is not None else None
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/quote_execution_with_requote_request_details_all_of_re_quote.py b/fireblocks/models/re_quote_details_re_quote.py
similarity index 81%
rename from fireblocks/models/quote_execution_with_requote_request_details_all_of_re_quote.py
rename to fireblocks/models/re_quote_details_re_quote.py
index b0c94f0f..1fb57666 100644
--- a/fireblocks/models/quote_execution_with_requote_request_details_all_of_re_quote.py
+++ b/fireblocks/models/re_quote_details_re_quote.py
@@ -24,11 +24,11 @@
from typing import Union, List, Set, Optional, Dict
from typing_extensions import Literal, Self
-QUOTEEXECUTIONWITHREQUOTEREQUESTDETAILSALLOFREQUOTE_ONE_OF_SCHEMAS = ["MarketRequoteRequestDetails", "RetryRequoteRequestDetails"]
+REQUOTEDETAILSREQUOTE_ONE_OF_SCHEMAS = ["MarketRequoteRequestDetails", "RetryRequoteRequestDetails"]
-class QuoteExecutionWithRequoteRequestDetailsAllOfReQuote(BaseModel):
+class ReQuoteDetailsReQuote(BaseModel):
"""
- QuoteExecutionWithRequoteRequestDetailsAllOfReQuote
+ ReQuoteDetailsReQuote
"""
# data type: MarketRequoteRequestDetails
oneof_schema_1_validator: Optional[MarketRequoteRequestDetails] = None
@@ -58,7 +58,7 @@ def __init__(self, *args, **kwargs) -> None:
@field_validator('actual_instance')
def actual_instance_must_validate_oneof(cls, v):
- instance = QuoteExecutionWithRequoteRequestDetailsAllOfReQuote.model_construct()
+ instance = ReQuoteDetailsReQuote.model_construct()
error_messages = []
match = 0
# validate data type: MarketRequoteRequestDetails
@@ -73,10 +73,10 @@ def actual_instance_must_validate_oneof(cls, v):
match += 1
if match > 1:
# more than 1 match
- raise ValueError("Multiple matches found when setting `actual_instance` in QuoteExecutionWithRequoteRequestDetailsAllOfReQuote with oneOf schemas: MarketRequoteRequestDetails, RetryRequoteRequestDetails. Details: " + ", ".join(error_messages))
+ raise ValueError("Multiple matches found when setting `actual_instance` in ReQuoteDetailsReQuote with oneOf schemas: MarketRequoteRequestDetails, RetryRequoteRequestDetails. Details: " + ", ".join(error_messages))
elif match == 0:
# no match
- raise ValueError("No match found when setting `actual_instance` in QuoteExecutionWithRequoteRequestDetailsAllOfReQuote with oneOf schemas: MarketRequoteRequestDetails, RetryRequoteRequestDetails. Details: " + ", ".join(error_messages))
+ raise ValueError("No match found when setting `actual_instance` in ReQuoteDetailsReQuote with oneOf schemas: MarketRequoteRequestDetails, RetryRequoteRequestDetails. Details: " + ", ".join(error_messages))
else:
return v
@@ -106,10 +106,10 @@ def from_json(cls, json_str: str) -> Self:
if match > 1:
# more than 1 match
- raise ValueError("Multiple matches found when deserializing the JSON string into QuoteExecutionWithRequoteRequestDetailsAllOfReQuote with oneOf schemas: MarketRequoteRequestDetails, RetryRequoteRequestDetails. Details: " + ", ".join(error_messages))
+ raise ValueError("Multiple matches found when deserializing the JSON string into ReQuoteDetailsReQuote with oneOf schemas: MarketRequoteRequestDetails, RetryRequoteRequestDetails. Details: " + ", ".join(error_messages))
elif match == 0:
# no match
- raise ValueError("No match found when deserializing the JSON string into QuoteExecutionWithRequoteRequestDetailsAllOfReQuote with oneOf schemas: MarketRequoteRequestDetails, RetryRequoteRequestDetails. Details: " + ", ".join(error_messages))
+ raise ValueError("No match found when deserializing the JSON string into ReQuoteDetailsReQuote with oneOf schemas: MarketRequoteRequestDetails, RetryRequoteRequestDetails. Details: " + ", ".join(error_messages))
else:
return instance
diff --git a/fireblocks/models/register_new_asset_request.py b/fireblocks/models/register_new_asset_request.py
index 45f6ae0f..62ebd1cc 100644
--- a/fireblocks/models/register_new_asset_request.py
+++ b/fireblocks/models/register_new_asset_request.py
@@ -28,7 +28,7 @@ class RegisterNewAssetRequest(BaseModel):
RegisterNewAssetRequest
""" # noqa: E501
blockchain_id: StrictStr = Field(description="Native asset ID of the blockchain", alias="blockchainId")
- address: StrictStr = Field(description="Asset address. - EVM-based chains: token contract address - Stellar (XLM): issuer address - Algorand (ALGO): asset ID - TRON (TRX): token contract address - NEAR: token address - Solana: token's mint account address ")
+ address: StrictStr = Field(description="Asset address. - EVM-based chains: token contract address - Stellar (XLM): issuer address - Algorand (ALGO): asset ID - TRON (TRX): token contract address - NEAR: token address - Solana: token's mint account address - Sui: token's type ")
symbol: Optional[StrictStr] = Field(default=None, description="Required for Stellar only, asset code is expected.")
__properties: ClassVar[List[str]] = ["blockchainId", "address", "symbol"]
diff --git a/fireblocks/models/retry_requote_request_details.py b/fireblocks/models/retry_requote_request_details.py
index 0775f792..f8313b30 100644
--- a/fireblocks/models/retry_requote_request_details.py
+++ b/fireblocks/models/retry_requote_request_details.py
@@ -30,7 +30,7 @@ class RetryRequoteRequestDetails(BaseModel):
""" # noqa: E501
type: StrictStr = Field(description="Indicates that the order should be re-quoted if the original quote is expired, trying to match the original quote.")
count: Union[Annotated[float, Field(le=10, strict=True, ge=1)], Annotated[int, Field(le=10, strict=True, ge=1)]] = Field(description="If quote is expired, how many times to re-generate new quotes to try having the order executed as in the original quote.")
- slippage_bps: Optional[Union[Annotated[float, Field(le=10000, strict=True, ge=1)], Annotated[int, Field(le=10000, strict=True, ge=1)]]] = Field(default=1, description="Slippage tolerance in basis points (bps) for quote orders - 1 is 0.01% and 10000 is 100%", alias="slippageBps")
+ slippage_bps: Optional[Union[Annotated[float, Field(le=10000, strict=True, ge=1)], Annotated[int, Field(le=10000, strict=True, ge=1)]]] = Field(default=None, description="Slippage tolerance in basis points (bps) for quote orders - 1 is 0.01% and 10000 is 100%", alias="slippageBps")
__properties: ClassVar[List[str]] = ["type", "count", "slippageBps"]
@field_validator('type')
@@ -93,7 +93,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
_obj = cls.model_validate({
"type": obj.get("type"),
"count": obj.get("count"),
- "slippageBps": obj.get("slippageBps") if obj.get("slippageBps") is not None else 1
+ "slippageBps": obj.get("slippageBps")
})
return _obj
diff --git a/fireblocks/models/screening_alert_exposure_type_enum.py b/fireblocks/models/screening_alert_exposure_type_enum.py
new file mode 100644
index 00000000..7f226049
--- /dev/null
+++ b/fireblocks/models/screening_alert_exposure_type_enum.py
@@ -0,0 +1,38 @@
+# 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 json
+from enum import Enum
+from typing_extensions import Self
+
+
+class ScreeningAlertExposureTypeEnum(str, Enum):
+ """
+ Alert exposure type
+ """
+
+ """
+ allowed enum values
+ """
+ DIRECT = 'DIRECT'
+ INDIRECT = 'INDIRECT'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of ScreeningAlertExposureTypeEnum from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/fireblocks/models/screening_aml_alert.py b/fireblocks/models/screening_aml_alert.py
new file mode 100644
index 00000000..292d0819
--- /dev/null
+++ b/fireblocks/models/screening_aml_alert.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
+from typing import Any, ClassVar, Dict, List, Optional, Union
+from fireblocks.models.alert_level_enum import AlertLevelEnum
+from fireblocks.models.screening_alert_exposure_type_enum import ScreeningAlertExposureTypeEnum
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ScreeningAmlAlert(BaseModel):
+ """
+ AML alert information
+ """ # noqa: E501
+ alert_level: AlertLevelEnum = Field(alias="alertLevel")
+ alert_name: Optional[StrictStr] = Field(default=None, description="Name or type of the alert", alias="alertName")
+ category: Optional[StrictStr] = Field(default=None, description="Alert category")
+ service: Optional[StrictStr] = Field(default=None, description="Service that generated the alert")
+ external_id: StrictStr = Field(description="External identifier for the alert", alias="externalId")
+ alert_amount: Union[StrictFloat, StrictInt] = Field(description="Amount associated with the alert", alias="alertAmount")
+ exposure_type: ScreeningAlertExposureTypeEnum = Field(alias="exposureType")
+ policy_action: Optional[StrictStr] = Field(default=None, description="Recommended action based on policy", alias="policyAction")
+ category_id: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Category identifier", alias="categoryId")
+ __properties: ClassVar[List[str]] = ["alertLevel", "alertName", "category", "service", "externalId", "alertAmount", "exposureType", "policyAction", "categoryId"]
+
+ 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 ScreeningAmlAlert 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 ScreeningAmlAlert from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "alertLevel": obj.get("alertLevel"),
+ "alertName": obj.get("alertName"),
+ "category": obj.get("category"),
+ "service": obj.get("service"),
+ "externalId": obj.get("externalId"),
+ "alertAmount": obj.get("alertAmount"),
+ "exposureType": obj.get("exposureType"),
+ "policyAction": obj.get("policyAction"),
+ "categoryId": obj.get("categoryId")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/screening_aml_matched_rule.py b/fireblocks/models/screening_aml_matched_rule.py
new file mode 100644
index 00000000..1940d37d
--- /dev/null
+++ b/fireblocks/models/screening_aml_matched_rule.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.policy_verdict_action_enum2 import PolicyVerdictActionEnum2
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ScreeningAmlMatchedRule(BaseModel):
+ """
+ AML matched rule information
+ """ # noqa: E501
+ rule_id: Optional[StrictStr] = Field(default=None, description="Identifier of the matched rule", alias="ruleId")
+ rule_name: Optional[StrictStr] = Field(default=None, description="Name of the matched rule", alias="ruleName")
+ action: Optional[PolicyVerdictActionEnum2] = None
+ __properties: ClassVar[List[str]] = ["ruleId", "ruleName", "action"]
+
+ 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 ScreeningAmlMatchedRule 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 ScreeningAmlMatchedRule from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "ruleId": obj.get("ruleId"),
+ "ruleName": obj.get("ruleName"),
+ "action": obj.get("action")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/screening_aml_result.py b/fireblocks/models/screening_aml_result.py
new file mode 100644
index 00000000..2f876340
--- /dev/null
+++ b/fireblocks/models/screening_aml_result.py
@@ -0,0 +1,109 @@
+# 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
+from typing import Any, ClassVar, Dict, List, Optional
+from fireblocks.models.screening_aml_alert import ScreeningAmlAlert
+from fireblocks.models.screening_aml_matched_rule import ScreeningAmlMatchedRule
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ScreeningAmlResult(BaseModel):
+ """
+ Detailed AML screening result information. Contains alerts, risk scores, and other AML-specific data from provider-specific responses.
+ """ # noqa: E501
+ alerts: Optional[List[ScreeningAmlAlert]] = Field(default=None, description="List of AML alerts triggered during screening")
+ provider_response: Optional[Dict[str, Any]] = Field(default=None, description="Complete response from the AML provider. This is a dynamic object that varies significantly between different AML providers (Chainalysis, Elliptic, etc.). Each provider has their own proprietary response format and schema. Examples of provider-specific structures: - Chainalysis: Contains cluster info, risk scores, sanctions data - Elliptic: Includes risk assessment, entity types, compliance flags The structure is provider-dependent and cannot be standardized as each vendor implements their own proprietary data models and response formats. ", alias="providerResponse")
+ matched_rule: Optional[ScreeningAmlMatchedRule] = Field(default=None, alias="matchedRule")
+ matched_alert: Optional[ScreeningAmlAlert] = Field(default=None, alias="matchedAlert")
+ __properties: ClassVar[List[str]] = ["alerts", "providerResponse", "matchedRule", "matchedAlert"]
+
+ 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 ScreeningAmlResult 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 alerts (list)
+ _items = []
+ if self.alerts:
+ for _item_alerts in self.alerts:
+ if _item_alerts:
+ _items.append(_item_alerts.to_dict())
+ _dict['alerts'] = _items
+ # override the default output from pydantic by calling `to_dict()` of matched_rule
+ if self.matched_rule:
+ _dict['matchedRule'] = self.matched_rule.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of matched_alert
+ if self.matched_alert:
+ _dict['matchedAlert'] = self.matched_alert.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ScreeningAmlResult from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "alerts": [ScreeningAmlAlert.from_dict(_item) for _item in obj["alerts"]] if obj.get("alerts") is not None else None,
+ "providerResponse": obj.get("providerResponse"),
+ "matchedRule": ScreeningAmlMatchedRule.from_dict(obj["matchedRule"]) if obj.get("matchedRule") is not None else None,
+ "matchedAlert": ScreeningAmlAlert.from_dict(obj["matchedAlert"]) if obj.get("matchedAlert") is not None else None
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/screening_metadata_config.py b/fireblocks/models/screening_metadata_config.py
index dd31093e..49f857dd 100644
--- a/fireblocks/models/screening_metadata_config.py
+++ b/fireblocks/models/screening_metadata_config.py
@@ -27,7 +27,7 @@ class ScreeningMetadataConfig(BaseModel):
"""
Screening metadata configuration
""" # noqa: E501
- direction: StrictStr = Field(description="Direction of transaction")
+ direction: Optional[StrictStr] = Field(default=None, description="Direction of transaction")
provider: Optional[StrictStr] = Field(default=None, description="Screening provider")
risk_rating: Optional[StrictStr] = Field(default=None, description="Risk rating threshold", alias="riskRating")
risk_score: Optional[StrictStr] = Field(default=None, description="Risk score threshold", alias="riskScore")
@@ -43,6 +43,9 @@ class ScreeningMetadataConfig(BaseModel):
@field_validator('direction')
def direction_validate_enum(cls, value):
"""Validates the enum"""
+ if value is None:
+ return value
+
if value not in set(['INBOUND', 'OUTBOUND', 'ANY']):
raise ValueError("must be one of enum values ('INBOUND', 'OUTBOUND', 'ANY')")
return value
diff --git a/fireblocks/models/screening_risk_level_enum.py b/fireblocks/models/screening_risk_level_enum.py
new file mode 100644
index 00000000..4e23c281
--- /dev/null
+++ b/fireblocks/models/screening_risk_level_enum.py
@@ -0,0 +1,42 @@
+# 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 json
+from enum import Enum
+from typing_extensions import Self
+
+
+class ScreeningRiskLevelEnum(str, Enum):
+ """
+ Risk level assessment for screening results. Possible values vary by provider and context.
+ """
+
+ """
+ allowed enum values
+ """
+ VERY_HIGH = 'VERY_HIGH'
+ SEVERE = 'SEVERE'
+ HIGH = 'HIGH'
+ MEDIUM = 'MEDIUM'
+ LOW = 'LOW'
+ UNKNOWN = 'UNKNOWN'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of ScreeningRiskLevelEnum from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/fireblocks/models/screening_tr_link_amount.py b/fireblocks/models/screening_tr_link_amount.py
new file mode 100644
index 00000000..edf70910
--- /dev/null
+++ b/fireblocks/models/screening_tr_link_amount.py
@@ -0,0 +1,104 @@
+# 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.amount_range_min_max import AmountRangeMinMax
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ScreeningTRLinkAmount(BaseModel):
+ """
+ TRLink amount definition with range and currency, compatible with TAP format from Policy Engine V2
+ """ # noqa: E501
+ range: Optional[AmountRangeMinMax] = None
+ currency: Optional[StrictStr] = Field(default=None, description="Currency type")
+ __properties: ClassVar[List[str]] = ["range", "currency"]
+
+ @field_validator('currency')
+ def currency_validate_enum(cls, value):
+ """Validates the enum"""
+ if value is None:
+ return value
+
+ if value not in set(['USD', 'NATIVE']):
+ raise ValueError("must be one of enum values ('USD', 'NATIVE')")
+ 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 ScreeningTRLinkAmount 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 range
+ if self.range:
+ _dict['range'] = self.range.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ScreeningTRLinkAmount from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "range": AmountRangeMinMax.from_dict(obj["range"]) if obj.get("range") is not None else None,
+ "currency": obj.get("currency")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/screening_tr_link_missing_trm_decision.py b/fireblocks/models/screening_tr_link_missing_trm_decision.py
new file mode 100644
index 00000000..c980ceac
--- /dev/null
+++ b/fireblocks/models/screening_tr_link_missing_trm_decision.py
@@ -0,0 +1,142 @@
+# 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 datetime import datetime
+from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional, Union
+from fireblocks.models.screening_tr_link_amount import ScreeningTRLinkAmount
+from fireblocks.models.tr_link_missing_trm_action_enum import TRLinkMissingTrmActionEnum
+from fireblocks.models.transaction_operation_enum import TransactionOperationEnum
+from fireblocks.models.transfer_peer_sub_type_enum import TransferPeerSubTypeEnum
+from fireblocks.models.transfer_peer_type_enum import TransferPeerTypeEnum
+from fireblocks.models.travel_rule_direction_enum import TravelRuleDirectionEnum
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ScreeningTRLinkMissingTrmDecision(BaseModel):
+ """
+ Interface for reporting missing TRM screening decisions in ITRLinkResult
+ """ # noqa: E501
+ customer_id: Optional[StrictStr] = Field(default=None, description="Reference to TrlinkCustomer.id", alias="customerId")
+ direction: Optional[TravelRuleDirectionEnum] = None
+ source_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="sourceType")
+ source_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="sourceSubType")
+ source_address: Optional[StrictStr] = Field(default=None, description="Source address", alias="sourceAddress")
+ dest_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="destType")
+ dest_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="destSubType")
+ dest_address: Optional[StrictStr] = Field(default=None, description="Destination address", alias="destAddress")
+ source_id: Optional[StrictStr] = Field(default=None, description="Source ID", alias="sourceId")
+ dest_id: Optional[StrictStr] = Field(default=None, description="Destination ID", alias="destId")
+ asset: Optional[StrictStr] = Field(default=None, description="Asset symbol")
+ base_asset: Optional[StrictStr] = Field(default=None, description="Base asset symbol", alias="baseAsset")
+ amount: Optional[ScreeningTRLinkAmount] = None
+ network_protocol: Optional[StrictStr] = Field(default=None, description="Network protocol", alias="networkProtocol")
+ operation: Optional[TransactionOperationEnum] = None
+ description: Optional[StrictStr] = Field(default=None, description="Rule description")
+ is_default: Optional[StrictBool] = Field(default=False, description="Whether this is a default rule", alias="isDefault")
+ valid_before: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Unix timestamp when rule expires", alias="validBefore")
+ valid_after: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Unix timestamp when rule becomes valid", alias="validAfter")
+ action: TRLinkMissingTrmActionEnum
+ source: StrictStr = Field(description="TRLink missing TRM source")
+ timestamp: Optional[datetime] = Field(default=None, description="Timestamp of the decision")
+ reason: Optional[StrictStr] = Field(default=None, description="Reason for the decision")
+ __properties: ClassVar[List[str]] = ["customerId", "direction", "sourceType", "sourceSubType", "sourceAddress", "destType", "destSubType", "destAddress", "sourceId", "destId", "asset", "baseAsset", "amount", "networkProtocol", "operation", "description", "isDefault", "validBefore", "validAfter", "action", "source", "timestamp", "reason"]
+
+ 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 ScreeningTRLinkMissingTrmDecision 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 amount
+ if self.amount:
+ _dict['amount'] = self.amount.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ScreeningTRLinkMissingTrmDecision from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "customerId": obj.get("customerId"),
+ "direction": obj.get("direction"),
+ "sourceType": obj.get("sourceType"),
+ "sourceSubType": obj.get("sourceSubType"),
+ "sourceAddress": obj.get("sourceAddress"),
+ "destType": obj.get("destType"),
+ "destSubType": obj.get("destSubType"),
+ "destAddress": obj.get("destAddress"),
+ "sourceId": obj.get("sourceId"),
+ "destId": obj.get("destId"),
+ "asset": obj.get("asset"),
+ "baseAsset": obj.get("baseAsset"),
+ "amount": ScreeningTRLinkAmount.from_dict(obj["amount"]) if obj.get("amount") is not None else None,
+ "networkProtocol": obj.get("networkProtocol"),
+ "operation": obj.get("operation"),
+ "description": obj.get("description"),
+ "isDefault": obj.get("isDefault") if obj.get("isDefault") is not None else False,
+ "validBefore": obj.get("validBefore"),
+ "validAfter": obj.get("validAfter"),
+ "action": obj.get("action"),
+ "source": obj.get("source"),
+ "timestamp": obj.get("timestamp"),
+ "reason": obj.get("reason")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/screening_tr_link_missing_trm_rule.py b/fireblocks/models/screening_tr_link_missing_trm_rule.py
new file mode 100644
index 00000000..14237b5d
--- /dev/null
+++ b/fireblocks/models/screening_tr_link_missing_trm_rule.py
@@ -0,0 +1,135 @@
+# 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, StrictBool, StrictFloat, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional, Union
+from fireblocks.models.screening_tr_link_amount import ScreeningTRLinkAmount
+from fireblocks.models.tr_link_missing_trm_action_enum import TRLinkMissingTrmActionEnum
+from fireblocks.models.transaction_operation_enum import TransactionOperationEnum
+from fireblocks.models.transfer_peer_sub_type_enum import TransferPeerSubTypeEnum
+from fireblocks.models.transfer_peer_type_enum import TransferPeerTypeEnum
+from fireblocks.models.travel_rule_direction_enum import TravelRuleDirectionEnum
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ScreeningTRLinkMissingTrmRule(BaseModel):
+ """
+ TRLink missing TRM rule definition
+ """ # noqa: E501
+ customer_id: Optional[StrictStr] = Field(default=None, description="Reference to TrlinkCustomer.id", alias="customerId")
+ direction: Optional[TravelRuleDirectionEnum] = None
+ source_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="sourceType")
+ source_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="sourceSubType")
+ source_address: Optional[StrictStr] = Field(default=None, description="Source address", alias="sourceAddress")
+ dest_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="destType")
+ dest_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="destSubType")
+ dest_address: Optional[StrictStr] = Field(default=None, description="Destination address", alias="destAddress")
+ source_id: Optional[StrictStr] = Field(default=None, description="Source ID", alias="sourceId")
+ dest_id: Optional[StrictStr] = Field(default=None, description="Destination ID", alias="destId")
+ asset: Optional[StrictStr] = Field(default=None, description="Asset symbol")
+ base_asset: Optional[StrictStr] = Field(default=None, description="Base asset symbol", alias="baseAsset")
+ amount: Optional[ScreeningTRLinkAmount] = None
+ network_protocol: Optional[StrictStr] = Field(default=None, description="Network protocol", alias="networkProtocol")
+ operation: Optional[TransactionOperationEnum] = None
+ description: Optional[StrictStr] = Field(default=None, description="Rule description")
+ is_default: Optional[StrictBool] = Field(default=False, description="Whether this is a default rule", alias="isDefault")
+ valid_before: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Unix timestamp when rule expires", alias="validBefore")
+ valid_after: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Unix timestamp when rule becomes valid", alias="validAfter")
+ action: TRLinkMissingTrmActionEnum
+ __properties: ClassVar[List[str]] = ["customerId", "direction", "sourceType", "sourceSubType", "sourceAddress", "destType", "destSubType", "destAddress", "sourceId", "destId", "asset", "baseAsset", "amount", "networkProtocol", "operation", "description", "isDefault", "validBefore", "validAfter", "action"]
+
+ 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 ScreeningTRLinkMissingTrmRule 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 amount
+ if self.amount:
+ _dict['amount'] = self.amount.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ScreeningTRLinkMissingTrmRule from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "customerId": obj.get("customerId"),
+ "direction": obj.get("direction"),
+ "sourceType": obj.get("sourceType"),
+ "sourceSubType": obj.get("sourceSubType"),
+ "sourceAddress": obj.get("sourceAddress"),
+ "destType": obj.get("destType"),
+ "destSubType": obj.get("destSubType"),
+ "destAddress": obj.get("destAddress"),
+ "sourceId": obj.get("sourceId"),
+ "destId": obj.get("destId"),
+ "asset": obj.get("asset"),
+ "baseAsset": obj.get("baseAsset"),
+ "amount": ScreeningTRLinkAmount.from_dict(obj["amount"]) if obj.get("amount") is not None else None,
+ "networkProtocol": obj.get("networkProtocol"),
+ "operation": obj.get("operation"),
+ "description": obj.get("description"),
+ "isDefault": obj.get("isDefault") if obj.get("isDefault") is not None else False,
+ "validBefore": obj.get("validBefore"),
+ "validAfter": obj.get("validAfter"),
+ "action": obj.get("action")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/screening_tr_link_post_screening_rule.py b/fireblocks/models/screening_tr_link_post_screening_rule.py
new file mode 100644
index 00000000..c6b1e1fe
--- /dev/null
+++ b/fireblocks/models/screening_tr_link_post_screening_rule.py
@@ -0,0 +1,140 @@
+# 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, StrictBool, StrictFloat, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional, Union
+from fireblocks.models.screening_tr_link_amount import ScreeningTRLinkAmount
+from fireblocks.models.tr_link_trm_screening_status_enum import TRLinkTrmScreeningStatusEnum
+from fireblocks.models.tr_link_verdict_enum import TRLinkVerdictEnum
+from fireblocks.models.transaction_operation_enum import TransactionOperationEnum
+from fireblocks.models.transfer_peer_sub_type_enum import TransferPeerSubTypeEnum
+from fireblocks.models.transfer_peer_type_enum import TransferPeerTypeEnum
+from fireblocks.models.travel_rule_direction_enum import TravelRuleDirectionEnum
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ScreeningTRLinkPostScreeningRule(BaseModel):
+ """
+ TRLink post-screening rule definition
+ """ # noqa: E501
+ customer_id: Optional[StrictStr] = Field(default=None, description="Reference to TrlinkCustomer.id", alias="customerId")
+ direction: Optional[TravelRuleDirectionEnum] = None
+ source_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="sourceType")
+ source_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="sourceSubType")
+ source_address: Optional[StrictStr] = Field(default=None, description="Source address", alias="sourceAddress")
+ dest_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="destType")
+ dest_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="destSubType")
+ dest_address: Optional[StrictStr] = Field(default=None, description="Destination address", alias="destAddress")
+ source_id: Optional[StrictStr] = Field(default=None, description="Source ID", alias="sourceId")
+ dest_id: Optional[StrictStr] = Field(default=None, description="Destination ID", alias="destId")
+ asset: Optional[StrictStr] = Field(default=None, description="Asset symbol")
+ base_asset: Optional[StrictStr] = Field(default=None, description="Base asset symbol", alias="baseAsset")
+ amount: Optional[ScreeningTRLinkAmount] = None
+ network_protocol: Optional[StrictStr] = Field(default=None, description="Network protocol", alias="networkProtocol")
+ operation: Optional[TransactionOperationEnum] = None
+ description: Optional[StrictStr] = Field(default=None, description="Rule description")
+ is_default: Optional[StrictBool] = Field(default=False, description="Whether this is a default rule", alias="isDefault")
+ provider_ident: Optional[StrictStr] = Field(default=None, description="Provider identifier", alias="providerIdent")
+ trm_status: Optional[TRLinkTrmScreeningStatusEnum] = Field(default=None, alias="trmStatus")
+ valid_before: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Unix timestamp when rule expires", alias="validBefore")
+ valid_after: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Unix timestamp when rule becomes valid", alias="validAfter")
+ action: TRLinkVerdictEnum
+ __properties: ClassVar[List[str]] = ["customerId", "direction", "sourceType", "sourceSubType", "sourceAddress", "destType", "destSubType", "destAddress", "sourceId", "destId", "asset", "baseAsset", "amount", "networkProtocol", "operation", "description", "isDefault", "providerIdent", "trmStatus", "validBefore", "validAfter", "action"]
+
+ 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 ScreeningTRLinkPostScreeningRule 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 amount
+ if self.amount:
+ _dict['amount'] = self.amount.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ScreeningTRLinkPostScreeningRule from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "customerId": obj.get("customerId"),
+ "direction": obj.get("direction"),
+ "sourceType": obj.get("sourceType"),
+ "sourceSubType": obj.get("sourceSubType"),
+ "sourceAddress": obj.get("sourceAddress"),
+ "destType": obj.get("destType"),
+ "destSubType": obj.get("destSubType"),
+ "destAddress": obj.get("destAddress"),
+ "sourceId": obj.get("sourceId"),
+ "destId": obj.get("destId"),
+ "asset": obj.get("asset"),
+ "baseAsset": obj.get("baseAsset"),
+ "amount": ScreeningTRLinkAmount.from_dict(obj["amount"]) if obj.get("amount") is not None else None,
+ "networkProtocol": obj.get("networkProtocol"),
+ "operation": obj.get("operation"),
+ "description": obj.get("description"),
+ "isDefault": obj.get("isDefault") if obj.get("isDefault") is not None else False,
+ "providerIdent": obj.get("providerIdent"),
+ "trmStatus": obj.get("trmStatus"),
+ "validBefore": obj.get("validBefore"),
+ "validAfter": obj.get("validAfter"),
+ "action": obj.get("action")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/screening_tr_link_prescreening_rule.py b/fireblocks/models/screening_tr_link_prescreening_rule.py
new file mode 100644
index 00000000..6c4ebde6
--- /dev/null
+++ b/fireblocks/models/screening_tr_link_prescreening_rule.py
@@ -0,0 +1,131 @@
+# 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, StrictBool, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from fireblocks.models.screening_tr_link_amount import ScreeningTRLinkAmount
+from fireblocks.models.tr_link_pre_screening_action_enum import TRLinkPreScreeningActionEnum
+from fireblocks.models.transaction_operation_enum import TransactionOperationEnum
+from fireblocks.models.transfer_peer_sub_type_enum import TransferPeerSubTypeEnum
+from fireblocks.models.transfer_peer_type_enum import TransferPeerTypeEnum
+from fireblocks.models.travel_rule_direction_enum import TravelRuleDirectionEnum
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ScreeningTRLinkPrescreeningRule(BaseModel):
+ """
+ TRLink pre-screening rule definition
+ """ # noqa: E501
+ customer_id: Optional[StrictStr] = Field(default=None, description="Reference to TrlinkCustomer.id", alias="customerId")
+ direction: Optional[TravelRuleDirectionEnum] = None
+ source_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="sourceType")
+ source_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="sourceSubType")
+ source_address: Optional[StrictStr] = Field(default=None, description="Source address", alias="sourceAddress")
+ dest_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="destType")
+ dest_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="destSubType")
+ dest_address: Optional[StrictStr] = Field(default=None, description="Destination address", alias="destAddress")
+ source_id: Optional[StrictStr] = Field(default=None, description="Source ID", alias="sourceId")
+ dest_id: Optional[StrictStr] = Field(default=None, description="Destination ID", alias="destId")
+ asset: Optional[StrictStr] = Field(default=None, description="Asset symbol")
+ base_asset: Optional[StrictStr] = Field(default=None, description="Base asset symbol", alias="baseAsset")
+ amount: Optional[ScreeningTRLinkAmount] = None
+ network_protocol: Optional[StrictStr] = Field(default=None, description="Network protocol", alias="networkProtocol")
+ operation: Optional[TransactionOperationEnum] = None
+ description: Optional[StrictStr] = Field(default=None, description="Rule description")
+ is_default: Optional[StrictBool] = Field(default=False, description="Whether this is a default rule", alias="isDefault")
+ action: TRLinkPreScreeningActionEnum
+ __properties: ClassVar[List[str]] = ["customerId", "direction", "sourceType", "sourceSubType", "sourceAddress", "destType", "destSubType", "destAddress", "sourceId", "destId", "asset", "baseAsset", "amount", "networkProtocol", "operation", "description", "isDefault", "action"]
+
+ 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 ScreeningTRLinkPrescreeningRule 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 amount
+ if self.amount:
+ _dict['amount'] = self.amount.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ScreeningTRLinkPrescreeningRule from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "customerId": obj.get("customerId"),
+ "direction": obj.get("direction"),
+ "sourceType": obj.get("sourceType"),
+ "sourceSubType": obj.get("sourceSubType"),
+ "sourceAddress": obj.get("sourceAddress"),
+ "destType": obj.get("destType"),
+ "destSubType": obj.get("destSubType"),
+ "destAddress": obj.get("destAddress"),
+ "sourceId": obj.get("sourceId"),
+ "destId": obj.get("destId"),
+ "asset": obj.get("asset"),
+ "baseAsset": obj.get("baseAsset"),
+ "amount": ScreeningTRLinkAmount.from_dict(obj["amount"]) if obj.get("amount") is not None else None,
+ "networkProtocol": obj.get("networkProtocol"),
+ "operation": obj.get("operation"),
+ "description": obj.get("description"),
+ "isDefault": obj.get("isDefault") if obj.get("isDefault") is not None else False,
+ "action": obj.get("action")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/screening_tr_link_rule_base.py b/fireblocks/models/screening_tr_link_rule_base.py
new file mode 100644
index 00000000..fb7a45b0
--- /dev/null
+++ b/fireblocks/models/screening_tr_link_rule_base.py
@@ -0,0 +1,128 @@
+# 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, StrictBool, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from fireblocks.models.screening_tr_link_amount import ScreeningTRLinkAmount
+from fireblocks.models.transaction_operation_enum import TransactionOperationEnum
+from fireblocks.models.transfer_peer_sub_type_enum import TransferPeerSubTypeEnum
+from fireblocks.models.transfer_peer_type_enum import TransferPeerTypeEnum
+from fireblocks.models.travel_rule_direction_enum import TravelRuleDirectionEnum
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ScreeningTRLinkRuleBase(BaseModel):
+ """
+ Base interface for TRLink policy rules
+ """ # noqa: E501
+ customer_id: Optional[StrictStr] = Field(default=None, description="Reference to TrlinkCustomer.id", alias="customerId")
+ direction: Optional[TravelRuleDirectionEnum] = None
+ source_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="sourceType")
+ source_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="sourceSubType")
+ source_address: Optional[StrictStr] = Field(default=None, description="Source address", alias="sourceAddress")
+ dest_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="destType")
+ dest_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="destSubType")
+ dest_address: Optional[StrictStr] = Field(default=None, description="Destination address", alias="destAddress")
+ source_id: Optional[StrictStr] = Field(default=None, description="Source ID", alias="sourceId")
+ dest_id: Optional[StrictStr] = Field(default=None, description="Destination ID", alias="destId")
+ asset: Optional[StrictStr] = Field(default=None, description="Asset symbol")
+ base_asset: Optional[StrictStr] = Field(default=None, description="Base asset symbol", alias="baseAsset")
+ amount: Optional[ScreeningTRLinkAmount] = None
+ network_protocol: Optional[StrictStr] = Field(default=None, description="Network protocol", alias="networkProtocol")
+ operation: Optional[TransactionOperationEnum] = None
+ description: Optional[StrictStr] = Field(default=None, description="Rule description")
+ is_default: Optional[StrictBool] = Field(default=False, description="Whether this is a default rule", alias="isDefault")
+ __properties: ClassVar[List[str]] = ["customerId", "direction", "sourceType", "sourceSubType", "sourceAddress", "destType", "destSubType", "destAddress", "sourceId", "destId", "asset", "baseAsset", "amount", "networkProtocol", "operation", "description", "isDefault"]
+
+ 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 ScreeningTRLinkRuleBase 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 amount
+ if self.amount:
+ _dict['amount'] = self.amount.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ScreeningTRLinkRuleBase from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "customerId": obj.get("customerId"),
+ "direction": obj.get("direction"),
+ "sourceType": obj.get("sourceType"),
+ "sourceSubType": obj.get("sourceSubType"),
+ "sourceAddress": obj.get("sourceAddress"),
+ "destType": obj.get("destType"),
+ "destSubType": obj.get("destSubType"),
+ "destAddress": obj.get("destAddress"),
+ "sourceId": obj.get("sourceId"),
+ "destId": obj.get("destId"),
+ "asset": obj.get("asset"),
+ "baseAsset": obj.get("baseAsset"),
+ "amount": ScreeningTRLinkAmount.from_dict(obj["amount"]) if obj.get("amount") is not None else None,
+ "networkProtocol": obj.get("networkProtocol"),
+ "operation": obj.get("operation"),
+ "description": obj.get("description"),
+ "isDefault": obj.get("isDefault") if obj.get("isDefault") is not None else False
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/screening_travel_rule_matched_rule.py b/fireblocks/models/screening_travel_rule_matched_rule.py
new file mode 100644
index 00000000..989c6422
--- /dev/null
+++ b/fireblocks/models/screening_travel_rule_matched_rule.py
@@ -0,0 +1,101 @@
+# 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
+from typing import Any, ClassVar, Dict, List, Optional, Union
+from fireblocks.models.travel_rule_direction_enum import TravelRuleDirectionEnum
+from fireblocks.models.travel_rule_status_enum import TravelRuleStatusEnum
+from fireblocks.models.travel_rule_verdict_enum import TravelRuleVerdictEnum
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ScreeningTravelRuleMatchedRule(BaseModel):
+ """
+ The travel rule configuration that was matched
+ """ # noqa: E501
+ direction: Optional[TravelRuleDirectionEnum] = None
+ status: Optional[TravelRuleStatusEnum] = None
+ amount_usd: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Amount in USD", alias="amountUSD")
+ amount: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Amount in base currency")
+ asset: Optional[StrictStr] = Field(default=None, description="Asset identifier")
+ action: Optional[TravelRuleVerdictEnum] = None
+ __properties: ClassVar[List[str]] = ["direction", "status", "amountUSD", "amount", "asset", "action"]
+
+ 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 ScreeningTravelRuleMatchedRule 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 ScreeningTravelRuleMatchedRule from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "direction": obj.get("direction"),
+ "status": obj.get("status"),
+ "amountUSD": obj.get("amountUSD"),
+ "amount": obj.get("amount"),
+ "asset": obj.get("asset"),
+ "action": obj.get("action")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/screening_travel_rule_prescreening_rule.py b/fireblocks/models/screening_travel_rule_prescreening_rule.py
new file mode 100644
index 00000000..aab46c22
--- /dev/null
+++ b/fireblocks/models/screening_travel_rule_prescreening_rule.py
@@ -0,0 +1,124 @@
+# 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
+from typing import Any, ClassVar, Dict, List, Optional, Union
+from fireblocks.models.transaction_operation_enum import TransactionOperationEnum
+from fireblocks.models.transfer_peer_sub_type_enum import TransferPeerSubTypeEnum
+from fireblocks.models.transfer_peer_type_enum import TransferPeerTypeEnum
+from fireblocks.models.travel_rule_action_enum import TravelRuleActionEnum
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ScreeningTravelRulePrescreeningRule(BaseModel):
+ """
+ Matched prescreening rule details. Prescreening rules are evaluated before the main screening to determine if screening is necessary or should be bypassed.
+ """ # noqa: E501
+ bypass_reason: Optional[StrictStr] = Field(default=None, description="Reason for bypass if prescreening rule triggered a bypass", alias="bypassReason")
+ source_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="sourceType")
+ source_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="sourceSubType")
+ dest_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="destType")
+ dest_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="destSubType")
+ transfer_peer_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="transferPeerType")
+ transfer_peer_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="transferPeerSubType")
+ dest_address: Optional[StrictStr] = Field(default=None, description="Destination address", alias="destAddress")
+ source_id: Optional[StrictStr] = Field(default=None, description="Source ID", alias="sourceId")
+ dest_id: Optional[StrictStr] = Field(default=None, description="Destination ID", alias="destId")
+ asset: Optional[StrictStr] = Field(default=None, description="Asset identifier")
+ base_asset: Optional[StrictStr] = Field(default=None, description="Base asset", alias="baseAsset")
+ amount: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Amount")
+ amount_usd: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Amount in USD", alias="amountUSD")
+ network_protocol: Optional[StrictStr] = Field(default=None, description="Network protocol", alias="networkProtocol")
+ operation: Optional[TransactionOperationEnum] = None
+ action: Optional[TravelRuleActionEnum] = None
+ __properties: ClassVar[List[str]] = ["bypassReason", "sourceType", "sourceSubType", "destType", "destSubType", "transferPeerType", "transferPeerSubType", "destAddress", "sourceId", "destId", "asset", "baseAsset", "amount", "amountUSD", "networkProtocol", "operation", "action"]
+
+ 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 ScreeningTravelRulePrescreeningRule 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 ScreeningTravelRulePrescreeningRule from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "bypassReason": obj.get("bypassReason"),
+ "sourceType": obj.get("sourceType"),
+ "sourceSubType": obj.get("sourceSubType"),
+ "destType": obj.get("destType"),
+ "destSubType": obj.get("destSubType"),
+ "transferPeerType": obj.get("transferPeerType"),
+ "transferPeerSubType": obj.get("transferPeerSubType"),
+ "destAddress": obj.get("destAddress"),
+ "sourceId": obj.get("sourceId"),
+ "destId": obj.get("destId"),
+ "asset": obj.get("asset"),
+ "baseAsset": obj.get("baseAsset"),
+ "amount": obj.get("amount"),
+ "amountUSD": obj.get("amountUSD"),
+ "networkProtocol": obj.get("networkProtocol"),
+ "operation": obj.get("operation"),
+ "action": obj.get("action")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/screening_travel_rule_result.py b/fireblocks/models/screening_travel_rule_result.py
new file mode 100644
index 00000000..eb027b7c
--- /dev/null
+++ b/fireblocks/models/screening_travel_rule_result.py
@@ -0,0 +1,102 @@
+# 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, StrictBool
+from typing import Any, ClassVar, Dict, List, Optional
+from fireblocks.models.screening_travel_rule_matched_rule import ScreeningTravelRuleMatchedRule
+from fireblocks.models.travel_rule_direction_enum import TravelRuleDirectionEnum
+from fireblocks.models.travel_rule_verdict_enum import TravelRuleVerdictEnum
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ScreeningTravelRuleResult(BaseModel):
+ """
+ Detailed Travel Rule screening result containing provider-specific data. Contains Travel Rule specific information like verified status, rule type, and actions.
+ """ # noqa: E501
+ direction: Optional[TravelRuleDirectionEnum] = None
+ is_verified: Optional[StrictBool] = Field(default=None, description="Whether the travel rule information was verified", alias="isVerified")
+ action: Optional[TravelRuleVerdictEnum] = None
+ provider_response: Optional[Dict[str, Any]] = Field(default=None, description="Complete response from the travel rule provider. This is a dynamic object that varies significantly between different travel rule providers (NOTABENE etc.). Each provider has their own proprietary response format and schema. Examples of provider-specific structures: - NOTABENE: Contains VASP information, PII data, protocol-specific fields The structure is provider-dependent and cannot be standardized as each vendor implements their own proprietary data models and response formats. ", alias="providerResponse")
+ matched_rule: Optional[ScreeningTravelRuleMatchedRule] = Field(default=None, alias="matchedRule")
+ __properties: ClassVar[List[str]] = ["direction", "isVerified", "action", "providerResponse", "matchedRule"]
+
+ 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 ScreeningTravelRuleResult 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 matched_rule
+ if self.matched_rule:
+ _dict['matchedRule'] = self.matched_rule.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ScreeningTravelRuleResult from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "direction": obj.get("direction"),
+ "isVerified": obj.get("isVerified"),
+ "action": obj.get("action"),
+ "providerResponse": obj.get("providerResponse"),
+ "matchedRule": ScreeningTravelRuleMatchedRule.from_dict(obj["matchedRule"]) if obj.get("matchedRule") is not None else None
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/screening_verdict_enum.py b/fireblocks/models/screening_verdict_enum.py
new file mode 100644
index 00000000..fe75c455
--- /dev/null
+++ b/fireblocks/models/screening_verdict_enum.py
@@ -0,0 +1,44 @@
+# 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 json
+from enum import Enum
+from typing_extensions import Self
+
+
+class ScreeningVerdictEnum(str, Enum):
+ """
+ The final verdict of the screening (unified for AML, Travel Rule, and TRLink). Different providers may return different verdict values: - AML: PASS, FAIL, ALERT - Travel Rule: PASS, FAIL, TRAVEL_RULE_REQUIRED - TRLink: PASS, REJECT, WARN
+ """
+
+ """
+ allowed enum values
+ """
+ PASS = 'PASS'
+ FAIL = 'FAIL'
+ ALERT = 'ALERT'
+ REJECT = 'REJECT'
+ WARN = 'WARN'
+ TRAVEL_RULE_REQUIRED = 'TRAVEL_RULE_REQUIRED'
+ ACCEPT = 'ACCEPT'
+ REVIEW = 'REVIEW'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of ScreeningVerdictEnum from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/fireblocks/models/sepa_address.py b/fireblocks/models/sepa_address.py
new file mode 100644
index 00000000..3dc907be
--- /dev/null
+++ b/fireblocks/models/sepa_address.py
@@ -0,0 +1,114 @@
+# 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 typing_extensions import Annotated
+from fireblocks.models.account_holder_details import AccountHolderDetails
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SEPAAddress(BaseModel):
+ """
+ SEPAAddress
+ """ # noqa: E501
+ account_holder: AccountHolderDetails = Field(alias="accountHolder")
+ iban: Annotated[str, Field(strict=True)]
+ bic: Optional[StrictStr] = Field(default=None, description="Bank Identifier Code (SWIFT/BIC)")
+ bank_name: Optional[StrictStr] = Field(default=None, alias="bankName")
+ bank_branch: Optional[StrictStr] = Field(default=None, alias="bankBranch")
+ bank_address: Optional[StrictStr] = Field(default=None, alias="bankAddress")
+ purpose_code: Optional[StrictStr] = Field(default=None, description="ISO purpose code for the transfer", alias="purposeCode")
+ tax_id: Optional[StrictStr] = Field(default=None, description="Beneficiary tax identification number", alias="taxId")
+ __properties: ClassVar[List[str]] = ["accountHolder", "iban", "bic", "bankName", "bankBranch", "bankAddress", "purposeCode", "taxId"]
+
+ @field_validator('iban')
+ def iban_validate_regular_expression(cls, value):
+ """Validates the regular expression"""
+ if not re.match(r"^[A-Z]{2}\d{2}[a-zA-Z0-9]{1,30}$", value):
+ raise ValueError(r"must validate the regular expression /^[A-Z]{2}\d{2}[a-zA-Z0-9]{1,30}$/")
+ 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 SEPAAddress 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 account_holder
+ if self.account_holder:
+ _dict['accountHolder'] = self.account_holder.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of SEPAAddress from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "accountHolder": AccountHolderDetails.from_dict(obj["accountHolder"]) if obj.get("accountHolder") is not None else None,
+ "iban": obj.get("iban"),
+ "bic": obj.get("bic"),
+ "bankName": obj.get("bankName"),
+ "bankBranch": obj.get("bankBranch"),
+ "bankAddress": obj.get("bankAddress"),
+ "purposeCode": obj.get("purposeCode"),
+ "taxId": obj.get("taxId")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/sepa_destination.py b/fireblocks/models/sepa_destination.py
new file mode 100644
index 00000000..c200c675
--- /dev/null
+++ b/fireblocks/models/sepa_destination.py
@@ -0,0 +1,101 @@
+# 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, StrictStr, field_validator
+from typing import Any, ClassVar, Dict, List
+from fireblocks.models.sepa_address import SEPAAddress
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SEPADestination(BaseModel):
+ """
+ SEPADestination
+ """ # noqa: E501
+ type: StrictStr
+ address: SEPAAddress
+ __properties: ClassVar[List[str]] = ["type", "address"]
+
+ @field_validator('type')
+ def type_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['SEPA']):
+ raise ValueError("must be one of enum values ('SEPA')")
+ 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 SEPADestination 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 address
+ if self.address:
+ _dict['address'] = self.address.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of SEPADestination from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "type": obj.get("type"),
+ "address": SEPAAddress.from_dict(obj["address"]) if obj.get("address") is not None else None
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/source_config.py b/fireblocks/models/source_config.py
new file mode 100644
index 00000000..e763f6b7
--- /dev/null
+++ b/fireblocks/models/source_config.py
@@ -0,0 +1,133 @@
+# 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.account_identifier import AccountIdentifier
+from fireblocks.models.account_type2 import AccountType2
+from fireblocks.models.policy_operator import PolicyOperator
+from fireblocks.models.policy_tag import PolicyTag
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SourceConfig(BaseModel):
+ """
+ Source account configuration for policy rules
+ """ # noqa: E501
+ type: Optional[List[AccountType2]] = Field(default=None, description="Source account types")
+ sub_type: Optional[List[AccountIdentifier]] = Field(default=None, description="Source account subtypes", alias="subType")
+ ids: Optional[List[AccountIdentifier]] = Field(default=None, description="Source account identifiers")
+ tags: Optional[List[PolicyTag]] = Field(default=None, description="Tags for source matching")
+ operator: PolicyOperator
+ match_from: Optional[StrictStr] = Field(default=None, description="Whether to match from account (relevant only for ORDER policy type)", alias="matchFrom")
+ __properties: ClassVar[List[str]] = ["type", "subType", "ids", "tags", "operator", "matchFrom"]
+
+ @field_validator('match_from')
+ def match_from_validate_enum(cls, value):
+ """Validates the enum"""
+ if value is None:
+ return value
+
+ if value not in set(['ACCOUNT']):
+ raise ValueError("must be one of enum values ('ACCOUNT')")
+ 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 SourceConfig 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 sub_type (list)
+ _items = []
+ if self.sub_type:
+ for _item_sub_type in self.sub_type:
+ if _item_sub_type:
+ _items.append(_item_sub_type.to_dict())
+ _dict['subType'] = _items
+ # override the default output from pydantic by calling `to_dict()` of each item in ids (list)
+ _items = []
+ if self.ids:
+ for _item_ids in self.ids:
+ if _item_ids:
+ _items.append(_item_ids.to_dict())
+ _dict['ids'] = _items
+ # override the default output from pydantic by calling `to_dict()` of each item in tags (list)
+ _items = []
+ if self.tags:
+ for _item_tags in self.tags:
+ if _item_tags:
+ _items.append(_item_tags.to_dict())
+ _dict['tags'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of SourceConfig from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "type": obj.get("type"),
+ "subType": [AccountIdentifier.from_dict(_item) for _item in obj["subType"]] if obj.get("subType") is not None else None,
+ "ids": [AccountIdentifier.from_dict(_item) for _item in obj["ids"]] if obj.get("ids") is not None else None,
+ "tags": [PolicyTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None,
+ "operator": obj.get("operator"),
+ "matchFrom": obj.get("matchFrom")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/spei_address.py b/fireblocks/models/spei_address.py
new file mode 100644
index 00000000..48c566f3
--- /dev/null
+++ b/fireblocks/models/spei_address.py
@@ -0,0 +1,96 @@
+# 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.account_holder_details import AccountHolderDetails
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SpeiAddress(BaseModel):
+ """
+ SpeiAddress
+ """ # noqa: E501
+ account_holder: AccountHolderDetails = Field(alias="accountHolder")
+ bank_name: Optional[StrictStr] = Field(default=None, description="Name of the bank.", alias="bankName")
+ bank_account_number: StrictStr = Field(description="The bank account number for the SPEI transfer.", alias="bankAccountNumber")
+ __properties: ClassVar[List[str]] = ["accountHolder", "bankName", "bankAccountNumber"]
+
+ 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 SpeiAddress 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 account_holder
+ if self.account_holder:
+ _dict['accountHolder'] = self.account_holder.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of SpeiAddress from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "accountHolder": AccountHolderDetails.from_dict(obj["accountHolder"]) if obj.get("accountHolder") is not None else None,
+ "bankName": obj.get("bankName"),
+ "bankAccountNumber": obj.get("bankAccountNumber")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/spei_destination.py b/fireblocks/models/spei_destination.py
new file mode 100644
index 00000000..8958f859
--- /dev/null
+++ b/fireblocks/models/spei_destination.py
@@ -0,0 +1,101 @@
+# 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, StrictStr, field_validator
+from typing import Any, ClassVar, Dict, List
+from fireblocks.models.spei_address import SpeiAddress
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SpeiDestination(BaseModel):
+ """
+ SpeiDestination
+ """ # noqa: E501
+ type: StrictStr
+ address: SpeiAddress
+ __properties: ClassVar[List[str]] = ["type", "address"]
+
+ @field_validator('type')
+ def type_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['SPEI']):
+ raise ValueError("must be one of enum values ('SPEI')")
+ 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 SpeiDestination 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 address
+ if self.address:
+ _dict['address'] = self.address.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of SpeiDestination from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "type": obj.get("type"),
+ "address": SpeiAddress.from_dict(obj["address"]) if obj.get("address") is not None else None
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/swift_address.py b/fireblocks/models/swift_address.py
new file mode 100644
index 00000000..7561dd3a
--- /dev/null
+++ b/fireblocks/models/swift_address.py
@@ -0,0 +1,104 @@
+# 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
+from typing_extensions import Annotated
+from fireblocks.models.account_holder_details import AccountHolderDetails
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SwiftAddress(BaseModel):
+ """
+ SwiftAddress
+ """ # noqa: E501
+ account_holder: AccountHolderDetails = Field(alias="accountHolder")
+ swift_code: Annotated[str, Field(strict=True)] = Field(alias="swiftCode")
+ routing_number: StrictStr = Field(description="Routing number identifying the bank account.", alias="routingNumber")
+ __properties: ClassVar[List[str]] = ["accountHolder", "swiftCode", "routingNumber"]
+
+ @field_validator('swift_code')
+ def swift_code_validate_regular_expression(cls, value):
+ """Validates the regular expression"""
+ if not re.match(r"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$", value):
+ raise ValueError(r"must validate the regular expression /^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$/")
+ 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 SwiftAddress 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 account_holder
+ if self.account_holder:
+ _dict['accountHolder'] = self.account_holder.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of SwiftAddress from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "accountHolder": AccountHolderDetails.from_dict(obj["accountHolder"]) if obj.get("accountHolder") is not None else None,
+ "swiftCode": obj.get("swiftCode"),
+ "routingNumber": obj.get("routingNumber")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/swift_destination.py b/fireblocks/models/swift_destination.py
new file mode 100644
index 00000000..1fbca0ca
--- /dev/null
+++ b/fireblocks/models/swift_destination.py
@@ -0,0 +1,101 @@
+# 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, StrictStr, field_validator
+from typing import Any, ClassVar, Dict, List
+from fireblocks.models.swift_address import SwiftAddress
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SwiftDestination(BaseModel):
+ """
+ SwiftDestination
+ """ # noqa: E501
+ type: StrictStr
+ address: SwiftAddress
+ __properties: ClassVar[List[str]] = ["type", "address"]
+
+ @field_validator('type')
+ def type_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['SWIFT']):
+ raise ValueError("must be one of enum values ('SWIFT')")
+ 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 SwiftDestination 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 address
+ if self.address:
+ _dict['address'] = self.address.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of SwiftDestination from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "type": obj.get("type"),
+ "address": SwiftAddress.from_dict(obj["address"]) if obj.get("address") is not None else None
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/tag.py b/fireblocks/models/tag.py
index fc05a514..bd7b9afc 100644
--- a/fireblocks/models/tag.py
+++ b/fireblocks/models/tag.py
@@ -18,7 +18,7 @@
import re # noqa: F401
import json
-from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from typing import Optional, Set
from typing_extensions import Self
@@ -30,7 +30,10 @@ class Tag(BaseModel):
id: StrictStr = Field(description="The unique identifier of the tag")
label: StrictStr = Field(description="The tag label")
description: Optional[StrictStr] = Field(default=None, description="Description for the tag")
- __properties: ClassVar[List[str]] = ["id", "label", "description"]
+ is_protected: Optional[StrictBool] = Field(default=None, description="Whether the tag is protected", alias="isProtected")
+ color: Optional[StrictStr] = Field(default=None, description="The color of the tag in hex format")
+ updated_at: Optional[StrictStr] = Field(default=None, description="The date and time the tag was last updated", alias="updatedAt")
+ __properties: ClassVar[List[str]] = ["id", "label", "description", "isProtected", "color", "updatedAt"]
model_config = ConfigDict(
populate_by_name=True,
@@ -85,7 +88,10 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
_obj = cls.model_validate({
"id": obj.get("id"),
"label": obj.get("label"),
- "description": obj.get("description")
+ "description": obj.get("description"),
+ "isProtected": obj.get("isProtected"),
+ "color": obj.get("color"),
+ "updatedAt": obj.get("updatedAt")
})
return _obj
diff --git a/fireblocks/models/tag_attachment_operation_action.py b/fireblocks/models/tag_attachment_operation_action.py
new file mode 100644
index 00000000..3cf47404
--- /dev/null
+++ b/fireblocks/models/tag_attachment_operation_action.py
@@ -0,0 +1,38 @@
+# 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 json
+from enum import Enum
+from typing_extensions import Self
+
+
+class TagAttachmentOperationAction(str, Enum):
+ """
+ TagAttachmentOperationAction
+ """
+
+ """
+ allowed enum values
+ """
+ ATTACH = 'ATTACH'
+ DETACH = 'DETACH'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of TagAttachmentOperationAction from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/fireblocks/models/tr_link_amount.py b/fireblocks/models/tr_link_amount.py
new file mode 100644
index 00000000..01fe1fd1
--- /dev/null
+++ b/fireblocks/models/tr_link_amount.py
@@ -0,0 +1,104 @@
+# 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.amount_range_min_max import AmountRangeMinMax
+from typing import Optional, Set
+from typing_extensions import Self
+
+class TRLinkAmount(BaseModel):
+ """
+ TRLink amount definition with range and currency, compatible with TAP format from Policy Engine V2
+ """ # noqa: E501
+ range: Optional[AmountRangeMinMax] = None
+ currency: Optional[StrictStr] = Field(default=None, description="Currency type")
+ __properties: ClassVar[List[str]] = ["range", "currency"]
+
+ @field_validator('currency')
+ def currency_validate_enum(cls, value):
+ """Validates the enum"""
+ if value is None:
+ return value
+
+ if value not in set(['USD', 'NATIVE']):
+ raise ValueError("must be one of enum values ('USD', 'NATIVE')")
+ 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 TRLinkAmount 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 range
+ if self.range:
+ _dict['range'] = self.range.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of TRLinkAmount from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "range": AmountRangeMinMax.from_dict(obj["range"]) if obj.get("range") is not None else None,
+ "currency": obj.get("currency")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/tr_link_missing_trm_action.py b/fireblocks/models/tr_link_missing_trm_action.py
new file mode 100644
index 00000000..b4081537
--- /dev/null
+++ b/fireblocks/models/tr_link_missing_trm_action.py
@@ -0,0 +1,40 @@
+# 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 json
+from enum import Enum
+from typing_extensions import Self
+
+
+class TRLinkMissingTrmAction(str, Enum):
+ """
+ TRLink missing TRM action
+ """
+
+ """
+ allowed enum values
+ """
+ WAIT = 'WAIT'
+ REJECT = 'REJECT'
+ ACCEPT = 'ACCEPT'
+ INITIATE_TRM = 'INITIATE_TRM'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of TRLinkMissingTrmAction from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/fireblocks/models/tr_link_missing_trm_action_enum.py b/fireblocks/models/tr_link_missing_trm_action_enum.py
new file mode 100644
index 00000000..9a1d8a55
--- /dev/null
+++ b/fireblocks/models/tr_link_missing_trm_action_enum.py
@@ -0,0 +1,40 @@
+# 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 json
+from enum import Enum
+from typing_extensions import Self
+
+
+class TRLinkMissingTrmActionEnum(str, Enum):
+ """
+ TRLink missing TRM action
+ """
+
+ """
+ allowed enum values
+ """
+ WAIT = 'WAIT'
+ REJECT = 'REJECT'
+ ACCEPT = 'ACCEPT'
+ INITIATE_TRM = 'INITIATE_TRM'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of TRLinkMissingTrmActionEnum from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/fireblocks/models/tr_link_missing_trm_decision.py b/fireblocks/models/tr_link_missing_trm_decision.py
new file mode 100644
index 00000000..6b8b52bf
--- /dev/null
+++ b/fireblocks/models/tr_link_missing_trm_decision.py
@@ -0,0 +1,142 @@
+# 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 datetime import datetime
+from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional, Union
+from fireblocks.models.tr_link_amount import TRLinkAmount
+from fireblocks.models.tr_link_missing_trm_action import TRLinkMissingTrmAction
+from fireblocks.models.transaction_direction import TransactionDirection
+from fireblocks.models.transaction_operation_enum import TransactionOperationEnum
+from fireblocks.models.transfer_peer_sub_type_enum import TransferPeerSubTypeEnum
+from fireblocks.models.transfer_peer_type_enum import TransferPeerTypeEnum
+from typing import Optional, Set
+from typing_extensions import Self
+
+class TRLinkMissingTrmDecision(BaseModel):
+ """
+ Interface for reporting missing TRM screening decisions in ITRLinkResult
+ """ # noqa: E501
+ customer_id: Optional[StrictStr] = Field(default=None, description="Reference to TrlinkCustomer.id", alias="customerId")
+ direction: Optional[TransactionDirection] = None
+ source_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="sourceType")
+ source_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="sourceSubType")
+ source_address: Optional[StrictStr] = Field(default=None, description="Source address", alias="sourceAddress")
+ dest_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="destType")
+ dest_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="destSubType")
+ dest_address: Optional[StrictStr] = Field(default=None, description="Destination address", alias="destAddress")
+ source_id: Optional[StrictStr] = Field(default=None, description="Source ID", alias="sourceId")
+ dest_id: Optional[StrictStr] = Field(default=None, description="Destination ID", alias="destId")
+ asset: Optional[StrictStr] = Field(default=None, description="Asset symbol")
+ base_asset: Optional[StrictStr] = Field(default=None, description="Base asset symbol", alias="baseAsset")
+ amount: Optional[TRLinkAmount] = None
+ network_protocol: Optional[StrictStr] = Field(default=None, description="Network protocol", alias="networkProtocol")
+ operation: Optional[TransactionOperationEnum] = None
+ description: Optional[StrictStr] = Field(default=None, description="Rule description")
+ is_default: Optional[StrictBool] = Field(default=False, description="Whether this is a default rule", alias="isDefault")
+ valid_before: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Unix timestamp when rule expires", alias="validBefore")
+ valid_after: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Unix timestamp when rule becomes valid", alias="validAfter")
+ action: TRLinkMissingTrmAction
+ source: StrictStr = Field(description="TRLink missing TRM source")
+ timestamp: Optional[datetime] = Field(default=None, description="Timestamp of the decision")
+ reason: Optional[StrictStr] = Field(default=None, description="Reason for the decision")
+ __properties: ClassVar[List[str]] = ["customerId", "direction", "sourceType", "sourceSubType", "sourceAddress", "destType", "destSubType", "destAddress", "sourceId", "destId", "asset", "baseAsset", "amount", "networkProtocol", "operation", "description", "isDefault", "validBefore", "validAfter", "action", "source", "timestamp", "reason"]
+
+ 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 TRLinkMissingTrmDecision 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 amount
+ if self.amount:
+ _dict['amount'] = self.amount.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of TRLinkMissingTrmDecision from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "customerId": obj.get("customerId"),
+ "direction": obj.get("direction"),
+ "sourceType": obj.get("sourceType"),
+ "sourceSubType": obj.get("sourceSubType"),
+ "sourceAddress": obj.get("sourceAddress"),
+ "destType": obj.get("destType"),
+ "destSubType": obj.get("destSubType"),
+ "destAddress": obj.get("destAddress"),
+ "sourceId": obj.get("sourceId"),
+ "destId": obj.get("destId"),
+ "asset": obj.get("asset"),
+ "baseAsset": obj.get("baseAsset"),
+ "amount": TRLinkAmount.from_dict(obj["amount"]) if obj.get("amount") is not None else None,
+ "networkProtocol": obj.get("networkProtocol"),
+ "operation": obj.get("operation"),
+ "description": obj.get("description"),
+ "isDefault": obj.get("isDefault") if obj.get("isDefault") is not None else False,
+ "validBefore": obj.get("validBefore"),
+ "validAfter": obj.get("validAfter"),
+ "action": obj.get("action"),
+ "source": obj.get("source"),
+ "timestamp": obj.get("timestamp"),
+ "reason": obj.get("reason")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/tr_link_missing_trm_rule.py b/fireblocks/models/tr_link_missing_trm_rule.py
new file mode 100644
index 00000000..8ac8bcb7
--- /dev/null
+++ b/fireblocks/models/tr_link_missing_trm_rule.py
@@ -0,0 +1,135 @@
+# 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, StrictBool, StrictFloat, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional, Union
+from fireblocks.models.tr_link_amount import TRLinkAmount
+from fireblocks.models.tr_link_missing_trm_action import TRLinkMissingTrmAction
+from fireblocks.models.transaction_direction import TransactionDirection
+from fireblocks.models.transaction_operation_enum import TransactionOperationEnum
+from fireblocks.models.transfer_peer_sub_type_enum import TransferPeerSubTypeEnum
+from fireblocks.models.transfer_peer_type_enum import TransferPeerTypeEnum
+from typing import Optional, Set
+from typing_extensions import Self
+
+class TRLinkMissingTrmRule(BaseModel):
+ """
+ TRLink missing TRM rule definition
+ """ # noqa: E501
+ customer_id: Optional[StrictStr] = Field(default=None, description="Reference to TrlinkCustomer.id", alias="customerId")
+ direction: Optional[TransactionDirection] = None
+ source_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="sourceType")
+ source_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="sourceSubType")
+ source_address: Optional[StrictStr] = Field(default=None, description="Source address", alias="sourceAddress")
+ dest_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="destType")
+ dest_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="destSubType")
+ dest_address: Optional[StrictStr] = Field(default=None, description="Destination address", alias="destAddress")
+ source_id: Optional[StrictStr] = Field(default=None, description="Source ID", alias="sourceId")
+ dest_id: Optional[StrictStr] = Field(default=None, description="Destination ID", alias="destId")
+ asset: Optional[StrictStr] = Field(default=None, description="Asset symbol")
+ base_asset: Optional[StrictStr] = Field(default=None, description="Base asset symbol", alias="baseAsset")
+ amount: Optional[TRLinkAmount] = None
+ network_protocol: Optional[StrictStr] = Field(default=None, description="Network protocol", alias="networkProtocol")
+ operation: Optional[TransactionOperationEnum] = None
+ description: Optional[StrictStr] = Field(default=None, description="Rule description")
+ is_default: Optional[StrictBool] = Field(default=False, description="Whether this is a default rule", alias="isDefault")
+ valid_before: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Unix timestamp when rule expires", alias="validBefore")
+ valid_after: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Unix timestamp when rule becomes valid", alias="validAfter")
+ action: TRLinkMissingTrmAction
+ __properties: ClassVar[List[str]] = ["customerId", "direction", "sourceType", "sourceSubType", "sourceAddress", "destType", "destSubType", "destAddress", "sourceId", "destId", "asset", "baseAsset", "amount", "networkProtocol", "operation", "description", "isDefault", "validBefore", "validAfter", "action"]
+
+ 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 TRLinkMissingTrmRule 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 amount
+ if self.amount:
+ _dict['amount'] = self.amount.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of TRLinkMissingTrmRule from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "customerId": obj.get("customerId"),
+ "direction": obj.get("direction"),
+ "sourceType": obj.get("sourceType"),
+ "sourceSubType": obj.get("sourceSubType"),
+ "sourceAddress": obj.get("sourceAddress"),
+ "destType": obj.get("destType"),
+ "destSubType": obj.get("destSubType"),
+ "destAddress": obj.get("destAddress"),
+ "sourceId": obj.get("sourceId"),
+ "destId": obj.get("destId"),
+ "asset": obj.get("asset"),
+ "baseAsset": obj.get("baseAsset"),
+ "amount": TRLinkAmount.from_dict(obj["amount"]) if obj.get("amount") is not None else None,
+ "networkProtocol": obj.get("networkProtocol"),
+ "operation": obj.get("operation"),
+ "description": obj.get("description"),
+ "isDefault": obj.get("isDefault") if obj.get("isDefault") is not None else False,
+ "validBefore": obj.get("validBefore"),
+ "validAfter": obj.get("validAfter"),
+ "action": obj.get("action")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/tr_link_post_screening_rule.py b/fireblocks/models/tr_link_post_screening_rule.py
new file mode 100644
index 00000000..51ef6e15
--- /dev/null
+++ b/fireblocks/models/tr_link_post_screening_rule.py
@@ -0,0 +1,140 @@
+# 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, StrictBool, StrictFloat, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional, Union
+from fireblocks.models.tr_link_amount import TRLinkAmount
+from fireblocks.models.tr_link_trm_screening_status import TRLinkTrmScreeningStatus
+from fireblocks.models.tr_link_verdict import TRLinkVerdict
+from fireblocks.models.transaction_direction import TransactionDirection
+from fireblocks.models.transaction_operation_enum import TransactionOperationEnum
+from fireblocks.models.transfer_peer_sub_type_enum import TransferPeerSubTypeEnum
+from fireblocks.models.transfer_peer_type_enum import TransferPeerTypeEnum
+from typing import Optional, Set
+from typing_extensions import Self
+
+class TRLinkPostScreeningRule(BaseModel):
+ """
+ TRLink post-screening rule definition
+ """ # noqa: E501
+ customer_id: Optional[StrictStr] = Field(default=None, description="Reference to TrlinkCustomer.id", alias="customerId")
+ direction: Optional[TransactionDirection] = None
+ source_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="sourceType")
+ source_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="sourceSubType")
+ source_address: Optional[StrictStr] = Field(default=None, description="Source address", alias="sourceAddress")
+ dest_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="destType")
+ dest_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="destSubType")
+ dest_address: Optional[StrictStr] = Field(default=None, description="Destination address", alias="destAddress")
+ source_id: Optional[StrictStr] = Field(default=None, description="Source ID", alias="sourceId")
+ dest_id: Optional[StrictStr] = Field(default=None, description="Destination ID", alias="destId")
+ asset: Optional[StrictStr] = Field(default=None, description="Asset symbol")
+ base_asset: Optional[StrictStr] = Field(default=None, description="Base asset symbol", alias="baseAsset")
+ amount: Optional[TRLinkAmount] = None
+ network_protocol: Optional[StrictStr] = Field(default=None, description="Network protocol", alias="networkProtocol")
+ operation: Optional[TransactionOperationEnum] = None
+ description: Optional[StrictStr] = Field(default=None, description="Rule description")
+ is_default: Optional[StrictBool] = Field(default=False, description="Whether this is a default rule", alias="isDefault")
+ provider_ident: Optional[StrictStr] = Field(default=None, description="Provider identifier", alias="providerIdent")
+ trm_status: Optional[TRLinkTrmScreeningStatus] = Field(default=None, alias="trmStatus")
+ valid_before: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Unix timestamp when rule expires", alias="validBefore")
+ valid_after: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Unix timestamp when rule becomes valid", alias="validAfter")
+ action: TRLinkVerdict
+ __properties: ClassVar[List[str]] = ["customerId", "direction", "sourceType", "sourceSubType", "sourceAddress", "destType", "destSubType", "destAddress", "sourceId", "destId", "asset", "baseAsset", "amount", "networkProtocol", "operation", "description", "isDefault", "providerIdent", "trmStatus", "validBefore", "validAfter", "action"]
+
+ 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 TRLinkPostScreeningRule 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 amount
+ if self.amount:
+ _dict['amount'] = self.amount.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of TRLinkPostScreeningRule from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "customerId": obj.get("customerId"),
+ "direction": obj.get("direction"),
+ "sourceType": obj.get("sourceType"),
+ "sourceSubType": obj.get("sourceSubType"),
+ "sourceAddress": obj.get("sourceAddress"),
+ "destType": obj.get("destType"),
+ "destSubType": obj.get("destSubType"),
+ "destAddress": obj.get("destAddress"),
+ "sourceId": obj.get("sourceId"),
+ "destId": obj.get("destId"),
+ "asset": obj.get("asset"),
+ "baseAsset": obj.get("baseAsset"),
+ "amount": TRLinkAmount.from_dict(obj["amount"]) if obj.get("amount") is not None else None,
+ "networkProtocol": obj.get("networkProtocol"),
+ "operation": obj.get("operation"),
+ "description": obj.get("description"),
+ "isDefault": obj.get("isDefault") if obj.get("isDefault") is not None else False,
+ "providerIdent": obj.get("providerIdent"),
+ "trmStatus": obj.get("trmStatus"),
+ "validBefore": obj.get("validBefore"),
+ "validAfter": obj.get("validAfter"),
+ "action": obj.get("action")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/tr_link_pre_screening_action.py b/fireblocks/models/tr_link_pre_screening_action.py
new file mode 100644
index 00000000..5d066b0e
--- /dev/null
+++ b/fireblocks/models/tr_link_pre_screening_action.py
@@ -0,0 +1,38 @@
+# 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 json
+from enum import Enum
+from typing_extensions import Self
+
+
+class TRLinkPreScreeningAction(str, Enum):
+ """
+ TRLink pre-screening action
+ """
+
+ """
+ allowed enum values
+ """
+ SCREEN = 'SCREEN'
+ PASS = 'PASS'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of TRLinkPreScreeningAction from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/fireblocks/models/tr_link_pre_screening_action_enum.py b/fireblocks/models/tr_link_pre_screening_action_enum.py
new file mode 100644
index 00000000..bebb684a
--- /dev/null
+++ b/fireblocks/models/tr_link_pre_screening_action_enum.py
@@ -0,0 +1,38 @@
+# 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 json
+from enum import Enum
+from typing_extensions import Self
+
+
+class TRLinkPreScreeningActionEnum(str, Enum):
+ """
+ TRLink pre-screening action
+ """
+
+ """
+ allowed enum values
+ """
+ SCREEN = 'SCREEN'
+ PASS = 'PASS'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of TRLinkPreScreeningActionEnum from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/fireblocks/models/tr_link_pre_screening_rule.py b/fireblocks/models/tr_link_pre_screening_rule.py
new file mode 100644
index 00000000..262b7b6a
--- /dev/null
+++ b/fireblocks/models/tr_link_pre_screening_rule.py
@@ -0,0 +1,131 @@
+# 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, StrictBool, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from fireblocks.models.tr_link_amount import TRLinkAmount
+from fireblocks.models.tr_link_pre_screening_action import TRLinkPreScreeningAction
+from fireblocks.models.transaction_direction import TransactionDirection
+from fireblocks.models.transaction_operation_enum import TransactionOperationEnum
+from fireblocks.models.transfer_peer_sub_type_enum import TransferPeerSubTypeEnum
+from fireblocks.models.transfer_peer_type_enum import TransferPeerTypeEnum
+from typing import Optional, Set
+from typing_extensions import Self
+
+class TRLinkPreScreeningRule(BaseModel):
+ """
+ TRLink pre-screening rule definition
+ """ # noqa: E501
+ customer_id: Optional[StrictStr] = Field(default=None, description="Reference to TrlinkCustomer.id", alias="customerId")
+ direction: Optional[TransactionDirection] = None
+ source_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="sourceType")
+ source_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="sourceSubType")
+ source_address: Optional[StrictStr] = Field(default=None, description="Source address", alias="sourceAddress")
+ dest_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="destType")
+ dest_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="destSubType")
+ dest_address: Optional[StrictStr] = Field(default=None, description="Destination address", alias="destAddress")
+ source_id: Optional[StrictStr] = Field(default=None, description="Source ID", alias="sourceId")
+ dest_id: Optional[StrictStr] = Field(default=None, description="Destination ID", alias="destId")
+ asset: Optional[StrictStr] = Field(default=None, description="Asset symbol")
+ base_asset: Optional[StrictStr] = Field(default=None, description="Base asset symbol", alias="baseAsset")
+ amount: Optional[TRLinkAmount] = None
+ network_protocol: Optional[StrictStr] = Field(default=None, description="Network protocol", alias="networkProtocol")
+ operation: Optional[TransactionOperationEnum] = None
+ description: Optional[StrictStr] = Field(default=None, description="Rule description")
+ is_default: Optional[StrictBool] = Field(default=False, description="Whether this is a default rule", alias="isDefault")
+ action: TRLinkPreScreeningAction
+ __properties: ClassVar[List[str]] = ["customerId", "direction", "sourceType", "sourceSubType", "sourceAddress", "destType", "destSubType", "destAddress", "sourceId", "destId", "asset", "baseAsset", "amount", "networkProtocol", "operation", "description", "isDefault", "action"]
+
+ 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 TRLinkPreScreeningRule 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 amount
+ if self.amount:
+ _dict['amount'] = self.amount.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of TRLinkPreScreeningRule from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "customerId": obj.get("customerId"),
+ "direction": obj.get("direction"),
+ "sourceType": obj.get("sourceType"),
+ "sourceSubType": obj.get("sourceSubType"),
+ "sourceAddress": obj.get("sourceAddress"),
+ "destType": obj.get("destType"),
+ "destSubType": obj.get("destSubType"),
+ "destAddress": obj.get("destAddress"),
+ "sourceId": obj.get("sourceId"),
+ "destId": obj.get("destId"),
+ "asset": obj.get("asset"),
+ "baseAsset": obj.get("baseAsset"),
+ "amount": TRLinkAmount.from_dict(obj["amount"]) if obj.get("amount") is not None else None,
+ "networkProtocol": obj.get("networkProtocol"),
+ "operation": obj.get("operation"),
+ "description": obj.get("description"),
+ "isDefault": obj.get("isDefault") if obj.get("isDefault") is not None else False,
+ "action": obj.get("action")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/tr_link_provider_result.py b/fireblocks/models/tr_link_provider_result.py
new file mode 100644
index 00000000..04407c88
--- /dev/null
+++ b/fireblocks/models/tr_link_provider_result.py
@@ -0,0 +1,88 @@
+# 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
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class TRLinkProviderResult(BaseModel):
+ """
+ Provider-specific response data wrapper
+ """ # noqa: E501
+ provider_response: Optional[Dict[str, Any]] = Field(default=None, description="Raw provider response", alias="providerResponse")
+ __properties: ClassVar[List[str]] = ["providerResponse"]
+
+ 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 TRLinkProviderResult 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 TRLinkProviderResult from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "providerResponse": obj.get("providerResponse")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/tr_link_provider_result_with_rule.py b/fireblocks/models/tr_link_provider_result_with_rule.py
new file mode 100644
index 00000000..edf4254e
--- /dev/null
+++ b/fireblocks/models/tr_link_provider_result_with_rule.py
@@ -0,0 +1,94 @@
+# 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
+from typing import Any, ClassVar, Dict, List, Optional
+from fireblocks.models.tr_link_post_screening_rule import TRLinkPostScreeningRule
+from typing import Optional, Set
+from typing_extensions import Self
+
+class TRLinkProviderResultWithRule(BaseModel):
+ """
+ Provider response and matched rule wrapper for TRLink screening results
+ """ # noqa: E501
+ provider_response: Optional[Dict[str, Any]] = Field(default=None, description="Raw provider response", alias="providerResponse")
+ matched_rule: Optional[TRLinkPostScreeningRule] = Field(default=None, alias="matchedRule")
+ __properties: ClassVar[List[str]] = ["providerResponse", "matchedRule"]
+
+ 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 TRLinkProviderResultWithRule 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 matched_rule
+ if self.matched_rule:
+ _dict['matchedRule'] = self.matched_rule.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of TRLinkProviderResultWithRule from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "providerResponse": obj.get("providerResponse"),
+ "matchedRule": TRLinkPostScreeningRule.from_dict(obj["matchedRule"]) if obj.get("matchedRule") is not None else None
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/tr_link_provider_result_with_rule2.py b/fireblocks/models/tr_link_provider_result_with_rule2.py
new file mode 100644
index 00000000..9cca7948
--- /dev/null
+++ b/fireblocks/models/tr_link_provider_result_with_rule2.py
@@ -0,0 +1,94 @@
+# 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
+from typing import Any, ClassVar, Dict, List, Optional
+from fireblocks.models.screening_tr_link_post_screening_rule import ScreeningTRLinkPostScreeningRule
+from typing import Optional, Set
+from typing_extensions import Self
+
+class TRLinkProviderResultWithRule2(BaseModel):
+ """
+ Provider response and matched rule wrapper for TRLink screening results
+ """ # noqa: E501
+ provider_response: Optional[Dict[str, Any]] = Field(default=None, description="Raw provider response", alias="providerResponse")
+ matched_rule: Optional[ScreeningTRLinkPostScreeningRule] = Field(default=None, alias="matchedRule")
+ __properties: ClassVar[List[str]] = ["providerResponse", "matchedRule"]
+
+ 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 TRLinkProviderResultWithRule2 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 matched_rule
+ if self.matched_rule:
+ _dict['matchedRule'] = self.matched_rule.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of TRLinkProviderResultWithRule2 from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "providerResponse": obj.get("providerResponse"),
+ "matchedRule": ScreeningTRLinkPostScreeningRule.from_dict(obj["matchedRule"]) if obj.get("matchedRule") is not None else None
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/tr_link_registration_result.py b/fireblocks/models/tr_link_registration_result.py
new file mode 100644
index 00000000..a132dccb
--- /dev/null
+++ b/fireblocks/models/tr_link_registration_result.py
@@ -0,0 +1,115 @@
+# 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, StrictBool, StrictFloat, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional, Union
+from fireblocks.models.tr_link_pre_screening_rule import TRLinkPreScreeningRule
+from fireblocks.models.tr_link_provider_result import TRLinkProviderResult
+from fireblocks.models.tr_link_registration_status import TRLinkRegistrationStatus
+from typing import Optional, Set
+from typing_extensions import Self
+
+class TRLinkRegistrationResult(BaseModel):
+ """
+ TRLink registration result containing status and metadata
+ """ # noqa: E501
+ status: TRLinkRegistrationStatus
+ provider: Optional[StrictStr] = Field(default=None, description="The TRLink provider name")
+ success: Optional[StrictBool] = Field(default=None, description="Whether the registration was successful")
+ timestamp: Union[StrictFloat, StrictInt] = Field(description="Unix timestamp of the registration")
+ dest_record_id: Optional[StrictStr] = Field(default=None, description="Destination record identifier", alias="destRecordId")
+ travel_rule_message_id: Optional[StrictStr] = Field(default=None, description="Travel rule message identifier for linking", alias="travelRuleMessageId")
+ customer_integration_id: Optional[StrictStr] = Field(default=None, description="Customer integration identifier", alias="customerIntegrationId")
+ customer_short_name: Optional[StrictStr] = Field(default=None, description="Customer short name", alias="customerShortName")
+ result: Optional[TRLinkProviderResult] = None
+ matched_prescreening_rule: Optional[TRLinkPreScreeningRule] = Field(default=None, alias="matchedPrescreeningRule")
+ __properties: ClassVar[List[str]] = ["status", "provider", "success", "timestamp", "destRecordId", "travelRuleMessageId", "customerIntegrationId", "customerShortName", "result", "matchedPrescreeningRule"]
+
+ 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 TRLinkRegistrationResult 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 result
+ if self.result:
+ _dict['result'] = self.result.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of matched_prescreening_rule
+ if self.matched_prescreening_rule:
+ _dict['matchedPrescreeningRule'] = self.matched_prescreening_rule.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of TRLinkRegistrationResult from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "status": obj.get("status"),
+ "provider": obj.get("provider"),
+ "success": obj.get("success"),
+ "timestamp": obj.get("timestamp"),
+ "destRecordId": obj.get("destRecordId"),
+ "travelRuleMessageId": obj.get("travelRuleMessageId"),
+ "customerIntegrationId": obj.get("customerIntegrationId"),
+ "customerShortName": obj.get("customerShortName"),
+ "result": TRLinkProviderResult.from_dict(obj["result"]) if obj.get("result") is not None else None,
+ "matchedPrescreeningRule": TRLinkPreScreeningRule.from_dict(obj["matchedPrescreeningRule"]) if obj.get("matchedPrescreeningRule") is not None else None
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/tr_link_registration_result_full_payload.py b/fireblocks/models/tr_link_registration_result_full_payload.py
new file mode 100644
index 00000000..5e3e229d
--- /dev/null
+++ b/fireblocks/models/tr_link_registration_result_full_payload.py
@@ -0,0 +1,115 @@
+# 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, StrictBool, StrictFloat, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional, Union
+from fireblocks.models.screening_tr_link_prescreening_rule import ScreeningTRLinkPrescreeningRule
+from fireblocks.models.tr_link_provider_result import TRLinkProviderResult
+from fireblocks.models.tr_link_registration_status_enum import TRLinkRegistrationStatusEnum
+from typing import Optional, Set
+from typing_extensions import Self
+
+class TRLinkRegistrationResultFullPayload(BaseModel):
+ """
+ TRLink registration result containing status and metadata
+ """ # noqa: E501
+ status: TRLinkRegistrationStatusEnum
+ provider: Optional[StrictStr] = Field(default=None, description="The TRLink provider name")
+ success: Optional[StrictBool] = Field(default=None, description="Whether the registration was successful")
+ timestamp: Union[StrictFloat, StrictInt] = Field(description="Unix timestamp of the registration")
+ dest_record_id: Optional[StrictStr] = Field(default=None, description="Destination record identifier", alias="destRecordId")
+ travel_rule_message_id: Optional[StrictStr] = Field(default=None, description="Travel rule message identifier for linking", alias="travelRuleMessageId")
+ customer_integration_id: Optional[StrictStr] = Field(default=None, description="Customer integration identifier", alias="customerIntegrationId")
+ customer_short_name: Optional[StrictStr] = Field(default=None, description="Customer short name", alias="customerShortName")
+ result: Optional[TRLinkProviderResult] = None
+ matched_prescreening_rule: Optional[ScreeningTRLinkPrescreeningRule] = Field(default=None, alias="matchedPrescreeningRule")
+ __properties: ClassVar[List[str]] = ["status", "provider", "success", "timestamp", "destRecordId", "travelRuleMessageId", "customerIntegrationId", "customerShortName", "result", "matchedPrescreeningRule"]
+
+ 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 TRLinkRegistrationResultFullPayload 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 result
+ if self.result:
+ _dict['result'] = self.result.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of matched_prescreening_rule
+ if self.matched_prescreening_rule:
+ _dict['matchedPrescreeningRule'] = self.matched_prescreening_rule.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of TRLinkRegistrationResultFullPayload from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "status": obj.get("status"),
+ "provider": obj.get("provider"),
+ "success": obj.get("success"),
+ "timestamp": obj.get("timestamp"),
+ "destRecordId": obj.get("destRecordId"),
+ "travelRuleMessageId": obj.get("travelRuleMessageId"),
+ "customerIntegrationId": obj.get("customerIntegrationId"),
+ "customerShortName": obj.get("customerShortName"),
+ "result": TRLinkProviderResult.from_dict(obj["result"]) if obj.get("result") is not None else None,
+ "matchedPrescreeningRule": ScreeningTRLinkPrescreeningRule.from_dict(obj["matchedPrescreeningRule"]) if obj.get("matchedPrescreeningRule") is not None else None
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/tr_link_registration_status.py b/fireblocks/models/tr_link_registration_status.py
new file mode 100644
index 00000000..ebb76f5e
--- /dev/null
+++ b/fireblocks/models/tr_link_registration_status.py
@@ -0,0 +1,41 @@
+# 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 json
+from enum import Enum
+from typing_extensions import Self
+
+
+class TRLinkRegistrationStatus(str, Enum):
+ """
+ TRLink registration status
+ """
+
+ """
+ allowed enum values
+ """
+ STARTING = 'STARTING'
+ PRESCREENED = 'PRESCREENED'
+ COMPLETED = 'COMPLETED'
+ FAILED = 'FAILED'
+ VOID = 'VOID'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of TRLinkRegistrationStatus from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/fireblocks/models/tr_link_registration_status_enum.py b/fireblocks/models/tr_link_registration_status_enum.py
new file mode 100644
index 00000000..3a8dbc13
--- /dev/null
+++ b/fireblocks/models/tr_link_registration_status_enum.py
@@ -0,0 +1,41 @@
+# 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 json
+from enum import Enum
+from typing_extensions import Self
+
+
+class TRLinkRegistrationStatusEnum(str, Enum):
+ """
+ TRLink registration status
+ """
+
+ """
+ allowed enum values
+ """
+ STARTING = 'STARTING'
+ PRESCREENED = 'PRESCREENED'
+ COMPLETED = 'COMPLETED'
+ FAILED = 'FAILED'
+ VOID = 'VOID'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of TRLinkRegistrationStatusEnum from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/fireblocks/models/tr_link_result.py b/fireblocks/models/tr_link_result.py
new file mode 100644
index 00000000..9ad583d8
--- /dev/null
+++ b/fireblocks/models/tr_link_result.py
@@ -0,0 +1,134 @@
+# 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 fireblocks.models.tr_link_missing_trm_decision import TRLinkMissingTrmDecision
+from fireblocks.models.tr_link_pre_screening_rule import TRLinkPreScreeningRule
+from fireblocks.models.tr_link_provider_result_with_rule import TRLinkProviderResultWithRule
+from fireblocks.models.tr_link_verdict import TRLinkVerdict
+from typing import Optional, Set
+from typing_extensions import Self
+
+class TRLinkResult(BaseModel):
+ """
+ TRLink screening result
+ """ # noqa: E501
+ provider: StrictStr = Field(description="The TRLink provider name")
+ timestamp: Union[StrictFloat, StrictInt] = Field(description="Unix timestamp of the screening result")
+ status: StrictStr = Field(description="Status of the TRLink screening")
+ verdict: Optional[TRLinkVerdict] = None
+ dest_address: Optional[StrictStr] = Field(default=None, description="The destination address associated with the TRLink screening", alias="destAddress")
+ dest_tag: Optional[StrictStr] = Field(default=None, description="Destination tag for the screening", alias="destTag")
+ bypass_reason: Optional[StrictStr] = Field(default=None, description="Reason for bypassing the TRLink screening", alias="bypassReason")
+ details_message: Optional[StrictStr] = Field(default=None, description="Additional details message about the screening result", alias="detailsMessage")
+ customer_integration_id: Optional[StrictStr] = Field(default=None, description="Customer integration identifier", alias="customerIntegrationId")
+ customer_short_name: Optional[StrictStr] = Field(default=None, description="Customer short name", alias="customerShortName")
+ travel_rule_message_id: Optional[StrictStr] = Field(default=None, description="Travel rule message identifier for linking", alias="travelRuleMessageId")
+ result: Optional[TRLinkProviderResultWithRule] = None
+ matched_prescreening_rule: Optional[TRLinkPreScreeningRule] = Field(default=None, alias="matchedPrescreeningRule")
+ matched_no_trm_screening_rule: Optional[TRLinkMissingTrmDecision] = Field(default=None, alias="matchedNoTrmScreeningRule")
+ __properties: ClassVar[List[str]] = ["provider", "timestamp", "status", "verdict", "destAddress", "destTag", "bypassReason", "detailsMessage", "customerIntegrationId", "customerShortName", "travelRuleMessageId", "result", "matchedPrescreeningRule", "matchedNoTrmScreeningRule"]
+
+ @field_validator('status')
+ def status_validate_enum(cls, value):
+ """Validates the enum"""
+ 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 TRLinkResult 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 result
+ if self.result:
+ _dict['result'] = self.result.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of matched_prescreening_rule
+ if self.matched_prescreening_rule:
+ _dict['matchedPrescreeningRule'] = self.matched_prescreening_rule.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of matched_no_trm_screening_rule
+ if self.matched_no_trm_screening_rule:
+ _dict['matchedNoTrmScreeningRule'] = self.matched_no_trm_screening_rule.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of TRLinkResult 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"),
+ "timestamp": obj.get("timestamp"),
+ "status": obj.get("status"),
+ "verdict": obj.get("verdict"),
+ "destAddress": obj.get("destAddress"),
+ "destTag": obj.get("destTag"),
+ "bypassReason": obj.get("bypassReason"),
+ "detailsMessage": obj.get("detailsMessage"),
+ "customerIntegrationId": obj.get("customerIntegrationId"),
+ "customerShortName": obj.get("customerShortName"),
+ "travelRuleMessageId": obj.get("travelRuleMessageId"),
+ "result": TRLinkProviderResultWithRule.from_dict(obj["result"]) if obj.get("result") is not None else None,
+ "matchedPrescreeningRule": TRLinkPreScreeningRule.from_dict(obj["matchedPrescreeningRule"]) if obj.get("matchedPrescreeningRule") is not None else None,
+ "matchedNoTrmScreeningRule": TRLinkMissingTrmDecision.from_dict(obj["matchedNoTrmScreeningRule"]) if obj.get("matchedNoTrmScreeningRule") is not None else None
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/tr_link_result_full_payload.py b/fireblocks/models/tr_link_result_full_payload.py
new file mode 100644
index 00000000..23db03b1
--- /dev/null
+++ b/fireblocks/models/tr_link_result_full_payload.py
@@ -0,0 +1,134 @@
+# 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 fireblocks.models.screening_tr_link_missing_trm_decision import ScreeningTRLinkMissingTrmDecision
+from fireblocks.models.screening_tr_link_prescreening_rule import ScreeningTRLinkPrescreeningRule
+from fireblocks.models.tr_link_provider_result_with_rule2 import TRLinkProviderResultWithRule2
+from fireblocks.models.tr_link_verdict_enum import TRLinkVerdictEnum
+from typing import Optional, Set
+from typing_extensions import Self
+
+class TRLinkResultFullPayload(BaseModel):
+ """
+ TRLink screening result
+ """ # noqa: E501
+ provider: StrictStr = Field(description="The TRLink provider name")
+ timestamp: Union[StrictFloat, StrictInt] = Field(description="Unix timestamp of the screening result")
+ status: StrictStr = Field(description="Status of the TRLink screening")
+ verdict: Optional[TRLinkVerdictEnum] = None
+ dest_address: Optional[StrictStr] = Field(default=None, description="The destination address associated with the TRLink screening", alias="destAddress")
+ dest_tag: Optional[StrictStr] = Field(default=None, description="Destination tag for the screening", alias="destTag")
+ bypass_reason: Optional[StrictStr] = Field(default=None, description="Reason for bypassing the TRLink screening", alias="bypassReason")
+ details_message: Optional[StrictStr] = Field(default=None, description="Additional details message about the screening result", alias="detailsMessage")
+ customer_integration_id: Optional[StrictStr] = Field(default=None, description="Customer integration identifier", alias="customerIntegrationId")
+ customer_short_name: Optional[StrictStr] = Field(default=None, description="Customer short name", alias="customerShortName")
+ travel_rule_message_id: Optional[StrictStr] = Field(default=None, description="Travel rule message identifier for linking", alias="travelRuleMessageId")
+ result: Optional[TRLinkProviderResultWithRule2] = None
+ matched_prescreening_rule: Optional[ScreeningTRLinkPrescreeningRule] = Field(default=None, alias="matchedPrescreeningRule")
+ matched_no_trm_screening_rule: Optional[ScreeningTRLinkMissingTrmDecision] = Field(default=None, alias="matchedNoTrmScreeningRule")
+ __properties: ClassVar[List[str]] = ["provider", "timestamp", "status", "verdict", "destAddress", "destTag", "bypassReason", "detailsMessage", "customerIntegrationId", "customerShortName", "travelRuleMessageId", "result", "matchedPrescreeningRule", "matchedNoTrmScreeningRule"]
+
+ @field_validator('status')
+ def status_validate_enum(cls, value):
+ """Validates the enum"""
+ 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 TRLinkResultFullPayload 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 result
+ if self.result:
+ _dict['result'] = self.result.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of matched_prescreening_rule
+ if self.matched_prescreening_rule:
+ _dict['matchedPrescreeningRule'] = self.matched_prescreening_rule.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of matched_no_trm_screening_rule
+ if self.matched_no_trm_screening_rule:
+ _dict['matchedNoTrmScreeningRule'] = self.matched_no_trm_screening_rule.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of TRLinkResultFullPayload 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"),
+ "timestamp": obj.get("timestamp"),
+ "status": obj.get("status"),
+ "verdict": obj.get("verdict"),
+ "destAddress": obj.get("destAddress"),
+ "destTag": obj.get("destTag"),
+ "bypassReason": obj.get("bypassReason"),
+ "detailsMessage": obj.get("detailsMessage"),
+ "customerIntegrationId": obj.get("customerIntegrationId"),
+ "customerShortName": obj.get("customerShortName"),
+ "travelRuleMessageId": obj.get("travelRuleMessageId"),
+ "result": TRLinkProviderResultWithRule2.from_dict(obj["result"]) if obj.get("result") is not None else None,
+ "matchedPrescreeningRule": ScreeningTRLinkPrescreeningRule.from_dict(obj["matchedPrescreeningRule"]) if obj.get("matchedPrescreeningRule") is not None else None,
+ "matchedNoTrmScreeningRule": ScreeningTRLinkMissingTrmDecision.from_dict(obj["matchedNoTrmScreeningRule"]) if obj.get("matchedNoTrmScreeningRule") is not None else None
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/tr_link_rule_base.py b/fireblocks/models/tr_link_rule_base.py
new file mode 100644
index 00000000..15ef376b
--- /dev/null
+++ b/fireblocks/models/tr_link_rule_base.py
@@ -0,0 +1,128 @@
+# 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, StrictBool, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from fireblocks.models.tr_link_amount import TRLinkAmount
+from fireblocks.models.transaction_direction import TransactionDirection
+from fireblocks.models.transaction_operation_enum import TransactionOperationEnum
+from fireblocks.models.transfer_peer_sub_type_enum import TransferPeerSubTypeEnum
+from fireblocks.models.transfer_peer_type_enum import TransferPeerTypeEnum
+from typing import Optional, Set
+from typing_extensions import Self
+
+class TRLinkRuleBase(BaseModel):
+ """
+ Base interface for TRLink policy rules
+ """ # noqa: E501
+ customer_id: Optional[StrictStr] = Field(default=None, description="Reference to TrlinkCustomer.id", alias="customerId")
+ direction: Optional[TransactionDirection] = None
+ source_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="sourceType")
+ source_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="sourceSubType")
+ source_address: Optional[StrictStr] = Field(default=None, description="Source address", alias="sourceAddress")
+ dest_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="destType")
+ dest_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="destSubType")
+ dest_address: Optional[StrictStr] = Field(default=None, description="Destination address", alias="destAddress")
+ source_id: Optional[StrictStr] = Field(default=None, description="Source ID", alias="sourceId")
+ dest_id: Optional[StrictStr] = Field(default=None, description="Destination ID", alias="destId")
+ asset: Optional[StrictStr] = Field(default=None, description="Asset symbol")
+ base_asset: Optional[StrictStr] = Field(default=None, description="Base asset symbol", alias="baseAsset")
+ amount: Optional[TRLinkAmount] = None
+ network_protocol: Optional[StrictStr] = Field(default=None, description="Network protocol", alias="networkProtocol")
+ operation: Optional[TransactionOperationEnum] = None
+ description: Optional[StrictStr] = Field(default=None, description="Rule description")
+ is_default: Optional[StrictBool] = Field(default=False, description="Whether this is a default rule", alias="isDefault")
+ __properties: ClassVar[List[str]] = ["customerId", "direction", "sourceType", "sourceSubType", "sourceAddress", "destType", "destSubType", "destAddress", "sourceId", "destId", "asset", "baseAsset", "amount", "networkProtocol", "operation", "description", "isDefault"]
+
+ 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 TRLinkRuleBase 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 amount
+ if self.amount:
+ _dict['amount'] = self.amount.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of TRLinkRuleBase from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "customerId": obj.get("customerId"),
+ "direction": obj.get("direction"),
+ "sourceType": obj.get("sourceType"),
+ "sourceSubType": obj.get("sourceSubType"),
+ "sourceAddress": obj.get("sourceAddress"),
+ "destType": obj.get("destType"),
+ "destSubType": obj.get("destSubType"),
+ "destAddress": obj.get("destAddress"),
+ "sourceId": obj.get("sourceId"),
+ "destId": obj.get("destId"),
+ "asset": obj.get("asset"),
+ "baseAsset": obj.get("baseAsset"),
+ "amount": TRLinkAmount.from_dict(obj["amount"]) if obj.get("amount") is not None else None,
+ "networkProtocol": obj.get("networkProtocol"),
+ "operation": obj.get("operation"),
+ "description": obj.get("description"),
+ "isDefault": obj.get("isDefault") if obj.get("isDefault") is not None else False
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/tr_link_trm_screening_status.py b/fireblocks/models/tr_link_trm_screening_status.py
new file mode 100644
index 00000000..7a2fabe5
--- /dev/null
+++ b/fireblocks/models/tr_link_trm_screening_status.py
@@ -0,0 +1,40 @@
+# 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 json
+from enum import Enum
+from typing_extensions import Self
+
+
+class TRLinkTrmScreeningStatus(str, Enum):
+ """
+ TRLink TRM screening status
+ """
+
+ """
+ allowed enum values
+ """
+ PENDING = 'PENDING'
+ ACCEPTED = 'ACCEPTED'
+ REJECTED = 'REJECTED'
+ FAILED = 'FAILED'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of TRLinkTrmScreeningStatus from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/fireblocks/models/tr_link_trm_screening_status_enum.py b/fireblocks/models/tr_link_trm_screening_status_enum.py
new file mode 100644
index 00000000..4180cd52
--- /dev/null
+++ b/fireblocks/models/tr_link_trm_screening_status_enum.py
@@ -0,0 +1,40 @@
+# 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 json
+from enum import Enum
+from typing_extensions import Self
+
+
+class TRLinkTrmScreeningStatusEnum(str, Enum):
+ """
+ TRLink TRM screening status
+ """
+
+ """
+ allowed enum values
+ """
+ PENDING = 'PENDING'
+ ACCEPTED = 'ACCEPTED'
+ REJECTED = 'REJECTED'
+ FAILED = 'FAILED'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of TRLinkTrmScreeningStatusEnum from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/fireblocks/models/tr_link_verdict.py b/fireblocks/models/tr_link_verdict.py
new file mode 100644
index 00000000..72db9531
--- /dev/null
+++ b/fireblocks/models/tr_link_verdict.py
@@ -0,0 +1,40 @@
+# 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 json
+from enum import Enum
+from typing_extensions import Self
+
+
+class TRLinkVerdict(str, Enum):
+ """
+ TRLink verdict after screening
+ """
+
+ """
+ allowed enum values
+ """
+ ACCEPT = 'ACCEPT'
+ ALERT = 'ALERT'
+ REJECT = 'REJECT'
+ WAIT = 'WAIT'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of TRLinkVerdict from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/fireblocks/models/tr_link_verdict_enum.py b/fireblocks/models/tr_link_verdict_enum.py
new file mode 100644
index 00000000..93885e5f
--- /dev/null
+++ b/fireblocks/models/tr_link_verdict_enum.py
@@ -0,0 +1,40 @@
+# 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 json
+from enum import Enum
+from typing_extensions import Self
+
+
+class TRLinkVerdictEnum(str, Enum):
+ """
+ TRLink verdict after screening
+ """
+
+ """
+ allowed enum values
+ """
+ ACCEPT = 'ACCEPT'
+ ALERT = 'ALERT'
+ REJECT = 'REJECT'
+ WAIT = 'WAIT'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of TRLinkVerdictEnum from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/fireblocks/models/transaction_direction.py b/fireblocks/models/transaction_direction.py
new file mode 100644
index 00000000..6d382034
--- /dev/null
+++ b/fireblocks/models/transaction_direction.py
@@ -0,0 +1,38 @@
+# 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 json
+from enum import Enum
+from typing_extensions import Self
+
+
+class TransactionDirection(str, Enum):
+ """
+ Transaction direction
+ """
+
+ """
+ allowed enum values
+ """
+ INBOUND = 'INBOUND'
+ OUTBOUND = 'OUTBOUND'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of TransactionDirection from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/fireblocks/models/transaction_operation_enum.py b/fireblocks/models/transaction_operation_enum.py
new file mode 100644
index 00000000..ea1f852d
--- /dev/null
+++ b/fireblocks/models/transaction_operation_enum.py
@@ -0,0 +1,50 @@
+# 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 json
+from enum import Enum
+from typing_extensions import Self
+
+
+class TransactionOperationEnum(str, Enum):
+ """
+ Transaction operation type
+ """
+
+ """
+ allowed enum values
+ """
+ TRANSFER = 'TRANSFER'
+ BURN = 'BURN'
+ CONTRACT_CALL = 'CONTRACT_CALL'
+ MINT = 'MINT'
+ RAW = 'RAW'
+ TYPED_MESSAGE = 'TYPED_MESSAGE'
+ ENABLE_ASSET = 'ENABLE_ASSET'
+ STAKE = 'STAKE'
+ UNSTAKE = 'UNSTAKE'
+ WITHDRAW = 'WITHDRAW'
+ REDEEM_FROM_COMPOUND = 'REDEEM_FROM_COMPOUND'
+ SUPPLY_TO_COMPOUND = 'SUPPLY_TO_COMPOUND'
+ PROGRAM_CALL = 'PROGRAM_CALL'
+ APPROVE = 'APPROVE'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of TransactionOperationEnum from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/fireblocks/models/transfer_peer_sub_type_enum.py b/fireblocks/models/transfer_peer_sub_type_enum.py
new file mode 100644
index 00000000..551958b2
--- /dev/null
+++ b/fireblocks/models/transfer_peer_sub_type_enum.py
@@ -0,0 +1,40 @@
+# 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 json
+from enum import Enum
+from typing_extensions import Self
+
+
+class TransferPeerSubTypeEnum(str, Enum):
+ """
+ Transfer peer sub-type for prescreening rules
+ """
+
+ """
+ allowed enum values
+ """
+ EXTERNAL = 'EXTERNAL'
+ INTERNAL = 'INTERNAL'
+ CONTRACT = 'CONTRACT'
+ EXCHANGETEST = 'EXCHANGETEST'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of TransferPeerSubTypeEnum from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/fireblocks/models/transfer_peer_type_enum.py b/fireblocks/models/transfer_peer_type_enum.py
new file mode 100644
index 00000000..d4c90c08
--- /dev/null
+++ b/fireblocks/models/transfer_peer_type_enum.py
@@ -0,0 +1,50 @@
+# 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 json
+from enum import Enum
+from typing_extensions import Self
+
+
+class TransferPeerTypeEnum(str, Enum):
+ """
+ Transfer peer type (source or destination)
+ """
+
+ """
+ allowed enum values
+ """
+ VAULT_ACCOUNT = 'VAULT_ACCOUNT'
+ EXCHANGE_ACCOUNT = 'EXCHANGE_ACCOUNT'
+ INTERNAL_WALLET = 'INTERNAL_WALLET'
+ EXTERNAL_WALLET = 'EXTERNAL_WALLET'
+ CONTRACT = 'CONTRACT'
+ NETWORK_CONNECTION = 'NETWORK_CONNECTION'
+ FIAT_ACCOUNT = 'FIAT_ACCOUNT'
+ COMPOUND = 'COMPOUND'
+ GAS_STATION = 'GAS_STATION'
+ ONE_TIME_ADDRESS = 'ONE_TIME_ADDRESS'
+ UNKNOWN = 'UNKNOWN'
+ END_USER_WALLET = 'END_USER_WALLET'
+ PROGRAM_CALL = 'PROGRAM_CALL'
+ MULTI_DESTINATION = 'MULTI_DESTINATION'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of TransferPeerTypeEnum from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/fireblocks/models/travel_rule_action_enum.py b/fireblocks/models/travel_rule_action_enum.py
new file mode 100644
index 00000000..2e60703f
--- /dev/null
+++ b/fireblocks/models/travel_rule_action_enum.py
@@ -0,0 +1,39 @@
+# 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 json
+from enum import Enum
+from typing_extensions import Self
+
+
+class TravelRuleActionEnum(str, Enum):
+ """
+ Travel rule action
+ """
+
+ """
+ allowed enum values
+ """
+ SCREEN = 'SCREEN'
+ BYPASS = 'BYPASS'
+ BLOCK = 'BLOCK'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of TravelRuleActionEnum from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/fireblocks/models/travel_rule_direction_enum.py b/fireblocks/models/travel_rule_direction_enum.py
new file mode 100644
index 00000000..daa25f5f
--- /dev/null
+++ b/fireblocks/models/travel_rule_direction_enum.py
@@ -0,0 +1,38 @@
+# 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 json
+from enum import Enum
+from typing_extensions import Self
+
+
+class TravelRuleDirectionEnum(str, Enum):
+ """
+ Travel rule direction
+ """
+
+ """
+ allowed enum values
+ """
+ INBOUND = 'INBOUND'
+ OUTBOUND = 'OUTBOUND'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of TravelRuleDirectionEnum from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/fireblocks/models/travel_rule_matched_rule.py b/fireblocks/models/travel_rule_matched_rule.py
new file mode 100644
index 00000000..4792cd34
--- /dev/null
+++ b/fireblocks/models/travel_rule_matched_rule.py
@@ -0,0 +1,101 @@
+# 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
+from typing import Any, ClassVar, Dict, List, Optional, Union
+from fireblocks.models.travel_rule_direction_enum import TravelRuleDirectionEnum
+from fireblocks.models.travel_rule_status_enum import TravelRuleStatusEnum
+from fireblocks.models.travel_rule_verdict_enum import TravelRuleVerdictEnum
+from typing import Optional, Set
+from typing_extensions import Self
+
+class TravelRuleMatchedRule(BaseModel):
+ """
+ The travel rule configuration that was matched
+ """ # noqa: E501
+ direction: Optional[TravelRuleDirectionEnum] = None
+ status: Optional[TravelRuleStatusEnum] = None
+ amount_usd: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Amount in USD", alias="amountUSD")
+ amount: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Amount in base currency")
+ asset: Optional[StrictStr] = Field(default=None, description="Asset identifier")
+ action: Optional[TravelRuleVerdictEnum] = None
+ __properties: ClassVar[List[str]] = ["direction", "status", "amountUSD", "amount", "asset", "action"]
+
+ 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 TravelRuleMatchedRule 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 TravelRuleMatchedRule from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "direction": obj.get("direction"),
+ "status": obj.get("status"),
+ "amountUSD": obj.get("amountUSD"),
+ "amount": obj.get("amount"),
+ "asset": obj.get("asset"),
+ "action": obj.get("action")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/travel_rule_prescreening_rule.py b/fireblocks/models/travel_rule_prescreening_rule.py
new file mode 100644
index 00000000..9c062198
--- /dev/null
+++ b/fireblocks/models/travel_rule_prescreening_rule.py
@@ -0,0 +1,124 @@
+# 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
+from typing import Any, ClassVar, Dict, List, Optional, Union
+from fireblocks.models.transaction_operation_enum import TransactionOperationEnum
+from fireblocks.models.transfer_peer_sub_type_enum import TransferPeerSubTypeEnum
+from fireblocks.models.transfer_peer_type_enum import TransferPeerTypeEnum
+from fireblocks.models.travel_rule_action_enum import TravelRuleActionEnum
+from typing import Optional, Set
+from typing_extensions import Self
+
+class TravelRulePrescreeningRule(BaseModel):
+ """
+ Matched prescreening rule details. Prescreening rules are evaluated before the main screening to determine if screening is necessary or should be bypassed.
+ """ # noqa: E501
+ bypass_reason: Optional[StrictStr] = Field(default=None, description="Reason for bypass if prescreening rule triggered a bypass", alias="bypassReason")
+ source_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="sourceType")
+ source_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="sourceSubType")
+ dest_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="destType")
+ dest_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="destSubType")
+ transfer_peer_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="transferPeerType")
+ transfer_peer_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="transferPeerSubType")
+ dest_address: Optional[StrictStr] = Field(default=None, description="Destination address", alias="destAddress")
+ source_id: Optional[StrictStr] = Field(default=None, description="Source ID", alias="sourceId")
+ dest_id: Optional[StrictStr] = Field(default=None, description="Destination ID", alias="destId")
+ asset: Optional[StrictStr] = Field(default=None, description="Asset identifier")
+ base_asset: Optional[StrictStr] = Field(default=None, description="Base asset", alias="baseAsset")
+ amount: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Amount")
+ amount_usd: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Amount in USD", alias="amountUSD")
+ network_protocol: Optional[StrictStr] = Field(default=None, description="Network protocol", alias="networkProtocol")
+ operation: Optional[TransactionOperationEnum] = None
+ action: Optional[TravelRuleActionEnum] = None
+ __properties: ClassVar[List[str]] = ["bypassReason", "sourceType", "sourceSubType", "destType", "destSubType", "transferPeerType", "transferPeerSubType", "destAddress", "sourceId", "destId", "asset", "baseAsset", "amount", "amountUSD", "networkProtocol", "operation", "action"]
+
+ 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 TravelRulePrescreeningRule 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 TravelRulePrescreeningRule from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "bypassReason": obj.get("bypassReason"),
+ "sourceType": obj.get("sourceType"),
+ "sourceSubType": obj.get("sourceSubType"),
+ "destType": obj.get("destType"),
+ "destSubType": obj.get("destSubType"),
+ "transferPeerType": obj.get("transferPeerType"),
+ "transferPeerSubType": obj.get("transferPeerSubType"),
+ "destAddress": obj.get("destAddress"),
+ "sourceId": obj.get("sourceId"),
+ "destId": obj.get("destId"),
+ "asset": obj.get("asset"),
+ "baseAsset": obj.get("baseAsset"),
+ "amount": obj.get("amount"),
+ "amountUSD": obj.get("amountUSD"),
+ "networkProtocol": obj.get("networkProtocol"),
+ "operation": obj.get("operation"),
+ "action": obj.get("action")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/travel_rule_result.py b/fireblocks/models/travel_rule_result.py
new file mode 100644
index 00000000..099d17d4
--- /dev/null
+++ b/fireblocks/models/travel_rule_result.py
@@ -0,0 +1,102 @@
+# 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, StrictBool
+from typing import Any, ClassVar, Dict, List, Optional
+from fireblocks.models.travel_rule_direction_enum import TravelRuleDirectionEnum
+from fireblocks.models.travel_rule_matched_rule import TravelRuleMatchedRule
+from fireblocks.models.travel_rule_verdict_enum import TravelRuleVerdictEnum
+from typing import Optional, Set
+from typing_extensions import Self
+
+class TravelRuleResult(BaseModel):
+ """
+ Detailed Travel Rule screening result containing provider-specific data. Contains Travel Rule specific information like verified status, rule type, and actions.
+ """ # noqa: E501
+ direction: Optional[TravelRuleDirectionEnum] = None
+ is_verified: Optional[StrictBool] = Field(default=None, description="Whether the travel rule information was verified", alias="isVerified")
+ action: Optional[TravelRuleVerdictEnum] = None
+ provider_response: Optional[Dict[str, Any]] = Field(default=None, description="Complete response from the travel rule provider. This is a dynamic object that varies significantly between different travel rule providers (NOTABENE etc.). Each provider has their own proprietary response format and schema. Examples of provider-specific structures: - NOTABENE: Contains VASP information, PII data, protocol-specific fields The structure is provider-dependent and cannot be standardized as each vendor implements their own proprietary data models and response formats. ", alias="providerResponse")
+ matched_rule: Optional[TravelRuleMatchedRule] = Field(default=None, alias="matchedRule")
+ __properties: ClassVar[List[str]] = ["direction", "isVerified", "action", "providerResponse", "matchedRule"]
+
+ 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 TravelRuleResult 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 matched_rule
+ if self.matched_rule:
+ _dict['matchedRule'] = self.matched_rule.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of TravelRuleResult from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "direction": obj.get("direction"),
+ "isVerified": obj.get("isVerified"),
+ "action": obj.get("action"),
+ "providerResponse": obj.get("providerResponse"),
+ "matchedRule": TravelRuleMatchedRule.from_dict(obj["matchedRule"]) if obj.get("matchedRule") is not None else None
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/travel_rule_status_enum.py b/fireblocks/models/travel_rule_status_enum.py
new file mode 100644
index 00000000..08d63569
--- /dev/null
+++ b/fireblocks/models/travel_rule_status_enum.py
@@ -0,0 +1,41 @@
+# 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 json
+from enum import Enum
+from typing_extensions import Self
+
+
+class TravelRuleStatusEnum(str, Enum):
+ """
+ Travel rule status
+ """
+
+ """
+ allowed enum values
+ """
+ COMPLETED = 'COMPLETED'
+ PENDING = 'PENDING'
+ BYPASSED = 'BYPASSED'
+ FAILED = 'FAILED'
+ FROZEN = 'FROZEN'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of TravelRuleStatusEnum from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/fireblocks/models/travel_rule_verdict_enum.py b/fireblocks/models/travel_rule_verdict_enum.py
new file mode 100644
index 00000000..4a9485d4
--- /dev/null
+++ b/fireblocks/models/travel_rule_verdict_enum.py
@@ -0,0 +1,40 @@
+# 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 json
+from enum import Enum
+from typing_extensions import Self
+
+
+class TravelRuleVerdictEnum(str, Enum):
+ """
+ The final verdict of the travel rule screening
+ """
+
+ """
+ allowed enum values
+ """
+ ACCEPT = 'ACCEPT'
+ REJECT = 'REJECT'
+ ALERT = 'ALERT'
+ REVIEW = 'REVIEW'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of TravelRuleVerdictEnum from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/fireblocks/models/us_wire_address.py b/fireblocks/models/us_wire_address.py
new file mode 100644
index 00000000..1ea4551e
--- /dev/null
+++ b/fireblocks/models/us_wire_address.py
@@ -0,0 +1,100 @@
+# 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.account_holder_details import AccountHolderDetails
+from typing import Optional, Set
+from typing_extensions import Self
+
+class USWireAddress(BaseModel):
+ """
+ USWireAddress
+ """ # noqa: E501
+ account_holder: AccountHolderDetails = Field(alias="accountHolder")
+ bank_name: Optional[StrictStr] = Field(default=None, description="Name of the bank.", alias="bankName")
+ bank_account_number: StrictStr = Field(description="The bank account number for the wire transfer.", alias="bankAccountNumber")
+ routing_number: StrictStr = Field(description="Routing number identifying the bank account.", alias="routingNumber")
+ bank_address: Optional[StrictStr] = Field(default=None, description="Address of the bank.", alias="bankAddress")
+ __properties: ClassVar[List[str]] = ["accountHolder", "bankName", "bankAccountNumber", "routingNumber", "bankAddress"]
+
+ 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 USWireAddress 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 account_holder
+ if self.account_holder:
+ _dict['accountHolder'] = self.account_holder.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of USWireAddress from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "accountHolder": AccountHolderDetails.from_dict(obj["accountHolder"]) if obj.get("accountHolder") is not None else None,
+ "bankName": obj.get("bankName"),
+ "bankAccountNumber": obj.get("bankAccountNumber"),
+ "routingNumber": obj.get("routingNumber"),
+ "bankAddress": obj.get("bankAddress")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/us_wire_destination.py b/fireblocks/models/us_wire_destination.py
new file mode 100644
index 00000000..29ab3cd6
--- /dev/null
+++ b/fireblocks/models/us_wire_destination.py
@@ -0,0 +1,101 @@
+# 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, StrictStr, field_validator
+from typing import Any, ClassVar, Dict, List
+from fireblocks.models.us_wire_address import USWireAddress
+from typing import Optional, Set
+from typing_extensions import Self
+
+class USWireDestination(BaseModel):
+ """
+ USWireDestination
+ """ # noqa: E501
+ type: StrictStr
+ address: USWireAddress
+ __properties: ClassVar[List[str]] = ["type", "address"]
+
+ @field_validator('type')
+ def type_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['US_WIRE']):
+ raise ValueError("must be one of enum values ('US_WIRE')")
+ 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 USWireDestination 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 address
+ if self.address:
+ _dict['address'] = self.address.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of USWireDestination from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "type": obj.get("type"),
+ "address": USWireAddress.from_dict(obj["address"]) if obj.get("address") is not None else None
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/vault_account_tag_attachment_operation.py b/fireblocks/models/vault_account_tag_attachment_operation.py
new file mode 100644
index 00000000..6cb355fa
--- /dev/null
+++ b/fireblocks/models/vault_account_tag_attachment_operation.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
+from fireblocks.models.tag_attachment_operation_action import TagAttachmentOperationAction
+from typing import Optional, Set
+from typing_extensions import Self
+
+class VaultAccountTagAttachmentOperation(BaseModel):
+ """
+ VaultAccountTagAttachmentOperation
+ """ # noqa: E501
+ vault_account_id: StrictStr = Field(description="The ID of the vault account", alias="vaultAccountId")
+ tag_id: StrictStr = Field(description="Tag ID", alias="tagId")
+ action: TagAttachmentOperationAction
+ __properties: ClassVar[List[str]] = ["vaultAccountId", "tagId", "action"]
+
+ 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 VaultAccountTagAttachmentOperation 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 VaultAccountTagAttachmentOperation from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "vaultAccountId": obj.get("vaultAccountId"),
+ "tagId": obj.get("tagId"),
+ "action": obj.get("action")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/vault_account_tag_attachment_pending_operation.py b/fireblocks/models/vault_account_tag_attachment_pending_operation.py
new file mode 100644
index 00000000..84f73ee6
--- /dev/null
+++ b/fireblocks/models/vault_account_tag_attachment_pending_operation.py
@@ -0,0 +1,95 @@
+# 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
+from fireblocks.models.tag_attachment_operation_action import TagAttachmentOperationAction
+from typing import Optional, Set
+from typing_extensions import Self
+
+class VaultAccountTagAttachmentPendingOperation(BaseModel):
+ """
+ VaultAccountTagAttachmentPendingOperation
+ """ # noqa: E501
+ vault_account_id: StrictStr = Field(description="The ID of the vault account", alias="vaultAccountId")
+ tag_id: StrictStr = Field(description="Tag ID", alias="tagId")
+ action: TagAttachmentOperationAction
+ approval_request_id: StrictStr = Field(description="Pending approval request ID", alias="approvalRequestId")
+ __properties: ClassVar[List[str]] = ["vaultAccountId", "tagId", "action", "approvalRequestId"]
+
+ 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 VaultAccountTagAttachmentPendingOperation 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 VaultAccountTagAttachmentPendingOperation from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "vaultAccountId": obj.get("vaultAccountId"),
+ "tagId": obj.get("tagId"),
+ "action": obj.get("action"),
+ "approvalRequestId": obj.get("approvalRequestId")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/vault_account_tag_attachment_rejected_operation.py b/fireblocks/models/vault_account_tag_attachment_rejected_operation.py
new file mode 100644
index 00000000..12dab65a
--- /dev/null
+++ b/fireblocks/models/vault_account_tag_attachment_rejected_operation.py
@@ -0,0 +1,102 @@
+# 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
+from fireblocks.models.tag_attachment_operation_action import TagAttachmentOperationAction
+from typing import Optional, Set
+from typing_extensions import Self
+
+class VaultAccountTagAttachmentRejectedOperation(BaseModel):
+ """
+ VaultAccountTagAttachmentRejectedOperation
+ """ # noqa: E501
+ vault_account_id: StrictStr = Field(description="The ID of the vault account", alias="vaultAccountId")
+ tag_id: StrictStr = Field(description="Tag ID", alias="tagId")
+ action: TagAttachmentOperationAction
+ reason: StrictStr = Field(description="Reason for rejection")
+ __properties: ClassVar[List[str]] = ["vaultAccountId", "tagId", "action", "reason"]
+
+ @field_validator('reason')
+ def reason_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['CAPACITY_EXCEEDED', 'ATTACHMENT_ALREADY_EXISTS', 'ATTACHMENT_DOES_NOT_EXIST', 'PENDING_REQUEST_EXISTS']):
+ raise ValueError("must be one of enum values ('CAPACITY_EXCEEDED', 'ATTACHMENT_ALREADY_EXISTS', 'ATTACHMENT_DOES_NOT_EXIST', 'PENDING_REQUEST_EXISTS')")
+ 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 VaultAccountTagAttachmentRejectedOperation 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 VaultAccountTagAttachmentRejectedOperation from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "vaultAccountId": obj.get("vaultAccountId"),
+ "tagId": obj.get("tagId"),
+ "action": obj.get("action"),
+ "reason": obj.get("reason")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/vault_accounts_tag_attachment_operations_request.py b/fireblocks/models/vault_accounts_tag_attachment_operations_request.py
new file mode 100644
index 00000000..f4acccac
--- /dev/null
+++ b/fireblocks/models/vault_accounts_tag_attachment_operations_request.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 typing_extensions import Annotated
+from typing import Optional, Set
+from typing_extensions import Self
+
+class VaultAccountsTagAttachmentOperationsRequest(BaseModel):
+ """
+ VaultAccountsTagAttachmentOperationsRequest
+ """ # noqa: E501
+ vault_account_ids: Annotated[List[StrictStr], Field(min_length=1, max_length=100)] = Field(description="The IDs of the vault accounts to attach tags to", alias="vaultAccountIds")
+ tag_ids_to_attach: Optional[Annotated[List[StrictStr], Field(min_length=1, max_length=20)]] = Field(default=None, description="The IDs of the tags to attach", alias="tagIdsToAttach")
+ tag_ids_to_detach: Optional[Annotated[List[StrictStr], Field(min_length=1, max_length=20)]] = Field(default=None, description="The IDs of the tags to detach", alias="tagIdsToDetach")
+ __properties: ClassVar[List[str]] = ["vaultAccountIds", "tagIdsToAttach", "tagIdsToDetach"]
+
+ 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 VaultAccountsTagAttachmentOperationsRequest 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 VaultAccountsTagAttachmentOperationsRequest from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "vaultAccountIds": obj.get("vaultAccountIds"),
+ "tagIdsToAttach": obj.get("tagIdsToAttach"),
+ "tagIdsToDetach": obj.get("tagIdsToDetach")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/vault_accounts_tag_attachment_operations_response.py b/fireblocks/models/vault_accounts_tag_attachment_operations_response.py
new file mode 100644
index 00000000..d19d65f6
--- /dev/null
+++ b/fireblocks/models/vault_accounts_tag_attachment_operations_response.py
@@ -0,0 +1,116 @@
+# 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
+from typing import Any, ClassVar, Dict, List, Optional
+from fireblocks.models.vault_account_tag_attachment_operation import VaultAccountTagAttachmentOperation
+from fireblocks.models.vault_account_tag_attachment_pending_operation import VaultAccountTagAttachmentPendingOperation
+from fireblocks.models.vault_account_tag_attachment_rejected_operation import VaultAccountTagAttachmentRejectedOperation
+from typing import Optional, Set
+from typing_extensions import Self
+
+class VaultAccountsTagAttachmentOperationsResponse(BaseModel):
+ """
+ VaultAccountsTagAttachmentOperationsResponse
+ """ # noqa: E501
+ applied_operations: Optional[List[VaultAccountTagAttachmentOperation]] = Field(default=None, description="The operations that were applied", alias="appliedOperations")
+ pending_operations: Optional[List[VaultAccountTagAttachmentPendingOperation]] = Field(default=None, description="The operations that are pending", alias="pendingOperations")
+ rejected_operations: Optional[List[VaultAccountTagAttachmentRejectedOperation]] = Field(default=None, description="The operations that were rejected", alias="rejectedOperations")
+ __properties: ClassVar[List[str]] = ["appliedOperations", "pendingOperations", "rejectedOperations"]
+
+ 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 VaultAccountsTagAttachmentOperationsResponse 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 applied_operations (list)
+ _items = []
+ if self.applied_operations:
+ for _item_applied_operations in self.applied_operations:
+ if _item_applied_operations:
+ _items.append(_item_applied_operations.to_dict())
+ _dict['appliedOperations'] = _items
+ # override the default output from pydantic by calling `to_dict()` of each item in pending_operations (list)
+ _items = []
+ if self.pending_operations:
+ for _item_pending_operations in self.pending_operations:
+ if _item_pending_operations:
+ _items.append(_item_pending_operations.to_dict())
+ _dict['pendingOperations'] = _items
+ # override the default output from pydantic by calling `to_dict()` of each item in rejected_operations (list)
+ _items = []
+ if self.rejected_operations:
+ for _item_rejected_operations in self.rejected_operations:
+ if _item_rejected_operations:
+ _items.append(_item_rejected_operations.to_dict())
+ _dict['rejectedOperations'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of VaultAccountsTagAttachmentOperationsResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "appliedOperations": [VaultAccountTagAttachmentOperation.from_dict(_item) for _item in obj["appliedOperations"]] if obj.get("appliedOperations") is not None else None,
+ "pendingOperations": [VaultAccountTagAttachmentPendingOperation.from_dict(_item) for _item in obj["pendingOperations"]] if obj.get("pendingOperations") is not None else None,
+ "rejectedOperations": [VaultAccountTagAttachmentRejectedOperation.from_dict(_item) for _item in obj["rejectedOperations"]] if obj.get("rejectedOperations") is not None else None
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/webhook_metric.py b/fireblocks/models/webhook_metric.py
new file mode 100644
index 00000000..db4943fa
--- /dev/null
+++ b/fireblocks/models/webhook_metric.py
@@ -0,0 +1,88 @@
+# 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
+from typing import Optional, Set
+from typing_extensions import Self
+
+class WebhookMetric(BaseModel):
+ """
+ WebhookMetric
+ """ # noqa: E501
+ value: StrictStr = Field(description="The value of the metric")
+ __properties: ClassVar[List[str]] = ["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 WebhookMetric 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 WebhookMetric from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "value": obj.get("value")
+ })
+ return _obj
+
+
diff --git a/pyproject.toml b/pyproject.toml
index cf0eb932..05cad60c 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "fireblocks"
-version = "12.1.2"
+version = "0.0.0"
description = "Fireblocks API"
authors = ["Fireblocks "]
license = "MIT License"
diff --git a/setup.py b/setup.py
index 3db9afb6..79def177 100644
--- a/setup.py
+++ b/setup.py
@@ -23,7 +23,7 @@
# prerequisite: setuptools
# http://pypi.python.org/pypi/setuptools
NAME = "fireblocks"
-VERSION = "12.1.2"
+VERSION = "0.0.0"
PYTHON_REQUIRES = ">= 3.8"
REQUIRES = [
"urllib3 >= 2.1.0, < 3.0.0",
diff --git a/test/test_account_based_access_provider_details.py b/test/test_account_based_access_provider_details.py
new file mode 100644
index 00000000..53d50f84
--- /dev/null
+++ b/test/test_account_based_access_provider_details.py
@@ -0,0 +1,62 @@
+# 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.account_based_access_provider_details import (
+ AccountBasedAccessProviderDetails,
+)
+
+
+class TestAccountBasedAccessProviderDetails(unittest.TestCase):
+ """AccountBasedAccessProviderDetails unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AccountBasedAccessProviderDetails:
+ """Test AccountBasedAccessProviderDetails
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `AccountBasedAccessProviderDetails`
+ """
+ model = AccountBasedAccessProviderDetails()
+ if include_optional:
+ return AccountBasedAccessProviderDetails(
+ manifest = {"assetTypes":["DIGITAL","FIAT"],"capabilities":["SPOT_TRADING","LIMIT_ORDERS"]},
+ connected = True,
+ accounts = [
+ {"id":"acc_9f4e2d8b1c6a5e73","name":"Main Trading Account"}
+ ]
+ )
+ else:
+ return AccountBasedAccessProviderDetails(
+ manifest = {"assetTypes":["DIGITAL","FIAT"],"capabilities":["SPOT_TRADING","LIMIT_ORDERS"]},
+ connected = True,
+ )
+ """
+
+ def testAccountBasedAccessProviderDetails(self):
+ """Test AccountBasedAccessProviderDetails"""
+ # 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_account_config.py b/test/test_account_config.py
index 48cb9512..f404f64b 100644
--- a/test/test_account_config.py
+++ b/test/test_account_config.py
@@ -37,7 +37,9 @@ def make_instance(self, include_optional) -> AccountConfig:
model = AccountConfig()
if include_optional:
return AccountConfig(
- type = 'VAULT',
+ type = [
+ 'VAULT'
+ ],
sub_type = [
fireblocks.models.account_identifier.AccountIdentifier(
type = 'VAULT',
@@ -52,12 +54,15 @@ def make_instance(self, include_optional) -> AccountConfig:
sub_type = 'INTERNAL',
address = '0x123...', )
],
+ tags = [
+ fireblocks.models.policy_tag.PolicyTag(
+ id = 'tag_001', )
+ ],
operator = 'INCLUDES',
match_from = 'ACCOUNT'
)
else:
return AccountConfig(
- type = 'VAULT',
operator = 'INCLUDES',
)
"""
diff --git a/test/test_ach_account_type.py b/test/test_ach_account_type.py
new file mode 100644
index 00000000..22c70668
--- /dev/null
+++ b/test/test_ach_account_type.py
@@ -0,0 +1,36 @@
+# 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.ach_account_type import AchAccountType
+
+
+class TestAchAccountType(unittest.TestCase):
+ """AchAccountType unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testAchAccountType(self):
+ """Test AchAccountType"""
+ # inst = AchAccountType()
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_quote_execution_with_requote_response_details_all_of_re_quote.py b/test/test_ach_address.py
similarity index 50%
rename from test/test_quote_execution_with_requote_response_details_all_of_re_quote.py
rename to test/test_ach_address.py
index 50afcc63..679b6a4e 100644
--- a/test/test_quote_execution_with_requote_response_details_all_of_re_quote.py
+++ b/test/test_ach_address.py
@@ -15,13 +15,11 @@
import unittest
-from fireblocks.models.quote_execution_with_requote_response_details_all_of_re_quote import (
- QuoteExecutionWithRequoteResponseDetailsAllOfReQuote,
-)
+from fireblocks.models.ach_address import AchAddress
-class TestQuoteExecutionWithRequoteResponseDetailsAllOfReQuote(unittest.TestCase):
- """QuoteExecutionWithRequoteResponseDetailsAllOfReQuote unit test stubs"""
+class TestAchAddress(unittest.TestCase):
+ """AchAddress unit test stubs"""
def setUp(self):
pass
@@ -29,31 +27,33 @@ def setUp(self):
def tearDown(self):
pass
- def make_instance(
- self, include_optional
- ) -> QuoteExecutionWithRequoteResponseDetailsAllOfReQuote:
- """Test QuoteExecutionWithRequoteResponseDetailsAllOfReQuote
+ def make_instance(self, include_optional) -> AchAddress:
+ """Test AchAddress
include_optional is a boolean, when False only required
params are included, when True both required and
optional params are included"""
- # uncomment below to create an instance of `QuoteExecutionWithRequoteResponseDetailsAllOfReQuote`
+ # uncomment below to create an instance of `AchAddress`
"""
- model = QuoteExecutionWithRequoteResponseDetailsAllOfReQuote()
+ model = AchAddress()
if include_optional:
- return QuoteExecutionWithRequoteResponseDetailsAllOfReQuote(
- type = 'MARKET',
- count = 1,
- slippage_bps = 1
+ return AchAddress(
+ account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"},
+ bank_name = '',
+ bank_account_number = '4807288800',
+ routing_number = '048072888',
+ account_type = 'CHECKING'
)
else:
- return QuoteExecutionWithRequoteResponseDetailsAllOfReQuote(
- type = 'MARKET',
- count = 1,
+ return AchAddress(
+ account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"},
+ bank_account_number = '4807288800',
+ routing_number = '048072888',
+ account_type = 'CHECKING',
)
"""
- def testQuoteExecutionWithRequoteResponseDetailsAllOfReQuote(self):
- """Test QuoteExecutionWithRequoteResponseDetailsAllOfReQuote"""
+ def testAchAddress(self):
+ """Test AchAddress"""
# inst_req_only = self.make_instance(include_optional=False)
# inst_req_and_optional = self.make_instance(include_optional=True)
diff --git a/test/test_ach_destination.py b/test/test_ach_destination.py
new file mode 100644
index 00000000..94c0a840
--- /dev/null
+++ b/test/test_ach_destination.py
@@ -0,0 +1,57 @@
+# 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.ach_destination import AchDestination
+
+
+class TestAchDestination(unittest.TestCase):
+ """AchDestination unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AchDestination:
+ """Test AchDestination
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `AchDestination`
+ """
+ model = AchDestination()
+ if include_optional:
+ return AchDestination(
+ type = 'ACH',
+ address = {"accountHolder":{"name":"Sarah Johnson","city":"Austin","country":"US","subdivision":"TX","address":"456 Oak Avenue","postalCode":"78701"},"bankName":"Chase Bank","bankAccountNumber":"1234567890123","routingNumber":"021000021","accountType":"CHECKING"}
+ )
+ else:
+ return AchDestination(
+ type = 'ACH',
+ address = {"accountHolder":{"name":"Sarah Johnson","city":"Austin","country":"US","subdivision":"TX","address":"456 Oak Avenue","postalCode":"78701"},"bankName":"Chase Bank","bankAccountNumber":"1234567890123","routingNumber":"021000021","accountType":"CHECKING"},
+ )
+ """
+
+ def testAchDestination(self):
+ """Test AchDestination"""
+ # 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_alert_exposure_type_enum.py b/test/test_alert_exposure_type_enum.py
new file mode 100644
index 00000000..da4e4cf2
--- /dev/null
+++ b/test/test_alert_exposure_type_enum.py
@@ -0,0 +1,36 @@
+# 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.alert_exposure_type_enum import AlertExposureTypeEnum
+
+
+class TestAlertExposureTypeEnum(unittest.TestCase):
+ """AlertExposureTypeEnum unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testAlertExposureTypeEnum(self):
+ """Test AlertExposureTypeEnum"""
+ # inst = AlertExposureTypeEnum()
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_alert_level_enum.py b/test/test_alert_level_enum.py
new file mode 100644
index 00000000..70016e57
--- /dev/null
+++ b/test/test_alert_level_enum.py
@@ -0,0 +1,36 @@
+# 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.alert_level_enum import AlertLevelEnum
+
+
+class TestAlertLevelEnum(unittest.TestCase):
+ """AlertLevelEnum unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testAlertLevelEnum(self):
+ """Test AlertLevelEnum"""
+ # inst = AlertLevelEnum()
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_aml_alert.py b/test/test_aml_alert.py
new file mode 100644
index 00000000..4ca9e48d
--- /dev/null
+++ b/test/test_aml_alert.py
@@ -0,0 +1,66 @@
+# 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_alert import AmlAlert
+
+
+class TestAmlAlert(unittest.TestCase):
+ """AmlAlert unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AmlAlert:
+ """Test AmlAlert
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `AmlAlert`
+ """
+ model = AmlAlert()
+ if include_optional:
+ return AmlAlert(
+ alert_level = 'HIGH',
+ alert_name = 'Sanctions Match',
+ category = 'SANCTIONED_ENTITY',
+ service = 'CHAINALYSIS',
+ external_id = 'alert_12345',
+ alert_amount = 1000.5,
+ exposure_type = 'DIRECT',
+ policy_action = 'BLOCK',
+ category_id = 101
+ )
+ else:
+ return AmlAlert(
+ alert_level = 'HIGH',
+ external_id = 'alert_12345',
+ alert_amount = 1000.5,
+ exposure_type = 'DIRECT',
+ )
+ """
+
+ def testAmlAlert(self):
+ """Test AmlAlert"""
+ # 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_matched_rule.py b/test/test_aml_matched_rule.py
new file mode 100644
index 00000000..36aa838f
--- /dev/null
+++ b/test/test_aml_matched_rule.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.aml_matched_rule import AmlMatchedRule
+
+
+class TestAmlMatchedRule(unittest.TestCase):
+ """AmlMatchedRule unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AmlMatchedRule:
+ """Test AmlMatchedRule
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `AmlMatchedRule`
+ """
+ model = AmlMatchedRule()
+ if include_optional:
+ return AmlMatchedRule(
+ rule_id = 'rule_001',
+ rule_name = 'High Risk Sanctions Check',
+ action = 'ALLOW'
+ )
+ else:
+ return AmlMatchedRule(
+ )
+ """
+
+ def testAmlMatchedRule(self):
+ """Test AmlMatchedRule"""
+ # 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_result.py b/test/test_aml_result.py
new file mode 100644
index 00000000..523bf3c4
--- /dev/null
+++ b/test/test_aml_result.py
@@ -0,0 +1,80 @@
+# 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_result import AmlResult
+
+
+class TestAmlResult(unittest.TestCase):
+ """AmlResult unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AmlResult:
+ """Test AmlResult
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `AmlResult`
+ """
+ model = AmlResult()
+ if include_optional:
+ return AmlResult(
+ alerts = [
+ fireblocks.models.aml_alert.AmlAlert(
+ alert_level = 'HIGH',
+ alert_name = 'Sanctions Match',
+ category = 'SANCTIONED_ENTITY',
+ service = 'CHAINALYSIS',
+ external_id = 'alert_12345',
+ alert_amount = 1000.5,
+ exposure_type = 'DIRECT',
+ policy_action = 'BLOCK',
+ category_id = 101, )
+ ],
+ provider_response = { },
+ matched_rule = fireblocks.models.aml_matched_rule.AmlMatchedRule(
+ rule_id = 'rule_001',
+ rule_name = 'High Risk Sanctions Check',
+ action = 'ALLOW', ),
+ matched_alert = fireblocks.models.aml_alert.AmlAlert(
+ alert_level = 'HIGH',
+ alert_name = 'Sanctions Match',
+ category = 'SANCTIONED_ENTITY',
+ service = 'CHAINALYSIS',
+ external_id = 'alert_12345',
+ alert_amount = 1000.5,
+ exposure_type = 'DIRECT',
+ policy_action = 'BLOCK',
+ category_id = 101, )
+ )
+ else:
+ return AmlResult(
+ )
+ """
+
+ def testAmlResult(self):
+ """Test AmlResult"""
+ # 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_status_enum.py b/test/test_aml_status_enum.py
new file mode 100644
index 00000000..aee73ed3
--- /dev/null
+++ b/test/test_aml_status_enum.py
@@ -0,0 +1,36 @@
+# 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_status_enum import AmlStatusEnum
+
+
+class TestAmlStatusEnum(unittest.TestCase):
+ """AmlStatusEnum unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testAmlStatusEnum(self):
+ """Test AmlStatusEnum"""
+ # inst = AmlStatusEnum()
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_amount_config.py b/test/test_amount_config.py
new file mode 100644
index 00000000..0164d055
--- /dev/null
+++ b/test/test_amount_config.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.amount_config import AmountConfig
+
+
+class TestAmountConfig(unittest.TestCase):
+ """AmountConfig unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AmountConfig:
+ """Test AmountConfig
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `AmountConfig`
+ """
+ model = AmountConfig()
+ if include_optional:
+ return AmountConfig(
+ range = {"min":"100","max":"10000"},
+ currency = 'USD'
+ )
+ else:
+ return AmountConfig(
+ range = {"min":"100","max":"10000"},
+ )
+ """
+
+ def testAmountConfig(self):
+ """Test AmountConfig"""
+ # 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_amount_config_currency.py b/test/test_amount_config_currency.py
new file mode 100644
index 00000000..29ff1254
--- /dev/null
+++ b/test/test_amount_config_currency.py
@@ -0,0 +1,54 @@
+# 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.amount_config_currency import AmountConfigCurrency
+
+
+class TestAmountConfigCurrency(unittest.TestCase):
+ """AmountConfigCurrency unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AmountConfigCurrency:
+ """Test AmountConfigCurrency
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `AmountConfigCurrency`
+ """
+ model = AmountConfigCurrency()
+ if include_optional:
+ return AmountConfigCurrency(
+ currency = 'USD'
+ )
+ else:
+ return AmountConfigCurrency(
+ )
+ """
+
+ def testAmountConfigCurrency(self):
+ """Test AmountConfigCurrency"""
+ # 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_amount_over_time_config.py b/test/test_amount_over_time_config.py
index c5ca239e..469f8f6e 100644
--- a/test/test_amount_over_time_config.py
+++ b/test/test_amount_over_time_config.py
@@ -37,9 +37,7 @@ def make_instance(self, include_optional) -> AmountOverTimeConfig:
model = AmountOverTimeConfig()
if include_optional:
return AmountOverTimeConfig(
- range = fireblocks.models.amount_over_time_config_range.AmountOverTimeConfig_range(
- min = '100',
- max = '10000', ),
+ range = {"min":"100","max":"10000"},
currency = 'USD',
time_period = fireblocks.models.time_period_config.TimePeriodConfig(
seconds = '86400',
@@ -49,9 +47,8 @@ def make_instance(self, include_optional) -> AmountOverTimeConfig:
)
else:
return AmountOverTimeConfig(
- range = fireblocks.models.amount_over_time_config_range.AmountOverTimeConfig_range(
- min = '100',
- max = '10000', ),
+ range = {"min":"100","max":"10000"},
+ currency = 'USD',
time_period = fireblocks.models.time_period_config.TimePeriodConfig(
seconds = '86400',
initiator = 'PER_SINGLE_MATCH',
diff --git a/test/test_amount_range.py b/test/test_amount_range.py
index 9180b324..9ce37428 100644
--- a/test/test_amount_range.py
+++ b/test/test_amount_range.py
@@ -37,15 +37,11 @@ def make_instance(self, include_optional) -> AmountRange:
model = AmountRange()
if include_optional:
return AmountRange(
- min = '100',
- max = '10000',
- currency = 'USD'
+ range = {"min":"100","max":"10000"}
)
else:
return AmountRange(
- min = '100',
- max = '10000',
- currency = 'USD',
+ range = {"min":"100","max":"10000"},
)
"""
diff --git a/test/test_amount_range_min_max.py b/test/test_amount_range_min_max.py
new file mode 100644
index 00000000..f25c7be6
--- /dev/null
+++ b/test/test_amount_range_min_max.py
@@ -0,0 +1,55 @@
+# 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.amount_range_min_max import AmountRangeMinMax
+
+
+class TestAmountRangeMinMax(unittest.TestCase):
+ """AmountRangeMinMax unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AmountRangeMinMax:
+ """Test AmountRangeMinMax
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `AmountRangeMinMax`
+ """
+ model = AmountRangeMinMax()
+ if include_optional:
+ return AmountRangeMinMax(
+ min = '100',
+ max = '10000'
+ )
+ else:
+ return AmountRangeMinMax(
+ )
+ """
+
+ def testAmountRangeMinMax(self):
+ """Test AmountRangeMinMax"""
+ # 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_amount_over_time_config_range.py b/test/test_amount_range_min_max2.py
similarity index 60%
rename from test/test_amount_over_time_config_range.py
rename to test/test_amount_range_min_max2.py
index 276775eb..a30d316c 100644
--- a/test/test_amount_over_time_config_range.py
+++ b/test/test_amount_range_min_max2.py
@@ -15,11 +15,11 @@
import unittest
-from fireblocks.models.amount_over_time_config_range import AmountOverTimeConfigRange
+from fireblocks.models.amount_range_min_max2 import AmountRangeMinMax2
-class TestAmountOverTimeConfigRange(unittest.TestCase):
- """AmountOverTimeConfigRange unit test stubs"""
+class TestAmountRangeMinMax2(unittest.TestCase):
+ """AmountRangeMinMax2 unit test stubs"""
def setUp(self):
pass
@@ -27,27 +27,27 @@ def setUp(self):
def tearDown(self):
pass
- def make_instance(self, include_optional) -> AmountOverTimeConfigRange:
- """Test AmountOverTimeConfigRange
+ def make_instance(self, include_optional) -> AmountRangeMinMax2:
+ """Test AmountRangeMinMax2
include_optional is a boolean, when False only required
params are included, when True both required and
optional params are included"""
- # uncomment below to create an instance of `AmountOverTimeConfigRange`
+ # uncomment below to create an instance of `AmountRangeMinMax2`
"""
- model = AmountOverTimeConfigRange()
+ model = AmountRangeMinMax2()
if include_optional:
- return AmountOverTimeConfigRange(
+ return AmountRangeMinMax2(
min = '100',
max = '10000'
)
else:
- return AmountOverTimeConfigRange(
+ return AmountRangeMinMax2(
min = '100',
)
"""
- def testAmountOverTimeConfigRange(self):
- """Test AmountOverTimeConfigRange"""
+ def testAmountRangeMinMax2(self):
+ """Test AmountRangeMinMax2"""
# inst_req_only = self.make_instance(include_optional=False)
# inst_req_and_optional = self.make_instance(include_optional=True)
diff --git a/test/test_approvers_config.py b/test/test_approvers_config.py
index d00678ea..1354e4e6 100644
--- a/test/test_approvers_config.py
+++ b/test/test_approvers_config.py
@@ -44,6 +44,7 @@ def make_instance(self, include_optional) -> ApproversConfig:
)
else:
return ApproversConfig(
+ can_initiator_approve = False,
)
"""
diff --git a/test/test_compliance_result_full_payload.py b/test/test_compliance_result_full_payload.py
index 7da3ed23..86d1f183 100644
--- a/test/test_compliance_result_full_payload.py
+++ b/test/test_compliance_result_full_payload.py
@@ -38,30 +38,271 @@ def make_instance(self, include_optional) -> ComplianceResultFullPayload:
if include_optional:
return ComplianceResultFullPayload(
aml = fireblocks.models.compliance_screening_result_full_payload.ComplianceScreeningResultFullPayload(
- provider = '',
+ provider = 'NOTABENE',
payload = fireblocks.models.payload.payload(),
- bypass_reason = '',
+ timestamp = 1753459111824,
screening_status = 'COMPLETED',
- timestamp = 1.337, ),
+ bypass_reason = 'BELOW_THRESHOLD',
+ status = 'COMPLETED',
+ prev_status = 'COMPLETED',
+ prev_bypass_reason = 'BELOW_THRESHOLD',
+ verdict = 'PASS',
+ risk = 'LOW',
+ extended_risk = 'LOW',
+ external_id = 'aml_screening_12345',
+ customer_ref_id = 'customer_ref_789',
+ ref_id = 'ref_12345',
+ category = 'EXCHANGE',
+ category_id = 5,
+ dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715',
+ dest_tag = 'memo_12345',
+ dest_record_id = 'record_001',
+ address_resolution_signature = '0x1234567890abcdef',
+ aml_result = fireblocks.models.screening_aml_result.ScreeningAmlResult(
+ alerts = [
+ fireblocks.models.screening_aml_alert.ScreeningAmlAlert(
+ alert_level = 'HIGH',
+ alert_name = 'Sanctions Match',
+ category = 'SANCTIONED_ENTITY',
+ service = 'CHAINALYSIS',
+ external_id = 'alert_12345',
+ alert_amount = 1000.5,
+ exposure_type = 'DIRECT',
+ policy_action = 'BLOCK',
+ category_id = 101, )
+ ],
+ provider_response = { },
+ matched_rule = fireblocks.models.screening_aml_matched_rule.ScreeningAmlMatchedRule(
+ rule_id = 'rule_001',
+ rule_name = 'High Risk Sanctions Check',
+ action = 'ALLOW', ),
+ matched_alert = fireblocks.models.screening_aml_alert.ScreeningAmlAlert(
+ alert_level = 'HIGH',
+ alert_name = 'Sanctions Match',
+ category = 'SANCTIONED_ENTITY',
+ service = 'CHAINALYSIS',
+ external_id = 'alert_12345',
+ alert_amount = 1000.5,
+ exposure_type = 'DIRECT',
+ policy_action = 'BLOCK',
+ category_id = 101, ), ),
+ result = fireblocks.models.screening_travel_rule_result.ScreeningTravelRuleResult(
+ direction = 'OUTBOUND',
+ is_verified = True, ),
+ details_message = 'Travel rule screening completed successfully',
+ matched_alert = fireblocks.models.matched_alert.matchedAlert(),
+ matched_rule = fireblocks.models.matched_rule.matchedRule(),
+ matched_prescreening_rule = fireblocks.models.screening_travel_rule_prescreening_rule.ScreeningTravelRulePrescreeningRule(
+ bypass_reason = 'MANUAL',
+ source_type = 'VAULT_ACCOUNT',
+ source_sub_type = 'INTERNAL',
+ dest_type = 'VAULT_ACCOUNT',
+ dest_sub_type = 'INTERNAL',
+ transfer_peer_type = 'VAULT_ACCOUNT',
+ transfer_peer_sub_type = 'INTERNAL',
+ dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715',
+ source_id = '0',
+ dest_id = '2',
+ asset = 'ETH',
+ base_asset = 'ETH',
+ amount = 0.5,
+ amount_usd = 1000,
+ network_protocol = 'ETH',
+ operation = 'TRANSFER', ),
+ matched_no_trm_screening_rule = fireblocks.models.matched_no_trm_screening_rule.matchedNoTrmScreeningRule(),
+ customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ customer_short_name = 'ACME Corp',
+ travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', ),
tr = fireblocks.models.compliance_screening_result_full_payload.ComplianceScreeningResultFullPayload(
- provider = '',
+ provider = 'NOTABENE',
payload = fireblocks.models.payload.payload(),
- bypass_reason = '',
+ timestamp = 1753459111824,
screening_status = 'COMPLETED',
- timestamp = 1.337, ),
+ bypass_reason = 'BELOW_THRESHOLD',
+ status = 'COMPLETED',
+ prev_status = 'COMPLETED',
+ prev_bypass_reason = 'BELOW_THRESHOLD',
+ verdict = 'PASS',
+ risk = 'LOW',
+ extended_risk = 'LOW',
+ external_id = 'aml_screening_12345',
+ customer_ref_id = 'customer_ref_789',
+ ref_id = 'ref_12345',
+ category = 'EXCHANGE',
+ category_id = 5,
+ dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715',
+ dest_tag = 'memo_12345',
+ dest_record_id = 'record_001',
+ address_resolution_signature = '0x1234567890abcdef',
+ aml_result = fireblocks.models.screening_aml_result.ScreeningAmlResult(
+ alerts = [
+ fireblocks.models.screening_aml_alert.ScreeningAmlAlert(
+ alert_level = 'HIGH',
+ alert_name = 'Sanctions Match',
+ category = 'SANCTIONED_ENTITY',
+ service = 'CHAINALYSIS',
+ external_id = 'alert_12345',
+ alert_amount = 1000.5,
+ exposure_type = 'DIRECT',
+ policy_action = 'BLOCK',
+ category_id = 101, )
+ ],
+ provider_response = { },
+ matched_rule = fireblocks.models.screening_aml_matched_rule.ScreeningAmlMatchedRule(
+ rule_id = 'rule_001',
+ rule_name = 'High Risk Sanctions Check',
+ action = 'ALLOW', ),
+ matched_alert = fireblocks.models.screening_aml_alert.ScreeningAmlAlert(
+ alert_level = 'HIGH',
+ alert_name = 'Sanctions Match',
+ category = 'SANCTIONED_ENTITY',
+ service = 'CHAINALYSIS',
+ external_id = 'alert_12345',
+ alert_amount = 1000.5,
+ exposure_type = 'DIRECT',
+ policy_action = 'BLOCK',
+ category_id = 101, ), ),
+ result = fireblocks.models.screening_travel_rule_result.ScreeningTravelRuleResult(
+ direction = 'OUTBOUND',
+ is_verified = True, ),
+ details_message = 'Travel rule screening completed successfully',
+ matched_alert = fireblocks.models.matched_alert.matchedAlert(),
+ matched_rule = fireblocks.models.matched_rule.matchedRule(),
+ matched_prescreening_rule = fireblocks.models.screening_travel_rule_prescreening_rule.ScreeningTravelRulePrescreeningRule(
+ bypass_reason = 'MANUAL',
+ source_type = 'VAULT_ACCOUNT',
+ source_sub_type = 'INTERNAL',
+ dest_type = 'VAULT_ACCOUNT',
+ dest_sub_type = 'INTERNAL',
+ transfer_peer_type = 'VAULT_ACCOUNT',
+ transfer_peer_sub_type = 'INTERNAL',
+ dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715',
+ source_id = '0',
+ dest_id = '2',
+ asset = 'ETH',
+ base_asset = 'ETH',
+ amount = 0.5,
+ amount_usd = 1000,
+ network_protocol = 'ETH',
+ operation = 'TRANSFER', ),
+ matched_no_trm_screening_rule = fireblocks.models.matched_no_trm_screening_rule.matchedNoTrmScreeningRule(),
+ customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ customer_short_name = 'ACME Corp',
+ travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', ),
aml_list = [
fireblocks.models.compliance_screening_result_full_payload.ComplianceScreeningResultFullPayload(
- provider = '',
+ provider = 'NOTABENE',
payload = fireblocks.models.payload.payload(),
- bypass_reason = '',
+ timestamp = 1753459111824,
screening_status = 'COMPLETED',
- timestamp = 1.337, )
+ bypass_reason = 'BELOW_THRESHOLD',
+ status = 'COMPLETED',
+ prev_status = 'COMPLETED',
+ prev_bypass_reason = 'BELOW_THRESHOLD',
+ verdict = 'PASS',
+ risk = 'LOW',
+ extended_risk = 'LOW',
+ external_id = 'aml_screening_12345',
+ customer_ref_id = 'customer_ref_789',
+ ref_id = 'ref_12345',
+ category = 'EXCHANGE',
+ category_id = 5,
+ dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715',
+ dest_tag = 'memo_12345',
+ dest_record_id = 'record_001',
+ address_resolution_signature = '0x1234567890abcdef',
+ aml_result = fireblocks.models.screening_aml_result.ScreeningAmlResult(
+ alerts = [
+ fireblocks.models.screening_aml_alert.ScreeningAmlAlert(
+ alert_level = 'HIGH',
+ alert_name = 'Sanctions Match',
+ category = 'SANCTIONED_ENTITY',
+ service = 'CHAINALYSIS',
+ external_id = 'alert_12345',
+ alert_amount = 1000.5,
+ exposure_type = 'DIRECT',
+ policy_action = 'BLOCK',
+ category_id = 101, )
+ ],
+ provider_response = { },
+ matched_rule = fireblocks.models.screening_aml_matched_rule.ScreeningAmlMatchedRule(
+ rule_id = 'rule_001',
+ rule_name = 'High Risk Sanctions Check',
+ action = 'ALLOW', ),
+ matched_alert = fireblocks.models.screening_aml_alert.ScreeningAmlAlert(
+ alert_level = 'HIGH',
+ alert_name = 'Sanctions Match',
+ category = 'SANCTIONED_ENTITY',
+ service = 'CHAINALYSIS',
+ external_id = 'alert_12345',
+ alert_amount = 1000.5,
+ exposure_type = 'DIRECT',
+ policy_action = 'BLOCK',
+ category_id = 101, ), ),
+ result = fireblocks.models.screening_travel_rule_result.ScreeningTravelRuleResult(
+ direction = 'OUTBOUND',
+ is_verified = True, ),
+ details_message = 'Travel rule screening completed successfully',
+ matched_alert = fireblocks.models.matched_alert.matchedAlert(),
+ matched_rule = fireblocks.models.matched_rule.matchedRule(),
+ matched_prescreening_rule = fireblocks.models.screening_travel_rule_prescreening_rule.ScreeningTravelRulePrescreeningRule(
+ bypass_reason = 'MANUAL',
+ source_type = 'VAULT_ACCOUNT',
+ source_sub_type = 'INTERNAL',
+ dest_type = 'VAULT_ACCOUNT',
+ dest_sub_type = 'INTERNAL',
+ transfer_peer_type = 'VAULT_ACCOUNT',
+ transfer_peer_sub_type = 'INTERNAL',
+ dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715',
+ source_id = '0',
+ dest_id = '2',
+ asset = 'ETH',
+ base_asset = 'ETH',
+ amount = 0.5,
+ amount_usd = 1000,
+ network_protocol = 'ETH',
+ operation = 'TRANSFER', ),
+ matched_no_trm_screening_rule = fireblocks.models.matched_no_trm_screening_rule.matchedNoTrmScreeningRule(),
+ customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ customer_short_name = 'ACME Corp',
+ travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', )
],
- status = 'Started',
+ status = 'Completed',
aml_registration = fireblocks.models.aml_registration_result_full_payload.AmlRegistrationResultFullPayload(
provider = '',
success = True,
- timestamp = 1.337, )
+ timestamp = 1.337, ),
+ trlink_registration = fireblocks.models.tr_link_registration_result_full_payload.TRLinkRegistrationResultFullPayload(
+ status = 'COMPLETED',
+ provider = 'SUMSUB',
+ success = True,
+ timestamp = 1640995200000,
+ dest_record_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ customer_short_name = 'ACME Corp',
+ result = fireblocks.models.tr_link_provider_result.TRLinkProviderResult(
+ provider_response = fireblocks.models.provider_response.providerResponse(), ),
+ matched_prescreening_rule = fireblocks.models.screening_tr_link_prescreening_rule.ScreeningTRLinkPrescreeningRule(), ),
+ trlink_destinations = [
+ fireblocks.models.tr_link_result_full_payload.TRLinkResultFullPayload(
+ provider = 'SUMSUB',
+ timestamp = 1640995200000,
+ status = 'COMPLETED',
+ verdict = 'ACCEPT',
+ dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715',
+ dest_tag = 'memo_12345',
+ bypass_reason = 'MANUAL',
+ details_message = 'Screening completed successfully',
+ customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ customer_short_name = 'ACME Corp',
+ travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ result = fireblocks.models.tr_link_provider_result_with_rule_2.TRLinkProviderResultWithRule-2(
+ provider_response = fireblocks.models.provider_response.providerResponse(),
+ matched_rule = fireblocks.models.screening_tr_link_post_screening_rule.ScreeningTRLinkPostScreeningRule(), ),
+ matched_prescreening_rule = fireblocks.models.screening_tr_link_prescreening_rule.ScreeningTRLinkPrescreeningRule(),
+ matched_no_trm_screening_rule = fireblocks.models.screening_tr_link_missing_trm_decision.ScreeningTRLinkMissingTrmDecision(), )
+ ]
)
else:
return ComplianceResultFullPayload(
diff --git a/test/test_compliance_results.py b/test/test_compliance_results.py
index 5aebba11..3b98483e 100644
--- a/test/test_compliance_results.py
+++ b/test/test_compliance_results.py
@@ -38,30 +38,271 @@ def make_instance(self, include_optional) -> ComplianceResults:
if include_optional:
return ComplianceResults(
aml = fireblocks.models.compliance_screening_result.ComplianceScreeningResult(
- provider = 'CHAINALYSIS',
+ provider = 'NOTABENE',
payload = fireblocks.models.payload.payload(),
- bypass_reason = 'MANUAL',
+ timestamp = 1753459111824,
screening_status = 'COMPLETED',
- timestamp = 1.337, ),
+ bypass_reason = 'BELOW_THRESHOLD',
+ status = 'COMPLETED',
+ prev_status = 'COMPLETED',
+ prev_bypass_reason = 'BELOW_THRESHOLD',
+ verdict = 'PASS',
+ risk = 'LOW',
+ extended_risk = 'LOW',
+ external_id = 'aml_screening_12345',
+ customer_ref_id = 'customer_ref_789',
+ ref_id = 'ref_12345',
+ category = 'EXCHANGE',
+ category_id = 5,
+ dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715',
+ dest_tag = 'memo_12345',
+ dest_record_id = 'record_001',
+ address_resolution_signature = '0x1234567890abcdef',
+ aml_result = fireblocks.models.aml_result.AmlResult(
+ alerts = [
+ fireblocks.models.aml_alert.AmlAlert(
+ alert_level = 'HIGH',
+ alert_name = 'Sanctions Match',
+ category = 'SANCTIONED_ENTITY',
+ service = 'CHAINALYSIS',
+ external_id = 'alert_12345',
+ alert_amount = 1000.5,
+ exposure_type = 'DIRECT',
+ policy_action = 'BLOCK',
+ category_id = 101, )
+ ],
+ provider_response = { },
+ matched_rule = fireblocks.models.aml_matched_rule.AmlMatchedRule(
+ rule_id = 'rule_001',
+ rule_name = 'High Risk Sanctions Check',
+ action = 'ALLOW', ),
+ matched_alert = fireblocks.models.aml_alert.AmlAlert(
+ alert_level = 'HIGH',
+ alert_name = 'Sanctions Match',
+ category = 'SANCTIONED_ENTITY',
+ service = 'CHAINALYSIS',
+ external_id = 'alert_12345',
+ alert_amount = 1000.5,
+ exposure_type = 'DIRECT',
+ policy_action = 'BLOCK',
+ category_id = 101, ), ),
+ result = fireblocks.models.travel_rule_result.TravelRuleResult(
+ direction = 'OUTBOUND',
+ is_verified = True, ),
+ details_message = 'Travel rule screening completed successfully',
+ matched_alert = fireblocks.models.matched_alert.matchedAlert(),
+ matched_rule = fireblocks.models.matched_rule.matchedRule(),
+ matched_prescreening_rule = fireblocks.models.travel_rule_prescreening_rule.TravelRulePrescreeningRule(
+ bypass_reason = 'MANUAL',
+ source_type = 'VAULT_ACCOUNT',
+ source_sub_type = 'INTERNAL',
+ dest_type = 'VAULT_ACCOUNT',
+ dest_sub_type = 'INTERNAL',
+ transfer_peer_type = 'VAULT_ACCOUNT',
+ transfer_peer_sub_type = 'INTERNAL',
+ dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715',
+ source_id = '0',
+ dest_id = 'ext_address_001',
+ asset = 'ETH',
+ base_asset = 'ETH',
+ amount = 0.5,
+ amount_usd = 1000,
+ network_protocol = 'ETH',
+ operation = 'TRANSFER', ),
+ matched_no_trm_screening_rule = fireblocks.models.matched_no_trm_screening_rule.matchedNoTrmScreeningRule(),
+ customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ customer_short_name = 'ACME Corp',
+ travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', ),
tr = fireblocks.models.compliance_screening_result.ComplianceScreeningResult(
- provider = 'CHAINALYSIS',
+ provider = 'NOTABENE',
payload = fireblocks.models.payload.payload(),
- bypass_reason = 'MANUAL',
+ timestamp = 1753459111824,
screening_status = 'COMPLETED',
- timestamp = 1.337, ),
+ bypass_reason = 'BELOW_THRESHOLD',
+ status = 'COMPLETED',
+ prev_status = 'COMPLETED',
+ prev_bypass_reason = 'BELOW_THRESHOLD',
+ verdict = 'PASS',
+ risk = 'LOW',
+ extended_risk = 'LOW',
+ external_id = 'aml_screening_12345',
+ customer_ref_id = 'customer_ref_789',
+ ref_id = 'ref_12345',
+ category = 'EXCHANGE',
+ category_id = 5,
+ dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715',
+ dest_tag = 'memo_12345',
+ dest_record_id = 'record_001',
+ address_resolution_signature = '0x1234567890abcdef',
+ aml_result = fireblocks.models.aml_result.AmlResult(
+ alerts = [
+ fireblocks.models.aml_alert.AmlAlert(
+ alert_level = 'HIGH',
+ alert_name = 'Sanctions Match',
+ category = 'SANCTIONED_ENTITY',
+ service = 'CHAINALYSIS',
+ external_id = 'alert_12345',
+ alert_amount = 1000.5,
+ exposure_type = 'DIRECT',
+ policy_action = 'BLOCK',
+ category_id = 101, )
+ ],
+ provider_response = { },
+ matched_rule = fireblocks.models.aml_matched_rule.AmlMatchedRule(
+ rule_id = 'rule_001',
+ rule_name = 'High Risk Sanctions Check',
+ action = 'ALLOW', ),
+ matched_alert = fireblocks.models.aml_alert.AmlAlert(
+ alert_level = 'HIGH',
+ alert_name = 'Sanctions Match',
+ category = 'SANCTIONED_ENTITY',
+ service = 'CHAINALYSIS',
+ external_id = 'alert_12345',
+ alert_amount = 1000.5,
+ exposure_type = 'DIRECT',
+ policy_action = 'BLOCK',
+ category_id = 101, ), ),
+ result = fireblocks.models.travel_rule_result.TravelRuleResult(
+ direction = 'OUTBOUND',
+ is_verified = True, ),
+ details_message = 'Travel rule screening completed successfully',
+ matched_alert = fireblocks.models.matched_alert.matchedAlert(),
+ matched_rule = fireblocks.models.matched_rule.matchedRule(),
+ matched_prescreening_rule = fireblocks.models.travel_rule_prescreening_rule.TravelRulePrescreeningRule(
+ bypass_reason = 'MANUAL',
+ source_type = 'VAULT_ACCOUNT',
+ source_sub_type = 'INTERNAL',
+ dest_type = 'VAULT_ACCOUNT',
+ dest_sub_type = 'INTERNAL',
+ transfer_peer_type = 'VAULT_ACCOUNT',
+ transfer_peer_sub_type = 'INTERNAL',
+ dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715',
+ source_id = '0',
+ dest_id = 'ext_address_001',
+ asset = 'ETH',
+ base_asset = 'ETH',
+ amount = 0.5,
+ amount_usd = 1000,
+ network_protocol = 'ETH',
+ operation = 'TRANSFER', ),
+ matched_no_trm_screening_rule = fireblocks.models.matched_no_trm_screening_rule.matchedNoTrmScreeningRule(),
+ customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ customer_short_name = 'ACME Corp',
+ travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', ),
aml_list = [
fireblocks.models.compliance_screening_result.ComplianceScreeningResult(
- provider = 'CHAINALYSIS',
+ provider = 'NOTABENE',
payload = fireblocks.models.payload.payload(),
- bypass_reason = 'MANUAL',
+ timestamp = 1753459111824,
screening_status = 'COMPLETED',
- timestamp = 1.337, )
+ bypass_reason = 'BELOW_THRESHOLD',
+ status = 'COMPLETED',
+ prev_status = 'COMPLETED',
+ prev_bypass_reason = 'BELOW_THRESHOLD',
+ verdict = 'PASS',
+ risk = 'LOW',
+ extended_risk = 'LOW',
+ external_id = 'aml_screening_12345',
+ customer_ref_id = 'customer_ref_789',
+ ref_id = 'ref_12345',
+ category = 'EXCHANGE',
+ category_id = 5,
+ dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715',
+ dest_tag = 'memo_12345',
+ dest_record_id = 'record_001',
+ address_resolution_signature = '0x1234567890abcdef',
+ aml_result = fireblocks.models.aml_result.AmlResult(
+ alerts = [
+ fireblocks.models.aml_alert.AmlAlert(
+ alert_level = 'HIGH',
+ alert_name = 'Sanctions Match',
+ category = 'SANCTIONED_ENTITY',
+ service = 'CHAINALYSIS',
+ external_id = 'alert_12345',
+ alert_amount = 1000.5,
+ exposure_type = 'DIRECT',
+ policy_action = 'BLOCK',
+ category_id = 101, )
+ ],
+ provider_response = { },
+ matched_rule = fireblocks.models.aml_matched_rule.AmlMatchedRule(
+ rule_id = 'rule_001',
+ rule_name = 'High Risk Sanctions Check',
+ action = 'ALLOW', ),
+ matched_alert = fireblocks.models.aml_alert.AmlAlert(
+ alert_level = 'HIGH',
+ alert_name = 'Sanctions Match',
+ category = 'SANCTIONED_ENTITY',
+ service = 'CHAINALYSIS',
+ external_id = 'alert_12345',
+ alert_amount = 1000.5,
+ exposure_type = 'DIRECT',
+ policy_action = 'BLOCK',
+ category_id = 101, ), ),
+ result = fireblocks.models.travel_rule_result.TravelRuleResult(
+ direction = 'OUTBOUND',
+ is_verified = True, ),
+ details_message = 'Travel rule screening completed successfully',
+ matched_alert = fireblocks.models.matched_alert.matchedAlert(),
+ matched_rule = fireblocks.models.matched_rule.matchedRule(),
+ matched_prescreening_rule = fireblocks.models.travel_rule_prescreening_rule.TravelRulePrescreeningRule(
+ bypass_reason = 'MANUAL',
+ source_type = 'VAULT_ACCOUNT',
+ source_sub_type = 'INTERNAL',
+ dest_type = 'VAULT_ACCOUNT',
+ dest_sub_type = 'INTERNAL',
+ transfer_peer_type = 'VAULT_ACCOUNT',
+ transfer_peer_sub_type = 'INTERNAL',
+ dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715',
+ source_id = '0',
+ dest_id = 'ext_address_001',
+ asset = 'ETH',
+ base_asset = 'ETH',
+ amount = 0.5,
+ amount_usd = 1000,
+ network_protocol = 'ETH',
+ operation = 'TRANSFER', ),
+ matched_no_trm_screening_rule = fireblocks.models.matched_no_trm_screening_rule.matchedNoTrmScreeningRule(),
+ customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ customer_short_name = 'ACME Corp',
+ travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', )
],
- status = 'Started',
+ status = 'Completed',
aml_registration = fireblocks.models.aml_registration_result.AmlRegistrationResult(
provider = '',
success = True,
- timestamp = 1.337, )
+ timestamp = 1.337, ),
+ trlink_registration = fireblocks.models.tr_link_registration_result.TRLinkRegistrationResult(
+ status = 'COMPLETED',
+ provider = 'SUMSUB',
+ success = True,
+ timestamp = 1640995200000,
+ dest_record_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ customer_short_name = 'ACME Corp',
+ result = fireblocks.models.tr_link_provider_result.TRLinkProviderResult(
+ provider_response = fireblocks.models.provider_response.providerResponse(), ),
+ matched_prescreening_rule = fireblocks.models.tr_link_pre_screening_rule.TRLinkPreScreeningRule(), ),
+ trlink_destinations = [
+ fireblocks.models.tr_link_result.TRLinkResult(
+ provider = 'SUMSUB',
+ timestamp = 1640995200000,
+ status = 'COMPLETED',
+ verdict = 'ACCEPT',
+ dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715',
+ dest_tag = 'memo_12345',
+ bypass_reason = 'MANUAL',
+ details_message = 'Screening completed successfully',
+ customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ customer_short_name = 'ACME Corp',
+ travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ result = fireblocks.models.tr_link_provider_result_with_rule.TRLinkProviderResultWithRule(
+ provider_response = fireblocks.models.provider_response.providerResponse(),
+ matched_rule = fireblocks.models.tr_link_post_screening_rule.TRLinkPostScreeningRule(), ),
+ matched_prescreening_rule = fireblocks.models.tr_link_pre_screening_rule.TRLinkPreScreeningRule(),
+ matched_no_trm_screening_rule = fireblocks.models.tr_link_missing_trm_decision.TRLinkMissingTrmDecision(), )
+ ]
)
else:
return ComplianceResults(
diff --git a/test/test_compliance_screening_result.py b/test/test_compliance_screening_result.py
index 4b387956..259e0b76 100644
--- a/test/test_compliance_screening_result.py
+++ b/test/test_compliance_screening_result.py
@@ -37,11 +37,89 @@ def make_instance(self, include_optional) -> ComplianceScreeningResult:
model = ComplianceScreeningResult()
if include_optional:
return ComplianceScreeningResult(
- provider = 'CHAINALYSIS',
+ provider = 'NOTABENE',
payload = None,
- bypass_reason = 'MANUAL',
+ timestamp = 1753459111824,
screening_status = 'COMPLETED',
- timestamp = 1.337
+ bypass_reason = 'BELOW_THRESHOLD',
+ status = 'COMPLETED',
+ prev_status = 'COMPLETED',
+ prev_bypass_reason = 'BELOW_THRESHOLD',
+ verdict = 'PASS',
+ risk = 'LOW',
+ extended_risk = 'LOW',
+ external_id = 'aml_screening_12345',
+ customer_ref_id = 'customer_ref_789',
+ ref_id = 'ref_12345',
+ category = 'EXCHANGE',
+ category_id = 5,
+ dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715',
+ dest_tag = 'memo_12345',
+ dest_record_id = 'record_001',
+ address_resolution_signature = '0x1234567890abcdef',
+ aml_result = fireblocks.models.aml_result.AmlResult(
+ alerts = [
+ fireblocks.models.aml_alert.AmlAlert(
+ alert_level = 'HIGH',
+ alert_name = 'Sanctions Match',
+ category = 'SANCTIONED_ENTITY',
+ service = 'CHAINALYSIS',
+ external_id = 'alert_12345',
+ alert_amount = 1000.5,
+ exposure_type = 'DIRECT',
+ policy_action = 'BLOCK',
+ category_id = 101, )
+ ],
+ provider_response = { },
+ matched_rule = fireblocks.models.aml_matched_rule.AmlMatchedRule(
+ rule_id = 'rule_001',
+ rule_name = 'High Risk Sanctions Check',
+ action = 'ALLOW', ),
+ matched_alert = fireblocks.models.aml_alert.AmlAlert(
+ alert_level = 'HIGH',
+ alert_name = 'Sanctions Match',
+ category = 'SANCTIONED_ENTITY',
+ service = 'CHAINALYSIS',
+ external_id = 'alert_12345',
+ alert_amount = 1000.5,
+ exposure_type = 'DIRECT',
+ policy_action = 'BLOCK',
+ category_id = 101, ), ),
+ result = fireblocks.models.travel_rule_result.TravelRuleResult(
+ direction = 'OUTBOUND',
+ is_verified = True,
+ action = 'ACCEPT',
+ provider_response = { },
+ matched_rule = fireblocks.models.travel_rule_matched_rule.TravelRuleMatchedRule(
+ status = 'COMPLETED',
+ amount_usd = 1000.5,
+ amount = 0.025,
+ asset = 'BTC', ), ),
+ details_message = 'Travel rule screening completed successfully',
+ matched_alert = None,
+ matched_rule = None,
+ matched_prescreening_rule = fireblocks.models.travel_rule_prescreening_rule.TravelRulePrescreeningRule(
+ bypass_reason = 'MANUAL',
+ source_type = 'VAULT_ACCOUNT',
+ source_sub_type = 'INTERNAL',
+ dest_type = 'VAULT_ACCOUNT',
+ dest_sub_type = 'INTERNAL',
+ transfer_peer_type = 'VAULT_ACCOUNT',
+ transfer_peer_sub_type = 'INTERNAL',
+ dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715',
+ source_id = '0',
+ dest_id = 'ext_address_001',
+ asset = 'ETH',
+ base_asset = 'ETH',
+ amount = 0.5,
+ amount_usd = 1000,
+ network_protocol = 'ETH',
+ operation = 'TRANSFER',
+ action = 'SCREEN', ),
+ matched_no_trm_screening_rule = None,
+ customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ customer_short_name = 'ACME Corp',
+ travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6'
)
else:
return ComplianceScreeningResult(
diff --git a/test/test_compliance_screening_result_full_payload.py b/test/test_compliance_screening_result_full_payload.py
index 5ab7b862..2907b986 100644
--- a/test/test_compliance_screening_result_full_payload.py
+++ b/test/test_compliance_screening_result_full_payload.py
@@ -39,11 +39,89 @@ def make_instance(self, include_optional) -> ComplianceScreeningResultFullPayloa
model = ComplianceScreeningResultFullPayload()
if include_optional:
return ComplianceScreeningResultFullPayload(
- provider = '',
+ provider = 'NOTABENE',
payload = None,
- bypass_reason = '',
+ timestamp = 1753459111824,
screening_status = 'COMPLETED',
- timestamp = 1.337
+ bypass_reason = 'BELOW_THRESHOLD',
+ status = 'COMPLETED',
+ prev_status = 'COMPLETED',
+ prev_bypass_reason = 'BELOW_THRESHOLD',
+ verdict = 'PASS',
+ risk = 'LOW',
+ extended_risk = 'LOW',
+ external_id = 'aml_screening_12345',
+ customer_ref_id = 'customer_ref_789',
+ ref_id = 'ref_12345',
+ category = 'EXCHANGE',
+ category_id = 5,
+ dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715',
+ dest_tag = 'memo_12345',
+ dest_record_id = 'record_001',
+ address_resolution_signature = '0x1234567890abcdef',
+ aml_result = fireblocks.models.screening_aml_result.ScreeningAmlResult(
+ alerts = [
+ fireblocks.models.screening_aml_alert.ScreeningAmlAlert(
+ alert_level = 'HIGH',
+ alert_name = 'Sanctions Match',
+ category = 'SANCTIONED_ENTITY',
+ service = 'CHAINALYSIS',
+ external_id = 'alert_12345',
+ alert_amount = 1000.5,
+ exposure_type = 'DIRECT',
+ policy_action = 'BLOCK',
+ category_id = 101, )
+ ],
+ provider_response = { },
+ matched_rule = fireblocks.models.screening_aml_matched_rule.ScreeningAmlMatchedRule(
+ rule_id = 'rule_001',
+ rule_name = 'High Risk Sanctions Check',
+ action = 'ALLOW', ),
+ matched_alert = fireblocks.models.screening_aml_alert.ScreeningAmlAlert(
+ alert_level = 'HIGH',
+ alert_name = 'Sanctions Match',
+ category = 'SANCTIONED_ENTITY',
+ service = 'CHAINALYSIS',
+ external_id = 'alert_12345',
+ alert_amount = 1000.5,
+ exposure_type = 'DIRECT',
+ policy_action = 'BLOCK',
+ category_id = 101, ), ),
+ result = fireblocks.models.screening_travel_rule_result.ScreeningTravelRuleResult(
+ direction = 'OUTBOUND',
+ is_verified = True,
+ action = 'ACCEPT',
+ provider_response = { },
+ matched_rule = fireblocks.models.screening_travel_rule_matched_rule.ScreeningTravelRuleMatchedRule(
+ status = 'COMPLETED',
+ amount_usd = 1000.5,
+ amount = 0.025,
+ asset = 'BTC', ), ),
+ details_message = 'Travel rule screening completed successfully',
+ matched_alert = None,
+ matched_rule = None,
+ matched_prescreening_rule = fireblocks.models.screening_travel_rule_prescreening_rule.ScreeningTravelRulePrescreeningRule(
+ bypass_reason = 'MANUAL',
+ source_type = 'VAULT_ACCOUNT',
+ source_sub_type = 'INTERNAL',
+ dest_type = 'VAULT_ACCOUNT',
+ dest_sub_type = 'INTERNAL',
+ transfer_peer_type = 'VAULT_ACCOUNT',
+ transfer_peer_sub_type = 'INTERNAL',
+ dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715',
+ source_id = '0',
+ dest_id = '2',
+ asset = 'ETH',
+ base_asset = 'ETH',
+ amount = 0.5,
+ amount_usd = 1000,
+ network_protocol = 'ETH',
+ operation = 'TRANSFER',
+ action = 'SCREEN', ),
+ matched_no_trm_screening_rule = None,
+ customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ customer_short_name = 'ACME Corp',
+ travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6'
)
else:
return ComplianceScreeningResultFullPayload(
diff --git a/test/test_d_app_address_config.py b/test/test_d_app_address_config.py
new file mode 100644
index 00000000..eec3afd0
--- /dev/null
+++ b/test/test_d_app_address_config.py
@@ -0,0 +1,61 @@
+# 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.d_app_address_config import DAppAddressConfig
+
+
+class TestDAppAddressConfig(unittest.TestCase):
+ """DAppAddressConfig unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> DAppAddressConfig:
+ """Test DAppAddressConfig
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `DAppAddressConfig`
+ """
+ model = DAppAddressConfig()
+ if include_optional:
+ return DAppAddressConfig(
+ global_whitelisted = ["rabby.io","jup.ag"],
+ tenant_whitelisted = ["uniswap.com","opensea.io"],
+ urls = ["*"],
+ operator = 'INCLUDES'
+ )
+ else:
+ return DAppAddressConfig(
+ global_whitelisted = ["rabby.io","jup.ag"],
+ tenant_whitelisted = ["uniswap.com","opensea.io"],
+ urls = ["*"],
+ operator = 'INCLUDES',
+ )
+ """
+
+ def testDAppAddressConfig(self):
+ """Test DAppAddressConfig"""
+ # 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_destination_config.py b/test/test_destination_config.py
index e733a985..aab0d04f 100644
--- a/test/test_destination_config.py
+++ b/test/test_destination_config.py
@@ -37,7 +37,9 @@ def make_instance(self, include_optional) -> DestinationConfig:
model = DestinationConfig()
if include_optional:
return DestinationConfig(
- type = 'VAULT',
+ type = [
+ 'VAULT'
+ ],
sub_type = [
fireblocks.models.account_identifier.AccountIdentifier(
type = 'VAULT',
@@ -52,13 +54,16 @@ def make_instance(self, include_optional) -> DestinationConfig:
sub_type = 'INTERNAL',
address = '0x123...', )
],
+ tags = [
+ fireblocks.models.policy_tag.PolicyTag(
+ id = 'tag_001', )
+ ],
operator = 'INCLUDES',
match_from = 'ACCOUNT',
address_type = 'WHITELISTED'
)
else:
return DestinationConfig(
- type = 'VAULT',
operator = 'INCLUDES',
address_type = 'WHITELISTED',
)
diff --git a/test/test_direct_access_provider_details.py b/test/test_direct_access_provider_details.py
new file mode 100644
index 00000000..e20d0ea7
--- /dev/null
+++ b/test/test_direct_access_provider_details.py
@@ -0,0 +1,57 @@
+# 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.direct_access_provider_details import DirectAccessProviderDetails
+
+
+class TestDirectAccessProviderDetails(unittest.TestCase):
+ """DirectAccessProviderDetails unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> DirectAccessProviderDetails:
+ """Test DirectAccessProviderDetails
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `DirectAccessProviderDetails`
+ """
+ model = DirectAccessProviderDetails()
+ if include_optional:
+ return DirectAccessProviderDetails(
+ approved = True,
+ has_terms_of_service = True,
+ terms_of_service_url = ''
+ )
+ else:
+ return DirectAccessProviderDetails(
+ has_terms_of_service = True,
+ )
+ """
+
+ def testDirectAccessProviderDetails(self):
+ """Test DirectAccessProviderDetails"""
+ # 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_draft_response.py b/test/test_draft_response.py
index f7c55eeb..df45f290 100644
--- a/test/test_draft_response.py
+++ b/test/test_draft_response.py
@@ -50,21 +50,24 @@ def make_instance(self, include_optional) -> DraftResponse:
nft_transfer = False,
asset_types = ["FUNGIBLE","NFT","*"],
operator = 'INCLUDES', ),
- source = fireblocks.models.account_config.AccountConfig(
- type = 'VAULT',
+ source = fireblocks.models.source_config.SourceConfig(
ids = [
fireblocks.models.account_identifier.AccountIdentifier(
type = 'VAULT',
id = 'account123',
address = '0x123...', )
],
+ tags = [
+ fireblocks.models.policy_tag.PolicyTag(
+ id = 'tag_001', )
+ ],
operator = 'INCLUDES',
match_from = 'ACCOUNT', ),
destination = {"type":["EXTERNAL"],"operator":"INCLUDES","addressType":"WHITELISTED"},
account = fireblocks.models.account_config.AccountConfig(
- type = ,
operator = ,
match_from = 'ACCOUNT', ),
+ side = 'BUY',
verdict = fireblocks.models.verdict_config.VerdictConfig(
action = 'ALLOW',
approvers = fireblocks.models.approvers_config.ApproversConfig(
@@ -76,16 +79,14 @@ def make_instance(self, include_optional) -> DraftResponse:
users = ["user1","user2"],
groups = ["group1","group2"], ), ),
amount_over_time = fireblocks.models.amount_over_time_config.AmountOverTimeConfig(
- range = fireblocks.models.amount_over_time_config_range.AmountOverTimeConfig_range(
- min = '100',
- max = '10000', ),
+ range = {"min":"100","max":"10000"},
currency = 'USD',
time_period = fireblocks.models.time_period_config.TimePeriodConfig(
seconds = '86400',
initiator = 'PER_SINGLE_MATCH',
source = 'PER_SINGLE_MATCH',
destination = 'PER_SINGLE_MATCH', ), ),
- amount = {"min":"100","max":"10000","currency":"USD"},
+ amount = {"range":{"min":"100","max":"10000"},"currency":"USD"},
external_descriptor = 'High value transfer policy for institutional clients',
method = null,
is_global_policy = False,
@@ -113,8 +114,13 @@ def make_instance(self, include_optional) -> DraftResponse:
nft_transfer = False,
asset_types = ["FUNGIBLE","NFT","*"], ),
base_asset = ,
- quote_amount = {"min":"100","max":"10000","currency":"USD"},
- base_amount = {"min":"100","max":"10000","currency":"USD"},
+ quote_amount = {"range":{"min":"100","max":"10000"}},
+ base_amount = {"range":{"min":"100","max":"10000"}},
+ d_app_address = fireblocks.models.d_app_address_config.DAppAddressConfig(
+ global_whitelisted = ["rabby.io","jup.ag"],
+ tenant_whitelisted = ["uniswap.com","opensea.io"],
+ urls = ["*"],
+ operator = , ),
derivation_path = {"path":[44,0,0,0,0],"partial":false},
index = 1, )
],
@@ -141,21 +147,24 @@ def make_instance(self, include_optional) -> DraftResponse:
nft_transfer = False,
asset_types = ["FUNGIBLE","NFT","*"],
operator = 'INCLUDES', ),
- source = fireblocks.models.account_config.AccountConfig(
- type = 'VAULT',
+ source = fireblocks.models.source_config.SourceConfig(
ids = [
fireblocks.models.account_identifier.AccountIdentifier(
type = 'VAULT',
id = 'account123',
address = '0x123...', )
],
+ tags = [
+ fireblocks.models.policy_tag.PolicyTag(
+ id = 'tag_001', )
+ ],
operator = 'INCLUDES',
match_from = 'ACCOUNT', ),
destination = {"type":["EXTERNAL"],"operator":"INCLUDES","addressType":"WHITELISTED"},
account = fireblocks.models.account_config.AccountConfig(
- type = ,
operator = ,
match_from = 'ACCOUNT', ),
+ side = 'BUY',
verdict = fireblocks.models.verdict_config.VerdictConfig(
action = 'ALLOW',
approvers = fireblocks.models.approvers_config.ApproversConfig(
@@ -167,16 +176,14 @@ def make_instance(self, include_optional) -> DraftResponse:
users = ["user1","user2"],
groups = ["group1","group2"], ), ),
amount_over_time = fireblocks.models.amount_over_time_config.AmountOverTimeConfig(
- range = fireblocks.models.amount_over_time_config_range.AmountOverTimeConfig_range(
- min = '100',
- max = '10000', ),
+ range = {"min":"100","max":"10000"},
currency = 'USD',
time_period = fireblocks.models.time_period_config.TimePeriodConfig(
seconds = '86400',
initiator = 'PER_SINGLE_MATCH',
source = 'PER_SINGLE_MATCH',
destination = 'PER_SINGLE_MATCH', ), ),
- amount = {"min":"100","max":"10000","currency":"USD"},
+ amount = {"range":{"min":"100","max":"10000"},"currency":"USD"},
external_descriptor = 'High value transfer policy for institutional clients',
method = null,
is_global_policy = False,
@@ -204,8 +211,13 @@ def make_instance(self, include_optional) -> DraftResponse:
nft_transfer = False,
asset_types = ["FUNGIBLE","NFT","*"], ),
base_asset = ,
- quote_amount = {"min":"100","max":"10000","currency":"USD"},
- base_amount = {"min":"100","max":"10000","currency":"USD"},
+ quote_amount = {"range":{"min":"100","max":"10000"}},
+ base_amount = {"range":{"min":"100","max":"10000"}},
+ d_app_address = fireblocks.models.d_app_address_config.DAppAddressConfig(
+ global_whitelisted = ["rabby.io","jup.ag"],
+ tenant_whitelisted = ["uniswap.com","opensea.io"],
+ urls = ["*"],
+ operator = , ),
derivation_path = {"path":[44,0,0,0,0],"partial":false},
index = 1, )
],
diff --git a/test/test_draft_review_and_validation_response.py b/test/test_draft_review_and_validation_response.py
index 7f51af1e..9ad84143 100644
--- a/test/test_draft_review_and_validation_response.py
+++ b/test/test_draft_review_and_validation_response.py
@@ -53,21 +53,24 @@ def make_instance(self, include_optional) -> DraftReviewAndValidationResponse:
nft_transfer = False,
asset_types = ["FUNGIBLE","NFT","*"],
operator = 'INCLUDES', ),
- source = fireblocks.models.account_config.AccountConfig(
- type = 'VAULT',
+ source = fireblocks.models.source_config.SourceConfig(
ids = [
fireblocks.models.account_identifier.AccountIdentifier(
type = 'VAULT',
id = 'account123',
address = '0x123...', )
],
+ tags = [
+ fireblocks.models.policy_tag.PolicyTag(
+ id = 'tag_001', )
+ ],
operator = 'INCLUDES',
match_from = 'ACCOUNT', ),
destination = {"type":["EXTERNAL"],"operator":"INCLUDES","addressType":"WHITELISTED"},
account = fireblocks.models.account_config.AccountConfig(
- type = ,
operator = ,
match_from = 'ACCOUNT', ),
+ side = 'BUY',
verdict = fireblocks.models.verdict_config.VerdictConfig(
action = 'ALLOW',
approvers = fireblocks.models.approvers_config.ApproversConfig(
@@ -79,16 +82,14 @@ def make_instance(self, include_optional) -> DraftReviewAndValidationResponse:
users = ["user1","user2"],
groups = ["group1","group2"], ), ),
amount_over_time = fireblocks.models.amount_over_time_config.AmountOverTimeConfig(
- range = fireblocks.models.amount_over_time_config_range.AmountOverTimeConfig_range(
- min = '100',
- max = '10000', ),
+ range = {"min":"100","max":"10000"},
currency = 'USD',
time_period = fireblocks.models.time_period_config.TimePeriodConfig(
seconds = '86400',
initiator = 'PER_SINGLE_MATCH',
source = 'PER_SINGLE_MATCH',
destination = 'PER_SINGLE_MATCH', ), ),
- amount = {"min":"100","max":"10000","currency":"USD"},
+ amount = {"range":{"min":"100","max":"10000"},"currency":"USD"},
external_descriptor = 'High value transfer policy for institutional clients',
method = null,
is_global_policy = False,
@@ -116,8 +117,13 @@ def make_instance(self, include_optional) -> DraftReviewAndValidationResponse:
nft_transfer = False,
asset_types = ["FUNGIBLE","NFT","*"], ),
base_asset = ,
- quote_amount = {"min":"100","max":"10000","currency":"USD"},
- base_amount = {"min":"100","max":"10000","currency":"USD"},
+ quote_amount = {"range":{"min":"100","max":"10000"}},
+ base_amount = {"range":{"min":"100","max":"10000"}},
+ d_app_address = fireblocks.models.d_app_address_config.DAppAddressConfig(
+ global_whitelisted = ["rabby.io","jup.ag"],
+ tenant_whitelisted = ["uniswap.com","opensea.io"],
+ urls = ["*"],
+ operator = , ),
derivation_path = {"path":[44,0,0,0,0],"partial":false},
index = 1, )
],
@@ -161,21 +167,24 @@ def make_instance(self, include_optional) -> DraftReviewAndValidationResponse:
nft_transfer = False,
asset_types = ["FUNGIBLE","NFT","*"],
operator = 'INCLUDES', ),
- source = fireblocks.models.account_config.AccountConfig(
- type = 'VAULT',
+ source = fireblocks.models.source_config.SourceConfig(
ids = [
fireblocks.models.account_identifier.AccountIdentifier(
type = 'VAULT',
id = 'account123',
address = '0x123...', )
],
+ tags = [
+ fireblocks.models.policy_tag.PolicyTag(
+ id = 'tag_001', )
+ ],
operator = 'INCLUDES',
match_from = 'ACCOUNT', ),
destination = {"type":["EXTERNAL"],"operator":"INCLUDES","addressType":"WHITELISTED"},
account = fireblocks.models.account_config.AccountConfig(
- type = ,
operator = ,
match_from = 'ACCOUNT', ),
+ side = 'BUY',
verdict = fireblocks.models.verdict_config.VerdictConfig(
action = 'ALLOW',
approvers = fireblocks.models.approvers_config.ApproversConfig(
@@ -187,16 +196,14 @@ def make_instance(self, include_optional) -> DraftReviewAndValidationResponse:
users = ["user1","user2"],
groups = ["group1","group2"], ), ),
amount_over_time = fireblocks.models.amount_over_time_config.AmountOverTimeConfig(
- range = fireblocks.models.amount_over_time_config_range.AmountOverTimeConfig_range(
- min = '100',
- max = '10000', ),
+ range = {"min":"100","max":"10000"},
currency = 'USD',
time_period = fireblocks.models.time_period_config.TimePeriodConfig(
seconds = '86400',
initiator = 'PER_SINGLE_MATCH',
source = 'PER_SINGLE_MATCH',
destination = 'PER_SINGLE_MATCH', ), ),
- amount = {"min":"100","max":"10000","currency":"USD"},
+ amount = {"range":{"min":"100","max":"10000"},"currency":"USD"},
external_descriptor = 'High value transfer policy for institutional clients',
method = null,
is_global_policy = False,
@@ -224,8 +231,13 @@ def make_instance(self, include_optional) -> DraftReviewAndValidationResponse:
nft_transfer = False,
asset_types = ["FUNGIBLE","NFT","*"], ),
base_asset = ,
- quote_amount = {"min":"100","max":"10000","currency":"USD"},
- base_amount = {"min":"100","max":"10000","currency":"USD"},
+ quote_amount = {"range":{"min":"100","max":"10000"}},
+ base_amount = {"range":{"min":"100","max":"10000"}},
+ d_app_address = fireblocks.models.d_app_address_config.DAppAddressConfig(
+ global_whitelisted = ["rabby.io","jup.ag"],
+ tenant_whitelisted = ["uniswap.com","opensea.io"],
+ urls = ["*"],
+ operator = , ),
derivation_path = {"path":[44,0,0,0,0],"partial":false},
index = 1, )
],
diff --git a/test/test_fee_properties_details.py b/test/test_fee_properties_details.py
new file mode 100644
index 00000000..3b97c844
--- /dev/null
+++ b/test/test_fee_properties_details.py
@@ -0,0 +1,59 @@
+# 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.fee_properties_details import FeePropertiesDetails
+
+
+class TestFeePropertiesDetails(unittest.TestCase):
+ """FeePropertiesDetails unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> FeePropertiesDetails:
+ """Test FeePropertiesDetails
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `FeePropertiesDetails`
+ """
+ model = FeePropertiesDetails()
+ if include_optional:
+ return FeePropertiesDetails(
+ fee_type = 'ORDER',
+ asset_id = '',
+ amount_type = 'FIXED'
+ )
+ else:
+ return FeePropertiesDetails(
+ fee_type = 'ORDER',
+ asset_id = '',
+ amount_type = 'FIXED',
+ )
+ """
+
+ def testFeePropertiesDetails(self):
+ """Test FeePropertiesDetails"""
+ # 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_fiat_destination.py b/test/test_fiat_destination.py
new file mode 100644
index 00000000..ba091555
--- /dev/null
+++ b/test/test_fiat_destination.py
@@ -0,0 +1,57 @@
+# 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.fiat_destination import FiatDestination
+
+
+class TestFiatDestination(unittest.TestCase):
+ """FiatDestination unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> FiatDestination:
+ """Test FiatDestination
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `FiatDestination`
+ """
+ model = FiatDestination()
+ if include_optional:
+ return FiatDestination(
+ type = 'IBAN',
+ address = {"accountHolder":{"name":"Grace Wanjiku Kamau","city":"Nairobi","country":"KE","subdivision":"NRB","address":"Westlands Avenue 45","postalCode":"00100"},"mobilePhoneNumber":"+254712345678","provider":"m-pesa","beneficiaryDocumentId":"12345678","beneficiaryRelationship":"self"}
+ )
+ else:
+ return FiatDestination(
+ type = 'IBAN',
+ address = {"accountHolder":{"name":"Grace Wanjiku Kamau","city":"Nairobi","country":"KE","subdivision":"NRB","address":"Westlands Avenue 45","postalCode":"00100"},"mobilePhoneNumber":"+254712345678","provider":"m-pesa","beneficiaryDocumentId":"12345678","beneficiaryRelationship":"self"},
+ )
+ """
+
+ def testFiatDestination(self):
+ """Test FiatDestination"""
+ # 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_iban_address.py b/test/test_iban_address.py
new file mode 100644
index 00000000..9ada261c
--- /dev/null
+++ b/test/test_iban_address.py
@@ -0,0 +1,57 @@
+# 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.iban_address import IbanAddress
+
+
+class TestIbanAddress(unittest.TestCase):
+ """IbanAddress unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> IbanAddress:
+ """Test IbanAddress
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `IbanAddress`
+ """
+ model = IbanAddress()
+ if include_optional:
+ return IbanAddress(
+ account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"},
+ iban = 'GB82WEST12345698765432'
+ )
+ else:
+ return IbanAddress(
+ account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"},
+ iban = 'GB82WEST12345698765432',
+ )
+ """
+
+ def testIbanAddress(self):
+ """Test IbanAddress"""
+ # 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_iban_destination.py b/test/test_iban_destination.py
new file mode 100644
index 00000000..18b1b21f
--- /dev/null
+++ b/test/test_iban_destination.py
@@ -0,0 +1,57 @@
+# 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.iban_destination import IbanDestination
+
+
+class TestIbanDestination(unittest.TestCase):
+ """IbanDestination unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> IbanDestination:
+ """Test IbanDestination
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `IbanDestination`
+ """
+ model = IbanDestination()
+ if include_optional:
+ return IbanDestination(
+ type = 'IBAN',
+ address = {"accountHolder":{"name":"Maria Gonzalez","city":"Madrid","country":"ES","subdivision":"MD","address":"Calle Gran Via 123, 2°B","postalCode":"28013"},"iban":"ES9121000418450200051332"}
+ )
+ else:
+ return IbanDestination(
+ type = 'IBAN',
+ address = {"accountHolder":{"name":"Maria Gonzalez","city":"Madrid","country":"ES","subdivision":"MD","address":"Calle Gran Via 123, 2°B","postalCode":"28013"},"iban":"ES9121000418450200051332"},
+ )
+ """
+
+ def testIbanDestination(self):
+ """Test IbanDestination"""
+ # 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_initiator_config.py b/test/test_initiator_config.py
index a6a19d0e..a5c2347d 100644
--- a/test/test_initiator_config.py
+++ b/test/test_initiator_config.py
@@ -52,7 +52,6 @@ def make_instance(self, include_optional) -> InitiatorConfig:
)
else:
return InitiatorConfig(
- operator = 'INCLUDES',
)
"""
diff --git a/test/test_initiator_config_pattern.py b/test/test_initiator_config_pattern.py
index bba6503a..abe25bf2 100644
--- a/test/test_initiator_config_pattern.py
+++ b/test/test_initiator_config_pattern.py
@@ -52,7 +52,6 @@ def make_instance(self, include_optional) -> InitiatorConfigPattern:
)
else:
return InitiatorConfigPattern(
- operator = 'INCLUDES',
)
"""
diff --git a/test/test_limit_execution_request_details.py b/test/test_limit_execution_request_details.py
index d89ccaff..e22667e2 100644
--- a/test/test_limit_execution_request_details.py
+++ b/test/test_limit_execution_request_details.py
@@ -39,25 +39,25 @@ def make_instance(self, include_optional) -> LimitExecutionRequestDetails:
model = LimitExecutionRequestDetails()
if include_optional:
return LimitExecutionRequestDetails(
+ type = 'LIMIT',
+ time_in_force = 'FOK',
+ limit_price = '',
side = 'BUY',
base_amount = '',
base_asset_id = '',
base_asset_rail = 'BLOCKCHAIN',
quote_asset_id = '',
- quote_asset_rail = 'BLOCKCHAIN',
- type = 'LIMIT',
- time_in_force = 'FOK',
- limit_price = ''
+ quote_asset_rail = 'BLOCKCHAIN'
)
else:
return LimitExecutionRequestDetails(
+ type = 'LIMIT',
+ time_in_force = 'FOK',
+ limit_price = '',
side = 'BUY',
base_amount = '',
base_asset_id = '',
quote_asset_id = '',
- type = 'LIMIT',
- time_in_force = 'FOK',
- limit_price = '',
)
"""
diff --git a/test/test_limit_execution_response_details.py b/test/test_limit_execution_response_details.py
index 3732ea62..6bfc3bd9 100644
--- a/test/test_limit_execution_response_details.py
+++ b/test/test_limit_execution_response_details.py
@@ -39,25 +39,25 @@ def make_instance(self, include_optional) -> LimitExecutionResponseDetails:
model = LimitExecutionResponseDetails()
if include_optional:
return LimitExecutionResponseDetails(
+ type = 'LIMIT',
+ time_in_force = 'FOK',
+ limit_price = '',
side = 'BUY',
base_amount = '',
base_asset_id = '',
base_asset_rail = 'BLOCKCHAIN',
quote_asset_id = '',
- quote_asset_rail = 'BLOCKCHAIN',
- type = 'LIMIT',
- time_in_force = 'FOK',
- limit_price = ''
+ quote_asset_rail = 'BLOCKCHAIN'
)
else:
return LimitExecutionResponseDetails(
+ type = 'LIMIT',
+ time_in_force = 'FOK',
+ limit_price = '',
side = 'BUY',
base_amount = '',
base_asset_id = '',
quote_asset_id = '',
- type = 'LIMIT',
- time_in_force = 'FOK',
- limit_price = '',
)
"""
diff --git a/test/test_limit_type_details.py b/test/test_limit_type_details.py
new file mode 100644
index 00000000..a1e3b300
--- /dev/null
+++ b/test/test_limit_type_details.py
@@ -0,0 +1,59 @@
+# 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.limit_type_details import LimitTypeDetails
+
+
+class TestLimitTypeDetails(unittest.TestCase):
+ """LimitTypeDetails unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> LimitTypeDetails:
+ """Test LimitTypeDetails
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `LimitTypeDetails`
+ """
+ model = LimitTypeDetails()
+ if include_optional:
+ return LimitTypeDetails(
+ type = 'LIMIT',
+ time_in_force = 'FOK',
+ limit_price = ''
+ )
+ else:
+ return LimitTypeDetails(
+ type = 'LIMIT',
+ time_in_force = 'FOK',
+ limit_price = '',
+ )
+ """
+
+ def testLimitTypeDetails(self):
+ """Test LimitTypeDetails"""
+ # 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_local_bank_transfer_africa_address.py b/test/test_local_bank_transfer_africa_address.py
new file mode 100644
index 00000000..490ffc30
--- /dev/null
+++ b/test/test_local_bank_transfer_africa_address.py
@@ -0,0 +1,63 @@
+# 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.local_bank_transfer_africa_address import (
+ LocalBankTransferAfricaAddress,
+)
+
+
+class TestLocalBankTransferAfricaAddress(unittest.TestCase):
+ """LocalBankTransferAfricaAddress unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> LocalBankTransferAfricaAddress:
+ """Test LocalBankTransferAfricaAddress
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `LocalBankTransferAfricaAddress`
+ """
+ model = LocalBankTransferAfricaAddress()
+ if include_optional:
+ return LocalBankTransferAfricaAddress(
+ account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"},
+ account_number = '1234567890123',
+ bank_name = '',
+ bank_code = ''
+ )
+ else:
+ return LocalBankTransferAfricaAddress(
+ account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"},
+ account_number = '1234567890123',
+ bank_name = '',
+ bank_code = '',
+ )
+ """
+
+ def testLocalBankTransferAfricaAddress(self):
+ """Test LocalBankTransferAfricaAddress"""
+ # 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_local_bank_transfer_africa_destination.py b/test/test_local_bank_transfer_africa_destination.py
new file mode 100644
index 00000000..4368ee1a
--- /dev/null
+++ b/test/test_local_bank_transfer_africa_destination.py
@@ -0,0 +1,59 @@
+# 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.local_bank_transfer_africa_destination import (
+ LocalBankTransferAfricaDestination,
+)
+
+
+class TestLocalBankTransferAfricaDestination(unittest.TestCase):
+ """LocalBankTransferAfricaDestination unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> LocalBankTransferAfricaDestination:
+ """Test LocalBankTransferAfricaDestination
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `LocalBankTransferAfricaDestination`
+ """
+ model = LocalBankTransferAfricaDestination()
+ if include_optional:
+ return LocalBankTransferAfricaDestination(
+ type = 'LOCAL_BANK_TRANSFER_AFRICA',
+ address = {"accountHolder":{"name":"Adaora Okafor","city":"Lagos","country":"NG","subdivision":"LA","address":"15 Victoria Island Road","postalCode":"101001"},"accountNumber":"1234567890123","bankName":"First Bank of Nigeria","bankCode":"011"}
+ )
+ else:
+ return LocalBankTransferAfricaDestination(
+ type = 'LOCAL_BANK_TRANSFER_AFRICA',
+ address = {"accountHolder":{"name":"Adaora Okafor","city":"Lagos","country":"NG","subdivision":"LA","address":"15 Victoria Island Road","postalCode":"101001"},"accountNumber":"1234567890123","bankName":"First Bank of Nigeria","bankCode":"011"},
+ )
+ """
+
+ def testLocalBankTransferAfricaDestination(self):
+ """Test LocalBankTransferAfricaDestination"""
+ # 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_market_execution_request_details.py b/test/test_market_execution_request_details.py
index e969ca2a..bc024fc6 100644
--- a/test/test_market_execution_request_details.py
+++ b/test/test_market_execution_request_details.py
@@ -39,21 +39,21 @@ def make_instance(self, include_optional) -> MarketExecutionRequestDetails:
model = MarketExecutionRequestDetails()
if include_optional:
return MarketExecutionRequestDetails(
+ type = 'MARKET',
side = 'BUY',
base_amount = '',
base_asset_id = '',
base_asset_rail = 'BLOCKCHAIN',
quote_asset_id = '',
- quote_asset_rail = 'BLOCKCHAIN',
- type = 'MARKET'
+ quote_asset_rail = 'BLOCKCHAIN'
)
else:
return MarketExecutionRequestDetails(
+ type = 'MARKET',
side = 'BUY',
base_amount = '',
base_asset_id = '',
quote_asset_id = '',
- type = 'MARKET',
)
"""
diff --git a/test/test_market_execution_response_details.py b/test/test_market_execution_response_details.py
index 6b469058..7c0cd063 100644
--- a/test/test_market_execution_response_details.py
+++ b/test/test_market_execution_response_details.py
@@ -39,21 +39,21 @@ def make_instance(self, include_optional) -> MarketExecutionResponseDetails:
model = MarketExecutionResponseDetails()
if include_optional:
return MarketExecutionResponseDetails(
+ type = 'MARKET',
side = 'BUY',
base_amount = '',
base_asset_id = '',
base_asset_rail = 'BLOCKCHAIN',
quote_asset_id = '',
- quote_asset_rail = 'BLOCKCHAIN',
- type = 'MARKET'
+ quote_asset_rail = 'BLOCKCHAIN'
)
else:
return MarketExecutionResponseDetails(
+ type = 'MARKET',
side = 'BUY',
base_amount = '',
base_asset_id = '',
quote_asset_id = '',
- type = 'MARKET',
)
"""
diff --git a/test/test_market_type_details.py b/test/test_market_type_details.py
new file mode 100644
index 00000000..4337ce83
--- /dev/null
+++ b/test/test_market_type_details.py
@@ -0,0 +1,55 @@
+# 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.market_type_details import MarketTypeDetails
+
+
+class TestMarketTypeDetails(unittest.TestCase):
+ """MarketTypeDetails unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> MarketTypeDetails:
+ """Test MarketTypeDetails
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `MarketTypeDetails`
+ """
+ model = MarketTypeDetails()
+ if include_optional:
+ return MarketTypeDetails(
+ type = 'MARKET'
+ )
+ else:
+ return MarketTypeDetails(
+ type = 'MARKET',
+ )
+ """
+
+ def testMarketTypeDetails(self):
+ """Test MarketTypeDetails"""
+ # 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_mobile_money_address.py b/test/test_mobile_money_address.py
new file mode 100644
index 00000000..da4650a7
--- /dev/null
+++ b/test/test_mobile_money_address.py
@@ -0,0 +1,61 @@
+# 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.mobile_money_address import MobileMoneyAddress
+
+
+class TestMobileMoneyAddress(unittest.TestCase):
+ """MobileMoneyAddress unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> MobileMoneyAddress:
+ """Test MobileMoneyAddress
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `MobileMoneyAddress`
+ """
+ model = MobileMoneyAddress()
+ if include_optional:
+ return MobileMoneyAddress(
+ account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"},
+ mobile_phone_number = '+14155551234',
+ provider = 'm-pesa',
+ beneficiary_document_id = '',
+ beneficiary_relationship = ''
+ )
+ else:
+ return MobileMoneyAddress(
+ account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"},
+ mobile_phone_number = '+14155551234',
+ provider = 'm-pesa',
+ )
+ """
+
+ def testMobileMoneyAddress(self):
+ """Test MobileMoneyAddress"""
+ # 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_mobile_money_destination.py b/test/test_mobile_money_destination.py
new file mode 100644
index 00000000..2d25b590
--- /dev/null
+++ b/test/test_mobile_money_destination.py
@@ -0,0 +1,57 @@
+# 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.mobile_money_destination import MobileMoneyDestination
+
+
+class TestMobileMoneyDestination(unittest.TestCase):
+ """MobileMoneyDestination unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> MobileMoneyDestination:
+ """Test MobileMoneyDestination
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `MobileMoneyDestination`
+ """
+ model = MobileMoneyDestination()
+ if include_optional:
+ return MobileMoneyDestination(
+ type = 'MOBILE_MONEY',
+ address = {"accountHolder":{"name":"Grace Wanjiku Kamau","city":"Nairobi","country":"KE","subdivision":"NRB","address":"Westlands Avenue 45","postalCode":"00100"},"mobilePhoneNumber":"+254712345678","provider":"m-pesa","beneficiaryDocumentId":"12345678","beneficiaryRelationship":"self"}
+ )
+ else:
+ return MobileMoneyDestination(
+ type = 'MOBILE_MONEY',
+ address = {"accountHolder":{"name":"Grace Wanjiku Kamau","city":"Nairobi","country":"KE","subdivision":"NRB","address":"Westlands Avenue 45","postalCode":"00100"},"mobilePhoneNumber":"+254712345678","provider":"m-pesa","beneficiaryDocumentId":"12345678","beneficiaryRelationship":"self"},
+ )
+ """
+
+ def testMobileMoneyDestination(self):
+ """Test MobileMoneyDestination"""
+ # 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_order_details.py b/test/test_order_details.py
index 69793a3e..bf434dff 100644
--- a/test/test_order_details.py
+++ b/test/test_order_details.py
@@ -53,7 +53,7 @@ def make_instance(self, include_optional) -> OrderDetails:
settlement = None,
participants_identification = {"originator":{"externalReferenceId":"user_123456","entityType":"INDIVIDUAL","participantRelationshipType":"FirstParty","fullName":{"firstName":"John","lastName":"Smith"},"dateOfBirth":"1985-03-15","postalAddress":{"streetName":"Main Street","buildingNumber":"123","postalCode":"10001","city":"New York","subdivision":"NY","district":"Manhattan","country":"US"}},"beneficiary":{"externalReferenceId":"user_789012","entityType":"INDIVIDUAL","participantRelationshipType":"ThirdParty","fullName":{"firstName":"Alice","lastName":"Johnson"},"dateOfBirth":"1990-07-22","postalAddress":{"streetName":"Broadway","buildingNumber":"456","postalCode":"10002","city":"New York","subdivision":"NY","district":"Manhattan","country":"US"}}},
payment_instructions = [
- {"type":"IBAN","address":{"accountHolder":{"name":"John Smith","city":"London","country":"GB","subdivision":"ENG","address":"123 King's Road","postalCode":"SW3 4LX"},"iban":"GB82WEST12345698765432"},"referenceId":"PAY_INST_abc123def456"}
+ null
],
created_by = '',
customer_internal_reference_id = '',
diff --git a/test/test_order_side.py b/test/test_order_side.py
new file mode 100644
index 00000000..d30d6835
--- /dev/null
+++ b/test/test_order_side.py
@@ -0,0 +1,36 @@
+# 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.order_side import OrderSide
+
+
+class TestOrderSide(unittest.TestCase):
+ """OrderSide unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testOrderSide(self):
+ """Test OrderSide"""
+ # inst = OrderSide()
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_payment_instructions.py b/test/test_payment_instructions.py
index 4e7b1f73..9a995bad 100644
--- a/test/test_payment_instructions.py
+++ b/test/test_payment_instructions.py
@@ -37,15 +37,14 @@ def make_instance(self, include_optional) -> PaymentInstructions:
model = PaymentInstructions()
if include_optional:
return PaymentInstructions(
- type = 'IBAN',
- address = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"},
+ type = 'MOBILE_MONEY',
+ address = {"accountHolder":{"name":"Grace Wanjiku Kamau","city":"Nairobi","country":"KE","subdivision":"NRB","address":"Westlands Avenue 45","postalCode":"00100"},"mobilePhoneNumber":"+254712345678","provider":"m-pesa","beneficiaryDocumentId":"12345678","beneficiaryRelationship":"self"},
reference_id = ''
)
else:
return PaymentInstructions(
- type = 'IBAN',
- address = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"},
- reference_id = '',
+ type = 'MOBILE_MONEY',
+ address = {"accountHolder":{"name":"Grace Wanjiku Kamau","city":"Nairobi","country":"KE","subdivision":"NRB","address":"Westlands Avenue 45","postalCode":"00100"},"mobilePhoneNumber":"+254712345678","provider":"m-pesa","beneficiaryDocumentId":"12345678","beneficiaryRelationship":"self"},
)
"""
diff --git a/test/test_payment_instructions_details.py b/test/test_payment_instructions_details.py
new file mode 100644
index 00000000..a1a4493e
--- /dev/null
+++ b/test/test_payment_instructions_details.py
@@ -0,0 +1,54 @@
+# 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.payment_instructions_details import PaymentInstructionsDetails
+
+
+class TestPaymentInstructionsDetails(unittest.TestCase):
+ """PaymentInstructionsDetails unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> PaymentInstructionsDetails:
+ """Test PaymentInstructionsDetails
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `PaymentInstructionsDetails`
+ """
+ model = PaymentInstructionsDetails()
+ if include_optional:
+ return PaymentInstructionsDetails(
+ reference_id = ''
+ )
+ else:
+ return PaymentInstructionsDetails(
+ )
+ """
+
+ def testPaymentInstructionsDetails(self):
+ """Test PaymentInstructionsDetails"""
+ # 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_pix_address.py b/test/test_pix_address.py
new file mode 100644
index 00000000..dca62739
--- /dev/null
+++ b/test/test_pix_address.py
@@ -0,0 +1,61 @@
+# 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.pix_address import PixAddress
+
+
+class TestPixAddress(unittest.TestCase):
+ """PixAddress unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> PixAddress:
+ """Test PixAddress
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `PixAddress`
+ """
+ model = PixAddress()
+ if include_optional:
+ return PixAddress(
+ account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"},
+ pix_key = '',
+ key_type = 'cpf',
+ bank_name = '',
+ bank_code = ''
+ )
+ else:
+ return PixAddress(
+ account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"},
+ pix_key = '',
+ key_type = 'cpf',
+ )
+ """
+
+ def testPixAddress(self):
+ """Test PixAddress"""
+ # 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_pix_destination.py b/test/test_pix_destination.py
new file mode 100644
index 00000000..e8d88749
--- /dev/null
+++ b/test/test_pix_destination.py
@@ -0,0 +1,57 @@
+# 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.pix_destination import PixDestination
+
+
+class TestPixDestination(unittest.TestCase):
+ """PixDestination unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> PixDestination:
+ """Test PixDestination
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `PixDestination`
+ """
+ model = PixDestination()
+ if include_optional:
+ return PixDestination(
+ type = 'PIX',
+ address = {"accountHolder":{"name":"Maria Silva Santos","city":"São Paulo","country":"BR","subdivision":"SP","address":"Rua das Flores, 123","postalCode":"01234-567"},"pixKey":"11987654321","keyType":"phone","bankName":"Banco do Brasil","bankCode":"001"}
+ )
+ else:
+ return PixDestination(
+ type = 'PIX',
+ address = {"accountHolder":{"name":"Maria Silva Santos","city":"São Paulo","country":"BR","subdivision":"SP","address":"Rua das Flores, 123","postalCode":"01234-567"},"pixKey":"11987654321","keyType":"phone","bankName":"Banco do Brasil","bankCode":"001"},
+ )
+ """
+
+ def testPixDestination(self):
+ """Test PixDestination"""
+ # 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_policy_and_validation_response.py b/test/test_policy_and_validation_response.py
index 1e7cc86c..736b4583 100644
--- a/test/test_policy_and_validation_response.py
+++ b/test/test_policy_and_validation_response.py
@@ -50,21 +50,24 @@ def make_instance(self, include_optional) -> PolicyAndValidationResponse:
nft_transfer = False,
asset_types = ["FUNGIBLE","NFT","*"],
operator = 'INCLUDES', ),
- source = fireblocks.models.account_config.AccountConfig(
- type = 'VAULT',
+ source = fireblocks.models.source_config.SourceConfig(
ids = [
fireblocks.models.account_identifier.AccountIdentifier(
type = 'VAULT',
id = 'account123',
address = '0x123...', )
],
+ tags = [
+ fireblocks.models.policy_tag.PolicyTag(
+ id = 'tag_001', )
+ ],
operator = 'INCLUDES',
match_from = 'ACCOUNT', ),
destination = {"type":["EXTERNAL"],"operator":"INCLUDES","addressType":"WHITELISTED"},
account = fireblocks.models.account_config.AccountConfig(
- type = ,
operator = ,
match_from = 'ACCOUNT', ),
+ side = 'BUY',
verdict = fireblocks.models.verdict_config.VerdictConfig(
action = 'ALLOW',
approvers = fireblocks.models.approvers_config.ApproversConfig(
@@ -76,16 +79,14 @@ def make_instance(self, include_optional) -> PolicyAndValidationResponse:
users = ["user1","user2"],
groups = ["group1","group2"], ), ),
amount_over_time = fireblocks.models.amount_over_time_config.AmountOverTimeConfig(
- range = fireblocks.models.amount_over_time_config_range.AmountOverTimeConfig_range(
- min = '100',
- max = '10000', ),
+ range = {"min":"100","max":"10000"},
currency = 'USD',
time_period = fireblocks.models.time_period_config.TimePeriodConfig(
seconds = '86400',
initiator = 'PER_SINGLE_MATCH',
source = 'PER_SINGLE_MATCH',
destination = 'PER_SINGLE_MATCH', ), ),
- amount = {"min":"100","max":"10000","currency":"USD"},
+ amount = {"range":{"min":"100","max":"10000"},"currency":"USD"},
external_descriptor = 'High value transfer policy for institutional clients',
method = null,
is_global_policy = False,
@@ -113,8 +114,13 @@ def make_instance(self, include_optional) -> PolicyAndValidationResponse:
nft_transfer = False,
asset_types = ["FUNGIBLE","NFT","*"], ),
base_asset = ,
- quote_amount = {"min":"100","max":"10000","currency":"USD"},
- base_amount = {"min":"100","max":"10000","currency":"USD"},
+ quote_amount = {"range":{"min":"100","max":"10000"}},
+ base_amount = {"range":{"min":"100","max":"10000"}},
+ d_app_address = fireblocks.models.d_app_address_config.DAppAddressConfig(
+ global_whitelisted = ["rabby.io","jup.ag"],
+ tenant_whitelisted = ["uniswap.com","opensea.io"],
+ urls = ["*"],
+ operator = , ),
derivation_path = {"path":[44,0,0,0,0],"partial":false},
index = 1, )
],
@@ -156,21 +162,24 @@ def make_instance(self, include_optional) -> PolicyAndValidationResponse:
nft_transfer = False,
asset_types = ["FUNGIBLE","NFT","*"],
operator = 'INCLUDES', ),
- source = fireblocks.models.account_config.AccountConfig(
- type = 'VAULT',
+ source = fireblocks.models.source_config.SourceConfig(
ids = [
fireblocks.models.account_identifier.AccountIdentifier(
type = 'VAULT',
id = 'account123',
address = '0x123...', )
],
+ tags = [
+ fireblocks.models.policy_tag.PolicyTag(
+ id = 'tag_001', )
+ ],
operator = 'INCLUDES',
match_from = 'ACCOUNT', ),
destination = {"type":["EXTERNAL"],"operator":"INCLUDES","addressType":"WHITELISTED"},
account = fireblocks.models.account_config.AccountConfig(
- type = ,
operator = ,
match_from = 'ACCOUNT', ),
+ side = 'BUY',
verdict = fireblocks.models.verdict_config.VerdictConfig(
action = 'ALLOW',
approvers = fireblocks.models.approvers_config.ApproversConfig(
@@ -182,16 +191,14 @@ def make_instance(self, include_optional) -> PolicyAndValidationResponse:
users = ["user1","user2"],
groups = ["group1","group2"], ), ),
amount_over_time = fireblocks.models.amount_over_time_config.AmountOverTimeConfig(
- range = fireblocks.models.amount_over_time_config_range.AmountOverTimeConfig_range(
- min = '100',
- max = '10000', ),
+ range = {"min":"100","max":"10000"},
currency = 'USD',
time_period = fireblocks.models.time_period_config.TimePeriodConfig(
seconds = '86400',
initiator = 'PER_SINGLE_MATCH',
source = 'PER_SINGLE_MATCH',
destination = 'PER_SINGLE_MATCH', ), ),
- amount = {"min":"100","max":"10000","currency":"USD"},
+ amount = {"range":{"min":"100","max":"10000"},"currency":"USD"},
external_descriptor = 'High value transfer policy for institutional clients',
method = null,
is_global_policy = False,
@@ -219,8 +226,13 @@ def make_instance(self, include_optional) -> PolicyAndValidationResponse:
nft_transfer = False,
asset_types = ["FUNGIBLE","NFT","*"], ),
base_asset = ,
- quote_amount = {"min":"100","max":"10000","currency":"USD"},
- base_amount = {"min":"100","max":"10000","currency":"USD"},
+ quote_amount = {"range":{"min":"100","max":"10000"}},
+ base_amount = {"range":{"min":"100","max":"10000"}},
+ d_app_address = fireblocks.models.d_app_address_config.DAppAddressConfig(
+ global_whitelisted = ["rabby.io","jup.ag"],
+ tenant_whitelisted = ["uniswap.com","opensea.io"],
+ urls = ["*"],
+ operator = , ),
derivation_path = {"path":[44,0,0,0,0],"partial":false},
index = 1, )
],
diff --git a/test/test_policy_currency.py b/test/test_policy_currency.py
new file mode 100644
index 00000000..b2ffdf24
--- /dev/null
+++ b/test/test_policy_currency.py
@@ -0,0 +1,36 @@
+# 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.policy_currency import PolicyCurrency
+
+
+class TestPolicyCurrency(unittest.TestCase):
+ """PolicyCurrency unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testPolicyCurrency(self):
+ """Test PolicyCurrency"""
+ # inst = PolicyCurrency()
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_policy_response.py b/test/test_policy_response.py
index 0eee63fa..050b7373 100644
--- a/test/test_policy_response.py
+++ b/test/test_policy_response.py
@@ -49,21 +49,24 @@ def make_instance(self, include_optional) -> PolicyResponse:
nft_transfer = False,
asset_types = ["FUNGIBLE","NFT","*"],
operator = 'INCLUDES', ),
- source = fireblocks.models.account_config.AccountConfig(
- type = 'VAULT',
+ source = fireblocks.models.source_config.SourceConfig(
ids = [
fireblocks.models.account_identifier.AccountIdentifier(
type = 'VAULT',
id = 'account123',
address = '0x123...', )
],
+ tags = [
+ fireblocks.models.policy_tag.PolicyTag(
+ id = 'tag_001', )
+ ],
operator = 'INCLUDES',
match_from = 'ACCOUNT', ),
destination = {"type":["EXTERNAL"],"operator":"INCLUDES","addressType":"WHITELISTED"},
account = fireblocks.models.account_config.AccountConfig(
- type = ,
operator = ,
match_from = 'ACCOUNT', ),
+ side = 'BUY',
verdict = fireblocks.models.verdict_config.VerdictConfig(
action = 'ALLOW',
approvers = fireblocks.models.approvers_config.ApproversConfig(
@@ -75,16 +78,14 @@ def make_instance(self, include_optional) -> PolicyResponse:
users = ["user1","user2"],
groups = ["group1","group2"], ), ),
amount_over_time = fireblocks.models.amount_over_time_config.AmountOverTimeConfig(
- range = fireblocks.models.amount_over_time_config_range.AmountOverTimeConfig_range(
- min = '100',
- max = '10000', ),
+ range = {"min":"100","max":"10000"},
currency = 'USD',
time_period = fireblocks.models.time_period_config.TimePeriodConfig(
seconds = '86400',
initiator = 'PER_SINGLE_MATCH',
source = 'PER_SINGLE_MATCH',
destination = 'PER_SINGLE_MATCH', ), ),
- amount = {"min":"100","max":"10000","currency":"USD"},
+ amount = {"range":{"min":"100","max":"10000"},"currency":"USD"},
external_descriptor = 'High value transfer policy for institutional clients',
method = null,
is_global_policy = False,
@@ -112,8 +113,13 @@ def make_instance(self, include_optional) -> PolicyResponse:
nft_transfer = False,
asset_types = ["FUNGIBLE","NFT","*"], ),
base_asset = ,
- quote_amount = {"min":"100","max":"10000","currency":"USD"},
- base_amount = {"min":"100","max":"10000","currency":"USD"},
+ quote_amount = {"range":{"min":"100","max":"10000"}},
+ base_amount = {"range":{"min":"100","max":"10000"}},
+ d_app_address = fireblocks.models.d_app_address_config.DAppAddressConfig(
+ global_whitelisted = ["rabby.io","jup.ag"],
+ tenant_whitelisted = ["uniswap.com","opensea.io"],
+ urls = ["*"],
+ operator = , ),
derivation_path = {"path":[44,0,0,0,0],"partial":false},
index = 1, )
],
@@ -138,21 +144,24 @@ def make_instance(self, include_optional) -> PolicyResponse:
nft_transfer = False,
asset_types = ["FUNGIBLE","NFT","*"],
operator = 'INCLUDES', ),
- source = fireblocks.models.account_config.AccountConfig(
- type = 'VAULT',
+ source = fireblocks.models.source_config.SourceConfig(
ids = [
fireblocks.models.account_identifier.AccountIdentifier(
type = 'VAULT',
id = 'account123',
address = '0x123...', )
],
+ tags = [
+ fireblocks.models.policy_tag.PolicyTag(
+ id = 'tag_001', )
+ ],
operator = 'INCLUDES',
match_from = 'ACCOUNT', ),
destination = {"type":["EXTERNAL"],"operator":"INCLUDES","addressType":"WHITELISTED"},
account = fireblocks.models.account_config.AccountConfig(
- type = ,
operator = ,
match_from = 'ACCOUNT', ),
+ side = 'BUY',
verdict = fireblocks.models.verdict_config.VerdictConfig(
action = 'ALLOW',
approvers = fireblocks.models.approvers_config.ApproversConfig(
@@ -164,16 +173,14 @@ def make_instance(self, include_optional) -> PolicyResponse:
users = ["user1","user2"],
groups = ["group1","group2"], ), ),
amount_over_time = fireblocks.models.amount_over_time_config.AmountOverTimeConfig(
- range = fireblocks.models.amount_over_time_config_range.AmountOverTimeConfig_range(
- min = '100',
- max = '10000', ),
+ range = {"min":"100","max":"10000"},
currency = 'USD',
time_period = fireblocks.models.time_period_config.TimePeriodConfig(
seconds = '86400',
initiator = 'PER_SINGLE_MATCH',
source = 'PER_SINGLE_MATCH',
destination = 'PER_SINGLE_MATCH', ), ),
- amount = {"min":"100","max":"10000","currency":"USD"},
+ amount = {"range":{"min":"100","max":"10000"},"currency":"USD"},
external_descriptor = 'High value transfer policy for institutional clients',
method = null,
is_global_policy = False,
@@ -201,8 +208,13 @@ def make_instance(self, include_optional) -> PolicyResponse:
nft_transfer = False,
asset_types = ["FUNGIBLE","NFT","*"], ),
base_asset = ,
- quote_amount = {"min":"100","max":"10000","currency":"USD"},
- base_amount = {"min":"100","max":"10000","currency":"USD"},
+ quote_amount = {"range":{"min":"100","max":"10000"}},
+ base_amount = {"range":{"min":"100","max":"10000"}},
+ d_app_address = fireblocks.models.d_app_address_config.DAppAddressConfig(
+ global_whitelisted = ["rabby.io","jup.ag"],
+ tenant_whitelisted = ["uniswap.com","opensea.io"],
+ urls = ["*"],
+ operator = , ),
derivation_path = {"path":[44,0,0,0,0],"partial":false},
index = 1, )
],
diff --git a/test/test_policy_rule.py b/test/test_policy_rule.py
index 4f0e1128..0ec2280e 100644
--- a/test/test_policy_rule.py
+++ b/test/test_policy_rule.py
@@ -47,8 +47,8 @@ def make_instance(self, include_optional) -> PolicyRule:
nft_transfer = False,
asset_types = ["FUNGIBLE","NFT","*"],
operator = 'INCLUDES', ),
- source = fireblocks.models.account_config.AccountConfig(
- type = 'VAULT',
+ source = fireblocks.models.source_config.SourceConfig(
+ type = ["VAULT","UNMANAGED"],
sub_type = [
fireblocks.models.account_identifier.AccountIdentifier(
type = 'VAULT',
@@ -57,15 +57,21 @@ def make_instance(self, include_optional) -> PolicyRule:
],
ids = [
fireblocks.models.account_identifier.AccountIdentifier(
- type = ,
+ type = 'VAULT',
id = 'account123',
address = '0x123...', )
],
+ tags = [
+ fireblocks.models.policy_tag.PolicyTag(
+ id = 'tag_001', )
+ ],
operator = 'INCLUDES',
match_from = 'ACCOUNT', ),
destination = {"type":["EXTERNAL"],"operator":"INCLUDES","addressType":"WHITELISTED"},
account = fireblocks.models.account_config.AccountConfig(
- type = 'VAULT',
+ type = [
+ 'VAULT'
+ ],
sub_type = [
fireblocks.models.account_identifier.AccountIdentifier(
type = 'VAULT',
@@ -74,12 +80,17 @@ def make_instance(self, include_optional) -> PolicyRule:
],
ids = [
fireblocks.models.account_identifier.AccountIdentifier(
- type = ,
+ type = 'VAULT',
id = 'account123',
address = '0x123...', )
],
+ tags = [
+ fireblocks.models.policy_tag.PolicyTag(
+ id = 'tag_001', )
+ ],
operator = 'INCLUDES',
match_from = 'ACCOUNT', ),
+ side = 'BUY',
verdict = fireblocks.models.verdict_config.VerdictConfig(
action = 'ALLOW',
approvers = fireblocks.models.approvers_config.ApproversConfig(
@@ -92,16 +103,14 @@ def make_instance(self, include_optional) -> PolicyRule:
users = ["user1","user2"],
groups = ["group1","group2"], ), ),
amount_over_time = fireblocks.models.amount_over_time_config.AmountOverTimeConfig(
- range = fireblocks.models.amount_over_time_config_range.AmountOverTimeConfig_range(
- min = '100',
- max = '10000', ),
+ range = {"min":"100","max":"10000"},
currency = 'USD',
time_period = fireblocks.models.time_period_config.TimePeriodConfig(
seconds = '86400',
initiator = 'PER_SINGLE_MATCH',
source = 'PER_SINGLE_MATCH',
destination = 'PER_SINGLE_MATCH', ), ),
- amount = {"min":"100","max":"10000","currency":"USD"},
+ amount = {"range":{"min":"100","max":"10000"},"currency":"USD"},
external_descriptor = 'High value transfer policy for institutional clients',
method = None,
is_global_policy = False,
@@ -133,8 +142,13 @@ def make_instance(self, include_optional) -> PolicyRule:
nft_transfer = False,
asset_types = ["FUNGIBLE","NFT","*"],
operator = 'INCLUDES', ),
- quote_amount = {"min":"100","max":"10000","currency":"USD"},
- base_amount = {"min":"100","max":"10000","currency":"USD"},
+ quote_amount = {"range":{"min":"100","max":"10000"}},
+ base_amount = {"range":{"min":"100","max":"10000"}},
+ d_app_address = fireblocks.models.d_app_address_config.DAppAddressConfig(
+ global_whitelisted = ["rabby.io","jup.ag"],
+ tenant_whitelisted = ["uniswap.com","opensea.io"],
+ urls = ["*"],
+ operator = 'INCLUDES', ),
derivation_path = {"path":[44,0,0,0,0],"partial":false},
index = 1
)
@@ -145,12 +159,8 @@ def make_instance(self, include_optional) -> PolicyRule:
policy_engine_version = 'v2',
type = 'TRANSFER',
initiator = None,
- asset = fireblocks.models.asset_config.AssetConfig(
- nft_transfer = False,
- asset_types = ["FUNGIBLE","NFT","*"],
- operator = 'INCLUDES', ),
- source = fireblocks.models.account_config.AccountConfig(
- type = 'VAULT',
+ source = fireblocks.models.source_config.SourceConfig(
+ type = ["VAULT","UNMANAGED"],
sub_type = [
fireblocks.models.account_identifier.AccountIdentifier(
type = 'VAULT',
@@ -159,10 +169,14 @@ def make_instance(self, include_optional) -> PolicyRule:
],
ids = [
fireblocks.models.account_identifier.AccountIdentifier(
- type = ,
+ type = 'VAULT',
id = 'account123',
address = '0x123...', )
],
+ tags = [
+ fireblocks.models.policy_tag.PolicyTag(
+ id = 'tag_001', )
+ ],
operator = 'INCLUDES',
match_from = 'ACCOUNT', ),
verdict = fireblocks.models.verdict_config.VerdictConfig(
diff --git a/test/test_policy_tag.py b/test/test_policy_tag.py
new file mode 100644
index 00000000..984177c0
--- /dev/null
+++ b/test/test_policy_tag.py
@@ -0,0 +1,55 @@
+# 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.policy_tag import PolicyTag
+
+
+class TestPolicyTag(unittest.TestCase):
+ """PolicyTag unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> PolicyTag:
+ """Test PolicyTag
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `PolicyTag`
+ """
+ model = PolicyTag()
+ if include_optional:
+ return PolicyTag(
+ id = 'tag_001'
+ )
+ else:
+ return PolicyTag(
+ id = 'tag_001',
+ )
+ """
+
+ def testPolicyTag(self):
+ """Test PolicyTag"""
+ # 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_policy_verdict_action_enum.py b/test/test_policy_verdict_action_enum.py
new file mode 100644
index 00000000..2a44199b
--- /dev/null
+++ b/test/test_policy_verdict_action_enum.py
@@ -0,0 +1,36 @@
+# 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.policy_verdict_action_enum import PolicyVerdictActionEnum
+
+
+class TestPolicyVerdictActionEnum(unittest.TestCase):
+ """PolicyVerdictActionEnum unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testPolicyVerdictActionEnum(self):
+ """Test PolicyVerdictActionEnum"""
+ # inst = PolicyVerdictActionEnum()
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_policy_verdict_action_enum2.py b/test/test_policy_verdict_action_enum2.py
new file mode 100644
index 00000000..399943de
--- /dev/null
+++ b/test/test_policy_verdict_action_enum2.py
@@ -0,0 +1,36 @@
+# 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.policy_verdict_action_enum2 import PolicyVerdictActionEnum2
+
+
+class TestPolicyVerdictActionEnum2(unittest.TestCase):
+ """PolicyVerdictActionEnum2 unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testPolicyVerdictActionEnum2(self):
+ """Test PolicyVerdictActionEnum2"""
+ # inst = PolicyVerdictActionEnum2()
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_publish_result.py b/test/test_publish_result.py
index 91165aff..a5ae5368 100644
--- a/test/test_publish_result.py
+++ b/test/test_publish_result.py
@@ -50,21 +50,24 @@ def make_instance(self, include_optional) -> PublishResult:
nft_transfer = False,
asset_types = ["FUNGIBLE","NFT","*"],
operator = 'INCLUDES', ),
- source = fireblocks.models.account_config.AccountConfig(
- type = 'VAULT',
+ source = fireblocks.models.source_config.SourceConfig(
ids = [
fireblocks.models.account_identifier.AccountIdentifier(
type = 'VAULT',
id = 'account123',
address = '0x123...', )
],
+ tags = [
+ fireblocks.models.policy_tag.PolicyTag(
+ id = 'tag_001', )
+ ],
operator = 'INCLUDES',
match_from = 'ACCOUNT', ),
destination = {"type":["EXTERNAL"],"operator":"INCLUDES","addressType":"WHITELISTED"},
account = fireblocks.models.account_config.AccountConfig(
- type = ,
operator = ,
match_from = 'ACCOUNT', ),
+ side = 'BUY',
verdict = fireblocks.models.verdict_config.VerdictConfig(
action = 'ALLOW',
approvers = fireblocks.models.approvers_config.ApproversConfig(
@@ -76,16 +79,14 @@ def make_instance(self, include_optional) -> PublishResult:
users = ["user1","user2"],
groups = ["group1","group2"], ), ),
amount_over_time = fireblocks.models.amount_over_time_config.AmountOverTimeConfig(
- range = fireblocks.models.amount_over_time_config_range.AmountOverTimeConfig_range(
- min = '100',
- max = '10000', ),
+ range = {"min":"100","max":"10000"},
currency = 'USD',
time_period = fireblocks.models.time_period_config.TimePeriodConfig(
seconds = '86400',
initiator = 'PER_SINGLE_MATCH',
source = 'PER_SINGLE_MATCH',
destination = 'PER_SINGLE_MATCH', ), ),
- amount = {"min":"100","max":"10000","currency":"USD"},
+ amount = {"range":{"min":"100","max":"10000"},"currency":"USD"},
external_descriptor = 'High value transfer policy for institutional clients',
method = null,
is_global_policy = False,
@@ -113,8 +114,13 @@ def make_instance(self, include_optional) -> PublishResult:
nft_transfer = False,
asset_types = ["FUNGIBLE","NFT","*"], ),
base_asset = ,
- quote_amount = {"min":"100","max":"10000","currency":"USD"},
- base_amount = {"min":"100","max":"10000","currency":"USD"},
+ quote_amount = {"range":{"min":"100","max":"10000"}},
+ base_amount = {"range":{"min":"100","max":"10000"}},
+ d_app_address = fireblocks.models.d_app_address_config.DAppAddressConfig(
+ global_whitelisted = ["rabby.io","jup.ag"],
+ tenant_whitelisted = ["uniswap.com","opensea.io"],
+ urls = ["*"],
+ operator = , ),
derivation_path = {"path":[44,0,0,0,0],"partial":false},
index = 1, )
],
@@ -154,21 +160,24 @@ def make_instance(self, include_optional) -> PublishResult:
nft_transfer = False,
asset_types = ["FUNGIBLE","NFT","*"],
operator = 'INCLUDES', ),
- source = fireblocks.models.account_config.AccountConfig(
- type = 'VAULT',
+ source = fireblocks.models.source_config.SourceConfig(
ids = [
fireblocks.models.account_identifier.AccountIdentifier(
type = 'VAULT',
id = 'account123',
address = '0x123...', )
],
+ tags = [
+ fireblocks.models.policy_tag.PolicyTag(
+ id = 'tag_001', )
+ ],
operator = 'INCLUDES',
match_from = 'ACCOUNT', ),
destination = {"type":["EXTERNAL"],"operator":"INCLUDES","addressType":"WHITELISTED"},
account = fireblocks.models.account_config.AccountConfig(
- type = ,
operator = ,
match_from = 'ACCOUNT', ),
+ side = 'BUY',
verdict = fireblocks.models.verdict_config.VerdictConfig(
action = 'ALLOW',
approvers = fireblocks.models.approvers_config.ApproversConfig(
@@ -180,16 +189,14 @@ def make_instance(self, include_optional) -> PublishResult:
users = ["user1","user2"],
groups = ["group1","group2"], ), ),
amount_over_time = fireblocks.models.amount_over_time_config.AmountOverTimeConfig(
- range = fireblocks.models.amount_over_time_config_range.AmountOverTimeConfig_range(
- min = '100',
- max = '10000', ),
+ range = {"min":"100","max":"10000"},
currency = 'USD',
time_period = fireblocks.models.time_period_config.TimePeriodConfig(
seconds = '86400',
initiator = 'PER_SINGLE_MATCH',
source = 'PER_SINGLE_MATCH',
destination = 'PER_SINGLE_MATCH', ), ),
- amount = {"min":"100","max":"10000","currency":"USD"},
+ amount = {"range":{"min":"100","max":"10000"},"currency":"USD"},
external_descriptor = 'High value transfer policy for institutional clients',
method = null,
is_global_policy = False,
@@ -217,8 +224,13 @@ def make_instance(self, include_optional) -> PublishResult:
nft_transfer = False,
asset_types = ["FUNGIBLE","NFT","*"], ),
base_asset = ,
- quote_amount = {"min":"100","max":"10000","currency":"USD"},
- base_amount = {"min":"100","max":"10000","currency":"USD"},
+ quote_amount = {"range":{"min":"100","max":"10000"}},
+ base_amount = {"range":{"min":"100","max":"10000"}},
+ d_app_address = fireblocks.models.d_app_address_config.DAppAddressConfig(
+ global_whitelisted = ["rabby.io","jup.ag"],
+ tenant_whitelisted = ["uniswap.com","opensea.io"],
+ urls = ["*"],
+ operator = , ),
derivation_path = {"path":[44,0,0,0,0],"partial":false},
index = 1, )
],
diff --git a/test/test_quote_execution_response_details.py b/test/test_quote_execution_response_details.py
index b34802ee..70390444 100644
--- a/test/test_quote_execution_response_details.py
+++ b/test/test_quote_execution_response_details.py
@@ -39,25 +39,25 @@ def make_instance(self, include_optional) -> QuoteExecutionResponseDetails:
model = QuoteExecutionResponseDetails()
if include_optional:
return QuoteExecutionResponseDetails(
+ type = 'QUOTE',
+ quote_id = '',
+ quote_amount = '',
side = 'BUY',
base_amount = '',
base_asset_id = '',
base_asset_rail = 'BLOCKCHAIN',
quote_asset_id = '',
- quote_asset_rail = 'BLOCKCHAIN',
- type = 'QUOTE',
- quote_id = '',
- quote_amount = ''
+ quote_asset_rail = 'BLOCKCHAIN'
)
else:
return QuoteExecutionResponseDetails(
+ type = 'QUOTE',
+ quote_id = '',
+ quote_amount = '',
side = 'BUY',
base_amount = '',
base_asset_id = '',
quote_asset_id = '',
- type = 'QUOTE',
- quote_id = '',
- quote_amount = '',
)
"""
diff --git a/test/test_quote_execution_type_details.py b/test/test_quote_execution_type_details.py
new file mode 100644
index 00000000..6e82f9f0
--- /dev/null
+++ b/test/test_quote_execution_type_details.py
@@ -0,0 +1,59 @@
+# 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.quote_execution_type_details import QuoteExecutionTypeDetails
+
+
+class TestQuoteExecutionTypeDetails(unittest.TestCase):
+ """QuoteExecutionTypeDetails unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> QuoteExecutionTypeDetails:
+ """Test QuoteExecutionTypeDetails
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `QuoteExecutionTypeDetails`
+ """
+ model = QuoteExecutionTypeDetails()
+ if include_optional:
+ return QuoteExecutionTypeDetails(
+ type = 'QUOTE',
+ quote_id = '',
+ quote_amount = ''
+ )
+ else:
+ return QuoteExecutionTypeDetails(
+ type = 'QUOTE',
+ quote_id = '',
+ quote_amount = '',
+ )
+ """
+
+ def testQuoteExecutionTypeDetails(self):
+ """Test QuoteExecutionTypeDetails"""
+ # 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_quote_properties_details.py b/test/test_quote_properties_details.py
new file mode 100644
index 00000000..cdd57539
--- /dev/null
+++ b/test/test_quote_properties_details.py
@@ -0,0 +1,77 @@
+# 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.quote_properties_details import QuotePropertiesDetails
+
+
+class TestQuotePropertiesDetails(unittest.TestCase):
+ """QuotePropertiesDetails unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> QuotePropertiesDetails:
+ """Test QuotePropertiesDetails
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `QuotePropertiesDetails`
+ """
+ model = QuotePropertiesDetails()
+ if include_optional:
+ return QuotePropertiesDetails(
+ via = None,
+ id = '',
+ type = 'COMMITTED',
+ quote_asset_id = '',
+ base_asset_id = '',
+ base_amount = '',
+ quote_amount = '',
+ price_impact = 1.337,
+ quote_min_amount = '',
+ execution_steps = [
+ {"type":"MARKET_EXECUTION","fee":{"feeType":"ORDER","assetId":"USD","amountType":"FIXED","amount":"2.50"}}
+ ],
+ general_fees = [
+ null
+ ],
+ side = 'BUY'
+ )
+ else:
+ return QuotePropertiesDetails(
+ via = None,
+ id = '',
+ type = 'COMMITTED',
+ quote_asset_id = '',
+ base_asset_id = '',
+ base_amount = '',
+ quote_amount = '',
+ side = 'BUY',
+ )
+ """
+
+ def testQuotePropertiesDetails(self):
+ """Test QuotePropertiesDetails"""
+ # 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_re_quote_details.py b/test/test_re_quote_details.py
new file mode 100644
index 00000000..0049447e
--- /dev/null
+++ b/test/test_re_quote_details.py
@@ -0,0 +1,54 @@
+# 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.re_quote_details import ReQuoteDetails
+
+
+class TestReQuoteDetails(unittest.TestCase):
+ """ReQuoteDetails unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ReQuoteDetails:
+ """Test ReQuoteDetails
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `ReQuoteDetails`
+ """
+ model = ReQuoteDetails()
+ if include_optional:
+ return ReQuoteDetails(
+ re_quote = None
+ )
+ else:
+ return ReQuoteDetails(
+ )
+ """
+
+ def testReQuoteDetails(self):
+ """Test ReQuoteDetails"""
+ # 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_quote_execution_with_requote_request_details_all_of_re_quote.py b/test/test_re_quote_details_re_quote.py
similarity index 51%
rename from test/test_quote_execution_with_requote_request_details_all_of_re_quote.py
rename to test/test_re_quote_details_re_quote.py
index 3fb0e61f..f6be6349 100644
--- a/test/test_quote_execution_with_requote_request_details_all_of_re_quote.py
+++ b/test/test_re_quote_details_re_quote.py
@@ -15,13 +15,11 @@
import unittest
-from fireblocks.models.quote_execution_with_requote_request_details_all_of_re_quote import (
- QuoteExecutionWithRequoteRequestDetailsAllOfReQuote,
-)
+from fireblocks.models.re_quote_details_re_quote import ReQuoteDetailsReQuote
-class TestQuoteExecutionWithRequoteRequestDetailsAllOfReQuote(unittest.TestCase):
- """QuoteExecutionWithRequoteRequestDetailsAllOfReQuote unit test stubs"""
+class TestReQuoteDetailsReQuote(unittest.TestCase):
+ """ReQuoteDetailsReQuote unit test stubs"""
def setUp(self):
pass
@@ -29,31 +27,29 @@ def setUp(self):
def tearDown(self):
pass
- def make_instance(
- self, include_optional
- ) -> QuoteExecutionWithRequoteRequestDetailsAllOfReQuote:
- """Test QuoteExecutionWithRequoteRequestDetailsAllOfReQuote
+ def make_instance(self, include_optional) -> ReQuoteDetailsReQuote:
+ """Test ReQuoteDetailsReQuote
include_optional is a boolean, when False only required
params are included, when True both required and
optional params are included"""
- # uncomment below to create an instance of `QuoteExecutionWithRequoteRequestDetailsAllOfReQuote`
+ # uncomment below to create an instance of `ReQuoteDetailsReQuote`
"""
- model = QuoteExecutionWithRequoteRequestDetailsAllOfReQuote()
+ model = ReQuoteDetailsReQuote()
if include_optional:
- return QuoteExecutionWithRequoteRequestDetailsAllOfReQuote(
+ return ReQuoteDetailsReQuote(
type = 'MARKET',
count = 1,
slippage_bps = 1
)
else:
- return QuoteExecutionWithRequoteRequestDetailsAllOfReQuote(
+ return ReQuoteDetailsReQuote(
type = 'MARKET',
count = 1,
)
"""
- def testQuoteExecutionWithRequoteRequestDetailsAllOfReQuote(self):
- """Test QuoteExecutionWithRequoteRequestDetailsAllOfReQuote"""
+ def testReQuoteDetailsReQuote(self):
+ """Test ReQuoteDetailsReQuote"""
# inst_req_only = self.make_instance(include_optional=False)
# inst_req_and_optional = self.make_instance(include_optional=True)
diff --git a/test/test_screening_alert_exposure_type_enum.py b/test/test_screening_alert_exposure_type_enum.py
new file mode 100644
index 00000000..6f91eb07
--- /dev/null
+++ b/test/test_screening_alert_exposure_type_enum.py
@@ -0,0 +1,38 @@
+# 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.screening_alert_exposure_type_enum import (
+ ScreeningAlertExposureTypeEnum,
+)
+
+
+class TestScreeningAlertExposureTypeEnum(unittest.TestCase):
+ """ScreeningAlertExposureTypeEnum unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testScreeningAlertExposureTypeEnum(self):
+ """Test ScreeningAlertExposureTypeEnum"""
+ # inst = ScreeningAlertExposureTypeEnum()
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_screening_aml_alert.py b/test/test_screening_aml_alert.py
new file mode 100644
index 00000000..7a274404
--- /dev/null
+++ b/test/test_screening_aml_alert.py
@@ -0,0 +1,66 @@
+# 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.screening_aml_alert import ScreeningAmlAlert
+
+
+class TestScreeningAmlAlert(unittest.TestCase):
+ """ScreeningAmlAlert unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ScreeningAmlAlert:
+ """Test ScreeningAmlAlert
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `ScreeningAmlAlert`
+ """
+ model = ScreeningAmlAlert()
+ if include_optional:
+ return ScreeningAmlAlert(
+ alert_level = 'HIGH',
+ alert_name = 'Sanctions Match',
+ category = 'SANCTIONED_ENTITY',
+ service = 'CHAINALYSIS',
+ external_id = 'alert_12345',
+ alert_amount = 1000.5,
+ exposure_type = 'DIRECT',
+ policy_action = 'BLOCK',
+ category_id = 101
+ )
+ else:
+ return ScreeningAmlAlert(
+ alert_level = 'HIGH',
+ external_id = 'alert_12345',
+ alert_amount = 1000.5,
+ exposure_type = 'DIRECT',
+ )
+ """
+
+ def testScreeningAmlAlert(self):
+ """Test ScreeningAmlAlert"""
+ # 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_screening_aml_matched_rule.py b/test/test_screening_aml_matched_rule.py
new file mode 100644
index 00000000..00a63ce0
--- /dev/null
+++ b/test/test_screening_aml_matched_rule.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.screening_aml_matched_rule import ScreeningAmlMatchedRule
+
+
+class TestScreeningAmlMatchedRule(unittest.TestCase):
+ """ScreeningAmlMatchedRule unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ScreeningAmlMatchedRule:
+ """Test ScreeningAmlMatchedRule
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `ScreeningAmlMatchedRule`
+ """
+ model = ScreeningAmlMatchedRule()
+ if include_optional:
+ return ScreeningAmlMatchedRule(
+ rule_id = 'rule_001',
+ rule_name = 'High Risk Sanctions Check',
+ action = 'ALLOW'
+ )
+ else:
+ return ScreeningAmlMatchedRule(
+ )
+ """
+
+ def testScreeningAmlMatchedRule(self):
+ """Test ScreeningAmlMatchedRule"""
+ # 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_screening_aml_result.py b/test/test_screening_aml_result.py
new file mode 100644
index 00000000..4df5d427
--- /dev/null
+++ b/test/test_screening_aml_result.py
@@ -0,0 +1,80 @@
+# 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.screening_aml_result import ScreeningAmlResult
+
+
+class TestScreeningAmlResult(unittest.TestCase):
+ """ScreeningAmlResult unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ScreeningAmlResult:
+ """Test ScreeningAmlResult
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `ScreeningAmlResult`
+ """
+ model = ScreeningAmlResult()
+ if include_optional:
+ return ScreeningAmlResult(
+ alerts = [
+ fireblocks.models.screening_aml_alert.ScreeningAmlAlert(
+ alert_level = 'HIGH',
+ alert_name = 'Sanctions Match',
+ category = 'SANCTIONED_ENTITY',
+ service = 'CHAINALYSIS',
+ external_id = 'alert_12345',
+ alert_amount = 1000.5,
+ exposure_type = 'DIRECT',
+ policy_action = 'BLOCK',
+ category_id = 101, )
+ ],
+ provider_response = { },
+ matched_rule = fireblocks.models.screening_aml_matched_rule.ScreeningAmlMatchedRule(
+ rule_id = 'rule_001',
+ rule_name = 'High Risk Sanctions Check',
+ action = 'ALLOW', ),
+ matched_alert = fireblocks.models.screening_aml_alert.ScreeningAmlAlert(
+ alert_level = 'HIGH',
+ alert_name = 'Sanctions Match',
+ category = 'SANCTIONED_ENTITY',
+ service = 'CHAINALYSIS',
+ external_id = 'alert_12345',
+ alert_amount = 1000.5,
+ exposure_type = 'DIRECT',
+ policy_action = 'BLOCK',
+ category_id = 101, )
+ )
+ else:
+ return ScreeningAmlResult(
+ )
+ """
+
+ def testScreeningAmlResult(self):
+ """Test ScreeningAmlResult"""
+ # 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_screening_metadata_config.py b/test/test_screening_metadata_config.py
index 179f9353..813f2e03 100644
--- a/test/test_screening_metadata_config.py
+++ b/test/test_screening_metadata_config.py
@@ -57,7 +57,6 @@ def make_instance(self, include_optional) -> ScreeningMetadataConfig:
)
else:
return ScreeningMetadataConfig(
- direction = 'OUTBOUND',
)
"""
diff --git a/test/test_screening_risk_level_enum.py b/test/test_screening_risk_level_enum.py
new file mode 100644
index 00000000..d75d8be7
--- /dev/null
+++ b/test/test_screening_risk_level_enum.py
@@ -0,0 +1,36 @@
+# 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.screening_risk_level_enum import ScreeningRiskLevelEnum
+
+
+class TestScreeningRiskLevelEnum(unittest.TestCase):
+ """ScreeningRiskLevelEnum unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testScreeningRiskLevelEnum(self):
+ """Test ScreeningRiskLevelEnum"""
+ # inst = ScreeningRiskLevelEnum()
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_screening_tr_link_amount.py b/test/test_screening_tr_link_amount.py
new file mode 100644
index 00000000..2f8aabdf
--- /dev/null
+++ b/test/test_screening_tr_link_amount.py
@@ -0,0 +1,57 @@
+# 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.screening_tr_link_amount import ScreeningTRLinkAmount
+
+
+class TestScreeningTRLinkAmount(unittest.TestCase):
+ """ScreeningTRLinkAmount unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ScreeningTRLinkAmount:
+ """Test ScreeningTRLinkAmount
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `ScreeningTRLinkAmount`
+ """
+ model = ScreeningTRLinkAmount()
+ if include_optional:
+ return ScreeningTRLinkAmount(
+ range = fireblocks.models.amount_range_min_max.AmountRangeMinMax(
+ min = '100',
+ max = '10000', ),
+ currency = 'USD'
+ )
+ else:
+ return ScreeningTRLinkAmount(
+ )
+ """
+
+ def testScreeningTRLinkAmount(self):
+ """Test ScreeningTRLinkAmount"""
+ # 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_screening_tr_link_missing_trm_decision.py b/test/test_screening_tr_link_missing_trm_decision.py
new file mode 100644
index 00000000..52626c49
--- /dev/null
+++ b/test/test_screening_tr_link_missing_trm_decision.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.screening_tr_link_missing_trm_decision import (
+ ScreeningTRLinkMissingTrmDecision,
+)
+
+
+class TestScreeningTRLinkMissingTrmDecision(unittest.TestCase):
+ """ScreeningTRLinkMissingTrmDecision unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ScreeningTRLinkMissingTrmDecision:
+ """Test ScreeningTRLinkMissingTrmDecision
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `ScreeningTRLinkMissingTrmDecision`
+ """
+ model = ScreeningTRLinkMissingTrmDecision()
+ if include_optional:
+ return ScreeningTRLinkMissingTrmDecision(
+ customer_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ direction = 'OUTBOUND',
+ source_type = 'VAULT_ACCOUNT',
+ source_sub_type = 'INTERNAL',
+ source_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa',
+ dest_type = 'VAULT_ACCOUNT',
+ dest_sub_type = 'INTERNAL',
+ dest_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa',
+ source_id = '1',
+ dest_id = '1',
+ asset = 'BTC',
+ base_asset = 'USD',
+ amount = fireblocks.models.screening_tr_link_amount.ScreeningTRLinkAmount(
+ range = fireblocks.models.amount_range_min_max.AmountRangeMinMax(
+ min = '100',
+ max = '10000', ),
+ currency = 'USD', ),
+ network_protocol = 'BITCOIN',
+ operation = 'TRANSFER',
+ description = 'Rule for high-value BTC transfers',
+ is_default = True,
+ valid_before = 1672531200000,
+ valid_after = 1640995200000,
+ action = 'WAIT',
+ source = 'policy',
+ timestamp = '2023-10-05T14:48Z',
+ reason = 'Missing travel rule message'
+ )
+ else:
+ return ScreeningTRLinkMissingTrmDecision(
+ action = 'WAIT',
+ source = 'policy',
+ )
+ """
+
+ def testScreeningTRLinkMissingTrmDecision(self):
+ """Test ScreeningTRLinkMissingTrmDecision"""
+ # 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_screening_tr_link_missing_trm_rule.py b/test/test_screening_tr_link_missing_trm_rule.py
new file mode 100644
index 00000000..2dff58fc
--- /dev/null
+++ b/test/test_screening_tr_link_missing_trm_rule.py
@@ -0,0 +1,80 @@
+# 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.screening_tr_link_missing_trm_rule import (
+ ScreeningTRLinkMissingTrmRule,
+)
+
+
+class TestScreeningTRLinkMissingTrmRule(unittest.TestCase):
+ """ScreeningTRLinkMissingTrmRule unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ScreeningTRLinkMissingTrmRule:
+ """Test ScreeningTRLinkMissingTrmRule
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `ScreeningTRLinkMissingTrmRule`
+ """
+ model = ScreeningTRLinkMissingTrmRule()
+ if include_optional:
+ return ScreeningTRLinkMissingTrmRule(
+ customer_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ direction = 'OUTBOUND',
+ source_type = 'VAULT_ACCOUNT',
+ source_sub_type = 'INTERNAL',
+ source_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa',
+ dest_type = 'VAULT_ACCOUNT',
+ dest_sub_type = 'INTERNAL',
+ dest_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa',
+ source_id = '1',
+ dest_id = '1',
+ asset = 'BTC',
+ base_asset = 'USD',
+ amount = fireblocks.models.screening_tr_link_amount.ScreeningTRLinkAmount(
+ range = fireblocks.models.amount_range_min_max.AmountRangeMinMax(
+ min = '100',
+ max = '10000', ),
+ currency = 'USD', ),
+ network_protocol = 'BITCOIN',
+ operation = 'TRANSFER',
+ description = 'Rule for high-value BTC transfers',
+ is_default = True,
+ valid_before = 1672531200000,
+ valid_after = 1640995200000,
+ action = 'WAIT'
+ )
+ else:
+ return ScreeningTRLinkMissingTrmRule(
+ action = 'WAIT',
+ )
+ """
+
+ def testScreeningTRLinkMissingTrmRule(self):
+ """Test ScreeningTRLinkMissingTrmRule"""
+ # 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_screening_tr_link_post_screening_rule.py b/test/test_screening_tr_link_post_screening_rule.py
new file mode 100644
index 00000000..06fb904d
--- /dev/null
+++ b/test/test_screening_tr_link_post_screening_rule.py
@@ -0,0 +1,82 @@
+# 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.screening_tr_link_post_screening_rule import (
+ ScreeningTRLinkPostScreeningRule,
+)
+
+
+class TestScreeningTRLinkPostScreeningRule(unittest.TestCase):
+ """ScreeningTRLinkPostScreeningRule unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ScreeningTRLinkPostScreeningRule:
+ """Test ScreeningTRLinkPostScreeningRule
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `ScreeningTRLinkPostScreeningRule`
+ """
+ model = ScreeningTRLinkPostScreeningRule()
+ if include_optional:
+ return ScreeningTRLinkPostScreeningRule(
+ customer_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ direction = 'OUTBOUND',
+ source_type = 'VAULT_ACCOUNT',
+ source_sub_type = 'INTERNAL',
+ source_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa',
+ dest_type = 'VAULT_ACCOUNT',
+ dest_sub_type = 'INTERNAL',
+ dest_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa',
+ source_id = '1',
+ dest_id = '1',
+ asset = 'BTC',
+ base_asset = 'USD',
+ amount = fireblocks.models.screening_tr_link_amount.ScreeningTRLinkAmount(
+ range = fireblocks.models.amount_range_min_max.AmountRangeMinMax(
+ min = '100',
+ max = '10000', ),
+ currency = 'USD', ),
+ network_protocol = 'BITCOIN',
+ operation = 'TRANSFER',
+ description = 'Rule for high-value BTC transfers',
+ is_default = True,
+ provider_ident = 'sumsub',
+ trm_status = 'ACCEPTED',
+ valid_before = 1672531200000,
+ valid_after = 1640995200000,
+ action = 'ACCEPT'
+ )
+ else:
+ return ScreeningTRLinkPostScreeningRule(
+ action = 'ACCEPT',
+ )
+ """
+
+ def testScreeningTRLinkPostScreeningRule(self):
+ """Test ScreeningTRLinkPostScreeningRule"""
+ # 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_screening_tr_link_prescreening_rule.py b/test/test_screening_tr_link_prescreening_rule.py
new file mode 100644
index 00000000..8ee336be
--- /dev/null
+++ b/test/test_screening_tr_link_prescreening_rule.py
@@ -0,0 +1,78 @@
+# 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.screening_tr_link_prescreening_rule import (
+ ScreeningTRLinkPrescreeningRule,
+)
+
+
+class TestScreeningTRLinkPrescreeningRule(unittest.TestCase):
+ """ScreeningTRLinkPrescreeningRule unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ScreeningTRLinkPrescreeningRule:
+ """Test ScreeningTRLinkPrescreeningRule
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `ScreeningTRLinkPrescreeningRule`
+ """
+ model = ScreeningTRLinkPrescreeningRule()
+ if include_optional:
+ return ScreeningTRLinkPrescreeningRule(
+ customer_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ direction = 'OUTBOUND',
+ source_type = 'VAULT_ACCOUNT',
+ source_sub_type = 'INTERNAL',
+ source_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa',
+ dest_type = 'VAULT_ACCOUNT',
+ dest_sub_type = 'INTERNAL',
+ dest_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa',
+ source_id = '1',
+ dest_id = '1',
+ asset = 'BTC',
+ base_asset = 'USD',
+ amount = fireblocks.models.screening_tr_link_amount.ScreeningTRLinkAmount(
+ range = fireblocks.models.amount_range_min_max.AmountRangeMinMax(
+ min = '100',
+ max = '10000', ),
+ currency = 'USD', ),
+ network_protocol = 'BITCOIN',
+ operation = 'TRANSFER',
+ description = 'Rule for high-value BTC transfers',
+ is_default = True,
+ action = 'SCREEN'
+ )
+ else:
+ return ScreeningTRLinkPrescreeningRule(
+ action = 'SCREEN',
+ )
+ """
+
+ def testScreeningTRLinkPrescreeningRule(self):
+ """Test ScreeningTRLinkPrescreeningRule"""
+ # 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_screening_tr_link_rule_base.py b/test/test_screening_tr_link_rule_base.py
new file mode 100644
index 00000000..e3962a6c
--- /dev/null
+++ b/test/test_screening_tr_link_rule_base.py
@@ -0,0 +1,74 @@
+# 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.screening_tr_link_rule_base import ScreeningTRLinkRuleBase
+
+
+class TestScreeningTRLinkRuleBase(unittest.TestCase):
+ """ScreeningTRLinkRuleBase unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ScreeningTRLinkRuleBase:
+ """Test ScreeningTRLinkRuleBase
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `ScreeningTRLinkRuleBase`
+ """
+ model = ScreeningTRLinkRuleBase()
+ if include_optional:
+ return ScreeningTRLinkRuleBase(
+ customer_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ direction = 'OUTBOUND',
+ source_type = 'VAULT_ACCOUNT',
+ source_sub_type = 'INTERNAL',
+ source_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa',
+ dest_type = 'VAULT_ACCOUNT',
+ dest_sub_type = 'INTERNAL',
+ dest_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa',
+ source_id = '1',
+ dest_id = '1',
+ asset = 'BTC',
+ base_asset = 'USD',
+ amount = fireblocks.models.screening_tr_link_amount.ScreeningTRLinkAmount(
+ range = fireblocks.models.amount_range_min_max.AmountRangeMinMax(
+ min = '100',
+ max = '10000', ),
+ currency = 'USD', ),
+ network_protocol = 'BITCOIN',
+ operation = 'TRANSFER',
+ description = 'Rule for high-value BTC transfers',
+ is_default = True
+ )
+ else:
+ return ScreeningTRLinkRuleBase(
+ )
+ """
+
+ def testScreeningTRLinkRuleBase(self):
+ """Test ScreeningTRLinkRuleBase"""
+ # 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_screening_travel_rule_matched_rule.py b/test/test_screening_travel_rule_matched_rule.py
new file mode 100644
index 00000000..01bbb810
--- /dev/null
+++ b/test/test_screening_travel_rule_matched_rule.py
@@ -0,0 +1,61 @@
+# 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.screening_travel_rule_matched_rule import (
+ ScreeningTravelRuleMatchedRule,
+)
+
+
+class TestScreeningTravelRuleMatchedRule(unittest.TestCase):
+ """ScreeningTravelRuleMatchedRule unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ScreeningTravelRuleMatchedRule:
+ """Test ScreeningTravelRuleMatchedRule
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `ScreeningTravelRuleMatchedRule`
+ """
+ model = ScreeningTravelRuleMatchedRule()
+ if include_optional:
+ return ScreeningTravelRuleMatchedRule(
+ direction = 'OUTBOUND',
+ status = 'COMPLETED',
+ amount_usd = 1000.5,
+ amount = 0.025,
+ asset = 'BTC',
+ action = 'ACCEPT'
+ )
+ else:
+ return ScreeningTravelRuleMatchedRule(
+ )
+ """
+
+ def testScreeningTravelRuleMatchedRule(self):
+ """Test ScreeningTravelRuleMatchedRule"""
+ # 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_screening_travel_rule_prescreening_rule.py b/test/test_screening_travel_rule_prescreening_rule.py
new file mode 100644
index 00000000..2d0f1e55
--- /dev/null
+++ b/test/test_screening_travel_rule_prescreening_rule.py
@@ -0,0 +1,72 @@
+# 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.screening_travel_rule_prescreening_rule import (
+ ScreeningTravelRulePrescreeningRule,
+)
+
+
+class TestScreeningTravelRulePrescreeningRule(unittest.TestCase):
+ """ScreeningTravelRulePrescreeningRule unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ScreeningTravelRulePrescreeningRule:
+ """Test ScreeningTravelRulePrescreeningRule
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `ScreeningTravelRulePrescreeningRule`
+ """
+ model = ScreeningTravelRulePrescreeningRule()
+ if include_optional:
+ return ScreeningTravelRulePrescreeningRule(
+ bypass_reason = 'MANUAL',
+ source_type = 'VAULT_ACCOUNT',
+ source_sub_type = 'INTERNAL',
+ dest_type = 'VAULT_ACCOUNT',
+ dest_sub_type = 'INTERNAL',
+ transfer_peer_type = 'VAULT_ACCOUNT',
+ transfer_peer_sub_type = 'INTERNAL',
+ dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715',
+ source_id = '0',
+ dest_id = '2',
+ asset = 'ETH',
+ base_asset = 'ETH',
+ amount = 0.5,
+ amount_usd = 1000,
+ network_protocol = 'ETH',
+ operation = 'TRANSFER',
+ action = 'SCREEN'
+ )
+ else:
+ return ScreeningTravelRulePrescreeningRule(
+ )
+ """
+
+ def testScreeningTravelRulePrescreeningRule(self):
+ """Test ScreeningTravelRulePrescreeningRule"""
+ # 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_screening_travel_rule_result.py b/test/test_screening_travel_rule_result.py
new file mode 100644
index 00000000..04368bb2
--- /dev/null
+++ b/test/test_screening_travel_rule_result.py
@@ -0,0 +1,64 @@
+# 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.screening_travel_rule_result import ScreeningTravelRuleResult
+
+
+class TestScreeningTravelRuleResult(unittest.TestCase):
+ """ScreeningTravelRuleResult unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ScreeningTravelRuleResult:
+ """Test ScreeningTravelRuleResult
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `ScreeningTravelRuleResult`
+ """
+ model = ScreeningTravelRuleResult()
+ if include_optional:
+ return ScreeningTravelRuleResult(
+ direction = 'OUTBOUND',
+ is_verified = True,
+ action = 'ACCEPT',
+ provider_response = { },
+ matched_rule = fireblocks.models.screening_travel_rule_matched_rule.ScreeningTravelRuleMatchedRule(
+ direction = 'OUTBOUND',
+ status = 'COMPLETED',
+ amount_usd = 1000.5,
+ amount = 0.025,
+ asset = 'BTC',
+ action = 'ACCEPT', )
+ )
+ else:
+ return ScreeningTravelRuleResult(
+ )
+ """
+
+ def testScreeningTravelRuleResult(self):
+ """Test ScreeningTravelRuleResult"""
+ # 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_screening_verdict_enum.py b/test/test_screening_verdict_enum.py
new file mode 100644
index 00000000..dd894235
--- /dev/null
+++ b/test/test_screening_verdict_enum.py
@@ -0,0 +1,36 @@
+# 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.screening_verdict_enum import ScreeningVerdictEnum
+
+
+class TestScreeningVerdictEnum(unittest.TestCase):
+ """ScreeningVerdictEnum unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testScreeningVerdictEnum(self):
+ """Test ScreeningVerdictEnum"""
+ # inst = ScreeningVerdictEnum()
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_sepa_address.py b/test/test_sepa_address.py
new file mode 100644
index 00000000..2fd69dc5
--- /dev/null
+++ b/test/test_sepa_address.py
@@ -0,0 +1,63 @@
+# 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.sepa_address import SEPAAddress
+
+
+class TestSEPAAddress(unittest.TestCase):
+ """SEPAAddress unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SEPAAddress:
+ """Test SEPAAddress
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `SEPAAddress`
+ """
+ model = SEPAAddress()
+ if include_optional:
+ return SEPAAddress(
+ account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"},
+ iban = 'GB82WEST12345698765432',
+ bic = '',
+ bank_name = '',
+ bank_branch = '',
+ bank_address = '',
+ purpose_code = '',
+ tax_id = ''
+ )
+ else:
+ return SEPAAddress(
+ account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"},
+ iban = 'GB82WEST12345698765432',
+ )
+ """
+
+ def testSEPAAddress(self):
+ """Test SEPAAddress"""
+ # 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_sepa_destination.py b/test/test_sepa_destination.py
new file mode 100644
index 00000000..1d28ef8f
--- /dev/null
+++ b/test/test_sepa_destination.py
@@ -0,0 +1,57 @@
+# 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.sepa_destination import SEPADestination
+
+
+class TestSEPADestination(unittest.TestCase):
+ """SEPADestination unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SEPADestination:
+ """Test SEPADestination
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `SEPADestination`
+ """
+ model = SEPADestination()
+ if include_optional:
+ return SEPADestination(
+ type = 'SEPA',
+ address = {"accountHolder":{"name":"Pierre Dubois","city":"Paris","country":"FR","subdivision":"11","address":"15 Rue de la Paix","postalCode":"75001"},"iban":"FR1420041010050500013M02606","bic":"PSSTFRPPPAR","bankName":"La Banque Postale","bankBranch":"Paris Central","bankAddress":"1 Boulevard de Vaugirard, 75015 Paris","purposeCode":"TRAD","taxId":"FR12345678901"}
+ )
+ else:
+ return SEPADestination(
+ type = 'SEPA',
+ address = {"accountHolder":{"name":"Pierre Dubois","city":"Paris","country":"FR","subdivision":"11","address":"15 Rue de la Paix","postalCode":"75001"},"iban":"FR1420041010050500013M02606","bic":"PSSTFRPPPAR","bankName":"La Banque Postale","bankBranch":"Paris Central","bankAddress":"1 Boulevard de Vaugirard, 75015 Paris","purposeCode":"TRAD","taxId":"FR12345678901"},
+ )
+ """
+
+ def testSEPADestination(self):
+ """Test SEPADestination"""
+ # 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_source_config.py b/test/test_source_config.py
new file mode 100644
index 00000000..f4486bcd
--- /dev/null
+++ b/test/test_source_config.py
@@ -0,0 +1,75 @@
+# 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.source_config import SourceConfig
+
+
+class TestSourceConfig(unittest.TestCase):
+ """SourceConfig unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SourceConfig:
+ """Test SourceConfig
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `SourceConfig`
+ """
+ model = SourceConfig()
+ if include_optional:
+ return SourceConfig(
+ type = ["VAULT","UNMANAGED"],
+ sub_type = [
+ fireblocks.models.account_identifier.AccountIdentifier(
+ type = 'VAULT',
+ id = 'account123',
+ sub_type = 'INTERNAL',
+ address = '0x123...', )
+ ],
+ ids = [
+ fireblocks.models.account_identifier.AccountIdentifier(
+ type = 'VAULT',
+ id = 'account123',
+ sub_type = 'INTERNAL',
+ address = '0x123...', )
+ ],
+ tags = [
+ fireblocks.models.policy_tag.PolicyTag(
+ id = 'tag_001', )
+ ],
+ operator = 'INCLUDES',
+ match_from = 'ACCOUNT'
+ )
+ else:
+ return SourceConfig(
+ operator = 'INCLUDES',
+ )
+ """
+
+ def testSourceConfig(self):
+ """Test SourceConfig"""
+ # 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_spei_address.py b/test/test_spei_address.py
new file mode 100644
index 00000000..38234da6
--- /dev/null
+++ b/test/test_spei_address.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.spei_address import SpeiAddress
+
+
+class TestSpeiAddress(unittest.TestCase):
+ """SpeiAddress unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SpeiAddress:
+ """Test SpeiAddress
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `SpeiAddress`
+ """
+ model = SpeiAddress()
+ if include_optional:
+ return SpeiAddress(
+ account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"},
+ bank_name = '',
+ bank_account_number = ''
+ )
+ else:
+ return SpeiAddress(
+ account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"},
+ bank_account_number = '',
+ )
+ """
+
+ def testSpeiAddress(self):
+ """Test SpeiAddress"""
+ # 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_spei_destination.py b/test/test_spei_destination.py
new file mode 100644
index 00000000..a372049f
--- /dev/null
+++ b/test/test_spei_destination.py
@@ -0,0 +1,57 @@
+# 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.spei_destination import SpeiDestination
+
+
+class TestSpeiDestination(unittest.TestCase):
+ """SpeiDestination unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SpeiDestination:
+ """Test SpeiDestination
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `SpeiDestination`
+ """
+ model = SpeiDestination()
+ if include_optional:
+ return SpeiDestination(
+ type = 'SPEI',
+ address = {"accountHolder":{"name":"Carlos Martinez Lopez","city":"Mexico City","country":"MX","subdivision":"CDMX","address":"Avenida Reforma 123","postalCode":"06600"},"bankName":"BBVA México","bankAccountNumber":"012180001234567890"}
+ )
+ else:
+ return SpeiDestination(
+ type = 'SPEI',
+ address = {"accountHolder":{"name":"Carlos Martinez Lopez","city":"Mexico City","country":"MX","subdivision":"CDMX","address":"Avenida Reforma 123","postalCode":"06600"},"bankName":"BBVA México","bankAccountNumber":"012180001234567890"},
+ )
+ """
+
+ def testSpeiDestination(self):
+ """Test SpeiDestination"""
+ # 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_swift_address.py b/test/test_swift_address.py
new file mode 100644
index 00000000..0d42eea8
--- /dev/null
+++ b/test/test_swift_address.py
@@ -0,0 +1,59 @@
+# 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.swift_address import SwiftAddress
+
+
+class TestSwiftAddress(unittest.TestCase):
+ """SwiftAddress unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SwiftAddress:
+ """Test SwiftAddress
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `SwiftAddress`
+ """
+ model = SwiftAddress()
+ if include_optional:
+ return SwiftAddress(
+ account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"},
+ swift_code = 'CHASUS33XXX',
+ routing_number = ''
+ )
+ else:
+ return SwiftAddress(
+ account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"},
+ swift_code = 'CHASUS33XXX',
+ routing_number = '',
+ )
+ """
+
+ def testSwiftAddress(self):
+ """Test SwiftAddress"""
+ # 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_swift_destination.py b/test/test_swift_destination.py
new file mode 100644
index 00000000..30562ac6
--- /dev/null
+++ b/test/test_swift_destination.py
@@ -0,0 +1,57 @@
+# 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.swift_destination import SwiftDestination
+
+
+class TestSwiftDestination(unittest.TestCase):
+ """SwiftDestination unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SwiftDestination:
+ """Test SwiftDestination
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `SwiftDestination`
+ """
+ model = SwiftDestination()
+ if include_optional:
+ return SwiftDestination(
+ type = 'SWIFT',
+ address = {"accountHolder":{"name":"Emma Watson","city":"London","country":"GB","subdivision":"ENG","address":"25 Bank Street, Canary Wharf","postalCode":"E14 5JP"},"swiftCode":"CHASUS33XXX","routingNumber":"026009593"}
+ )
+ else:
+ return SwiftDestination(
+ type = 'SWIFT',
+ address = {"accountHolder":{"name":"Emma Watson","city":"London","country":"GB","subdivision":"ENG","address":"25 Bank Street, Canary Wharf","postalCode":"E14 5JP"},"swiftCode":"CHASUS33XXX","routingNumber":"026009593"},
+ )
+ """
+
+ def testSwiftDestination(self):
+ """Test SwiftDestination"""
+ # 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_tag.py b/test/test_tag.py
index b9934803..d1663c8b 100644
--- a/test/test_tag.py
+++ b/test/test_tag.py
@@ -39,7 +39,10 @@ def make_instance(self, include_optional) -> Tag:
return Tag(
id = 'df4c0987-30da-4976-8dcf-bc2dd41ae331',
label = 'VIP',
- description = 'Tag for VIP customers'
+ description = 'Tag for VIP customers',
+ is_protected = True,
+ color = '',
+ updated_at = '1719859200'
)
else:
return Tag(
diff --git a/test/test_tag_attachment_operation_action.py b/test/test_tag_attachment_operation_action.py
new file mode 100644
index 00000000..8836c414
--- /dev/null
+++ b/test/test_tag_attachment_operation_action.py
@@ -0,0 +1,38 @@
+# 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.tag_attachment_operation_action import (
+ TagAttachmentOperationAction,
+)
+
+
+class TestTagAttachmentOperationAction(unittest.TestCase):
+ """TagAttachmentOperationAction unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testTagAttachmentOperationAction(self):
+ """Test TagAttachmentOperationAction"""
+ # inst = TagAttachmentOperationAction()
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_tags_paged_response.py b/test/test_tags_paged_response.py
index 3f6f11f0..1cd072c7 100644
--- a/test/test_tags_paged_response.py
+++ b/test/test_tags_paged_response.py
@@ -41,7 +41,10 @@ def make_instance(self, include_optional) -> TagsPagedResponse:
fireblocks.models.tag.Tag(
id = 'df4c0987-30da-4976-8dcf-bc2dd41ae331',
label = 'VIP',
- description = 'Tag for VIP customers', )
+ description = 'Tag for VIP customers',
+ is_protected = True,
+ color = '',
+ updated_at = '1719859200', )
],
next = 'MjAyNS0wNy0wOSAxMDo1MzoxMy40NTI=:NA=='
)
@@ -51,7 +54,10 @@ def make_instance(self, include_optional) -> TagsPagedResponse:
fireblocks.models.tag.Tag(
id = 'df4c0987-30da-4976-8dcf-bc2dd41ae331',
label = 'VIP',
- description = 'Tag for VIP customers', )
+ description = 'Tag for VIP customers',
+ is_protected = True,
+ color = '',
+ updated_at = '1719859200', )
],
next = 'MjAyNS0wNy0wOSAxMDo1MzoxMy40NTI=:NA==',
)
diff --git a/test/test_tr_link_amount.py b/test/test_tr_link_amount.py
new file mode 100644
index 00000000..4bbe0a77
--- /dev/null
+++ b/test/test_tr_link_amount.py
@@ -0,0 +1,57 @@
+# 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.tr_link_amount import TRLinkAmount
+
+
+class TestTRLinkAmount(unittest.TestCase):
+ """TRLinkAmount unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> TRLinkAmount:
+ """Test TRLinkAmount
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `TRLinkAmount`
+ """
+ model = TRLinkAmount()
+ if include_optional:
+ return TRLinkAmount(
+ range = fireblocks.models.amount_range_min_max.AmountRangeMinMax(
+ min = '100',
+ max = '10000', ),
+ currency = 'USD'
+ )
+ else:
+ return TRLinkAmount(
+ )
+ """
+
+ def testTRLinkAmount(self):
+ """Test TRLinkAmount"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_tr_link_missing_trm_action.py b/test/test_tr_link_missing_trm_action.py
new file mode 100644
index 00000000..44c97c4d
--- /dev/null
+++ b/test/test_tr_link_missing_trm_action.py
@@ -0,0 +1,36 @@
+# 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.tr_link_missing_trm_action import TRLinkMissingTrmAction
+
+
+class TestTRLinkMissingTrmAction(unittest.TestCase):
+ """TRLinkMissingTrmAction unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testTRLinkMissingTrmAction(self):
+ """Test TRLinkMissingTrmAction"""
+ # inst = TRLinkMissingTrmAction()
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_tr_link_missing_trm_action_enum.py b/test/test_tr_link_missing_trm_action_enum.py
new file mode 100644
index 00000000..8ed42066
--- /dev/null
+++ b/test/test_tr_link_missing_trm_action_enum.py
@@ -0,0 +1,36 @@
+# 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.tr_link_missing_trm_action_enum import TRLinkMissingTrmActionEnum
+
+
+class TestTRLinkMissingTrmActionEnum(unittest.TestCase):
+ """TRLinkMissingTrmActionEnum unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testTRLinkMissingTrmActionEnum(self):
+ """Test TRLinkMissingTrmActionEnum"""
+ # inst = TRLinkMissingTrmActionEnum()
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_tr_link_missing_trm_decision.py b/test/test_tr_link_missing_trm_decision.py
new file mode 100644
index 00000000..8598557c
--- /dev/null
+++ b/test/test_tr_link_missing_trm_decision.py
@@ -0,0 +1,82 @@
+# 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.tr_link_missing_trm_decision import TRLinkMissingTrmDecision
+
+
+class TestTRLinkMissingTrmDecision(unittest.TestCase):
+ """TRLinkMissingTrmDecision unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> TRLinkMissingTrmDecision:
+ """Test TRLinkMissingTrmDecision
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `TRLinkMissingTrmDecision`
+ """
+ model = TRLinkMissingTrmDecision()
+ if include_optional:
+ return TRLinkMissingTrmDecision(
+ customer_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ direction = 'OUTBOUND',
+ source_type = 'VAULT_ACCOUNT',
+ source_sub_type = 'INTERNAL',
+ source_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa',
+ dest_type = 'VAULT_ACCOUNT',
+ dest_sub_type = 'INTERNAL',
+ dest_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa',
+ source_id = '1',
+ dest_id = '1',
+ asset = 'BTC',
+ base_asset = 'USD',
+ amount = fireblocks.models.tr_link_amount.TRLinkAmount(
+ range = fireblocks.models.amount_range_min_max.AmountRangeMinMax(
+ min = '100',
+ max = '10000', ),
+ currency = 'USD', ),
+ network_protocol = 'BITCOIN',
+ operation = 'TRANSFER',
+ description = '',
+ is_default = True,
+ valid_before = 1672531200000,
+ valid_after = 1640995200000,
+ action = 'WAIT',
+ source = 'policy',
+ timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ reason = 'Missing travel rule message'
+ )
+ else:
+ return TRLinkMissingTrmDecision(
+ action = 'WAIT',
+ source = 'policy',
+ )
+ """
+
+ def testTRLinkMissingTrmDecision(self):
+ """Test TRLinkMissingTrmDecision"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_tr_link_missing_trm_rule.py b/test/test_tr_link_missing_trm_rule.py
new file mode 100644
index 00000000..cd934bb8
--- /dev/null
+++ b/test/test_tr_link_missing_trm_rule.py
@@ -0,0 +1,78 @@
+# 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.tr_link_missing_trm_rule import TRLinkMissingTrmRule
+
+
+class TestTRLinkMissingTrmRule(unittest.TestCase):
+ """TRLinkMissingTrmRule unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> TRLinkMissingTrmRule:
+ """Test TRLinkMissingTrmRule
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `TRLinkMissingTrmRule`
+ """
+ model = TRLinkMissingTrmRule()
+ if include_optional:
+ return TRLinkMissingTrmRule(
+ customer_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ direction = 'OUTBOUND',
+ source_type = 'VAULT_ACCOUNT',
+ source_sub_type = 'INTERNAL',
+ source_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa',
+ dest_type = 'VAULT_ACCOUNT',
+ dest_sub_type = 'INTERNAL',
+ dest_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa',
+ source_id = '1',
+ dest_id = '1',
+ asset = 'BTC',
+ base_asset = 'USD',
+ amount = fireblocks.models.tr_link_amount.TRLinkAmount(
+ range = fireblocks.models.amount_range_min_max.AmountRangeMinMax(
+ min = '100',
+ max = '10000', ),
+ currency = 'USD', ),
+ network_protocol = 'BITCOIN',
+ operation = 'TRANSFER',
+ description = '',
+ is_default = True,
+ valid_before = 1672531200000,
+ valid_after = 1640995200000,
+ action = 'WAIT'
+ )
+ else:
+ return TRLinkMissingTrmRule(
+ action = 'WAIT',
+ )
+ """
+
+ def testTRLinkMissingTrmRule(self):
+ """Test TRLinkMissingTrmRule"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_tr_link_post_screening_rule.py b/test/test_tr_link_post_screening_rule.py
new file mode 100644
index 00000000..fd17f3a4
--- /dev/null
+++ b/test/test_tr_link_post_screening_rule.py
@@ -0,0 +1,80 @@
+# 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.tr_link_post_screening_rule import TRLinkPostScreeningRule
+
+
+class TestTRLinkPostScreeningRule(unittest.TestCase):
+ """TRLinkPostScreeningRule unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> TRLinkPostScreeningRule:
+ """Test TRLinkPostScreeningRule
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `TRLinkPostScreeningRule`
+ """
+ model = TRLinkPostScreeningRule()
+ if include_optional:
+ return TRLinkPostScreeningRule(
+ customer_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ direction = 'OUTBOUND',
+ source_type = 'VAULT_ACCOUNT',
+ source_sub_type = 'INTERNAL',
+ source_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa',
+ dest_type = 'VAULT_ACCOUNT',
+ dest_sub_type = 'INTERNAL',
+ dest_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa',
+ source_id = '1',
+ dest_id = '1',
+ asset = 'BTC',
+ base_asset = 'USD',
+ amount = fireblocks.models.tr_link_amount.TRLinkAmount(
+ range = fireblocks.models.amount_range_min_max.AmountRangeMinMax(
+ min = '100',
+ max = '10000', ),
+ currency = 'USD', ),
+ network_protocol = 'BITCOIN',
+ operation = 'TRANSFER',
+ description = '',
+ is_default = True,
+ provider_ident = 'sumsub',
+ trm_status = 'ACCEPTED',
+ valid_before = 1672531200000,
+ valid_after = 1640995200000,
+ action = 'ACCEPT'
+ )
+ else:
+ return TRLinkPostScreeningRule(
+ action = 'ACCEPT',
+ )
+ """
+
+ def testTRLinkPostScreeningRule(self):
+ """Test TRLinkPostScreeningRule"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_tr_link_pre_screening_action.py b/test/test_tr_link_pre_screening_action.py
new file mode 100644
index 00000000..bcd92b6e
--- /dev/null
+++ b/test/test_tr_link_pre_screening_action.py
@@ -0,0 +1,36 @@
+# 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.tr_link_pre_screening_action import TRLinkPreScreeningAction
+
+
+class TestTRLinkPreScreeningAction(unittest.TestCase):
+ """TRLinkPreScreeningAction unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testTRLinkPreScreeningAction(self):
+ """Test TRLinkPreScreeningAction"""
+ # inst = TRLinkPreScreeningAction()
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_tr_link_pre_screening_action_enum.py b/test/test_tr_link_pre_screening_action_enum.py
new file mode 100644
index 00000000..c3f61ae4
--- /dev/null
+++ b/test/test_tr_link_pre_screening_action_enum.py
@@ -0,0 +1,38 @@
+# 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.tr_link_pre_screening_action_enum import (
+ TRLinkPreScreeningActionEnum,
+)
+
+
+class TestTRLinkPreScreeningActionEnum(unittest.TestCase):
+ """TRLinkPreScreeningActionEnum unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testTRLinkPreScreeningActionEnum(self):
+ """Test TRLinkPreScreeningActionEnum"""
+ # inst = TRLinkPreScreeningActionEnum()
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_tr_link_pre_screening_rule.py b/test/test_tr_link_pre_screening_rule.py
new file mode 100644
index 00000000..0278359a
--- /dev/null
+++ b/test/test_tr_link_pre_screening_rule.py
@@ -0,0 +1,76 @@
+# 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.tr_link_pre_screening_rule import TRLinkPreScreeningRule
+
+
+class TestTRLinkPreScreeningRule(unittest.TestCase):
+ """TRLinkPreScreeningRule unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> TRLinkPreScreeningRule:
+ """Test TRLinkPreScreeningRule
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `TRLinkPreScreeningRule`
+ """
+ model = TRLinkPreScreeningRule()
+ if include_optional:
+ return TRLinkPreScreeningRule(
+ customer_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ direction = 'OUTBOUND',
+ source_type = 'VAULT_ACCOUNT',
+ source_sub_type = 'INTERNAL',
+ source_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa',
+ dest_type = 'VAULT_ACCOUNT',
+ dest_sub_type = 'INTERNAL',
+ dest_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa',
+ source_id = '1',
+ dest_id = '1',
+ asset = 'BTC',
+ base_asset = 'USD',
+ amount = fireblocks.models.tr_link_amount.TRLinkAmount(
+ range = fireblocks.models.amount_range_min_max.AmountRangeMinMax(
+ min = '100',
+ max = '10000', ),
+ currency = 'USD', ),
+ network_protocol = 'BITCOIN',
+ operation = 'TRANSFER',
+ description = '',
+ is_default = True,
+ action = 'SCREEN'
+ )
+ else:
+ return TRLinkPreScreeningRule(
+ action = 'SCREEN',
+ )
+ """
+
+ def testTRLinkPreScreeningRule(self):
+ """Test TRLinkPreScreeningRule"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_tr_link_provider_result.py b/test/test_tr_link_provider_result.py
new file mode 100644
index 00000000..af45e22c
--- /dev/null
+++ b/test/test_tr_link_provider_result.py
@@ -0,0 +1,54 @@
+# 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.tr_link_provider_result import TRLinkProviderResult
+
+
+class TestTRLinkProviderResult(unittest.TestCase):
+ """TRLinkProviderResult unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> TRLinkProviderResult:
+ """Test TRLinkProviderResult
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `TRLinkProviderResult`
+ """
+ model = TRLinkProviderResult()
+ if include_optional:
+ return TRLinkProviderResult(
+ provider_response = None
+ )
+ else:
+ return TRLinkProviderResult(
+ )
+ """
+
+ def testTRLinkProviderResult(self):
+ """Test TRLinkProviderResult"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_tr_link_provider_result_with_rule.py b/test/test_tr_link_provider_result_with_rule.py
new file mode 100644
index 00000000..c13d5119
--- /dev/null
+++ b/test/test_tr_link_provider_result_with_rule.py
@@ -0,0 +1,57 @@
+# 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.tr_link_provider_result_with_rule import (
+ TRLinkProviderResultWithRule,
+)
+
+
+class TestTRLinkProviderResultWithRule(unittest.TestCase):
+ """TRLinkProviderResultWithRule unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> TRLinkProviderResultWithRule:
+ """Test TRLinkProviderResultWithRule
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `TRLinkProviderResultWithRule`
+ """
+ model = TRLinkProviderResultWithRule()
+ if include_optional:
+ return TRLinkProviderResultWithRule(
+ provider_response = None,
+ matched_rule = fireblocks.models.tr_link_post_screening_rule.TRLinkPostScreeningRule()
+ )
+ else:
+ return TRLinkProviderResultWithRule(
+ )
+ """
+
+ def testTRLinkProviderResultWithRule(self):
+ """Test TRLinkProviderResultWithRule"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_tr_link_provider_result_with_rule2.py b/test/test_tr_link_provider_result_with_rule2.py
new file mode 100644
index 00000000..e4755fd6
--- /dev/null
+++ b/test/test_tr_link_provider_result_with_rule2.py
@@ -0,0 +1,57 @@
+# 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.tr_link_provider_result_with_rule2 import (
+ TRLinkProviderResultWithRule2,
+)
+
+
+class TestTRLinkProviderResultWithRule2(unittest.TestCase):
+ """TRLinkProviderResultWithRule2 unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> TRLinkProviderResultWithRule2:
+ """Test TRLinkProviderResultWithRule2
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `TRLinkProviderResultWithRule2`
+ """
+ model = TRLinkProviderResultWithRule2()
+ if include_optional:
+ return TRLinkProviderResultWithRule2(
+ provider_response = None,
+ matched_rule = fireblocks.models.screening_tr_link_post_screening_rule.ScreeningTRLinkPostScreeningRule()
+ )
+ else:
+ return TRLinkProviderResultWithRule2(
+ )
+ """
+
+ def testTRLinkProviderResultWithRule2(self):
+ """Test TRLinkProviderResultWithRule2"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_tr_link_registration_result.py b/test/test_tr_link_registration_result.py
new file mode 100644
index 00000000..5f56c3ed
--- /dev/null
+++ b/test/test_tr_link_registration_result.py
@@ -0,0 +1,66 @@
+# 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.tr_link_registration_result import TRLinkRegistrationResult
+
+
+class TestTRLinkRegistrationResult(unittest.TestCase):
+ """TRLinkRegistrationResult unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> TRLinkRegistrationResult:
+ """Test TRLinkRegistrationResult
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `TRLinkRegistrationResult`
+ """
+ model = TRLinkRegistrationResult()
+ if include_optional:
+ return TRLinkRegistrationResult(
+ status = 'COMPLETED',
+ provider = 'SUMSUB',
+ success = True,
+ timestamp = 1640995200000,
+ dest_record_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ customer_short_name = 'ACME Corp',
+ result = fireblocks.models.tr_link_provider_result.TRLinkProviderResult(
+ provider_response = fireblocks.models.provider_response.providerResponse(), ),
+ matched_prescreening_rule = fireblocks.models.tr_link_pre_screening_rule.TRLinkPreScreeningRule()
+ )
+ else:
+ return TRLinkRegistrationResult(
+ status = 'COMPLETED',
+ timestamp = 1640995200000,
+ )
+ """
+
+ def testTRLinkRegistrationResult(self):
+ """Test TRLinkRegistrationResult"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_tr_link_registration_result_full_payload.py b/test/test_tr_link_registration_result_full_payload.py
new file mode 100644
index 00000000..258d6180
--- /dev/null
+++ b/test/test_tr_link_registration_result_full_payload.py
@@ -0,0 +1,68 @@
+# 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.tr_link_registration_result_full_payload import (
+ TRLinkRegistrationResultFullPayload,
+)
+
+
+class TestTRLinkRegistrationResultFullPayload(unittest.TestCase):
+ """TRLinkRegistrationResultFullPayload unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> TRLinkRegistrationResultFullPayload:
+ """Test TRLinkRegistrationResultFullPayload
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `TRLinkRegistrationResultFullPayload`
+ """
+ model = TRLinkRegistrationResultFullPayload()
+ if include_optional:
+ return TRLinkRegistrationResultFullPayload(
+ status = 'COMPLETED',
+ provider = 'SUMSUB',
+ success = True,
+ timestamp = 1640995200000,
+ dest_record_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ customer_short_name = 'ACME Corp',
+ result = fireblocks.models.tr_link_provider_result.TRLinkProviderResult(
+ provider_response = fireblocks.models.provider_response.providerResponse(), ),
+ matched_prescreening_rule = fireblocks.models.screening_tr_link_prescreening_rule.ScreeningTRLinkPrescreeningRule()
+ )
+ else:
+ return TRLinkRegistrationResultFullPayload(
+ status = 'COMPLETED',
+ timestamp = 1640995200000,
+ )
+ """
+
+ def testTRLinkRegistrationResultFullPayload(self):
+ """Test TRLinkRegistrationResultFullPayload"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_tr_link_registration_status.py b/test/test_tr_link_registration_status.py
new file mode 100644
index 00000000..9dba28d2
--- /dev/null
+++ b/test/test_tr_link_registration_status.py
@@ -0,0 +1,36 @@
+# 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.tr_link_registration_status import TRLinkRegistrationStatus
+
+
+class TestTRLinkRegistrationStatus(unittest.TestCase):
+ """TRLinkRegistrationStatus unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testTRLinkRegistrationStatus(self):
+ """Test TRLinkRegistrationStatus"""
+ # inst = TRLinkRegistrationStatus()
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_tr_link_registration_status_enum.py b/test/test_tr_link_registration_status_enum.py
new file mode 100644
index 00000000..46760598
--- /dev/null
+++ b/test/test_tr_link_registration_status_enum.py
@@ -0,0 +1,38 @@
+# 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.tr_link_registration_status_enum import (
+ TRLinkRegistrationStatusEnum,
+)
+
+
+class TestTRLinkRegistrationStatusEnum(unittest.TestCase):
+ """TRLinkRegistrationStatusEnum unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testTRLinkRegistrationStatusEnum(self):
+ """Test TRLinkRegistrationStatusEnum"""
+ # inst = TRLinkRegistrationStatusEnum()
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_tr_link_result.py b/test/test_tr_link_result.py
new file mode 100644
index 00000000..b0cf93c6
--- /dev/null
+++ b/test/test_tr_link_result.py
@@ -0,0 +1,72 @@
+# 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.tr_link_result import TRLinkResult
+
+
+class TestTRLinkResult(unittest.TestCase):
+ """TRLinkResult unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> TRLinkResult:
+ """Test TRLinkResult
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `TRLinkResult`
+ """
+ model = TRLinkResult()
+ if include_optional:
+ return TRLinkResult(
+ provider = 'SUMSUB',
+ timestamp = 1640995200000,
+ status = 'COMPLETED',
+ verdict = 'ACCEPT',
+ dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715',
+ dest_tag = 'memo_12345',
+ bypass_reason = 'MANUAL',
+ details_message = 'Screening completed successfully',
+ customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ customer_short_name = 'ACME Corp',
+ travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ result = fireblocks.models.tr_link_provider_result_with_rule.TRLinkProviderResultWithRule(
+ provider_response = fireblocks.models.provider_response.providerResponse(),
+ matched_rule = fireblocks.models.tr_link_post_screening_rule.TRLinkPostScreeningRule(), ),
+ matched_prescreening_rule = fireblocks.models.tr_link_pre_screening_rule.TRLinkPreScreeningRule(),
+ matched_no_trm_screening_rule = fireblocks.models.tr_link_missing_trm_decision.TRLinkMissingTrmDecision()
+ )
+ else:
+ return TRLinkResult(
+ provider = 'SUMSUB',
+ timestamp = 1640995200000,
+ status = 'COMPLETED',
+ )
+ """
+
+ def testTRLinkResult(self):
+ """Test TRLinkResult"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_tr_link_result_full_payload.py b/test/test_tr_link_result_full_payload.py
new file mode 100644
index 00000000..af4c98ca
--- /dev/null
+++ b/test/test_tr_link_result_full_payload.py
@@ -0,0 +1,72 @@
+# 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.tr_link_result_full_payload import TRLinkResultFullPayload
+
+
+class TestTRLinkResultFullPayload(unittest.TestCase):
+ """TRLinkResultFullPayload unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> TRLinkResultFullPayload:
+ """Test TRLinkResultFullPayload
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `TRLinkResultFullPayload`
+ """
+ model = TRLinkResultFullPayload()
+ if include_optional:
+ return TRLinkResultFullPayload(
+ provider = 'SUMSUB',
+ timestamp = 1640995200000,
+ status = 'COMPLETED',
+ verdict = 'ACCEPT',
+ dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715',
+ dest_tag = 'memo_12345',
+ bypass_reason = 'MANUAL',
+ details_message = 'Screening completed successfully',
+ customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ customer_short_name = 'ACME Corp',
+ travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ result = fireblocks.models.tr_link_provider_result_with_rule_2.TRLinkProviderResultWithRule-2(
+ provider_response = fireblocks.models.provider_response.providerResponse(),
+ matched_rule = fireblocks.models.screening_tr_link_post_screening_rule.ScreeningTRLinkPostScreeningRule(), ),
+ matched_prescreening_rule = fireblocks.models.screening_tr_link_prescreening_rule.ScreeningTRLinkPrescreeningRule(),
+ matched_no_trm_screening_rule = fireblocks.models.screening_tr_link_missing_trm_decision.ScreeningTRLinkMissingTrmDecision()
+ )
+ else:
+ return TRLinkResultFullPayload(
+ provider = 'SUMSUB',
+ timestamp = 1640995200000,
+ status = 'COMPLETED',
+ )
+ """
+
+ def testTRLinkResultFullPayload(self):
+ """Test TRLinkResultFullPayload"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_tr_link_rule_base.py b/test/test_tr_link_rule_base.py
new file mode 100644
index 00000000..f22fd77d
--- /dev/null
+++ b/test/test_tr_link_rule_base.py
@@ -0,0 +1,74 @@
+# 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.tr_link_rule_base import TRLinkRuleBase
+
+
+class TestTRLinkRuleBase(unittest.TestCase):
+ """TRLinkRuleBase unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> TRLinkRuleBase:
+ """Test TRLinkRuleBase
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `TRLinkRuleBase`
+ """
+ model = TRLinkRuleBase()
+ if include_optional:
+ return TRLinkRuleBase(
+ customer_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ direction = 'OUTBOUND',
+ source_type = 'VAULT_ACCOUNT',
+ source_sub_type = 'INTERNAL',
+ source_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa',
+ dest_type = 'VAULT_ACCOUNT',
+ dest_sub_type = 'INTERNAL',
+ dest_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa',
+ source_id = '1',
+ dest_id = '1',
+ asset = 'BTC',
+ base_asset = 'USD',
+ amount = fireblocks.models.tr_link_amount.TRLinkAmount(
+ range = fireblocks.models.amount_range_min_max.AmountRangeMinMax(
+ min = '100',
+ max = '10000', ),
+ currency = 'USD', ),
+ network_protocol = 'BITCOIN',
+ operation = 'TRANSFER',
+ description = '',
+ is_default = True
+ )
+ else:
+ return TRLinkRuleBase(
+ )
+ """
+
+ def testTRLinkRuleBase(self):
+ """Test TRLinkRuleBase"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_tr_link_trm_screening_status.py b/test/test_tr_link_trm_screening_status.py
new file mode 100644
index 00000000..44c36857
--- /dev/null
+++ b/test/test_tr_link_trm_screening_status.py
@@ -0,0 +1,36 @@
+# 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.tr_link_trm_screening_status import TRLinkTrmScreeningStatus
+
+
+class TestTRLinkTrmScreeningStatus(unittest.TestCase):
+ """TRLinkTrmScreeningStatus unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testTRLinkTrmScreeningStatus(self):
+ """Test TRLinkTrmScreeningStatus"""
+ # inst = TRLinkTrmScreeningStatus()
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_tr_link_trm_screening_status_enum.py b/test/test_tr_link_trm_screening_status_enum.py
new file mode 100644
index 00000000..4c2777ce
--- /dev/null
+++ b/test/test_tr_link_trm_screening_status_enum.py
@@ -0,0 +1,38 @@
+# 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.tr_link_trm_screening_status_enum import (
+ TRLinkTrmScreeningStatusEnum,
+)
+
+
+class TestTRLinkTrmScreeningStatusEnum(unittest.TestCase):
+ """TRLinkTrmScreeningStatusEnum unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testTRLinkTrmScreeningStatusEnum(self):
+ """Test TRLinkTrmScreeningStatusEnum"""
+ # inst = TRLinkTrmScreeningStatusEnum()
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_tr_link_verdict.py b/test/test_tr_link_verdict.py
new file mode 100644
index 00000000..e3c4ec2f
--- /dev/null
+++ b/test/test_tr_link_verdict.py
@@ -0,0 +1,36 @@
+# 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.tr_link_verdict import TRLinkVerdict
+
+
+class TestTRLinkVerdict(unittest.TestCase):
+ """TRLinkVerdict unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testTRLinkVerdict(self):
+ """Test TRLinkVerdict"""
+ # inst = TRLinkVerdict()
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_tr_link_verdict_enum.py b/test/test_tr_link_verdict_enum.py
new file mode 100644
index 00000000..7d84be2f
--- /dev/null
+++ b/test/test_tr_link_verdict_enum.py
@@ -0,0 +1,36 @@
+# 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.tr_link_verdict_enum import TRLinkVerdictEnum
+
+
+class TestTRLinkVerdictEnum(unittest.TestCase):
+ """TRLinkVerdictEnum unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testTRLinkVerdictEnum(self):
+ """Test TRLinkVerdictEnum"""
+ # inst = TRLinkVerdictEnum()
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_transaction_direction.py b/test/test_transaction_direction.py
new file mode 100644
index 00000000..dbd10689
--- /dev/null
+++ b/test/test_transaction_direction.py
@@ -0,0 +1,36 @@
+# 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.transaction_direction import TransactionDirection
+
+
+class TestTransactionDirection(unittest.TestCase):
+ """TransactionDirection unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testTransactionDirection(self):
+ """Test TransactionDirection"""
+ # inst = TransactionDirection()
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_transaction_operation_enum.py b/test/test_transaction_operation_enum.py
new file mode 100644
index 00000000..4fff234e
--- /dev/null
+++ b/test/test_transaction_operation_enum.py
@@ -0,0 +1,36 @@
+# 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.transaction_operation_enum import TransactionOperationEnum
+
+
+class TestTransactionOperationEnum(unittest.TestCase):
+ """TransactionOperationEnum unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testTransactionOperationEnum(self):
+ """Test TransactionOperationEnum"""
+ # inst = TransactionOperationEnum()
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_transaction_response.py b/test/test_transaction_response.py
index 844d0f81..b0409234 100644
--- a/test/test_transaction_response.py
+++ b/test/test_transaction_response.py
@@ -165,25 +165,133 @@ def make_instance(self, include_optional) -> TransactionResponse:
payload = fireblocks.models.payload.payload(), ),
compliance_results = fireblocks.models.compliance_results.ComplianceResults(
aml = fireblocks.models.compliance_screening_result.ComplianceScreeningResult(
- provider = 'CHAINALYSIS',
+ provider = 'NOTABENE',
payload = fireblocks.models.payload.payload(),
- bypass_reason = 'MANUAL',
+ timestamp = 1753459111824,
screening_status = 'COMPLETED',
- timestamp = 1.337, ),
+ bypass_reason = 'BELOW_THRESHOLD',
+ status = 'COMPLETED',
+ prev_status = 'COMPLETED',
+ prev_bypass_reason = 'BELOW_THRESHOLD',
+ verdict = 'PASS',
+ risk = 'LOW',
+ extended_risk = 'LOW',
+ external_id = 'aml_screening_12345',
+ customer_ref_id = 'customer_ref_789',
+ ref_id = 'ref_12345',
+ category = 'EXCHANGE',
+ category_id = 5,
+ dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715',
+ dest_tag = 'memo_12345',
+ dest_record_id = 'record_001',
+ address_resolution_signature = '0x1234567890abcdef',
+ aml_result = fireblocks.models.aml_result.AmlResult(
+ alerts = [
+ fireblocks.models.aml_alert.AmlAlert(
+ alert_level = 'HIGH',
+ alert_name = 'Sanctions Match',
+ category = 'SANCTIONED_ENTITY',
+ service = 'CHAINALYSIS',
+ external_id = 'alert_12345',
+ alert_amount = 1000.5,
+ exposure_type = 'DIRECT',
+ policy_action = 'BLOCK',
+ category_id = 101, )
+ ],
+ provider_response = { },
+ matched_rule = fireblocks.models.aml_matched_rule.AmlMatchedRule(
+ rule_id = 'rule_001',
+ rule_name = 'High Risk Sanctions Check',
+ action = 'ALLOW', ),
+ matched_alert = fireblocks.models.aml_alert.AmlAlert(
+ alert_level = 'HIGH',
+ alert_name = 'Sanctions Match',
+ category = 'SANCTIONED_ENTITY',
+ service = 'CHAINALYSIS',
+ external_id = 'alert_12345',
+ alert_amount = 1000.5,
+ exposure_type = 'DIRECT',
+ policy_action = 'BLOCK',
+ category_id = 101, ), ),
+ result = fireblocks.models.travel_rule_result.TravelRuleResult(
+ direction = 'OUTBOUND',
+ is_verified = True, ),
+ details_message = 'Travel rule screening completed successfully',
+ matched_alert = fireblocks.models.matched_alert.matchedAlert(),
+ matched_rule = fireblocks.models.matched_rule.matchedRule(),
+ matched_prescreening_rule = fireblocks.models.travel_rule_prescreening_rule.TravelRulePrescreeningRule(
+ bypass_reason = 'MANUAL',
+ source_type = 'VAULT_ACCOUNT',
+ source_sub_type = 'INTERNAL',
+ dest_type = 'VAULT_ACCOUNT',
+ dest_sub_type = 'INTERNAL',
+ transfer_peer_type = 'VAULT_ACCOUNT',
+ transfer_peer_sub_type = 'INTERNAL',
+ dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715',
+ source_id = '0',
+ dest_id = 'ext_address_001',
+ asset = 'ETH',
+ base_asset = 'ETH',
+ amount = 0.5,
+ amount_usd = 1000,
+ network_protocol = 'ETH',
+ operation = 'TRANSFER', ),
+ matched_no_trm_screening_rule = fireblocks.models.matched_no_trm_screening_rule.matchedNoTrmScreeningRule(),
+ customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ customer_short_name = 'ACME Corp',
+ travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', ),
tr = fireblocks.models.compliance_screening_result.ComplianceScreeningResult(
- provider = 'CHAINALYSIS',
+ provider = 'NOTABENE',
payload = fireblocks.models.payload.payload(),
- bypass_reason = 'MANUAL',
+ timestamp = 1753459111824,
screening_status = 'COMPLETED',
- timestamp = 1.337, ),
+ bypass_reason = 'BELOW_THRESHOLD',
+ prev_bypass_reason = 'BELOW_THRESHOLD',
+ external_id = 'aml_screening_12345',
+ customer_ref_id = 'customer_ref_789',
+ ref_id = 'ref_12345',
+ category = 'EXCHANGE',
+ category_id = 5,
+ dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715',
+ dest_tag = 'memo_12345',
+ dest_record_id = 'record_001',
+ address_resolution_signature = '0x1234567890abcdef',
+ details_message = 'Travel rule screening completed successfully',
+ matched_no_trm_screening_rule = fireblocks.models.matched_no_trm_screening_rule.matchedNoTrmScreeningRule(),
+ customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ customer_short_name = 'ACME Corp',
+ travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', ),
aml_list = [
],
- status = 'Started',
+ status = 'Completed',
aml_registration = fireblocks.models.aml_registration_result.AmlRegistrationResult(
provider = '',
success = True,
- timestamp = 1.337, ), ),
+ timestamp = 1.337, ),
+ trlink_registration = fireblocks.models.tr_link_registration_result.TRLinkRegistrationResult(
+ status = 'COMPLETED',
+ provider = 'SUMSUB',
+ success = True,
+ timestamp = 1640995200000,
+ dest_record_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ customer_short_name = 'ACME Corp', ),
+ trlink_destinations = [
+ fireblocks.models.tr_link_result.TRLinkResult(
+ provider = 'SUMSUB',
+ timestamp = 1640995200000,
+ status = 'COMPLETED',
+ dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715',
+ dest_tag = 'memo_12345',
+ bypass_reason = 'MANUAL',
+ details_message = 'Screening completed successfully',
+ customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ customer_short_name = 'ACME Corp',
+ travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+ matched_no_trm_screening_rule = fireblocks.models.tr_link_missing_trm_decision.TRLinkMissingTrmDecision(), )
+ ], ),
not_broadcast_by_fireblocks = False,
dapp_url = 'https://app.uniswap.org',
gas_limit = '21000',
diff --git a/test/test_transfer_peer_sub_type_enum.py b/test/test_transfer_peer_sub_type_enum.py
new file mode 100644
index 00000000..9aaddaa5
--- /dev/null
+++ b/test/test_transfer_peer_sub_type_enum.py
@@ -0,0 +1,36 @@
+# 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.transfer_peer_sub_type_enum import TransferPeerSubTypeEnum
+
+
+class TestTransferPeerSubTypeEnum(unittest.TestCase):
+ """TransferPeerSubTypeEnum unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testTransferPeerSubTypeEnum(self):
+ """Test TransferPeerSubTypeEnum"""
+ # inst = TransferPeerSubTypeEnum()
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_transfer_peer_type_enum.py b/test/test_transfer_peer_type_enum.py
new file mode 100644
index 00000000..7cdaba3a
--- /dev/null
+++ b/test/test_transfer_peer_type_enum.py
@@ -0,0 +1,36 @@
+# 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.transfer_peer_type_enum import TransferPeerTypeEnum
+
+
+class TestTransferPeerTypeEnum(unittest.TestCase):
+ """TransferPeerTypeEnum unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testTransferPeerTypeEnum(self):
+ """Test TransferPeerTypeEnum"""
+ # inst = TransferPeerTypeEnum()
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_travel_rule_action_enum.py b/test/test_travel_rule_action_enum.py
new file mode 100644
index 00000000..6fec353b
--- /dev/null
+++ b/test/test_travel_rule_action_enum.py
@@ -0,0 +1,36 @@
+# 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.travel_rule_action_enum import TravelRuleActionEnum
+
+
+class TestTravelRuleActionEnum(unittest.TestCase):
+ """TravelRuleActionEnum unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testTravelRuleActionEnum(self):
+ """Test TravelRuleActionEnum"""
+ # inst = TravelRuleActionEnum()
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_travel_rule_direction_enum.py b/test/test_travel_rule_direction_enum.py
new file mode 100644
index 00000000..3a80365a
--- /dev/null
+++ b/test/test_travel_rule_direction_enum.py
@@ -0,0 +1,36 @@
+# 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.travel_rule_direction_enum import TravelRuleDirectionEnum
+
+
+class TestTravelRuleDirectionEnum(unittest.TestCase):
+ """TravelRuleDirectionEnum unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testTravelRuleDirectionEnum(self):
+ """Test TravelRuleDirectionEnum"""
+ # inst = TravelRuleDirectionEnum()
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_travel_rule_matched_rule.py b/test/test_travel_rule_matched_rule.py
new file mode 100644
index 00000000..6f416d3c
--- /dev/null
+++ b/test/test_travel_rule_matched_rule.py
@@ -0,0 +1,59 @@
+# 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.travel_rule_matched_rule import TravelRuleMatchedRule
+
+
+class TestTravelRuleMatchedRule(unittest.TestCase):
+ """TravelRuleMatchedRule unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> TravelRuleMatchedRule:
+ """Test TravelRuleMatchedRule
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `TravelRuleMatchedRule`
+ """
+ model = TravelRuleMatchedRule()
+ if include_optional:
+ return TravelRuleMatchedRule(
+ direction = 'OUTBOUND',
+ status = 'COMPLETED',
+ amount_usd = 1000.5,
+ amount = 0.025,
+ asset = 'BTC',
+ action = 'ACCEPT'
+ )
+ else:
+ return TravelRuleMatchedRule(
+ )
+ """
+
+ def testTravelRuleMatchedRule(self):
+ """Test TravelRuleMatchedRule"""
+ # 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_travel_rule_prescreening_rule.py b/test/test_travel_rule_prescreening_rule.py
new file mode 100644
index 00000000..2069ccc8
--- /dev/null
+++ b/test/test_travel_rule_prescreening_rule.py
@@ -0,0 +1,70 @@
+# 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.travel_rule_prescreening_rule import TravelRulePrescreeningRule
+
+
+class TestTravelRulePrescreeningRule(unittest.TestCase):
+ """TravelRulePrescreeningRule unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> TravelRulePrescreeningRule:
+ """Test TravelRulePrescreeningRule
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `TravelRulePrescreeningRule`
+ """
+ model = TravelRulePrescreeningRule()
+ if include_optional:
+ return TravelRulePrescreeningRule(
+ bypass_reason = 'MANUAL',
+ source_type = 'VAULT_ACCOUNT',
+ source_sub_type = 'INTERNAL',
+ dest_type = 'VAULT_ACCOUNT',
+ dest_sub_type = 'INTERNAL',
+ transfer_peer_type = 'VAULT_ACCOUNT',
+ transfer_peer_sub_type = 'INTERNAL',
+ dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715',
+ source_id = '0',
+ dest_id = 'ext_address_001',
+ asset = 'ETH',
+ base_asset = 'ETH',
+ amount = 0.5,
+ amount_usd = 1000,
+ network_protocol = 'ETH',
+ operation = 'TRANSFER',
+ action = 'SCREEN'
+ )
+ else:
+ return TravelRulePrescreeningRule(
+ )
+ """
+
+ def testTravelRulePrescreeningRule(self):
+ """Test TravelRulePrescreeningRule"""
+ # 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_travel_rule_result.py b/test/test_travel_rule_result.py
new file mode 100644
index 00000000..2365b983
--- /dev/null
+++ b/test/test_travel_rule_result.py
@@ -0,0 +1,64 @@
+# 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.travel_rule_result import TravelRuleResult
+
+
+class TestTravelRuleResult(unittest.TestCase):
+ """TravelRuleResult unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> TravelRuleResult:
+ """Test TravelRuleResult
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `TravelRuleResult`
+ """
+ model = TravelRuleResult()
+ if include_optional:
+ return TravelRuleResult(
+ direction = 'OUTBOUND',
+ is_verified = True,
+ action = 'ACCEPT',
+ provider_response = { },
+ matched_rule = fireblocks.models.travel_rule_matched_rule.TravelRuleMatchedRule(
+ direction = 'OUTBOUND',
+ status = 'COMPLETED',
+ amount_usd = 1000.5,
+ amount = 0.025,
+ asset = 'BTC',
+ action = 'ACCEPT', )
+ )
+ else:
+ return TravelRuleResult(
+ )
+ """
+
+ def testTravelRuleResult(self):
+ """Test TravelRuleResult"""
+ # 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_travel_rule_status_enum.py b/test/test_travel_rule_status_enum.py
new file mode 100644
index 00000000..73442cd7
--- /dev/null
+++ b/test/test_travel_rule_status_enum.py
@@ -0,0 +1,36 @@
+# 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.travel_rule_status_enum import TravelRuleStatusEnum
+
+
+class TestTravelRuleStatusEnum(unittest.TestCase):
+ """TravelRuleStatusEnum unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testTravelRuleStatusEnum(self):
+ """Test TravelRuleStatusEnum"""
+ # inst = TravelRuleStatusEnum()
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_travel_rule_verdict_enum.py b/test/test_travel_rule_verdict_enum.py
new file mode 100644
index 00000000..a9ebf759
--- /dev/null
+++ b/test/test_travel_rule_verdict_enum.py
@@ -0,0 +1,36 @@
+# 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.travel_rule_verdict_enum import TravelRuleVerdictEnum
+
+
+class TestTravelRuleVerdictEnum(unittest.TestCase):
+ """TravelRuleVerdictEnum unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testTravelRuleVerdictEnum(self):
+ """Test TravelRuleVerdictEnum"""
+ # inst = TravelRuleVerdictEnum()
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_update_draft_request.py b/test/test_update_draft_request.py
index fe64fcb7..a91e3100 100644
--- a/test/test_update_draft_request.py
+++ b/test/test_update_draft_request.py
@@ -52,21 +52,24 @@ def make_instance(self, include_optional) -> UpdateDraftRequest:
nft_transfer = False,
asset_types = ["FUNGIBLE","NFT","*"],
operator = 'INCLUDES', ),
- source = fireblocks.models.account_config.AccountConfig(
- type = 'VAULT',
+ source = fireblocks.models.source_config.SourceConfig(
ids = [
fireblocks.models.account_identifier.AccountIdentifier(
type = 'VAULT',
id = 'account123',
address = '0x123...', )
],
+ tags = [
+ fireblocks.models.policy_tag.PolicyTag(
+ id = 'tag_001', )
+ ],
operator = 'INCLUDES',
match_from = 'ACCOUNT', ),
destination = {"type":["EXTERNAL"],"operator":"INCLUDES","addressType":"WHITELISTED"},
account = fireblocks.models.account_config.AccountConfig(
- type = ,
operator = ,
match_from = 'ACCOUNT', ),
+ side = 'BUY',
verdict = fireblocks.models.verdict_config.VerdictConfig(
action = 'ALLOW',
approvers = fireblocks.models.approvers_config.ApproversConfig(
@@ -78,16 +81,14 @@ def make_instance(self, include_optional) -> UpdateDraftRequest:
users = ["user1","user2"],
groups = ["group1","group2"], ), ),
amount_over_time = fireblocks.models.amount_over_time_config.AmountOverTimeConfig(
- range = fireblocks.models.amount_over_time_config_range.AmountOverTimeConfig_range(
- min = '100',
- max = '10000', ),
+ range = {"min":"100","max":"10000"},
currency = 'USD',
time_period = fireblocks.models.time_period_config.TimePeriodConfig(
seconds = '86400',
initiator = 'PER_SINGLE_MATCH',
source = 'PER_SINGLE_MATCH',
destination = 'PER_SINGLE_MATCH', ), ),
- amount = {"min":"100","max":"10000","currency":"USD"},
+ amount = {"range":{"min":"100","max":"10000"},"currency":"USD"},
external_descriptor = 'High value transfer policy for institutional clients',
method = null,
is_global_policy = False,
@@ -115,8 +116,13 @@ def make_instance(self, include_optional) -> UpdateDraftRequest:
nft_transfer = False,
asset_types = ["FUNGIBLE","NFT","*"], ),
base_asset = ,
- quote_amount = {"min":"100","max":"10000","currency":"USD"},
- base_amount = {"min":"100","max":"10000","currency":"USD"},
+ quote_amount = {"range":{"min":"100","max":"10000"}},
+ base_amount = {"range":{"min":"100","max":"10000"}},
+ d_app_address = fireblocks.models.d_app_address_config.DAppAddressConfig(
+ global_whitelisted = ["rabby.io","jup.ag"],
+ tenant_whitelisted = ["uniswap.com","opensea.io"],
+ urls = ["*"],
+ operator = , ),
derivation_path = {"path":[44,0,0,0,0],"partial":false},
index = 1, )
]
@@ -138,21 +144,24 @@ def make_instance(self, include_optional) -> UpdateDraftRequest:
nft_transfer = False,
asset_types = ["FUNGIBLE","NFT","*"],
operator = 'INCLUDES', ),
- source = fireblocks.models.account_config.AccountConfig(
- type = 'VAULT',
+ source = fireblocks.models.source_config.SourceConfig(
ids = [
fireblocks.models.account_identifier.AccountIdentifier(
type = 'VAULT',
id = 'account123',
address = '0x123...', )
],
+ tags = [
+ fireblocks.models.policy_tag.PolicyTag(
+ id = 'tag_001', )
+ ],
operator = 'INCLUDES',
match_from = 'ACCOUNT', ),
destination = {"type":["EXTERNAL"],"operator":"INCLUDES","addressType":"WHITELISTED"},
account = fireblocks.models.account_config.AccountConfig(
- type = ,
operator = ,
match_from = 'ACCOUNT', ),
+ side = 'BUY',
verdict = fireblocks.models.verdict_config.VerdictConfig(
action = 'ALLOW',
approvers = fireblocks.models.approvers_config.ApproversConfig(
@@ -164,16 +173,14 @@ def make_instance(self, include_optional) -> UpdateDraftRequest:
users = ["user1","user2"],
groups = ["group1","group2"], ), ),
amount_over_time = fireblocks.models.amount_over_time_config.AmountOverTimeConfig(
- range = fireblocks.models.amount_over_time_config_range.AmountOverTimeConfig_range(
- min = '100',
- max = '10000', ),
+ range = {"min":"100","max":"10000"},
currency = 'USD',
time_period = fireblocks.models.time_period_config.TimePeriodConfig(
seconds = '86400',
initiator = 'PER_SINGLE_MATCH',
source = 'PER_SINGLE_MATCH',
destination = 'PER_SINGLE_MATCH', ), ),
- amount = {"min":"100","max":"10000","currency":"USD"},
+ amount = {"range":{"min":"100","max":"10000"},"currency":"USD"},
external_descriptor = 'High value transfer policy for institutional clients',
method = null,
is_global_policy = False,
@@ -201,8 +208,13 @@ def make_instance(self, include_optional) -> UpdateDraftRequest:
nft_transfer = False,
asset_types = ["FUNGIBLE","NFT","*"], ),
base_asset = ,
- quote_amount = {"min":"100","max":"10000","currency":"USD"},
- base_amount = {"min":"100","max":"10000","currency":"USD"},
+ quote_amount = {"range":{"min":"100","max":"10000"}},
+ base_amount = {"range":{"min":"100","max":"10000"}},
+ d_app_address = fireblocks.models.d_app_address_config.DAppAddressConfig(
+ global_whitelisted = ["rabby.io","jup.ag"],
+ tenant_whitelisted = ["uniswap.com","opensea.io"],
+ urls = ["*"],
+ operator = , ),
derivation_path = {"path":[44,0,0,0,0],"partial":false},
index = 1, )
],
diff --git a/test/test_us_wire_address.py b/test/test_us_wire_address.py
new file mode 100644
index 00000000..c45807c7
--- /dev/null
+++ b/test/test_us_wire_address.py
@@ -0,0 +1,61 @@
+# 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.us_wire_address import USWireAddress
+
+
+class TestUSWireAddress(unittest.TestCase):
+ """USWireAddress unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> USWireAddress:
+ """Test USWireAddress
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `USWireAddress`
+ """
+ model = USWireAddress()
+ if include_optional:
+ return USWireAddress(
+ account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"},
+ bank_name = '',
+ bank_account_number = '',
+ routing_number = '',
+ bank_address = ''
+ )
+ else:
+ return USWireAddress(
+ account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"},
+ bank_account_number = '',
+ routing_number = '',
+ )
+ """
+
+ def testUSWireAddress(self):
+ """Test USWireAddress"""
+ # 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_us_wire_destination.py b/test/test_us_wire_destination.py
new file mode 100644
index 00000000..bd2f9856
--- /dev/null
+++ b/test/test_us_wire_destination.py
@@ -0,0 +1,57 @@
+# 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.us_wire_destination import USWireDestination
+
+
+class TestUSWireDestination(unittest.TestCase):
+ """USWireDestination unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> USWireDestination:
+ """Test USWireDestination
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `USWireDestination`
+ """
+ model = USWireDestination()
+ if include_optional:
+ return USWireDestination(
+ type = 'US_WIRE',
+ address = {"accountHolder":{"name":"Michael Thompson","city":"Chicago","country":"US","subdivision":"IL","address":"200 West Jackson Blvd, Suite 1500","postalCode":"60606"},"bankName":"JPMorgan Chase Bank","bankAccountNumber":"987654321012345","routingNumber":"021000021","bankAddress":"270 Park Avenue, New York, NY 10017"}
+ )
+ else:
+ return USWireDestination(
+ type = 'US_WIRE',
+ address = {"accountHolder":{"name":"Michael Thompson","city":"Chicago","country":"US","subdivision":"IL","address":"200 West Jackson Blvd, Suite 1500","postalCode":"60606"},"bankName":"JPMorgan Chase Bank","bankAccountNumber":"987654321012345","routingNumber":"021000021","bankAddress":"270 Park Avenue, New York, NY 10017"},
+ )
+ """
+
+ def testUSWireDestination(self):
+ """Test USWireDestination"""
+ # 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_vault_account.py b/test/test_vault_account.py
index 023f170c..fa09fc5a 100644
--- a/test/test_vault_account.py
+++ b/test/test_vault_account.py
@@ -67,7 +67,10 @@ def make_instance(self, include_optional) -> VaultAccount:
fireblocks.models.tag.Tag(
id = 'df4c0987-30da-4976-8dcf-bc2dd41ae331',
label = 'VIP',
- description = 'Tag for VIP customers', )
+ description = 'Tag for VIP customers',
+ is_protected = True,
+ color = '',
+ updated_at = '1719859200', )
]
)
else:
diff --git a/test/test_vault_account_tag_attachment_operation.py b/test/test_vault_account_tag_attachment_operation.py
new file mode 100644
index 00000000..4d141799
--- /dev/null
+++ b/test/test_vault_account_tag_attachment_operation.py
@@ -0,0 +1,61 @@
+# 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.vault_account_tag_attachment_operation import (
+ VaultAccountTagAttachmentOperation,
+)
+
+
+class TestVaultAccountTagAttachmentOperation(unittest.TestCase):
+ """VaultAccountTagAttachmentOperation unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> VaultAccountTagAttachmentOperation:
+ """Test VaultAccountTagAttachmentOperation
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `VaultAccountTagAttachmentOperation`
+ """
+ model = VaultAccountTagAttachmentOperation()
+ if include_optional:
+ return VaultAccountTagAttachmentOperation(
+ vault_account_id = '1',
+ tag_id = 'f0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11',
+ action = 'ATTACH'
+ )
+ else:
+ return VaultAccountTagAttachmentOperation(
+ vault_account_id = '1',
+ tag_id = 'f0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11',
+ action = 'ATTACH',
+ )
+ """
+
+ def testVaultAccountTagAttachmentOperation(self):
+ """Test VaultAccountTagAttachmentOperation"""
+ # 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_vault_account_tag_attachment_pending_operation.py b/test/test_vault_account_tag_attachment_pending_operation.py
new file mode 100644
index 00000000..2c8f34a1
--- /dev/null
+++ b/test/test_vault_account_tag_attachment_pending_operation.py
@@ -0,0 +1,65 @@
+# 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.vault_account_tag_attachment_pending_operation import (
+ VaultAccountTagAttachmentPendingOperation,
+)
+
+
+class TestVaultAccountTagAttachmentPendingOperation(unittest.TestCase):
+ """VaultAccountTagAttachmentPendingOperation unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(
+ self, include_optional
+ ) -> VaultAccountTagAttachmentPendingOperation:
+ """Test VaultAccountTagAttachmentPendingOperation
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `VaultAccountTagAttachmentPendingOperation`
+ """
+ model = VaultAccountTagAttachmentPendingOperation()
+ if include_optional:
+ return VaultAccountTagAttachmentPendingOperation(
+ vault_account_id = '1',
+ tag_id = 'f0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11',
+ action = 'ATTACH',
+ approval_request_id = '12345'
+ )
+ else:
+ return VaultAccountTagAttachmentPendingOperation(
+ vault_account_id = '1',
+ tag_id = 'f0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11',
+ action = 'ATTACH',
+ approval_request_id = '12345',
+ )
+ """
+
+ def testVaultAccountTagAttachmentPendingOperation(self):
+ """Test VaultAccountTagAttachmentPendingOperation"""
+ # 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_vault_account_tag_attachment_rejected_operation.py b/test/test_vault_account_tag_attachment_rejected_operation.py
new file mode 100644
index 00000000..6a188dcf
--- /dev/null
+++ b/test/test_vault_account_tag_attachment_rejected_operation.py
@@ -0,0 +1,65 @@
+# 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.vault_account_tag_attachment_rejected_operation import (
+ VaultAccountTagAttachmentRejectedOperation,
+)
+
+
+class TestVaultAccountTagAttachmentRejectedOperation(unittest.TestCase):
+ """VaultAccountTagAttachmentRejectedOperation unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(
+ self, include_optional
+ ) -> VaultAccountTagAttachmentRejectedOperation:
+ """Test VaultAccountTagAttachmentRejectedOperation
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `VaultAccountTagAttachmentRejectedOperation`
+ """
+ model = VaultAccountTagAttachmentRejectedOperation()
+ if include_optional:
+ return VaultAccountTagAttachmentRejectedOperation(
+ vault_account_id = '1',
+ tag_id = 'f0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11',
+ action = 'ATTACH',
+ reason = 'CAPACITY_EXCEEDED'
+ )
+ else:
+ return VaultAccountTagAttachmentRejectedOperation(
+ vault_account_id = '1',
+ tag_id = 'f0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11',
+ action = 'ATTACH',
+ reason = 'CAPACITY_EXCEEDED',
+ )
+ """
+
+ def testVaultAccountTagAttachmentRejectedOperation(self):
+ """Test VaultAccountTagAttachmentRejectedOperation"""
+ # 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_vault_accounts_paged_response.py b/test/test_vault_accounts_paged_response.py
index 2bd85a20..a9009767 100644
--- a/test/test_vault_accounts_paged_response.py
+++ b/test/test_vault_accounts_paged_response.py
@@ -69,7 +69,10 @@ def make_instance(self, include_optional) -> VaultAccountsPagedResponse:
fireblocks.models.tag.Tag(
id = 'df4c0987-30da-4976-8dcf-bc2dd41ae331',
label = 'VIP',
- description = 'Tag for VIP customers', )
+ description = 'Tag for VIP customers',
+ is_protected = True,
+ color = '',
+ updated_at = '1719859200', )
], )
],
paging = fireblocks.models.vault_accounts_paged_response_paging.VaultAccountsPagedResponse_paging(
diff --git a/test/test_vault_accounts_tag_attachment_operations_request.py b/test/test_vault_accounts_tag_attachment_operations_request.py
new file mode 100644
index 00000000..30c83aae
--- /dev/null
+++ b/test/test_vault_accounts_tag_attachment_operations_request.py
@@ -0,0 +1,61 @@
+# 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.vault_accounts_tag_attachment_operations_request import (
+ VaultAccountsTagAttachmentOperationsRequest,
+)
+
+
+class TestVaultAccountsTagAttachmentOperationsRequest(unittest.TestCase):
+ """VaultAccountsTagAttachmentOperationsRequest unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(
+ self, include_optional
+ ) -> VaultAccountsTagAttachmentOperationsRequest:
+ """Test VaultAccountsTagAttachmentOperationsRequest
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `VaultAccountsTagAttachmentOperationsRequest`
+ """
+ model = VaultAccountsTagAttachmentOperationsRequest()
+ if include_optional:
+ return VaultAccountsTagAttachmentOperationsRequest(
+ vault_account_ids = ["0","1"],
+ tag_ids_to_attach = ["df4c0987-30da-4976-8dcf-bc2dd41ae331","a1b2c3d4-e5f6-7890-abcd-ef1234567890"],
+ tag_ids_to_detach = ["df4c0987-30da-4976-8dcf-bc2dd41ae331","a1b2c3d4-e5f6-7890-abcd-ef1234567890"]
+ )
+ else:
+ return VaultAccountsTagAttachmentOperationsRequest(
+ vault_account_ids = ["0","1"],
+ )
+ """
+
+ def testVaultAccountsTagAttachmentOperationsRequest(self):
+ """Test VaultAccountsTagAttachmentOperationsRequest"""
+ # 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_vault_accounts_tag_attachment_operations_response.py b/test/test_vault_accounts_tag_attachment_operations_response.py
new file mode 100644
index 00000000..9d2e9e71
--- /dev/null
+++ b/test/test_vault_accounts_tag_attachment_operations_response.py
@@ -0,0 +1,77 @@
+# 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.vault_accounts_tag_attachment_operations_response import (
+ VaultAccountsTagAttachmentOperationsResponse,
+)
+
+
+class TestVaultAccountsTagAttachmentOperationsResponse(unittest.TestCase):
+ """VaultAccountsTagAttachmentOperationsResponse unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(
+ self, include_optional
+ ) -> VaultAccountsTagAttachmentOperationsResponse:
+ """Test VaultAccountsTagAttachmentOperationsResponse
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `VaultAccountsTagAttachmentOperationsResponse`
+ """
+ model = VaultAccountsTagAttachmentOperationsResponse()
+ if include_optional:
+ return VaultAccountsTagAttachmentOperationsResponse(
+ applied_operations = [
+ fireblocks.models.vault_account_tag_attachment_operation.VaultAccountTagAttachmentOperation(
+ vault_account_id = '1',
+ tag_id = 'f0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11',
+ action = 'ATTACH', )
+ ],
+ pending_operations = [
+ fireblocks.models.vault_account_tag_attachment_pending_operation.VaultAccountTagAttachmentPendingOperation(
+ vault_account_id = '1',
+ tag_id = 'f0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11',
+ action = 'ATTACH',
+ approval_request_id = '12345', )
+ ],
+ rejected_operations = [
+ fireblocks.models.vault_account_tag_attachment_rejected_operation.VaultAccountTagAttachmentRejectedOperation(
+ vault_account_id = '1',
+ tag_id = 'f0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11',
+ action = 'ATTACH',
+ reason = 'CAPACITY_EXCEEDED', )
+ ]
+ )
+ else:
+ return VaultAccountsTagAttachmentOperationsResponse(
+ )
+ """
+
+ def testVaultAccountsTagAttachmentOperationsResponse(self):
+ """Test VaultAccountsTagAttachmentOperationsResponse"""
+ # 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_vaults_api.py b/test/test_vaults_api.py
index 680abd27..db5e749c 100644
--- a/test/test_vaults_api.py
+++ b/test/test_vaults_api.py
@@ -34,10 +34,17 @@ def test_activate_asset_for_vault_account(self) -> None:
"""
pass
+ def test_attach_or_detach_tags_from_vault_accounts(self) -> None:
+ """Test case for attach_or_detach_tags_from_vault_accounts
+
+ Attach or detach tags from a vault accounts
+ """
+ pass
+
def test_attach_tags_to_vault_accounts(self) -> None:
"""Test case for attach_tags_to_vault_accounts
- Attach tags to a vault accounts
+ Attach tags to a vault accounts (deprecated)
"""
pass
@@ -86,7 +93,7 @@ def test_create_vault_account_asset_address(self) -> None:
def test_detach_tags_from_vault_accounts(self) -> None:
"""Test case for detach_tags_from_vault_accounts
- Detach tags from a vault accounts
+ Detach tags from a vault accounts (deprecated)
"""
pass
diff --git a/test/test_webhook_metric.py b/test/test_webhook_metric.py
new file mode 100644
index 00000000..d9eb2c0f
--- /dev/null
+++ b/test/test_webhook_metric.py
@@ -0,0 +1,55 @@
+# 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.webhook_metric import WebhookMetric
+
+
+class TestWebhookMetric(unittest.TestCase):
+ """WebhookMetric unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> WebhookMetric:
+ """Test WebhookMetric
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `WebhookMetric`
+ """
+ model = WebhookMetric()
+ if include_optional:
+ return WebhookMetric(
+ value = '55'
+ )
+ else:
+ return WebhookMetric(
+ value = '55',
+ )
+ """
+
+ def testWebhookMetric(self):
+ """Test WebhookMetric"""
+ # 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_webhooks_v2_api.py b/test/test_webhooks_v2_api.py
index ff4b09ca..67cb94ea 100644
--- a/test/test_webhooks_v2_api.py
+++ b/test/test_webhooks_v2_api.py
@@ -41,6 +41,13 @@ def test_delete_webhook(self) -> None:
"""
pass
+ def test_get_metrics(self) -> None:
+ """Test case for get_metrics
+
+ Get webhook metrics
+ """
+ pass
+
def test_get_notification(self) -> None:
"""Test case for get_notification