diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES index 1ce4ba0f..a84acbcc 100644 --- a/.openapi-generator/FILES +++ b/.openapi-generator/FILES @@ -846,6 +846,7 @@ docs/StEthBlockchainData.md docs/StakeRequest.md docs/StakeResponse.md docs/StakingApi.md +docs/StakingErrorSchema.md docs/StakingPositionsPaginatedResponse.md docs/StakingProvider.md docs/Status.md @@ -948,6 +949,7 @@ docs/TRLinkVerdict.md docs/TRLinkVerdictEnum.md docs/Tag.md docs/TagAttachmentOperationAction.md +docs/TagType.md docs/TagsApi.md docs/TagsPagedResponse.md docs/TemplatesPaginatedResponse.md @@ -1081,6 +1083,7 @@ docs/UpdateVaultAccountAssetAddressRequest.md docs/UpdateVaultAccountRequest.md docs/UpdateWebhookRequest.md docs/UsWirePaymentInfo.md +docs/UsdcGatewayWalletAsset.md docs/UsdcGatewayWalletInfoResponse.md docs/UsdcGatewayWalletStatusResponse.md docs/UserGroupCreateRequest.md @@ -2012,6 +2015,7 @@ fireblocks/models/split_response.py fireblocks/models/st_eth_blockchain_data.py fireblocks/models/stake_request.py fireblocks/models/stake_response.py +fireblocks/models/staking_error_schema.py fireblocks/models/staking_positions_paginated_response.py fireblocks/models/staking_provider.py fireblocks/models/status.py @@ -2023,6 +2027,7 @@ fireblocks/models/swift_destination.py fireblocks/models/system_message_info.py fireblocks/models/tag.py fireblocks/models/tag_attachment_operation_action.py +fireblocks/models/tag_type.py fireblocks/models/tags_paged_response.py fireblocks/models/templates_paginated_response.py fireblocks/models/third_party_routing.py @@ -2240,6 +2245,7 @@ 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/usdc_gateway_wallet_asset.py fireblocks/models/usdc_gateway_wallet_info_response.py fireblocks/models/usdc_gateway_wallet_status_response.py fireblocks/models/user_group_create_request.py @@ -3157,6 +3163,7 @@ test/test_st_eth_blockchain_data.py test/test_stake_request.py test/test_stake_response.py test/test_staking_api.py +test/test_staking_error_schema.py test/test_staking_positions_paginated_response.py test/test_staking_provider.py test/test_status.py @@ -3168,6 +3175,7 @@ test/test_swift_destination.py test/test_system_message_info.py test/test_tag.py test/test_tag_attachment_operation_action.py +test/test_tag_type.py test/test_tags_api.py test/test_tags_paged_response.py test/test_templates_paginated_response.py @@ -3391,6 +3399,7 @@ 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_usdc_gateway_wallet_asset.py test/test_usdc_gateway_wallet_info_response.py test/test_usdc_gateway_wallet_status_response.py test/test_user_group_create_request.py diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 01679467..00000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,248 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [v19.0.0](https://github.com/fireblocks/py-sdk/compare/v18.0.0...v19.0.0) - 2026-05-17 - -### Merged - -- Generated SDK #7742 (major) [`#139`](https://github.com/fireblocks/py-sdk/pull/139) - -## [v18.0.0](https://github.com/fireblocks/py-sdk/compare/v17.0.0...v18.0.0) - 2026-05-07 - -### Merged - -- Generated SDK #3222 (major) [`#138`](https://github.com/fireblocks/py-sdk/pull/138) - -## [v17.0.0](https://github.com/fireblocks/py-sdk/compare/v16.0.0...v17.0.0) - 2026-04-20 - -### Merged - -- Generated SDK #9605 (major) [`#137`](https://github.com/fireblocks/py-sdk/pull/137) - -## [v16.0.0](https://github.com/fireblocks/py-sdk/compare/v15.0.0...v16.0.0) - 2026-04-06 - -### Merged - -- Generated SDK #3331 [`#135`](https://github.com/fireblocks/py-sdk/pull/135) - -## [v15.0.0](https://github.com/fireblocks/py-sdk/compare/v14.1.0...v15.0.0) - 2026-03-15 - -### Merged - -- Generated SDK #3733 (major) [`#129`](https://github.com/fireblocks/py-sdk/pull/129) - -## [v14.1.0](https://github.com/fireblocks/py-sdk/compare/v14.0.0...v14.1.0) - 2026-02-26 - -### Merged - -- Generated SDK #2167 [`#127`](https://github.com/fireblocks/py-sdk/pull/127) - -## [v14.0.0](https://github.com/fireblocks/py-sdk/compare/v13.0.0...v14.0.0) - 2026-02-03 - -### Merged - -- Generated SDK #4746 [`#123`](https://github.com/fireblocks/py-sdk/pull/123) - -## [v13.0.0](https://github.com/fireblocks/py-sdk/compare/v12.1.2...v13.0.0) - 2025-11-13 - -### Merged - -- Generated SDK #5834 [`#121`](https://github.com/fireblocks/py-sdk/pull/121) - -## [v12.1.2](https://github.com/fireblocks/py-sdk/compare/v12.1.1...v12.1.2) - 2025-10-22 - -### Merged - -- Generated SDK #8293 [`#120`](https://github.com/fireblocks/py-sdk/pull/120) - -## [v12.1.1](https://github.com/fireblocks/py-sdk/compare/v12.1.0...v12.1.1) - 2025-09-29 - -### Merged - -- Generated SDK #6061 [`#119`](https://github.com/fireblocks/py-sdk/pull/119) - -## [v12.1.0](https://github.com/fireblocks/py-sdk/compare/v12.0.0...v12.1.0) - 2025-09-09 - -### Merged - -- Generated SDK #4521 [`#118`](https://github.com/fireblocks/py-sdk/pull/118) - -## [v12.0.0](https://github.com/fireblocks/py-sdk/compare/v11.2.0...v12.0.0) - 2025-09-01 - -### Merged - -- Generated SDK #7741 [`#117`](https://github.com/fireblocks/py-sdk/pull/117) - -## [v11.2.0](https://github.com/fireblocks/py-sdk/compare/v11.1.0...v11.2.0) - 2025-08-18 - -### Merged - -- Generated SDK #3302 [`#116`](https://github.com/fireblocks/py-sdk/pull/116) - -## [v11.1.0](https://github.com/fireblocks/py-sdk/compare/v11.0.0...v11.1.0) - 2025-08-11 - -### Merged - -- Generated SDK #1782 [`#115`](https://github.com/fireblocks/py-sdk/pull/115) - -## [v11.0.0](https://github.com/fireblocks/py-sdk/compare/v10.4.0...v11.0.0) - 2025-07-15 - -### Merged - -- Generated SDK #5610 [`#114`](https://github.com/fireblocks/py-sdk/pull/114) - -## [v10.4.0](https://github.com/fireblocks/py-sdk/compare/v10.3.0...v10.4.0) - 2025-06-29 - -### Merged - -- Generated SDK #1492 [`#113`](https://github.com/fireblocks/py-sdk/pull/113) - -## [v10.3.0](https://github.com/fireblocks/py-sdk/compare/v10.2.0...v10.3.0) - 2025-06-18 - -### Merged - -- Generated SDK #4009 [`#112`](https://github.com/fireblocks/py-sdk/pull/112) - -## [v10.2.0](https://github.com/fireblocks/py-sdk/compare/v10.1.1...v10.2.0) - 2025-06-04 - -### Merged - -- Generated SDK #8912 [`#111`](https://github.com/fireblocks/py-sdk/pull/111) - -## [v10.1.1](https://github.com/fireblocks/py-sdk/compare/v10.1.0...v10.1.1) - 2025-05-18 - -### Merged - -- Generated SDK #5019 [`#110`](https://github.com/fireblocks/py-sdk/pull/110) - -## [v10.1.0](https://github.com/fireblocks/py-sdk/compare/v10.0.0...v10.1.0) - 2025-05-07 - -### Merged - -- Generated SDK #7076 [`#107`](https://github.com/fireblocks/py-sdk/pull/107) - -## [v10.0.0](https://github.com/fireblocks/py-sdk/compare/v9.0.1...v10.0.0) - 2025-04-20 - -### Merged - -- Generated SDK #4794 [`#105`](https://github.com/fireblocks/py-sdk/pull/105) - -## [v9.0.1](https://github.com/fireblocks/py-sdk/compare/v9.0.0...v9.0.1) - 2025-04-07 - -### Merged - -- Generated SDK #3065 [`#104`](https://github.com/fireblocks/py-sdk/pull/104) - -## [v9.0.0](https://github.com/fireblocks/py-sdk/compare/v8.0.0...v9.0.0) - 2025-03-27 - -### Merged - -- Generated SDK #619 [`#102`](https://github.com/fireblocks/py-sdk/pull/102) - -## [v8.0.0](https://github.com/fireblocks/py-sdk/compare/v7.1.0...v8.0.0) - 2025-03-17 - -### Merged - -- Generated SDK #645 [`#101`](https://github.com/fireblocks/py-sdk/pull/101) -- Generated SDK #726 [`#99`](https://github.com/fireblocks/py-sdk/pull/99) - -## [v7.1.0](https://github.com/fireblocks/py-sdk/compare/v7.0.1...v7.1.0) - 2025-02-25 - -### Merged - -- Generated SDK #9833 [`#96`](https://github.com/fireblocks/py-sdk/pull/96) - -## [v7.0.1](https://github.com/fireblocks/py-sdk/compare/v7.0.0...v7.0.1) - 2025-02-12 - -### Merged - -- Generated SDK #4262 [`#95`](https://github.com/fireblocks/py-sdk/pull/95) - -## [v7.0.0](https://github.com/fireblocks/py-sdk/compare/v6.0.0...v7.0.0) - 2025-02-02 - -### Merged - -- Generated SDK #538 [`#92`](https://github.com/fireblocks/py-sdk/pull/92) - -## [v6.0.0](https://github.com/fireblocks/py-sdk/compare/v5.0.0...v6.0.0) - 2025-01-08 - -### Merged - -- Generated SDK #8699 [`#89`](https://github.com/fireblocks/py-sdk/pull/89) - -## [v5.0.0](https://github.com/fireblocks/py-sdk/compare/v4.0.0...v5.0.0) - 2024-12-05 - -### Merged - -- Generated SDK #1430 [`#85`](https://github.com/fireblocks/py-sdk/pull/85) -- Update python-package.yml, deprecate macos-12 [`#86`](https://github.com/fireblocks/py-sdk/pull/86) - -## [v4.0.0](https://github.com/fireblocks/py-sdk/compare/v3.0.0...v4.0.0) - 2024-10-31 - -### Merged - -- Generated SDK #5184 [`#82`](https://github.com/fireblocks/py-sdk/pull/82) - -## [v3.0.0](https://github.com/fireblocks/py-sdk/compare/v2.1.0...v3.0.0) - 2024-09-17 - -### Merged - -- Generated SDK #237 [`#81`](https://github.com/fireblocks/py-sdk/pull/81) - -## [v2.1.0](https://github.com/fireblocks/py-sdk/compare/v2.0.0...v2.1.0) - 2024-07-25 - -### Merged - -- Generated SDK #6749 [`#78`](https://github.com/fireblocks/py-sdk/pull/78) - -## [v2.0.0](https://github.com/fireblocks/py-sdk/compare/v1.0.4...v2.0.0) - 2024-07-17 - -### Merged - -- Generated SDK #6152 [`#76`](https://github.com/fireblocks/py-sdk/pull/76) -- Generated SDK #7647 [`#73`](https://github.com/fireblocks/py-sdk/pull/73) -- Generated SDK #7984 [`#70`](https://github.com/fireblocks/py-sdk/pull/70) - -## [v1.0.4](https://github.com/fireblocks/py-sdk/compare/v1.0.3...v1.0.4) - 2024-06-26 - -### Merged - -- Generated SDK #5779 [`#69`](https://github.com/fireblocks/py-sdk/pull/69) -- Generated SDK #913 [`#68`](https://github.com/fireblocks/py-sdk/pull/68) -- Generated SDK #1353 [`#67`](https://github.com/fireblocks/py-sdk/pull/67) -- Generated SDK #9982 [`#66`](https://github.com/fireblocks/py-sdk/pull/66) -- Generated SDK #1362 [`#65`](https://github.com/fireblocks/py-sdk/pull/65) -- Generated SDK #3652 [`#64`](https://github.com/fireblocks/py-sdk/pull/64) - -## [v1.0.3](https://github.com/fireblocks/py-sdk/compare/v1.0.2...v1.0.3) - 2024-06-06 - -### Merged - -- Generated SDK #2648 [`#30`](https://github.com/fireblocks/py-sdk/pull/30) - -## [v1.0.2](https://github.com/fireblocks/py-sdk/compare/v0.0.2-beta...v1.0.2) - 2024-06-04 - -### Merged - -- version 1.0.2 [`#25`](https://github.com/fireblocks/py-sdk/pull/25) -- version 1.0.0 [`#24`](https://github.com/fireblocks/py-sdk/pull/24) - -## v0.0.2-beta - 2024-05-30 - -### Merged - -- version 0.0.2-beta [`#23`](https://github.com/fireblocks/py-sdk/pull/23) -- Update .bumpversion.cfg [`#14`](https://github.com/fireblocks/py-sdk/pull/14) -- Update setup.py [`#13`](https://github.com/fireblocks/py-sdk/pull/13) -- Bug Fixes [`#12`](https://github.com/fireblocks/py-sdk/pull/12) -- update support for beta in bumpversion [`#11`](https://github.com/fireblocks/py-sdk/pull/11) -- Update setup.py [`#10`](https://github.com/fireblocks/py-sdk/pull/10) -- Update setup.py [`#9`](https://github.com/fireblocks/py-sdk/pull/9) -- Added Idempotency & NCW headers support [`#7`](https://github.com/fireblocks/py-sdk/pull/7) -- Added Idempotency & NCW headers support [`#8`](https://github.com/fireblocks/py-sdk/pull/8) -- Update setup.py [`#5`](https://github.com/fireblocks/py-sdk/pull/5) -- API Support Updates [`#4`](https://github.com/fireblocks/py-sdk/pull/4) diff --git a/README.md b/README.md index dcb2c675..142930c6 100644 --- a/README.md +++ b/README.md @@ -1460,6 +1460,7 @@ Class | Method | HTTP request | Description - [StEthBlockchainData](docs/StEthBlockchainData.md) - [StakeRequest](docs/StakeRequest.md) - [StakeResponse](docs/StakeResponse.md) + - [StakingErrorSchema](docs/StakingErrorSchema.md) - [StakingPositionsPaginatedResponse](docs/StakingPositionsPaginatedResponse.md) - [StakingProvider](docs/StakingProvider.md) - [Status](docs/Status.md) @@ -1561,6 +1562,7 @@ Class | Method | HTTP request | Description - [TRLinkVerdictEnum](docs/TRLinkVerdictEnum.md) - [Tag](docs/Tag.md) - [TagAttachmentOperationAction](docs/TagAttachmentOperationAction.md) + - [TagType](docs/TagType.md) - [TagsPagedResponse](docs/TagsPagedResponse.md) - [TemplatesPaginatedResponse](docs/TemplatesPaginatedResponse.md) - [ThirdPartyRouting](docs/ThirdPartyRouting.md) @@ -1688,6 +1690,7 @@ Class | Method | HTTP request | Description - [UpdateVaultAccountRequest](docs/UpdateVaultAccountRequest.md) - [UpdateWebhookRequest](docs/UpdateWebhookRequest.md) - [UsWirePaymentInfo](docs/UsWirePaymentInfo.md) + - [UsdcGatewayWalletAsset](docs/UsdcGatewayWalletAsset.md) - [UsdcGatewayWalletInfoResponse](docs/UsdcGatewayWalletInfoResponse.md) - [UsdcGatewayWalletStatusResponse](docs/UsdcGatewayWalletStatusResponse.md) - [UserGroupCreateRequest](docs/UserGroupCreateRequest.md) diff --git a/docs/AuditLogData.md b/docs/AuditLogData.md index 494af4ed..cdfebf24 100644 --- a/docs/AuditLogData.md +++ b/docs/AuditLogData.md @@ -11,6 +11,7 @@ Name | Type | Description | Notes **user** | **str** | The user who performed the action | [optional] **subject** | **str** | The subject of the action | [optional] **event** | **str** | The event that was performed | [optional] +**category** | **str** | The category of the audit event | [optional] **tenant_id** | **str** | The tenant ID of the audit log | [optional] **user_id** | **str** | The user ID of the audit log | [optional] diff --git a/docs/AuditLogsApi.md b/docs/AuditLogsApi.md index c4d574e4..7e8eeb87 100644 --- a/docs/AuditLogsApi.md +++ b/docs/AuditLogsApi.md @@ -8,14 +8,17 @@ Method | HTTP request | Description # **get_audit_logs** -> GetAuditLogsResponse get_audit_logs(time_period=time_period, cursor=cursor) +> GetAuditLogsResponse get_audit_logs(start_time=start_time, end_time=end_time, time_period=time_period, category=category, subject=subject, event=event, user=user, user_id=user_id, order=order, page_size=page_size, page_cursor=page_cursor, cursor=cursor) Get audit logs -Get Audit logs for the last Day/Week. +Retrieve audit log events for the workspace with optional filtering, date range, sorting, and cursor-based pagination. -- Please note that this endpoint is available only for API keys with Admin/Non Signing Admin permissions. -Endpoint Permission: Admin, Non-Signing Admin. +Filters within the same field are combined as OR (e.g. category=Administration&category=Security returns events in either category). Filters across different fields are combined as AND. + +**Deprecated parameters:** `timePeriod` and `cursor` remain functional for backward compatibility but new integrations should use `startTime`/`endTime` and `pageCursor` instead. + +Endpoint Permission: Admin, Non-Signing Admin, Auditor, Security Admin, Security Auditor. ### Example @@ -42,12 +45,22 @@ configuration = ClientConfiguration( # Enter a context with an instance of the API client with Fireblocks(configuration) as fireblocks: - time_period = 'time_period_example' # str | The last time period to fetch audit logs (optional) - cursor = 'cursor_example' # str | The next id to start fetch audit logs from (optional) + start_time = 56 # int | Start of date range as epoch time in milliseconds. Takes precedence over timePeriod when provided. Must be no more than 1 year before the current time. (optional) + end_time = 56 # int | End of date range as epoch time in milliseconds. Must be after startTime. Defaults to now when omitted. (optional) + time_period = 'time_period_example' # str | Deprecated. Use startTime/endTime instead. Ignored when startTime is provided. Defaults to DAY when neither timePeriod nor startTime is supplied. (optional) + category = ['category_example'] # List[str] | Filter by event category. Repeat the parameter for multiple values (OR logic within field). (optional) + subject = ['subject_example'] # List[str] | Filter by event subject. Repeat the parameter for multiple values. (optional) + event = ['event_example'] # List[str] | Filter by event type. Repeat the parameter for multiple values. (optional) + user = ['user_example'] # List[str] | Filter by user name. Repeat the parameter for multiple values. (optional) + user_id = ['user_id_example'] # List[str] | Filter by user ID. Repeat the parameter for multiple values. (optional) + order = DESC # str | Sort direction. Defaults to DESC. (optional) (default to DESC) + page_size = 200 # int | Number of results per page. Maximum 500. Defaults to 200. (optional) (default to 200) + page_cursor = 'page_cursor_example' # str | Cursor returned from the previous response to fetch the next page. (optional) + cursor = 'cursor_example' # str | Deprecated. Use pageCursor instead. (optional) try: # Get audit logs - api_response = fireblocks.audit_logs.get_audit_logs(time_period=time_period, cursor=cursor).result() + api_response = fireblocks.audit_logs.get_audit_logs(start_time=start_time, end_time=end_time, time_period=time_period, category=category, subject=subject, event=event, user=user, user_id=user_id, order=order, page_size=page_size, page_cursor=page_cursor, cursor=cursor).result() print("The response of AuditLogsApi->get_audit_logs:\n") pprint(api_response) except Exception as e: @@ -61,8 +74,18 @@ with Fireblocks(configuration) as fireblocks: Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **time_period** | **str**| The last time period to fetch audit logs | [optional] - **cursor** | **str**| The next id to start fetch audit logs from | [optional] + **start_time** | **int**| Start of date range as epoch time in milliseconds. Takes precedence over timePeriod when provided. Must be no more than 1 year before the current time. | [optional] + **end_time** | **int**| End of date range as epoch time in milliseconds. Must be after startTime. Defaults to now when omitted. | [optional] + **time_period** | **str**| Deprecated. Use startTime/endTime instead. Ignored when startTime is provided. Defaults to DAY when neither timePeriod nor startTime is supplied. | [optional] + **category** | [**List[str]**](str.md)| Filter by event category. Repeat the parameter for multiple values (OR logic within field). | [optional] + **subject** | [**List[str]**](str.md)| Filter by event subject. Repeat the parameter for multiple values. | [optional] + **event** | [**List[str]**](str.md)| Filter by event type. Repeat the parameter for multiple values. | [optional] + **user** | [**List[str]**](str.md)| Filter by user name. Repeat the parameter for multiple values. | [optional] + **user_id** | [**List[str]**](str.md)| Filter by user ID. Repeat the parameter for multiple values. | [optional] + **order** | **str**| Sort direction. Defaults to DESC. | [optional] [default to DESC] + **page_size** | **int**| Number of results per page. Maximum 500. Defaults to 200. | [optional] [default to 200] + **page_cursor** | **str**| Cursor returned from the previous response to fetch the next page. | [optional] + **cursor** | **str**| Deprecated. Use pageCursor instead. | [optional] ### Return type @@ -81,7 +104,9 @@ No authorization required | Status code | Description | Response headers | |-------------|-------------|------------------| -**200** | Audit logs from requested time period | * X-Request-ID -
| +**200** | Audit log events matching the requested filters and date range | * X-Request-ID -
| +**400** | Error Response | * X-Request-ID -
| +**403** | Error Response | * X-Request-ID -
| **0** | Error Response | * X-Request-ID -
| [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) diff --git a/docs/CreateTagRequest.md b/docs/CreateTagRequest.md index 002b9875..6093e133 100644 --- a/docs/CreateTagRequest.md +++ b/docs/CreateTagRequest.md @@ -9,6 +9,7 @@ Name | Type | Description | Notes **description** | **str** | Description for the tag | [optional] **color** | **str** | The tag color in hex format | [optional] **is_protected** | **bool** | Indication if the tag is protected tag | [optional] [default to False] +**type** | [**TagType**](TagType.md) | | [optional] ## Example diff --git a/docs/ExchangeAsset.md b/docs/ExchangeAsset.md index 94bd5a0d..8766f837 100644 --- a/docs/ExchangeAsset.md +++ b/docs/ExchangeAsset.md @@ -5,16 +5,16 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**id** | **str** | | [optional] +**id** | **str** | Deprecated. Use assetId or assetLegacyId instead. | [optional] **balance** | **str** | | [optional] **locked_amount** | **str** | | [optional] **total** | **str** | | [optional] **available** | **str** | | [optional] **credit** | **str** | | [optional] -**asset_id** | **str** | The id of the asset | [optional] -**provider_symbol** | **str** | The provider symbol of the asset | [optional] -**asset_symbol** | **str** | The asset symbol of the asset | [optional] -**asset_legacy_id** | **str** | The asset legacy id of the asset | [optional] +**asset_id** | **str** | The Fireblocks asset id. Present only when Fireblocks can identify the exchange asset. | [optional] +**provider_symbol** | **str** | The symbol used by the exchange provider to identify the asset. | [optional] +**asset_symbol** | **str** | The Fireblocks asset symbol. Present only when Fireblocks can identify the exchange asset. | [optional] +**asset_legacy_id** | **str** | The Fireblocks legacy asset id. Present only when Fireblocks can identify the exchange asset. | [optional] ## Example diff --git a/docs/GasStationsApi.md b/docs/GasStationsApi.md index 55ab872e..649ec4ea 100644 --- a/docs/GasStationsApi.md +++ b/docs/GasStationsApi.md @@ -230,7 +230,7 @@ No authorization required | Status code | Description | Response headers | |-------------|-------------|------------------| -**201** | OK | * X-Request-ID -
| +**200** | OK | * X-Request-ID -
| **0** | Error Response | * X-Request-ID -
| [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) @@ -311,7 +311,7 @@ No authorization required | Status code | Description | Response headers | |-------------|-------------|------------------| -**201** | OK | * X-Request-ID -
| +**200** | OK | * X-Request-ID -
| **0** | Error Response | * X-Request-ID -
| [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) diff --git a/docs/GetAuditLogsResponse.md b/docs/GetAuditLogsResponse.md index 49466ea8..095eba83 100644 --- a/docs/GetAuditLogsResponse.md +++ b/docs/GetAuditLogsResponse.md @@ -6,8 +6,8 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **data** | [**List[AuditLogData]**](AuditLogData.md) | | [optional] -**cursor** | **str** | The next id to start fetch audit logs from | [optional] -**total** | **float** | The total number of audit logs | [optional] +**next** | **str** | Cursor to pass as pageCursor in the next request. Null when no further pages exist. | [optional] +**cursor** | **str** | Deprecated. Use next instead. | [optional] ## Example diff --git a/docs/StakingErrorSchema.md b/docs/StakingErrorSchema.md new file mode 100644 index 00000000..0ac9a837 --- /dev/null +++ b/docs/StakingErrorSchema.md @@ -0,0 +1,31 @@ +# StakingErrorSchema + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**message** | **str** | Human-readable error message. | +**code** | **float** | Numeric error code identifying the type of error. | +**descriptor** | **str** | Additional structured context about the error. | [optional] + +## Example + +```python +from fireblocks.models.staking_error_schema import StakingErrorSchema + +# TODO update the JSON string below +json = "{}" +# create an instance of StakingErrorSchema from a JSON string +staking_error_schema_instance = StakingErrorSchema.from_json(json) +# print the JSON string representation of the object +print(StakingErrorSchema.to_json()) + +# convert the object into a dict +staking_error_schema_dict = staking_error_schema_instance.to_dict() +# create an instance of StakingErrorSchema from a dict +staking_error_schema_from_dict = StakingErrorSchema.from_dict(staking_error_schema_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/Tag.md b/docs/Tag.md index 9519d8c5..78d6f6a7 100644 --- a/docs/Tag.md +++ b/docs/Tag.md @@ -11,6 +11,7 @@ Name | Type | Description | Notes **color** | **str** | The tag color in hex format | [optional] **is_protected** | **bool** | Indication if the tag is a protected tag | [default to False] **updated_at** | **float** | The date and time the tag was last updated | +**type** | [**TagType**](TagType.md) | | [optional] **pending_approval_request** | [**ApprovalRequest**](ApprovalRequest.md) | | [optional] ## Example diff --git a/docs/TagType.md b/docs/TagType.md new file mode 100644 index 00000000..eb23039f --- /dev/null +++ b/docs/TagType.md @@ -0,0 +1,11 @@ +# TagType + +The tag type, indicating the domain that owns the tag + +## Enum + +* `WALLET_POOL` (value: `'WALLET_POOL'`) + +[[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/TagsApi.md b/docs/TagsApi.md index 7332b199..2ae050f5 100644 --- a/docs/TagsApi.md +++ b/docs/TagsApi.md @@ -385,7 +385,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_tags** -> TagsPagedResponse get_tags(page_cursor=page_cursor, page_size=page_size, label=label, tag_ids=tag_ids, include_pending_approvals_info=include_pending_approvals_info, is_protected=is_protected) +> TagsPagedResponse get_tags(page_cursor=page_cursor, page_size=page_size, label=label, tag_ids=tag_ids, include_pending_approvals_info=include_pending_approvals_info, is_protected=is_protected, type=type) Get list of tags @@ -395,6 +395,7 @@ Retrieve a paged list of all tags according to filters. ```python +from fireblocks.models.tag_type import TagType from fireblocks.models.tags_paged_response import TagsPagedResponse from fireblocks.client import Fireblocks from fireblocks.client_configuration import ClientConfiguration @@ -422,10 +423,11 @@ with Fireblocks(configuration) as fireblocks: tag_ids = ['tag_ids_example'] # List[str] | List of tag IDs to filter by. (optional) include_pending_approvals_info = False # bool | Whether to include pending approval requests info. (optional) (default to False) is_protected = True # bool | (optional) + type = [fireblocks.TagType()] # List[TagType] | Filter by tag type (optional) try: # Get list of tags - api_response = fireblocks.tags.get_tags(page_cursor=page_cursor, page_size=page_size, label=label, tag_ids=tag_ids, include_pending_approvals_info=include_pending_approvals_info, is_protected=is_protected).result() + api_response = fireblocks.tags.get_tags(page_cursor=page_cursor, page_size=page_size, label=label, tag_ids=tag_ids, include_pending_approvals_info=include_pending_approvals_info, is_protected=is_protected, type=type).result() print("The response of TagsApi->get_tags:\n") pprint(api_response) except Exception as e: @@ -445,6 +447,7 @@ Name | Type | Description | Notes **tag_ids** | [**List[str]**](str.md)| List of tag IDs to filter by. | [optional] **include_pending_approvals_info** | **bool**| Whether to include pending approval requests info. | [optional] [default to False] **is_protected** | **bool**| | [optional] + **type** | [**List[TagType]**](TagType.md)| Filter by tag type | [optional] ### Return type diff --git a/docs/UpdateTagRequest.md b/docs/UpdateTagRequest.md index 0db9506d..e8ce3956 100644 --- a/docs/UpdateTagRequest.md +++ b/docs/UpdateTagRequest.md @@ -7,6 +7,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **label** | **str** | The tag label | [optional] **description** | **str** | Description for the tag | [optional] +**color** | **str** | The tag color in hex format | [optional] ## Example diff --git a/docs/UsdcGatewayWalletAsset.md b/docs/UsdcGatewayWalletAsset.md new file mode 100644 index 00000000..169aa569 --- /dev/null +++ b/docs/UsdcGatewayWalletAsset.md @@ -0,0 +1,32 @@ +# UsdcGatewayWalletAsset + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | Fireblocks asset ID | +**balance** | **str** | Asset balance | +**chain** | **str** | Blockchain name | +**network** | **str** | Network name | + +## Example + +```python +from fireblocks.models.usdc_gateway_wallet_asset import UsdcGatewayWalletAsset + +# TODO update the JSON string below +json = "{}" +# create an instance of UsdcGatewayWalletAsset from a JSON string +usdc_gateway_wallet_asset_instance = UsdcGatewayWalletAsset.from_json(json) +# print the JSON string representation of the object +print(UsdcGatewayWalletAsset.to_json()) + +# convert the object into a dict +usdc_gateway_wallet_asset_dict = usdc_gateway_wallet_asset_instance.to_dict() +# create an instance of UsdcGatewayWalletAsset from a dict +usdc_gateway_wallet_asset_from_dict = UsdcGatewayWalletAsset.from_dict(usdc_gateway_wallet_asset_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/UsdcGatewayWalletInfoResponse.md b/docs/UsdcGatewayWalletInfoResponse.md index d3a2f8d4..3fed74f0 100644 --- a/docs/UsdcGatewayWalletInfoResponse.md +++ b/docs/UsdcGatewayWalletInfoResponse.md @@ -9,7 +9,9 @@ Name | Type | Description | Notes **type** | **str** | The USDC Gateway provider identifier | **status** | **str** | Current activation status of the USDC Gateway wallet | **symbol** | **str** | The token symbol supported by this wallet (e.g. USDC) | -**asset_ids** | **List[str]** | Fireblocks asset IDs available for this wallet | +**total_balance** | **str** | Aggregate USDC balance across all assets | +**assets** | [**List[UsdcGatewayWalletAsset]**](UsdcGatewayWalletAsset.md) | Per-chain USDC asset balances | +**virtual_asset_id** | **str** | The id of the virtual asset | ## Example diff --git a/fireblocks/__init__.py b/fireblocks/__init__.py index 1709453a..2cb33bdd 100644 --- a/fireblocks/__init__.py +++ b/fireblocks/__init__.py @@ -15,7 +15,7 @@ """ # noqa: E501 -__version__ = "19.0.0" +__version__ = "0.0.0" # import apis into sdk package from fireblocks.api.api_user_api import ApiUserApi @@ -1325,6 +1325,7 @@ from fireblocks.models.st_eth_blockchain_data import StEthBlockchainData from fireblocks.models.stake_request import StakeRequest from fireblocks.models.stake_response import StakeResponse +from fireblocks.models.staking_error_schema import StakingErrorSchema from fireblocks.models.staking_positions_paginated_response import ( StakingPositionsPaginatedResponse, ) @@ -1492,6 +1493,7 @@ from fireblocks.models.tag_attachment_operation_action import ( TagAttachmentOperationAction, ) +from fireblocks.models.tag_type import TagType from fireblocks.models.tags_paged_response import TagsPagedResponse from fireblocks.models.templates_paginated_response import TemplatesPaginatedResponse from fireblocks.models.third_party_routing import ThirdPartyRouting @@ -1713,6 +1715,7 @@ from fireblocks.models.update_vault_account_request import UpdateVaultAccountRequest from fireblocks.models.update_webhook_request import UpdateWebhookRequest from fireblocks.models.us_wire_payment_info import UsWirePaymentInfo +from fireblocks.models.usdc_gateway_wallet_asset import UsdcGatewayWalletAsset from fireblocks.models.usdc_gateway_wallet_info_response import ( UsdcGatewayWalletInfoResponse, ) diff --git a/fireblocks/api/audit_logs_api.py b/fireblocks/api/audit_logs_api.py index 1ccbe1aa..25d5644c 100644 --- a/fireblocks/api/audit_logs_api.py +++ b/fireblocks/api/audit_logs_api.py @@ -18,8 +18,8 @@ from typing import Any, Dict, List, Optional, Tuple, Union from typing_extensions import Annotated -from pydantic import Field, StrictStr, field_validator -from typing import Optional +from pydantic import Field, StrictInt, StrictStr, field_validator +from typing import List, Optional from typing_extensions import Annotated from fireblocks.models.get_audit_logs_response import GetAuditLogsResponse @@ -45,8 +45,18 @@ def __init__(self, api_client=None) -> None: @validate_call def get_audit_logs( self, - time_period: Annotated[Optional[StrictStr], Field(description="The last time period to fetch audit logs")] = None, - cursor: Annotated[Optional[StrictStr], Field(description="The next id to start fetch audit logs from")] = None, + start_time: Annotated[Optional[StrictInt], Field(description="Start of date range as epoch time in milliseconds. Takes precedence over timePeriod when provided. Must be no more than 1 year before the current time.")] = None, + end_time: Annotated[Optional[StrictInt], Field(description="End of date range as epoch time in milliseconds. Must be after startTime. Defaults to now when omitted.")] = None, + time_period: Annotated[Optional[StrictStr], Field(description="Deprecated. Use startTime/endTime instead. Ignored when startTime is provided. Defaults to DAY when neither timePeriod nor startTime is supplied.")] = None, + category: Annotated[Optional[List[StrictStr]], Field(description="Filter by event category. Repeat the parameter for multiple values (OR logic within field).")] = None, + subject: Annotated[Optional[List[StrictStr]], Field(description="Filter by event subject. Repeat the parameter for multiple values.")] = None, + event: Annotated[Optional[List[StrictStr]], Field(description="Filter by event type. Repeat the parameter for multiple values.")] = None, + user: Annotated[Optional[List[StrictStr]], Field(description="Filter by user name. Repeat the parameter for multiple values.")] = None, + user_id: Annotated[Optional[List[StrictStr]], Field(description="Filter by user ID. Repeat the parameter for multiple values.")] = None, + order: Annotated[Optional[StrictStr], Field(description="Sort direction. Defaults to DESC.")] = None, + page_size: Annotated[Optional[Annotated[int, Field(le=500, strict=True, ge=1)]], Field(description="Number of results per page. Maximum 500. Defaults to 200.")] = None, + page_cursor: Annotated[Optional[StrictStr], Field(description="Cursor returned from the previous response to fetch the next page.")] = None, + cursor: Annotated[Optional[StrictStr], Field(description="Deprecated. Use pageCursor instead.")] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -62,11 +72,31 @@ def get_audit_logs( ) -> Future[ApiResponse[GetAuditLogsResponse]]: """Get audit logs - Get Audit logs for the last Day/Week. - Please note that this endpoint is available only for API keys with Admin/Non Signing Admin permissions. Endpoint Permission: Admin, Non-Signing Admin. + Retrieve audit log events for the workspace with optional filtering, date range, sorting, and cursor-based pagination. Filters within the same field are combined as OR (e.g. category=Administration&category=Security returns events in either category). Filters across different fields are combined as AND. **Deprecated parameters:** `timePeriod` and `cursor` remain functional for backward compatibility but new integrations should use `startTime`/`endTime` and `pageCursor` instead. Endpoint Permission: Admin, Non-Signing Admin, Auditor, Security Admin, Security Auditor. - :param time_period: The last time period to fetch audit logs + :param start_time: Start of date range as epoch time in milliseconds. Takes precedence over timePeriod when provided. Must be no more than 1 year before the current time. + :type start_time: int + :param end_time: End of date range as epoch time in milliseconds. Must be after startTime. Defaults to now when omitted. + :type end_time: int + :param time_period: Deprecated. Use startTime/endTime instead. Ignored when startTime is provided. Defaults to DAY when neither timePeriod nor startTime is supplied. :type time_period: str - :param cursor: The next id to start fetch audit logs from + :param category: Filter by event category. Repeat the parameter for multiple values (OR logic within field). + :type category: List[str] + :param subject: Filter by event subject. Repeat the parameter for multiple values. + :type subject: List[str] + :param event: Filter by event type. Repeat the parameter for multiple values. + :type event: List[str] + :param user: Filter by user name. Repeat the parameter for multiple values. + :type user: List[str] + :param user_id: Filter by user ID. Repeat the parameter for multiple values. + :type user_id: List[str] + :param order: Sort direction. Defaults to DESC. + :type order: str + :param page_size: Number of results per page. Maximum 500. Defaults to 200. + :type page_size: int + :param page_cursor: Cursor returned from the previous response to fetch the next page. + :type page_cursor: str + :param cursor: Deprecated. Use pageCursor instead. :type cursor: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -92,7 +122,17 @@ def get_audit_logs( _param = self._get_audit_logs_serialize( + start_time=start_time, + end_time=end_time, time_period=time_period, + category=category, + subject=subject, + event=event, + user=user, + user_id=user_id, + order=order, + page_size=page_size, + page_cursor=page_cursor, cursor=cursor, _request_auth=_request_auth, _content_type=_content_type, @@ -102,6 +142,8 @@ def get_audit_logs( _response_types_map: Dict[str, Optional[str]] = { '200': "GetAuditLogsResponse", + '400': "ErrorSchema", + '403': "ErrorSchema", 'default': "ErrorSchema", } @@ -113,7 +155,17 @@ def get_audit_logs( def _get_audit_logs_serialize( self, + start_time, + end_time, time_period, + category, + subject, + event, + user, + user_id, + order, + page_size, + page_cursor, cursor, _request_auth, _content_type, @@ -124,6 +176,11 @@ def _get_audit_logs_serialize( _host = None _collection_formats: Dict[str, str] = { + 'category': 'multi', + 'subject': 'multi', + 'event': 'multi', + 'user': 'multi', + 'userId': 'multi', } _path_params: Dict[str, str] = {} @@ -137,10 +194,50 @@ def _get_audit_logs_serialize( # process the path parameters # process the query parameters + if start_time is not None: + + _query_params.append(('startTime', start_time)) + + if end_time is not None: + + _query_params.append(('endTime', end_time)) + if time_period is not None: _query_params.append(('timePeriod', time_period)) + if category is not None: + + _query_params.append(('category', category)) + + if subject is not None: + + _query_params.append(('subject', subject)) + + if event is not None: + + _query_params.append(('event', event)) + + if user is not None: + + _query_params.append(('user', user)) + + if user_id is not None: + + _query_params.append(('userId', user_id)) + + if order is not None: + + _query_params.append(('order', order)) + + if page_size is not None: + + _query_params.append(('pageSize', page_size)) + + if page_cursor is not None: + + _query_params.append(('pageCursor', page_cursor)) + if cursor is not None: _query_params.append(('cursor', cursor)) diff --git a/fireblocks/api/gas_stations_api.py b/fireblocks/api/gas_stations_api.py index 6f769060..20c56af6 100644 --- a/fireblocks/api/gas_stations_api.py +++ b/fireblocks/api/gas_stations_api.py @@ -353,7 +353,7 @@ def update_gas_station_configuration( ) _response_types_map: Dict[str, Optional[str]] = { - '201': "EditGasStationConfigurationResponse", + '200': "EditGasStationConfigurationResponse", 'default': "ErrorSchema", } @@ -506,7 +506,7 @@ def update_gas_station_configuration_by_asset_id( ) _response_types_map: Dict[str, Optional[str]] = { - '201': "EditGasStationConfigurationResponse", + '200': "EditGasStationConfigurationResponse", 'default': "ErrorSchema", } diff --git a/fireblocks/api/staking_api.py b/fireblocks/api/staking_api.py index 64cc916e..9a6d0b9d 100644 --- a/fireblocks/api/staking_api.py +++ b/fireblocks/api/staking_api.py @@ -117,11 +117,11 @@ def approve_terms_of_service_by_provider_id( _response_types_map: Dict[str, Optional[str]] = { '201': None, - '400': "ErrorSchema", - '403': "ErrorSchema", - '404': "ErrorSchema", - '429': "ErrorSchema", - '500': "ErrorSchema", + '400': "StakingErrorSchema", + '403': "StakingErrorSchema", + '404': "StakingErrorSchema", + '429': "StakingErrorSchema", + '500': "StakingErrorSchema", 'default': "ErrorSchema", } @@ -262,11 +262,11 @@ def claim_rewards( _response_types_map: Dict[str, Optional[str]] = { '201': None, - '400': "ErrorSchema", - '403': "ErrorSchema", - '404': "ErrorSchema", - '429': "ErrorSchema", - '500': "ErrorSchema", + '400': "StakingErrorSchema", + '403': "StakingErrorSchema", + '404': "StakingErrorSchema", + '429': "StakingErrorSchema", + '500': "StakingErrorSchema", 'default': "ErrorSchema", } @@ -423,11 +423,11 @@ def consolidate( _response_types_map: Dict[str, Optional[str]] = { '201': "MergeStakeAccountsResponse", - '400': "ErrorSchema", - '403': "ErrorSchema", - '404': "ErrorSchema", - '429': "ErrorSchema", - '500': "ErrorSchema", + '400': "StakingErrorSchema", + '403': "StakingErrorSchema", + '404': "StakingErrorSchema", + '429': "StakingErrorSchema", + '500': "StakingErrorSchema", 'default': "ErrorSchema", } @@ -579,11 +579,11 @@ def get_all_delegations( _response_types_map: Dict[str, Optional[str]] = { '200': "List[Delegation]", - '400': "ErrorSchema", - '403': "ErrorSchema", - '404': "ErrorSchema", - '429': "ErrorSchema", - '500': "ErrorSchema", + '400': "StakingErrorSchema", + '403': "StakingErrorSchema", + '404': "StakingErrorSchema", + '429': "StakingErrorSchema", + '500': "StakingErrorSchema", 'default': "ErrorSchema", } @@ -719,11 +719,11 @@ def get_chain_info( _response_types_map: Dict[str, Optional[str]] = { '200': "ChainInfoResponse", - '400': "ErrorSchema", - '403': "ErrorSchema", - '404': "ErrorSchema", - '429': "ErrorSchema", - '500': "ErrorSchema", + '400': "StakingErrorSchema", + '403': "StakingErrorSchema", + '404': "StakingErrorSchema", + '429': "StakingErrorSchema", + '500': "StakingErrorSchema", 'default': "ErrorSchema", } @@ -848,10 +848,10 @@ def get_chains( _response_types_map: Dict[str, Optional[str]] = { '200': "List[ChainDescriptor]", - '403': "ErrorSchema", - '404': "ErrorSchema", - '429': "ErrorSchema", - '500': "ErrorSchema", + '403': "StakingErrorSchema", + '404': "StakingErrorSchema", + '429': "StakingErrorSchema", + '500': "StakingErrorSchema", 'default': "ErrorSchema", } @@ -978,11 +978,11 @@ def get_delegation_by_id( _response_types_map: Dict[str, Optional[str]] = { '200': "Delegation", - '400': "ErrorSchema", - '403': "ErrorSchema", - '404': "ErrorSchema", - '429': "ErrorSchema", - '500': "ErrorSchema", + '400': "StakingErrorSchema", + '403': "StakingErrorSchema", + '404': "StakingErrorSchema", + '429': "StakingErrorSchema", + '500': "StakingErrorSchema", 'default': "ErrorSchema", } @@ -1127,11 +1127,11 @@ def get_positions( _response_types_map: Dict[str, Optional[str]] = { '200': "StakingPositionsPaginatedResponse", - '400': "ErrorSchema", - '403': "ErrorSchema", - '404': "ErrorSchema", - '429': "ErrorSchema", - '500': "ErrorSchema", + '400': "StakingErrorSchema", + '403': "StakingErrorSchema", + '404': "StakingErrorSchema", + '429': "StakingErrorSchema", + '500': "StakingErrorSchema", 'default': "ErrorSchema", } @@ -1278,10 +1278,10 @@ def get_providers( _response_types_map: Dict[str, Optional[str]] = { '200': "List[Provider]", - '403': "ErrorSchema", - '404': "ErrorSchema", - '429': "ErrorSchema", - '500': "ErrorSchema", + '403': "StakingErrorSchema", + '404': "StakingErrorSchema", + '429': "StakingErrorSchema", + '500': "StakingErrorSchema", 'default': "ErrorSchema", } @@ -1403,10 +1403,10 @@ def get_summary( _response_types_map: Dict[str, Optional[str]] = { '200': "DelegationSummary", - '403': "ErrorSchema", - '404': "ErrorSchema", - '429': "ErrorSchema", - '500': "ErrorSchema", + '403': "StakingErrorSchema", + '404': "StakingErrorSchema", + '429': "StakingErrorSchema", + '500': "StakingErrorSchema", 'default': "ErrorSchema", } @@ -1528,10 +1528,10 @@ def get_summary_by_vault( _response_types_map: Dict[str, Optional[str]] = { '200': "Dict[str, DelegationSummary]", - '403': "ErrorSchema", - '404': "ErrorSchema", - '429': "ErrorSchema", - '500': "ErrorSchema", + '403': "StakingErrorSchema", + '404': "StakingErrorSchema", + '429': "StakingErrorSchema", + '500': "StakingErrorSchema", 'default': "ErrorSchema", } @@ -1666,11 +1666,11 @@ def merge_stake_accounts( _response_types_map: Dict[str, Optional[str]] = { '201': "MergeStakeAccountsResponse", - '400': "ErrorSchema", - '403': "ErrorSchema", - '404': "ErrorSchema", - '429': "ErrorSchema", - '500': "ErrorSchema", + '400': "StakingErrorSchema", + '403': "StakingErrorSchema", + '404': "StakingErrorSchema", + '429': "StakingErrorSchema", + '500': "StakingErrorSchema", 'default': "ErrorSchema", } @@ -1827,11 +1827,11 @@ def split( _response_types_map: Dict[str, Optional[str]] = { '201': "SplitResponse", - '400': "ErrorSchema", - '403': "ErrorSchema", - '404': "ErrorSchema", - '429': "ErrorSchema", - '500': "ErrorSchema", + '400': "StakingErrorSchema", + '403': "StakingErrorSchema", + '404': "StakingErrorSchema", + '429': "StakingErrorSchema", + '500': "StakingErrorSchema", 'default': "ErrorSchema", } @@ -1987,11 +1987,11 @@ def stake( _response_types_map: Dict[str, Optional[str]] = { '201': "StakeResponse", - '400': "ErrorSchema", - '403': "ErrorSchema", - '404': "ErrorSchema", - '429': "ErrorSchema", - '500': "ErrorSchema", + '400': "StakingErrorSchema", + '403': "StakingErrorSchema", + '404': "StakingErrorSchema", + '429': "StakingErrorSchema", + '500': "StakingErrorSchema", 'default': "ErrorSchema", } @@ -2147,11 +2147,11 @@ def unstake( _response_types_map: Dict[str, Optional[str]] = { '201': None, - '400': "ErrorSchema", - '403': "ErrorSchema", - '404': "ErrorSchema", - '429': "ErrorSchema", - '500': "ErrorSchema", + '400': "StakingErrorSchema", + '403': "StakingErrorSchema", + '404': "StakingErrorSchema", + '429': "StakingErrorSchema", + '500': "StakingErrorSchema", 'default': "ErrorSchema", } @@ -2307,11 +2307,11 @@ def withdraw( _response_types_map: Dict[str, Optional[str]] = { '201': None, - '400': "ErrorSchema", - '403': "ErrorSchema", - '404': "ErrorSchema", - '429': "ErrorSchema", - '500': "ErrorSchema", + '400': "StakingErrorSchema", + '403': "StakingErrorSchema", + '404': "StakingErrorSchema", + '429': "StakingErrorSchema", + '500': "StakingErrorSchema", 'default': "ErrorSchema", } diff --git a/fireblocks/api/tags_api.py b/fireblocks/api/tags_api.py index 7cbc0a7e..295b5a38 100644 --- a/fireblocks/api/tags_api.py +++ b/fireblocks/api/tags_api.py @@ -24,6 +24,7 @@ from fireblocks.models.approval_request import ApprovalRequest from fireblocks.models.create_tag_request import CreateTagRequest from fireblocks.models.tag import Tag +from fireblocks.models.tag_type import TagType from fireblocks.models.tags_paged_response import TagsPagedResponse from fireblocks.models.update_tag_request import UpdateTagRequest @@ -721,6 +722,7 @@ def get_tags( tag_ids: Annotated[Optional[Annotated[List[StrictStr], Field(max_length=100)]], Field(description="List of tag IDs to filter by.")] = None, include_pending_approvals_info: Annotated[Optional[StrictBool], Field(description="Whether to include pending approval requests info.")] = None, is_protected: Optional[StrictBool] = None, + type: Annotated[Optional[List[TagType]], Field(description="Filter by tag type")] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -750,6 +752,8 @@ def get_tags( :type include_pending_approvals_info: bool :param is_protected: :type is_protected: bool + :param type: Filter by tag type + :type type: List[TagType] :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 @@ -780,6 +784,7 @@ def get_tags( tag_ids=tag_ids, include_pending_approvals_info=include_pending_approvals_info, is_protected=is_protected, + type=type, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, @@ -804,6 +809,7 @@ def _get_tags_serialize( tag_ids, include_pending_approvals_info, is_protected, + type, _request_auth, _content_type, _headers, @@ -814,6 +820,7 @@ def _get_tags_serialize( _collection_formats: Dict[str, str] = { 'tagIds': 'multi', + 'type': 'multi', } _path_params: Dict[str, str] = {} @@ -851,6 +858,10 @@ def _get_tags_serialize( _query_params.append(('isProtected', is_protected)) + if type is not None: + + _query_params.append(('type', type)) + # process the header parameters # process the form parameters # process the body parameter diff --git a/fireblocks/configuration.py b/fireblocks/configuration.py index 9ef2e659..3f2e5962 100644 --- a/fireblocks/configuration.py +++ b/fireblocks/configuration.py @@ -552,7 +552,7 @@ def to_debug_report(self) -> str: "OS: {env}\n" "Python Version: {pyversion}\n" "Version of the API: 1.6.2\n" - "SDK Package Version: 19.0.0".format(env=sys.platform, pyversion=sys.version) + "SDK Package Version: 0.0.0".format(env=sys.platform, pyversion=sys.version) ) def get_host_settings(self) -> List[HostSetting]: diff --git a/fireblocks/models/__init__.py b/fireblocks/models/__init__.py index 5cfb1e97..404a5a28 100644 --- a/fireblocks/models/__init__.py +++ b/fireblocks/models/__init__.py @@ -826,6 +826,7 @@ from fireblocks.models.st_eth_blockchain_data import StEthBlockchainData from fireblocks.models.stake_request import StakeRequest from fireblocks.models.stake_response import StakeResponse +from fireblocks.models.staking_error_schema import StakingErrorSchema from fireblocks.models.staking_positions_paginated_response import StakingPositionsPaginatedResponse from fireblocks.models.staking_provider import StakingProvider from fireblocks.models.status import Status @@ -927,6 +928,7 @@ 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.tag_type import TagType from fireblocks.models.tags_paged_response import TagsPagedResponse from fireblocks.models.templates_paginated_response import TemplatesPaginatedResponse from fireblocks.models.third_party_routing import ThirdPartyRouting @@ -1054,6 +1056,7 @@ from fireblocks.models.update_vault_account_request import UpdateVaultAccountRequest from fireblocks.models.update_webhook_request import UpdateWebhookRequest from fireblocks.models.us_wire_payment_info import UsWirePaymentInfo +from fireblocks.models.usdc_gateway_wallet_asset import UsdcGatewayWalletAsset from fireblocks.models.usdc_gateway_wallet_info_response import UsdcGatewayWalletInfoResponse from fireblocks.models.usdc_gateway_wallet_status_response import UsdcGatewayWalletStatusResponse from fireblocks.models.user_group_create_request import UserGroupCreateRequest diff --git a/fireblocks/models/audit_log_data.py b/fireblocks/models/audit_log_data.py index 8a206ea1..964716ac 100644 --- a/fireblocks/models/audit_log_data.py +++ b/fireblocks/models/audit_log_data.py @@ -33,9 +33,10 @@ class AuditLogData(BaseModel): user: Optional[StrictStr] = Field(default=None, description="The user who performed the action") subject: Optional[StrictStr] = Field(default=None, description="The subject of the action") event: Optional[StrictStr] = Field(default=None, description="The event that was performed") + category: Optional[StrictStr] = Field(default=None, description="The category of the audit event") tenant_id: Optional[StrictStr] = Field(default=None, description="The tenant ID of the audit log", alias="tenantId") user_id: Optional[StrictStr] = Field(default=None, description="The user ID of the audit log", alias="userId") - __properties: ClassVar[List[str]] = ["id", "timestamp", "createdAt", "user", "subject", "event", "tenantId", "userId"] + __properties: ClassVar[List[str]] = ["id", "timestamp", "createdAt", "user", "subject", "event", "category", "tenantId", "userId"] model_config = ConfigDict( populate_by_name=True, @@ -94,6 +95,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "user": obj.get("user"), "subject": obj.get("subject"), "event": obj.get("event"), + "category": obj.get("category"), "tenantId": obj.get("tenantId"), "userId": obj.get("userId") }) diff --git a/fireblocks/models/collection_ownership_response.py b/fireblocks/models/collection_ownership_response.py index 6348c992..1b921331 100644 --- a/fireblocks/models/collection_ownership_response.py +++ b/fireblocks/models/collection_ownership_response.py @@ -38,8 +38,8 @@ class CollectionOwnershipResponse(BaseModel): @field_validator('blockchain_descriptor') def blockchain_descriptor_validate_enum(cls, value): """Validates the enum""" - if value not in set(['ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX', 'KLAY_KAIA', 'KLAY_KAIA_TEST', 'APECHAIN', 'APECHAIN_TEST', 'CRONOS', 'CRONOS_TEST', 'ROBINHOOD_CHAIN_TESTNET_TEST']): - raise ValueError("must be one of enum values ('ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX', 'KLAY_KAIA', 'KLAY_KAIA_TEST', 'APECHAIN', 'APECHAIN_TEST', 'CRONOS', 'CRONOS_TEST', 'ROBINHOOD_CHAIN_TESTNET_TEST')") + if value not in set(['ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX', 'KLAY_KAIA', 'KLAY_KAIA_TEST', 'APECHAIN', 'APECHAIN_TEST', 'CRONOS', 'CRONOS_TEST', 'ROBINHOOD_CHAIN_TESTNET_TEST', 'ARB']): + raise ValueError("must be one of enum values ('ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX', 'KLAY_KAIA', 'KLAY_KAIA_TEST', 'APECHAIN', 'APECHAIN_TEST', 'CRONOS', 'CRONOS_TEST', 'ROBINHOOD_CHAIN_TESTNET_TEST', 'ARB')") return value model_config = ConfigDict( diff --git a/fireblocks/models/create_tag_request.py b/fireblocks/models/create_tag_request.py index 8a7fa223..49b2f0ac 100644 --- a/fireblocks/models/create_tag_request.py +++ b/fireblocks/models/create_tag_request.py @@ -21,6 +21,7 @@ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr from typing import Any, ClassVar, Dict, List, Optional from typing_extensions import Annotated +from fireblocks.models.tag_type import TagType from typing import Optional, Set from typing_extensions import Self @@ -32,7 +33,8 @@ class CreateTagRequest(BaseModel): description: Optional[Annotated[str, Field(strict=True, max_length=250)]] = Field(default=None, description="Description for the tag") color: Optional[StrictStr] = Field(default=None, description="The tag color in hex format") is_protected: Optional[StrictBool] = Field(default=False, description="Indication if the tag is protected tag", alias="isProtected") - __properties: ClassVar[List[str]] = ["label", "description", "color", "isProtected"] + type: Optional[TagType] = None + __properties: ClassVar[List[str]] = ["label", "description", "color", "isProtected", "type"] model_config = ConfigDict( populate_by_name=True, @@ -88,7 +90,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "label": obj.get("label"), "description": obj.get("description"), "color": obj.get("color"), - "isProtected": obj.get("isProtected") if obj.get("isProtected") is not None else False + "isProtected": obj.get("isProtected") if obj.get("isProtected") is not None else False, + "type": obj.get("type") }) return _obj diff --git a/fireblocks/models/exchange_asset.py b/fireblocks/models/exchange_asset.py index 7fde8ae0..1741a927 100644 --- a/fireblocks/models/exchange_asset.py +++ b/fireblocks/models/exchange_asset.py @@ -27,16 +27,16 @@ class ExchangeAsset(BaseModel): """ ExchangeAsset """ # noqa: E501 - id: Optional[StrictStr] = None + id: Optional[StrictStr] = Field(default=None, description="Deprecated. Use assetId or assetLegacyId instead.") balance: Optional[StrictStr] = None locked_amount: Optional[StrictStr] = Field(default=None, alias="lockedAmount") total: Optional[StrictStr] = None available: Optional[StrictStr] = None credit: Optional[StrictStr] = None - asset_id: Optional[StrictStr] = Field(default=None, description="The id of the asset", alias="assetId") - provider_symbol: Optional[StrictStr] = Field(default=None, description="The provider symbol of the asset", alias="providerSymbol") - asset_symbol: Optional[StrictStr] = Field(default=None, description="The asset symbol of the asset", alias="assetSymbol") - asset_legacy_id: Optional[StrictStr] = Field(default=None, description="The asset legacy id of the asset", alias="assetLegacyId") + asset_id: Optional[StrictStr] = Field(default=None, description="The Fireblocks asset id. Present only when Fireblocks can identify the exchange asset.", alias="assetId") + provider_symbol: Optional[StrictStr] = Field(default=None, description="The symbol used by the exchange provider to identify the asset.", alias="providerSymbol") + asset_symbol: Optional[StrictStr] = Field(default=None, description="The Fireblocks asset symbol. Present only when Fireblocks can identify the exchange asset.", alias="assetSymbol") + asset_legacy_id: Optional[StrictStr] = Field(default=None, description="The Fireblocks legacy asset id. Present only when Fireblocks can identify the exchange asset.", alias="assetLegacyId") __properties: ClassVar[List[str]] = ["id", "balance", "lockedAmount", "total", "available", "credit", "assetId", "providerSymbol", "assetSymbol", "assetLegacyId"] model_config = ConfigDict( diff --git a/fireblocks/models/get_audit_logs_response.py b/fireblocks/models/get_audit_logs_response.py index 257fbc02..05fa387c 100644 --- a/fireblocks/models/get_audit_logs_response.py +++ b/fireblocks/models/get_audit_logs_response.py @@ -18,8 +18,8 @@ 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 pydantic import BaseModel, ConfigDict, Field, StrictStr +from typing import Any, ClassVar, Dict, List, Optional from fireblocks.models.audit_log_data import AuditLogData from typing import Optional, Set from typing_extensions import Self @@ -29,9 +29,9 @@ class GetAuditLogsResponse(BaseModel): GetAuditLogsResponse """ # noqa: E501 data: Optional[List[AuditLogData]] = None - cursor: Optional[StrictStr] = Field(default=None, description="The next id to start fetch audit logs from") - total: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="The total number of audit logs") - __properties: ClassVar[List[str]] = ["data", "cursor", "total"] + next: Optional[StrictStr] = Field(default=None, description="Cursor to pass as pageCursor in the next request. Null when no further pages exist.") + cursor: Optional[StrictStr] = Field(default=None, description="Deprecated. Use next instead.") + __properties: ClassVar[List[str]] = ["data", "next", "cursor"] model_config = ConfigDict( populate_by_name=True, @@ -79,6 +79,11 @@ def to_dict(self) -> Dict[str, Any]: if _item_data: _items.append(_item_data.to_dict()) _dict['data'] = _items + # set to None if next (nullable) is None + # and model_fields_set contains the field + if self.next is None and "next" in self.model_fields_set: + _dict['next'] = None + # set to None if cursor (nullable) is None # and model_fields_set contains the field if self.cursor is None and "cursor" in self.model_fields_set: @@ -97,8 +102,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: _obj = cls.model_validate({ "data": [AuditLogData.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, - "cursor": obj.get("cursor"), - "total": obj.get("total") + "next": obj.get("next"), + "cursor": obj.get("cursor") }) return _obj diff --git a/fireblocks/models/public_key_information.py b/fireblocks/models/public_key_information.py index bdff2230..877c3a5e 100644 --- a/fireblocks/models/public_key_information.py +++ b/fireblocks/models/public_key_information.py @@ -38,8 +38,8 @@ def algorithm_validate_enum(cls, value): if value is None: return value - if value not in set(['MPC_ECDSA_SECP256K1', 'MPC_ECDSA_SECP256R1', 'MPC_EDDSA_ED25519']): - raise ValueError("must be one of enum values ('MPC_ECDSA_SECP256K1', 'MPC_ECDSA_SECP256R1', 'MPC_EDDSA_ED25519')") + if value not in set(['MPC_ECDSA_SECP256K1', 'MPC_EDDSA_ED25519']): + raise ValueError("must be one of enum values ('MPC_ECDSA_SECP256K1', 'MPC_EDDSA_ED25519')") return value model_config = ConfigDict( diff --git a/fireblocks/models/staking_error_schema.py b/fireblocks/models/staking_error_schema.py new file mode 100644 index 00000000..1842d078 --- /dev/null +++ b/fireblocks/models/staking_error_schema.py @@ -0,0 +1,92 @@ +# coding: utf-8 + +""" + Fireblocks API + + Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + + The version of the OpenAPI document: 1.6.2 + Contact: developers@fireblocks.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional, Union +from typing import Optional, Set +from typing_extensions import Self + +class StakingErrorSchema(BaseModel): + """ + StakingErrorSchema + """ # noqa: E501 + message: StrictStr = Field(description="Human-readable error message.") + code: Union[StrictFloat, StrictInt] = Field(description="Numeric error code identifying the type of error.") + descriptor: Optional[StrictStr] = Field(default=None, description="Additional structured context about the error.") + __properties: ClassVar[List[str]] = ["message", "code", "descriptor"] + + 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 StakingErrorSchema 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 StakingErrorSchema from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "message": obj.get("message"), + "code": obj.get("code"), + "descriptor": obj.get("descriptor") + }) + return _obj + + diff --git a/fireblocks/models/tag.py b/fireblocks/models/tag.py index 3692e23c..edf7ee9d 100644 --- a/fireblocks/models/tag.py +++ b/fireblocks/models/tag.py @@ -21,6 +21,7 @@ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr from typing import Any, ClassVar, Dict, List, Optional, Union from fireblocks.models.approval_request import ApprovalRequest +from fireblocks.models.tag_type import TagType from typing import Optional, Set from typing_extensions import Self @@ -34,8 +35,9 @@ class Tag(BaseModel): color: Optional[StrictStr] = Field(default=None, description="The tag color in hex format") is_protected: StrictBool = Field(description="Indication if the tag is a protected tag", alias="isProtected") updated_at: Union[StrictFloat, StrictInt] = Field(description="The date and time the tag was last updated", alias="updatedAt") + type: Optional[TagType] = None pending_approval_request: Optional[ApprovalRequest] = Field(default=None, alias="pendingApprovalRequest") - __properties: ClassVar[List[str]] = ["id", "label", "description", "color", "isProtected", "updatedAt", "pendingApprovalRequest"] + __properties: ClassVar[List[str]] = ["id", "label", "description", "color", "isProtected", "updatedAt", "type", "pendingApprovalRequest"] model_config = ConfigDict( populate_by_name=True, @@ -97,6 +99,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "color": obj.get("color"), "isProtected": obj.get("isProtected") if obj.get("isProtected") is not None else False, "updatedAt": obj.get("updatedAt"), + "type": obj.get("type"), "pendingApprovalRequest": ApprovalRequest.from_dict(obj["pendingApprovalRequest"]) if obj.get("pendingApprovalRequest") is not None else None }) return _obj diff --git a/fireblocks/models/tag_type.py b/fireblocks/models/tag_type.py new file mode 100644 index 00000000..421750cd --- /dev/null +++ b/fireblocks/models/tag_type.py @@ -0,0 +1,37 @@ +# coding: utf-8 + +""" + Fireblocks API + + Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + + The version of the OpenAPI document: 1.6.2 + Contact: developers@fireblocks.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import json +from enum import Enum +from typing_extensions import Self + + +class TagType(str, Enum): + """ + The tag type, indicating the domain that owns the tag + """ + + """ + allowed enum values + """ + WALLET_POOL = 'WALLET_POOL' + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Create an instance of TagType from a JSON string""" + return cls(json.loads(json_str)) + + diff --git a/fireblocks/models/token_ownership_response.py b/fireblocks/models/token_ownership_response.py index 20a369f3..8c722e0f 100644 --- a/fireblocks/models/token_ownership_response.py +++ b/fireblocks/models/token_ownership_response.py @@ -53,8 +53,8 @@ class TokenOwnershipResponse(BaseModel): @field_validator('blockchain_descriptor') def blockchain_descriptor_validate_enum(cls, value): """Validates the enum""" - if value not in set(['ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX', 'KLAY_KAIA', 'KLAY_KAIA_TEST', 'APECHAIN', 'APECHAIN_TEST', 'CRONOS', 'CRONOS_TEST', 'ROBINHOOD_CHAIN_TESTNET_TEST']): - raise ValueError("must be one of enum values ('ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX', 'KLAY_KAIA', 'KLAY_KAIA_TEST', 'APECHAIN', 'APECHAIN_TEST', 'CRONOS', 'CRONOS_TEST', 'ROBINHOOD_CHAIN_TESTNET_TEST')") + if value not in set(['ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX', 'KLAY_KAIA', 'KLAY_KAIA_TEST', 'APECHAIN', 'APECHAIN_TEST', 'CRONOS', 'CRONOS_TEST', 'ROBINHOOD_CHAIN_TESTNET_TEST', 'ARB']): + raise ValueError("must be one of enum values ('ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX', 'KLAY_KAIA', 'KLAY_KAIA_TEST', 'APECHAIN', 'APECHAIN_TEST', 'CRONOS', 'CRONOS_TEST', 'ROBINHOOD_CHAIN_TESTNET_TEST', 'ARB')") return value @field_validator('status') diff --git a/fireblocks/models/token_response.py b/fireblocks/models/token_response.py index 75c12e9e..51d073b0 100644 --- a/fireblocks/models/token_response.py +++ b/fireblocks/models/token_response.py @@ -46,8 +46,8 @@ class TokenResponse(BaseModel): @field_validator('blockchain_descriptor') def blockchain_descriptor_validate_enum(cls, value): """Validates the enum""" - if value not in set(['ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX', 'KLAY_KAIA', 'KLAY_KAIA_TEST', 'APECHAIN', 'APECHAIN_TEST', 'CRONOS', 'CRONOS_TEST', 'ROBINHOOD_CHAIN_TESTNET_TEST']): - raise ValueError("must be one of enum values ('ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX', 'KLAY_KAIA', 'KLAY_KAIA_TEST', 'APECHAIN', 'APECHAIN_TEST', 'CRONOS', 'CRONOS_TEST', 'ROBINHOOD_CHAIN_TESTNET_TEST')") + if value not in set(['ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX', 'KLAY_KAIA', 'KLAY_KAIA_TEST', 'APECHAIN', 'APECHAIN_TEST', 'CRONOS', 'CRONOS_TEST', 'ROBINHOOD_CHAIN_TESTNET_TEST', 'ARB']): + raise ValueError("must be one of enum values ('ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX', 'KLAY_KAIA', 'KLAY_KAIA_TEST', 'APECHAIN', 'APECHAIN_TEST', 'CRONOS', 'CRONOS_TEST', 'ROBINHOOD_CHAIN_TESTNET_TEST', 'ARB')") return value model_config = ConfigDict( diff --git a/fireblocks/models/update_tag_request.py b/fireblocks/models/update_tag_request.py index 28d65955..7a4b1b1b 100644 --- a/fireblocks/models/update_tag_request.py +++ b/fireblocks/models/update_tag_request.py @@ -29,7 +29,8 @@ class UpdateTagRequest(BaseModel): """ # noqa: E501 label: Optional[StrictStr] = Field(default=None, description="The tag label") description: Optional[StrictStr] = Field(default=None, description="Description for the tag") - __properties: ClassVar[List[str]] = ["label", "description"] + color: Optional[StrictStr] = Field(default=None, description="The tag color in hex format") + __properties: ClassVar[List[str]] = ["label", "description", "color"] model_config = ConfigDict( populate_by_name=True, @@ -83,7 +84,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: _obj = cls.model_validate({ "label": obj.get("label"), - "description": obj.get("description") + "description": obj.get("description"), + "color": obj.get("color") }) return _obj diff --git a/fireblocks/models/usdc_gateway_wallet_asset.py b/fireblocks/models/usdc_gateway_wallet_asset.py new file mode 100644 index 00000000..8792f53d --- /dev/null +++ b/fireblocks/models/usdc_gateway_wallet_asset.py @@ -0,0 +1,94 @@ +# coding: utf-8 + +""" + Fireblocks API + + Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + + The version of the OpenAPI document: 1.6.2 + Contact: developers@fireblocks.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictStr +from typing import Any, ClassVar, Dict, List +from typing import Optional, Set +from typing_extensions import Self + +class UsdcGatewayWalletAsset(BaseModel): + """ + UsdcGatewayWalletAsset + """ # noqa: E501 + id: StrictStr = Field(description="Fireblocks asset ID") + balance: StrictStr = Field(description="Asset balance") + chain: StrictStr = Field(description="Blockchain name") + network: StrictStr = Field(description="Network name") + __properties: ClassVar[List[str]] = ["id", "balance", "chain", "network"] + + 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 UsdcGatewayWalletAsset 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 UsdcGatewayWalletAsset 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"), + "balance": obj.get("balance"), + "chain": obj.get("chain"), + "network": obj.get("network") + }) + return _obj + + diff --git a/fireblocks/models/usdc_gateway_wallet_info_response.py b/fireblocks/models/usdc_gateway_wallet_info_response.py index f63685a7..d8dc3d78 100644 --- a/fireblocks/models/usdc_gateway_wallet_info_response.py +++ b/fireblocks/models/usdc_gateway_wallet_info_response.py @@ -20,6 +20,7 @@ from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator from typing import Any, ClassVar, Dict, List +from fireblocks.models.usdc_gateway_wallet_asset import UsdcGatewayWalletAsset from typing import Optional, Set from typing_extensions import Self @@ -31,8 +32,10 @@ class UsdcGatewayWalletInfoResponse(BaseModel): type: StrictStr = Field(description="The USDC Gateway provider identifier") status: StrictStr = Field(description="Current activation status of the USDC Gateway wallet") symbol: StrictStr = Field(description="The token symbol supported by this wallet (e.g. USDC)") - asset_ids: List[StrictStr] = Field(description="Fireblocks asset IDs available for this wallet", alias="assetIds") - __properties: ClassVar[List[str]] = ["walletId", "type", "status", "symbol", "assetIds"] + total_balance: StrictStr = Field(description="Aggregate USDC balance across all assets", alias="totalBalance") + assets: List[UsdcGatewayWalletAsset] = Field(description="Per-chain USDC asset balances") + virtual_asset_id: StrictStr = Field(description="The id of the virtual asset", alias="virtualAssetId") + __properties: ClassVar[List[str]] = ["walletId", "type", "status", "symbol", "totalBalance", "assets", "virtualAssetId"] @field_validator('status') def status_validate_enum(cls, value): @@ -80,6 +83,13 @@ def to_dict(self) -> Dict[str, Any]: exclude=excluded_fields, exclude_none=True, ) + # override the default output from pydantic by calling `to_dict()` of each item in assets (list) + _items = [] + if self.assets: + for _item_assets in self.assets: + if _item_assets: + _items.append(_item_assets.to_dict()) + _dict['assets'] = _items return _dict @classmethod @@ -96,7 +106,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "type": obj.get("type"), "status": obj.get("status"), "symbol": obj.get("symbol"), - "assetIds": obj.get("assetIds") + "totalBalance": obj.get("totalBalance"), + "assets": [UsdcGatewayWalletAsset.from_dict(_item) for _item in obj["assets"]] if obj.get("assets") is not None else None, + "virtualAssetId": obj.get("virtualAssetId") }) return _obj diff --git a/pyproject.toml b/pyproject.toml index ffacc71d..08a27f53 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "fireblocks" -version = "19.0.0" +version = "0.0.0" description = "Fireblocks API" authors = ["Fireblocks "] license = "MIT License" diff --git a/setup.py b/setup.py index 6862de0e..8e55f57b 100644 --- a/setup.py +++ b/setup.py @@ -23,7 +23,7 @@ # prerequisite: setuptools # http://pypi.python.org/pypi/setuptools NAME = "fireblocks" -VERSION = "19.0.0" +VERSION = "0.0.0" PYTHON_REQUIRES = ">= 3.8" REQUIRES = [ "urllib3 >= 2.1.0, < 3.0.0", diff --git a/test/test_audit_log_data.py b/test/test_audit_log_data.py index ada1a5e2..f817a71f 100644 --- a/test/test_audit_log_data.py +++ b/test/test_audit_log_data.py @@ -43,6 +43,7 @@ def make_instance(self, include_optional) -> AuditLogData: user = '', subject = '', event = '', + category = 'Administration', tenant_id = '', user_id = '' ) diff --git a/test/test_create_tag_request.py b/test/test_create_tag_request.py index e2dad6d7..5e44a84c 100644 --- a/test/test_create_tag_request.py +++ b/test/test_create_tag_request.py @@ -40,7 +40,8 @@ def make_instance(self, include_optional) -> CreateTagRequest: label = 'VIP', description = 'Tag for VIP customers', color = '#FF5733', - is_protected = True + is_protected = True, + type = 'WALLET_POOL' ) else: return CreateTagRequest( diff --git a/test/test_get_audit_logs_response.py b/test/test_get_audit_logs_response.py index 9443b0d4..4ae9f4bb 100644 --- a/test/test_get_audit_logs_response.py +++ b/test/test_get_audit_logs_response.py @@ -45,11 +45,12 @@ def make_instance(self, include_optional) -> GetAuditLogsResponse: user = '', subject = '', event = '', + category = 'Administration', tenant_id = '', user_id = '', ) ], - cursor = '', - total = 1.337 + next = 'eyJpZCI6IjEyMzQ1NiJ9', + cursor = '' ) else: return GetAuditLogsResponse( diff --git a/test/test_staking_error_schema.py b/test/test_staking_error_schema.py new file mode 100644 index 00000000..46258c64 --- /dev/null +++ b/test/test_staking_error_schema.py @@ -0,0 +1,58 @@ +# coding: utf-8 + +""" +Fireblocks API + +Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + +The version of the OpenAPI document: 1.6.2 +Contact: developers@fireblocks.com +Generated by OpenAPI Generator (https://openapi-generator.tech) + +Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from fireblocks.models.staking_error_schema import StakingErrorSchema + + +class TestStakingErrorSchema(unittest.TestCase): + """StakingErrorSchema unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> StakingErrorSchema: + """Test StakingErrorSchema + 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 `StakingErrorSchema` + """ + model = StakingErrorSchema() + if include_optional: + return StakingErrorSchema( + message = 'Couldn't find position with id: abc-123', + code = 3310, + descriptor = '{"positionId":"abc-123"}' + ) + else: + return StakingErrorSchema( + message = 'Couldn't find position with id: abc-123', + code = 3310, + ) + """ + + def testStakingErrorSchema(self): + """Test StakingErrorSchema""" + # 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 e776ce73..e7726046 100644 --- a/test/test_tag.py +++ b/test/test_tag.py @@ -43,6 +43,7 @@ def make_instance(self, include_optional) -> Tag: color = '#FF5733', is_protected = True, updated_at = 1717084800000, + type = 'WALLET_POOL', pending_approval_request = fireblocks.models.approval_request.ApprovalRequest( id = '12345', type = 'TAG_UPDATE', diff --git a/test/test_tag_type.py b/test/test_tag_type.py new file mode 100644 index 00000000..feb7edea --- /dev/null +++ b/test/test_tag_type.py @@ -0,0 +1,36 @@ +# coding: utf-8 + +""" +Fireblocks API + +Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + +The version of the OpenAPI document: 1.6.2 +Contact: developers@fireblocks.com +Generated by OpenAPI Generator (https://openapi-generator.tech) + +Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from fireblocks.models.tag_type import TagType + + +class TestTagType(unittest.TestCase): + """TagType unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def testTagType(self): + """Test TagType""" + # inst = TagType() + + +if __name__ == "__main__": + unittest.main() diff --git a/test/test_tags_paged_response.py b/test/test_tags_paged_response.py index 6578a0b1..a74be7fb 100644 --- a/test/test_tags_paged_response.py +++ b/test/test_tags_paged_response.py @@ -45,6 +45,7 @@ def make_instance(self, include_optional) -> TagsPagedResponse: color = '#FF5733', is_protected = True, updated_at = 1717084800000, + type = 'WALLET_POOL', pending_approval_request = fireblocks.models.approval_request.ApprovalRequest( id = '12345', type = 'TAG_UPDATE', @@ -62,6 +63,7 @@ def make_instance(self, include_optional) -> TagsPagedResponse: color = '#FF5733', is_protected = True, updated_at = 1717084800000, + type = 'WALLET_POOL', pending_approval_request = fireblocks.models.approval_request.ApprovalRequest( id = '12345', type = 'TAG_UPDATE', diff --git a/test/test_update_tag_request.py b/test/test_update_tag_request.py index 0164a321..e24f7a98 100644 --- a/test/test_update_tag_request.py +++ b/test/test_update_tag_request.py @@ -38,7 +38,8 @@ def make_instance(self, include_optional) -> UpdateTagRequest: if include_optional: return UpdateTagRequest( label = 'VIP', - description = 'Tag for VIP customers' + description = 'Tag for VIP customers', + color = '#FF5733' ) else: return UpdateTagRequest( diff --git a/test/test_usdc_gateway_wallet_asset.py b/test/test_usdc_gateway_wallet_asset.py new file mode 100644 index 00000000..a085965e --- /dev/null +++ b/test/test_usdc_gateway_wallet_asset.py @@ -0,0 +1,61 @@ +# coding: utf-8 + +""" +Fireblocks API + +Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) + +The version of the OpenAPI document: 1.6.2 +Contact: developers@fireblocks.com +Generated by OpenAPI Generator (https://openapi-generator.tech) + +Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from fireblocks.models.usdc_gateway_wallet_asset import UsdcGatewayWalletAsset + + +class TestUsdcGatewayWalletAsset(unittest.TestCase): + """UsdcGatewayWalletAsset unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> UsdcGatewayWalletAsset: + """Test UsdcGatewayWalletAsset + 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 `UsdcGatewayWalletAsset` + """ + model = UsdcGatewayWalletAsset() + if include_optional: + return UsdcGatewayWalletAsset( + id = 'USDC', + balance = '100', + chain = 'Ethereum', + network = 'Mainnet' + ) + else: + return UsdcGatewayWalletAsset( + id = 'USDC', + balance = '100', + chain = 'Ethereum', + network = 'Mainnet', + ) + """ + + def testUsdcGatewayWalletAsset(self): + """Test UsdcGatewayWalletAsset""" + # 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_usdc_gateway_wallet_info_response.py b/test/test_usdc_gateway_wallet_info_response.py index e97de710..904083ed 100644 --- a/test/test_usdc_gateway_wallet_info_response.py +++ b/test/test_usdc_gateway_wallet_info_response.py @@ -43,7 +43,9 @@ def make_instance(self, include_optional) -> UsdcGatewayWalletInfoResponse: type = 'CIRCLEGATEWAY', status = 'ACTIVATED', symbol = 'USDC', - asset_ids = ["USDC"] + total_balance = '150', + assets = [{"id":"USDC","balance":"100","chain":"Ethereum","network":"Mainnet"}], + virtual_asset_id = '0e7e2ab4-544e-40aa-a7d2-93b6f6a1516e' ) else: return UsdcGatewayWalletInfoResponse( @@ -51,7 +53,9 @@ def make_instance(self, include_optional) -> UsdcGatewayWalletInfoResponse: type = 'CIRCLEGATEWAY', status = 'ACTIVATED', symbol = 'USDC', - asset_ids = ["USDC"], + total_balance = '150', + assets = [{"id":"USDC","balance":"100","chain":"Ethereum","network":"Mainnet"}], + virtual_asset_id = '0e7e2ab4-544e-40aa-a7d2-93b6f6a1516e', ) """ diff --git a/test/test_vault_account.py b/test/test_vault_account.py index b026f834..67e13537 100644 --- a/test/test_vault_account.py +++ b/test/test_vault_account.py @@ -71,6 +71,7 @@ def make_instance(self, include_optional) -> VaultAccount: color = '#FF5733', is_protected = True, updated_at = 1717084800000, + type = 'WALLET_POOL', pending_approval_request = fireblocks.models.approval_request.ApprovalRequest( id = '12345', type = 'TAG_UPDATE', diff --git a/test/test_vault_accounts_paged_response.py b/test/test_vault_accounts_paged_response.py index 97c004c6..f5f3a60a 100644 --- a/test/test_vault_accounts_paged_response.py +++ b/test/test_vault_accounts_paged_response.py @@ -73,6 +73,7 @@ def make_instance(self, include_optional) -> VaultAccountsPagedResponse: color = '#FF5733', is_protected = True, updated_at = 1717084800000, + type = 'WALLET_POOL', pending_approval_request = fireblocks.models.approval_request.ApprovalRequest( id = '12345', type = 'TAG_UPDATE',