diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES index 834459bc..a2864c7a 100644 --- a/.openapi-generator/FILES +++ b/.openapi-generator/FILES @@ -100,9 +100,8 @@ docs/AmountOverTimeConfig.md docs/AmountRange.md docs/AmountRangeMinMax.md docs/AmountRangeMinMax2.md -docs/ApiKey.md -docs/ApiKeysPaginatedResponse.md docs/ApiUserApi.md +docs/ApiUsersPaginatedResponse.md docs/ApprovalApiKey.md docs/ApprovalApiPublicKey.md docs/ApprovalRequest.md @@ -315,7 +314,8 @@ docs/ConversionValidationFailure.md docs/ConvertAssetsRequest.md docs/ConvertAssetsResponse.md docs/Cosigner.md -docs/CosignersBetaApi.md +docs/CosignerApiUser.md +docs/CosignersApi.md docs/CosignersPaginatedResponse.md docs/CounterpartyGroup.md docs/CounterpartyGroupsPaginatedResponse.md @@ -605,8 +605,8 @@ docs/InternalWalletsApi.md docs/InvalidParamaterValueError.md docs/IssueApiUserPairingTokenResponse.md docs/JobCreated.md -docs/KeyLinkBetaApi.md -docs/KeysBetaApi.md +docs/KeyLinkApi.md +docs/KeysApi.md docs/LayerZeroAdapterCreateParams.md docs/LbtPaymentInfo.md docs/LeanAbiFunction.md @@ -748,8 +748,8 @@ docs/PaginatedAssetWalletResponse.md docs/PaginatedAssetWalletResponsePaging.md docs/PaginatedAssetsResponse.md docs/Paging.md -docs/PairApiKeyRequest.md -docs/PairApiKeyResponse.md +docs/PairApiUserRequest.md +docs/PairApiUserResponse.md docs/Parameter.md docs/ParameterWithValue.md docs/ParticipantOnboardingPayload.md @@ -1089,6 +1089,7 @@ docs/TRLinkManualDecisionAction.md docs/TRLinkManualDecisionDestinationDetail.md docs/TRLinkManualDecisionRequest.md docs/TRLinkManualDecisionResponse.md +docs/TRLinkManualDecisionResponseStatusEnum.md docs/TRLinkManualDecisionSource.md docs/TRLinkMissingTrmAction.md docs/TRLinkMissingTrmAction2.md @@ -1430,7 +1431,7 @@ src/main/java/com/fireblocks/sdk/api/ContactsApi.java src/main/java/com/fireblocks/sdk/api/ContractInteractionsApi.java src/main/java/com/fireblocks/sdk/api/ContractTemplatesApi.java src/main/java/com/fireblocks/sdk/api/ContractsApi.java -src/main/java/com/fireblocks/sdk/api/CosignersBetaApi.java +src/main/java/com/fireblocks/sdk/api/CosignersApi.java src/main/java/com/fireblocks/sdk/api/DeployedContractsApi.java src/main/java/com/fireblocks/sdk/api/EarnApi.java src/main/java/com/fireblocks/sdk/api/EmbeddedWalletsApi.java @@ -1440,8 +1441,8 @@ src/main/java/com/fireblocks/sdk/api/FiatAccountsApi.java src/main/java/com/fireblocks/sdk/api/GasStationsApi.java src/main/java/com/fireblocks/sdk/api/GenieBetaApi.java src/main/java/com/fireblocks/sdk/api/InternalWalletsApi.java -src/main/java/com/fireblocks/sdk/api/KeyLinkBetaApi.java -src/main/java/com/fireblocks/sdk/api/KeysBetaApi.java +src/main/java/com/fireblocks/sdk/api/KeyLinkApi.java +src/main/java/com/fireblocks/sdk/api/KeysApi.java src/main/java/com/fireblocks/sdk/api/NetworkConnectionsApi.java src/main/java/com/fireblocks/sdk/api/NftsApi.java src/main/java/com/fireblocks/sdk/api/OffExchangesApi.java @@ -1566,8 +1567,7 @@ src/main/java/com/fireblocks/sdk/model/AmountOverTimeConfig.java src/main/java/com/fireblocks/sdk/model/AmountRange.java src/main/java/com/fireblocks/sdk/model/AmountRangeMinMax.java src/main/java/com/fireblocks/sdk/model/AmountRangeMinMax2.java -src/main/java/com/fireblocks/sdk/model/ApiKey.java -src/main/java/com/fireblocks/sdk/model/ApiKeysPaginatedResponse.java +src/main/java/com/fireblocks/sdk/model/ApiUsersPaginatedResponse.java src/main/java/com/fireblocks/sdk/model/ApprovalApiKey.java src/main/java/com/fireblocks/sdk/model/ApprovalApiPublicKey.java src/main/java/com/fireblocks/sdk/model/ApprovalRequest.java @@ -1766,6 +1766,7 @@ src/main/java/com/fireblocks/sdk/model/ConversionValidationFailure.java src/main/java/com/fireblocks/sdk/model/ConvertAssetsRequest.java src/main/java/com/fireblocks/sdk/model/ConvertAssetsResponse.java src/main/java/com/fireblocks/sdk/model/Cosigner.java +src/main/java/com/fireblocks/sdk/model/CosignerApiUser.java src/main/java/com/fireblocks/sdk/model/CosignersPaginatedResponse.java src/main/java/com/fireblocks/sdk/model/CounterpartyGroup.java src/main/java/com/fireblocks/sdk/model/CounterpartyGroupsPaginatedResponse.java @@ -2182,8 +2183,8 @@ src/main/java/com/fireblocks/sdk/model/PaginatedAssetWalletResponse.java src/main/java/com/fireblocks/sdk/model/PaginatedAssetWalletResponsePaging.java src/main/java/com/fireblocks/sdk/model/PaginatedAssetsResponse.java src/main/java/com/fireblocks/sdk/model/Paging.java -src/main/java/com/fireblocks/sdk/model/PairApiKeyRequest.java -src/main/java/com/fireblocks/sdk/model/PairApiKeyResponse.java +src/main/java/com/fireblocks/sdk/model/PairApiUserRequest.java +src/main/java/com/fireblocks/sdk/model/PairApiUserResponse.java src/main/java/com/fireblocks/sdk/model/Parameter.java src/main/java/com/fireblocks/sdk/model/ParameterWithValue.java src/main/java/com/fireblocks/sdk/model/ParticipantOnboardingPayload.java @@ -2514,6 +2515,7 @@ src/main/java/com/fireblocks/sdk/model/TRLinkManualDecisionAction.java src/main/java/com/fireblocks/sdk/model/TRLinkManualDecisionDestinationDetail.java src/main/java/com/fireblocks/sdk/model/TRLinkManualDecisionRequest.java src/main/java/com/fireblocks/sdk/model/TRLinkManualDecisionResponse.java +src/main/java/com/fireblocks/sdk/model/TRLinkManualDecisionResponseStatusEnum.java src/main/java/com/fireblocks/sdk/model/TRLinkManualDecisionSource.java src/main/java/com/fireblocks/sdk/model/TRLinkMissingTrmAction.java src/main/java/com/fireblocks/sdk/model/TRLinkMissingTrmAction2.java @@ -2817,7 +2819,7 @@ src/test/java/com/fireblocks/sdk/api/ContactsApiTest.java src/test/java/com/fireblocks/sdk/api/ContractInteractionsApiTest.java src/test/java/com/fireblocks/sdk/api/ContractTemplatesApiTest.java src/test/java/com/fireblocks/sdk/api/ContractsApiTest.java -src/test/java/com/fireblocks/sdk/api/CosignersBetaApiTest.java +src/test/java/com/fireblocks/sdk/api/CosignersApiTest.java src/test/java/com/fireblocks/sdk/api/DeployedContractsApiTest.java src/test/java/com/fireblocks/sdk/api/EarnApiTest.java src/test/java/com/fireblocks/sdk/api/EmbeddedWalletsApiTest.java @@ -2827,8 +2829,8 @@ src/test/java/com/fireblocks/sdk/api/FiatAccountsApiTest.java src/test/java/com/fireblocks/sdk/api/GasStationsApiTest.java src/test/java/com/fireblocks/sdk/api/GenieBetaApiTest.java src/test/java/com/fireblocks/sdk/api/InternalWalletsApiTest.java -src/test/java/com/fireblocks/sdk/api/KeyLinkBetaApiTest.java -src/test/java/com/fireblocks/sdk/api/KeysBetaApiTest.java +src/test/java/com/fireblocks/sdk/api/KeyLinkApiTest.java +src/test/java/com/fireblocks/sdk/api/KeysApiTest.java src/test/java/com/fireblocks/sdk/api/NetworkConnectionsApiTest.java src/test/java/com/fireblocks/sdk/api/NftsApiTest.java src/test/java/com/fireblocks/sdk/api/OffExchangesApiTest.java @@ -2952,8 +2954,7 @@ src/test/java/com/fireblocks/sdk/model/AmountOverTimeConfigTest.java src/test/java/com/fireblocks/sdk/model/AmountRangeMinMax2Test.java src/test/java/com/fireblocks/sdk/model/AmountRangeMinMaxTest.java src/test/java/com/fireblocks/sdk/model/AmountRangeTest.java -src/test/java/com/fireblocks/sdk/model/ApiKeyTest.java -src/test/java/com/fireblocks/sdk/model/ApiKeysPaginatedResponseTest.java +src/test/java/com/fireblocks/sdk/model/ApiUsersPaginatedResponseTest.java src/test/java/com/fireblocks/sdk/model/ApprovalApiKeyTest.java src/test/java/com/fireblocks/sdk/model/ApprovalApiPublicKeyTest.java src/test/java/com/fireblocks/sdk/model/ApprovalRequestItemTest.java @@ -3151,6 +3152,7 @@ src/test/java/com/fireblocks/sdk/model/ConversionOperationTypeTest.java src/test/java/com/fireblocks/sdk/model/ConversionValidationFailureTest.java src/test/java/com/fireblocks/sdk/model/ConvertAssetsRequestTest.java src/test/java/com/fireblocks/sdk/model/ConvertAssetsResponseTest.java +src/test/java/com/fireblocks/sdk/model/CosignerApiUserTest.java src/test/java/com/fireblocks/sdk/model/CosignerTest.java src/test/java/com/fireblocks/sdk/model/CosignersPaginatedResponseTest.java src/test/java/com/fireblocks/sdk/model/CounterpartyGroupTest.java @@ -3568,8 +3570,8 @@ src/test/java/com/fireblocks/sdk/model/PaginatedAssetWalletResponsePagingTest.ja src/test/java/com/fireblocks/sdk/model/PaginatedAssetWalletResponseTest.java src/test/java/com/fireblocks/sdk/model/PaginatedAssetsResponseTest.java src/test/java/com/fireblocks/sdk/model/PagingTest.java -src/test/java/com/fireblocks/sdk/model/PairApiKeyRequestTest.java -src/test/java/com/fireblocks/sdk/model/PairApiKeyResponseTest.java +src/test/java/com/fireblocks/sdk/model/PairApiUserRequestTest.java +src/test/java/com/fireblocks/sdk/model/PairApiUserResponseTest.java src/test/java/com/fireblocks/sdk/model/ParameterTest.java src/test/java/com/fireblocks/sdk/model/ParameterWithValueTest.java src/test/java/com/fireblocks/sdk/model/ParticipantOnboardingPayloadTest.java @@ -3899,6 +3901,7 @@ src/test/java/com/fireblocks/sdk/model/TRLinkJwkPublicKeyTest.java src/test/java/com/fireblocks/sdk/model/TRLinkManualDecisionActionTest.java src/test/java/com/fireblocks/sdk/model/TRLinkManualDecisionDestinationDetailTest.java src/test/java/com/fireblocks/sdk/model/TRLinkManualDecisionRequestTest.java +src/test/java/com/fireblocks/sdk/model/TRLinkManualDecisionResponseStatusEnumTest.java src/test/java/com/fireblocks/sdk/model/TRLinkManualDecisionResponseTest.java src/test/java/com/fireblocks/sdk/model/TRLinkManualDecisionSourceTest.java src/test/java/com/fireblocks/sdk/model/TRLinkMissingTrmAction2Test.java diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 54b9f88b..00000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,239 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [v35.2.0](https://github.com/fireblocks/java-sdk/compare/v15.0.0...v35.2.0) - 2026-10-28 - -### Merged - -- Generated SDK #2999499117 [`#163`](https://github.com/fireblocks/java-sdk/pull/163) - -## [v15.0.0](https://github.com/fireblocks/java-sdk/compare/v14.1.0...v15.0.0) - 2026-03-15 - -### Merged - -- Generated SDK #3733 (major) [`#128`](https://github.com/fireblocks/java-sdk/pull/128) - -## [v14.1.0](https://github.com/fireblocks/java-sdk/compare/v14.0.0...v14.1.0) - 2026-02-26 - -### Merged - -- Generated SDK #2167 [`#126`](https://github.com/fireblocks/java-sdk/pull/126) - -## [v14.0.0](https://github.com/fireblocks/java-sdk/compare/v13.0.0...v14.0.0) - 2026-02-03 - -### Merged - -- Generated SDK #4746 [`#121`](https://github.com/fireblocks/java-sdk/pull/121) - -## [v13.0.0](https://github.com/fireblocks/java-sdk/compare/v12.1.3...v13.0.0) - 2025-11-13 - -### Merged - -- Generated SDK #5834 [`#116`](https://github.com/fireblocks/java-sdk/pull/116) - -## [v12.1.3](https://github.com/fireblocks/java-sdk/compare/v12.1.2...v12.1.3) - 2025-10-22 - -### Merged - -- Generated SDK #8293 [`#115`](https://github.com/fireblocks/java-sdk/pull/115) - -## [v12.1.2](https://github.com/fireblocks/java-sdk/compare/v12.1.1...v12.1.2) - 2025-09-29 - -### Merged - -- Generated SDK #6061 [`#113`](https://github.com/fireblocks/java-sdk/pull/113) - -## [v12.1.1](https://github.com/fireblocks/java-sdk/compare/v12.1.0...v12.1.1) - 2025-09-10 - -### Merged - -- Generated SDK #1410 [`#111`](https://github.com/fireblocks/java-sdk/pull/111) - -## [v12.1.0](https://github.com/fireblocks/java-sdk/compare/v12.0.0...v12.1.0) - 2025-09-09 - -### Merged - -- Generated SDK #4521 [`#109`](https://github.com/fireblocks/java-sdk/pull/109) - -## [v12.0.0](https://github.com/fireblocks/java-sdk/compare/v11.2.0...v12.0.0) - 2025-09-01 - -### Merged - -- Generated SDK #7741 [`#108`](https://github.com/fireblocks/java-sdk/pull/108) - -## [v11.2.0](https://github.com/fireblocks/java-sdk/compare/v11.1.0...v11.2.0) - 2025-08-21 - -### Merged - -- Generated SDK #3302 [`#107`](https://github.com/fireblocks/java-sdk/pull/107) - -## [v11.1.0](https://github.com/fireblocks/java-sdk/compare/v11.0.0...v11.1.0) - 2025-08-11 - -### Merged - -- Generated SDK #1782 [`#105`](https://github.com/fireblocks/java-sdk/pull/105) - -## [v11.0.0](https://github.com/fireblocks/java-sdk/compare/v10.4.0...v11.0.0) - 2025-07-15 - -### Merged - -- Generated SDK #5610 [`#103`](https://github.com/fireblocks/java-sdk/pull/103) - -## [v10.4.0](https://github.com/fireblocks/java-sdk/compare/v10.3.0...v10.4.0) - 2025-06-29 - -### Merged - -- Generated SDK #1492 [`#101`](https://github.com/fireblocks/java-sdk/pull/101) - -## [v10.3.0](https://github.com/fireblocks/java-sdk/compare/v10.2.0...v10.3.0) - 2025-06-18 - -### Merged - -- Generated SDK #4009 [`#99`](https://github.com/fireblocks/java-sdk/pull/99) - -## [v10.2.0](https://github.com/fireblocks/java-sdk/compare/v10.1.1...v10.2.0) - 2025-06-04 - -### Merged - -- Generated SDK #8912 [`#98`](https://github.com/fireblocks/java-sdk/pull/98) - -## [v10.1.1](https://github.com/fireblocks/java-sdk/compare/v10.1.0...v10.1.1) - 2025-05-18 - -### Merged - -- Generated SDK #5019 [`#97`](https://github.com/fireblocks/java-sdk/pull/97) - -## [v10.1.0](https://github.com/fireblocks/java-sdk/compare/v10.0.2...v10.1.0) - 2025-05-07 - -### Merged - -- Generated SDK #7076 [`#95`](https://github.com/fireblocks/java-sdk/pull/95) - -## [v10.0.2](https://github.com/fireblocks/java-sdk/compare/v10.0.1...v10.0.2) - 2025-04-20 - -### Merged - -- Generated SDK #4794 [`#94`](https://github.com/fireblocks/java-sdk/pull/94) - -## [v10.0.1](https://github.com/fireblocks/java-sdk/compare/v10.0.0...v10.0.1) - 2025-04-07 - -### Merged - -- Generated SDK #3065 [`#93`](https://github.com/fireblocks/java-sdk/pull/93) - -## [v10.0.0](https://github.com/fireblocks/java-sdk/compare/v9.0.0...v10.0.0) - 2025-03-30 - -### Merged - -- Generated SDK #619 [`#90`](https://github.com/fireblocks/java-sdk/pull/90) - -## [v9.0.0](https://github.com/fireblocks/java-sdk/compare/v8.1.0...v9.0.0) - 2025-03-17 - -### Merged - -- Generated SDK #645 [`#89`](https://github.com/fireblocks/java-sdk/pull/89) - -## [v8.1.0](https://github.com/fireblocks/java-sdk/compare/v8.0.1...v8.1.0) - 2025-02-24 - -### Merged - -- Generated SDK #9833 [`#84`](https://github.com/fireblocks/java-sdk/pull/84) - -## [v8.0.1](https://github.com/fireblocks/java-sdk/compare/v8.0.0...v8.0.1) - 2025-02-12 - -### Merged - -- Generated SDK #4262 [`#82`](https://github.com/fireblocks/java-sdk/pull/82) - -## [v8.0.0](https://github.com/fireblocks/java-sdk/compare/v7.0.0...v8.0.0) - 2025-02-02 - -### Merged - -- Generated SDK #538 [`#80`](https://github.com/fireblocks/java-sdk/pull/80) - -## [v7.0.0](https://github.com/fireblocks/java-sdk/compare/v6.0.0...v7.0.0) - 2025-01-08 - -### Merged - -- Generated SDK #8699 [`#77`](https://github.com/fireblocks/java-sdk/pull/77) - -## [v6.0.0](https://github.com/fireblocks/java-sdk/compare/v5.0.0...v6.0.0) - 2024-12-05 - -### Merged - -- Generated SDK #1430 [`#73`](https://github.com/fireblocks/java-sdk/pull/73) - -## [v5.0.0](https://github.com/fireblocks/java-sdk/compare/v4.0.0...v5.0.0) - 2024-10-31 - -### Merged - -- Generated SDK #5184 [`#71`](https://github.com/fireblocks/java-sdk/pull/71) - -## [v4.0.0](https://github.com/fireblocks/java-sdk/compare/v3.1.0...v4.0.0) - 2024-09-17 - -### Merged - -- Generated SDK #237 [`#70`](https://github.com/fireblocks/java-sdk/pull/70) - -## [v3.1.0](https://github.com/fireblocks/java-sdk/compare/v3.0.0...v3.1.0) - 2024-07-25 - -### Merged - -- Generated SDK #6749 [`#67`](https://github.com/fireblocks/java-sdk/pull/67) - -## [v3.0.0](https://github.com/fireblocks/java-sdk/compare/v2.1.0...v3.0.0) - 2024-07-17 - -### Merged - -- Generated SDK #6152 [`#65`](https://github.com/fireblocks/java-sdk/pull/65) -- Generated SDK #7984 [`#62`](https://github.com/fireblocks/java-sdk/pull/62) -- Generated SDK #2873 [`#61`](https://github.com/fireblocks/java-sdk/pull/61) - -## [v2.1.0](https://github.com/fireblocks/java-sdk/compare/v2.0.1...v2.1.0) - 2024-06-04 - -### Merged - -- Generated SDK for version COR-46191/fix_pipelines [`#24`](https://github.com/fireblocks/java-sdk/pull/24) -- Generated SDK for version COR-46191/fix_pipelines [`#23`](https://github.com/fireblocks/java-sdk/pull/23) -- Generated SDK for version COR-46191/fix_pipelines [`#22`](https://github.com/fireblocks/java-sdk/pull/22) -- Generated SDK for version COR-46191/fix_pipelines [`#21`](https://github.com/fireblocks/java-sdk/pull/21) - -## [v2.0.1](https://github.com/fireblocks/java-sdk/compare/v2.0.0...v2.0.1) - 2024-06-04 - -### Merged - -- Generated SDK for version COR-46191/fix_pipelines [`#20`](https://github.com/fireblocks/java-sdk/pull/20) - -## [v2.0.0](https://github.com/fireblocks/java-sdk/compare/v1.1.0...v2.0.0) - 2024-05-08 - -### Merged - -- feat: add tokenization api [`#12`](https://github.com/fireblocks/java-sdk/pull/12) - -## [v1.1.0](https://github.com/fireblocks/java-sdk/compare/v1.0.1...v1.1.0) - 2024-04-17 - -### Merged - -- feat: add cosigners beta api [`#11`](https://github.com/fireblocks/java-sdk/pull/11) -- fix: fix readme doc headline [`#10`](https://github.com/fireblocks/java-sdk/pull/10) - -## [v1.0.1](https://github.com/fireblocks/java-sdk/compare/v1.0.0...v1.0.1) - 2024-04-07 - -### Merged - -- Generated SDK for version v1.0.1 [`#9`](https://github.com/fireblocks/java-sdk/pull/9) - -## v1.0.0 - 2024-04-07 - -### Merged - -- Generated SDK for version v1.0.0 GA [`#8`](https://github.com/fireblocks/java-sdk/pull/8) -- v0.0.1-beta [`#6`](https://github.com/fireblocks/java-sdk/pull/6) -- Update GitHub Actions workflows [`#5`](https://github.com/fireblocks/java-sdk/pull/5) -- Generated #1189972817 [`#3`](https://github.com/fireblocks/java-sdk/pull/3) -- Add installation instructions [`#2`](https://github.com/fireblocks/java-sdk/pull/2) -- Added Idempotency & NCW headers support #6 [`#1`](https://github.com/fireblocks/java-sdk/pull/1) diff --git a/README.md b/README.md index 3bfdc806..1b68c16b 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ Add this dependency to your project's POM: com.fireblocks.sdk fireblocks-sdk - 35.2.0 + 0.0.0 compile ``` @@ -42,7 +42,7 @@ Add this dependency to your project's POM: Add this dependency to your project's build file: ```groovy -compile "com.fireblocks.sdk:fireblocks-sdk:35.2.0" +compile "com.fireblocks.sdk:fireblocks-sdk:0.0.0" ``` ### Others @@ -55,12 +55,12 @@ mvn clean package Then manually install the following JARs: -- `target/fireblocks-sdk-35.2.0.jar` +- `target/fireblocks-sdk-0.0.0.jar` - `target/lib/*.jar` ## Versioning -This SDK follows [semantic versioning](https://semver.org), with one exception: operations in the `beta` lifecycle state. Beta operations are not generally available and may not be accessible to all customers. They can change or be removed without notice. +This SDK follows [semantic versioning](https://semver.org), with one exception: operations in the `ea` (Early Availability, EA) lifecycle state. EA operations are not generally available and may not be accessible to all customers. They can change or break before they reach GA. ## Getting Started ### Initiate Fireblocks Client @@ -146,7 +146,7 @@ header, so it is always current - it does not depend on the SDK version you have installed. ``` -Operation 'createTransaction' is in 'beta' lifecycle state and is not generally available. It may change or be removed without notice. +Operation 'createTransaction' is in EA (Early Availability) and is not generally available. It may change or break before it reaches GA. ``` Deprecated operations report their sunset date, and the replacement and migration @@ -304,16 +304,16 @@ Class | Method | HTTP request | Description *ContractsApi* | [**getContract**](docs/ContractsApi.md#getContract) | **GET** /contracts/{contractId} | Find a Specific Whitelisted Contract *ContractsApi* | [**getContractAsset**](docs/ContractsApi.md#getContractAsset) | **GET** /contracts/{contractId}/{assetId} | Find a whitelisted contract's asset *ContractsApi* | [**getContracts**](docs/ContractsApi.md#getContracts) | **GET** /contracts | List Whitelisted Contracts -*CosignersBetaApi* | [**addCosigner**](docs/CosignersBetaApi.md#addCosigner) | **POST** /cosigners | Add cosigner -*CosignersBetaApi* | [**getApiKey**](docs/CosignersBetaApi.md#getApiKey) | **GET** /cosigners/{cosignerId}/api_keys/{apiKeyId} | Get API key -*CosignersBetaApi* | [**getApiKeys**](docs/CosignersBetaApi.md#getApiKeys) | **GET** /cosigners/{cosignerId}/api_keys | Get all API keys -*CosignersBetaApi* | [**getCosigner**](docs/CosignersBetaApi.md#getCosigner) | **GET** /cosigners/{cosignerId} | Get cosigner -*CosignersBetaApi* | [**getCosigners**](docs/CosignersBetaApi.md#getCosigners) | **GET** /cosigners | Get all cosigners -*CosignersBetaApi* | [**getRequestStatus**](docs/CosignersBetaApi.md#getRequestStatus) | **GET** /cosigners/{cosignerId}/api_keys/{apiKeyId}/{requestId} | Get request status -*CosignersBetaApi* | [**pairApiKey**](docs/CosignersBetaApi.md#pairApiKey) | **PUT** /cosigners/{cosignerId}/api_keys/{apiKeyId} | Pair API key -*CosignersBetaApi* | [**renameCosigner**](docs/CosignersBetaApi.md#renameCosigner) | **PATCH** /cosigners/{cosignerId} | Rename cosigner -*CosignersBetaApi* | [**unpairApiKey**](docs/CosignersBetaApi.md#unpairApiKey) | **DELETE** /cosigners/{cosignerId}/api_keys/{apiKeyId} | Unpair API key -*CosignersBetaApi* | [**updateCallbackHandler**](docs/CosignersBetaApi.md#updateCallbackHandler) | **PATCH** /cosigners/{cosignerId}/api_keys/{apiKeyId} | Update API key callback handler +*CosignersApi* | [**addCosigner**](docs/CosignersApi.md#addCosigner) | **POST** /cosigners | Add cosigner +*CosignersApi* | [**getCosigner**](docs/CosignersApi.md#getCosigner) | **GET** /cosigners/{cosignerId} | Get cosigner +*CosignersApi* | [**getCosignerApiUser**](docs/CosignersApi.md#getCosignerApiUser) | **GET** /cosigners/{cosignerId}/api_users/{apiUserId} | Get API user +*CosignersApi* | [**getCosignerApiUserRequestStatus**](docs/CosignersApi.md#getCosignerApiUserRequestStatus) | **GET** /cosigners/{cosignerId}/api_users/{apiUserId}/{requestId} | Get API user request status +*CosignersApi* | [**getCosignerApiUsers**](docs/CosignersApi.md#getCosignerApiUsers) | **GET** /cosigners/{cosignerId}/api_users | Get all API users +*CosignersApi* | [**getCosigners**](docs/CosignersApi.md#getCosigners) | **GET** /cosigners | Get all cosigners +*CosignersApi* | [**pairCosignerApiUser**](docs/CosignersApi.md#pairCosignerApiUser) | **PUT** /cosigners/{cosignerId}/api_users/{apiUserId} | Pair API user +*CosignersApi* | [**renameCosigner**](docs/CosignersApi.md#renameCosigner) | **PATCH** /cosigners/{cosignerId} | Rename cosigner +*CosignersApi* | [**unpairCosignerApiUser**](docs/CosignersApi.md#unpairCosignerApiUser) | **DELETE** /cosigners/{cosignerId}/api_users/{apiUserId} | Unpair API user +*CosignersApi* | [**updateCosignerApiUserCallbackHandler**](docs/CosignersApi.md#updateCosignerApiUserCallbackHandler) | **PATCH** /cosigners/{cosignerId}/api_users/{apiUserId} | Update API user callback handler *DeployedContractsApi* | [**addContractABI**](docs/DeployedContractsApi.md#addContractABI) | **POST** /tokenization/contracts/abi | Save contract ABI *DeployedContractsApi* | [**fetchContractAbi**](docs/DeployedContractsApi.md#fetchContractAbi) | **POST** /tokenization/contracts/fetch_abi | Fetch the contract ABI *DeployedContractsApi* | [**getDeployedContractByAddress**](docs/DeployedContractsApi.md#getDeployedContractByAddress) | **GET** /tokenization/contracts/{assetId}/{contractAddress} | Return deployed contract data @@ -382,20 +382,21 @@ Class | Method | HTTP request | Description *InternalWalletsApi* | [**getInternalWalletAssetsPaginated**](docs/InternalWalletsApi.md#getInternalWalletAssetsPaginated) | **GET** /internal_wallets/{walletId}/assets | List assets in an internal wallet (Paginated) *InternalWalletsApi* | [**getInternalWallets**](docs/InternalWalletsApi.md#getInternalWallets) | **GET** /internal_wallets | List internal wallets *InternalWalletsApi* | [**setCustomerRefIdForInternalWallet**](docs/InternalWalletsApi.md#setCustomerRefIdForInternalWallet) | **POST** /internal_wallets/{walletId}/set_customer_ref_id | Set an AML/KYT customer reference ID for internal wallet -*KeyLinkBetaApi* | [**createBulkSigningKeys**](docs/KeyLinkBetaApi.md#createBulkSigningKeys) | **POST** /key_link/signing_keys/bulk | Register signing keys in bulk -*KeyLinkBetaApi* | [**createSigningKey**](docs/KeyLinkBetaApi.md#createSigningKey) | **POST** /key_link/signing_keys | Add a new signing key -*KeyLinkBetaApi* | [**createValidationKey**](docs/KeyLinkBetaApi.md#createValidationKey) | **POST** /key_link/validation_keys | Add a new validation key -*KeyLinkBetaApi* | [**disableValidationKey**](docs/KeyLinkBetaApi.md#disableValidationKey) | **PATCH** /key_link/validation_keys/{keyId} | Disables a validation key -*KeyLinkBetaApi* | [**getBulkSigningKeysJob**](docs/KeyLinkBetaApi.md#getBulkSigningKeysJob) | **GET** /key_link/signing_keys/bulk/jobs/{jobId} | Get a bulk registration job -*KeyLinkBetaApi* | [**getBulkSigningKeysJobs**](docs/KeyLinkBetaApi.md#getBulkSigningKeysJobs) | **GET** /key_link/signing_keys/bulk/jobs | Get bulk registration jobs -*KeyLinkBetaApi* | [**getSigningKey**](docs/KeyLinkBetaApi.md#getSigningKey) | **GET** /key_link/signing_keys/{keyId} | Get a signing key by `keyId` -*KeyLinkBetaApi* | [**getSigningKeysList**](docs/KeyLinkBetaApi.md#getSigningKeysList) | **GET** /key_link/signing_keys | Get list of signing keys -*KeyLinkBetaApi* | [**getValidationKey**](docs/KeyLinkBetaApi.md#getValidationKey) | **GET** /key_link/validation_keys/{keyId} | Get a validation key by `keyId` -*KeyLinkBetaApi* | [**getValidationKeysList**](docs/KeyLinkBetaApi.md#getValidationKeysList) | **GET** /key_link/validation_keys | Get list of registered validation keys -*KeyLinkBetaApi* | [**setAgentId**](docs/KeyLinkBetaApi.md#setAgentId) | **PATCH** /key_link/signing_keys/{keyId}/agent_user_id | Set agent user id -*KeyLinkBetaApi* | [**updateSigningKey**](docs/KeyLinkBetaApi.md#updateSigningKey) | **PATCH** /key_link/signing_keys/{keyId} | Modify the signing keyId -*KeysBetaApi* | [**getMpcKeysList**](docs/KeysBetaApi.md#getMpcKeysList) | **GET** /keys/mpc/list | Get list of mpc keys -*KeysBetaApi* | [**getMpcKeysListByUser**](docs/KeysBetaApi.md#getMpcKeysListByUser) | **GET** /keys/mpc/list/{userId} | Get list of mpc keys by `userId` +*KeyLinkApi* | [**createBulkSigningKeys**](docs/KeyLinkApi.md#createBulkSigningKeys) | **POST** /key_link/signing_keys/bulk | Register signing keys in bulk +*KeyLinkApi* | [**createSigningKey**](docs/KeyLinkApi.md#createSigningKey) | **POST** /key_link/signing_keys | Add a new signing key +*KeyLinkApi* | [**createValidationKey**](docs/KeyLinkApi.md#createValidationKey) | **POST** /key_link/validation_keys | Add a new validation key +*KeyLinkApi* | [**disableValidationKey**](docs/KeyLinkApi.md#disableValidationKey) | **PATCH** /key_link/validation_keys/{keyId} | Disables a validation key +*KeyLinkApi* | [**getBulkSigningKeysJob**](docs/KeyLinkApi.md#getBulkSigningKeysJob) | **GET** /key_link/signing_keys/bulk/jobs/{jobId} | Get a bulk registration job +*KeyLinkApi* | [**getBulkSigningKeysJobs**](docs/KeyLinkApi.md#getBulkSigningKeysJobs) | **GET** /key_link/signing_keys/bulk/jobs | Get bulk registration jobs +*KeyLinkApi* | [**getSigningKey**](docs/KeyLinkApi.md#getSigningKey) | **GET** /key_link/signing_keys/{keyId} | Get a signing key by `keyId` +*KeyLinkApi* | [**getSigningKeysList**](docs/KeyLinkApi.md#getSigningKeysList) | **GET** /key_link/signing_keys | Get list of signing keys +*KeyLinkApi* | [**getValidationKey**](docs/KeyLinkApi.md#getValidationKey) | **GET** /key_link/validation_keys/{keyId} | Get a validation key by `keyId` +*KeyLinkApi* | [**getValidationKeysList**](docs/KeyLinkApi.md#getValidationKeysList) | **GET** /key_link/validation_keys | Get list of registered validation keys +*KeyLinkApi* | [**revokeValidationKey**](docs/KeyLinkApi.md#revokeValidationKey) | **POST** /key_link/validation_keys/{keyId}/revoke | Revokes a validation key +*KeyLinkApi* | [**setAgentId**](docs/KeyLinkApi.md#setAgentId) | **PATCH** /key_link/signing_keys/{keyId}/agent_user_id | Set agent user id +*KeyLinkApi* | [**updateSigningKey**](docs/KeyLinkApi.md#updateSigningKey) | **PATCH** /key_link/signing_keys/{keyId} | Modify the signing keyId +*KeysApi* | [**getMpcKeysList**](docs/KeysApi.md#getMpcKeysList) | **GET** /keys/mpc/list | Get list of mpc keys +*KeysApi* | [**getMpcKeysListByUser**](docs/KeysApi.md#getMpcKeysListByUser) | **GET** /keys/mpc/list/{userId} | Get list of mpc keys by `userId` *NetworkConnectionsApi* | [**checkThirdPartyRouting**](docs/NetworkConnectionsApi.md#checkThirdPartyRouting) | **GET** /network_connections/{connectionId}/is_third_party_routing/{assetType} | Retrieve third-party network routing validation *NetworkConnectionsApi* | [**createNetworkConnection**](docs/NetworkConnectionsApi.md#createNetworkConnection) | **POST** /network_connections | Create a new network connection *NetworkConnectionsApi* | [**createNetworkId**](docs/NetworkConnectionsApi.md#createNetworkId) | **POST** /network_ids | Creates a new Network ID @@ -547,6 +548,7 @@ Class | Method | HTTP request | Description *TrLinkApi* | [**getTRLinkCustomerIntegrations**](docs/TrLinkApi.md#getTRLinkCustomerIntegrations) | **GET** /screening/trlink/customers/{customerId}/integrations | Get customer integrations *TrLinkApi* | [**getTRLinkCustomers**](docs/TrLinkApi.md#getTRLinkCustomers) | **GET** /screening/trlink/customers | Get all customers *TrLinkApi* | [**getTRLinkIntegrationPublicKey**](docs/TrLinkApi.md#getTRLinkIntegrationPublicKey) | **GET** /screening/trlink/customers/integration/{customerIntegrationId}/public_key | Get public key for PII encryption +*TrLinkApi* | [**getTRLinkManualDecision**](docs/TrLinkApi.md#getTRLinkManualDecision) | **GET** /screening/trlink/customers/integration/{customerIntegrationId}/transactions/{txId}/manual_decision | Get manual decision for missing TRM *TrLinkApi* | [**getTRLinkPartners**](docs/TrLinkApi.md#getTRLinkPartners) | **GET** /screening/trlink/partners | List available TRSupport partners *TrLinkApi* | [**getTRLinkPolicy**](docs/TrLinkApi.md#getTRLinkPolicy) | **GET** /screening/trlink/policy | Get TRLink policy *TrLinkApi* | [**getTRLinkSupportedAsset**](docs/TrLinkApi.md#getTRLinkSupportedAsset) | **GET** /screening/trlink/customers/integration/{customerIntegrationId}/assets/{assetId} | Get supported asset by ID @@ -774,8 +776,7 @@ Class | Method | HTTP request | Description - [AmountRange](docs/AmountRange.md) - [AmountRangeMinMax](docs/AmountRangeMinMax.md) - [AmountRangeMinMax2](docs/AmountRangeMinMax2.md) - - [ApiKey](docs/ApiKey.md) - - [ApiKeysPaginatedResponse](docs/ApiKeysPaginatedResponse.md) + - [ApiUsersPaginatedResponse](docs/ApiUsersPaginatedResponse.md) - [ApprovalApiKey](docs/ApprovalApiKey.md) - [ApprovalApiPublicKey](docs/ApprovalApiPublicKey.md) - [ApprovalRequest](docs/ApprovalRequest.md) @@ -974,6 +975,7 @@ Class | Method | HTTP request | Description - [ConvertAssetsRequest](docs/ConvertAssetsRequest.md) - [ConvertAssetsResponse](docs/ConvertAssetsResponse.md) - [Cosigner](docs/Cosigner.md) + - [CosignerApiUser](docs/CosignerApiUser.md) - [CosignersPaginatedResponse](docs/CosignersPaginatedResponse.md) - [CounterpartyGroup](docs/CounterpartyGroup.md) - [CounterpartyGroupsPaginatedResponse](docs/CounterpartyGroupsPaginatedResponse.md) @@ -1390,8 +1392,8 @@ Class | Method | HTTP request | Description - [PaginatedAssetWalletResponsePaging](docs/PaginatedAssetWalletResponsePaging.md) - [PaginatedAssetsResponse](docs/PaginatedAssetsResponse.md) - [Paging](docs/Paging.md) - - [PairApiKeyRequest](docs/PairApiKeyRequest.md) - - [PairApiKeyResponse](docs/PairApiKeyResponse.md) + - [PairApiUserRequest](docs/PairApiUserRequest.md) + - [PairApiUserResponse](docs/PairApiUserResponse.md) - [Parameter](docs/Parameter.md) - [ParameterWithValue](docs/ParameterWithValue.md) - [ParticipantOnboardingPayload](docs/ParticipantOnboardingPayload.md) @@ -1722,6 +1724,7 @@ Class | Method | HTTP request | Description - [TRLinkManualDecisionDestinationDetail](docs/TRLinkManualDecisionDestinationDetail.md) - [TRLinkManualDecisionRequest](docs/TRLinkManualDecisionRequest.md) - [TRLinkManualDecisionResponse](docs/TRLinkManualDecisionResponse.md) + - [TRLinkManualDecisionResponseStatusEnum](docs/TRLinkManualDecisionResponseStatusEnum.md) - [TRLinkManualDecisionSource](docs/TRLinkManualDecisionSource.md) - [TRLinkMissingTrmAction](docs/TRLinkMissingTrmAction.md) - [TRLinkMissingTrmAction2](docs/TRLinkMissingTrmAction2.md) diff --git a/api/openapi.yaml b/api/openapi.yaml index ae0539d7..5bdd433b 100644 --- a/api/openapi.yaml +++ b/api/openapi.yaml @@ -7730,7 +7730,7 @@ paths: - Track progress by polling GET /management/users; deletion is complete when the user is disabled. - Please note that this endpoint is available only for API keys with Admin/Non Signing Admin/Security Admin permissions. Endpoint Permission: Admin, Non-Signing Admin, Security Admin. - **Note:** This endpoint is currently in beta and might be subject to changes. + **Note:** This endpoint is in Early Availability (EA) and may change or break before it reaches GA. operationId: deleteConsoleUser parameters: - description: The ID of the console user to delete @@ -7849,7 +7849,7 @@ paths: - Console User x-rate-limit-category: write x-lifecycle: - state: beta + state: ea x-readme: code-samples: - language: javascript @@ -9647,7 +9647,6 @@ paths: get: description: |- Get all workspace cosigners (paginated). - **Note:** These endpoints are currently in beta and might be subject to changes. Endpoint Permission: Admin and Non-Signing Admin. operationId: getCosigners parameters: @@ -9698,37 +9697,37 @@ paths: $ref: "#/components/responses/Error" summary: Get all cosigners tags: - - Cosigners (Beta) + - Cosigners x-rate-limit-category: query x-readme: code-samples: - language: typescript code: "const response: Promise>\ - \ = fireblocks.cosignersBeta.getCosigners(cosignersBetaApiGetCosignersRequest);" + \ = fireblocks.cosigners.getCosigners(cosignersApiGetCosignersRequest);" name: Fireblocks SDK TypeScript example - language: java code: "CompletableFuture> response\ - \ = fireblocks.cosignersBeta().getCosigners(order, pageCursor, pageSize);" + \ = fireblocks.cosigners().getCosigners(order, pageCursor, pageSize);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.cosigners_beta.get_cosigners(order, page_cursor,\ + code: "response = fireblocks.cosigners.get_cosigners(order, page_cursor,\ \ page_size);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript source: "const response: Promise>\ - \ = fireblocks.cosignersBeta.getCosigners(cosignersBetaApiGetCosignersRequest);" + \ = fireblocks.cosigners.getCosigners(cosignersApiGetCosignersRequest);" - lang: Java source: "CompletableFuture> response\ - \ = fireblocks.cosignersBeta().getCosigners(order, pageCursor, pageSize);" + \ = fireblocks.cosigners().getCosigners(order, pageCursor, pageSize);" - lang: Python - source: "response = fireblocks.cosigners_beta.get_cosigners(order, page_cursor,\ + source: "response = fireblocks.cosigners.get_cosigners(order, page_cursor,\ \ page_size);" x-accepts: - application/json post: description: |- - Add a new cosigner. The cosigner will be pending pairing until the API key is manually paired + Add a new cosigner. The cosigner will be pending pairing until the API user is manually paired (see `pairCosignerApiUser`). Endpoint Permission: Admin and Non-Signing Admin. operationId: addCosigner parameters: @@ -9763,31 +9762,31 @@ paths: $ref: "#/components/responses/Error" summary: Add cosigner tags: - - Cosigners (Beta) + - Cosigners x-rate-limit-category: write x-readme: code-samples: - language: typescript code: "const response: Promise>\ - \ = fireblocks.cosignersBeta.addCosigner(cosignersBetaApiAddCosignerRequest);" + \ = fireblocks.cosigners.addCosigner(cosignersApiAddCosignerRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.cosignersBeta().addCosigner(addCosignerRequest,\ + code: "CompletableFuture> response = fireblocks.cosigners().addCosigner(addCosignerRequest,\ \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.cosigners_beta.add_cosigner(add_cosigner_request,\ + code: "response = fireblocks.cosigners.add_cosigner(add_cosigner_request,\ \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript source: "const response: Promise>\ - \ = fireblocks.cosignersBeta.addCosigner(cosignersBetaApiAddCosignerRequest);" + \ = fireblocks.cosigners.addCosigner(cosignersApiAddCosignerRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.cosignersBeta().addCosigner(addCosignerRequest,\ + source: "CompletableFuture> response = fireblocks.cosigners().addCosigner(addCosignerRequest,\ \ idempotencyKey);" - lang: Python - source: "response = fireblocks.cosigners_beta.add_cosigner(add_cosigner_request,\ + source: "response = fireblocks.cosigners.add_cosigner(add_cosigner_request,\ \ idempotency_key);" x-content-type: application/json x-accepts: @@ -9796,7 +9795,6 @@ paths: get: description: |- Get a cosigner by ID. - **Note:** These endpoints are currently in beta and might be subject to changes. Endpoint Permission: Admin and Non-Signing Admin. operationId: getCosigner parameters: @@ -9824,32 +9822,31 @@ paths: $ref: "#/components/responses/Error" summary: Get cosigner tags: - - Cosigners (Beta) + - Cosigners x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.cosignersBeta.getCosigner(cosignersBetaApiGetCosignerRequest);" + code: "const response: Promise> = fireblocks.cosigners.getCosigner(cosignersApiGetCosignerRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.cosignersBeta().getCosigner(cosignerId); + code: CompletableFuture> response = fireblocks.cosigners().getCosigner(cosignerId); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.cosigners_beta.get_cosigner(cosigner_id); + code: response = fireblocks.cosigners.get_cosigner(cosigner_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.cosignersBeta.getCosigner(cosignersBetaApiGetCosignerRequest);" + source: "const response: Promise> = fireblocks.cosigners.getCosigner(cosignersApiGetCosignerRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.cosignersBeta().getCosigner(cosignerId); + source: CompletableFuture> response = fireblocks.cosigners().getCosigner(cosignerId); - lang: Python - source: response = fireblocks.cosigners_beta.get_cosigner(cosigner_id); + source: response = fireblocks.cosigners.get_cosigner(cosigner_id); x-accepts: - application/json patch: description: |- Rename a cosigner by ID. - **Note:** These endpoints are currently in beta and might be subject to changes. Endpoint Permission: Admin and Non-Signing Admin. operationId: renameCosigner parameters: @@ -9883,40 +9880,39 @@ paths: $ref: "#/components/responses/Error" summary: Rename cosigner tags: - - Cosigners (Beta) + - Cosigners x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.cosignersBeta.renameCosigner(cosignersBetaApiRenameCosignerRequest);" + code: "const response: Promise> = fireblocks.cosigners.renameCosigner(cosignersApiRenameCosignerRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.cosignersBeta().renameCosigner(renameCosigner,\ + code: "CompletableFuture> response = fireblocks.cosigners().renameCosigner(renameCosigner,\ \ cosignerId);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.cosigners_beta.rename_cosigner(rename_cosigner,\ + code: "response = fireblocks.cosigners.rename_cosigner(rename_cosigner,\ \ cosigner_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.cosignersBeta.renameCosigner(cosignersBetaApiRenameCosignerRequest);" + source: "const response: Promise> = fireblocks.cosigners.renameCosigner(cosignersApiRenameCosignerRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.cosignersBeta().renameCosigner(renameCosigner,\ + source: "CompletableFuture> response = fireblocks.cosigners().renameCosigner(renameCosigner,\ \ cosignerId);" - lang: Python - source: "response = fireblocks.cosigners_beta.rename_cosigner(rename_cosigner,\ + source: "response = fireblocks.cosigners.rename_cosigner(rename_cosigner,\ \ cosigner_id);" x-content-type: application/json x-accepts: - application/json - /cosigners/{cosignerId}/api_keys: + /cosigners/{cosignerId}/api_users: get: description: |- - Get all cosigner paired API keys (paginated). - **Note:** These endpoints are currently in beta and might be subject to changes. + Get all cosigner paired API users (paginated). Endpoint Permission: Admin and Non-Signing Admin. - operationId: getApiKeys + operationId: getCosignerApiUsers parameters: - description: The unique identifier of the cosigner example: 44fcead0-7053-4831-a53a-df7fb90d440f @@ -9966,51 +9962,51 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ApiKeysPaginatedResponse" - description: A paginated response containing ApiKey objects + $ref: "#/components/schemas/ApiUsersPaginatedResponse" + description: A paginated response containing CosignerApiUser objects headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get all API keys + summary: Get all API users tags: - - Cosigners (Beta) + - Cosigners x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.cosignersBeta.getApiKeys(cosignersBetaApiGetApiKeysRequest);" + code: "const response: Promise>\ + \ = fireblocks.cosigners.getCosignerApiUsers(cosignersApiGetCosignerApiUsersRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.cosignersBeta().getApiKeys(cosignerId, order, pageCursor,\ + code: "CompletableFuture> response\ + \ = fireblocks.cosigners().getCosignerApiUsers(cosignerId, order, pageCursor,\ \ pageSize);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.cosigners_beta.get_api_keys(cosigner_id, order,\ - \ page_cursor, page_size);" + code: "response = fireblocks.cosigners.get_cosigner_api_users(cosigner_id,\ + \ order, page_cursor, page_size);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.cosignersBeta.getApiKeys(cosignersBetaApiGetApiKeysRequest);" + source: "const response: Promise>\ + \ = fireblocks.cosigners.getCosignerApiUsers(cosignersApiGetCosignerApiUsersRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.cosignersBeta().getApiKeys(cosignerId, order, pageCursor,\ + source: "CompletableFuture> response\ + \ = fireblocks.cosigners().getCosignerApiUsers(cosignerId, order, pageCursor,\ \ pageSize);" - lang: Python - source: "response = fireblocks.cosigners_beta.get_api_keys(cosigner_id, order,\ - \ page_cursor, page_size);" + source: "response = fireblocks.cosigners.get_cosigner_api_users(cosigner_id,\ + \ order, page_cursor, page_size);" x-accepts: - application/json - /cosigners/{cosignerId}/api_keys/{apiKeyId}: + /cosigners/{cosignerId}/api_users/{apiUserId}: delete: description: |- - Unpair an API key from a cosigner + Unpair an API user from a cosigner Endpoint Permission: Admin and Non-Signing Admin. - operationId: unpairApiKey + operationId: unpairCosignerApiUser parameters: - description: The unique identifier of the cosigner example: 44fcead0-7053-4831-a53a-df7fb90d440f @@ -10022,11 +10018,11 @@ paths: format: uuid type: string style: simple - - description: The unique identifier of the API key + - description: The unique identifier of the API user example: 44fcead0-7053-4831-a53a-df7fb90d440f explode: false in: path - name: apiKeyId + name: apiUserId required: true schema: type: string @@ -10036,8 +10032,8 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ApiKey" - description: The API key object to be unpaired + $ref: "#/components/schemas/CosignerApiUser" + description: The API user object to be unpaired headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" @@ -10045,40 +10041,39 @@ paths: $ref: "#/components/headers/Location" default: $ref: "#/components/responses/Error" - summary: Unpair API key + summary: Unpair API user tags: - - Cosigners (Beta) + - Cosigners x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.cosignersBeta.unpairApiKey(cosignersBetaApiUnpairApiKeyRequest);" + code: "const response: Promise> = fireblocks.cosigners.unpairCosignerApiUser(cosignersApiUnpairCosignerApiUserRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.cosignersBeta().unpairApiKey(cosignerId,\ - \ apiKeyId);" + code: "CompletableFuture> response = fireblocks.cosigners().unpairCosignerApiUser(cosignerId,\ + \ apiUserId);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.cosigners_beta.unpair_api_key(cosigner_id,\ - \ api_key_id);" + code: "response = fireblocks.cosigners.unpair_cosigner_api_user(cosigner_id,\ + \ api_user_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.cosignersBeta.unpairApiKey(cosignersBetaApiUnpairApiKeyRequest);" + source: "const response: Promise> = fireblocks.cosigners.unpairCosignerApiUser(cosignersApiUnpairCosignerApiUserRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.cosignersBeta().unpairApiKey(cosignerId,\ - \ apiKeyId);" + source: "CompletableFuture> response = fireblocks.cosigners().unpairCosignerApiUser(cosignerId,\ + \ apiUserId);" - lang: Python - source: "response = fireblocks.cosigners_beta.unpair_api_key(cosigner_id,\ - \ api_key_id);" + source: "response = fireblocks.cosigners.unpair_cosigner_api_user(cosigner_id,\ + \ api_user_id);" x-accepts: - application/json get: description: |- - Get an API key by ID. - **Note:** These endpoints are currently in beta and might be subject to changes. + Get an API user by ID. Endpoint Permission: Admin and Non-Signing Admin. - operationId: getApiKey + operationId: getCosignerApiUser parameters: - description: The unique identifier of the cosigner example: 44fcead0-7053-4831-a53a-df7fb90d440f @@ -10090,11 +10085,11 @@ paths: format: uuid type: string style: simple - - description: The unique identifier of the API key + - description: The unique identifier of the API user example: 44fcead0-7053-4831-a53a-df7fb90d440f explode: false in: path - name: apiKeyId + name: apiUserId required: true schema: type: string @@ -10104,44 +10099,46 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ApiKey" - description: An ApiKey object + $ref: "#/components/schemas/CosignerApiUser" + description: A CosignerApiUser object headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get API key + summary: Get API user tags: - - Cosigners (Beta) + - Cosigners x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.cosignersBeta.getApiKey(cosignersBetaApiGetApiKeyRequest);" + code: "const response: Promise> = fireblocks.cosigners.getCosignerApiUser(cosignersApiGetCosignerApiUserRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.cosignersBeta().getApiKey(cosignerId,\ - \ apiKeyId);" + code: "CompletableFuture> response = fireblocks.cosigners().getCosignerApiUser(cosignerId,\ + \ apiUserId);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.cosigners_beta.get_api_key(cosigner_id, api_key_id);" + code: "response = fireblocks.cosigners.get_cosigner_api_user(cosigner_id,\ + \ api_user_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.cosignersBeta.getApiKey(cosignersBetaApiGetApiKeyRequest);" + source: "const response: Promise> = fireblocks.cosigners.getCosignerApiUser(cosignersApiGetCosignerApiUserRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.cosignersBeta().getApiKey(cosignerId,\ - \ apiKeyId);" + source: "CompletableFuture> response = fireblocks.cosigners().getCosignerApiUser(cosignerId,\ + \ apiUserId);" - lang: Python - source: "response = fireblocks.cosigners_beta.get_api_key(cosigner_id, api_key_id);" + source: "response = fireblocks.cosigners.get_cosigner_api_user(cosigner_id,\ + \ api_user_id);" x-accepts: - application/json patch: description: |- - Update the callback handler of an API key + Update the callback handler of an API user Endpoint Permission: Admin and Non-Signing Admin. - operationId: updateCallbackHandler + operationId: updateCosignerApiUserCallbackHandler parameters: - description: The unique identifier of the cosigner example: 44fcead0-7053-4831-a53a-df7fb90d440f @@ -10153,11 +10150,11 @@ paths: format: uuid type: string style: simple - - description: The unique identifier of the API key + - description: The unique identifier of the API user example: 44fcead0-7053-4831-a53a-df7fb90d440f explode: false in: path - name: apiKeyId + name: apiUserId required: true schema: type: string @@ -10174,7 +10171,7 @@ paths: application/json: schema: $ref: "#/components/schemas/UpdateCallbackHandlerResponse" - description: The API key object with the new callback handler + description: The API user object with the new callback handler headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" @@ -10182,44 +10179,44 @@ paths: $ref: "#/components/headers/Location" default: $ref: "#/components/responses/Error" - summary: Update API key callback handler + summary: Update API user callback handler tags: - - Cosigners (Beta) + - Cosigners x-rate-limit-category: write x-readme: code-samples: - language: typescript code: "const response: Promise>\ - \ = fireblocks.cosignersBeta.updateCallbackHandler(cosignersBetaApiUpdateCallbackHandlerRequest);" + \ = fireblocks.cosigners.updateCosignerApiUserCallbackHandler(cosignersApiUpdateCosignerApiUserCallbackHandlerRequest);" name: Fireblocks SDK TypeScript example - language: java code: "CompletableFuture> response\ - \ = fireblocks.cosignersBeta().updateCallbackHandler(updateCallbackHandlerRequest,\ - \ cosignerId, apiKeyId);" + \ = fireblocks.cosigners().updateCosignerApiUserCallbackHandler(updateCallbackHandlerRequest,\ + \ cosignerId, apiUserId);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.cosigners_beta.update_callback_handler(update_callback_handler_request,\ - \ cosigner_id, api_key_id);" + code: "response = fireblocks.cosigners.update_cosigner_api_user_callback_handler(update_callback_handler_request,\ + \ cosigner_id, api_user_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript source: "const response: Promise>\ - \ = fireblocks.cosignersBeta.updateCallbackHandler(cosignersBetaApiUpdateCallbackHandlerRequest);" + \ = fireblocks.cosigners.updateCosignerApiUserCallbackHandler(cosignersApiUpdateCosignerApiUserCallbackHandlerRequest);" - lang: Java source: "CompletableFuture> response\ - \ = fireblocks.cosignersBeta().updateCallbackHandler(updateCallbackHandlerRequest,\ - \ cosignerId, apiKeyId);" + \ = fireblocks.cosigners().updateCosignerApiUserCallbackHandler(updateCallbackHandlerRequest,\ + \ cosignerId, apiUserId);" - lang: Python - source: "response = fireblocks.cosigners_beta.update_callback_handler(update_callback_handler_request,\ - \ cosigner_id, api_key_id);" + source: "response = fireblocks.cosigners.update_cosigner_api_user_callback_handler(update_callback_handler_request,\ + \ cosigner_id, api_user_id);" x-content-type: application/json x-accepts: - application/json put: description: |- - Pair an API key to a cosigner + Pair an API user to a cosigner Endpoint Permission: Admin and Non-Signing Admin. - operationId: pairApiKey + operationId: pairCosignerApiUser parameters: - description: The unique identifier of the cosigner example: 44fcead0-7053-4831-a53a-df7fb90d440f @@ -10231,11 +10228,11 @@ paths: format: uuid type: string style: simple - - description: The unique identifier of the API key + - description: The unique identifier of the API user example: 44fcead0-7053-4831-a53a-df7fb90d440f explode: false in: path - name: apiKeyId + name: apiUserId required: true schema: type: string @@ -10255,15 +10252,15 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/PairApiKeyRequest" + $ref: "#/components/schemas/PairApiUserRequest" required: true responses: "202": content: application/json: schema: - $ref: "#/components/schemas/PairApiKeyResponse" - description: The API key object to be paired + $ref: "#/components/schemas/PairApiUserResponse" + description: The API user object to be paired headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" @@ -10271,43 +10268,43 @@ paths: $ref: "#/components/headers/Location" default: $ref: "#/components/responses/Error" - summary: Pair API key + summary: Pair API user tags: - - Cosigners (Beta) + - Cosigners x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise> =\ - \ fireblocks.cosignersBeta.pairApiKey(cosignersBetaApiPairApiKeyRequest);" + code: "const response: Promise>\ + \ = fireblocks.cosigners.pairCosignerApiUser(cosignersApiPairCosignerApiUserRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.cosignersBeta().pairApiKey(pairApiKeyRequest,\ - \ cosignerId, apiKeyId, idempotencyKey);" + code: "CompletableFuture> response = fireblocks.cosigners().pairCosignerApiUser(pairApiUserRequest,\ + \ cosignerId, apiUserId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.cosigners_beta.pair_api_key(pair_api_key_request,\ - \ cosigner_id, api_key_id, idempotency_key);" + code: "response = fireblocks.cosigners.pair_cosigner_api_user(pair_api_user_request,\ + \ cosigner_id, api_user_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> =\ - \ fireblocks.cosignersBeta.pairApiKey(cosignersBetaApiPairApiKeyRequest);" + source: "const response: Promise>\ + \ = fireblocks.cosigners.pairCosignerApiUser(cosignersApiPairCosignerApiUserRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.cosignersBeta().pairApiKey(pairApiKeyRequest,\ - \ cosignerId, apiKeyId, idempotencyKey);" + source: "CompletableFuture> response = fireblocks.cosigners().pairCosignerApiUser(pairApiUserRequest,\ + \ cosignerId, apiUserId, idempotencyKey);" - lang: Python - source: "response = fireblocks.cosigners_beta.pair_api_key(pair_api_key_request,\ - \ cosigner_id, api_key_id, idempotency_key);" + source: "response = fireblocks.cosigners.pair_cosigner_api_user(pair_api_user_request,\ + \ cosigner_id, api_user_id, idempotency_key);" x-content-type: application/json x-accepts: - application/json - /cosigners/{cosignerId}/api_keys/{apiKeyId}/{requestId}: + /cosigners/{cosignerId}/api_users/{apiUserId}/{requestId}: get: description: |- Get the status of an asynchronous request Endpoint Permission: Admin and Non-Signing Admin. - operationId: getRequestStatus + operationId: getCosignerApiUserRequestStatus parameters: - description: The unique identifier of the cosigner example: 44fcead0-7053-4831-a53a-df7fb90d440f @@ -10319,11 +10316,11 @@ paths: format: uuid type: string style: simple - - description: The unique identifier of the API key + - description: The unique identifier of the API user example: 44fcead0-7053-4831-a53a-df7fb90d440f explode: false in: path - name: apiKeyId + name: apiUserId required: true schema: type: string @@ -10347,32 +10344,32 @@ paths: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get request status + summary: Get API user request status tags: - - Cosigners (Beta) + - Cosigners x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.cosignersBeta.getRequestStatus(cosignersBetaApiGetRequestStatusRequest);" + code: "const response: Promise> = fireblocks.cosigners.getCosignerApiUserRequestStatus(cosignersApiGetCosignerApiUserRequestStatusRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.cosignersBeta().getRequestStatus(cosignerId,\ - \ apiKeyId, requestId);" + code: "CompletableFuture> response = fireblocks.cosigners().getCosignerApiUserRequestStatus(cosignerId,\ + \ apiUserId, requestId);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.cosigners_beta.get_request_status(cosigner_id,\ - \ api_key_id, request_id);" + code: "response = fireblocks.cosigners.get_cosigner_api_user_request_status(cosigner_id,\ + \ api_user_id, request_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.cosignersBeta.getRequestStatus(cosignersBetaApiGetRequestStatusRequest);" + source: "const response: Promise> = fireblocks.cosigners.getCosignerApiUserRequestStatus(cosignersApiGetCosignerApiUserRequestStatusRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.cosignersBeta().getRequestStatus(cosignerId,\ - \ apiKeyId, requestId);" + source: "CompletableFuture> response = fireblocks.cosigners().getCosignerApiUserRequestStatus(cosignerId,\ + \ apiUserId, requestId);" - lang: Python - source: "response = fireblocks.cosigners_beta.get_request_status(cosigner_id,\ - \ api_key_id, request_id);" + source: "response = fireblocks.cosigners.get_cosigner_api_user_request_status(cosigner_id,\ + \ api_user_id, request_id);" x-accepts: - application/json /tokenization/contracts: @@ -16036,36 +16033,36 @@ paths: $ref: "#/components/responses/Error" summary: Get list of signing keys tags: - - Key Link (Beta) + - Key Link x-rate-limit-category: query x-readme: code-samples: - language: typescript code: "const response: Promise>\ - \ = fireblocks.keyLinkBeta.getSigningKeysList(keyLinkBetaApiGetSigningKeysListRequest);" + \ = fireblocks.keyLink.getSigningKeysList(keyLinkApiGetSigningKeysListRequest);" name: Fireblocks SDK TypeScript example - language: java code: "CompletableFuture> response\ - \ = fireblocks.keyLinkBeta().getSigningKeysList(pageCursor, pageSize,\ - \ sortBy, order, vaultAccountId, agentUserId, algorithm, enabled, available,\ - \ isAssigned, keyPrefix);" + \ = fireblocks.keyLink().getSigningKeysList(pageCursor, pageSize, sortBy,\ + \ order, vaultAccountId, agentUserId, algorithm, enabled, available, isAssigned,\ + \ keyPrefix);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.key_link_beta.get_signing_keys_list(page_cursor,\ + code: "response = fireblocks.key_link.get_signing_keys_list(page_cursor,\ \ page_size, sort_by, order, vault_account_id, agent_user_id, algorithm,\ \ enabled, available, is_assigned, key_prefix);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript source: "const response: Promise>\ - \ = fireblocks.keyLinkBeta.getSigningKeysList(keyLinkBetaApiGetSigningKeysListRequest);" + \ = fireblocks.keyLink.getSigningKeysList(keyLinkApiGetSigningKeysListRequest);" - lang: Java source: "CompletableFuture> response\ - \ = fireblocks.keyLinkBeta().getSigningKeysList(pageCursor, pageSize, sortBy,\ + \ = fireblocks.keyLink().getSigningKeysList(pageCursor, pageSize, sortBy,\ \ order, vaultAccountId, agentUserId, algorithm, enabled, available, isAssigned,\ \ keyPrefix);" - lang: Python - source: "response = fireblocks.key_link_beta.get_signing_keys_list(page_cursor,\ + source: "response = fireblocks.key_link.get_signing_keys_list(page_cursor,\ \ page_size, sort_by, order, vault_account_id, agent_user_id, algorithm,\ \ enabled, available, is_assigned, key_prefix);" x-accepts: @@ -16108,29 +16105,29 @@ paths: $ref: "#/components/responses/Error" summary: Add a new signing key tags: - - Key Link (Beta) + - Key Link x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.keyLinkBeta.createSigningKey(keyLinkBetaApiCreateSigningKeyRequest);" + code: "const response: Promise> = fireblocks.keyLink.createSigningKey(keyLinkApiCreateSigningKeyRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.keyLinkBeta().createSigningKey(createSigningKeyDto,\ + code: "CompletableFuture> response = fireblocks.keyLink().createSigningKey(createSigningKeyDto,\ \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.key_link_beta.create_signing_key(create_signing_key_dto,\ + code: "response = fireblocks.key_link.create_signing_key(create_signing_key_dto,\ \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.keyLinkBeta.createSigningKey(keyLinkBetaApiCreateSigningKeyRequest);" + source: "const response: Promise> = fireblocks.keyLink.createSigningKey(keyLinkApiCreateSigningKeyRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.keyLinkBeta().createSigningKey(createSigningKeyDto,\ + source: "CompletableFuture> response = fireblocks.keyLink().createSigningKey(createSigningKeyDto,\ \ idempotencyKey);" - lang: Python - source: "response = fireblocks.key_link_beta.create_signing_key(create_signing_key_dto,\ + source: "response = fireblocks.key_link.create_signing_key(create_signing_key_dto,\ \ idempotency_key);" x-content-type: application/json x-accepts: @@ -16164,26 +16161,26 @@ paths: $ref: "#/components/responses/Error" summary: Get a signing key by `keyId` tags: - - Key Link (Beta) + - Key Link x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.keyLinkBeta.getSigningKey(keyLinkBetaApiGetSigningKeyRequest);" + code: "const response: Promise> = fireblocks.keyLink.getSigningKey(keyLinkApiGetSigningKeyRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.keyLinkBeta().getSigningKey(keyId); + code: CompletableFuture> response = fireblocks.keyLink().getSigningKey(keyId); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.key_link_beta.get_signing_key(key_id); + code: response = fireblocks.key_link.get_signing_key(key_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.keyLinkBeta.getSigningKey(keyLinkBetaApiGetSigningKeyRequest);" + source: "const response: Promise> = fireblocks.keyLink.getSigningKey(keyLinkApiGetSigningKeyRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.keyLinkBeta().getSigningKey(keyId); + source: CompletableFuture> response = fireblocks.keyLink().getSigningKey(keyId); - lang: Python - source: response = fireblocks.key_link_beta.get_signing_key(key_id); + source: response = fireblocks.key_link.get_signing_key(key_id); x-accepts: - application/json patch: @@ -16220,29 +16217,29 @@ paths: $ref: "#/components/responses/Error" summary: Modify the signing keyId tags: - - Key Link (Beta) + - Key Link x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.keyLinkBeta.updateSigningKey(keyLinkBetaApiUpdateSigningKeyRequest);" + code: "const response: Promise> = fireblocks.keyLink.updateSigningKey(keyLinkApiUpdateSigningKeyRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.keyLinkBeta().updateSigningKey(modifySigningKeyDto,\ + code: "CompletableFuture> response = fireblocks.keyLink().updateSigningKey(modifySigningKeyDto,\ \ keyId);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.key_link_beta.update_signing_key(modify_signing_key_dto,\ + code: "response = fireblocks.key_link.update_signing_key(modify_signing_key_dto,\ \ key_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.keyLinkBeta.updateSigningKey(keyLinkBetaApiUpdateSigningKeyRequest);" + source: "const response: Promise> = fireblocks.keyLink.updateSigningKey(keyLinkApiUpdateSigningKeyRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.keyLinkBeta().updateSigningKey(modifySigningKeyDto,\ + source: "CompletableFuture> response = fireblocks.keyLink().updateSigningKey(modifySigningKeyDto,\ \ keyId);" - lang: Python - source: "response = fireblocks.key_link_beta.update_signing_key(modify_signing_key_dto,\ + source: "response = fireblocks.key_link.update_signing_key(modify_signing_key_dto,\ \ key_id);" x-content-type: application/json x-accepts: @@ -16279,29 +16276,29 @@ paths: $ref: "#/components/responses/Error" summary: Set agent user id tags: - - Key Link (Beta) + - Key Link x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.keyLinkBeta.setAgentId(keyLinkBetaApiSetAgentIdRequest);" + code: "const response: Promise> = fireblocks.keyLink.setAgentId(keyLinkApiSetAgentIdRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.keyLinkBeta().setAgentId(modifySigningKeyAgentIdDto,\ + code: "CompletableFuture> response = fireblocks.keyLink().setAgentId(modifySigningKeyAgentIdDto,\ \ keyId);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.key_link_beta.set_agent_id(modify_signing_key_agent_id_dto,\ + code: "response = fireblocks.key_link.set_agent_id(modify_signing_key_agent_id_dto,\ \ key_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.keyLinkBeta.setAgentId(keyLinkBetaApiSetAgentIdRequest);" + source: "const response: Promise> = fireblocks.keyLink.setAgentId(keyLinkApiSetAgentIdRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.keyLinkBeta().setAgentId(modifySigningKeyAgentIdDto,\ + source: "CompletableFuture> response = fireblocks.keyLink().setAgentId(modifySigningKeyAgentIdDto,\ \ keyId);" - lang: Python - source: "response = fireblocks.key_link_beta.set_agent_id(modify_signing_key_agent_id_dto,\ + source: "response = fireblocks.key_link.set_agent_id(modify_signing_key_agent_id_dto,\ \ key_id);" x-content-type: application/json x-accepts: @@ -16353,33 +16350,32 @@ paths: $ref: "#/components/responses/Error" summary: Register signing keys in bulk tags: - - Key Link (Beta) + - Key Link x-rate-limit-category: async x-readme: code-samples: - language: typescript code: "const response: Promise>\ - \ = fireblocks.keyLinkBeta.createBulkSigningKeys(keyLinkBetaApiCreateBulkSigningKeysRequest);" + \ = fireblocks.keyLink.createBulkSigningKeys(keyLinkApiCreateBulkSigningKeysRequest);" name: Fireblocks SDK TypeScript example - language: java code: "CompletableFuture> response\ - \ = fireblocks.keyLinkBeta().createBulkSigningKeys(createBulkSigningKeys,\ + \ = fireblocks.keyLink().createBulkSigningKeys(createBulkSigningKeys,\ \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.key_link_beta.create_bulk_signing_keys(create_bulk_signing_keys,\ + code: "response = fireblocks.key_link.create_bulk_signing_keys(create_bulk_signing_keys,\ \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript source: "const response: Promise>\ - \ = fireblocks.keyLinkBeta.createBulkSigningKeys(keyLinkBetaApiCreateBulkSigningKeysRequest);" + \ = fireblocks.keyLink.createBulkSigningKeys(keyLinkApiCreateBulkSigningKeysRequest);" - lang: Java source: "CompletableFuture> response\ - \ = fireblocks.keyLinkBeta().createBulkSigningKeys(createBulkSigningKeys,\ - \ idempotencyKey);" + \ = fireblocks.keyLink().createBulkSigningKeys(createBulkSigningKeys, idempotencyKey);" - lang: Python - source: "response = fireblocks.key_link_beta.create_bulk_signing_keys(create_bulk_signing_keys,\ + source: "response = fireblocks.key_link.create_bulk_signing_keys(create_bulk_signing_keys,\ \ idempotency_key);" x-content-type: application/json x-accepts: @@ -16423,31 +16419,31 @@ paths: $ref: "#/components/responses/Error" summary: Get bulk registration jobs tags: - - Key Link (Beta) + - Key Link x-rate-limit-category: query x-readme: code-samples: - language: typescript code: "const response: Promise>\ - \ = fireblocks.keyLinkBeta.getBulkSigningKeysJobs(keyLinkBetaApiGetBulkSigningKeysJobsRequest);" + \ = fireblocks.keyLink.getBulkSigningKeysJobs(keyLinkApiGetBulkSigningKeysJobsRequest);" name: Fireblocks SDK TypeScript example - language: java code: "CompletableFuture> response\ - \ = fireblocks.keyLinkBeta().getBulkSigningKeysJobs(pageCursor, pageSize);" + \ = fireblocks.keyLink().getBulkSigningKeysJobs(pageCursor, pageSize);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.key_link_beta.get_bulk_signing_keys_jobs(page_cursor,\ + code: "response = fireblocks.key_link.get_bulk_signing_keys_jobs(page_cursor,\ \ page_size);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript source: "const response: Promise>\ - \ = fireblocks.keyLinkBeta.getBulkSigningKeysJobs(keyLinkBetaApiGetBulkSigningKeysJobsRequest);" + \ = fireblocks.keyLink.getBulkSigningKeysJobs(keyLinkApiGetBulkSigningKeysJobsRequest);" - lang: Java source: "CompletableFuture> response\ - \ = fireblocks.keyLinkBeta().getBulkSigningKeysJobs(pageCursor, pageSize);" + \ = fireblocks.keyLink().getBulkSigningKeysJobs(pageCursor, pageSize);" - lang: Python - source: "response = fireblocks.key_link_beta.get_bulk_signing_keys_jobs(page_cursor,\ + source: "response = fireblocks.key_link.get_bulk_signing_keys_jobs(page_cursor,\ \ page_size);" x-accepts: - application/json @@ -16480,33 +16476,34 @@ paths: $ref: "#/components/responses/Error" summary: Get a bulk registration job tags: - - Key Link (Beta) + - Key Link x-rate-limit-category: query x-readme: code-samples: - language: typescript code: "const response: Promise> =\ - \ fireblocks.keyLinkBeta.getBulkSigningKeysJob(keyLinkBetaApiGetBulkSigningKeysJobRequest);" + \ fireblocks.keyLink.getBulkSigningKeysJob(keyLinkApiGetBulkSigningKeysJobRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.keyLinkBeta().getBulkSigningKeysJob(jobId); + code: CompletableFuture> response = fireblocks.keyLink().getBulkSigningKeysJob(jobId); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.key_link_beta.get_bulk_signing_keys_job(job_id); + code: response = fireblocks.key_link.get_bulk_signing_keys_job(job_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript source: "const response: Promise> =\ - \ fireblocks.keyLinkBeta.getBulkSigningKeysJob(keyLinkBetaApiGetBulkSigningKeysJobRequest);" + \ fireblocks.keyLink.getBulkSigningKeysJob(keyLinkApiGetBulkSigningKeysJobRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.keyLinkBeta().getBulkSigningKeysJob(jobId); + source: CompletableFuture> response = fireblocks.keyLink().getBulkSigningKeysJob(jobId); - lang: Python - source: response = fireblocks.key_link_beta.get_bulk_signing_keys_job(job_id); + source: response = fireblocks.key_link.get_bulk_signing_keys_job(job_id); x-accepts: - application/json /key_link/validation_keys: get: - description: Returns the list of validation keys in the workspace + description: "Returns the list of validation keys in the workspace. By default,\ + \ revoked keys are filtered out. Use `includeRevoked=true` to show all keys." operationId: getValidationKeysList parameters: - description: Cursor to the next page @@ -16552,6 +16549,15 @@ paths: - DESC type: string style: form + - description: Include revoked validation keys in the response + explode: true + in: query + name: includeRevoked + required: false + schema: + default: false + type: boolean + style: form responses: "200": content: @@ -16567,34 +16573,34 @@ paths: $ref: "#/components/responses/Error" summary: Get list of registered validation keys tags: - - Key Link (Beta) + - Key Link x-rate-limit-category: query x-readme: code-samples: - language: typescript code: "const response: Promise>\ - \ = fireblocks.keyLinkBeta.getValidationKeysList(keyLinkBetaApiGetValidationKeysListRequest);" + \ = fireblocks.keyLink.getValidationKeysList(keyLinkApiGetValidationKeysListRequest);" name: Fireblocks SDK TypeScript example - language: java code: "CompletableFuture> response\ - \ = fireblocks.keyLinkBeta().getValidationKeysList(pageCursor, pageSize,\ - \ sortBy, order);" + \ = fireblocks.keyLink().getValidationKeysList(pageCursor, pageSize, sortBy,\ + \ order, includeRevoked);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.key_link_beta.get_validation_keys_list(page_cursor,\ - \ page_size, sort_by, order);" + code: "response = fireblocks.key_link.get_validation_keys_list(page_cursor,\ + \ page_size, sort_by, order, include_revoked);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript source: "const response: Promise>\ - \ = fireblocks.keyLinkBeta.getValidationKeysList(keyLinkBetaApiGetValidationKeysListRequest);" + \ = fireblocks.keyLink.getValidationKeysList(keyLinkApiGetValidationKeysListRequest);" - lang: Java source: "CompletableFuture> response\ - \ = fireblocks.keyLinkBeta().getValidationKeysList(pageCursor, pageSize,\ - \ sortBy, order);" + \ = fireblocks.keyLink().getValidationKeysList(pageCursor, pageSize, sortBy,\ + \ order, includeRevoked);" - lang: Python - source: "response = fireblocks.key_link_beta.get_validation_keys_list(page_cursor,\ - \ page_size, sort_by, order);" + source: "response = fireblocks.key_link.get_validation_keys_list(page_cursor,\ + \ page_size, sort_by, order, include_revoked);" x-accepts: - application/json post: @@ -16633,33 +16639,31 @@ paths: $ref: "#/components/responses/Error" summary: Add a new validation key tags: - - Key Link (Beta) + - Key Link x-rate-limit-category: write x-readme: code-samples: - language: typescript code: "const response: Promise>\ - \ = fireblocks.keyLinkBeta.createValidationKey(keyLinkBetaApiCreateValidationKeyRequest);" + \ = fireblocks.keyLink.createValidationKey(keyLinkApiCreateValidationKeyRequest);" name: Fireblocks SDK TypeScript example - language: java code: "CompletableFuture> response\ - \ = fireblocks.keyLinkBeta().createValidationKey(createValidationKeyDto,\ - \ idempotencyKey);" + \ = fireblocks.keyLink().createValidationKey(createValidationKeyDto, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.key_link_beta.create_validation_key(create_validation_key_dto,\ + code: "response = fireblocks.key_link.create_validation_key(create_validation_key_dto,\ \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript source: "const response: Promise>\ - \ = fireblocks.keyLinkBeta.createValidationKey(keyLinkBetaApiCreateValidationKeyRequest);" + \ = fireblocks.keyLink.createValidationKey(keyLinkApiCreateValidationKeyRequest);" - lang: Java source: "CompletableFuture> response\ - \ = fireblocks.keyLinkBeta().createValidationKey(createValidationKeyDto,\ - \ idempotencyKey);" + \ = fireblocks.keyLink().createValidationKey(createValidationKeyDto, idempotencyKey);" - lang: Python - source: "response = fireblocks.key_link_beta.create_validation_key(create_validation_key_dto,\ + source: "response = fireblocks.key_link.create_validation_key(create_validation_key_dto,\ \ idempotency_key);" x-content-type: application/json x-accepts: @@ -16691,32 +16695,33 @@ paths: $ref: "#/components/responses/Error" summary: Get a validation key by `keyId` tags: - - Key Link (Beta) + - Key Link x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.keyLinkBeta.getValidationKey(keyLinkBetaApiGetValidationKeyRequest);" + code: "const response: Promise> = fireblocks.keyLink.getValidationKey(keyLinkApiGetValidationKeyRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.keyLinkBeta().getValidationKey(keyId); + code: CompletableFuture> response = fireblocks.keyLink().getValidationKey(keyId); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.key_link_beta.get_validation_key(key_id); + code: response = fireblocks.key_link.get_validation_key(key_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.keyLinkBeta.getValidationKey(keyLinkBetaApiGetValidationKeyRequest);" + source: "const response: Promise> = fireblocks.keyLink.getValidationKey(keyLinkApiGetValidationKeyRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.keyLinkBeta().getValidationKey(keyId); + source: CompletableFuture> response = fireblocks.keyLink().getValidationKey(keyId); - lang: Python - source: response = fireblocks.key_link_beta.get_validation_key(key_id); + source: response = fireblocks.key_link.get_validation_key(key_id); x-accepts: - application/json patch: - description: Allows disabling validation key even if it has not expired yet. - It is not allowed to enable the validation key back. Another key has to be - used for future validations. + deprecated: true + description: |- + DEPRECATED - Please use `POST /key_link/validation_keys/{keyId}/revoke` instead. + Allows disabling validation key even if it has not expired yet. It is not allowed to enable the validation key back. Another key has to be used for future validations. operationId: disableValidationKey parameters: - description: The unique identifier for the validation key provided by Fireblocks @@ -16748,38 +16753,108 @@ paths: $ref: "#/components/responses/Error" summary: Disables a validation key tags: - - Key Link (Beta) + - Key Link x-rate-limit-category: write + x-lifecycle: + state: deprecated + deprecated_at: 2026-11-01T00:00:00Z + sunset_at: 2027-01-01T00:00:00Z + migration_guide: https://developers.fireblocks.com/reference/revokevalidationkey + replacement_endpoint: "/v1/key_link/validation_keys/{keyId}/revoke" x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.keyLinkBeta.disableValidationKey(keyLinkBetaApiDisableValidationKeyRequest);" + code: "const response: Promise> = fireblocks.keyLink.disableValidationKey(keyLinkApiDisableValidationKeyRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.keyLinkBeta().disableValidationKey(modifyValidationKeyDto,\ + code: "CompletableFuture> response = fireblocks.keyLink().disableValidationKey(modifyValidationKeyDto,\ \ keyId);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.key_link_beta.disable_validation_key(modify_validation_key_dto,\ + code: "response = fireblocks.key_link.disable_validation_key(modify_validation_key_dto,\ \ key_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.keyLinkBeta.disableValidationKey(keyLinkBetaApiDisableValidationKeyRequest);" + source: "const response: Promise> = fireblocks.keyLink.disableValidationKey(keyLinkApiDisableValidationKeyRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.keyLinkBeta().disableValidationKey(modifyValidationKeyDto,\ + source: "CompletableFuture> response = fireblocks.keyLink().disableValidationKey(modifyValidationKeyDto,\ \ keyId);" - lang: Python - source: "response = fireblocks.key_link_beta.disable_validation_key(modify_validation_key_dto,\ + source: "response = fireblocks.key_link.disable_validation_key(modify_validation_key_dto,\ \ key_id);" x-content-type: application/json x-accepts: - application/json + /key_link/validation_keys/{keyId}/revoke: + post: + description: "Revokes a validation key, making it permanently unusable for validation.\ + \ Once revoked, a key cannot be un-revoked. Another key has to be used for\ + \ future validations." + operationId: revokeValidationKey + parameters: + - 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." + explode: false + in: header + name: Idempotency-Key + required: false + schema: + type: string + style: simple + - description: The unique identifier for the validation key provided by Fireblocks + explode: false + in: path + name: keyId + required: true + schema: + example: 46a92767-5f93-4a46-9eed-f012196bb4fc + type: string + style: simple + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/ValidationKeyDto" + description: Revoked validation key data + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Revokes a validation key + tags: + - Key Link + x-rate-limit-category: write + x-readme: + code-samples: + - language: typescript + code: "const response: Promise> = fireblocks.keyLink.revokeValidationKey(keyLinkApiRevokeValidationKeyRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response = fireblocks.keyLink().revokeValidationKey(keyId,\ + \ idempotencyKey);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.key_link.revoke_validation_key(key_id, idempotency_key);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise> = fireblocks.keyLink.revokeValidationKey(keyLinkApiRevokeValidationKeyRequest);" + - lang: Java + source: "CompletableFuture> response = fireblocks.keyLink().revokeValidationKey(keyId,\ + \ idempotencyKey);" + - lang: Python + source: "response = fireblocks.key_link.revoke_validation_key(key_id, idempotency_key);" + x-accepts: + - application/json /keys/mpc/list: get: description: "Returns a list of MPC signing keys of the workspace. For each\ - \ key, the list of players associated with it is attached.\n**Note:** \nThis\ - \ endpoint is currently in beta and might be subject to changes." + \ key, the list of players associated with it is attached." operationId: getMpcKeysList parameters: [] responses: @@ -16796,36 +16871,34 @@ paths: $ref: "#/components/responses/Error" summary: Get list of mpc keys tags: - - Keys (Beta) + - Keys x-rate-limit-category: query x-readme: code-samples: - language: typescript code: "const response: Promise> =\ - \ fireblocks.keysBeta.getMpcKeysList();" + \ fireblocks.keys.getMpcKeysList();" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.keysBeta().getMpcKeysList(); + code: CompletableFuture> response = fireblocks.keys().getMpcKeysList(); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.keys_beta.get_mpc_keys_list(); + code: response = fireblocks.keys.get_mpc_keys_list(); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript source: "const response: Promise> =\ - \ fireblocks.keysBeta.getMpcKeysList();" + \ fireblocks.keys.getMpcKeysList();" - lang: Java - source: CompletableFuture> response = fireblocks.keysBeta().getMpcKeysList(); + source: CompletableFuture> response = fireblocks.keys().getMpcKeysList(); - lang: Python - source: response = fireblocks.keys_beta.get_mpc_keys_list(); + source: response = fireblocks.keys.get_mpc_keys_list(); x-accepts: - application/json /keys/mpc/list/{userId}: get: - description: |- - Returns a list of MPC signing keys of a specific user. For each key, the list of players associated with it is attached. - **Note:** - This endpoint is currently in beta and might be subject to changes. + description: "Returns a list of MPC signing keys of a specific user. For each\ + \ key, the list of players associated with it is attached." operationId: getMpcKeysListByUser parameters: - description: The id for the user @@ -16851,28 +16924,28 @@ paths: $ref: "#/components/responses/Error" summary: Get list of mpc keys by `userId` tags: - - Keys (Beta) + - Keys x-rate-limit-category: query x-readme: code-samples: - language: typescript code: "const response: Promise> =\ - \ fireblocks.keysBeta.getMpcKeysListByUser(keysBetaApiGetMpcKeysListByUserRequest);" + \ fireblocks.keys.getMpcKeysListByUser(keysApiGetMpcKeysListByUserRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.keysBeta().getMpcKeysListByUser(userId); + code: CompletableFuture> response = fireblocks.keys().getMpcKeysListByUser(userId); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.keys_beta.get_mpc_keys_list_by_user(user_id); + code: response = fireblocks.keys.get_mpc_keys_list_by_user(user_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript source: "const response: Promise> =\ - \ fireblocks.keysBeta.getMpcKeysListByUser(keysBetaApiGetMpcKeysListByUserRequest);" + \ fireblocks.keys.getMpcKeysListByUser(keysApiGetMpcKeysListByUserRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.keysBeta().getMpcKeysListByUser(userId); + source: CompletableFuture> response = fireblocks.keys().getMpcKeysListByUser(userId); - lang: Python - source: response = fireblocks.keys_beta.get_mpc_keys_list_by_user(user_id); + source: response = fireblocks.keys.get_mpc_keys_list_by_user(user_id); x-accepts: - application/json /network_connections: @@ -17295,6 +17368,11 @@ paths: tags: - Network connections x-rate-limit-category: query + x-lifecycle: + state: deprecated + deprecated_at: 2024-11-04T00:00:00Z + sunset_at: 2027-06-01T00:00:00Z + replacement_endpoint: /v1/network_ids/search x-readme: code-samples: - language: typescript @@ -33396,9 +33474,94 @@ paths: x-accepts: - application/json /screening/trlink/customers/integration/{customerIntegrationId}/transactions/{txId}/manual_decision: + get: + description: "Returns the current manual missing-TRM decision for a transaction.\ + \ Use to follow a decision that is not yet applied, or to check status at\ + \ any time." + operationId: getTRLinkManualDecision + parameters: + - description: Customer integration unique identifier + example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + explode: false + in: path + name: customerIntegrationId + required: true + schema: + format: uuid + type: string + style: simple + - description: Fireblocks transaction unique identifier + example: b70701f4-d7b1-4795-a8ee-b09cdb5b850e + explode: false + in: path + name: txId + required: true + schema: + format: uuid + type: string + style: simple + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/TRLinkManualDecisionResponse" + description: "Current manual decision (status APPLIED, ACCEPTED, or PRE_ACCEPTED)." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: "No manual decision for this transaction (code 2128), or customer\ + \ integration not found or not owned by tenant (code 2125)." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Get manual decision for missing TRM + tags: + - TRLink + x-rate-limit-category: read + x-lifecycle: + state: ga + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.tRLink.getTRLinkManualDecision(tRLinkApiGetTRLinkManualDecisionRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response\ + \ = fireblocks.tRLink().getTRLinkManualDecision(customerIntegrationId,\ + \ txId);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.t_r_link.get_t_r_link_manual_decision(customer_integration_id,\ + \ tx_id);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.tRLink.getTRLinkManualDecision(tRLinkApiGetTRLinkManualDecisionRequest);" + - lang: Java + source: "CompletableFuture> response\ + \ = fireblocks.tRLink().getTRLinkManualDecision(customerIntegrationId, txId);" + - lang: Python + source: "response = fireblocks.t_r_link.get_t_r_link_manual_decision(customer_integration_id,\ + \ tx_id);" + x-accepts: + - application/json post: - description: Accept or reject destinations stuck in NoTRM step without waiting - for TRP webhook or policy timeout. + description: "Accept or reject destinations waiting for a Travel Rule message\ + \ (missing TRM), without waiting for a TRP webhook or the missing-TRM policy\ + \ timeout. You can submit before a destination enters the missing-TRM wait;\ + \ if it can't be updated immediately, the decision is applied on the next\ + \ processing attempt instead (status ACCEPTED). Check `status` in the response\ + \ to see whether the decision has been applied." operationId: createTRLinkManualDecision parameters: - description: Customer integration unique identifier @@ -33444,7 +33607,41 @@ paths: application/json: schema: $ref: "#/components/schemas/TRLinkManualDecisionResponse" - description: Decision applied successfully + description: "Decision applied (status APPLIED), accepted for the next processing\ + \ attempt (status ACCEPTED), or accepted early (status PRE_ACCEPTED)." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: Customer integration not found or not owned by tenant (code + 2125). + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: Manual decision already final for this transaction (code 2127) + or transaction screening already completed (code 2129). + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "425": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: Too Early - screening has not started for this transaction + yet. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" summary: Manual decision for missing TRM @@ -38230,8 +38427,10 @@ paths: description: "Create multiple vault accounts by running an async job. \n\ - The HBAR, TON, SUI, TERRA, ALGO, and DOT blockchains are not supported.\n\ - These endpoints are currently in beta and might be subject to changes.\n\ - - Limited to a maximum of 10,000 accounts per operation.\n\n**Endpoint Permissions:**\ - \ Admin, Non-Signing Admin, Signer, Approver, Editor.\n" + - Limited to a maximum of 10,000 accounts per operation.\n- With `vaultType:\ + \ KEY_LINK`, creates Key Link vault accounts; set `autoAssign: true` to bind\ + \ them to the workspace's signing keys (see `vaultType` and `autoAssign`).\n\ + \n**Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor.\n" operationId: createMultipleAccounts parameters: - description: "A unique identifier for the request. If the request is sent\ @@ -43021,6 +43220,8 @@ components: type: array CreateMultipleAccountsRequest: example: + vaultType: KEY_LINK + autoAssign: true names: - first va - client 65502e71-ecdf-48da-a074-c1753befc7fb @@ -43077,6 +43278,25 @@ components: type: string maxItems: 20 type: array + vaultType: + default: MPC + description: | + Type of vault accounts to create. The default type is MPC. + KEY_LINK creates Key Link vault accounts. It requires a Key Link workspace. With autoAssign set to true, the vault accounts are bound to the workspace's Key Link signing keys, assigned automatically from the available keys, and only one KEY_LINK bulk creation with autoAssign set to true can run per workspace at a time. With autoAssign set to false (the default), the vault accounts are created without keys. + With KEY_LINK, names, vaultAccountNamesStartingIndex, prefix and tagIds work as they do for MPC, and baseAssetIds may be empty to create vault accounts without wallets. + enum: + - MPC + - KEY_LINK + example: KEY_LINK + type: string + autoAssign: + default: false + description: | + Applicable only when vaultType is KEY_LINK. For MPC, this parameter is ignored. + If set to true, keys are assigned to every created vault account. If there are not enough available keys to assign, the request returns an error and no vault accounts are created. + If set to false, the vault accounts are created without any keys, and baseAssetIds must be empty because wallets can only be created for vault accounts that have keys. + example: true + type: boolean required: - baseAssetIds - count @@ -46732,8 +46952,10 @@ components: example: createdAt: 12345633 publicKeyPem: '-----BEGIN PUBLIC KEY ... END PUBLIC KEY-----' + expirationTime: 17098568 daysTillExpired: 365 keyId: 46a92767-5f93-4a46-9eed-f012196bb4fc + revoked: false enabled: false properties: keyId: @@ -46758,12 +46980,23 @@ components: description: Creation date (timestamp) in milliseconds. example: 12345633 type: number + expirationTime: + description: Expiration date (Unix timestamp) in milliseconds. + example: 17098568 + type: number + revoked: + default: false + description: True if the validation key is revoked. + example: false + type: boolean required: - createdAt - daysTillExpired - enabled + - expirationTime - keyId - publicKeyPem + - revoked type: object GetValidationKeyResponseDto: example: @@ -46771,13 +47004,17 @@ components: data: - createdAt: 12345633 publicKeyPem: '-----BEGIN PUBLIC KEY ... END PUBLIC KEY-----' + expirationTime: 17098568 daysTillExpired: 365 keyId: 46a92767-5f93-4a46-9eed-f012196bb4fc + revoked: false enabled: false - createdAt: 12345633 publicKeyPem: '-----BEGIN PUBLIC KEY ... END PUBLIC KEY-----' + expirationTime: 17098568 daysTillExpired: 365 keyId: 46a92767-5f93-4a46-9eed-f012196bb4fc + revoked: false enabled: false properties: data: @@ -58048,6 +58285,13 @@ components: type: string oneTimeAddress: $ref: "#/components/schemas/OneTimeAddress" + memo: + description: |- + Tempo TIP-20 memo, sent on-chain with the transfer to this destination. Exactly 32 bytes once UTF-8 encoded. NOTES: + - The memo is public and permanent on-chain, so do not put sensitive data in it. + - A memo is currently supported only for a transfer with a single destination + example: invoice-4968-reference-83b4-7adc + type: string required: - type type: object @@ -58211,10 +58455,6 @@ components: maximum: 16 minimum: 1 type: integer - memo: - description: Beta. Tempo TIP-20 memo (max 32 bytes). - example: invoice-1234 - type: string type: object description: Request body for creating a Tempo transfer transaction. example: @@ -58233,7 +58473,6 @@ components: type: VAULT_ACCOUNT id: "1" feeCurrency: PATHUSD_TEMPO_54V8 - memo: invoice-1234 nonceStrategy: SEQUENTIAL source: type: VAULT_ACCOUNT @@ -81656,9 +81895,11 @@ components: - PENDING_AUTHORIZATION - PENDING_3RD_PARTY_MANUAL_APPROVAL - PENDING_3RD_PARTY + - SIGNED - BROADCASTING - PENDING_AML_SCREENING - CONFIRMING + - COMPLETED - PARTIALLY_COMPLETED - PENDING_EMAIL_APPROVAL - CANCELLED @@ -86140,44 +86381,36 @@ components: required: - subsidiaryVaspId type: object + TRLinkManualDecisionResponseStatusEnum: + description: | + APPLIED - Decision applied to at least one destination immediately. ACCEPTED - Intent stored for deferred apply on the next processing attempt. PRE_ACCEPTED - Intent stored on the transaction before destinations entered the missing-TRM wait. + enum: + - APPLIED + - ACCEPTED + - PRE_ACCEPTED + example: APPLIED + type: string TRLinkManualDecisionAction: - description: Decision action for destinations in NoTRM status + description: Decision action for destinations waiting for a Travel Rule message + (missing TRM) enum: - ACCEPT - REJECT example: ACCEPT type: string - TRLinkManualDecisionRequest: - description: Request to manually accept or reject destinations stuck in NoTRM - status - example: - reason: Internal KYC approved - action: ACCEPT - properties: - action: - $ref: "#/components/schemas/TRLinkManualDecisionAction" - reason: - description: Optional reason for the manual decision (e.g. 'Internal KYC - approved'). Do not include PII. - example: Internal KYC approved - maxLength: 500 - type: string - required: - - action - type: object TRLinkManualDecisionSource: - description: Source of the manual decision + description: Source of the manual decision. Values are lowercase. enum: - - MANUAL - - POLICY - example: MANUAL + - manual + - policy + example: manual type: string TRLinkManualDecisionDestinationDetail: description: Per-destination result of the manual decision example: destinationScreeningId: 3fa85f64-5717-4562-b3fc-2c963f66afa6 applied: true - skipReason: skipReason + skipReason: deferred apply properties: destinationScreeningId: description: Destination screening record ID @@ -86188,16 +86421,19 @@ components: example: true type: boolean skipReason: - description: Reason if the destination was skipped + description: "Reason when applied is false. Common values: deferred apply\ + \ (destination could not be updated immediately), already applied, status\ + \ changed, trmId exists, destination not found." + example: deferred apply nullable: true type: string - example: null required: - applied - destinationScreeningId type: object TRLinkManualDecisionResponse: - description: Response containing the result of the manual decision + description: Response containing the result of a manual missing-TRM decision + (POST write or GET read). example: destinationsSkipped: 0 destinationsAffected: 2 @@ -86206,21 +86442,24 @@ components: details: - destinationScreeningId: 3fa85f64-5717-4562-b3fc-2c963f66afa6 applied: true - skipReason: skipReason + skipReason: deferred apply - destinationScreeningId: 3fa85f64-5717-4562-b3fc-2c963f66afa6 applied: true - skipReason: skipReason + skipReason: deferred apply - destinationScreeningId: 3fa85f64-5717-4562-b3fc-2c963f66afa6 applied: true - skipReason: skipReason + skipReason: deferred apply - destinationScreeningId: 3fa85f64-5717-4562-b3fc-2c963f66afa6 applied: true - skipReason: skipReason + skipReason: deferred apply - destinationScreeningId: 3fa85f64-5717-4562-b3fc-2c963f66afa6 applied: true - skipReason: skipReason - source: MANUAL + skipReason: deferred apply + source: manual + status: APPLIED properties: + status: + $ref: "#/components/schemas/TRLinkManualDecisionResponseStatusEnum" action: $ref: "#/components/schemas/TRLinkManualDecisionAction" source: @@ -86250,8 +86489,27 @@ components: - destinationsSkipped - details - source + - status - txId type: object + TRLinkManualDecisionRequest: + description: Request to manually accept or reject destinations waiting for a + Travel Rule message (missing TRM) + example: + reason: Internal KYC approved + action: ACCEPT + properties: + action: + $ref: "#/components/schemas/TRLinkManualDecisionAction" + reason: + description: Optional reason for the manual decision (e.g. 'Internal KYC + approved'). Do not include PII. + example: Internal KYC approved + maxLength: 500 + type: string + required: + - action + type: object TRLinkRequiredField: description: An IVMS101 field requirement with its type and path example: @@ -94918,12 +95176,12 @@ components: type: object AddCosignerRequest: example: + apiUserId: 123e4567-e89b-12d3-a456-426614174000 existingCosigner: false name: My Cosigner 1 - apiKeyId: 123e4567-e89b-12d3-a456-426614174000 properties: - apiKeyId: - description: The id of the API key to be paired with the cosigner + apiUserId: + description: The id of the API user to be paired with the cosigner example: 123e4567-e89b-12d3-a456-426614174000 format: uuid type: string @@ -94938,18 +95196,18 @@ components: example: false type: boolean required: - - apiKeyId + - apiUserId - name type: object AddCosignerResponse: example: + apiUserId: 123e4567-e89b-12d3-a456-426614174000 pendingCosignerId: 44fcead0-7053-4831-a53a-df7fb90d440f existingCosigner: false name: My Cosigner 1 - apiKeyId: 123e4567-e89b-12d3-a456-426614174000 properties: - apiKeyId: - description: The id of the API key to be paired with the cosigner + apiUserId: + description: The id of the API user to be paired with the cosigner example: 123e4567-e89b-12d3-a456-426614174000 format: uuid type: string @@ -94969,7 +95227,7 @@ components: format: uuid type: string required: - - apiKeyId + - apiUserId - name - pendingCosignerId type: object @@ -95009,7 +95267,7 @@ components: required: - url type: object - ApiKey: + CosignerApiUser: example: callbackHandler: certPublicKeyHash: certPublicKeyHash @@ -95022,12 +95280,12 @@ components: id: 44fcead0-7053-4831-a53a-df7fb90d440f properties: id: - description: The unique identifier of the API key + description: The unique identifier of the API user example: 44fcead0-7053-4831-a53a-df7fb90d440f format: uuid type: string lastSeen: - description: The date the API key was last seen + description: The date the API user was last seen example: 2021-07-01T00:00:00Z format: date-time type: string @@ -95036,33 +95294,20 @@ components: required: - id type: object - ApiKeysPaginatedResponse: + ApiUsersPaginatedResponse: example: next: eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9 data: - - callbackHandler: - certPublicKeyHash: certPublicKeyHash - publicKey: |- - -----BEGIN PUBLIC KEY----- - ... truncated ... - -----END PUBLIC KEY----- - url: https://example.com/callback-handler - lastSeen: 2021-07-01T00:00:00Z - id: 44fcead0-7053-4831-a53a-df7fb90d440f - - callbackHandler: - certPublicKeyHash: certPublicKeyHash - publicKey: |- - -----BEGIN PUBLIC KEY----- - ... truncated ... - -----END PUBLIC KEY----- - url: https://example.com/callback-handler - lastSeen: 2021-07-01T00:00:00Z - id: 44fcead0-7053-4831-a53a-df7fb90d440f + - id: 44fcead0-7053-4831-a53a-df7fb90d440f + lastSeen: 2021-07-01T00:00:00.000Z properties: data: description: The data of the current page + example: + - id: 44fcead0-7053-4831-a53a-df7fb90d440f + lastSeen: 2021-07-01T00:00:00.000Z items: - $ref: "#/components/schemas/ApiKey" + $ref: "#/components/schemas/CosignerApiUser" type: array next: description: The ID of the next page @@ -95103,7 +95348,7 @@ components: required: - url type: object - PairApiKeyRequest: + PairApiUserRequest: example: callbackHandler: cert: |- @@ -95118,7 +95363,7 @@ components: callbackHandler: $ref: "#/components/schemas/CallbackHandlerRequest" type: object - PairApiKeyResponse: + PairApiUserResponse: example: callbackHandler: cert: |- @@ -95132,7 +95377,7 @@ components: id: 44fcead0-7053-4831-a53a-df7fb90d440f properties: id: - description: The unique identifier of the API key + description: The unique identifier of the API user example: 44fcead0-7053-4831-a53a-df7fb90d440f format: uuid type: string diff --git a/build.gradle b/build.gradle index 607bfe7b..d43e483e 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ apply plugin: 'eclipse' apply plugin: 'com.diffplug.spotless' group = 'com.fireblocks.sdk' -version = '35.2.0' +version = '0.0.0' buildscript { repositories { diff --git a/docs/AddCosignerRequest.md b/docs/AddCosignerRequest.md index 57fd31a0..da4ff8e1 100644 --- a/docs/AddCosignerRequest.md +++ b/docs/AddCosignerRequest.md @@ -7,7 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**apiKeyId** | **UUID** | The id of the API key to be paired with the cosigner | | +|**apiUserId** | **UUID** | The id of the API user to be paired with the cosigner | | |**name** | **String** | The name of the cosigner | | |**existingCosigner** | **Boolean** | Whether the cosigner already exists in another workspace | [optional] | diff --git a/docs/AddCosignerResponse.md b/docs/AddCosignerResponse.md index 0d6119e3..dc1ed65c 100644 --- a/docs/AddCosignerResponse.md +++ b/docs/AddCosignerResponse.md @@ -7,7 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**apiKeyId** | **UUID** | The id of the API key to be paired with the cosigner | | +|**apiUserId** | **UUID** | The id of the API user to be paired with the cosigner | | |**name** | **String** | The name of the cosigner | | |**existingCosigner** | **Boolean** | Whether the cosigner already exists in another workspace | [optional] | |**pendingCosignerId** | **UUID** | The unique identifier of a pending cosigner | | diff --git a/docs/ApiKeysPaginatedResponse.md b/docs/ApiUsersPaginatedResponse.md similarity index 59% rename from docs/ApiKeysPaginatedResponse.md rename to docs/ApiUsersPaginatedResponse.md index db59c46c..e9adc033 100644 --- a/docs/ApiKeysPaginatedResponse.md +++ b/docs/ApiUsersPaginatedResponse.md @@ -1,13 +1,13 @@ -# ApiKeysPaginatedResponse +# ApiUsersPaginatedResponse ## Properties | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**data** | [**List<ApiKey>**](ApiKey.md) | The data of the current page | | +|**data** | [**List<CosignerApiUser>**](CosignerApiUser.md) | The data of the current page | | |**next** | **String** | The ID of the next page | [optional] | diff --git a/docs/ConsoleUserApi.md b/docs/ConsoleUserApi.md index 5ba25ccd..1da58c84 100644 --- a/docs/ConsoleUserApi.md +++ b/docs/ConsoleUserApi.md @@ -98,7 +98,7 @@ No authorization required Request deletion of a console user -Requests deletion of a console user. The request is asynchronous: it goes through the workspace's configured \"Delete users\" approval policy (Settings > Quorums), exactly as deleting a user from the console does, and the user is removed only once that approval completes. - The workspace must have a \"Delete users\" approval policy (admin quorum or approval group). If \"Delete users\" is Owner-only, which is the default, the request is refused with OWNER_ONLY (2760) and the Owner deletes users in the Console. With an admin quorum, the requesting API user's own approval counts toward the quorum. - Track progress by polling GET /management/users; deletion is complete when the user is disabled. - Please note that this endpoint is available only for API keys with Admin/Non Signing Admin/Security Admin permissions. Endpoint Permission: Admin, Non-Signing Admin, Security Admin. **Note:** This endpoint is currently in beta and might be subject to changes. +Requests deletion of a console user. The request is asynchronous: it goes through the workspace's configured \"Delete users\" approval policy (Settings > Quorums), exactly as deleting a user from the console does, and the user is removed only once that approval completes. - The workspace must have a \"Delete users\" approval policy (admin quorum or approval group). If \"Delete users\" is Owner-only, which is the default, the request is refused with OWNER_ONLY (2760) and the Owner deletes users in the Console. With an admin quorum, the requesting API user's own approval counts toward the quorum. - Track progress by polling GET /management/users; deletion is complete when the user is disabled. - Please note that this endpoint is available only for API keys with Admin/Non Signing Admin/Security Admin permissions. Endpoint Permission: Admin, Non-Signing Admin, Security Admin. **Note:** This endpoint is in Early Availability (EA) and may change or break before it reaches GA. ### Example diff --git a/docs/ApiKey.md b/docs/CosignerApiUser.md similarity index 54% rename from docs/ApiKey.md rename to docs/CosignerApiUser.md index 5d3dd02f..8e7f21ab 100644 --- a/docs/ApiKey.md +++ b/docs/CosignerApiUser.md @@ -1,14 +1,14 @@ -# ApiKey +# CosignerApiUser ## Properties | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**id** | **UUID** | The unique identifier of the API key | | -|**lastSeen** | **OffsetDateTime** | The date the API key was last seen | [optional] | +|**id** | **UUID** | The unique identifier of the API user | | +|**lastSeen** | **OffsetDateTime** | The date the API user was last seen | [optional] | |**callbackHandler** | [**CallbackHandler**](CallbackHandler.md) | | [optional] | diff --git a/docs/CosignersBetaApi.md b/docs/CosignersApi.md similarity index 79% rename from docs/CosignersBetaApi.md rename to docs/CosignersApi.md index eb44150e..c4bde3e7 100644 --- a/docs/CosignersBetaApi.md +++ b/docs/CosignersApi.md @@ -1,19 +1,19 @@ -# CosignersBetaApi +# CosignersApi All URIs are relative to https://developers.fireblocks.com/reference/ | Method | HTTP request | Description | |------------- | ------------- | -------------| -| [**addCosigner**](CosignersBetaApi.md#addCosigner) | **POST** /cosigners | Add cosigner | -| [**getApiKey**](CosignersBetaApi.md#getApiKey) | **GET** /cosigners/{cosignerId}/api_keys/{apiKeyId} | Get API key | -| [**getApiKeys**](CosignersBetaApi.md#getApiKeys) | **GET** /cosigners/{cosignerId}/api_keys | Get all API keys | -| [**getCosigner**](CosignersBetaApi.md#getCosigner) | **GET** /cosigners/{cosignerId} | Get cosigner | -| [**getCosigners**](CosignersBetaApi.md#getCosigners) | **GET** /cosigners | Get all cosigners | -| [**getRequestStatus**](CosignersBetaApi.md#getRequestStatus) | **GET** /cosigners/{cosignerId}/api_keys/{apiKeyId}/{requestId} | Get request status | -| [**pairApiKey**](CosignersBetaApi.md#pairApiKey) | **PUT** /cosigners/{cosignerId}/api_keys/{apiKeyId} | Pair API key | -| [**renameCosigner**](CosignersBetaApi.md#renameCosigner) | **PATCH** /cosigners/{cosignerId} | Rename cosigner | -| [**unpairApiKey**](CosignersBetaApi.md#unpairApiKey) | **DELETE** /cosigners/{cosignerId}/api_keys/{apiKeyId} | Unpair API key | -| [**updateCallbackHandler**](CosignersBetaApi.md#updateCallbackHandler) | **PATCH** /cosigners/{cosignerId}/api_keys/{apiKeyId} | Update API key callback handler | +| [**addCosigner**](CosignersApi.md#addCosigner) | **POST** /cosigners | Add cosigner | +| [**getCosigner**](CosignersApi.md#getCosigner) | **GET** /cosigners/{cosignerId} | Get cosigner | +| [**getCosignerApiUser**](CosignersApi.md#getCosignerApiUser) | **GET** /cosigners/{cosignerId}/api_users/{apiUserId} | Get API user | +| [**getCosignerApiUserRequestStatus**](CosignersApi.md#getCosignerApiUserRequestStatus) | **GET** /cosigners/{cosignerId}/api_users/{apiUserId}/{requestId} | Get API user request status | +| [**getCosignerApiUsers**](CosignersApi.md#getCosignerApiUsers) | **GET** /cosigners/{cosignerId}/api_users | Get all API users | +| [**getCosigners**](CosignersApi.md#getCosigners) | **GET** /cosigners | Get all cosigners | +| [**pairCosignerApiUser**](CosignersApi.md#pairCosignerApiUser) | **PUT** /cosigners/{cosignerId}/api_users/{apiUserId} | Pair API user | +| [**renameCosigner**](CosignersApi.md#renameCosigner) | **PATCH** /cosigners/{cosignerId} | Rename cosigner | +| [**unpairCosignerApiUser**](CosignersApi.md#unpairCosignerApiUser) | **DELETE** /cosigners/{cosignerId}/api_users/{apiUserId} | Unpair API user | +| [**updateCosignerApiUserCallbackHandler**](CosignersApi.md#updateCosignerApiUserCallbackHandler) | **PATCH** /cosigners/{cosignerId}/api_users/{apiUserId} | Update API user callback handler | @@ -23,7 +23,7 @@ All URIs are relative to https://developers.fireblocks.com/reference/ Add cosigner -Add a new cosigner. The cosigner will be pending pairing until the API key is manually paired Endpoint Permission: Admin and Non-Signing Admin. +Add a new cosigner. The cosigner will be pending pairing until the API user is manually paired (see `pairCosignerApiUser`). Endpoint Permission: Admin and Non-Signing Admin. ### Example @@ -36,7 +36,7 @@ import com.fireblocks.sdk.BasePath; import com.fireblocks.sdk.Fireblocks; import com.fireblocks.sdk.ConfigurationOptions; import com.fireblocks.sdk.model.*; -import com.fireblocks.sdk.api.CosignersBetaApi; +import com.fireblocks.sdk.api.CosignersApi; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; @@ -51,13 +51,13 @@ public class Example { AddCosignerRequest addCosignerRequest = new AddCosignerRequest(); // AddCosignerRequest | String idempotencyKey = "idempotencyKey_example"; // String | 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. try { - CompletableFuture> response = fireblocks.cosignersBeta().addCosigner(addCosignerRequest, idempotencyKey); + CompletableFuture> response = fireblocks.cosigners().addCosigner(addCosignerRequest, idempotencyKey); System.out.println("Status code: " + response.get().getStatusCode()); System.out.println("Response headers: " + response.get().getHeaders()); System.out.println("Response body: " + response.get().getData()); } catch (InterruptedException | ExecutionException e) { ApiException apiException = (ApiException)e.getCause(); - System.err.println("Exception when calling CosignersBetaApi#addCosigner"); + System.err.println("Exception when calling CosignersApi#addCosigner"); System.err.println("Status code: " + apiException.getCode()); System.err.println("Response headers: " + apiException.getResponseHeaders()); System.err.println("Reason: " + apiException.getResponseBody()); @@ -96,13 +96,13 @@ No authorization required | **0** | Error Response | * X-Request-ID -
| -## getApiKey +## getCosigner -> CompletableFuture> getApiKey getApiKey(cosignerId, apiKeyId) +> CompletableFuture> getCosigner getCosigner(cosignerId) -Get API key +Get cosigner -Get an API key by ID. **Note:** These endpoints are currently in beta and might be subject to changes. Endpoint Permission: Admin and Non-Signing Admin. +Get a cosigner by ID. Endpoint Permission: Admin and Non-Signing Admin. ### Example @@ -115,7 +115,7 @@ import com.fireblocks.sdk.BasePath; import com.fireblocks.sdk.Fireblocks; import com.fireblocks.sdk.ConfigurationOptions; import com.fireblocks.sdk.model.*; -import com.fireblocks.sdk.api.CosignersBetaApi; +import com.fireblocks.sdk.api.CosignersApi; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; @@ -128,15 +128,14 @@ public class Example { Fireblocks fireblocks = new Fireblocks(configurationOptions); UUID cosignerId = UUID.fromString("44fcead0-7053-4831-a53a-df7fb90d440f"); // UUID | The unique identifier of the cosigner - String apiKeyId = "44fcead0-7053-4831-a53a-df7fb90d440f"; // String | The unique identifier of the API key try { - CompletableFuture> response = fireblocks.cosignersBeta().getApiKey(cosignerId, apiKeyId); + CompletableFuture> response = fireblocks.cosigners().getCosigner(cosignerId); System.out.println("Status code: " + response.get().getStatusCode()); System.out.println("Response headers: " + response.get().getHeaders()); System.out.println("Response body: " + response.get().getData()); } catch (InterruptedException | ExecutionException e) { ApiException apiException = (ApiException)e.getCause(); - System.err.println("Exception when calling CosignersBetaApi#getApiKey"); + System.err.println("Exception when calling CosignersApi#getCosigner"); System.err.println("Status code: " + apiException.getCode()); System.err.println("Response headers: " + apiException.getResponseHeaders()); System.err.println("Reason: " + apiException.getResponseBody()); @@ -152,11 +151,10 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| | **cosignerId** | **UUID**| The unique identifier of the cosigner | | -| **apiKeyId** | **String**| The unique identifier of the API key | | ### Return type -CompletableFuture> +CompletableFuture> ### Authorization @@ -171,17 +169,17 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | An ApiKey object | * X-Request-ID -
| +| **200** | A cosigner object | * X-Request-ID -
| | **0** | Error Response | * X-Request-ID -
| -## getApiKeys +## getCosignerApiUser -> CompletableFuture> getApiKeys getApiKeys(cosignerId, order, pageCursor, pageSize) +> CompletableFuture> getCosignerApiUser getCosignerApiUser(cosignerId, apiUserId) -Get all API keys +Get API user -Get all cosigner paired API keys (paginated). **Note:** These endpoints are currently in beta and might be subject to changes. Endpoint Permission: Admin and Non-Signing Admin. +Get an API user by ID. Endpoint Permission: Admin and Non-Signing Admin. ### Example @@ -194,7 +192,7 @@ import com.fireblocks.sdk.BasePath; import com.fireblocks.sdk.Fireblocks; import com.fireblocks.sdk.ConfigurationOptions; import com.fireblocks.sdk.model.*; -import com.fireblocks.sdk.api.CosignersBetaApi; +import com.fireblocks.sdk.api.CosignersApi; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; @@ -207,17 +205,15 @@ public class Example { Fireblocks fireblocks = new Fireblocks(configurationOptions); UUID cosignerId = UUID.fromString("44fcead0-7053-4831-a53a-df7fb90d440f"); // UUID | The unique identifier of the cosigner - String order = "ASC"; // String | ASC / DESC ordering (default DESC) - String pageCursor = "pageCursor_example"; // String | Cursor of the required page - BigDecimal pageSize = new BigDecimal("10"); // BigDecimal | Maximum number of items in the page + String apiUserId = "44fcead0-7053-4831-a53a-df7fb90d440f"; // String | The unique identifier of the API user try { - CompletableFuture> response = fireblocks.cosignersBeta().getApiKeys(cosignerId, order, pageCursor, pageSize); + CompletableFuture> response = fireblocks.cosigners().getCosignerApiUser(cosignerId, apiUserId); System.out.println("Status code: " + response.get().getStatusCode()); System.out.println("Response headers: " + response.get().getHeaders()); System.out.println("Response body: " + response.get().getData()); } catch (InterruptedException | ExecutionException e) { ApiException apiException = (ApiException)e.getCause(); - System.err.println("Exception when calling CosignersBetaApi#getApiKeys"); + System.err.println("Exception when calling CosignersApi#getCosignerApiUser"); System.err.println("Status code: " + apiException.getCode()); System.err.println("Response headers: " + apiException.getResponseHeaders()); System.err.println("Reason: " + apiException.getResponseBody()); @@ -233,13 +229,11 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| | **cosignerId** | **UUID**| The unique identifier of the cosigner | | -| **order** | **String**| ASC / DESC ordering (default DESC) | [optional] [default to DESC] [enum: ASC, DESC] | -| **pageCursor** | **String**| Cursor of the required page | [optional] | -| **pageSize** | **BigDecimal**| Maximum number of items in the page | [optional] [default to 10] | +| **apiUserId** | **String**| The unique identifier of the API user | | ### Return type -CompletableFuture> +CompletableFuture> ### Authorization @@ -254,17 +248,17 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | A paginated response containing ApiKey objects | * X-Request-ID -
| +| **200** | A CosignerApiUser object | * X-Request-ID -
| | **0** | Error Response | * X-Request-ID -
| -## getCosigner +## getCosignerApiUserRequestStatus -> CompletableFuture> getCosigner getCosigner(cosignerId) +> CompletableFuture> getCosignerApiUserRequestStatus getCosignerApiUserRequestStatus(cosignerId, apiUserId, requestId) -Get cosigner +Get API user request status -Get a cosigner by ID. **Note:** These endpoints are currently in beta and might be subject to changes. Endpoint Permission: Admin and Non-Signing Admin. +Get the status of an asynchronous request Endpoint Permission: Admin and Non-Signing Admin. ### Example @@ -277,7 +271,7 @@ import com.fireblocks.sdk.BasePath; import com.fireblocks.sdk.Fireblocks; import com.fireblocks.sdk.ConfigurationOptions; import com.fireblocks.sdk.model.*; -import com.fireblocks.sdk.api.CosignersBetaApi; +import com.fireblocks.sdk.api.CosignersApi; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; @@ -290,14 +284,16 @@ public class Example { Fireblocks fireblocks = new Fireblocks(configurationOptions); UUID cosignerId = UUID.fromString("44fcead0-7053-4831-a53a-df7fb90d440f"); // UUID | The unique identifier of the cosigner + String apiUserId = "44fcead0-7053-4831-a53a-df7fb90d440f"; // String | The unique identifier of the API user + String requestId = "requestId_example"; // String | try { - CompletableFuture> response = fireblocks.cosignersBeta().getCosigner(cosignerId); + CompletableFuture> response = fireblocks.cosigners().getCosignerApiUserRequestStatus(cosignerId, apiUserId, requestId); System.out.println("Status code: " + response.get().getStatusCode()); System.out.println("Response headers: " + response.get().getHeaders()); System.out.println("Response body: " + response.get().getData()); } catch (InterruptedException | ExecutionException e) { ApiException apiException = (ApiException)e.getCause(); - System.err.println("Exception when calling CosignersBetaApi#getCosigner"); + System.err.println("Exception when calling CosignersApi#getCosignerApiUserRequestStatus"); System.err.println("Status code: " + apiException.getCode()); System.err.println("Response headers: " + apiException.getResponseHeaders()); System.err.println("Reason: " + apiException.getResponseBody()); @@ -313,10 +309,12 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| | **cosignerId** | **UUID**| The unique identifier of the cosigner | | +| **apiUserId** | **String**| The unique identifier of the API user | | +| **requestId** | **String**| | | ### Return type -CompletableFuture> +CompletableFuture> ### Authorization @@ -331,17 +329,17 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | A cosigner object | * X-Request-ID -
| +| **200** | The status of the request | * X-Request-ID -
| | **0** | Error Response | * X-Request-ID -
| -## getCosigners +## getCosignerApiUsers -> CompletableFuture> getCosigners getCosigners(order, pageCursor, pageSize) +> CompletableFuture> getCosignerApiUsers getCosignerApiUsers(cosignerId, order, pageCursor, pageSize) -Get all cosigners +Get all API users -Get all workspace cosigners (paginated). **Note:** These endpoints are currently in beta and might be subject to changes. Endpoint Permission: Admin and Non-Signing Admin. +Get all cosigner paired API users (paginated). Endpoint Permission: Admin and Non-Signing Admin. ### Example @@ -354,7 +352,7 @@ import com.fireblocks.sdk.BasePath; import com.fireblocks.sdk.Fireblocks; import com.fireblocks.sdk.ConfigurationOptions; import com.fireblocks.sdk.model.*; -import com.fireblocks.sdk.api.CosignersBetaApi; +import com.fireblocks.sdk.api.CosignersApi; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; @@ -366,17 +364,18 @@ public class Example { .secretKey("my-secret-key"); Fireblocks fireblocks = new Fireblocks(configurationOptions); + UUID cosignerId = UUID.fromString("44fcead0-7053-4831-a53a-df7fb90d440f"); // UUID | The unique identifier of the cosigner String order = "ASC"; // String | ASC / DESC ordering (default DESC) String pageCursor = "pageCursor_example"; // String | Cursor of the required page BigDecimal pageSize = new BigDecimal("10"); // BigDecimal | Maximum number of items in the page try { - CompletableFuture> response = fireblocks.cosignersBeta().getCosigners(order, pageCursor, pageSize); + CompletableFuture> response = fireblocks.cosigners().getCosignerApiUsers(cosignerId, order, pageCursor, pageSize); System.out.println("Status code: " + response.get().getStatusCode()); System.out.println("Response headers: " + response.get().getHeaders()); System.out.println("Response body: " + response.get().getData()); } catch (InterruptedException | ExecutionException e) { ApiException apiException = (ApiException)e.getCause(); - System.err.println("Exception when calling CosignersBetaApi#getCosigners"); + System.err.println("Exception when calling CosignersApi#getCosignerApiUsers"); System.err.println("Status code: " + apiException.getCode()); System.err.println("Response headers: " + apiException.getResponseHeaders()); System.err.println("Reason: " + apiException.getResponseBody()); @@ -391,13 +390,14 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| +| **cosignerId** | **UUID**| The unique identifier of the cosigner | | | **order** | **String**| ASC / DESC ordering (default DESC) | [optional] [default to DESC] [enum: ASC, DESC] | | **pageCursor** | **String**| Cursor of the required page | [optional] | | **pageSize** | **BigDecimal**| Maximum number of items in the page | [optional] [default to 10] | ### Return type -CompletableFuture> +CompletableFuture> ### Authorization @@ -412,17 +412,17 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | A paginated response containing Cosigner objects | * X-Request-ID -
| +| **200** | A paginated response containing CosignerApiUser objects | * X-Request-ID -
| | **0** | Error Response | * X-Request-ID -
| -## getRequestStatus +## getCosigners -> CompletableFuture> getRequestStatus getRequestStatus(cosignerId, apiKeyId, requestId) +> CompletableFuture> getCosigners getCosigners(order, pageCursor, pageSize) -Get request status +Get all cosigners -Get the status of an asynchronous request Endpoint Permission: Admin and Non-Signing Admin. +Get all workspace cosigners (paginated). Endpoint Permission: Admin and Non-Signing Admin. ### Example @@ -435,7 +435,7 @@ import com.fireblocks.sdk.BasePath; import com.fireblocks.sdk.Fireblocks; import com.fireblocks.sdk.ConfigurationOptions; import com.fireblocks.sdk.model.*; -import com.fireblocks.sdk.api.CosignersBetaApi; +import com.fireblocks.sdk.api.CosignersApi; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; @@ -447,17 +447,17 @@ public class Example { .secretKey("my-secret-key"); Fireblocks fireblocks = new Fireblocks(configurationOptions); - UUID cosignerId = UUID.fromString("44fcead0-7053-4831-a53a-df7fb90d440f"); // UUID | The unique identifier of the cosigner - String apiKeyId = "44fcead0-7053-4831-a53a-df7fb90d440f"; // String | The unique identifier of the API key - String requestId = "requestId_example"; // String | + String order = "ASC"; // String | ASC / DESC ordering (default DESC) + String pageCursor = "pageCursor_example"; // String | Cursor of the required page + BigDecimal pageSize = new BigDecimal("10"); // BigDecimal | Maximum number of items in the page try { - CompletableFuture> response = fireblocks.cosignersBeta().getRequestStatus(cosignerId, apiKeyId, requestId); + CompletableFuture> response = fireblocks.cosigners().getCosigners(order, pageCursor, pageSize); System.out.println("Status code: " + response.get().getStatusCode()); System.out.println("Response headers: " + response.get().getHeaders()); System.out.println("Response body: " + response.get().getData()); } catch (InterruptedException | ExecutionException e) { ApiException apiException = (ApiException)e.getCause(); - System.err.println("Exception when calling CosignersBetaApi#getRequestStatus"); + System.err.println("Exception when calling CosignersApi#getCosigners"); System.err.println("Status code: " + apiException.getCode()); System.err.println("Response headers: " + apiException.getResponseHeaders()); System.err.println("Reason: " + apiException.getResponseBody()); @@ -472,13 +472,13 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| -| **cosignerId** | **UUID**| The unique identifier of the cosigner | | -| **apiKeyId** | **String**| The unique identifier of the API key | | -| **requestId** | **String**| | | +| **order** | **String**| ASC / DESC ordering (default DESC) | [optional] [default to DESC] [enum: ASC, DESC] | +| **pageCursor** | **String**| Cursor of the required page | [optional] | +| **pageSize** | **BigDecimal**| Maximum number of items in the page | [optional] [default to 10] | ### Return type -CompletableFuture> +CompletableFuture> ### Authorization @@ -493,17 +493,17 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | The status of the request | * X-Request-ID -
| +| **200** | A paginated response containing Cosigner objects | * X-Request-ID -
| | **0** | Error Response | * X-Request-ID -
| -## pairApiKey +## pairCosignerApiUser -> CompletableFuture> pairApiKey pairApiKey(pairApiKeyRequest, cosignerId, apiKeyId, idempotencyKey) +> CompletableFuture> pairCosignerApiUser pairCosignerApiUser(pairApiUserRequest, cosignerId, apiUserId, idempotencyKey) -Pair API key +Pair API user -Pair an API key to a cosigner Endpoint Permission: Admin and Non-Signing Admin. +Pair an API user to a cosigner Endpoint Permission: Admin and Non-Signing Admin. ### Example @@ -516,7 +516,7 @@ import com.fireblocks.sdk.BasePath; import com.fireblocks.sdk.Fireblocks; import com.fireblocks.sdk.ConfigurationOptions; import com.fireblocks.sdk.model.*; -import com.fireblocks.sdk.api.CosignersBetaApi; +import com.fireblocks.sdk.api.CosignersApi; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; @@ -528,18 +528,18 @@ public class Example { .secretKey("my-secret-key"); Fireblocks fireblocks = new Fireblocks(configurationOptions); - PairApiKeyRequest pairApiKeyRequest = new PairApiKeyRequest(); // PairApiKeyRequest | + PairApiUserRequest pairApiUserRequest = new PairApiUserRequest(); // PairApiUserRequest | UUID cosignerId = UUID.fromString("44fcead0-7053-4831-a53a-df7fb90d440f"); // UUID | The unique identifier of the cosigner - String apiKeyId = "44fcead0-7053-4831-a53a-df7fb90d440f"; // String | The unique identifier of the API key + String apiUserId = "44fcead0-7053-4831-a53a-df7fb90d440f"; // String | The unique identifier of the API user String idempotencyKey = "idempotencyKey_example"; // String | 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. try { - CompletableFuture> response = fireblocks.cosignersBeta().pairApiKey(pairApiKeyRequest, cosignerId, apiKeyId, idempotencyKey); + CompletableFuture> response = fireblocks.cosigners().pairCosignerApiUser(pairApiUserRequest, cosignerId, apiUserId, idempotencyKey); System.out.println("Status code: " + response.get().getStatusCode()); System.out.println("Response headers: " + response.get().getHeaders()); System.out.println("Response body: " + response.get().getData()); } catch (InterruptedException | ExecutionException e) { ApiException apiException = (ApiException)e.getCause(); - System.err.println("Exception when calling CosignersBetaApi#pairApiKey"); + System.err.println("Exception when calling CosignersApi#pairCosignerApiUser"); System.err.println("Status code: " + apiException.getCode()); System.err.println("Response headers: " + apiException.getResponseHeaders()); System.err.println("Reason: " + apiException.getResponseBody()); @@ -554,14 +554,14 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| -| **pairApiKeyRequest** | [**PairApiKeyRequest**](PairApiKeyRequest.md)| | | +| **pairApiUserRequest** | [**PairApiUserRequest**](PairApiUserRequest.md)| | | | **cosignerId** | **UUID**| The unique identifier of the cosigner | | -| **apiKeyId** | **String**| The unique identifier of the API key | | +| **apiUserId** | **String**| The unique identifier of the API user | | | **idempotencyKey** | **String**| 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 -CompletableFuture> +CompletableFuture> ### Authorization @@ -576,7 +576,7 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **202** | The API key object to be paired | * X-Request-ID -
* Location -
| +| **202** | The API user object to be paired | * X-Request-ID -
* Location -
| | **0** | Error Response | * X-Request-ID -
| @@ -586,7 +586,7 @@ No authorization required Rename cosigner -Rename a cosigner by ID. **Note:** These endpoints are currently in beta and might be subject to changes. Endpoint Permission: Admin and Non-Signing Admin. +Rename a cosigner by ID. Endpoint Permission: Admin and Non-Signing Admin. ### Example @@ -599,7 +599,7 @@ import com.fireblocks.sdk.BasePath; import com.fireblocks.sdk.Fireblocks; import com.fireblocks.sdk.ConfigurationOptions; import com.fireblocks.sdk.model.*; -import com.fireblocks.sdk.api.CosignersBetaApi; +import com.fireblocks.sdk.api.CosignersApi; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; @@ -614,13 +614,13 @@ public class Example { RenameCosigner renameCosigner = new RenameCosigner(); // RenameCosigner | UUID cosignerId = UUID.fromString("44fcead0-7053-4831-a53a-df7fb90d440f"); // UUID | The unique identifier of the cosigner try { - CompletableFuture> response = fireblocks.cosignersBeta().renameCosigner(renameCosigner, cosignerId); + CompletableFuture> response = fireblocks.cosigners().renameCosigner(renameCosigner, cosignerId); System.out.println("Status code: " + response.get().getStatusCode()); System.out.println("Response headers: " + response.get().getHeaders()); System.out.println("Response body: " + response.get().getData()); } catch (InterruptedException | ExecutionException e) { ApiException apiException = (ApiException)e.getCause(); - System.err.println("Exception when calling CosignersBetaApi#renameCosigner"); + System.err.println("Exception when calling CosignersApi#renameCosigner"); System.err.println("Status code: " + apiException.getCode()); System.err.println("Response headers: " + apiException.getResponseHeaders()); System.err.println("Reason: " + apiException.getResponseBody()); @@ -659,13 +659,13 @@ No authorization required | **0** | Error Response | * X-Request-ID -
| -## unpairApiKey +## unpairCosignerApiUser -> CompletableFuture> unpairApiKey unpairApiKey(cosignerId, apiKeyId) +> CompletableFuture> unpairCosignerApiUser unpairCosignerApiUser(cosignerId, apiUserId) -Unpair API key +Unpair API user -Unpair an API key from a cosigner Endpoint Permission: Admin and Non-Signing Admin. +Unpair an API user from a cosigner Endpoint Permission: Admin and Non-Signing Admin. ### Example @@ -678,7 +678,7 @@ import com.fireblocks.sdk.BasePath; import com.fireblocks.sdk.Fireblocks; import com.fireblocks.sdk.ConfigurationOptions; import com.fireblocks.sdk.model.*; -import com.fireblocks.sdk.api.CosignersBetaApi; +import com.fireblocks.sdk.api.CosignersApi; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; @@ -691,15 +691,15 @@ public class Example { Fireblocks fireblocks = new Fireblocks(configurationOptions); UUID cosignerId = UUID.fromString("44fcead0-7053-4831-a53a-df7fb90d440f"); // UUID | The unique identifier of the cosigner - String apiKeyId = "44fcead0-7053-4831-a53a-df7fb90d440f"; // String | The unique identifier of the API key + String apiUserId = "44fcead0-7053-4831-a53a-df7fb90d440f"; // String | The unique identifier of the API user try { - CompletableFuture> response = fireblocks.cosignersBeta().unpairApiKey(cosignerId, apiKeyId); + CompletableFuture> response = fireblocks.cosigners().unpairCosignerApiUser(cosignerId, apiUserId); System.out.println("Status code: " + response.get().getStatusCode()); System.out.println("Response headers: " + response.get().getHeaders()); System.out.println("Response body: " + response.get().getData()); } catch (InterruptedException | ExecutionException e) { ApiException apiException = (ApiException)e.getCause(); - System.err.println("Exception when calling CosignersBetaApi#unpairApiKey"); + System.err.println("Exception when calling CosignersApi#unpairCosignerApiUser"); System.err.println("Status code: " + apiException.getCode()); System.err.println("Response headers: " + apiException.getResponseHeaders()); System.err.println("Reason: " + apiException.getResponseBody()); @@ -715,11 +715,11 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| | **cosignerId** | **UUID**| The unique identifier of the cosigner | | -| **apiKeyId** | **String**| The unique identifier of the API key | | +| **apiUserId** | **String**| The unique identifier of the API user | | ### Return type -CompletableFuture> +CompletableFuture> ### Authorization @@ -734,17 +734,17 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **202** | The API key object to be unpaired | * X-Request-ID -
* Location -
| +| **202** | The API user object to be unpaired | * X-Request-ID -
* Location -
| | **0** | Error Response | * X-Request-ID -
| -## updateCallbackHandler +## updateCosignerApiUserCallbackHandler -> CompletableFuture> updateCallbackHandler updateCallbackHandler(updateCallbackHandlerRequest, cosignerId, apiKeyId) +> CompletableFuture> updateCosignerApiUserCallbackHandler updateCosignerApiUserCallbackHandler(updateCallbackHandlerRequest, cosignerId, apiUserId) -Update API key callback handler +Update API user callback handler -Update the callback handler of an API key Endpoint Permission: Admin and Non-Signing Admin. +Update the callback handler of an API user Endpoint Permission: Admin and Non-Signing Admin. ### Example @@ -757,7 +757,7 @@ import com.fireblocks.sdk.BasePath; import com.fireblocks.sdk.Fireblocks; import com.fireblocks.sdk.ConfigurationOptions; import com.fireblocks.sdk.model.*; -import com.fireblocks.sdk.api.CosignersBetaApi; +import com.fireblocks.sdk.api.CosignersApi; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; @@ -771,15 +771,15 @@ public class Example { UpdateCallbackHandlerRequest updateCallbackHandlerRequest = new UpdateCallbackHandlerRequest(); // UpdateCallbackHandlerRequest | UUID cosignerId = UUID.fromString("44fcead0-7053-4831-a53a-df7fb90d440f"); // UUID | The unique identifier of the cosigner - String apiKeyId = "44fcead0-7053-4831-a53a-df7fb90d440f"; // String | The unique identifier of the API key + String apiUserId = "44fcead0-7053-4831-a53a-df7fb90d440f"; // String | The unique identifier of the API user try { - CompletableFuture> response = fireblocks.cosignersBeta().updateCallbackHandler(updateCallbackHandlerRequest, cosignerId, apiKeyId); + CompletableFuture> response = fireblocks.cosigners().updateCosignerApiUserCallbackHandler(updateCallbackHandlerRequest, cosignerId, apiUserId); System.out.println("Status code: " + response.get().getStatusCode()); System.out.println("Response headers: " + response.get().getHeaders()); System.out.println("Response body: " + response.get().getData()); } catch (InterruptedException | ExecutionException e) { ApiException apiException = (ApiException)e.getCause(); - System.err.println("Exception when calling CosignersBetaApi#updateCallbackHandler"); + System.err.println("Exception when calling CosignersApi#updateCosignerApiUserCallbackHandler"); System.err.println("Status code: " + apiException.getCode()); System.err.println("Response headers: " + apiException.getResponseHeaders()); System.err.println("Reason: " + apiException.getResponseBody()); @@ -796,7 +796,7 @@ public class Example { |------------- | ------------- | ------------- | -------------| | **updateCallbackHandlerRequest** | [**UpdateCallbackHandlerRequest**](UpdateCallbackHandlerRequest.md)| | | | **cosignerId** | **UUID**| The unique identifier of the cosigner | | -| **apiKeyId** | **String**| The unique identifier of the API key | | +| **apiUserId** | **String**| The unique identifier of the API user | | ### Return type @@ -815,6 +815,6 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **202** | The API key object with the new callback handler | * X-Request-ID -
* Location -
| +| **202** | The API user object with the new callback handler | * X-Request-ID -
* Location -
| | **0** | Error Response | * X-Request-ID -
| diff --git a/docs/CreateMultipleAccountsRequest.md b/docs/CreateMultipleAccountsRequest.md index 31339e80..c37f0c8b 100644 --- a/docs/CreateMultipleAccountsRequest.md +++ b/docs/CreateMultipleAccountsRequest.md @@ -13,6 +13,17 @@ |**vaultAccountNamesStartingIndex** | **Integer** | Copy vault accounts names starting from this index. If names array is used it'll fail | [optional] | |**prefix** | **String** | When copying from existing vault accounts (vaultAccountNamesStartingIndex) then adding a prefix to the names. If names array is used it'll fail | [optional] | |**tagIds** | **List<UUID>** | Optional list of tag IDs to attach to all created vault accounts | [optional] | +|**vaultType** | [**VaultTypeEnum**](#VaultTypeEnum) | Type of vault accounts to create. The default type is MPC. KEY_LINK creates Key Link vault accounts. It requires a Key Link workspace. With autoAssign set to true, the vault accounts are bound to the workspace's Key Link signing keys, assigned automatically from the available keys, and only one KEY_LINK bulk creation with autoAssign set to true can run per workspace at a time. With autoAssign set to false (the default), the vault accounts are created without keys. With KEY_LINK, names, vaultAccountNamesStartingIndex, prefix and tagIds work as they do for MPC, and baseAssetIds may be empty to create vault accounts without wallets. | [optional] | +|**autoAssign** | **Boolean** | Applicable only when vaultType is KEY_LINK. For MPC, this parameter is ignored. If set to true, keys are assigned to every created vault account. If there are not enough available keys to assign, the request returns an error and no vault accounts are created. If set to false, the vault accounts are created without any keys, and baseAssetIds must be empty because wallets can only be created for vault accounts that have keys. | [optional] | + + + +## Enum: VaultTypeEnum + +| Name | Value | +|---- | -----| +| MPC | "MPC" | +| KEY_LINK | "KEY_LINK" | diff --git a/docs/CreateTempoTransferRequest.md b/docs/CreateTempoTransferRequest.md index 1e38697c..a9d7ca36 100644 --- a/docs/CreateTempoTransferRequest.md +++ b/docs/CreateTempoTransferRequest.md @@ -30,7 +30,6 @@ Request body for creating a Tempo transfer transaction. |**feePayerAccountId** | **String** | Vault account ID of the fee payer sponsoring this transfer. | [optional] | |**nonceStrategy** | [**NonceStrategyEnum**](#NonceStrategyEnum) | Tempo's 2-dimensional nonce strategy: `SEQUENTIAL` runs under a single nonce lane (lane 0); `USER_DEFINED_LANE` runs in parallel under a specified lane (1–16), and requires `nonceLane`; `EXPIRING` marks the transaction with an expiry of up to 5 minutes (Tempo-defined) and does not use `nonceLane`. | [optional] | |**nonceLane** | **Integer** | The nonce lane to use, 1–16. Required and only meaningful when nonceStrategy is USER_DEFINED_LANE; not used for SEQUENTIAL or EXPIRING. | [optional] | -|**memo** | **String** | Beta. Tempo TIP-20 memo (max 32 bytes). | [optional] | diff --git a/docs/KeyLinkBetaApi.md b/docs/KeyLinkApi.md similarity index 81% rename from docs/KeyLinkBetaApi.md rename to docs/KeyLinkApi.md index d8c2da90..ab1ee312 100644 --- a/docs/KeyLinkBetaApi.md +++ b/docs/KeyLinkApi.md @@ -1,21 +1,22 @@ -# KeyLinkBetaApi +# KeyLinkApi All URIs are relative to https://developers.fireblocks.com/reference/ | Method | HTTP request | Description | |------------- | ------------- | -------------| -| [**createBulkSigningKeys**](KeyLinkBetaApi.md#createBulkSigningKeys) | **POST** /key_link/signing_keys/bulk | Register signing keys in bulk | -| [**createSigningKey**](KeyLinkBetaApi.md#createSigningKey) | **POST** /key_link/signing_keys | Add a new signing key | -| [**createValidationKey**](KeyLinkBetaApi.md#createValidationKey) | **POST** /key_link/validation_keys | Add a new validation key | -| [**disableValidationKey**](KeyLinkBetaApi.md#disableValidationKey) | **PATCH** /key_link/validation_keys/{keyId} | Disables a validation key | -| [**getBulkSigningKeysJob**](KeyLinkBetaApi.md#getBulkSigningKeysJob) | **GET** /key_link/signing_keys/bulk/jobs/{jobId} | Get a bulk registration job | -| [**getBulkSigningKeysJobs**](KeyLinkBetaApi.md#getBulkSigningKeysJobs) | **GET** /key_link/signing_keys/bulk/jobs | Get bulk registration jobs | -| [**getSigningKey**](KeyLinkBetaApi.md#getSigningKey) | **GET** /key_link/signing_keys/{keyId} | Get a signing key by `keyId` | -| [**getSigningKeysList**](KeyLinkBetaApi.md#getSigningKeysList) | **GET** /key_link/signing_keys | Get list of signing keys | -| [**getValidationKey**](KeyLinkBetaApi.md#getValidationKey) | **GET** /key_link/validation_keys/{keyId} | Get a validation key by `keyId` | -| [**getValidationKeysList**](KeyLinkBetaApi.md#getValidationKeysList) | **GET** /key_link/validation_keys | Get list of registered validation keys | -| [**setAgentId**](KeyLinkBetaApi.md#setAgentId) | **PATCH** /key_link/signing_keys/{keyId}/agent_user_id | Set agent user id | -| [**updateSigningKey**](KeyLinkBetaApi.md#updateSigningKey) | **PATCH** /key_link/signing_keys/{keyId} | Modify the signing keyId | +| [**createBulkSigningKeys**](KeyLinkApi.md#createBulkSigningKeys) | **POST** /key_link/signing_keys/bulk | Register signing keys in bulk | +| [**createSigningKey**](KeyLinkApi.md#createSigningKey) | **POST** /key_link/signing_keys | Add a new signing key | +| [**createValidationKey**](KeyLinkApi.md#createValidationKey) | **POST** /key_link/validation_keys | Add a new validation key | +| [**disableValidationKey**](KeyLinkApi.md#disableValidationKey) | **PATCH** /key_link/validation_keys/{keyId} | Disables a validation key | +| [**getBulkSigningKeysJob**](KeyLinkApi.md#getBulkSigningKeysJob) | **GET** /key_link/signing_keys/bulk/jobs/{jobId} | Get a bulk registration job | +| [**getBulkSigningKeysJobs**](KeyLinkApi.md#getBulkSigningKeysJobs) | **GET** /key_link/signing_keys/bulk/jobs | Get bulk registration jobs | +| [**getSigningKey**](KeyLinkApi.md#getSigningKey) | **GET** /key_link/signing_keys/{keyId} | Get a signing key by `keyId` | +| [**getSigningKeysList**](KeyLinkApi.md#getSigningKeysList) | **GET** /key_link/signing_keys | Get list of signing keys | +| [**getValidationKey**](KeyLinkApi.md#getValidationKey) | **GET** /key_link/validation_keys/{keyId} | Get a validation key by `keyId` | +| [**getValidationKeysList**](KeyLinkApi.md#getValidationKeysList) | **GET** /key_link/validation_keys | Get list of registered validation keys | +| [**revokeValidationKey**](KeyLinkApi.md#revokeValidationKey) | **POST** /key_link/validation_keys/{keyId}/revoke | Revokes a validation key | +| [**setAgentId**](KeyLinkApi.md#setAgentId) | **PATCH** /key_link/signing_keys/{keyId}/agent_user_id | Set agent user id | +| [**updateSigningKey**](KeyLinkApi.md#updateSigningKey) | **PATCH** /key_link/signing_keys/{keyId} | Modify the signing keyId | @@ -38,7 +39,7 @@ import com.fireblocks.sdk.BasePath; import com.fireblocks.sdk.Fireblocks; import com.fireblocks.sdk.ConfigurationOptions; import com.fireblocks.sdk.model.*; -import com.fireblocks.sdk.api.KeyLinkBetaApi; +import com.fireblocks.sdk.api.KeyLinkApi; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; @@ -53,13 +54,13 @@ public class Example { CreateBulkSigningKeys createBulkSigningKeys = new CreateBulkSigningKeys(); // CreateBulkSigningKeys | String idempotencyKey = "idempotencyKey_example"; // String | 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. try { - CompletableFuture> response = fireblocks.keyLinkBeta().createBulkSigningKeys(createBulkSigningKeys, idempotencyKey); + CompletableFuture> response = fireblocks.keyLink().createBulkSigningKeys(createBulkSigningKeys, idempotencyKey); System.out.println("Status code: " + response.get().getStatusCode()); System.out.println("Response headers: " + response.get().getHeaders()); System.out.println("Response body: " + response.get().getData()); } catch (InterruptedException | ExecutionException e) { ApiException apiException = (ApiException)e.getCause(); - System.err.println("Exception when calling KeyLinkBetaApi#createBulkSigningKeys"); + System.err.println("Exception when calling KeyLinkApi#createBulkSigningKeys"); System.err.println("Status code: " + apiException.getCode()); System.err.println("Response headers: " + apiException.getResponseHeaders()); System.err.println("Reason: " + apiException.getResponseBody()); @@ -118,7 +119,7 @@ import com.fireblocks.sdk.BasePath; import com.fireblocks.sdk.Fireblocks; import com.fireblocks.sdk.ConfigurationOptions; import com.fireblocks.sdk.model.*; -import com.fireblocks.sdk.api.KeyLinkBetaApi; +import com.fireblocks.sdk.api.KeyLinkApi; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; @@ -133,13 +134,13 @@ public class Example { CreateSigningKeyDto createSigningKeyDto = new CreateSigningKeyDto(); // CreateSigningKeyDto | String idempotencyKey = "idempotencyKey_example"; // String | 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. try { - CompletableFuture> response = fireblocks.keyLinkBeta().createSigningKey(createSigningKeyDto, idempotencyKey); + CompletableFuture> response = fireblocks.keyLink().createSigningKey(createSigningKeyDto, idempotencyKey); System.out.println("Status code: " + response.get().getStatusCode()); System.out.println("Response headers: " + response.get().getHeaders()); System.out.println("Response body: " + response.get().getData()); } catch (InterruptedException | ExecutionException e) { ApiException apiException = (ApiException)e.getCause(); - System.err.println("Exception when calling KeyLinkBetaApi#createSigningKey"); + System.err.println("Exception when calling KeyLinkApi#createSigningKey"); System.err.println("Status code: " + apiException.getCode()); System.err.println("Response headers: " + apiException.getResponseHeaders()); System.err.println("Reason: " + apiException.getResponseBody()); @@ -197,7 +198,7 @@ import com.fireblocks.sdk.BasePath; import com.fireblocks.sdk.Fireblocks; import com.fireblocks.sdk.ConfigurationOptions; import com.fireblocks.sdk.model.*; -import com.fireblocks.sdk.api.KeyLinkBetaApi; +import com.fireblocks.sdk.api.KeyLinkApi; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; @@ -212,13 +213,13 @@ public class Example { CreateValidationKeyDto createValidationKeyDto = new CreateValidationKeyDto(); // CreateValidationKeyDto | String idempotencyKey = "idempotencyKey_example"; // String | 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. try { - CompletableFuture> response = fireblocks.keyLinkBeta().createValidationKey(createValidationKeyDto, idempotencyKey); + CompletableFuture> response = fireblocks.keyLink().createValidationKey(createValidationKeyDto, idempotencyKey); System.out.println("Status code: " + response.get().getStatusCode()); System.out.println("Response headers: " + response.get().getHeaders()); System.out.println("Response body: " + response.get().getData()); } catch (InterruptedException | ExecutionException e) { ApiException apiException = (ApiException)e.getCause(); - System.err.println("Exception when calling KeyLinkBetaApi#createValidationKey"); + System.err.println("Exception when calling KeyLinkApi#createValidationKey"); System.err.println("Status code: " + apiException.getCode()); System.err.println("Response headers: " + apiException.getResponseHeaders()); System.err.println("Reason: " + apiException.getResponseBody()); @@ -263,7 +264,7 @@ No authorization required Disables a validation key -Allows disabling validation key even if it has not expired yet. It is not allowed to enable the validation key back. Another key has to be used for future validations. +DEPRECATED - Please use `POST /key_link/validation_keys/{keyId}/revoke` instead. Allows disabling validation key even if it has not expired yet. It is not allowed to enable the validation key back. Another key has to be used for future validations. ### Example @@ -276,7 +277,7 @@ import com.fireblocks.sdk.BasePath; import com.fireblocks.sdk.Fireblocks; import com.fireblocks.sdk.ConfigurationOptions; import com.fireblocks.sdk.model.*; -import com.fireblocks.sdk.api.KeyLinkBetaApi; +import com.fireblocks.sdk.api.KeyLinkApi; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; @@ -291,13 +292,13 @@ public class Example { ModifyValidationKeyDto modifyValidationKeyDto = new ModifyValidationKeyDto(); // ModifyValidationKeyDto | String keyId = "46a92767-5f93-4a46-9eed-f012196bb4fc"; // String | The unique identifier for the validation key provided by Fireblocks try { - CompletableFuture> response = fireblocks.keyLinkBeta().disableValidationKey(modifyValidationKeyDto, keyId); + CompletableFuture> response = fireblocks.keyLink().disableValidationKey(modifyValidationKeyDto, keyId); System.out.println("Status code: " + response.get().getStatusCode()); System.out.println("Response headers: " + response.get().getHeaders()); System.out.println("Response body: " + response.get().getData()); } catch (InterruptedException | ExecutionException e) { ApiException apiException = (ApiException)e.getCause(); - System.err.println("Exception when calling KeyLinkBetaApi#disableValidationKey"); + System.err.println("Exception when calling KeyLinkApi#disableValidationKey"); System.err.println("Status code: " + apiException.getCode()); System.err.println("Response headers: " + apiException.getResponseHeaders()); System.err.println("Reason: " + apiException.getResponseBody()); @@ -355,7 +356,7 @@ import com.fireblocks.sdk.BasePath; import com.fireblocks.sdk.Fireblocks; import com.fireblocks.sdk.ConfigurationOptions; import com.fireblocks.sdk.model.*; -import com.fireblocks.sdk.api.KeyLinkBetaApi; +import com.fireblocks.sdk.api.KeyLinkApi; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; @@ -369,13 +370,13 @@ public class Example { String jobId = "46a92767-5f93-4a46-9eed-f012196bb4fc"; // String | The id of the bulk registration job try { - CompletableFuture> response = fireblocks.keyLinkBeta().getBulkSigningKeysJob(jobId); + CompletableFuture> response = fireblocks.keyLink().getBulkSigningKeysJob(jobId); System.out.println("Status code: " + response.get().getStatusCode()); System.out.println("Response headers: " + response.get().getHeaders()); System.out.println("Response body: " + response.get().getData()); } catch (InterruptedException | ExecutionException e) { ApiException apiException = (ApiException)e.getCause(); - System.err.println("Exception when calling KeyLinkBetaApi#getBulkSigningKeysJob"); + System.err.println("Exception when calling KeyLinkApi#getBulkSigningKeysJob"); System.err.println("Status code: " + apiException.getCode()); System.err.println("Response headers: " + apiException.getResponseHeaders()); System.err.println("Reason: " + apiException.getResponseBody()); @@ -432,7 +433,7 @@ import com.fireblocks.sdk.BasePath; import com.fireblocks.sdk.Fireblocks; import com.fireblocks.sdk.ConfigurationOptions; import com.fireblocks.sdk.model.*; -import com.fireblocks.sdk.api.KeyLinkBetaApi; +import com.fireblocks.sdk.api.KeyLinkApi; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; @@ -447,13 +448,13 @@ public class Example { String pageCursor = "pageCursor_example"; // String | Cursor to the next page Integer pageSize = 10; // Integer | Amount of results to return in the next page try { - CompletableFuture> response = fireblocks.keyLinkBeta().getBulkSigningKeysJobs(pageCursor, pageSize); + CompletableFuture> response = fireblocks.keyLink().getBulkSigningKeysJobs(pageCursor, pageSize); System.out.println("Status code: " + response.get().getStatusCode()); System.out.println("Response headers: " + response.get().getHeaders()); System.out.println("Response body: " + response.get().getData()); } catch (InterruptedException | ExecutionException e) { ApiException apiException = (ApiException)e.getCause(); - System.err.println("Exception when calling KeyLinkBetaApi#getBulkSigningKeysJobs"); + System.err.println("Exception when calling KeyLinkApi#getBulkSigningKeysJobs"); System.err.println("Status code: " + apiException.getCode()); System.err.println("Response headers: " + apiException.getResponseHeaders()); System.err.println("Reason: " + apiException.getResponseBody()); @@ -511,7 +512,7 @@ import com.fireblocks.sdk.BasePath; import com.fireblocks.sdk.Fireblocks; import com.fireblocks.sdk.ConfigurationOptions; import com.fireblocks.sdk.model.*; -import com.fireblocks.sdk.api.KeyLinkBetaApi; +import com.fireblocks.sdk.api.KeyLinkApi; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; @@ -525,13 +526,13 @@ public class Example { String keyId = "46a92767-5f93-4a46-9eed-f012196bb4fc"; // String | The unique identifier for the signing key provided by Fireblocks try { - CompletableFuture> response = fireblocks.keyLinkBeta().getSigningKey(keyId); + CompletableFuture> response = fireblocks.keyLink().getSigningKey(keyId); System.out.println("Status code: " + response.get().getStatusCode()); System.out.println("Response headers: " + response.get().getHeaders()); System.out.println("Response body: " + response.get().getData()); } catch (InterruptedException | ExecutionException e) { ApiException apiException = (ApiException)e.getCause(); - System.err.println("Exception when calling KeyLinkBetaApi#getSigningKey"); + System.err.println("Exception when calling KeyLinkApi#getSigningKey"); System.err.println("Status code: " + apiException.getCode()); System.err.println("Response headers: " + apiException.getResponseHeaders()); System.err.println("Reason: " + apiException.getResponseBody()); @@ -588,7 +589,7 @@ import com.fireblocks.sdk.BasePath; import com.fireblocks.sdk.Fireblocks; import com.fireblocks.sdk.ConfigurationOptions; import com.fireblocks.sdk.model.*; -import com.fireblocks.sdk.api.KeyLinkBetaApi; +import com.fireblocks.sdk.api.KeyLinkApi; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; @@ -612,13 +613,13 @@ public class Example { Boolean isAssigned = true; // Boolean | Return keys that are assigned to a vault account String keyPrefix = "keyPrefix_example"; // String | A case-insensitive prefix filter that matches records where either keyId or signingDeviceKeyID starts with the specified value. try { - CompletableFuture> response = fireblocks.keyLinkBeta().getSigningKeysList(pageCursor, pageSize, sortBy, order, vaultAccountId, agentUserId, algorithm, enabled, available, isAssigned, keyPrefix); + CompletableFuture> response = fireblocks.keyLink().getSigningKeysList(pageCursor, pageSize, sortBy, order, vaultAccountId, agentUserId, algorithm, enabled, available, isAssigned, keyPrefix); System.out.println("Status code: " + response.get().getStatusCode()); System.out.println("Response headers: " + response.get().getHeaders()); System.out.println("Response body: " + response.get().getData()); } catch (InterruptedException | ExecutionException e) { ApiException apiException = (ApiException)e.getCause(); - System.err.println("Exception when calling KeyLinkBetaApi#getSigningKeysList"); + System.err.println("Exception when calling KeyLinkApi#getSigningKeysList"); System.err.println("Status code: " + apiException.getCode()); System.err.println("Response headers: " + apiException.getResponseHeaders()); System.err.println("Reason: " + apiException.getResponseBody()); @@ -685,7 +686,7 @@ import com.fireblocks.sdk.BasePath; import com.fireblocks.sdk.Fireblocks; import com.fireblocks.sdk.ConfigurationOptions; import com.fireblocks.sdk.model.*; -import com.fireblocks.sdk.api.KeyLinkBetaApi; +import com.fireblocks.sdk.api.KeyLinkApi; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; @@ -699,13 +700,13 @@ public class Example { String keyId = "keyId_example"; // String | try { - CompletableFuture> response = fireblocks.keyLinkBeta().getValidationKey(keyId); + CompletableFuture> response = fireblocks.keyLink().getValidationKey(keyId); System.out.println("Status code: " + response.get().getStatusCode()); System.out.println("Response headers: " + response.get().getHeaders()); System.out.println("Response body: " + response.get().getData()); } catch (InterruptedException | ExecutionException e) { ApiException apiException = (ApiException)e.getCause(); - System.err.println("Exception when calling KeyLinkBetaApi#getValidationKey"); + System.err.println("Exception when calling KeyLinkApi#getValidationKey"); System.err.println("Status code: " + apiException.getCode()); System.err.println("Response headers: " + apiException.getResponseHeaders()); System.err.println("Reason: " + apiException.getResponseBody()); @@ -745,11 +746,11 @@ No authorization required ## getValidationKeysList -> CompletableFuture> getValidationKeysList getValidationKeysList(pageCursor, pageSize, sortBy, order) +> CompletableFuture> getValidationKeysList getValidationKeysList(pageCursor, pageSize, sortBy, order, includeRevoked) Get list of registered validation keys -Returns the list of validation keys in the workspace +Returns the list of validation keys in the workspace. By default, revoked keys are filtered out. Use `includeRevoked=true` to show all keys. ### Example @@ -762,7 +763,7 @@ import com.fireblocks.sdk.BasePath; import com.fireblocks.sdk.Fireblocks; import com.fireblocks.sdk.ConfigurationOptions; import com.fireblocks.sdk.model.*; -import com.fireblocks.sdk.api.KeyLinkBetaApi; +import com.fireblocks.sdk.api.KeyLinkApi; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; @@ -778,14 +779,15 @@ public class Example { BigDecimal pageSize = new BigDecimal("10"); // BigDecimal | Amount of results to return in the next page String sortBy = "createdAt"; // String | Field(s) to use for sorting String order = "ASC"; // String | Is the order ascending or descending + Boolean includeRevoked = false; // Boolean | Include revoked validation keys in the response try { - CompletableFuture> response = fireblocks.keyLinkBeta().getValidationKeysList(pageCursor, pageSize, sortBy, order); + CompletableFuture> response = fireblocks.keyLink().getValidationKeysList(pageCursor, pageSize, sortBy, order, includeRevoked); System.out.println("Status code: " + response.get().getStatusCode()); System.out.println("Response headers: " + response.get().getHeaders()); System.out.println("Response body: " + response.get().getData()); } catch (InterruptedException | ExecutionException e) { ApiException apiException = (ApiException)e.getCause(); - System.err.println("Exception when calling KeyLinkBetaApi#getValidationKeysList"); + System.err.println("Exception when calling KeyLinkApi#getValidationKeysList"); System.err.println("Status code: " + apiException.getCode()); System.err.println("Response headers: " + apiException.getResponseHeaders()); System.err.println("Reason: " + apiException.getResponseBody()); @@ -804,6 +806,7 @@ public class Example { | **pageSize** | **BigDecimal**| Amount of results to return in the next page | [optional] [default to 10] | | **sortBy** | **String**| Field(s) to use for sorting | [optional] [default to createdAt] [enum: createdAt] | | **order** | **String**| Is the order ascending or descending | [optional] [default to ASC] [enum: ASC, DESC] | +| **includeRevoked** | **Boolean**| Include revoked validation keys in the response | [optional] [default to false] | ### Return type @@ -826,6 +829,85 @@ No authorization required | **0** | Error Response | * X-Request-ID -
| +## revokeValidationKey + +> CompletableFuture> revokeValidationKey revokeValidationKey(keyId, idempotencyKey) + +Revokes a validation key + +Revokes a validation key, making it permanently unusable for validation. Once revoked, a key cannot be un-revoked. Another key has to be used for future validations. + +### Example + +```java +// Import classes: +import com.fireblocks.sdk.ApiClient; +import com.fireblocks.sdk.ApiException; +import com.fireblocks.sdk.ApiResponse; +import com.fireblocks.sdk.BasePath; +import com.fireblocks.sdk.Fireblocks; +import com.fireblocks.sdk.ConfigurationOptions; +import com.fireblocks.sdk.model.*; +import com.fireblocks.sdk.api.KeyLinkApi; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; + +public class Example { + public static void main(String[] args) { + ConfigurationOptions configurationOptions = new ConfigurationOptions() + .basePath(BasePath.Sandbox) + .apiKey("my-api-key") + .secretKey("my-secret-key"); + Fireblocks fireblocks = new Fireblocks(configurationOptions); + + String keyId = "46a92767-5f93-4a46-9eed-f012196bb4fc"; // String | The unique identifier for the validation key provided by Fireblocks + String idempotencyKey = "idempotencyKey_example"; // String | 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. + try { + CompletableFuture> response = fireblocks.keyLink().revokeValidationKey(keyId, idempotencyKey); + System.out.println("Status code: " + response.get().getStatusCode()); + System.out.println("Response headers: " + response.get().getHeaders()); + System.out.println("Response body: " + response.get().getData()); + } catch (InterruptedException | ExecutionException e) { + ApiException apiException = (ApiException)e.getCause(); + System.err.println("Exception when calling KeyLinkApi#revokeValidationKey"); + System.err.println("Status code: " + apiException.getCode()); + System.err.println("Response headers: " + apiException.getResponseHeaders()); + System.err.println("Reason: " + apiException.getResponseBody()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **keyId** | **String**| The unique identifier for the validation key provided by Fireblocks | | +| **idempotencyKey** | **String**| 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 + +CompletableFuture> + + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Revoked validation key data | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| + + ## setAgentId > CompletableFuture> setAgentId setAgentId(modifySigningKeyAgentIdDto, keyId) @@ -845,7 +927,7 @@ import com.fireblocks.sdk.BasePath; import com.fireblocks.sdk.Fireblocks; import com.fireblocks.sdk.ConfigurationOptions; import com.fireblocks.sdk.model.*; -import com.fireblocks.sdk.api.KeyLinkBetaApi; +import com.fireblocks.sdk.api.KeyLinkApi; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; @@ -860,12 +942,12 @@ public class Example { ModifySigningKeyAgentIdDto modifySigningKeyAgentIdDto = new ModifySigningKeyAgentIdDto(); // ModifySigningKeyAgentIdDto | String keyId = "46a92767-5f93-4a46-9eed-f012196bb4fc"; // String | The unique identifier for the signing key provided by Fireblocks try { - CompletableFuture> response = fireblocks.keyLinkBeta().setAgentId(modifySigningKeyAgentIdDto, keyId); + CompletableFuture> response = fireblocks.keyLink().setAgentId(modifySigningKeyAgentIdDto, keyId); System.out.println("Status code: " + response.get().getStatusCode()); System.out.println("Response headers: " + response.get().getHeaders()); } catch (InterruptedException | ExecutionException e) { ApiException apiException = (ApiException)e.getCause(); - System.err.println("Exception when calling KeyLinkBetaApi#setAgentId"); + System.err.println("Exception when calling KeyLinkApi#setAgentId"); System.err.println("Status code: " + apiException.getCode()); System.err.println("Response headers: " + apiException.getResponseHeaders()); System.err.println("Reason: " + apiException.getResponseBody()); @@ -923,7 +1005,7 @@ import com.fireblocks.sdk.BasePath; import com.fireblocks.sdk.Fireblocks; import com.fireblocks.sdk.ConfigurationOptions; import com.fireblocks.sdk.model.*; -import com.fireblocks.sdk.api.KeyLinkBetaApi; +import com.fireblocks.sdk.api.KeyLinkApi; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; @@ -938,13 +1020,13 @@ public class Example { ModifySigningKeyDto modifySigningKeyDto = new ModifySigningKeyDto(); // ModifySigningKeyDto | String keyId = "46a92767-5f93-4a46-9eed-f012196bb4fc"; // String | The unique identifier for the signing key provided by Fireblocks try { - CompletableFuture> response = fireblocks.keyLinkBeta().updateSigningKey(modifySigningKeyDto, keyId); + CompletableFuture> response = fireblocks.keyLink().updateSigningKey(modifySigningKeyDto, keyId); System.out.println("Status code: " + response.get().getStatusCode()); System.out.println("Response headers: " + response.get().getHeaders()); System.out.println("Response body: " + response.get().getData()); } catch (InterruptedException | ExecutionException e) { ApiException apiException = (ApiException)e.getCause(); - System.err.println("Exception when calling KeyLinkBetaApi#updateSigningKey"); + System.err.println("Exception when calling KeyLinkApi#updateSigningKey"); System.err.println("Status code: " + apiException.getCode()); System.err.println("Response headers: " + apiException.getResponseHeaders()); System.err.println("Reason: " + apiException.getResponseBody()); diff --git a/docs/KeysBetaApi.md b/docs/KeysApi.md similarity index 84% rename from docs/KeysBetaApi.md rename to docs/KeysApi.md index 4bc63fd6..4ebb6876 100644 --- a/docs/KeysBetaApi.md +++ b/docs/KeysApi.md @@ -1,11 +1,11 @@ -# KeysBetaApi +# KeysApi All URIs are relative to https://developers.fireblocks.com/reference/ | Method | HTTP request | Description | |------------- | ------------- | -------------| -| [**getMpcKeysList**](KeysBetaApi.md#getMpcKeysList) | **GET** /keys/mpc/list | Get list of mpc keys | -| [**getMpcKeysListByUser**](KeysBetaApi.md#getMpcKeysListByUser) | **GET** /keys/mpc/list/{userId} | Get list of mpc keys by `userId` | +| [**getMpcKeysList**](KeysApi.md#getMpcKeysList) | **GET** /keys/mpc/list | Get list of mpc keys | +| [**getMpcKeysListByUser**](KeysApi.md#getMpcKeysListByUser) | **GET** /keys/mpc/list/{userId} | Get list of mpc keys by `userId` | @@ -15,7 +15,7 @@ All URIs are relative to https://developers.fireblocks.com/reference/ Get list of mpc keys -Returns a list of MPC signing keys of the workspace. For each key, the list of players associated with it is attached. **Note:** This endpoint is currently in beta and might be subject to changes. +Returns a list of MPC signing keys of the workspace. For each key, the list of players associated with it is attached. ### Example @@ -28,7 +28,7 @@ import com.fireblocks.sdk.BasePath; import com.fireblocks.sdk.Fireblocks; import com.fireblocks.sdk.ConfigurationOptions; import com.fireblocks.sdk.model.*; -import com.fireblocks.sdk.api.KeysBetaApi; +import com.fireblocks.sdk.api.KeysApi; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; @@ -41,13 +41,13 @@ public class Example { Fireblocks fireblocks = new Fireblocks(configurationOptions); try { - CompletableFuture> response = fireblocks.keysBeta().getMpcKeysList(); + CompletableFuture> response = fireblocks.keys().getMpcKeysList(); System.out.println("Status code: " + response.get().getStatusCode()); System.out.println("Response headers: " + response.get().getHeaders()); System.out.println("Response body: " + response.get().getData()); } catch (InterruptedException | ExecutionException e) { ApiException apiException = (ApiException)e.getCause(); - System.err.println("Exception when calling KeysBetaApi#getMpcKeysList"); + System.err.println("Exception when calling KeysApi#getMpcKeysList"); System.err.println("Status code: " + apiException.getCode()); System.err.println("Response headers: " + apiException.getResponseHeaders()); System.err.println("Reason: " + apiException.getResponseBody()); @@ -88,7 +88,7 @@ No authorization required Get list of mpc keys by `userId` -Returns a list of MPC signing keys of a specific user. For each key, the list of players associated with it is attached. **Note:** This endpoint is currently in beta and might be subject to changes. +Returns a list of MPC signing keys of a specific user. For each key, the list of players associated with it is attached. ### Example @@ -101,7 +101,7 @@ import com.fireblocks.sdk.BasePath; import com.fireblocks.sdk.Fireblocks; import com.fireblocks.sdk.ConfigurationOptions; import com.fireblocks.sdk.model.*; -import com.fireblocks.sdk.api.KeysBetaApi; +import com.fireblocks.sdk.api.KeysApi; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; @@ -115,13 +115,13 @@ public class Example { String userId = "46a92767-5f93-4a46-9eed-f012196bb4fc"; // String | The id for the user try { - CompletableFuture> response = fireblocks.keysBeta().getMpcKeysListByUser(userId); + CompletableFuture> response = fireblocks.keys().getMpcKeysListByUser(userId); System.out.println("Status code: " + response.get().getStatusCode()); System.out.println("Response headers: " + response.get().getHeaders()); System.out.println("Response body: " + response.get().getData()); } catch (InterruptedException | ExecutionException e) { ApiException apiException = (ApiException)e.getCause(); - System.err.println("Exception when calling KeysBetaApi#getMpcKeysListByUser"); + System.err.println("Exception when calling KeysApi#getMpcKeysListByUser"); System.err.println("Status code: " + apiException.getCode()); System.err.println("Response headers: " + apiException.getResponseHeaders()); System.err.println("Reason: " + apiException.getResponseBody()); diff --git a/docs/PairApiKeyRequest.md b/docs/PairApiUserRequest.md similarity index 91% rename from docs/PairApiKeyRequest.md rename to docs/PairApiUserRequest.md index cd07f6eb..8bbe7a59 100644 --- a/docs/PairApiKeyRequest.md +++ b/docs/PairApiUserRequest.md @@ -1,6 +1,6 @@ -# PairApiKeyRequest +# PairApiUserRequest ## Properties diff --git a/docs/PairApiKeyResponse.md b/docs/PairApiUserResponse.md similarity index 71% rename from docs/PairApiKeyResponse.md rename to docs/PairApiUserResponse.md index 28574086..ec7a45f1 100644 --- a/docs/PairApiKeyResponse.md +++ b/docs/PairApiUserResponse.md @@ -1,13 +1,13 @@ -# PairApiKeyResponse +# PairApiUserResponse ## Properties | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**id** | **UUID** | The unique identifier of the API key | | +|**id** | **UUID** | The unique identifier of the API user | | |**callbackHandler** | [**CallbackHandlerRequest**](CallbackHandlerRequest.md) | | [optional] | diff --git a/docs/TRLinkManualDecisionDestinationDetail.md b/docs/TRLinkManualDecisionDestinationDetail.md index 0ac392ec..a412b504 100644 --- a/docs/TRLinkManualDecisionDestinationDetail.md +++ b/docs/TRLinkManualDecisionDestinationDetail.md @@ -10,7 +10,7 @@ Per-destination result of the manual decision |------------ | ------------- | ------------- | -------------| |**destinationScreeningId** | **String** | Destination screening record ID | | |**applied** | **Boolean** | Whether the decision was applied to this destination | | -|**skipReason** | **String** | Reason if the destination was skipped | [optional] | +|**skipReason** | **String** | Reason when applied is false. Common values: deferred apply (destination could not be updated immediately), already applied, status changed, trmId exists, destination not found. | [optional] | diff --git a/docs/TRLinkManualDecisionRequest.md b/docs/TRLinkManualDecisionRequest.md index 681270f1..65e5f23b 100644 --- a/docs/TRLinkManualDecisionRequest.md +++ b/docs/TRLinkManualDecisionRequest.md @@ -2,7 +2,7 @@ # TRLinkManualDecisionRequest -Request to manually accept or reject destinations stuck in NoTRM status +Request to manually accept or reject destinations waiting for a Travel Rule message (missing TRM) ## Properties diff --git a/docs/TRLinkManualDecisionResponse.md b/docs/TRLinkManualDecisionResponse.md index 1c9367a5..ad5954fc 100644 --- a/docs/TRLinkManualDecisionResponse.md +++ b/docs/TRLinkManualDecisionResponse.md @@ -2,12 +2,13 @@ # TRLinkManualDecisionResponse -Response containing the result of the manual decision +Response containing the result of a manual missing-TRM decision (POST write or GET read). ## Properties | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**status** | **TRLinkManualDecisionResponseStatusEnum** | | | |**action** | **TRLinkManualDecisionAction** | | | |**source** | **TRLinkManualDecisionSource** | | | |**txId** | **String** | Transaction ID | | diff --git a/docs/TRLinkManualDecisionResponseStatusEnum.md b/docs/TRLinkManualDecisionResponseStatusEnum.md new file mode 100644 index 00000000..7390536a --- /dev/null +++ b/docs/TRLinkManualDecisionResponseStatusEnum.md @@ -0,0 +1,15 @@ + + +# TRLinkManualDecisionResponseStatusEnum + +## Enum + + +* `APPLIED` (value: `"APPLIED"`) + +* `ACCEPTED` (value: `"ACCEPTED"`) + +* `PRE_ACCEPTED` (value: `"PRE_ACCEPTED"`) + + + diff --git a/docs/TRLinkManualDecisionSource.md b/docs/TRLinkManualDecisionSource.md index b3dfec5e..267fc3d4 100644 --- a/docs/TRLinkManualDecisionSource.md +++ b/docs/TRLinkManualDecisionSource.md @@ -5,9 +5,9 @@ ## Enum -* `MANUAL` (value: `"MANUAL"`) +* `MANUAL` (value: `"manual"`) -* `POLICY` (value: `"POLICY"`) +* `POLICY` (value: `"policy"`) diff --git a/docs/TempoTransferDestination.md b/docs/TempoTransferDestination.md index f2b57ef3..2d84575c 100644 --- a/docs/TempoTransferDestination.md +++ b/docs/TempoTransferDestination.md @@ -11,6 +11,7 @@ The transfer's destination. Mutually exclusive with `destinations`. |**type** | [**TypeEnum**](#TypeEnum) | The kind of destination. | | |**id** | **String** | Required when type is VAULT_ACCOUNT or UNMANAGED_WALLET. | [optional] | |**oneTimeAddress** | [**OneTimeAddress**](OneTimeAddress.md) | | [optional] | +|**memo** | **String** | Tempo TIP-20 memo, sent on-chain with the transfer to this destination. Exactly 32 bytes once UTF-8 encoded. NOTES: - The memo is public and permanent on-chain, so do not put sensitive data in it. - A memo is currently supported only for a transfer with a single destination | [optional] | diff --git a/docs/TrLinkApi.md b/docs/TrLinkApi.md index 3aa927e1..90f7d716 100644 --- a/docs/TrLinkApi.md +++ b/docs/TrLinkApi.md @@ -18,6 +18,7 @@ All URIs are relative to https://developers.fireblocks.com/reference/ | [**getTRLinkCustomerIntegrations**](TrLinkApi.md#getTRLinkCustomerIntegrations) | **GET** /screening/trlink/customers/{customerId}/integrations | Get customer integrations | | [**getTRLinkCustomers**](TrLinkApi.md#getTRLinkCustomers) | **GET** /screening/trlink/customers | Get all customers | | [**getTRLinkIntegrationPublicKey**](TrLinkApi.md#getTRLinkIntegrationPublicKey) | **GET** /screening/trlink/customers/integration/{customerIntegrationId}/public_key | Get public key for PII encryption | +| [**getTRLinkManualDecision**](TrLinkApi.md#getTRLinkManualDecision) | **GET** /screening/trlink/customers/integration/{customerIntegrationId}/transactions/{txId}/manual_decision | Get manual decision for missing TRM | | [**getTRLinkPartners**](TrLinkApi.md#getTRLinkPartners) | **GET** /screening/trlink/partners | List available TRSupport partners | | [**getTRLinkPolicy**](TrLinkApi.md#getTRLinkPolicy) | **GET** /screening/trlink/policy | Get TRLink policy | | [**getTRLinkSupportedAsset**](TrLinkApi.md#getTRLinkSupportedAsset) | **GET** /screening/trlink/customers/integration/{customerIntegrationId}/assets/{assetId} | Get supported asset by ID | @@ -444,7 +445,7 @@ No authorization required Manual decision for missing TRM -Accept or reject destinations stuck in NoTRM step without waiting for TRP webhook or policy timeout. +Accept or reject destinations waiting for a Travel Rule message (missing TRM), without waiting for a TRP webhook or the missing-TRM policy timeout. You can submit before a destination enters the missing-TRM wait; if it can't be updated immediately, the decision is applied on the next processing attempt instead (status ACCEPTED). Check `status` in the response to see whether the decision has been applied. ### Example @@ -517,7 +518,10 @@ No authorization required ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | Decision applied successfully | - | +| **200** | Decision applied (status APPLIED), accepted for the next processing attempt (status ACCEPTED), or accepted early (status PRE_ACCEPTED). | * X-Request-ID -
| +| **404** | Customer integration not found or not owned by tenant (code 2125). | * X-Request-ID -
| +| **409** | Manual decision already final for this transaction (code 2127) or transaction screening already completed (code 2129). | * X-Request-ID -
| +| **425** | Too Early - screening has not started for this transaction yet. | * X-Request-ID -
| | **0** | Error Response | * X-Request-ID -
| @@ -1137,6 +1141,86 @@ No authorization required | **0** | Error Response | * X-Request-ID -
| +## getTRLinkManualDecision + +> CompletableFuture> getTRLinkManualDecision getTRLinkManualDecision(customerIntegrationId, txId) + +Get manual decision for missing TRM + +Returns the current manual missing-TRM decision for a transaction. Use to follow a decision that is not yet applied, or to check status at any time. + +### Example + +```java +// Import classes: +import com.fireblocks.sdk.ApiClient; +import com.fireblocks.sdk.ApiException; +import com.fireblocks.sdk.ApiResponse; +import com.fireblocks.sdk.BasePath; +import com.fireblocks.sdk.Fireblocks; +import com.fireblocks.sdk.ConfigurationOptions; +import com.fireblocks.sdk.model.*; +import com.fireblocks.sdk.api.TrLinkApi; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; + +public class Example { + public static void main(String[] args) { + ConfigurationOptions configurationOptions = new ConfigurationOptions() + .basePath(BasePath.Sandbox) + .apiKey("my-api-key") + .secretKey("my-secret-key"); + Fireblocks fireblocks = new Fireblocks(configurationOptions); + + UUID customerIntegrationId = UUID.fromString("3fa85f64-5717-4562-b3fc-2c963f66afa6"); // UUID | Customer integration unique identifier + UUID txId = UUID.fromString("b70701f4-d7b1-4795-a8ee-b09cdb5b850e"); // UUID | Fireblocks transaction unique identifier + try { + CompletableFuture> response = fireblocks.trLink().getTRLinkManualDecision(customerIntegrationId, txId); + System.out.println("Status code: " + response.get().getStatusCode()); + System.out.println("Response headers: " + response.get().getHeaders()); + System.out.println("Response body: " + response.get().getData()); + } catch (InterruptedException | ExecutionException e) { + ApiException apiException = (ApiException)e.getCause(); + System.err.println("Exception when calling TrLinkApi#getTRLinkManualDecision"); + System.err.println("Status code: " + apiException.getCode()); + System.err.println("Response headers: " + apiException.getResponseHeaders()); + System.err.println("Reason: " + apiException.getResponseBody()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **customerIntegrationId** | **UUID**| Customer integration unique identifier | | +| **txId** | **UUID**| Fireblocks transaction unique identifier | | + +### Return type + +CompletableFuture> + + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Current manual decision (status APPLIED, ACCEPTED, or PRE_ACCEPTED). | * X-Request-ID -
| +| **404** | No manual decision for this transaction (code 2128), or customer integration not found or not owned by tenant (code 2125). | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| + + ## getTRLinkPartners > CompletableFuture>> getTRLinkPartners getTRLinkPartners() diff --git a/docs/TypedMessageTransactionStatusEnum.md b/docs/TypedMessageTransactionStatusEnum.md index 3ede1862..5ae00d8c 100644 --- a/docs/TypedMessageTransactionStatusEnum.md +++ b/docs/TypedMessageTransactionStatusEnum.md @@ -17,12 +17,16 @@ * `PENDING_3_RD_PARTY` (value: `"PENDING_3RD_PARTY"`) +* `SIGNED` (value: `"SIGNED"`) + * `BROADCASTING` (value: `"BROADCASTING"`) * `PENDING_AML_SCREENING` (value: `"PENDING_AML_SCREENING"`) * `CONFIRMING` (value: `"CONFIRMING"`) +* `COMPLETED` (value: `"COMPLETED"`) + * `PARTIALLY_COMPLETED` (value: `"PARTIALLY_COMPLETED"`) * `PENDING_EMAIL_APPROVAL` (value: `"PENDING_EMAIL_APPROVAL"`) diff --git a/docs/ValidationKeyDto.md b/docs/ValidationKeyDto.md index 3252f435..9499803e 100644 --- a/docs/ValidationKeyDto.md +++ b/docs/ValidationKeyDto.md @@ -12,6 +12,8 @@ |**daysTillExpired** | **BigDecimal** | | | |**enabled** | **Boolean** | True if the validation key is enabled. | | |**createdAt** | **BigDecimal** | Creation date (timestamp) in milliseconds. | | +|**expirationTime** | **BigDecimal** | Expiration date (Unix timestamp) in milliseconds. | | +|**revoked** | **Boolean** | True if the validation key is revoked. | | diff --git a/docs/VaultsApi.md b/docs/VaultsApi.md index 1c122ecc..17f2dfe7 100644 --- a/docs/VaultsApi.md +++ b/docs/VaultsApi.md @@ -376,7 +376,7 @@ No authorization required Bulk creation of new vault accounts -Create multiple vault accounts by running an async job. - The HBAR, TON, SUI, TERRA, ALGO, and DOT blockchains are not supported. - These endpoints are currently in beta and might be subject to changes. - Limited to a maximum of 10,000 accounts per operation. **Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor. +Create multiple vault accounts by running an async job. - The HBAR, TON, SUI, TERRA, ALGO, and DOT blockchains are not supported. - These endpoints are currently in beta and might be subject to changes. - Limited to a maximum of 10,000 accounts per operation. - With `vaultType: KEY_LINK`, creates Key Link vault accounts; set `autoAssign: true` to bind them to the workspace's signing keys (see `vaultType` and `autoAssign`). **Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor. ### Example diff --git a/pom.xml b/pom.xml index df6d350e..5c58d835 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ fireblocks-sdk jar fireblocks-sdk - 35.2.0 + 0.0.0 https://github.com/fireblocks/java-sdk The Fireblocks Official SDK is a comprehensive software development kit that enables seamless integration and interaction with the Fireblocks platform. Fireblocks is a cutting-edge blockchain infrastructure platform that provides secure and scalable solutions for managing digital assets and transactions. This SDK empowers developers to build robust applications that can interact with the Fireblocks platform's features, including creating and managing vault accounts, initiating secure transactions, managing assets, and more. It abstracts complex interactions with the Fireblocks API, making it easier for developers to leverage the platform's capabilities while adhering to best practices in security and efficiency. diff --git a/src/main/java/com/fireblocks/sdk/Configuration.java b/src/main/java/com/fireblocks/sdk/Configuration.java index cead02a2..aa53bae8 100644 --- a/src/main/java/com/fireblocks/sdk/Configuration.java +++ b/src/main/java/com/fireblocks/sdk/Configuration.java @@ -21,7 +21,7 @@ value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.14.0") public class Configuration { - public static final String VERSION = "35.2.0"; + public static final String VERSION = "0.0.0"; private static final AtomicReference defaultApiClient = new AtomicReference<>(); private static volatile Supplier apiClientFactory = ApiClient::new; diff --git a/src/main/java/com/fireblocks/sdk/Fireblocks.java b/src/main/java/com/fireblocks/sdk/Fireblocks.java index 05f8a67b..cb351de1 100644 --- a/src/main/java/com/fireblocks/sdk/Fireblocks.java +++ b/src/main/java/com/fireblocks/sdk/Fireblocks.java @@ -51,7 +51,7 @@ public class Fireblocks { private ContractInteractionsApi contractInteractions; private ContractTemplatesApi contractTemplates; private ContractsApi contracts; - private CosignersBetaApi cosignersBeta; + private CosignersApi cosigners; private DeployedContractsApi deployedContracts; private EarnApi earn; private EmbeddedWalletsApi embeddedWallets; @@ -61,8 +61,8 @@ public class Fireblocks { private GasStationsApi gasStations; private GenieBetaApi genieBeta; private InternalWalletsApi internalWallets; - private KeyLinkBetaApi keyLinkBeta; - private KeysBetaApi keysBeta; + private KeyLinkApi keyLink; + private KeysApi keys; private NetworkConnectionsApi networkConnections; private NftsApi nfts; private OffExchangesApi offExchanges; @@ -338,11 +338,11 @@ public ContractsApi contracts() { return contracts; } - public CosignersBetaApi cosignersBeta() { - if (cosignersBeta == null) { - cosignersBeta = new CosignersBetaApi(apiClient); + public CosignersApi cosigners() { + if (cosigners == null) { + cosigners = new CosignersApi(apiClient); } - return cosignersBeta; + return cosigners; } public DeployedContractsApi deployedContracts() { @@ -408,18 +408,18 @@ public InternalWalletsApi internalWallets() { return internalWallets; } - public KeyLinkBetaApi keyLinkBeta() { - if (keyLinkBeta == null) { - keyLinkBeta = new KeyLinkBetaApi(apiClient); + public KeyLinkApi keyLink() { + if (keyLink == null) { + keyLink = new KeyLinkApi(apiClient); } - return keyLinkBeta; + return keyLink; } - public KeysBetaApi keysBeta() { - if (keysBeta == null) { - keysBeta = new KeysBetaApi(apiClient); + public KeysApi keys() { + if (keys == null) { + keys = new KeysApi(apiClient); } - return keysBeta; + return keys; } public NetworkConnectionsApi networkConnections() { diff --git a/src/main/java/com/fireblocks/sdk/LifecycleWarning.java b/src/main/java/com/fireblocks/sdk/LifecycleWarning.java index 067d79a7..27d850e6 100644 --- a/src/main/java/com/fireblocks/sdk/LifecycleWarning.java +++ b/src/main/java/com/fireblocks/sdk/LifecycleWarning.java @@ -52,7 +52,13 @@ public final class LifecycleWarning { /** Dedicated child namespace, so these can be muted on their own. */ public static final String LOGGER_NAME = "com.fireblocks.sdk.lifecycle"; - public static final String BETA_STATE = "beta"; + public static final String EA_STATE = "ea"; + /** + * @deprecated Use {@link #EA_STATE}. The beta lifecycle state was renamed to ea and no longer + * warns. + */ + @Deprecated public static final String BETA_STATE = "beta"; + public static final String DEPRECATED_STATE = "deprecated"; public static final String CLOSED_STATE = "closed"; @@ -63,7 +69,7 @@ public final class LifecycleWarning { public static final int GONE_STATUS = 410; private static final Set WARNING_STATES = - new HashSet<>(Arrays.asList("beta", "deprecated", "closed")); + new HashSet<>(Arrays.asList(EA_STATE, "deprecated", "closed")); private static final String REL_DEPRECATION = "deprecation"; private static final String REL_SUCCESSOR_VERSION = "successor-version"; @@ -133,11 +139,11 @@ public static String buildMessage(HttpHeaders headers, String operationId, int s return null; } - if (BETA_STATE.equals(state)) { + if (EA_STATE.equals(state)) { return "Operation '" + operationId - + "' is in 'beta' lifecycle state and is not generally available." - + " It may change or be removed without notice."; + + "' is in EA (Early Availability) and is not generally available." + + " It may change or break before it reaches GA."; } if (CLOSED_STATE.equals(state)) { diff --git a/src/main/java/com/fireblocks/sdk/api/ConsoleUserApi.java b/src/main/java/com/fireblocks/sdk/api/ConsoleUserApi.java index 6ac6ed79..da5f8e8a 100644 --- a/src/main/java/com/fireblocks/sdk/api/ConsoleUserApi.java +++ b/src/main/java/com/fireblocks/sdk/api/ConsoleUserApi.java @@ -199,7 +199,7 @@ private HttpRequest.Builder createConsoleUserRequestBuilder( * /management/users; deletion is complete when the user is disabled. - Please note that this * endpoint is available only for API keys with Admin/Non Signing Admin/Security Admin * permissions. Endpoint Permission: Admin, Non-Signing Admin, Security Admin. **Note:** This - * endpoint is currently in beta and might be subject to changes. + * endpoint is in Early Availability (EA) and may change or break before it reaches GA. * * @param id The ID of the console user to delete (required) * @param force Acknowledges the impact of removing this user and proceeds anyway. Overrides diff --git a/src/main/java/com/fireblocks/sdk/api/CosignersBetaApi.java b/src/main/java/com/fireblocks/sdk/api/CosignersApi.java similarity index 85% rename from src/main/java/com/fireblocks/sdk/api/CosignersBetaApi.java rename to src/main/java/com/fireblocks/sdk/api/CosignersApi.java index 2b5287ec..4766e0cb 100644 --- a/src/main/java/com/fireblocks/sdk/api/CosignersBetaApi.java +++ b/src/main/java/com/fireblocks/sdk/api/CosignersApi.java @@ -23,12 +23,12 @@ import com.fireblocks.sdk.ValidationUtils; import com.fireblocks.sdk.model.AddCosignerRequest; import com.fireblocks.sdk.model.AddCosignerResponse; -import com.fireblocks.sdk.model.ApiKey; -import com.fireblocks.sdk.model.ApiKeysPaginatedResponse; +import com.fireblocks.sdk.model.ApiUsersPaginatedResponse; import com.fireblocks.sdk.model.Cosigner; +import com.fireblocks.sdk.model.CosignerApiUser; import com.fireblocks.sdk.model.CosignersPaginatedResponse; -import com.fireblocks.sdk.model.PairApiKeyRequest; -import com.fireblocks.sdk.model.PairApiKeyResponse; +import com.fireblocks.sdk.model.PairApiUserRequest; +import com.fireblocks.sdk.model.PairApiUserResponse; import com.fireblocks.sdk.model.RenameCosigner; import com.fireblocks.sdk.model.Status; import com.fireblocks.sdk.model.UpdateCallbackHandlerRequest; @@ -54,7 +54,7 @@ @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.14.0") -public class CosignersBetaApi { +public class CosignersApi { private final HttpClient memberVarHttpClient; private final ObjectMapper memberVarObjectMapper; private final String memberVarBaseUri; @@ -63,11 +63,11 @@ public class CosignersBetaApi { private final Consumer> memberVarResponseInterceptor; private final Consumer> memberVarAsyncResponseInterceptor; - public CosignersBetaApi() { + public CosignersApi() { this(new ApiClient()); } - public CosignersBetaApi(ApiClient apiClient) { + public CosignersApi(ApiClient apiClient) { memberVarHttpClient = apiClient.getHttpClient(); memberVarObjectMapper = apiClient.getObjectMapper(); memberVarBaseUri = apiClient.getBaseUri(); @@ -114,8 +114,9 @@ private String formatExceptionMessage(String operationId, int statusCode, String } /** - * Add cosigner Add a new cosigner. The cosigner will be pending pairing until the API key is - * manually paired Endpoint Permission: Admin and Non-Signing Admin. + * Add cosigner Add a new cosigner. The cosigner will be pending pairing until the API user is + * manually paired (see `pairCosignerApiUser`). Endpoint Permission: Admin and + * Non-Signing Admin. * * @param addCosignerRequest (required) * @param idempotencyKey A unique identifier for the request. If the request is sent multiple @@ -208,18 +209,15 @@ private HttpRequest.Builder addCosignerRequestBuilder( return localVarRequestBuilder; } /** - * Get API key Get an API key by ID. **Note:** These endpoints are currently in beta and might - * be subject to changes. Endpoint Permission: Admin and Non-Signing Admin. + * Get cosigner Get a cosigner by ID. Endpoint Permission: Admin and Non-Signing Admin. * * @param cosignerId The unique identifier of the cosigner (required) - * @param apiKeyId The unique identifier of the API key (required) - * @return CompletableFuture<ApiResponse<ApiKey>>, which completes exceptionally + * @return CompletableFuture<ApiResponse<Cosigner>>, which completes exceptionally * with an {@link ApiException} if the API call fails */ - public CompletableFuture> getApiKey(UUID cosignerId, String apiKeyId) { + public CompletableFuture> getCosigner(UUID cosignerId) { try { - HttpRequest.Builder localVarRequestBuilder = - getApiKeyRequestBuilder(cosignerId, apiKeyId); + HttpRequest.Builder localVarRequestBuilder = getCosignerRequestBuilder(cosignerId); return memberVarHttpClient .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString()) .thenComposeAsync( @@ -232,16 +230,16 @@ public CompletableFuture> getApiKey(UUID cosignerId, String // is present on allowed error responses too. LifecycleWarning.warn( localVarResponse.headers(), - "getApiKey", + "getCosigner", localVarResponse.statusCode()); if (localVarResponse.statusCode() / 100 != 2) { return CompletableFuture.failedFuture( - getApiException("getApiKey", localVarResponse)); + getApiException("getCosigner", localVarResponse)); } try { String responseBody = localVarResponse.body(); return CompletableFuture.completedFuture( - new ApiResponse( + new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), responseBody == null || responseBody.isBlank() @@ -249,7 +247,7 @@ public CompletableFuture> getApiKey(UUID cosignerId, String : memberVarObjectMapper.readValue( responseBody, new TypeReference< - ApiKey>() {}))); + Cosigner>() {}))); } catch (IOException e) { return CompletableFuture.failedFuture(new ApiException(e)); } @@ -258,7 +256,7 @@ public CompletableFuture> getApiKey(UUID cosignerId, String (localVarApiResponse, localVarThrowable) -> localVarThrowable == null ? CompletableFuture.completedFuture(localVarApiResponse) - : CompletableFuture.>failedFuture( + : CompletableFuture.>failedFuture( toApiFailure(localVarThrowable))) .thenCompose(localVarNormalized -> localVarNormalized); } catch (ApiException e) { @@ -266,18 +264,15 @@ public CompletableFuture> getApiKey(UUID cosignerId, String } } - private HttpRequest.Builder getApiKeyRequestBuilder(UUID cosignerId, String apiKeyId) - throws ApiException { + private HttpRequest.Builder getCosignerRequestBuilder(UUID cosignerId) throws ApiException { ValidationUtils.assertParamExistsAndNotEmpty( - "getApiKey", "cosignerId", cosignerId.toString()); - ValidationUtils.assertParamExistsAndNotEmpty("getApiKey", "apiKeyId", apiKeyId); + "getCosigner", "cosignerId", cosignerId.toString()); HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); String localVarPath = - "/cosigners/{cosignerId}/api_keys/{apiKeyId}" - .replace("{cosignerId}", ApiClient.urlEncode(cosignerId.toString())) - .replace("{apiKeyId}", ApiClient.urlEncode(apiKeyId.toString())); + "/cosigners/{cosignerId}" + .replace("{cosignerId}", ApiClient.urlEncode(cosignerId.toString())); localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath)); @@ -293,22 +288,18 @@ private HttpRequest.Builder getApiKeyRequestBuilder(UUID cosignerId, String apiK return localVarRequestBuilder; } /** - * Get all API keys Get all cosigner paired API keys (paginated). **Note:** These endpoints are - * currently in beta and might be subject to changes. Endpoint Permission: Admin and Non-Signing - * Admin. + * Get API user Get an API user by ID. Endpoint Permission: Admin and Non-Signing Admin. * * @param cosignerId The unique identifier of the cosigner (required) - * @param order ASC / DESC ordering (default DESC) (optional, default to DESC) - * @param pageCursor Cursor of the required page (optional) - * @param pageSize Maximum number of items in the page (optional, default to 10) - * @return CompletableFuture<ApiResponse<ApiKeysPaginatedResponse>>, which completes + * @param apiUserId The unique identifier of the API user (required) + * @return CompletableFuture<ApiResponse<CosignerApiUser>>, which completes * exceptionally with an {@link ApiException} if the API call fails */ - public CompletableFuture> getApiKeys( - UUID cosignerId, String order, String pageCursor, BigDecimal pageSize) { + public CompletableFuture> getCosignerApiUser( + UUID cosignerId, String apiUserId) { try { HttpRequest.Builder localVarRequestBuilder = - getApiKeysRequestBuilder(cosignerId, order, pageCursor, pageSize); + getCosignerApiUserRequestBuilder(cosignerId, apiUserId); return memberVarHttpClient .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString()) .thenComposeAsync( @@ -321,16 +312,17 @@ public CompletableFuture> getApiKeys( // is present on allowed error responses too. LifecycleWarning.warn( localVarResponse.headers(), - "getApiKeys", + "getCosignerApiUser", localVarResponse.statusCode()); if (localVarResponse.statusCode() / 100 != 2) { return CompletableFuture.failedFuture( - getApiException("getApiKeys", localVarResponse)); + getApiException( + "getCosignerApiUser", localVarResponse)); } try { String responseBody = localVarResponse.body(); return CompletableFuture.completedFuture( - new ApiResponse( + new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), responseBody == null || responseBody.isBlank() @@ -338,7 +330,7 @@ public CompletableFuture> getApiKeys( : memberVarObjectMapper.readValue( responseBody, new TypeReference< - ApiKeysPaginatedResponse>() {}))); + CosignerApiUser>() {}))); } catch (IOException e) { return CompletableFuture.failedFuture(new ApiException(e)); } @@ -348,49 +340,28 @@ public CompletableFuture> getApiKeys( localVarThrowable == null ? CompletableFuture.completedFuture(localVarApiResponse) : CompletableFuture - .> - failedFuture( - toApiFailure( - localVarThrowable))) + .>failedFuture( + toApiFailure(localVarThrowable))) .thenCompose(localVarNormalized -> localVarNormalized); } catch (ApiException e) { return CompletableFuture.failedFuture(e); } } - private HttpRequest.Builder getApiKeysRequestBuilder( - UUID cosignerId, String order, String pageCursor, BigDecimal pageSize) + private HttpRequest.Builder getCosignerApiUserRequestBuilder(UUID cosignerId, String apiUserId) throws ApiException { ValidationUtils.assertParamExistsAndNotEmpty( - "getApiKeys", "cosignerId", cosignerId.toString()); + "getCosignerApiUser", "cosignerId", cosignerId.toString()); + ValidationUtils.assertParamExistsAndNotEmpty("getCosignerApiUser", "apiUserId", apiUserId); HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); String localVarPath = - "/cosigners/{cosignerId}/api_keys" - .replace("{cosignerId}", ApiClient.urlEncode(cosignerId.toString())); - - List localVarQueryParams = new ArrayList<>(); - StringJoiner localVarQueryStringJoiner = new StringJoiner("&"); - String localVarQueryParameterBaseName; - localVarQueryParameterBaseName = "order"; - localVarQueryParams.addAll(ApiClient.parameterToPairs("order", order)); - localVarQueryParameterBaseName = "pageCursor"; - localVarQueryParams.addAll(ApiClient.parameterToPairs("pageCursor", pageCursor)); - localVarQueryParameterBaseName = "pageSize"; - localVarQueryParams.addAll(ApiClient.parameterToPairs("pageSize", pageSize)); + "/cosigners/{cosignerId}/api_users/{apiUserId}" + .replace("{cosignerId}", ApiClient.urlEncode(cosignerId.toString())) + .replace("{apiUserId}", ApiClient.urlEncode(apiUserId.toString())); - if (!localVarQueryParams.isEmpty() || localVarQueryStringJoiner.length() != 0) { - StringJoiner queryJoiner = new StringJoiner("&"); - localVarQueryParams.forEach(p -> queryJoiner.add(p.getName() + '=' + p.getValue())); - if (localVarQueryStringJoiner.length() != 0) { - queryJoiner.add(localVarQueryStringJoiner.toString()); - } - localVarRequestBuilder.uri( - URI.create(memberVarBaseUri + localVarPath + '?' + queryJoiner.toString())); - } else { - localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath)); - } + localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath)); localVarRequestBuilder.header("Accept", "application/json"); @@ -404,16 +375,20 @@ private HttpRequest.Builder getApiKeysRequestBuilder( return localVarRequestBuilder; } /** - * Get cosigner Get a cosigner by ID. **Note:** These endpoints are currently in beta and might - * be subject to changes. Endpoint Permission: Admin and Non-Signing Admin. + * Get API user request status Get the status of an asynchronous request Endpoint Permission: + * Admin and Non-Signing Admin. * * @param cosignerId The unique identifier of the cosigner (required) - * @return CompletableFuture<ApiResponse<Cosigner>>, which completes exceptionally + * @param apiUserId The unique identifier of the API user (required) + * @param requestId (required) + * @return CompletableFuture<ApiResponse<Status>>, which completes exceptionally * with an {@link ApiException} if the API call fails */ - public CompletableFuture> getCosigner(UUID cosignerId) { + public CompletableFuture> getCosignerApiUserRequestStatus( + UUID cosignerId, String apiUserId, String requestId) { try { - HttpRequest.Builder localVarRequestBuilder = getCosignerRequestBuilder(cosignerId); + HttpRequest.Builder localVarRequestBuilder = + getCosignerApiUserRequestStatusRequestBuilder(cosignerId, apiUserId, requestId); return memberVarHttpClient .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString()) .thenComposeAsync( @@ -426,16 +401,18 @@ public CompletableFuture> getCosigner(UUID cosignerId) { // is present on allowed error responses too. LifecycleWarning.warn( localVarResponse.headers(), - "getCosigner", + "getCosignerApiUserRequestStatus", localVarResponse.statusCode()); if (localVarResponse.statusCode() / 100 != 2) { return CompletableFuture.failedFuture( - getApiException("getCosigner", localVarResponse)); + getApiException( + "getCosignerApiUserRequestStatus", + localVarResponse)); } try { String responseBody = localVarResponse.body(); return CompletableFuture.completedFuture( - new ApiResponse( + new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), responseBody == null || responseBody.isBlank() @@ -443,7 +420,7 @@ public CompletableFuture> getCosigner(UUID cosignerId) { : memberVarObjectMapper.readValue( responseBody, new TypeReference< - Cosigner>() {}))); + Status>() {}))); } catch (IOException e) { return CompletableFuture.failedFuture(new ApiException(e)); } @@ -452,7 +429,7 @@ public CompletableFuture> getCosigner(UUID cosignerId) { (localVarApiResponse, localVarThrowable) -> localVarThrowable == null ? CompletableFuture.completedFuture(localVarApiResponse) - : CompletableFuture.>failedFuture( + : CompletableFuture.>failedFuture( toApiFailure(localVarThrowable))) .thenCompose(localVarNormalized -> localVarNormalized); } catch (ApiException e) { @@ -460,15 +437,22 @@ public CompletableFuture> getCosigner(UUID cosignerId) { } } - private HttpRequest.Builder getCosignerRequestBuilder(UUID cosignerId) throws ApiException { + private HttpRequest.Builder getCosignerApiUserRequestStatusRequestBuilder( + UUID cosignerId, String apiUserId, String requestId) throws ApiException { ValidationUtils.assertParamExistsAndNotEmpty( - "getCosigner", "cosignerId", cosignerId.toString()); + "getCosignerApiUserRequestStatus", "cosignerId", cosignerId.toString()); + ValidationUtils.assertParamExistsAndNotEmpty( + "getCosignerApiUserRequestStatus", "apiUserId", apiUserId); + ValidationUtils.assertParamExistsAndNotEmpty( + "getCosignerApiUserRequestStatus", "requestId", requestId); HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); String localVarPath = - "/cosigners/{cosignerId}" - .replace("{cosignerId}", ApiClient.urlEncode(cosignerId.toString())); + "/cosigners/{cosignerId}/api_users/{apiUserId}/{requestId}" + .replace("{cosignerId}", ApiClient.urlEncode(cosignerId.toString())) + .replace("{apiUserId}", ApiClient.urlEncode(apiUserId.toString())) + .replace("{requestId}", ApiClient.urlEncode(requestId.toString())); localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath)); @@ -484,21 +468,21 @@ private HttpRequest.Builder getCosignerRequestBuilder(UUID cosignerId) throws Ap return localVarRequestBuilder; } /** - * Get all cosigners Get all workspace cosigners (paginated). **Note:** These endpoints are - * currently in beta and might be subject to changes. Endpoint Permission: Admin and Non-Signing - * Admin. + * Get all API users Get all cosigner paired API users (paginated). Endpoint Permission: Admin + * and Non-Signing Admin. * + * @param cosignerId The unique identifier of the cosigner (required) * @param order ASC / DESC ordering (default DESC) (optional, default to DESC) * @param pageCursor Cursor of the required page (optional) * @param pageSize Maximum number of items in the page (optional, default to 10) - * @return CompletableFuture<ApiResponse<CosignersPaginatedResponse>>, which + * @return CompletableFuture<ApiResponse<ApiUsersPaginatedResponse>>, which * completes exceptionally with an {@link ApiException} if the API call fails */ - public CompletableFuture> getCosigners( - String order, String pageCursor, BigDecimal pageSize) { + public CompletableFuture> getCosignerApiUsers( + UUID cosignerId, String order, String pageCursor, BigDecimal pageSize) { try { HttpRequest.Builder localVarRequestBuilder = - getCosignersRequestBuilder(order, pageCursor, pageSize); + getCosignerApiUsersRequestBuilder(cosignerId, order, pageCursor, pageSize); return memberVarHttpClient .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString()) .thenComposeAsync( @@ -511,16 +495,17 @@ public CompletableFuture> getCosigners( // is present on allowed error responses too. LifecycleWarning.warn( localVarResponse.headers(), - "getCosigners", + "getCosignerApiUsers", localVarResponse.statusCode()); if (localVarResponse.statusCode() / 100 != 2) { return CompletableFuture.failedFuture( - getApiException("getCosigners", localVarResponse)); + getApiException( + "getCosignerApiUsers", localVarResponse)); } try { String responseBody = localVarResponse.body(); return CompletableFuture.completedFuture( - new ApiResponse( + new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), responseBody == null || responseBody.isBlank() @@ -528,7 +513,7 @@ public CompletableFuture> getCosigners( : memberVarObjectMapper.readValue( responseBody, new TypeReference< - CosignersPaginatedResponse>() {}))); + ApiUsersPaginatedResponse>() {}))); } catch (IOException e) { return CompletableFuture.failedFuture(new ApiException(e)); } @@ -538,7 +523,7 @@ public CompletableFuture> getCosigners( localVarThrowable == null ? CompletableFuture.completedFuture(localVarApiResponse) : CompletableFuture - .> + .> failedFuture( toApiFailure( localVarThrowable))) @@ -548,12 +533,17 @@ public CompletableFuture> getCosigners( } } - private HttpRequest.Builder getCosignersRequestBuilder( - String order, String pageCursor, BigDecimal pageSize) throws ApiException { + private HttpRequest.Builder getCosignerApiUsersRequestBuilder( + UUID cosignerId, String order, String pageCursor, BigDecimal pageSize) + throws ApiException { + ValidationUtils.assertParamExistsAndNotEmpty( + "getCosignerApiUsers", "cosignerId", cosignerId.toString()); HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); - String localVarPath = "/cosigners"; + String localVarPath = + "/cosigners/{cosignerId}/api_users" + .replace("{cosignerId}", ApiClient.urlEncode(cosignerId.toString())); List localVarQueryParams = new ArrayList<>(); StringJoiner localVarQueryStringJoiner = new StringJoiner("&"); @@ -589,20 +579,20 @@ private HttpRequest.Builder getCosignersRequestBuilder( return localVarRequestBuilder; } /** - * Get request status Get the status of an asynchronous request Endpoint Permission: Admin and + * Get all cosigners Get all workspace cosigners (paginated). Endpoint Permission: Admin and * Non-Signing Admin. * - * @param cosignerId The unique identifier of the cosigner (required) - * @param apiKeyId The unique identifier of the API key (required) - * @param requestId (required) - * @return CompletableFuture<ApiResponse<Status>>, which completes exceptionally - * with an {@link ApiException} if the API call fails + * @param order ASC / DESC ordering (default DESC) (optional, default to DESC) + * @param pageCursor Cursor of the required page (optional) + * @param pageSize Maximum number of items in the page (optional, default to 10) + * @return CompletableFuture<ApiResponse<CosignersPaginatedResponse>>, which + * completes exceptionally with an {@link ApiException} if the API call fails */ - public CompletableFuture> getRequestStatus( - UUID cosignerId, String apiKeyId, String requestId) { + public CompletableFuture> getCosigners( + String order, String pageCursor, BigDecimal pageSize) { try { HttpRequest.Builder localVarRequestBuilder = - getRequestStatusRequestBuilder(cosignerId, apiKeyId, requestId); + getCosignersRequestBuilder(order, pageCursor, pageSize); return memberVarHttpClient .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString()) .thenComposeAsync( @@ -615,16 +605,16 @@ public CompletableFuture> getRequestStatus( // is present on allowed error responses too. LifecycleWarning.warn( localVarResponse.headers(), - "getRequestStatus", + "getCosigners", localVarResponse.statusCode()); if (localVarResponse.statusCode() / 100 != 2) { return CompletableFuture.failedFuture( - getApiException("getRequestStatus", localVarResponse)); + getApiException("getCosigners", localVarResponse)); } try { String responseBody = localVarResponse.body(); return CompletableFuture.completedFuture( - new ApiResponse( + new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), responseBody == null || responseBody.isBlank() @@ -632,7 +622,7 @@ public CompletableFuture> getRequestStatus( : memberVarObjectMapper.readValue( responseBody, new TypeReference< - Status>() {}))); + CosignersPaginatedResponse>() {}))); } catch (IOException e) { return CompletableFuture.failedFuture(new ApiException(e)); } @@ -641,30 +631,45 @@ public CompletableFuture> getRequestStatus( (localVarApiResponse, localVarThrowable) -> localVarThrowable == null ? CompletableFuture.completedFuture(localVarApiResponse) - : CompletableFuture.>failedFuture( - toApiFailure(localVarThrowable))) + : CompletableFuture + .> + failedFuture( + toApiFailure( + localVarThrowable))) .thenCompose(localVarNormalized -> localVarNormalized); } catch (ApiException e) { return CompletableFuture.failedFuture(e); } } - private HttpRequest.Builder getRequestStatusRequestBuilder( - UUID cosignerId, String apiKeyId, String requestId) throws ApiException { - ValidationUtils.assertParamExistsAndNotEmpty( - "getRequestStatus", "cosignerId", cosignerId.toString()); - ValidationUtils.assertParamExistsAndNotEmpty("getRequestStatus", "apiKeyId", apiKeyId); - ValidationUtils.assertParamExistsAndNotEmpty("getRequestStatus", "requestId", requestId); + private HttpRequest.Builder getCosignersRequestBuilder( + String order, String pageCursor, BigDecimal pageSize) throws ApiException { HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); - String localVarPath = - "/cosigners/{cosignerId}/api_keys/{apiKeyId}/{requestId}" - .replace("{cosignerId}", ApiClient.urlEncode(cosignerId.toString())) - .replace("{apiKeyId}", ApiClient.urlEncode(apiKeyId.toString())) - .replace("{requestId}", ApiClient.urlEncode(requestId.toString())); + String localVarPath = "/cosigners"; - localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath)); + List localVarQueryParams = new ArrayList<>(); + StringJoiner localVarQueryStringJoiner = new StringJoiner("&"); + String localVarQueryParameterBaseName; + localVarQueryParameterBaseName = "order"; + localVarQueryParams.addAll(ApiClient.parameterToPairs("order", order)); + localVarQueryParameterBaseName = "pageCursor"; + localVarQueryParams.addAll(ApiClient.parameterToPairs("pageCursor", pageCursor)); + localVarQueryParameterBaseName = "pageSize"; + localVarQueryParams.addAll(ApiClient.parameterToPairs("pageSize", pageSize)); + + if (!localVarQueryParams.isEmpty() || localVarQueryStringJoiner.length() != 0) { + StringJoiner queryJoiner = new StringJoiner("&"); + localVarQueryParams.forEach(p -> queryJoiner.add(p.getName() + '=' + p.getValue())); + if (localVarQueryStringJoiner.length() != 0) { + queryJoiner.add(localVarQueryStringJoiner.toString()); + } + localVarRequestBuilder.uri( + URI.create(memberVarBaseUri + localVarPath + '?' + queryJoiner.toString())); + } else { + localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath)); + } localVarRequestBuilder.header("Accept", "application/json"); @@ -678,26 +683,27 @@ private HttpRequest.Builder getRequestStatusRequestBuilder( return localVarRequestBuilder; } /** - * Pair API key Pair an API key to a cosigner Endpoint Permission: Admin and Non-Signing Admin. + * Pair API user Pair an API user to a cosigner Endpoint Permission: Admin and Non-Signing + * Admin. * - * @param pairApiKeyRequest (required) + * @param pairApiUserRequest (required) * @param cosignerId The unique identifier of the cosigner (required) - * @param apiKeyId The unique identifier of the API key (required) + * @param apiUserId The unique identifier of the API user (required) * @param idempotencyKey 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 CompletableFuture<ApiResponse<PairApiKeyResponse>>, which completes + * @return CompletableFuture<ApiResponse<PairApiUserResponse>>, which completes * exceptionally with an {@link ApiException} if the API call fails */ - public CompletableFuture> pairApiKey( - PairApiKeyRequest pairApiKeyRequest, + public CompletableFuture> pairCosignerApiUser( + PairApiUserRequest pairApiUserRequest, UUID cosignerId, - String apiKeyId, + String apiUserId, String idempotencyKey) { try { HttpRequest.Builder localVarRequestBuilder = - pairApiKeyRequestBuilder( - pairApiKeyRequest, cosignerId, apiKeyId, idempotencyKey); + pairCosignerApiUserRequestBuilder( + pairApiUserRequest, cosignerId, apiUserId, idempotencyKey); return memberVarHttpClient .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString()) .thenComposeAsync( @@ -710,16 +716,17 @@ public CompletableFuture> pairApiKey( // is present on allowed error responses too. LifecycleWarning.warn( localVarResponse.headers(), - "pairApiKey", + "pairCosignerApiUser", localVarResponse.statusCode()); if (localVarResponse.statusCode() / 100 != 2) { return CompletableFuture.failedFuture( - getApiException("pairApiKey", localVarResponse)); + getApiException( + "pairCosignerApiUser", localVarResponse)); } try { String responseBody = localVarResponse.body(); return CompletableFuture.completedFuture( - new ApiResponse( + new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), responseBody == null || responseBody.isBlank() @@ -727,7 +734,7 @@ public CompletableFuture> pairApiKey( : memberVarObjectMapper.readValue( responseBody, new TypeReference< - PairApiKeyResponse>() {}))); + PairApiUserResponse>() {}))); } catch (IOException e) { return CompletableFuture.failedFuture(new ApiException(e)); } @@ -737,7 +744,7 @@ public CompletableFuture> pairApiKey( localVarThrowable == null ? CompletableFuture.completedFuture(localVarApiResponse) : CompletableFuture - .>failedFuture( + .>failedFuture( toApiFailure(localVarThrowable))) .thenCompose(localVarNormalized -> localVarNormalized); } catch (ApiException e) { @@ -745,23 +752,24 @@ public CompletableFuture> pairApiKey( } } - private HttpRequest.Builder pairApiKeyRequestBuilder( - PairApiKeyRequest pairApiKeyRequest, + private HttpRequest.Builder pairCosignerApiUserRequestBuilder( + PairApiUserRequest pairApiUserRequest, UUID cosignerId, - String apiKeyId, + String apiUserId, String idempotencyKey) throws ApiException { - ValidationUtils.assertParamExists("pairApiKey", "pairApiKeyRequest", pairApiKeyRequest); + ValidationUtils.assertParamExists( + "pairCosignerApiUser", "pairApiUserRequest", pairApiUserRequest); ValidationUtils.assertParamExistsAndNotEmpty( - "pairApiKey", "cosignerId", cosignerId.toString()); - ValidationUtils.assertParamExistsAndNotEmpty("pairApiKey", "apiKeyId", apiKeyId); + "pairCosignerApiUser", "cosignerId", cosignerId.toString()); + ValidationUtils.assertParamExistsAndNotEmpty("pairCosignerApiUser", "apiUserId", apiUserId); HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); String localVarPath = - "/cosigners/{cosignerId}/api_keys/{apiKeyId}" + "/cosigners/{cosignerId}/api_users/{apiUserId}" .replace("{cosignerId}", ApiClient.urlEncode(cosignerId.toString())) - .replace("{apiKeyId}", ApiClient.urlEncode(apiKeyId.toString())); + .replace("{apiUserId}", ApiClient.urlEncode(apiUserId.toString())); localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath)); @@ -772,7 +780,7 @@ private HttpRequest.Builder pairApiKeyRequestBuilder( localVarRequestBuilder.header("Accept", "application/json"); try { - byte[] localVarPostBody = memberVarObjectMapper.writeValueAsBytes(pairApiKeyRequest); + byte[] localVarPostBody = memberVarObjectMapper.writeValueAsBytes(pairApiUserRequest); localVarRequestBuilder.method( "PUT", HttpRequest.BodyPublishers.ofByteArray(localVarPostBody)); } catch (IOException e) { @@ -787,8 +795,7 @@ private HttpRequest.Builder pairApiKeyRequestBuilder( return localVarRequestBuilder; } /** - * Rename cosigner Rename a cosigner by ID. **Note:** These endpoints are currently in beta and - * might be subject to changes. Endpoint Permission: Admin and Non-Signing Admin. + * Rename cosigner Rename a cosigner by ID. Endpoint Permission: Admin and Non-Signing Admin. * * @param renameCosigner (required) * @param cosignerId The unique identifier of the cosigner (required) @@ -879,18 +886,19 @@ private HttpRequest.Builder renameCosignerRequestBuilder( return localVarRequestBuilder; } /** - * Unpair API key Unpair an API key from a cosigner Endpoint Permission: Admin and Non-Signing + * Unpair API user Unpair an API user from a cosigner Endpoint Permission: Admin and Non-Signing * Admin. * * @param cosignerId The unique identifier of the cosigner (required) - * @param apiKeyId The unique identifier of the API key (required) - * @return CompletableFuture<ApiResponse<ApiKey>>, which completes exceptionally - * with an {@link ApiException} if the API call fails + * @param apiUserId The unique identifier of the API user (required) + * @return CompletableFuture<ApiResponse<CosignerApiUser>>, which completes + * exceptionally with an {@link ApiException} if the API call fails */ - public CompletableFuture> unpairApiKey(UUID cosignerId, String apiKeyId) { + public CompletableFuture> unpairCosignerApiUser( + UUID cosignerId, String apiUserId) { try { HttpRequest.Builder localVarRequestBuilder = - unpairApiKeyRequestBuilder(cosignerId, apiKeyId); + unpairCosignerApiUserRequestBuilder(cosignerId, apiUserId); return memberVarHttpClient .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString()) .thenComposeAsync( @@ -903,16 +911,17 @@ public CompletableFuture> unpairApiKey(UUID cosignerId, Stri // is present on allowed error responses too. LifecycleWarning.warn( localVarResponse.headers(), - "unpairApiKey", + "unpairCosignerApiUser", localVarResponse.statusCode()); if (localVarResponse.statusCode() / 100 != 2) { return CompletableFuture.failedFuture( - getApiException("unpairApiKey", localVarResponse)); + getApiException( + "unpairCosignerApiUser", localVarResponse)); } try { String responseBody = localVarResponse.body(); return CompletableFuture.completedFuture( - new ApiResponse( + new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), responseBody == null || responseBody.isBlank() @@ -920,7 +929,7 @@ public CompletableFuture> unpairApiKey(UUID cosignerId, Stri : memberVarObjectMapper.readValue( responseBody, new TypeReference< - ApiKey>() {}))); + CosignerApiUser>() {}))); } catch (IOException e) { return CompletableFuture.failedFuture(new ApiException(e)); } @@ -929,26 +938,28 @@ public CompletableFuture> unpairApiKey(UUID cosignerId, Stri (localVarApiResponse, localVarThrowable) -> localVarThrowable == null ? CompletableFuture.completedFuture(localVarApiResponse) - : CompletableFuture.>failedFuture( - toApiFailure(localVarThrowable))) + : CompletableFuture + .>failedFuture( + toApiFailure(localVarThrowable))) .thenCompose(localVarNormalized -> localVarNormalized); } catch (ApiException e) { return CompletableFuture.failedFuture(e); } } - private HttpRequest.Builder unpairApiKeyRequestBuilder(UUID cosignerId, String apiKeyId) - throws ApiException { + private HttpRequest.Builder unpairCosignerApiUserRequestBuilder( + UUID cosignerId, String apiUserId) throws ApiException { + ValidationUtils.assertParamExistsAndNotEmpty( + "unpairCosignerApiUser", "cosignerId", cosignerId.toString()); ValidationUtils.assertParamExistsAndNotEmpty( - "unpairApiKey", "cosignerId", cosignerId.toString()); - ValidationUtils.assertParamExistsAndNotEmpty("unpairApiKey", "apiKeyId", apiKeyId); + "unpairCosignerApiUser", "apiUserId", apiUserId); HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); String localVarPath = - "/cosigners/{cosignerId}/api_keys/{apiKeyId}" + "/cosigners/{cosignerId}/api_users/{apiUserId}" .replace("{cosignerId}", ApiClient.urlEncode(cosignerId.toString())) - .replace("{apiKeyId}", ApiClient.urlEncode(apiKeyId.toString())); + .replace("{apiUserId}", ApiClient.urlEncode(apiUserId.toString())); localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath)); @@ -964,23 +975,24 @@ private HttpRequest.Builder unpairApiKeyRequestBuilder(UUID cosignerId, String a return localVarRequestBuilder; } /** - * Update API key callback handler Update the callback handler of an API key Endpoint + * Update API user callback handler Update the callback handler of an API user Endpoint * Permission: Admin and Non-Signing Admin. * * @param updateCallbackHandlerRequest (required) * @param cosignerId The unique identifier of the cosigner (required) - * @param apiKeyId The unique identifier of the API key (required) + * @param apiUserId The unique identifier of the API user (required) * @return CompletableFuture<ApiResponse<UpdateCallbackHandlerResponse>>, which * completes exceptionally with an {@link ApiException} if the API call fails */ - public CompletableFuture> updateCallbackHandler( - UpdateCallbackHandlerRequest updateCallbackHandlerRequest, - UUID cosignerId, - String apiKeyId) { + public CompletableFuture> + updateCosignerApiUserCallbackHandler( + UpdateCallbackHandlerRequest updateCallbackHandlerRequest, + UUID cosignerId, + String apiUserId) { try { HttpRequest.Builder localVarRequestBuilder = - updateCallbackHandlerRequestBuilder( - updateCallbackHandlerRequest, cosignerId, apiKeyId); + updateCosignerApiUserCallbackHandlerRequestBuilder( + updateCallbackHandlerRequest, cosignerId, apiUserId); return memberVarHttpClient .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString()) .thenComposeAsync( @@ -993,12 +1005,13 @@ public CompletableFuture> updateCallb // is present on allowed error responses too. LifecycleWarning.warn( localVarResponse.headers(), - "updateCallbackHandler", + "updateCosignerApiUserCallbackHandler", localVarResponse.statusCode()); if (localVarResponse.statusCode() / 100 != 2) { return CompletableFuture.failedFuture( getApiException( - "updateCallbackHandler", localVarResponse)); + "updateCosignerApiUserCallbackHandler", + localVarResponse)); } try { String responseBody = localVarResponse.body(); @@ -1031,25 +1044,26 @@ public CompletableFuture> updateCallb } } - private HttpRequest.Builder updateCallbackHandlerRequestBuilder( + private HttpRequest.Builder updateCosignerApiUserCallbackHandlerRequestBuilder( UpdateCallbackHandlerRequest updateCallbackHandlerRequest, UUID cosignerId, - String apiKeyId) + String apiUserId) throws ApiException { ValidationUtils.assertParamExists( - "updateCallbackHandler", + "updateCosignerApiUserCallbackHandler", "updateCallbackHandlerRequest", updateCallbackHandlerRequest); ValidationUtils.assertParamExistsAndNotEmpty( - "updateCallbackHandler", "cosignerId", cosignerId.toString()); - ValidationUtils.assertParamExistsAndNotEmpty("updateCallbackHandler", "apiKeyId", apiKeyId); + "updateCosignerApiUserCallbackHandler", "cosignerId", cosignerId.toString()); + ValidationUtils.assertParamExistsAndNotEmpty( + "updateCosignerApiUserCallbackHandler", "apiUserId", apiUserId); HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); String localVarPath = - "/cosigners/{cosignerId}/api_keys/{apiKeyId}" + "/cosigners/{cosignerId}/api_users/{apiUserId}" .replace("{cosignerId}", ApiClient.urlEncode(cosignerId.toString())) - .replace("{apiKeyId}", ApiClient.urlEncode(apiKeyId.toString())); + .replace("{apiUserId}", ApiClient.urlEncode(apiUserId.toString())); localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath)); diff --git a/src/main/java/com/fireblocks/sdk/api/KeyLinkBetaApi.java b/src/main/java/com/fireblocks/sdk/api/KeyLinkApi.java similarity index 91% rename from src/main/java/com/fireblocks/sdk/api/KeyLinkBetaApi.java rename to src/main/java/com/fireblocks/sdk/api/KeyLinkApi.java index 60b6d3a3..4bdfa525 100644 --- a/src/main/java/com/fireblocks/sdk/api/KeyLinkBetaApi.java +++ b/src/main/java/com/fireblocks/sdk/api/KeyLinkApi.java @@ -55,7 +55,7 @@ @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.14.0") -public class KeyLinkBetaApi { +public class KeyLinkApi { private final HttpClient memberVarHttpClient; private final ObjectMapper memberVarObjectMapper; private final String memberVarBaseUri; @@ -64,11 +64,11 @@ public class KeyLinkBetaApi { private final Consumer> memberVarResponseInterceptor; private final Consumer> memberVarAsyncResponseInterceptor; - public KeyLinkBetaApi() { + public KeyLinkApi() { this(new ApiClient()); } - public KeyLinkBetaApi(ApiClient apiClient) { + public KeyLinkApi(ApiClient apiClient) { memberVarHttpClient = apiClient.getHttpClient(); memberVarObjectMapper = apiClient.getObjectMapper(); memberVarBaseUri = apiClient.getBaseUri(); @@ -418,15 +418,18 @@ private HttpRequest.Builder createValidationKeyRequestBuilder( return localVarRequestBuilder; } /** - * Disables a validation key Allows disabling validation key even if it has not expired yet. It - * is not allowed to enable the validation key back. Another key has to be used for future - * validations. + * Disables a validation key DEPRECATED - Please use `POST + * /key_link/validation_keys/{keyId}/revoke` instead. Allows disabling validation key even + * if it has not expired yet. It is not allowed to enable the validation key back. Another key + * has to be used for future validations. * * @param modifyValidationKeyDto (required) * @param keyId The unique identifier for the validation key provided by Fireblocks (required) * @return CompletableFuture<ApiResponse<ValidationKeyDto>>, which completes * exceptionally with an {@link ApiException} if the API call fails + * @deprecated */ + @Deprecated public CompletableFuture> disableValidationKey( ModifyValidationKeyDto modifyValidationKeyDto, String keyId) { try { @@ -1021,20 +1024,29 @@ private HttpRequest.Builder getValidationKeyRequestBuilder(String keyId) throws return localVarRequestBuilder; } /** - * Get list of registered validation keys Returns the list of validation keys in the workspace + * Get list of registered validation keys Returns the list of validation keys in the workspace. + * By default, revoked keys are filtered out. Use `includeRevoked=true` to show + * all keys. * * @param pageCursor Cursor to the next page (optional) * @param pageSize Amount of results to return in the next page (optional, default to 10) * @param sortBy Field(s) to use for sorting (optional, default to createdAt) * @param order Is the order ascending or descending (optional, default to ASC) + * @param includeRevoked Include revoked validation keys in the response (optional, default to + * false) * @return CompletableFuture<ApiResponse<GetValidationKeyResponseDto>>, which * completes exceptionally with an {@link ApiException} if the API call fails */ public CompletableFuture> getValidationKeysList( - String pageCursor, BigDecimal pageSize, String sortBy, String order) { + String pageCursor, + BigDecimal pageSize, + String sortBy, + String order, + Boolean includeRevoked) { try { HttpRequest.Builder localVarRequestBuilder = - getValidationKeysListRequestBuilder(pageCursor, pageSize, sortBy, order); + getValidationKeysListRequestBuilder( + pageCursor, pageSize, sortBy, order, includeRevoked); return memberVarHttpClient .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString()) .thenComposeAsync( @@ -1086,7 +1098,11 @@ public CompletableFuture> getValidation } private HttpRequest.Builder getValidationKeysListRequestBuilder( - String pageCursor, BigDecimal pageSize, String sortBy, String order) + String pageCursor, + BigDecimal pageSize, + String sortBy, + String order, + Boolean includeRevoked) throws ApiException { HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); @@ -1104,6 +1120,8 @@ private HttpRequest.Builder getValidationKeysListRequestBuilder( localVarQueryParams.addAll(ApiClient.parameterToPairs("sortBy", sortBy)); localVarQueryParameterBaseName = "order"; localVarQueryParams.addAll(ApiClient.parameterToPairs("order", order)); + localVarQueryParameterBaseName = "includeRevoked"; + localVarQueryParams.addAll(ApiClient.parameterToPairs("includeRevoked", includeRevoked)); if (!localVarQueryParams.isEmpty() || localVarQueryStringJoiner.length() != 0) { StringJoiner queryJoiner = new StringJoiner("&"); @@ -1128,6 +1146,97 @@ private HttpRequest.Builder getValidationKeysListRequestBuilder( } return localVarRequestBuilder; } + /** + * Revokes a validation key Revokes a validation key, making it permanently unusable for + * validation. Once revoked, a key cannot be un-revoked. Another key has to be used for future + * validations. + * + * @param keyId The unique identifier for the validation key provided by Fireblocks (required) + * @param idempotencyKey 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 CompletableFuture<ApiResponse<ValidationKeyDto>>, which completes + * exceptionally with an {@link ApiException} if the API call fails + */ + public CompletableFuture> revokeValidationKey( + String keyId, String idempotencyKey) { + try { + HttpRequest.Builder localVarRequestBuilder = + revokeValidationKeyRequestBuilder(keyId, idempotencyKey); + return memberVarHttpClient + .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString()) + .thenComposeAsync( + localVarResponse -> { + if (memberVarAsyncResponseInterceptor != null) { + memberVarAsyncResponseInterceptor.accept(localVarResponse); + } + // Ahead of the status check, which fails the future: the lifecycle + // header + // is present on allowed error responses too. + LifecycleWarning.warn( + localVarResponse.headers(), + "revokeValidationKey", + localVarResponse.statusCode()); + if (localVarResponse.statusCode() / 100 != 2) { + return CompletableFuture.failedFuture( + getApiException( + "revokeValidationKey", localVarResponse)); + } + try { + String responseBody = localVarResponse.body(); + return CompletableFuture.completedFuture( + new ApiResponse( + localVarResponse.statusCode(), + localVarResponse.headers().map(), + responseBody == null || responseBody.isBlank() + ? null + : memberVarObjectMapper.readValue( + responseBody, + new TypeReference< + ValidationKeyDto>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }) + .handle( + (localVarApiResponse, localVarThrowable) -> + localVarThrowable == null + ? CompletableFuture.completedFuture(localVarApiResponse) + : CompletableFuture + .>failedFuture( + toApiFailure(localVarThrowable))) + .thenCompose(localVarNormalized -> localVarNormalized); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder revokeValidationKeyRequestBuilder( + String keyId, String idempotencyKey) throws ApiException { + ValidationUtils.assertParamExistsAndNotEmpty("revokeValidationKey", "keyId", keyId); + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = + "/key_link/validation_keys/{keyId}/revoke" + .replace("{keyId}", ApiClient.urlEncode(keyId.toString())); + + localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath)); + + if (idempotencyKey != null) { + localVarRequestBuilder.header("Idempotency-Key", idempotencyKey.toString()); + } + localVarRequestBuilder.header("Accept", "application/json"); + + localVarRequestBuilder.method("POST", HttpRequest.BodyPublishers.noBody()); + if (memberVarReadTimeout != null) { + localVarRequestBuilder.timeout(memberVarReadTimeout); + } + if (memberVarInterceptor != null) { + memberVarInterceptor.accept(localVarRequestBuilder); + } + return localVarRequestBuilder; + } /** * Set agent user id Can modify existing signing key id if the key is not enabled. The change * done in background and will be visible once applied. If key is already enabled (after proof diff --git a/src/main/java/com/fireblocks/sdk/api/KeysBetaApi.java b/src/main/java/com/fireblocks/sdk/api/KeysApi.java similarity index 97% rename from src/main/java/com/fireblocks/sdk/api/KeysBetaApi.java rename to src/main/java/com/fireblocks/sdk/api/KeysApi.java index 1a15387d..d6cf618a 100644 --- a/src/main/java/com/fireblocks/sdk/api/KeysBetaApi.java +++ b/src/main/java/com/fireblocks/sdk/api/KeysApi.java @@ -37,7 +37,7 @@ @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.14.0") -public class KeysBetaApi { +public class KeysApi { private final HttpClient memberVarHttpClient; private final ObjectMapper memberVarObjectMapper; private final String memberVarBaseUri; @@ -46,11 +46,11 @@ public class KeysBetaApi { private final Consumer> memberVarResponseInterceptor; private final Consumer> memberVarAsyncResponseInterceptor; - public KeysBetaApi() { + public KeysApi() { this(new ApiClient()); } - public KeysBetaApi(ApiClient apiClient) { + public KeysApi(ApiClient apiClient) { memberVarHttpClient = apiClient.getHttpClient(); memberVarObjectMapper = apiClient.getObjectMapper(); memberVarBaseUri = apiClient.getBaseUri(); @@ -98,8 +98,7 @@ private String formatExceptionMessage(String operationId, int statusCode, String /** * Get list of mpc keys Returns a list of MPC signing keys of the workspace. For each key, the - * list of players associated with it is attached. **Note:** This endpoint is currently in beta - * and might be subject to changes. + * list of players associated with it is attached. * * @return CompletableFuture<ApiResponse<GetMpcKeysResponse>>, which completes * exceptionally with an {@link ApiException} if the API call fails @@ -175,8 +174,7 @@ private HttpRequest.Builder getMpcKeysListRequestBuilder() throws ApiException { } /** * Get list of mpc keys by `userId` Returns a list of MPC signing keys of a specific - * user. For each key, the list of players associated with it is attached. **Note:** This - * endpoint is currently in beta and might be subject to changes. + * user. For each key, the list of players associated with it is attached. * * @param userId The id for the user (required) * @return CompletableFuture<ApiResponse<GetMpcKeysResponse>>, which completes diff --git a/src/main/java/com/fireblocks/sdk/api/TrLinkApi.java b/src/main/java/com/fireblocks/sdk/api/TrLinkApi.java index ae805715..934bdd24 100644 --- a/src/main/java/com/fireblocks/sdk/api/TrLinkApi.java +++ b/src/main/java/com/fireblocks/sdk/api/TrLinkApi.java @@ -692,8 +692,12 @@ private HttpRequest.Builder createTRLinkIntegrationRequestBuilder( return localVarRequestBuilder; } /** - * Manual decision for missing TRM Accept or reject destinations stuck in NoTRM step without - * waiting for TRP webhook or policy timeout. + * Manual decision for missing TRM Accept or reject destinations waiting for a Travel Rule + * message (missing TRM), without waiting for a TRP webhook or the missing-TRM policy timeout. + * You can submit before a destination enters the missing-TRM wait; if it can't be updated + * immediately, the decision is applied on the next processing attempt instead (status + * ACCEPTED). Check `status` in the response to see whether the decision has been + * applied. * * @param trLinkManualDecisionRequest (required) * @param customerIntegrationId Customer integration unique identifier (required) @@ -1534,6 +1538,102 @@ private HttpRequest.Builder getTRLinkIntegrationPublicKeyRequestBuilder( } return localVarRequestBuilder; } + /** + * Get manual decision for missing TRM Returns the current manual missing-TRM decision for a + * transaction. Use to follow a decision that is not yet applied, or to check status at any + * time. + * + * @param customerIntegrationId Customer integration unique identifier (required) + * @param txId Fireblocks transaction unique identifier (required) + * @return CompletableFuture<ApiResponse<TRLinkManualDecisionResponse>>, which + * completes exceptionally with an {@link ApiException} if the API call fails + */ + public CompletableFuture> getTRLinkManualDecision( + UUID customerIntegrationId, UUID txId) { + try { + HttpRequest.Builder localVarRequestBuilder = + getTRLinkManualDecisionRequestBuilder(customerIntegrationId, txId); + return memberVarHttpClient + .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString()) + .thenComposeAsync( + localVarResponse -> { + if (memberVarAsyncResponseInterceptor != null) { + memberVarAsyncResponseInterceptor.accept(localVarResponse); + } + // Ahead of the status check, which fails the future: the lifecycle + // header + // is present on allowed error responses too. + LifecycleWarning.warn( + localVarResponse.headers(), + "getTRLinkManualDecision", + localVarResponse.statusCode()); + if (localVarResponse.statusCode() / 100 != 2) { + return CompletableFuture.failedFuture( + getApiException( + "getTRLinkManualDecision", localVarResponse)); + } + try { + String responseBody = localVarResponse.body(); + return CompletableFuture.completedFuture( + new ApiResponse( + localVarResponse.statusCode(), + localVarResponse.headers().map(), + responseBody == null || responseBody.isBlank() + ? null + : memberVarObjectMapper.readValue( + responseBody, + new TypeReference< + TRLinkManualDecisionResponse>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }) + .handle( + (localVarApiResponse, localVarThrowable) -> + localVarThrowable == null + ? CompletableFuture.completedFuture(localVarApiResponse) + : CompletableFuture + .> + failedFuture( + toApiFailure( + localVarThrowable))) + .thenCompose(localVarNormalized -> localVarNormalized); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder getTRLinkManualDecisionRequestBuilder( + UUID customerIntegrationId, UUID txId) throws ApiException { + ValidationUtils.assertParamExistsAndNotEmpty( + "getTRLinkManualDecision", + "customerIntegrationId", + customerIntegrationId.toString()); + ValidationUtils.assertParamExistsAndNotEmpty( + "getTRLinkManualDecision", "txId", txId.toString()); + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = + "/screening/trlink/customers/integration/{customerIntegrationId}/transactions/{txId}/manual_decision" + .replace( + "{customerIntegrationId}", + ApiClient.urlEncode(customerIntegrationId.toString())) + .replace("{txId}", ApiClient.urlEncode(txId.toString())); + + localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath)); + + localVarRequestBuilder.header("Accept", "application/json"); + + localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody()); + if (memberVarReadTimeout != null) { + localVarRequestBuilder.timeout(memberVarReadTimeout); + } + if (memberVarInterceptor != null) { + memberVarInterceptor.accept(localVarRequestBuilder); + } + return localVarRequestBuilder; + } /** * List available TRSupport partners Retrieves a list of all available Travel Rule Support * integration partners. Partners provide Travel Rule compliance services such as VASP diff --git a/src/main/java/com/fireblocks/sdk/api/VaultsApi.java b/src/main/java/com/fireblocks/sdk/api/VaultsApi.java index eeaebdd4..5e90f9f7 100644 --- a/src/main/java/com/fireblocks/sdk/api/VaultsApi.java +++ b/src/main/java/com/fireblocks/sdk/api/VaultsApi.java @@ -579,7 +579,10 @@ private HttpRequest.Builder createLegacyAddressRequestBuilder( * Bulk creation of new vault accounts Create multiple vault accounts by running an async job. - * The HBAR, TON, SUI, TERRA, ALGO, and DOT blockchains are not supported. - These endpoints are * currently in beta and might be subject to changes. - Limited to a maximum of 10,000 accounts - * per operation. **Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor. + * per operation. - With `vaultType: KEY_LINK`, creates Key Link vault accounts; set + * `autoAssign: true` to bind them to the workspace's signing keys (see + * `vaultType` and `autoAssign`). **Endpoint Permissions:** Admin, + * Non-Signing Admin, Signer, Approver, Editor. * * @param createMultipleAccountsRequest (required) * @param idempotencyKey A unique identifier for the request. If the request is sent multiple diff --git a/src/main/java/com/fireblocks/sdk/model/AddCosignerRequest.java b/src/main/java/com/fireblocks/sdk/model/AddCosignerRequest.java index 344813d9..ba7e5686 100644 --- a/src/main/java/com/fireblocks/sdk/model/AddCosignerRequest.java +++ b/src/main/java/com/fireblocks/sdk/model/AddCosignerRequest.java @@ -24,7 +24,7 @@ /** AddCosignerRequest */ @JsonPropertyOrder({ - AddCosignerRequest.JSON_PROPERTY_API_KEY_ID, + AddCosignerRequest.JSON_PROPERTY_API_USER_ID, AddCosignerRequest.JSON_PROPERTY_NAME, AddCosignerRequest.JSON_PROPERTY_EXISTING_COSIGNER }) @@ -32,8 +32,8 @@ value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.14.0") public class AddCosignerRequest { - public static final String JSON_PROPERTY_API_KEY_ID = "apiKeyId"; - @jakarta.annotation.Nonnull private UUID apiKeyId; + public static final String JSON_PROPERTY_API_USER_ID = "apiUserId"; + @jakarta.annotation.Nonnull private UUID apiUserId; public static final String JSON_PROPERTY_NAME = "name"; @jakarta.annotation.Nonnull private String name; @@ -45,33 +45,33 @@ public AddCosignerRequest() {} @JsonCreator public AddCosignerRequest( - @JsonProperty(value = JSON_PROPERTY_API_KEY_ID, required = true) UUID apiKeyId, + @JsonProperty(value = JSON_PROPERTY_API_USER_ID, required = true) UUID apiUserId, @JsonProperty(value = JSON_PROPERTY_NAME, required = true) String name) { - this.apiKeyId = apiKeyId; + this.apiUserId = apiUserId; this.name = name; } - public AddCosignerRequest apiKeyId(@jakarta.annotation.Nonnull UUID apiKeyId) { - this.apiKeyId = apiKeyId; + public AddCosignerRequest apiUserId(@jakarta.annotation.Nonnull UUID apiUserId) { + this.apiUserId = apiUserId; return this; } /** - * The id of the API key to be paired with the cosigner + * The id of the API user to be paired with the cosigner * - * @return apiKeyId + * @return apiUserId */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_API_KEY_ID) + @JsonProperty(JSON_PROPERTY_API_USER_ID) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public UUID getApiKeyId() { - return apiKeyId; + public UUID getApiUserId() { + return apiUserId; } - @JsonProperty(JSON_PROPERTY_API_KEY_ID) + @JsonProperty(JSON_PROPERTY_API_USER_ID) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setApiKeyId(@jakarta.annotation.Nonnull UUID apiKeyId) { - this.apiKeyId = apiKeyId; + public void setApiUserId(@jakarta.annotation.Nonnull UUID apiUserId) { + this.apiUserId = apiUserId; } public AddCosignerRequest name(@jakarta.annotation.Nonnull String name) { @@ -131,21 +131,21 @@ public boolean equals(Object o) { return false; } AddCosignerRequest addCosignerRequest = (AddCosignerRequest) o; - return Objects.equals(this.apiKeyId, addCosignerRequest.apiKeyId) + return Objects.equals(this.apiUserId, addCosignerRequest.apiUserId) && Objects.equals(this.name, addCosignerRequest.name) && Objects.equals(this.existingCosigner, addCosignerRequest.existingCosigner); } @Override public int hashCode() { - return Objects.hash(apiKeyId, name, existingCosigner); + return Objects.hash(apiUserId, name, existingCosigner); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class AddCosignerRequest {\n"); - sb.append(" apiKeyId: ").append(toIndentedString(apiKeyId)).append("\n"); + sb.append(" apiUserId: ").append(toIndentedString(apiUserId)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" existingCosigner: ").append(toIndentedString(existingCosigner)).append("\n"); sb.append("}"); @@ -195,14 +195,14 @@ public String toUrlQueryString(String prefix) { StringJoiner joiner = new StringJoiner("&"); - // add `apiKeyId` to the URL query string - if (getApiKeyId() != null) { + // add `apiUserId` to the URL query string + if (getApiUserId() != null) { joiner.add( String.format( - "%sapiKeyId%s=%s", + "%sapiUserId%s=%s", prefix, suffix, - ApiClient.urlEncode(ApiClient.valueToString(getApiKeyId())))); + ApiClient.urlEncode(ApiClient.valueToString(getApiUserId())))); } // add `name` to the URL query string diff --git a/src/main/java/com/fireblocks/sdk/model/AddCosignerResponse.java b/src/main/java/com/fireblocks/sdk/model/AddCosignerResponse.java index bd6ce140..88326776 100644 --- a/src/main/java/com/fireblocks/sdk/model/AddCosignerResponse.java +++ b/src/main/java/com/fireblocks/sdk/model/AddCosignerResponse.java @@ -24,7 +24,7 @@ /** AddCosignerResponse */ @JsonPropertyOrder({ - AddCosignerResponse.JSON_PROPERTY_API_KEY_ID, + AddCosignerResponse.JSON_PROPERTY_API_USER_ID, AddCosignerResponse.JSON_PROPERTY_NAME, AddCosignerResponse.JSON_PROPERTY_EXISTING_COSIGNER, AddCosignerResponse.JSON_PROPERTY_PENDING_COSIGNER_ID @@ -33,8 +33,8 @@ value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.14.0") public class AddCosignerResponse { - public static final String JSON_PROPERTY_API_KEY_ID = "apiKeyId"; - @jakarta.annotation.Nonnull private UUID apiKeyId; + public static final String JSON_PROPERTY_API_USER_ID = "apiUserId"; + @jakarta.annotation.Nonnull private UUID apiUserId; public static final String JSON_PROPERTY_NAME = "name"; @jakarta.annotation.Nonnull private String name; @@ -49,36 +49,36 @@ public AddCosignerResponse() {} @JsonCreator public AddCosignerResponse( - @JsonProperty(value = JSON_PROPERTY_API_KEY_ID, required = true) UUID apiKeyId, + @JsonProperty(value = JSON_PROPERTY_API_USER_ID, required = true) UUID apiUserId, @JsonProperty(value = JSON_PROPERTY_NAME, required = true) String name, @JsonProperty(value = JSON_PROPERTY_PENDING_COSIGNER_ID, required = true) UUID pendingCosignerId) { - this.apiKeyId = apiKeyId; + this.apiUserId = apiUserId; this.name = name; this.pendingCosignerId = pendingCosignerId; } - public AddCosignerResponse apiKeyId(@jakarta.annotation.Nonnull UUID apiKeyId) { - this.apiKeyId = apiKeyId; + public AddCosignerResponse apiUserId(@jakarta.annotation.Nonnull UUID apiUserId) { + this.apiUserId = apiUserId; return this; } /** - * The id of the API key to be paired with the cosigner + * The id of the API user to be paired with the cosigner * - * @return apiKeyId + * @return apiUserId */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_API_KEY_ID) + @JsonProperty(JSON_PROPERTY_API_USER_ID) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public UUID getApiKeyId() { - return apiKeyId; + public UUID getApiUserId() { + return apiUserId; } - @JsonProperty(JSON_PROPERTY_API_KEY_ID) + @JsonProperty(JSON_PROPERTY_API_USER_ID) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setApiKeyId(@jakarta.annotation.Nonnull UUID apiKeyId) { - this.apiKeyId = apiKeyId; + public void setApiUserId(@jakarta.annotation.Nonnull UUID apiUserId) { + this.apiUserId = apiUserId; } public AddCosignerResponse name(@jakarta.annotation.Nonnull String name) { @@ -162,7 +162,7 @@ public boolean equals(Object o) { return false; } AddCosignerResponse addCosignerResponse = (AddCosignerResponse) o; - return Objects.equals(this.apiKeyId, addCosignerResponse.apiKeyId) + return Objects.equals(this.apiUserId, addCosignerResponse.apiUserId) && Objects.equals(this.name, addCosignerResponse.name) && Objects.equals(this.existingCosigner, addCosignerResponse.existingCosigner) && Objects.equals(this.pendingCosignerId, addCosignerResponse.pendingCosignerId); @@ -170,14 +170,14 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(apiKeyId, name, existingCosigner, pendingCosignerId); + return Objects.hash(apiUserId, name, existingCosigner, pendingCosignerId); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class AddCosignerResponse {\n"); - sb.append(" apiKeyId: ").append(toIndentedString(apiKeyId)).append("\n"); + sb.append(" apiUserId: ").append(toIndentedString(apiUserId)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" existingCosigner: ").append(toIndentedString(existingCosigner)).append("\n"); sb.append(" pendingCosignerId: ") @@ -230,14 +230,14 @@ public String toUrlQueryString(String prefix) { StringJoiner joiner = new StringJoiner("&"); - // add `apiKeyId` to the URL query string - if (getApiKeyId() != null) { + // add `apiUserId` to the URL query string + if (getApiUserId() != null) { joiner.add( String.format( - "%sapiKeyId%s=%s", + "%sapiUserId%s=%s", prefix, suffix, - ApiClient.urlEncode(ApiClient.valueToString(getApiKeyId())))); + ApiClient.urlEncode(ApiClient.valueToString(getApiUserId())))); } // add `name` to the URL query string diff --git a/src/main/java/com/fireblocks/sdk/model/ApiKeysPaginatedResponse.java b/src/main/java/com/fireblocks/sdk/model/ApiUsersPaginatedResponse.java similarity index 83% rename from src/main/java/com/fireblocks/sdk/model/ApiKeysPaginatedResponse.java rename to src/main/java/com/fireblocks/sdk/model/ApiUsersPaginatedResponse.java index 26fdc859..8ce47745 100644 --- a/src/main/java/com/fireblocks/sdk/model/ApiKeysPaginatedResponse.java +++ b/src/main/java/com/fireblocks/sdk/model/ApiUsersPaginatedResponse.java @@ -23,35 +23,35 @@ import java.util.Objects; import java.util.StringJoiner; -/** ApiKeysPaginatedResponse */ +/** ApiUsersPaginatedResponse */ @JsonPropertyOrder({ - ApiKeysPaginatedResponse.JSON_PROPERTY_DATA, - ApiKeysPaginatedResponse.JSON_PROPERTY_NEXT + ApiUsersPaginatedResponse.JSON_PROPERTY_DATA, + ApiUsersPaginatedResponse.JSON_PROPERTY_NEXT }) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.14.0") -public class ApiKeysPaginatedResponse { +public class ApiUsersPaginatedResponse { public static final String JSON_PROPERTY_DATA = "data"; - @jakarta.annotation.Nonnull private List data; + @jakarta.annotation.Nonnull private List data; public static final String JSON_PROPERTY_NEXT = "next"; @jakarta.annotation.Nullable private String next; - public ApiKeysPaginatedResponse() {} + public ApiUsersPaginatedResponse() {} @JsonCreator - public ApiKeysPaginatedResponse( - @JsonProperty(value = JSON_PROPERTY_DATA, required = true) List data) { + public ApiUsersPaginatedResponse( + @JsonProperty(value = JSON_PROPERTY_DATA, required = true) List data) { this.data = data; } - public ApiKeysPaginatedResponse data(@jakarta.annotation.Nonnull List data) { + public ApiUsersPaginatedResponse data(@jakarta.annotation.Nonnull List data) { this.data = data; return this; } - public ApiKeysPaginatedResponse addDataItem(ApiKey dataItem) { + public ApiUsersPaginatedResponse addDataItem(CosignerApiUser dataItem) { if (this.data == null) { this.data = new ArrayList<>(); } @@ -67,17 +67,17 @@ public ApiKeysPaginatedResponse addDataItem(ApiKey dataItem) { @jakarta.annotation.Nonnull @JsonProperty(JSON_PROPERTY_DATA) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public List getData() { + public List getData() { return data; } @JsonProperty(JSON_PROPERTY_DATA) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setData(@jakarta.annotation.Nonnull List data) { + public void setData(@jakarta.annotation.Nonnull List data) { this.data = data; } - public ApiKeysPaginatedResponse next(@jakarta.annotation.Nullable String next) { + public ApiUsersPaginatedResponse next(@jakarta.annotation.Nullable String next) { this.next = next; return this; } @@ -100,7 +100,7 @@ public void setNext(@jakarta.annotation.Nullable String next) { this.next = next; } - /** Return true if this ApiKeysPaginatedResponse object is equal to o. */ + /** Return true if this ApiUsersPaginatedResponse object is equal to o. */ @Override public boolean equals(Object o) { if (this == o) { @@ -109,9 +109,9 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) { return false; } - ApiKeysPaginatedResponse apiKeysPaginatedResponse = (ApiKeysPaginatedResponse) o; - return Objects.equals(this.data, apiKeysPaginatedResponse.data) - && Objects.equals(this.next, apiKeysPaginatedResponse.next); + ApiUsersPaginatedResponse apiUsersPaginatedResponse = (ApiUsersPaginatedResponse) o; + return Objects.equals(this.data, apiUsersPaginatedResponse.data) + && Objects.equals(this.next, apiUsersPaginatedResponse.next); } @Override @@ -122,7 +122,7 @@ public int hashCode() { @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class ApiKeysPaginatedResponse {\n"); + sb.append("class ApiUsersPaginatedResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" next: ").append(toIndentedString(next)).append("\n"); sb.append("}"); diff --git a/src/main/java/com/fireblocks/sdk/model/ApiKey.java b/src/main/java/com/fireblocks/sdk/model/CosignerApiUser.java similarity index 84% rename from src/main/java/com/fireblocks/sdk/model/ApiKey.java rename to src/main/java/com/fireblocks/sdk/model/CosignerApiUser.java index b4ce1ad1..1db2ad8b 100644 --- a/src/main/java/com/fireblocks/sdk/model/ApiKey.java +++ b/src/main/java/com/fireblocks/sdk/model/CosignerApiUser.java @@ -23,16 +23,16 @@ import java.util.StringJoiner; import java.util.UUID; -/** ApiKey */ +/** CosignerApiUser */ @JsonPropertyOrder({ - ApiKey.JSON_PROPERTY_ID, - ApiKey.JSON_PROPERTY_LAST_SEEN, - ApiKey.JSON_PROPERTY_CALLBACK_HANDLER + CosignerApiUser.JSON_PROPERTY_ID, + CosignerApiUser.JSON_PROPERTY_LAST_SEEN, + CosignerApiUser.JSON_PROPERTY_CALLBACK_HANDLER }) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.14.0") -public class ApiKey { +public class CosignerApiUser { public static final String JSON_PROPERTY_ID = "id"; @jakarta.annotation.Nonnull private UUID id; @@ -42,20 +42,20 @@ public class ApiKey { public static final String JSON_PROPERTY_CALLBACK_HANDLER = "callbackHandler"; @jakarta.annotation.Nullable private CallbackHandler callbackHandler; - public ApiKey() {} + public CosignerApiUser() {} @JsonCreator - public ApiKey(@JsonProperty(value = JSON_PROPERTY_ID, required = true) UUID id) { + public CosignerApiUser(@JsonProperty(value = JSON_PROPERTY_ID, required = true) UUID id) { this.id = id; } - public ApiKey id(@jakarta.annotation.Nonnull UUID id) { + public CosignerApiUser id(@jakarta.annotation.Nonnull UUID id) { this.id = id; return this; } /** - * The unique identifier of the API key + * The unique identifier of the API user * * @return id */ @@ -72,13 +72,13 @@ public void setId(@jakarta.annotation.Nonnull UUID id) { this.id = id; } - public ApiKey lastSeen(@jakarta.annotation.Nullable OffsetDateTime lastSeen) { + public CosignerApiUser lastSeen(@jakarta.annotation.Nullable OffsetDateTime lastSeen) { this.lastSeen = lastSeen; return this; } /** - * The date the API key was last seen + * The date the API user was last seen * * @return lastSeen */ @@ -95,7 +95,8 @@ public void setLastSeen(@jakarta.annotation.Nullable OffsetDateTime lastSeen) { this.lastSeen = lastSeen; } - public ApiKey callbackHandler(@jakarta.annotation.Nullable CallbackHandler callbackHandler) { + public CosignerApiUser callbackHandler( + @jakarta.annotation.Nullable CallbackHandler callbackHandler) { this.callbackHandler = callbackHandler; return this; } @@ -118,7 +119,7 @@ public void setCallbackHandler(@jakarta.annotation.Nullable CallbackHandler call this.callbackHandler = callbackHandler; } - /** Return true if this ApiKey object is equal to o. */ + /** Return true if this CosignerApiUser object is equal to o. */ @Override public boolean equals(Object o) { if (this == o) { @@ -127,10 +128,10 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) { return false; } - ApiKey apiKey = (ApiKey) o; - return Objects.equals(this.id, apiKey.id) - && Objects.equals(this.lastSeen, apiKey.lastSeen) - && Objects.equals(this.callbackHandler, apiKey.callbackHandler); + CosignerApiUser cosignerApiUser = (CosignerApiUser) o; + return Objects.equals(this.id, cosignerApiUser.id) + && Objects.equals(this.lastSeen, cosignerApiUser.lastSeen) + && Objects.equals(this.callbackHandler, cosignerApiUser.callbackHandler); } @Override @@ -141,7 +142,7 @@ public int hashCode() { @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class ApiKey {\n"); + sb.append("class CosignerApiUser {\n"); sb.append(" id: ").append(toIndentedString(id)).append("\n"); sb.append(" lastSeen: ").append(toIndentedString(lastSeen)).append("\n"); sb.append(" callbackHandler: ").append(toIndentedString(callbackHandler)).append("\n"); diff --git a/src/main/java/com/fireblocks/sdk/model/CreateMultipleAccountsRequest.java b/src/main/java/com/fireblocks/sdk/model/CreateMultipleAccountsRequest.java index 841f0519..de107a2a 100644 --- a/src/main/java/com/fireblocks/sdk/model/CreateMultipleAccountsRequest.java +++ b/src/main/java/com/fireblocks/sdk/model/CreateMultipleAccountsRequest.java @@ -17,6 +17,7 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fasterxml.jackson.annotation.JsonValue; import com.fireblocks.sdk.ApiClient; import java.util.ArrayList; import java.util.List; @@ -31,7 +32,9 @@ CreateMultipleAccountsRequest.JSON_PROPERTY_NAMES, CreateMultipleAccountsRequest.JSON_PROPERTY_VAULT_ACCOUNT_NAMES_STARTING_INDEX, CreateMultipleAccountsRequest.JSON_PROPERTY_PREFIX, - CreateMultipleAccountsRequest.JSON_PROPERTY_TAG_IDS + CreateMultipleAccountsRequest.JSON_PROPERTY_TAG_IDS, + CreateMultipleAccountsRequest.JSON_PROPERTY_VAULT_TYPE, + CreateMultipleAccountsRequest.JSON_PROPERTY_AUTO_ASSIGN }) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", @@ -56,6 +59,54 @@ public class CreateMultipleAccountsRequest { public static final String JSON_PROPERTY_TAG_IDS = "tagIds"; @jakarta.annotation.Nullable private List tagIds; + /** + * Type of vault accounts to create. The default type is MPC. KEY_LINK creates Key Link vault + * accounts. It requires a Key Link workspace. With autoAssign set to true, the vault accounts + * are bound to the workspace's Key Link signing keys, assigned automatically from the + * available keys, and only one KEY_LINK bulk creation with autoAssign set to true can run per + * workspace at a time. With autoAssign set to false (the default), the vault accounts are + * created without keys. With KEY_LINK, names, vaultAccountNamesStartingIndex, prefix and tagIds + * work as they do for MPC, and baseAssetIds may be empty to create vault accounts without + * wallets. + */ + public enum VaultTypeEnum { + MPC(String.valueOf("MPC")), + + KEY_LINK(String.valueOf("KEY_LINK")); + + private String value; + + VaultTypeEnum(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static VaultTypeEnum fromValue(String value) { + for (VaultTypeEnum b : VaultTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + } + + public static final String JSON_PROPERTY_VAULT_TYPE = "vaultType"; + @jakarta.annotation.Nullable private VaultTypeEnum vaultType = VaultTypeEnum.MPC; + + public static final String JSON_PROPERTY_AUTO_ASSIGN = "autoAssign"; + @jakarta.annotation.Nullable private Boolean autoAssign = false; + public CreateMultipleAccountsRequest() {} @JsonCreator @@ -234,6 +285,65 @@ public void setTagIds(@jakarta.annotation.Nullable List tagIds) { this.tagIds = tagIds; } + public CreateMultipleAccountsRequest vaultType( + @jakarta.annotation.Nullable VaultTypeEnum vaultType) { + this.vaultType = vaultType; + return this; + } + + /** + * Type of vault accounts to create. The default type is MPC. KEY_LINK creates Key Link vault + * accounts. It requires a Key Link workspace. With autoAssign set to true, the vault accounts + * are bound to the workspace's Key Link signing keys, assigned automatically from the + * available keys, and only one KEY_LINK bulk creation with autoAssign set to true can run per + * workspace at a time. With autoAssign set to false (the default), the vault accounts are + * created without keys. With KEY_LINK, names, vaultAccountNamesStartingIndex, prefix and tagIds + * work as they do for MPC, and baseAssetIds may be empty to create vault accounts without + * wallets. + * + * @return vaultType + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_VAULT_TYPE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public VaultTypeEnum getVaultType() { + return vaultType; + } + + @JsonProperty(JSON_PROPERTY_VAULT_TYPE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setVaultType(@jakarta.annotation.Nullable VaultTypeEnum vaultType) { + this.vaultType = vaultType; + } + + public CreateMultipleAccountsRequest autoAssign( + @jakarta.annotation.Nullable Boolean autoAssign) { + this.autoAssign = autoAssign; + return this; + } + + /** + * Applicable only when vaultType is KEY_LINK. For MPC, this parameter is ignored. If set to + * true, keys are assigned to every created vault account. If there are not enough available + * keys to assign, the request returns an error and no vault accounts are created. If set to + * false, the vault accounts are created without any keys, and baseAssetIds must be empty + * because wallets can only be created for vault accounts that have keys. + * + * @return autoAssign + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_AUTO_ASSIGN) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getAutoAssign() { + return autoAssign; + } + + @JsonProperty(JSON_PROPERTY_AUTO_ASSIGN) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setAutoAssign(@jakarta.annotation.Nullable Boolean autoAssign) { + this.autoAssign = autoAssign; + } + /** Return true if this CreateMultipleAccountsRequest object is equal to o. */ @Override public boolean equals(Object o) { @@ -252,13 +362,22 @@ public boolean equals(Object o) { this.vaultAccountNamesStartingIndex, createMultipleAccountsRequest.vaultAccountNamesStartingIndex) && Objects.equals(this.prefix, createMultipleAccountsRequest.prefix) - && Objects.equals(this.tagIds, createMultipleAccountsRequest.tagIds); + && Objects.equals(this.tagIds, createMultipleAccountsRequest.tagIds) + && Objects.equals(this.vaultType, createMultipleAccountsRequest.vaultType) + && Objects.equals(this.autoAssign, createMultipleAccountsRequest.autoAssign); } @Override public int hashCode() { return Objects.hash( - count, baseAssetIds, names, vaultAccountNamesStartingIndex, prefix, tagIds); + count, + baseAssetIds, + names, + vaultAccountNamesStartingIndex, + prefix, + tagIds, + vaultType, + autoAssign); } @Override @@ -273,6 +392,8 @@ public String toString() { .append("\n"); sb.append(" prefix: ").append(toIndentedString(prefix)).append("\n"); sb.append(" tagIds: ").append(toIndentedString(tagIds)).append("\n"); + sb.append(" vaultType: ").append(toIndentedString(vaultType)).append("\n"); + sb.append(" autoAssign: ").append(toIndentedString(autoAssign)).append("\n"); sb.append("}"); return sb.toString(); } @@ -403,6 +524,26 @@ public String toUrlQueryString(String prefix) { } } + // add `vaultType` to the URL query string + if (getVaultType() != null) { + joiner.add( + String.format( + "%svaultType%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getVaultType())))); + } + + // add `autoAssign` to the URL query string + if (getAutoAssign() != null) { + joiner.add( + String.format( + "%sautoAssign%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getAutoAssign())))); + } + return joiner.toString(); } } diff --git a/src/main/java/com/fireblocks/sdk/model/CreateTempoTransferRequest.java b/src/main/java/com/fireblocks/sdk/model/CreateTempoTransferRequest.java index b6f7453d..7b35d6eb 100644 --- a/src/main/java/com/fireblocks/sdk/model/CreateTempoTransferRequest.java +++ b/src/main/java/com/fireblocks/sdk/model/CreateTempoTransferRequest.java @@ -47,8 +47,7 @@ CreateTempoTransferRequest.JSON_PROPERTY_REPLACE_TX_BY_HASH, CreateTempoTransferRequest.JSON_PROPERTY_FEE_PAYER_ACCOUNT_ID, CreateTempoTransferRequest.JSON_PROPERTY_NONCE_STRATEGY, - CreateTempoTransferRequest.JSON_PROPERTY_NONCE_LANE, - CreateTempoTransferRequest.JSON_PROPERTY_MEMO + CreateTempoTransferRequest.JSON_PROPERTY_NONCE_LANE }) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", @@ -195,9 +194,6 @@ public static NonceStrategyEnum fromValue(String value) { public static final String JSON_PROPERTY_NONCE_LANE = "nonceLane"; @jakarta.annotation.Nullable private Integer nonceLane; - public static final String JSON_PROPERTY_MEMO = "memo"; - @jakarta.annotation.Nullable private String memo; - public CreateTempoTransferRequest() {} @JsonCreator @@ -749,29 +745,6 @@ public void setNonceLane(@jakarta.annotation.Nullable Integer nonceLane) { this.nonceLane = nonceLane; } - public CreateTempoTransferRequest memo(@jakarta.annotation.Nullable String memo) { - this.memo = memo; - return this; - } - - /** - * Beta. Tempo TIP-20 memo (max 32 bytes). - * - * @return memo - */ - @jakarta.annotation.Nullable - @JsonProperty(JSON_PROPERTY_MEMO) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public String getMemo() { - return memo; - } - - @JsonProperty(JSON_PROPERTY_MEMO) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setMemo(@jakarta.annotation.Nullable String memo) { - this.memo = memo; - } - /** Return true if this CreateTempoTransferRequest object is equal to o. */ @Override public boolean equals(Object o) { @@ -808,8 +781,7 @@ public boolean equals(Object o) { && Objects.equals( this.feePayerAccountId, createTempoTransferRequest.feePayerAccountId) && Objects.equals(this.nonceStrategy, createTempoTransferRequest.nonceStrategy) - && Objects.equals(this.nonceLane, createTempoTransferRequest.nonceLane) - && Objects.equals(this.memo, createTempoTransferRequest.memo); + && Objects.equals(this.nonceLane, createTempoTransferRequest.nonceLane); } @Override @@ -836,8 +808,7 @@ public int hashCode() { replaceTxByHash, feePayerAccountId, nonceStrategy, - nonceLane, - memo); + nonceLane); } @Override @@ -876,7 +847,6 @@ public String toString() { .append("\n"); sb.append(" nonceStrategy: ").append(toIndentedString(nonceStrategy)).append("\n"); sb.append(" nonceLane: ").append(toIndentedString(nonceLane)).append("\n"); - sb.append(" memo: ").append(toIndentedString(memo)).append("\n"); sb.append("}"); return sb.toString(); } @@ -1144,16 +1114,6 @@ public String toUrlQueryString(String prefix) { ApiClient.urlEncode(ApiClient.valueToString(getNonceLane())))); } - // add `memo` to the URL query string - if (getMemo() != null) { - joiner.add( - String.format( - "%smemo%s=%s", - prefix, - suffix, - ApiClient.urlEncode(ApiClient.valueToString(getMemo())))); - } - return joiner.toString(); } } diff --git a/src/main/java/com/fireblocks/sdk/model/PairApiKeyRequest.java b/src/main/java/com/fireblocks/sdk/model/PairApiUserRequest.java similarity index 88% rename from src/main/java/com/fireblocks/sdk/model/PairApiKeyRequest.java rename to src/main/java/com/fireblocks/sdk/model/PairApiUserRequest.java index fb88e9d6..2cb4e768 100644 --- a/src/main/java/com/fireblocks/sdk/model/PairApiKeyRequest.java +++ b/src/main/java/com/fireblocks/sdk/model/PairApiUserRequest.java @@ -19,18 +19,18 @@ import java.util.Objects; import java.util.StringJoiner; -/** PairApiKeyRequest */ -@JsonPropertyOrder({PairApiKeyRequest.JSON_PROPERTY_CALLBACK_HANDLER}) +/** PairApiUserRequest */ +@JsonPropertyOrder({PairApiUserRequest.JSON_PROPERTY_CALLBACK_HANDLER}) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.14.0") -public class PairApiKeyRequest { +public class PairApiUserRequest { public static final String JSON_PROPERTY_CALLBACK_HANDLER = "callbackHandler"; @jakarta.annotation.Nullable private CallbackHandlerRequest callbackHandler; - public PairApiKeyRequest() {} + public PairApiUserRequest() {} - public PairApiKeyRequest callbackHandler( + public PairApiUserRequest callbackHandler( @jakarta.annotation.Nullable CallbackHandlerRequest callbackHandler) { this.callbackHandler = callbackHandler; return this; @@ -55,7 +55,7 @@ public void setCallbackHandler( this.callbackHandler = callbackHandler; } - /** Return true if this PairApiKeyRequest object is equal to o. */ + /** Return true if this PairApiUserRequest object is equal to o. */ @Override public boolean equals(Object o) { if (this == o) { @@ -64,8 +64,8 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) { return false; } - PairApiKeyRequest pairApiKeyRequest = (PairApiKeyRequest) o; - return Objects.equals(this.callbackHandler, pairApiKeyRequest.callbackHandler); + PairApiUserRequest pairApiUserRequest = (PairApiUserRequest) o; + return Objects.equals(this.callbackHandler, pairApiUserRequest.callbackHandler); } @Override @@ -76,7 +76,7 @@ public int hashCode() { @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class PairApiKeyRequest {\n"); + sb.append("class PairApiUserRequest {\n"); sb.append(" callbackHandler: ").append(toIndentedString(callbackHandler)).append("\n"); sb.append("}"); return sb.toString(); diff --git a/src/main/java/com/fireblocks/sdk/model/PairApiKeyResponse.java b/src/main/java/com/fireblocks/sdk/model/PairApiUserResponse.java similarity index 86% rename from src/main/java/com/fireblocks/sdk/model/PairApiKeyResponse.java rename to src/main/java/com/fireblocks/sdk/model/PairApiUserResponse.java index 9d21ef62..134f601b 100644 --- a/src/main/java/com/fireblocks/sdk/model/PairApiKeyResponse.java +++ b/src/main/java/com/fireblocks/sdk/model/PairApiUserResponse.java @@ -22,35 +22,35 @@ import java.util.StringJoiner; import java.util.UUID; -/** PairApiKeyResponse */ +/** PairApiUserResponse */ @JsonPropertyOrder({ - PairApiKeyResponse.JSON_PROPERTY_ID, - PairApiKeyResponse.JSON_PROPERTY_CALLBACK_HANDLER + PairApiUserResponse.JSON_PROPERTY_ID, + PairApiUserResponse.JSON_PROPERTY_CALLBACK_HANDLER }) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.14.0") -public class PairApiKeyResponse { +public class PairApiUserResponse { public static final String JSON_PROPERTY_ID = "id"; @jakarta.annotation.Nonnull private UUID id; public static final String JSON_PROPERTY_CALLBACK_HANDLER = "callbackHandler"; @jakarta.annotation.Nullable private CallbackHandlerRequest callbackHandler; - public PairApiKeyResponse() {} + public PairApiUserResponse() {} @JsonCreator - public PairApiKeyResponse(@JsonProperty(value = JSON_PROPERTY_ID, required = true) UUID id) { + public PairApiUserResponse(@JsonProperty(value = JSON_PROPERTY_ID, required = true) UUID id) { this.id = id; } - public PairApiKeyResponse id(@jakarta.annotation.Nonnull UUID id) { + public PairApiUserResponse id(@jakarta.annotation.Nonnull UUID id) { this.id = id; return this; } /** - * The unique identifier of the API key + * The unique identifier of the API user * * @return id */ @@ -67,7 +67,7 @@ public void setId(@jakarta.annotation.Nonnull UUID id) { this.id = id; } - public PairApiKeyResponse callbackHandler( + public PairApiUserResponse callbackHandler( @jakarta.annotation.Nullable CallbackHandlerRequest callbackHandler) { this.callbackHandler = callbackHandler; return this; @@ -92,7 +92,7 @@ public void setCallbackHandler( this.callbackHandler = callbackHandler; } - /** Return true if this PairApiKeyResponse object is equal to o. */ + /** Return true if this PairApiUserResponse object is equal to o. */ @Override public boolean equals(Object o) { if (this == o) { @@ -101,9 +101,9 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) { return false; } - PairApiKeyResponse pairApiKeyResponse = (PairApiKeyResponse) o; - return Objects.equals(this.id, pairApiKeyResponse.id) - && Objects.equals(this.callbackHandler, pairApiKeyResponse.callbackHandler); + PairApiUserResponse pairApiUserResponse = (PairApiUserResponse) o; + return Objects.equals(this.id, pairApiUserResponse.id) + && Objects.equals(this.callbackHandler, pairApiUserResponse.callbackHandler); } @Override @@ -114,7 +114,7 @@ public int hashCode() { @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class PairApiKeyResponse {\n"); + sb.append("class PairApiUserResponse {\n"); sb.append(" id: ").append(toIndentedString(id)).append("\n"); sb.append(" callbackHandler: ").append(toIndentedString(callbackHandler)).append("\n"); sb.append("}"); diff --git a/src/main/java/com/fireblocks/sdk/model/TRLinkManualDecisionAction.java b/src/main/java/com/fireblocks/sdk/model/TRLinkManualDecisionAction.java index b3fad85c..e0f6dd89 100644 --- a/src/main/java/com/fireblocks/sdk/model/TRLinkManualDecisionAction.java +++ b/src/main/java/com/fireblocks/sdk/model/TRLinkManualDecisionAction.java @@ -16,7 +16,7 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; -/** Decision action for destinations in NoTRM status */ +/** Decision action for destinations waiting for a Travel Rule message (missing TRM) */ public enum TRLinkManualDecisionAction { ACCEPT("ACCEPT"), diff --git a/src/main/java/com/fireblocks/sdk/model/TRLinkManualDecisionDestinationDetail.java b/src/main/java/com/fireblocks/sdk/model/TRLinkManualDecisionDestinationDetail.java index 92063e47..89ca5a61 100644 --- a/src/main/java/com/fireblocks/sdk/model/TRLinkManualDecisionDestinationDetail.java +++ b/src/main/java/com/fireblocks/sdk/model/TRLinkManualDecisionDestinationDetail.java @@ -107,7 +107,8 @@ public TRLinkManualDecisionDestinationDetail skipReason( } /** - * Reason if the destination was skipped + * Reason when applied is false. Common values: deferred apply (destination could not be updated + * immediately), already applied, status changed, trmId exists, destination not found. * * @return skipReason */ diff --git a/src/main/java/com/fireblocks/sdk/model/TRLinkManualDecisionRequest.java b/src/main/java/com/fireblocks/sdk/model/TRLinkManualDecisionRequest.java index 967ba45a..94397a47 100644 --- a/src/main/java/com/fireblocks/sdk/model/TRLinkManualDecisionRequest.java +++ b/src/main/java/com/fireblocks/sdk/model/TRLinkManualDecisionRequest.java @@ -21,7 +21,9 @@ import java.util.Objects; import java.util.StringJoiner; -/** Request to manually accept or reject destinations stuck in NoTRM status */ +/** + * Request to manually accept or reject destinations waiting for a Travel Rule message (missing TRM) + */ @JsonPropertyOrder({ TRLinkManualDecisionRequest.JSON_PROPERTY_ACTION, TRLinkManualDecisionRequest.JSON_PROPERTY_REASON diff --git a/src/main/java/com/fireblocks/sdk/model/TRLinkManualDecisionResponse.java b/src/main/java/com/fireblocks/sdk/model/TRLinkManualDecisionResponse.java index 2a300c27..29cb596c 100644 --- a/src/main/java/com/fireblocks/sdk/model/TRLinkManualDecisionResponse.java +++ b/src/main/java/com/fireblocks/sdk/model/TRLinkManualDecisionResponse.java @@ -23,8 +23,9 @@ import java.util.Objects; import java.util.StringJoiner; -/** Response containing the result of the manual decision */ +/** Response containing the result of a manual missing-TRM decision (POST write or GET read). */ @JsonPropertyOrder({ + TRLinkManualDecisionResponse.JSON_PROPERTY_STATUS, TRLinkManualDecisionResponse.JSON_PROPERTY_ACTION, TRLinkManualDecisionResponse.JSON_PROPERTY_SOURCE, TRLinkManualDecisionResponse.JSON_PROPERTY_TX_ID, @@ -36,6 +37,9 @@ value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.14.0") public class TRLinkManualDecisionResponse { + public static final String JSON_PROPERTY_STATUS = "status"; + @jakarta.annotation.Nonnull private TRLinkManualDecisionResponseStatusEnum status; + public static final String JSON_PROPERTY_ACTION = "action"; @jakarta.annotation.Nonnull private TRLinkManualDecisionAction action; @@ -58,6 +62,8 @@ public TRLinkManualDecisionResponse() {} @JsonCreator public TRLinkManualDecisionResponse( + @JsonProperty(value = JSON_PROPERTY_STATUS, required = true) + TRLinkManualDecisionResponseStatusEnum status, @JsonProperty(value = JSON_PROPERTY_ACTION, required = true) TRLinkManualDecisionAction action, @JsonProperty(value = JSON_PROPERTY_SOURCE, required = true) @@ -69,6 +75,7 @@ public TRLinkManualDecisionResponse( Integer destinationsSkipped, @JsonProperty(value = JSON_PROPERTY_DETAILS, required = true) List details) { + this.status = status; this.action = action; this.source = source; this.txId = txId; @@ -77,6 +84,31 @@ public TRLinkManualDecisionResponse( this.details = details; } + public TRLinkManualDecisionResponse status( + @jakarta.annotation.Nonnull TRLinkManualDecisionResponseStatusEnum status) { + this.status = status; + return this; + } + + /** + * Get status + * + * @return status + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_STATUS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public TRLinkManualDecisionResponseStatusEnum getStatus() { + return status; + } + + @JsonProperty(JSON_PROPERTY_STATUS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setStatus( + @jakarta.annotation.Nonnull TRLinkManualDecisionResponseStatusEnum status) { + this.status = status; + } + public TRLinkManualDecisionResponse action( @jakarta.annotation.Nonnull TRLinkManualDecisionAction action) { this.action = action; @@ -241,7 +273,8 @@ public boolean equals(Object o) { } TRLinkManualDecisionResponse trLinkManualDecisionResponse = (TRLinkManualDecisionResponse) o; - return Objects.equals(this.action, trLinkManualDecisionResponse.action) + return Objects.equals(this.status, trLinkManualDecisionResponse.status) + && Objects.equals(this.action, trLinkManualDecisionResponse.action) && Objects.equals(this.source, trLinkManualDecisionResponse.source) && Objects.equals(this.txId, trLinkManualDecisionResponse.txId) && Objects.equals( @@ -255,13 +288,14 @@ public boolean equals(Object o) { @Override public int hashCode() { return Objects.hash( - action, source, txId, destinationsAffected, destinationsSkipped, details); + status, action, source, txId, destinationsAffected, destinationsSkipped, details); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class TRLinkManualDecisionResponse {\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); sb.append(" action: ").append(toIndentedString(action)).append("\n"); sb.append(" source: ").append(toIndentedString(source)).append("\n"); sb.append(" txId: ").append(toIndentedString(txId)).append("\n"); @@ -319,6 +353,16 @@ public String toUrlQueryString(String prefix) { StringJoiner joiner = new StringJoiner("&"); + // add `status` to the URL query string + if (getStatus() != null) { + joiner.add( + String.format( + "%sstatus%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getStatus())))); + } + // add `action` to the URL query string if (getAction() != null) { joiner.add( diff --git a/src/main/java/com/fireblocks/sdk/model/TRLinkManualDecisionResponseStatusEnum.java b/src/main/java/com/fireblocks/sdk/model/TRLinkManualDecisionResponseStatusEnum.java new file mode 100644 index 00000000..d341af64 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/TRLinkManualDecisionResponseStatusEnum.java @@ -0,0 +1,71 @@ +/* + * 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 + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * APPLIED - Decision applied to at least one destination immediately. ACCEPTED - Intent stored for + * deferred apply on the next processing attempt. PRE_ACCEPTED - Intent stored on the transaction + * before destinations entered the missing-TRM wait. + */ +public enum TRLinkManualDecisionResponseStatusEnum { + APPLIED("APPLIED"), + + ACCEPTED("ACCEPTED"), + + PRE_ACCEPTED("PRE_ACCEPTED"); + + private String value; + + TRLinkManualDecisionResponseStatusEnum(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static TRLinkManualDecisionResponseStatusEnum fromValue(String value) { + for (TRLinkManualDecisionResponseStatusEnum b : + TRLinkManualDecisionResponseStatusEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + if (prefix == null) { + prefix = ""; + } + + return String.format("%s=%s", prefix, this.toString()); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/TRLinkManualDecisionSource.java b/src/main/java/com/fireblocks/sdk/model/TRLinkManualDecisionSource.java index abe110a0..d96c5097 100644 --- a/src/main/java/com/fireblocks/sdk/model/TRLinkManualDecisionSource.java +++ b/src/main/java/com/fireblocks/sdk/model/TRLinkManualDecisionSource.java @@ -16,11 +16,11 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; -/** Source of the manual decision */ +/** Source of the manual decision. Values are lowercase. */ public enum TRLinkManualDecisionSource { - MANUAL("MANUAL"), + MANUAL("manual"), - POLICY("POLICY"); + POLICY("policy"); private String value; diff --git a/src/main/java/com/fireblocks/sdk/model/TempoTransferDestination.java b/src/main/java/com/fireblocks/sdk/model/TempoTransferDestination.java index a24e0e0d..a0cf3665 100644 --- a/src/main/java/com/fireblocks/sdk/model/TempoTransferDestination.java +++ b/src/main/java/com/fireblocks/sdk/model/TempoTransferDestination.java @@ -26,7 +26,8 @@ @JsonPropertyOrder({ TempoTransferDestination.JSON_PROPERTY_TYPE, TempoTransferDestination.JSON_PROPERTY_ID, - TempoTransferDestination.JSON_PROPERTY_ONE_TIME_ADDRESS + TempoTransferDestination.JSON_PROPERTY_ONE_TIME_ADDRESS, + TempoTransferDestination.JSON_PROPERTY_MEMO }) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", @@ -76,6 +77,9 @@ public static TypeEnum fromValue(String value) { public static final String JSON_PROPERTY_ONE_TIME_ADDRESS = "oneTimeAddress"; @jakarta.annotation.Nullable private OneTimeAddress oneTimeAddress; + public static final String JSON_PROPERTY_MEMO = "memo"; + @jakarta.annotation.Nullable private String memo; + public TempoTransferDestination() {} @JsonCreator @@ -154,6 +158,31 @@ public void setOneTimeAddress(@jakarta.annotation.Nullable OneTimeAddress oneTim this.oneTimeAddress = oneTimeAddress; } + public TempoTransferDestination memo(@jakarta.annotation.Nullable String memo) { + this.memo = memo; + return this; + } + + /** + * Tempo TIP-20 memo, sent on-chain with the transfer to this destination. Exactly 32 bytes once + * UTF-8 encoded. NOTES: - The memo is public and permanent on-chain, so do not put sensitive + * data in it. - A memo is currently supported only for a transfer with a single destination + * + * @return memo + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_MEMO) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getMemo() { + return memo; + } + + @JsonProperty(JSON_PROPERTY_MEMO) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setMemo(@jakarta.annotation.Nullable String memo) { + this.memo = memo; + } + /** Return true if this TempoTransferDestination object is equal to o. */ @Override public boolean equals(Object o) { @@ -166,12 +195,13 @@ public boolean equals(Object o) { TempoTransferDestination tempoTransferDestination = (TempoTransferDestination) o; return Objects.equals(this.type, tempoTransferDestination.type) && Objects.equals(this.id, tempoTransferDestination.id) - && Objects.equals(this.oneTimeAddress, tempoTransferDestination.oneTimeAddress); + && Objects.equals(this.oneTimeAddress, tempoTransferDestination.oneTimeAddress) + && Objects.equals(this.memo, tempoTransferDestination.memo); } @Override public int hashCode() { - return Objects.hash(type, id, oneTimeAddress); + return Objects.hash(type, id, oneTimeAddress, memo); } @Override @@ -181,6 +211,7 @@ public String toString() { sb.append(" type: ").append(toIndentedString(type)).append("\n"); sb.append(" id: ").append(toIndentedString(id)).append("\n"); sb.append(" oneTimeAddress: ").append(toIndentedString(oneTimeAddress)).append("\n"); + sb.append(" memo: ").append(toIndentedString(memo)).append("\n"); sb.append("}"); return sb.toString(); } @@ -251,6 +282,16 @@ public String toUrlQueryString(String prefix) { joiner.add(getOneTimeAddress().toUrlQueryString(prefix + "oneTimeAddress" + suffix)); } + // add `memo` to the URL query string + if (getMemo() != null) { + joiner.add( + String.format( + "%smemo%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getMemo())))); + } + return joiner.toString(); } } diff --git a/src/main/java/com/fireblocks/sdk/model/TypedMessageTransactionStatusEnum.java b/src/main/java/com/fireblocks/sdk/model/TypedMessageTransactionStatusEnum.java index 416f1308..95d8648b 100644 --- a/src/main/java/com/fireblocks/sdk/model/TypedMessageTransactionStatusEnum.java +++ b/src/main/java/com/fireblocks/sdk/model/TypedMessageTransactionStatusEnum.java @@ -33,12 +33,16 @@ public enum TypedMessageTransactionStatusEnum { PENDING_3_RD_PARTY("PENDING_3RD_PARTY"), + SIGNED("SIGNED"), + BROADCASTING("BROADCASTING"), PENDING_AML_SCREENING("PENDING_AML_SCREENING"), CONFIRMING("CONFIRMING"), + COMPLETED("COMPLETED"), + PARTIALLY_COMPLETED("PARTIALLY_COMPLETED"), PENDING_EMAIL_APPROVAL("PENDING_EMAIL_APPROVAL"), diff --git a/src/main/java/com/fireblocks/sdk/model/ValidationKeyDto.java b/src/main/java/com/fireblocks/sdk/model/ValidationKeyDto.java index befd9766..75563901 100644 --- a/src/main/java/com/fireblocks/sdk/model/ValidationKeyDto.java +++ b/src/main/java/com/fireblocks/sdk/model/ValidationKeyDto.java @@ -28,7 +28,9 @@ ValidationKeyDto.JSON_PROPERTY_PUBLIC_KEY_PEM, ValidationKeyDto.JSON_PROPERTY_DAYS_TILL_EXPIRED, ValidationKeyDto.JSON_PROPERTY_ENABLED, - ValidationKeyDto.JSON_PROPERTY_CREATED_AT + ValidationKeyDto.JSON_PROPERTY_CREATED_AT, + ValidationKeyDto.JSON_PROPERTY_EXPIRATION_TIME, + ValidationKeyDto.JSON_PROPERTY_REVOKED }) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", @@ -49,6 +51,12 @@ public class ValidationKeyDto { public static final String JSON_PROPERTY_CREATED_AT = "createdAt"; @jakarta.annotation.Nonnull private BigDecimal createdAt; + public static final String JSON_PROPERTY_EXPIRATION_TIME = "expirationTime"; + @jakarta.annotation.Nonnull private BigDecimal expirationTime; + + public static final String JSON_PROPERTY_REVOKED = "revoked"; + @jakarta.annotation.Nonnull private Boolean revoked = false; + public ValidationKeyDto() {} @JsonCreator @@ -59,12 +67,17 @@ public ValidationKeyDto( @JsonProperty(value = JSON_PROPERTY_DAYS_TILL_EXPIRED, required = true) BigDecimal daysTillExpired, @JsonProperty(value = JSON_PROPERTY_ENABLED, required = true) Boolean enabled, - @JsonProperty(value = JSON_PROPERTY_CREATED_AT, required = true) BigDecimal createdAt) { + @JsonProperty(value = JSON_PROPERTY_CREATED_AT, required = true) BigDecimal createdAt, + @JsonProperty(value = JSON_PROPERTY_EXPIRATION_TIME, required = true) + BigDecimal expirationTime, + @JsonProperty(value = JSON_PROPERTY_REVOKED, required = true) Boolean revoked) { this.keyId = keyId; this.publicKeyPem = publicKeyPem; this.daysTillExpired = daysTillExpired; this.enabled = enabled; this.createdAt = createdAt; + this.expirationTime = expirationTime; + this.revoked = revoked; } public ValidationKeyDto keyId(@jakarta.annotation.Nonnull String keyId) { @@ -183,6 +196,52 @@ public void setCreatedAt(@jakarta.annotation.Nonnull BigDecimal createdAt) { this.createdAt = createdAt; } + public ValidationKeyDto expirationTime(@jakarta.annotation.Nonnull BigDecimal expirationTime) { + this.expirationTime = expirationTime; + return this; + } + + /** + * Expiration date (Unix timestamp) in milliseconds. + * + * @return expirationTime + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_EXPIRATION_TIME) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public BigDecimal getExpirationTime() { + return expirationTime; + } + + @JsonProperty(JSON_PROPERTY_EXPIRATION_TIME) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setExpirationTime(@jakarta.annotation.Nonnull BigDecimal expirationTime) { + this.expirationTime = expirationTime; + } + + public ValidationKeyDto revoked(@jakarta.annotation.Nonnull Boolean revoked) { + this.revoked = revoked; + return this; + } + + /** + * True if the validation key is revoked. + * + * @return revoked + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_REVOKED) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Boolean getRevoked() { + return revoked; + } + + @JsonProperty(JSON_PROPERTY_REVOKED) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setRevoked(@jakarta.annotation.Nonnull Boolean revoked) { + this.revoked = revoked; + } + /** Return true if this ValidationKeyDto object is equal to o. */ @Override public boolean equals(Object o) { @@ -197,12 +256,15 @@ public boolean equals(Object o) { && Objects.equals(this.publicKeyPem, validationKeyDto.publicKeyPem) && Objects.equals(this.daysTillExpired, validationKeyDto.daysTillExpired) && Objects.equals(this.enabled, validationKeyDto.enabled) - && Objects.equals(this.createdAt, validationKeyDto.createdAt); + && Objects.equals(this.createdAt, validationKeyDto.createdAt) + && Objects.equals(this.expirationTime, validationKeyDto.expirationTime) + && Objects.equals(this.revoked, validationKeyDto.revoked); } @Override public int hashCode() { - return Objects.hash(keyId, publicKeyPem, daysTillExpired, enabled, createdAt); + return Objects.hash( + keyId, publicKeyPem, daysTillExpired, enabled, createdAt, expirationTime, revoked); } @Override @@ -214,6 +276,8 @@ public String toString() { sb.append(" daysTillExpired: ").append(toIndentedString(daysTillExpired)).append("\n"); sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n"); sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); + sb.append(" expirationTime: ").append(toIndentedString(expirationTime)).append("\n"); + sb.append(" revoked: ").append(toIndentedString(revoked)).append("\n"); sb.append("}"); return sb.toString(); } @@ -311,6 +375,26 @@ public String toUrlQueryString(String prefix) { ApiClient.urlEncode(ApiClient.valueToString(getCreatedAt())))); } + // add `expirationTime` to the URL query string + if (getExpirationTime() != null) { + joiner.add( + String.format( + "%sexpirationTime%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getExpirationTime())))); + } + + // add `revoked` to the URL query string + if (getRevoked() != null) { + joiner.add( + String.format( + "%srevoked%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getRevoked())))); + } + return joiner.toString(); } } diff --git a/src/test/java/com/fireblocks/sdk/FireblocksTest.java b/src/test/java/com/fireblocks/sdk/FireblocksTest.java index e2a4db7c..7b072aab 100644 --- a/src/test/java/com/fireblocks/sdk/FireblocksTest.java +++ b/src/test/java/com/fireblocks/sdk/FireblocksTest.java @@ -479,11 +479,11 @@ public void testGetContractsApi() { } @Test - public void testGetCosignersBetaApi() { + public void testGetCosignersApi() { setupFireblocks(true, null, null); - CosignersBetaApi cosignersBeta = fireblocks.cosignersBeta(); - Assert.assertNotNull(cosignersBeta); - Assert.assertSame(cosignersBeta, fireblocks.cosignersBeta()); + CosignersApi cosigners = fireblocks.cosigners(); + Assert.assertNotNull(cosigners); + Assert.assertSame(cosigners, fireblocks.cosigners()); } @Test @@ -559,19 +559,19 @@ public void testGetInternalWalletsApi() { } @Test - public void testGetKeyLinkBetaApi() { + public void testGetKeyLinkApi() { setupFireblocks(true, null, null); - KeyLinkBetaApi keyLinkBeta = fireblocks.keyLinkBeta(); - Assert.assertNotNull(keyLinkBeta); - Assert.assertSame(keyLinkBeta, fireblocks.keyLinkBeta()); + KeyLinkApi keyLink = fireblocks.keyLink(); + Assert.assertNotNull(keyLink); + Assert.assertSame(keyLink, fireblocks.keyLink()); } @Test - public void testGetKeysBetaApi() { + public void testGetKeysApi() { setupFireblocks(true, null, null); - KeysBetaApi keysBeta = fireblocks.keysBeta(); - Assert.assertNotNull(keysBeta); - Assert.assertSame(keysBeta, fireblocks.keysBeta()); + KeysApi keys = fireblocks.keys(); + Assert.assertNotNull(keys); + Assert.assertSame(keys, fireblocks.keys()); } @Test diff --git a/src/test/java/com/fireblocks/sdk/LifecycleWarningTest.java b/src/test/java/com/fireblocks/sdk/LifecycleWarningTest.java index 5fdbd319..a3d1b490 100644 --- a/src/test/java/com/fireblocks/sdk/LifecycleWarningTest.java +++ b/src/test/java/com/fireblocks/sdk/LifecycleWarningTest.java @@ -6,6 +6,7 @@ import java.util.Collections; import java.util.LinkedHashMap; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.logging.Handler; import java.util.logging.Level; @@ -106,37 +107,46 @@ private static void warn(HttpHeaders headers, String operationId) { @Test public void emitsOneWarningForNonGaState() { assumeSuppressionNotSet(); - warn(state("beta"), "createTransaction"); + warn(state("ea"), "createTransaction"); Assert.assertEquals(1, records.size()); Assert.assertTrue(records.get(0).getMessage().contains("createTransaction")); - Assert.assertTrue(records.get(0).getMessage().contains("beta")); + Assert.assertTrue(records.get(0).getMessage().contains("EA (Early Availability)")); Assert.assertEquals(Level.WARNING, records.get(0).getLevel()); } @Test public void emitsPerExecutionNotOncePerOperation() { assumeSuppressionNotSet(); - warn(state("beta"), "createTransaction"); - warn(state("beta"), "createTransaction"); + warn(state("ea"), "createTransaction"); + warn(state("ea"), "createTransaction"); Assert.assertEquals(2, records.size()); } @Test public void emitsForEachDistinctOperation() { assumeSuppressionNotSet(); - warn(state("beta"), "createTransaction"); + warn(state("ea"), "createTransaction"); LifecycleWarning.warn(state("closed"), "getVaultAccount", 200); Assert.assertEquals(2, records.size()); } // --- silence ------------------------------------------------------------ + @Test + @SuppressWarnings("deprecation") + public void deprecatedBetaStateAliasNeverWarns() { + Assert.assertEquals("beta", LifecycleWarning.BETA_STATE); + Assert.assertNull(buildMessage(state(LifecycleWarning.BETA_STATE), "op")); + Assert.assertNotNull(buildMessage(state(LifecycleWarning.EA_STATE), "op")); + } + @Test public void staysSilentForGaAndUnrecognisedStates() { String[] silent = { "ga", "internal", "unlisted", + "beta", "private_beta", "quantum_preview", "", @@ -158,8 +168,8 @@ public void staysSilentWhenHeaderIsAbsent() { @Test public void staysSilentWithoutAnOperationId() { - warn(state("beta"), null); - warn(state("beta"), ""); + warn(state("ea"), null); + warn(state("ea"), ""); Assert.assertTrue(records.isEmpty()); } @@ -181,15 +191,16 @@ public void warnsOnUppercaseStateValue() { @Test public void headerNameLookupIsCaseInsensitive() { Map> values = new LinkedHashMap<>(); - values.put("fireblocks-lifecycle-state", Collections.singletonList("beta")); + values.put("fireblocks-lifecycle-state", Collections.singletonList("ea")); Assert.assertNotNull(buildMessage(headers(values), "op")); } @Test - public void rendersStateVerbatimAsSnakeCase() { - String message = buildMessage(state("beta"), "op"); - Assert.assertTrue(message.contains("'beta'")); - Assert.assertFalse(message.contains("Private Beta")); + public void namesTheStateAsEa() { + String message = buildMessage(state("ea"), "op"); + Assert.assertTrue(message.contains("EA (Early Availability)")); + Assert.assertFalse(message.contains("'ea'")); + Assert.assertFalse(message.toLowerCase(Locale.ROOT).contains("beta")); } // --- deprecated message shapes ------------------------------------------ @@ -365,32 +376,32 @@ public void usesDedicatedChildNamespace() { @Test public void mutingTheNamespaceSilencesWarnings() { lifecycleLogger.setLevel(Level.SEVERE); - warn(state("beta"), "createTransaction"); + warn(state("ea"), "createTransaction"); Assert.assertTrue(records.isEmpty()); } - // --- beta wording, closed handling and HTTP status ---------------- + // --- EA wording, closed handling and HTTP status ---------------- - private static final String BETA_TEXT = - "Operation 'op' is in 'beta' lifecycle state and is not generally available." - + " It may change or be removed without notice."; + private static final String EA_TEXT = + "Operation 'op' is in EA (Early Availability) and is not generally available." + + " It may change or break before it reaches GA."; private static final String CLOSED_TEXT = "Operation 'op' has been closed and is no longer supported." + " Your access is provided under a temporary exception and may be revoked." + " Contact your Customer Success Manager for migration support"; @Test - public void betaMessageText() { - Assert.assertEquals(BETA_TEXT, LifecycleWarning.buildMessage(state("beta"), "op", 200)); + public void eaMessageText() { + Assert.assertEquals(EA_TEXT, LifecycleWarning.buildMessage(state("ea"), "op", 200)); } @Test - public void betaWarnsRegardlessOfStatus() { + public void eaWarnsRegardlessOfStatus() { for (int status : new int[] {200, 400, 403, 500}) { Assert.assertEquals( "status " + status, - BETA_TEXT, - LifecycleWarning.buildMessage(state("beta"), "op", status)); + EA_TEXT, + LifecycleWarning.buildMessage(state("ea"), "op", status)); } } diff --git a/src/test/java/com/fireblocks/sdk/api/ConsoleUserApiTest.java b/src/test/java/com/fireblocks/sdk/api/ConsoleUserApiTest.java index be730bf1..77ac51b3 100644 --- a/src/test/java/com/fireblocks/sdk/api/ConsoleUserApiTest.java +++ b/src/test/java/com/fireblocks/sdk/api/ConsoleUserApiTest.java @@ -57,8 +57,8 @@ public void createConsoleUserTest() { * the quorum. - Track progress by polling GET /management/users; deletion is complete when the * user is disabled. - Please note that this endpoint is available only for API keys with * Admin/Non Signing Admin/Security Admin permissions. Endpoint Permission: Admin, Non-Signing - * Admin, Security Admin. **Note:** This endpoint is currently in beta and might be subject to - * changes. + * Admin, Security Admin. **Note:** This endpoint is in Early Availability (EA) and may change + * or break before it reaches GA. */ @Test public void deleteConsoleUserTest() { diff --git a/src/test/java/com/fireblocks/sdk/api/CosignersBetaApiTest.java b/src/test/java/com/fireblocks/sdk/api/CosignersApiTest.java similarity index 55% rename from src/test/java/com/fireblocks/sdk/api/CosignersBetaApiTest.java rename to src/test/java/com/fireblocks/sdk/api/CosignersApiTest.java index c7eb74d0..90e4c52f 100644 --- a/src/test/java/com/fireblocks/sdk/api/CosignersBetaApiTest.java +++ b/src/test/java/com/fireblocks/sdk/api/CosignersApiTest.java @@ -16,12 +16,12 @@ import com.fireblocks.sdk.ApiResponse; import com.fireblocks.sdk.model.AddCosignerRequest; import com.fireblocks.sdk.model.AddCosignerResponse; -import com.fireblocks.sdk.model.ApiKey; -import com.fireblocks.sdk.model.ApiKeysPaginatedResponse; +import com.fireblocks.sdk.model.ApiUsersPaginatedResponse; import com.fireblocks.sdk.model.Cosigner; +import com.fireblocks.sdk.model.CosignerApiUser; import com.fireblocks.sdk.model.CosignersPaginatedResponse; -import com.fireblocks.sdk.model.PairApiKeyRequest; -import com.fireblocks.sdk.model.PairApiKeyResponse; +import com.fireblocks.sdk.model.PairApiUserRequest; +import com.fireblocks.sdk.model.PairApiUserResponse; import com.fireblocks.sdk.model.RenameCosigner; import com.fireblocks.sdk.model.Status; import com.fireblocks.sdk.model.UpdateCallbackHandlerRequest; @@ -32,17 +32,18 @@ import org.junit.Ignore; import org.junit.Test; -/** API tests for CosignersBetaApi */ +/** API tests for CosignersApi */ @Ignore -public class CosignersBetaApiTest { +public class CosignersApiTest { - private final CosignersBetaApi api = new CosignersBetaApi(); + private final CosignersApi api = new CosignersApi(); /** * Add cosigner * - *

Add a new cosigner. The cosigner will be pending pairing until the API key is manually - * paired Endpoint Permission: Admin and Non-Signing Admin. + *

Add a new cosigner. The cosigner will be pending pairing until the API user is manually + * paired (see `pairCosignerApiUser`). Endpoint Permission: Admin and Non-Signing + * Admin. */ @Test public void addCosignerTest() { @@ -53,96 +54,93 @@ public void addCosignerTest() { } /** - * Get API key + * Get cosigner * - *

Get an API key by ID. **Note:** These endpoints are currently in beta and might be subject - * to changes. Endpoint Permission: Admin and Non-Signing Admin. + *

Get a cosigner by ID. Endpoint Permission: Admin and Non-Signing Admin. */ @Test - public void getApiKeyTest() { + public void getCosignerTest() { UUID cosignerId = null; - String apiKeyId = null; - CompletableFuture> response = api.getApiKey(cosignerId, apiKeyId); + CompletableFuture> response = api.getCosigner(cosignerId); } /** - * Get all API keys + * Get API user * - *

Get all cosigner paired API keys (paginated). **Note:** These endpoints are currently in - * beta and might be subject to changes. Endpoint Permission: Admin and Non-Signing Admin. + *

Get an API user by ID. Endpoint Permission: Admin and Non-Signing Admin. */ @Test - public void getApiKeysTest() { + public void getCosignerApiUserTest() { UUID cosignerId = null; - String order = null; - String pageCursor = null; - BigDecimal pageSize = null; - CompletableFuture> response = - api.getApiKeys(cosignerId, order, pageCursor, pageSize); + String apiUserId = null; + CompletableFuture> response = + api.getCosignerApiUser(cosignerId, apiUserId); } /** - * Get cosigner + * Get API user request status * - *

Get a cosigner by ID. **Note:** These endpoints are currently in beta and might be subject - * to changes. Endpoint Permission: Admin and Non-Signing Admin. + *

Get the status of an asynchronous request Endpoint Permission: Admin and Non-Signing + * Admin. */ @Test - public void getCosignerTest() { + public void getCosignerApiUserRequestStatusTest() { UUID cosignerId = null; - CompletableFuture> response = api.getCosigner(cosignerId); + String apiUserId = null; + String requestId = null; + CompletableFuture> response = + api.getCosignerApiUserRequestStatus(cosignerId, apiUserId, requestId); } /** - * Get all cosigners + * Get all API users * - *

Get all workspace cosigners (paginated). **Note:** These endpoints are currently in beta - * and might be subject to changes. Endpoint Permission: Admin and Non-Signing Admin. + *

Get all cosigner paired API users (paginated). Endpoint Permission: Admin and Non-Signing + * Admin. */ @Test - public void getCosignersTest() { + public void getCosignerApiUsersTest() { + UUID cosignerId = null; String order = null; String pageCursor = null; BigDecimal pageSize = null; - CompletableFuture> response = - api.getCosigners(order, pageCursor, pageSize); + CompletableFuture> response = + api.getCosignerApiUsers(cosignerId, order, pageCursor, pageSize); } /** - * Get request status + * Get all cosigners * - *

Get the status of an asynchronous request Endpoint Permission: Admin and Non-Signing - * Admin. + *

Get all workspace cosigners (paginated). Endpoint Permission: Admin and Non-Signing Admin. */ @Test - public void getRequestStatusTest() { - UUID cosignerId = null; - String apiKeyId = null; - String requestId = null; - CompletableFuture> response = - api.getRequestStatus(cosignerId, apiKeyId, requestId); + public void getCosignersTest() { + String order = null; + String pageCursor = null; + BigDecimal pageSize = null; + CompletableFuture> response = + api.getCosigners(order, pageCursor, pageSize); } /** - * Pair API key + * Pair API user * - *

Pair an API key to a cosigner Endpoint Permission: Admin and Non-Signing Admin. + *

Pair an API user to a cosigner Endpoint Permission: Admin and Non-Signing Admin. */ @Test - public void pairApiKeyTest() { - PairApiKeyRequest pairApiKeyRequest = null; + public void pairCosignerApiUserTest() { + PairApiUserRequest pairApiUserRequest = null; UUID cosignerId = null; - String apiKeyId = null; + String apiUserId = null; String idempotencyKey = null; - CompletableFuture> response = - api.pairApiKey(pairApiKeyRequest, cosignerId, apiKeyId, idempotencyKey); + CompletableFuture> response = + api.pairCosignerApiUser(pairApiUserRequest, cosignerId, apiUserId, idempotencyKey); } /** * Rename cosigner * - *

Rename a cosigner by ID. **Note:** These endpoints are currently in beta and might be - * subject to changes. Endpoint Permission: Admin and Non-Signing Admin. + *

Rename a cosigner by ID. Endpoint Permission: Admin and Non-Signing Admin. */ @Test public void renameCosignerTest() { @@ -153,29 +151,31 @@ public void renameCosignerTest() { } /** - * Unpair API key + * Unpair API user * - *

Unpair an API key from a cosigner Endpoint Permission: Admin and Non-Signing Admin. + *

Unpair an API user from a cosigner Endpoint Permission: Admin and Non-Signing Admin. */ @Test - public void unpairApiKeyTest() { + public void unpairCosignerApiUserTest() { UUID cosignerId = null; - String apiKeyId = null; - CompletableFuture> response = api.unpairApiKey(cosignerId, apiKeyId); + String apiUserId = null; + CompletableFuture> response = + api.unpairCosignerApiUser(cosignerId, apiUserId); } /** - * Update API key callback handler + * Update API user callback handler * - *

Update the callback handler of an API key Endpoint Permission: Admin and Non-Signing + *

Update the callback handler of an API user Endpoint Permission: Admin and Non-Signing * Admin. */ @Test - public void updateCallbackHandlerTest() { + public void updateCosignerApiUserCallbackHandlerTest() { UpdateCallbackHandlerRequest updateCallbackHandlerRequest = null; UUID cosignerId = null; - String apiKeyId = null; + String apiUserId = null; CompletableFuture> response = - api.updateCallbackHandler(updateCallbackHandlerRequest, cosignerId, apiKeyId); + api.updateCosignerApiUserCallbackHandler( + updateCallbackHandlerRequest, cosignerId, apiUserId); } } diff --git a/src/test/java/com/fireblocks/sdk/api/KeyLinkBetaApiTest.java b/src/test/java/com/fireblocks/sdk/api/KeyLinkApiTest.java similarity index 87% rename from src/test/java/com/fireblocks/sdk/api/KeyLinkBetaApiTest.java rename to src/test/java/com/fireblocks/sdk/api/KeyLinkApiTest.java index 8a572362..156cf733 100644 --- a/src/test/java/com/fireblocks/sdk/api/KeyLinkBetaApiTest.java +++ b/src/test/java/com/fireblocks/sdk/api/KeyLinkApiTest.java @@ -33,11 +33,11 @@ import org.junit.Ignore; import org.junit.Test; -/** API tests for KeyLinkBetaApi */ +/** API tests for KeyLinkApi */ @Ignore -public class KeyLinkBetaApiTest { +public class KeyLinkApiTest { - private final KeyLinkBetaApi api = new KeyLinkBetaApi(); + private final KeyLinkApi api = new KeyLinkApi(); /** * Register signing keys in bulk @@ -91,8 +91,9 @@ public void createValidationKeyTest() { /** * Disables a validation key * - *

Allows disabling validation key even if it has not expired yet. It is not allowed to - * enable the validation key back. Another key has to be used for future validations. + *

DEPRECATED - Please use `POST /key_link/validation_keys/{keyId}/revoke` instead. + * Allows disabling validation key even if it has not expired yet. It is not allowed to enable + * the validation key back. Another key has to be used for future validations. */ @Test public void disableValidationKeyTest() { @@ -186,7 +187,8 @@ public void getValidationKeyTest() { /** * Get list of registered validation keys * - *

Returns the list of validation keys in the workspace + *

Returns the list of validation keys in the workspace. By default, revoked keys are + * filtered out. Use `includeRevoked=true` to show all keys. */ @Test public void getValidationKeysListTest() { @@ -194,8 +196,23 @@ public void getValidationKeysListTest() { BigDecimal pageSize = null; String sortBy = null; String order = null; + Boolean includeRevoked = null; CompletableFuture> response = - api.getValidationKeysList(pageCursor, pageSize, sortBy, order); + api.getValidationKeysList(pageCursor, pageSize, sortBy, order, includeRevoked); + } + + /** + * Revokes a validation key + * + *

Revokes a validation key, making it permanently unusable for validation. Once revoked, a + * key cannot be un-revoked. Another key has to be used for future validations. + */ + @Test + public void revokeValidationKeyTest() { + String keyId = null; + String idempotencyKey = null; + CompletableFuture> response = + api.revokeValidationKey(keyId, idempotencyKey); } /** diff --git a/src/test/java/com/fireblocks/sdk/api/KeysBetaApiTest.java b/src/test/java/com/fireblocks/sdk/api/KeysApiTest.java similarity index 80% rename from src/test/java/com/fireblocks/sdk/api/KeysBetaApiTest.java rename to src/test/java/com/fireblocks/sdk/api/KeysApiTest.java index 4eeb1ef9..5f91ac47 100644 --- a/src/test/java/com/fireblocks/sdk/api/KeysBetaApiTest.java +++ b/src/test/java/com/fireblocks/sdk/api/KeysApiTest.java @@ -19,18 +19,17 @@ import org.junit.Ignore; import org.junit.Test; -/** API tests for KeysBetaApi */ +/** API tests for KeysApi */ @Ignore -public class KeysBetaApiTest { +public class KeysApiTest { - private final KeysBetaApi api = new KeysBetaApi(); + private final KeysApi api = new KeysApi(); /** * Get list of mpc keys * *

Returns a list of MPC signing keys of the workspace. For each key, the list of players - * associated with it is attached. **Note:** This endpoint is currently in beta and might be - * subject to changes. + * associated with it is attached. */ @Test public void getMpcKeysListTest() { @@ -41,8 +40,7 @@ public void getMpcKeysListTest() { * Get list of mpc keys by `userId` * *

Returns a list of MPC signing keys of a specific user. For each key, the list of players - * associated with it is attached. **Note:** This endpoint is currently in beta and might be - * subject to changes. + * associated with it is attached. */ @Test public void getMpcKeysListByUserTest() { diff --git a/src/test/java/com/fireblocks/sdk/api/TrLinkApiTest.java b/src/test/java/com/fireblocks/sdk/api/TrLinkApiTest.java index 60a452d3..de28d83a 100644 --- a/src/test/java/com/fireblocks/sdk/api/TrLinkApiTest.java +++ b/src/test/java/com/fireblocks/sdk/api/TrLinkApiTest.java @@ -138,8 +138,11 @@ public void createTRLinkIntegrationTest() { /** * Manual decision for missing TRM * - *

Accept or reject destinations stuck in NoTRM step without waiting for TRP webhook or - * policy timeout. + *

Accept or reject destinations waiting for a Travel Rule message (missing TRM), without + * waiting for a TRP webhook or the missing-TRM policy timeout. You can submit before a + * destination enters the missing-TRM wait; if it can't be updated immediately, the decision + * is applied on the next processing attempt instead (status ACCEPTED). Check `status` + * in the response to see whether the decision has been applied. */ @Test public void createTRLinkManualDecisionTest() { @@ -259,6 +262,20 @@ public void getTRLinkIntegrationPublicKeyTest() { api.getTRLinkIntegrationPublicKey(customerIntegrationId); } + /** + * Get manual decision for missing TRM + * + *

Returns the current manual missing-TRM decision for a transaction. Use to follow a + * decision that is not yet applied, or to check status at any time. + */ + @Test + public void getTRLinkManualDecisionTest() { + UUID customerIntegrationId = null; + UUID txId = null; + CompletableFuture> response = + api.getTRLinkManualDecision(customerIntegrationId, txId); + } + /** * List available TRSupport partners * diff --git a/src/test/java/com/fireblocks/sdk/api/VaultsApiTest.java b/src/test/java/com/fireblocks/sdk/api/VaultsApiTest.java index cc59fe8d..7062c671 100644 --- a/src/test/java/com/fireblocks/sdk/api/VaultsApiTest.java +++ b/src/test/java/com/fireblocks/sdk/api/VaultsApiTest.java @@ -135,8 +135,11 @@ public void createLegacyAddressTest() { * *

Create multiple vault accounts by running an async job. - The HBAR, TON, SUI, TERRA, ALGO, * and DOT blockchains are not supported. - These endpoints are currently in beta and might be - * subject to changes. - Limited to a maximum of 10,000 accounts per operation. **Endpoint - * Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor. + * subject to changes. - Limited to a maximum of 10,000 accounts per operation. - With + * `vaultType: KEY_LINK`, creates Key Link vault accounts; set `autoAssign: + * true` to bind them to the workspace's signing keys (see `vaultType` and + * `autoAssign`). **Endpoint Permissions:** Admin, Non-Signing Admin, Signer, + * Approver, Editor. */ @Test public void createMultipleAccountsTest() { diff --git a/src/test/java/com/fireblocks/sdk/model/AddCosignerRequestTest.java b/src/test/java/com/fireblocks/sdk/model/AddCosignerRequestTest.java index ec09f025..08c41d3d 100644 --- a/src/test/java/com/fireblocks/sdk/model/AddCosignerRequestTest.java +++ b/src/test/java/com/fireblocks/sdk/model/AddCosignerRequestTest.java @@ -25,10 +25,10 @@ void testAddCosignerRequest() { // TODO: test AddCosignerRequest } - /** Test the property 'apiKeyId' */ + /** Test the property 'apiUserId' */ @Test - void apiKeyIdTest() { - // TODO: test apiKeyId + void apiUserIdTest() { + // TODO: test apiUserId } /** Test the property 'name' */ diff --git a/src/test/java/com/fireblocks/sdk/model/AddCosignerResponseTest.java b/src/test/java/com/fireblocks/sdk/model/AddCosignerResponseTest.java index bae556fb..e13665f8 100644 --- a/src/test/java/com/fireblocks/sdk/model/AddCosignerResponseTest.java +++ b/src/test/java/com/fireblocks/sdk/model/AddCosignerResponseTest.java @@ -25,10 +25,10 @@ void testAddCosignerResponse() { // TODO: test AddCosignerResponse } - /** Test the property 'apiKeyId' */ + /** Test the property 'apiUserId' */ @Test - void apiKeyIdTest() { - // TODO: test apiKeyId + void apiUserIdTest() { + // TODO: test apiUserId } /** Test the property 'name' */ diff --git a/src/test/java/com/fireblocks/sdk/model/ApiKeysPaginatedResponseTest.java b/src/test/java/com/fireblocks/sdk/model/ApiUsersPaginatedResponseTest.java similarity index 74% rename from src/test/java/com/fireblocks/sdk/model/ApiKeysPaginatedResponseTest.java rename to src/test/java/com/fireblocks/sdk/model/ApiUsersPaginatedResponseTest.java index f7f0da4f..5837c4cd 100644 --- a/src/test/java/com/fireblocks/sdk/model/ApiKeysPaginatedResponseTest.java +++ b/src/test/java/com/fireblocks/sdk/model/ApiUsersPaginatedResponseTest.java @@ -15,14 +15,14 @@ import org.junit.jupiter.api.Test; -/** Model tests for ApiKeysPaginatedResponse */ -class ApiKeysPaginatedResponseTest { - private final ApiKeysPaginatedResponse model = new ApiKeysPaginatedResponse(); +/** Model tests for ApiUsersPaginatedResponse */ +class ApiUsersPaginatedResponseTest { + private final ApiUsersPaginatedResponse model = new ApiUsersPaginatedResponse(); - /** Model tests for ApiKeysPaginatedResponse */ + /** Model tests for ApiUsersPaginatedResponse */ @Test - void testApiKeysPaginatedResponse() { - // TODO: test ApiKeysPaginatedResponse + void testApiUsersPaginatedResponse() { + // TODO: test ApiUsersPaginatedResponse } /** Test the property 'data' */ diff --git a/src/test/java/com/fireblocks/sdk/model/ApiKeyTest.java b/src/test/java/com/fireblocks/sdk/model/CosignerApiUserTest.java similarity index 80% rename from src/test/java/com/fireblocks/sdk/model/ApiKeyTest.java rename to src/test/java/com/fireblocks/sdk/model/CosignerApiUserTest.java index e9882540..e90fd2ab 100644 --- a/src/test/java/com/fireblocks/sdk/model/ApiKeyTest.java +++ b/src/test/java/com/fireblocks/sdk/model/CosignerApiUserTest.java @@ -15,14 +15,14 @@ import org.junit.jupiter.api.Test; -/** Model tests for ApiKey */ -class ApiKeyTest { - private final ApiKey model = new ApiKey(); +/** Model tests for CosignerApiUser */ +class CosignerApiUserTest { + private final CosignerApiUser model = new CosignerApiUser(); - /** Model tests for ApiKey */ + /** Model tests for CosignerApiUser */ @Test - void testApiKey() { - // TODO: test ApiKey + void testCosignerApiUser() { + // TODO: test CosignerApiUser } /** Test the property 'id' */ diff --git a/src/test/java/com/fireblocks/sdk/model/CreateMultipleAccountsRequestTest.java b/src/test/java/com/fireblocks/sdk/model/CreateMultipleAccountsRequestTest.java index f29f7014..4ac9c1d6 100644 --- a/src/test/java/com/fireblocks/sdk/model/CreateMultipleAccountsRequestTest.java +++ b/src/test/java/com/fireblocks/sdk/model/CreateMultipleAccountsRequestTest.java @@ -60,4 +60,16 @@ void prefixTest() { void tagIdsTest() { // TODO: test tagIds } + + /** Test the property 'vaultType' */ + @Test + void vaultTypeTest() { + // TODO: test vaultType + } + + /** Test the property 'autoAssign' */ + @Test + void autoAssignTest() { + // TODO: test autoAssign + } } diff --git a/src/test/java/com/fireblocks/sdk/model/CreateTempoTransferRequestTest.java b/src/test/java/com/fireblocks/sdk/model/CreateTempoTransferRequestTest.java index 29510c23..1a1d85c3 100644 --- a/src/test/java/com/fireblocks/sdk/model/CreateTempoTransferRequestTest.java +++ b/src/test/java/com/fireblocks/sdk/model/CreateTempoTransferRequestTest.java @@ -156,10 +156,4 @@ void nonceStrategyTest() { void nonceLaneTest() { // TODO: test nonceLane } - - /** Test the property 'memo' */ - @Test - void memoTest() { - // TODO: test memo - } } diff --git a/src/test/java/com/fireblocks/sdk/model/PairApiKeyRequestTest.java b/src/test/java/com/fireblocks/sdk/model/PairApiUserRequestTest.java similarity index 75% rename from src/test/java/com/fireblocks/sdk/model/PairApiKeyRequestTest.java rename to src/test/java/com/fireblocks/sdk/model/PairApiUserRequestTest.java index 0a48c277..01d03e9b 100644 --- a/src/test/java/com/fireblocks/sdk/model/PairApiKeyRequestTest.java +++ b/src/test/java/com/fireblocks/sdk/model/PairApiUserRequestTest.java @@ -15,14 +15,14 @@ import org.junit.jupiter.api.Test; -/** Model tests for PairApiKeyRequest */ -class PairApiKeyRequestTest { - private final PairApiKeyRequest model = new PairApiKeyRequest(); +/** Model tests for PairApiUserRequest */ +class PairApiUserRequestTest { + private final PairApiUserRequest model = new PairApiUserRequest(); - /** Model tests for PairApiKeyRequest */ + /** Model tests for PairApiUserRequest */ @Test - void testPairApiKeyRequest() { - // TODO: test PairApiKeyRequest + void testPairApiUserRequest() { + // TODO: test PairApiUserRequest } /** Test the property 'callbackHandler' */ diff --git a/src/test/java/com/fireblocks/sdk/model/PairApiKeyResponseTest.java b/src/test/java/com/fireblocks/sdk/model/PairApiUserResponseTest.java similarity index 77% rename from src/test/java/com/fireblocks/sdk/model/PairApiKeyResponseTest.java rename to src/test/java/com/fireblocks/sdk/model/PairApiUserResponseTest.java index 532e7751..c08b2241 100644 --- a/src/test/java/com/fireblocks/sdk/model/PairApiKeyResponseTest.java +++ b/src/test/java/com/fireblocks/sdk/model/PairApiUserResponseTest.java @@ -15,14 +15,14 @@ import org.junit.jupiter.api.Test; -/** Model tests for PairApiKeyResponse */ -class PairApiKeyResponseTest { - private final PairApiKeyResponse model = new PairApiKeyResponse(); +/** Model tests for PairApiUserResponse */ +class PairApiUserResponseTest { + private final PairApiUserResponse model = new PairApiUserResponse(); - /** Model tests for PairApiKeyResponse */ + /** Model tests for PairApiUserResponse */ @Test - void testPairApiKeyResponse() { - // TODO: test PairApiKeyResponse + void testPairApiUserResponse() { + // TODO: test PairApiUserResponse } /** Test the property 'id' */ diff --git a/src/test/java/com/fireblocks/sdk/model/TRLinkManualDecisionResponseStatusEnumTest.java b/src/test/java/com/fireblocks/sdk/model/TRLinkManualDecisionResponseStatusEnumTest.java new file mode 100644 index 00000000..ca210fbc --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/TRLinkManualDecisionResponseStatusEnumTest.java @@ -0,0 +1,25 @@ +/* + * 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 + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fireblocks.sdk.model; + + +import org.junit.jupiter.api.Test; + +/** Model tests for TRLinkManualDecisionResponseStatusEnum */ +class TRLinkManualDecisionResponseStatusEnumTest { + /** Model tests for TRLinkManualDecisionResponseStatusEnum */ + @Test + void testTRLinkManualDecisionResponseStatusEnum() { + // TODO: test TRLinkManualDecisionResponseStatusEnum + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/TRLinkManualDecisionResponseTest.java b/src/test/java/com/fireblocks/sdk/model/TRLinkManualDecisionResponseTest.java index 8e4a4ae8..c078db9e 100644 --- a/src/test/java/com/fireblocks/sdk/model/TRLinkManualDecisionResponseTest.java +++ b/src/test/java/com/fireblocks/sdk/model/TRLinkManualDecisionResponseTest.java @@ -25,6 +25,12 @@ void testTRLinkManualDecisionResponse() { // TODO: test TRLinkManualDecisionResponse } + /** Test the property 'status' */ + @Test + void statusTest() { + // TODO: test status + } + /** Test the property 'action' */ @Test void actionTest() { diff --git a/src/test/java/com/fireblocks/sdk/model/TempoTransferDestinationTest.java b/src/test/java/com/fireblocks/sdk/model/TempoTransferDestinationTest.java index b124750a..f08a9a79 100644 --- a/src/test/java/com/fireblocks/sdk/model/TempoTransferDestinationTest.java +++ b/src/test/java/com/fireblocks/sdk/model/TempoTransferDestinationTest.java @@ -42,4 +42,10 @@ void idTest() { void oneTimeAddressTest() { // TODO: test oneTimeAddress } + + /** Test the property 'memo' */ + @Test + void memoTest() { + // TODO: test memo + } } diff --git a/src/test/java/com/fireblocks/sdk/model/ValidationKeyDtoTest.java b/src/test/java/com/fireblocks/sdk/model/ValidationKeyDtoTest.java index be6c8fc3..416fc06e 100644 --- a/src/test/java/com/fireblocks/sdk/model/ValidationKeyDtoTest.java +++ b/src/test/java/com/fireblocks/sdk/model/ValidationKeyDtoTest.java @@ -54,4 +54,16 @@ void enabledTest() { void createdAtTest() { // TODO: test createdAt } + + /** Test the property 'expirationTime' */ + @Test + void expirationTimeTest() { + // TODO: test expirationTime + } + + /** Test the property 'revoked' */ + @Test + void revokedTest() { + // TODO: test revoked + } }