diff --git a/src/main/java/co/dfns/sdk/allocations/AllocationsAsyncClient.java b/src/main/java/co/dfns/sdk/allocations/AllocationsAsyncClient.java index 1746647..519cc19 100644 --- a/src/main/java/co/dfns/sdk/allocations/AllocationsAsyncClient.java +++ b/src/main/java/co/dfns/sdk/allocations/AllocationsAsyncClient.java @@ -4,6 +4,7 @@ import co.dfns.sdk.allocations.model.*; import java.util.List; import co.dfns.sdk.PaginatedList; +import java.util.Map; import java.util.concurrent.CompletableFuture; public class AllocationsAsyncClient { @@ -37,4 +38,9 @@ public CompletableFuture createAllocationAction(String allocationId, public CompletableFuture getAllocation(String allocationId) { return httpClient.getAsync("/allocations/" + allocationId, java.util.Map.of(), Allocation.class); } + + /** Get Allocations Info */ + public CompletableFuture getAllocationsInfo() { + return httpClient.getAsync("/allocations/info", java.util.Map.of(), GetAllocationsInfoResponse.class); + } } diff --git a/src/main/java/co/dfns/sdk/allocations/AllocationsClient.java b/src/main/java/co/dfns/sdk/allocations/AllocationsClient.java index 30daf60..d4cf1e6 100644 --- a/src/main/java/co/dfns/sdk/allocations/AllocationsClient.java +++ b/src/main/java/co/dfns/sdk/allocations/AllocationsClient.java @@ -4,6 +4,7 @@ import co.dfns.sdk.allocations.model.*; import java.util.List; import co.dfns.sdk.PaginatedList; +import java.util.Map; public class AllocationsClient { private final DfnsHttpClient httpClient; @@ -36,4 +37,9 @@ public Allocation createAllocationAction(String allocationId, Object body) { public Allocation getAllocation(String allocationId) { return httpClient.get("/allocations/" + allocationId, java.util.Map.of(), Allocation.class); } + + /** Get Allocations Info */ + public GetAllocationsInfoResponse getAllocationsInfo() { + return httpClient.get("/allocations/info", java.util.Map.of(), GetAllocationsInfoResponse.class); + } } diff --git a/src/main/java/co/dfns/sdk/allocations/DelegatedAllocationsAsyncClient.java b/src/main/java/co/dfns/sdk/allocations/DelegatedAllocationsAsyncClient.java index 065cc37..a4da417 100644 --- a/src/main/java/co/dfns/sdk/allocations/DelegatedAllocationsAsyncClient.java +++ b/src/main/java/co/dfns/sdk/allocations/DelegatedAllocationsAsyncClient.java @@ -4,6 +4,7 @@ import co.dfns.sdk.allocations.model.*; import java.util.List; import co.dfns.sdk.PaginatedList; +import java.util.Map; import java.util.concurrent.CompletableFuture; import co.dfns.sdk.auth.UserActionChallenge; import co.dfns.sdk.auth.CredentialAssertion; @@ -51,4 +52,9 @@ public CompletableFuture createAllocationActionComplete(String alloc public CompletableFuture getAllocation(String allocationId) { return httpClient.getAsync("/allocations/" + allocationId, java.util.Map.of(), Allocation.class); } + + /** Get Allocations Info */ + public CompletableFuture getAllocationsInfo() { + return httpClient.getAsync("/allocations/info", java.util.Map.of(), GetAllocationsInfoResponse.class); + } } diff --git a/src/main/java/co/dfns/sdk/allocations/DelegatedAllocationsClient.java b/src/main/java/co/dfns/sdk/allocations/DelegatedAllocationsClient.java index 27111c0..d34c484 100644 --- a/src/main/java/co/dfns/sdk/allocations/DelegatedAllocationsClient.java +++ b/src/main/java/co/dfns/sdk/allocations/DelegatedAllocationsClient.java @@ -4,6 +4,7 @@ import co.dfns.sdk.allocations.model.*; import java.util.List; import co.dfns.sdk.PaginatedList; +import java.util.Map; import co.dfns.sdk.auth.UserActionChallenge; import co.dfns.sdk.auth.CredentialAssertion; @@ -50,4 +51,9 @@ public Allocation createAllocationActionComplete(String allocationId, Object bod public Allocation getAllocation(String allocationId) { return httpClient.get("/allocations/" + allocationId, java.util.Map.of(), Allocation.class); } + + /** Get Allocations Info */ + public GetAllocationsInfoResponse getAllocationsInfo() { + return httpClient.get("/allocations/info", java.util.Map.of(), GetAllocationsInfoResponse.class); + } } diff --git a/src/main/java/co/dfns/sdk/allocations/model/GetAllocationsInfoResponse.java b/src/main/java/co/dfns/sdk/allocations/model/GetAllocationsInfoResponse.java new file mode 100644 index 0000000..f12cf66 --- /dev/null +++ b/src/main/java/co/dfns/sdk/allocations/model/GetAllocationsInfoResponse.java @@ -0,0 +1,24 @@ +package co.dfns.sdk.allocations.model; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonInclude; +import java.util.Map; + +@JsonIgnoreProperties(ignoreUnknown = true) +public record GetAllocationsInfoResponse( + @JsonInclude(JsonInclude.Include.NON_NULL) + @JsonProperty("0fns") Map ofns, + @JsonInclude(JsonInclude.Include.NON_NULL) + @JsonProperty("SkySusds") Map skySusds, + @JsonInclude(JsonInclude.Include.NON_NULL) + @JsonProperty("GauntletUsdcPrime") Map gauntletUsdcPrime, + @JsonInclude(JsonInclude.Include.NON_NULL) + @JsonProperty("SteakhouseUsdt") Map steakhouseUsdt, + @JsonInclude(JsonInclude.Include.NON_NULL) + @JsonProperty("GauntletUsdcPrimeBase") Map gauntletUsdcPrimeBase, + @JsonInclude(JsonInclude.Include.NON_NULL) + @JsonProperty("SteakhouseUsdcBase") Map steakhouseUsdcBase, + @JsonInclude(JsonInclude.Include.NON_NULL) + @JsonProperty("SentoraPyusdMain") Map sentoraPyusdMain +) {} diff --git a/src/main/java/co/dfns/sdk/signers/DelegatedSignersAsyncClient.java b/src/main/java/co/dfns/sdk/signers/DelegatedSignersAsyncClient.java index 5748589..600a444 100644 --- a/src/main/java/co/dfns/sdk/signers/DelegatedSignersAsyncClient.java +++ b/src/main/java/co/dfns/sdk/signers/DelegatedSignersAsyncClient.java @@ -14,6 +14,17 @@ public DelegatedSignersAsyncClient(DfnsHttpClient httpClient) { this.httpClient = httpClient; } + /** Delegated signing step 1 for Cancel Fleet Operation: returns the challenge to sign out-of-band. */ + public CompletableFuture cancelFleetOperationInit(String storeId, CancelFleetOperationRequest body) { + return httpClient.createUserActionChallengeAsync("POST", "/key-stores/" + storeId + "/fleet-operations/cancel", body); + } + + /** Delegated signing step 2 for Cancel Fleet Operation: submits the signed challenge and issues the request. */ + public CompletableFuture cancelFleetOperationComplete(String storeId, CancelFleetOperationRequest body, String challengeIdentifier, CredentialAssertion assertion) { + return httpClient.completeUserActionSigningAsync(challengeIdentifier, assertion) + .thenCompose(userAction -> httpClient.executeWithUserActionAsync("POST", "/key-stores/" + storeId + "/fleet-operations/cancel", java.util.Map.of(), body, CancelFleetOperationResponse.class, userAction)); + } + /** Delegated signing step 1 for Create Add Mac User Input: returns the challenge to sign out-of-band. */ public CompletableFuture createAddMacUserInputInit(String storeId, CreateAddMacUserInputRequest body) { return httpClient.createUserActionChallengeAsync("POST", "/key-stores/" + storeId + "/add-mac-user/input", body); @@ -25,6 +36,17 @@ public CompletableFuture createAddMacUserInputComplete(String storeId, C .thenCompose(userAction -> httpClient.executeWithUserActionAsync("POST", "/key-stores/" + storeId + "/add-mac-user/input", java.util.Map.of(), body, Object.class, userAction)); } + /** Delegated signing step 1 for Create Add Provisioner Input: returns the challenge to sign out-of-band. */ + public CompletableFuture createAddProvisionerInputInit(String storeId, CreateAddProvisionerInputRequest body) { + return httpClient.createUserActionChallengeAsync("POST", "/key-stores/" + storeId + "/add-provisioner/input", body); + } + + /** Delegated signing step 2 for Create Add Provisioner Input: submits the signed challenge and issues the request. */ + public CompletableFuture createAddProvisionerInputComplete(String storeId, CreateAddProvisionerInputRequest body, String challengeIdentifier, CredentialAssertion assertion) { + return httpClient.completeUserActionSigningAsync(challengeIdentifier, assertion) + .thenCompose(userAction -> httpClient.executeWithUserActionAsync("POST", "/key-stores/" + storeId + "/add-provisioner/input", java.util.Map.of(), body, Object.class, userAction)); + } + /** Delegated signing step 1 for Create Clone Input: returns the challenge to sign out-of-band. */ public CompletableFuture createCloneInputInit(String storeId, CreateCloneInputRequest body) { return httpClient.createUserActionChallengeAsync("POST", "/key-stores/" + storeId + "/clone/input", body); @@ -95,6 +117,11 @@ public CompletableFuture submitAddMacUserOutput( return httpClient.postMultipartAsync("/key-stores/" + storeId + "/add-mac-user/output", java.util.Map.of(), body, file, SubmitAddMacUserOutputResponse.class, true); } + /** Submit Add Provisioner Output */ + public CompletableFuture submitAddProvisionerOutput(String storeId, SubmitAddProvisionerOutputRequest body, byte[] file) { + return httpClient.postMultipartAsync("/key-stores/" + storeId + "/add-provisioner/output", java.util.Map.of(), body, file, SubmitAddProvisionerOutputResponse.class, true); + } + /** Submit Clone Output */ public CompletableFuture submitCloneOutput(String storeId, SubmitCloneOutputRequest body, byte[] file) { return httpClient.postMultipartAsync("/key-stores/" + storeId + "/clone/output", java.util.Map.of(), body, file, SubmitCloneOutputResponse.class, true); diff --git a/src/main/java/co/dfns/sdk/signers/DelegatedSignersClient.java b/src/main/java/co/dfns/sdk/signers/DelegatedSignersClient.java index 46e9507..8bb1aa0 100644 --- a/src/main/java/co/dfns/sdk/signers/DelegatedSignersClient.java +++ b/src/main/java/co/dfns/sdk/signers/DelegatedSignersClient.java @@ -13,6 +13,17 @@ public DelegatedSignersClient(DfnsHttpClient httpClient) { this.httpClient = httpClient; } + /** Delegated signing step 1 for Cancel Fleet Operation: returns the challenge to sign out-of-band. */ + public UserActionChallenge cancelFleetOperationInit(String storeId, CancelFleetOperationRequest body) { + return httpClient.createUserActionChallenge("POST", "/key-stores/" + storeId + "/fleet-operations/cancel", body); + } + + /** Delegated signing step 2 for Cancel Fleet Operation: submits the signed challenge and issues the request. */ + public CancelFleetOperationResponse cancelFleetOperationComplete(String storeId, CancelFleetOperationRequest body, String challengeIdentifier, CredentialAssertion assertion) { + String userAction = httpClient.completeUserActionSigning(challengeIdentifier, assertion); + return httpClient.executeWithUserAction("POST", "/key-stores/" + storeId + "/fleet-operations/cancel", java.util.Map.of(), body, CancelFleetOperationResponse.class, userAction); + } + /** Delegated signing step 1 for Create Add Mac User Input: returns the challenge to sign out-of-band. */ public UserActionChallenge createAddMacUserInputInit(String storeId, CreateAddMacUserInputRequest body) { return httpClient.createUserActionChallenge("POST", "/key-stores/" + storeId + "/add-mac-user/input", body); @@ -24,6 +35,17 @@ public Object createAddMacUserInputComplete(String storeId, CreateAddMacUserInpu return httpClient.executeWithUserAction("POST", "/key-stores/" + storeId + "/add-mac-user/input", java.util.Map.of(), body, Object.class, userAction); } + /** Delegated signing step 1 for Create Add Provisioner Input: returns the challenge to sign out-of-band. */ + public UserActionChallenge createAddProvisionerInputInit(String storeId, CreateAddProvisionerInputRequest body) { + return httpClient.createUserActionChallenge("POST", "/key-stores/" + storeId + "/add-provisioner/input", body); + } + + /** Delegated signing step 2 for Create Add Provisioner Input: submits the signed challenge and issues the request. */ + public Object createAddProvisionerInputComplete(String storeId, CreateAddProvisionerInputRequest body, String challengeIdentifier, CredentialAssertion assertion) { + String userAction = httpClient.completeUserActionSigning(challengeIdentifier, assertion); + return httpClient.executeWithUserAction("POST", "/key-stores/" + storeId + "/add-provisioner/input", java.util.Map.of(), body, Object.class, userAction); + } + /** Delegated signing step 1 for Create Clone Input: returns the challenge to sign out-of-band. */ public UserActionChallenge createCloneInputInit(String storeId, CreateCloneInputRequest body) { return httpClient.createUserActionChallenge("POST", "/key-stores/" + storeId + "/clone/input", body); @@ -94,6 +116,11 @@ public SubmitAddMacUserOutputResponse submitAddMacUserOutput(String storeId, Sub return httpClient.postMultipart("/key-stores/" + storeId + "/add-mac-user/output", java.util.Map.of(), body, file, SubmitAddMacUserOutputResponse.class, true); } + /** Submit Add Provisioner Output */ + public SubmitAddProvisionerOutputResponse submitAddProvisionerOutput(String storeId, SubmitAddProvisionerOutputRequest body, byte[] file) { + return httpClient.postMultipart("/key-stores/" + storeId + "/add-provisioner/output", java.util.Map.of(), body, file, SubmitAddProvisionerOutputResponse.class, true); + } + /** Submit Clone Output */ public SubmitCloneOutputResponse submitCloneOutput(String storeId, SubmitCloneOutputRequest body, byte[] file) { return httpClient.postMultipart("/key-stores/" + storeId + "/clone/output", java.util.Map.of(), body, file, SubmitCloneOutputResponse.class, true); diff --git a/src/main/java/co/dfns/sdk/signers/SignersAsyncClient.java b/src/main/java/co/dfns/sdk/signers/SignersAsyncClient.java index 372e916..26087f8 100644 --- a/src/main/java/co/dfns/sdk/signers/SignersAsyncClient.java +++ b/src/main/java/co/dfns/sdk/signers/SignersAsyncClient.java @@ -12,11 +12,21 @@ public SignersAsyncClient(DfnsHttpClient httpClient) { this.httpClient = httpClient; } + /** Cancel Fleet Operation */ + public CompletableFuture cancelFleetOperation(String storeId, CancelFleetOperationRequest body) { + return httpClient.postAsync("/key-stores/" + storeId + "/fleet-operations/cancel", java.util.Map.of(), body, CancelFleetOperationResponse.class, true); + } + /** Create Add Mac User Input */ public CompletableFuture createAddMacUserInput(String storeId, CreateAddMacUserInputRequest body) { return httpClient.postAsync("/key-stores/" + storeId + "/add-mac-user/input", java.util.Map.of(), body, Object.class, true); } + /** Create Add Provisioner Input */ + public CompletableFuture createAddProvisionerInput(String storeId, CreateAddProvisionerInputRequest body) { + return httpClient.postAsync("/key-stores/" + storeId + "/add-provisioner/input", java.util.Map.of(), body, Object.class, true); + } + /** Create Clone Input */ public CompletableFuture createCloneInput(String storeId, CreateCloneInputRequest body) { return httpClient.postAsync("/key-stores/" + storeId + "/clone/input", java.util.Map.of(), body, Object.class, true); @@ -57,6 +67,11 @@ public CompletableFuture submitAddMacUserOutput( return httpClient.postMultipartAsync("/key-stores/" + storeId + "/add-mac-user/output", java.util.Map.of(), body, file, SubmitAddMacUserOutputResponse.class, true); } + /** Submit Add Provisioner Output */ + public CompletableFuture submitAddProvisionerOutput(String storeId, SubmitAddProvisionerOutputRequest body, byte[] file) { + return httpClient.postMultipartAsync("/key-stores/" + storeId + "/add-provisioner/output", java.util.Map.of(), body, file, SubmitAddProvisionerOutputResponse.class, true); + } + /** Submit Clone Output */ public CompletableFuture submitCloneOutput(String storeId, SubmitCloneOutputRequest body, byte[] file) { return httpClient.postMultipartAsync("/key-stores/" + storeId + "/clone/output", java.util.Map.of(), body, file, SubmitCloneOutputResponse.class, true); diff --git a/src/main/java/co/dfns/sdk/signers/SignersClient.java b/src/main/java/co/dfns/sdk/signers/SignersClient.java index f8fef4d..66202bf 100644 --- a/src/main/java/co/dfns/sdk/signers/SignersClient.java +++ b/src/main/java/co/dfns/sdk/signers/SignersClient.java @@ -11,11 +11,21 @@ public SignersClient(DfnsHttpClient httpClient) { this.httpClient = httpClient; } + /** Cancel Fleet Operation */ + public CancelFleetOperationResponse cancelFleetOperation(String storeId, CancelFleetOperationRequest body) { + return httpClient.post("/key-stores/" + storeId + "/fleet-operations/cancel", java.util.Map.of(), body, CancelFleetOperationResponse.class, true); + } + /** Create Add Mac User Input */ public Object createAddMacUserInput(String storeId, CreateAddMacUserInputRequest body) { return httpClient.post("/key-stores/" + storeId + "/add-mac-user/input", java.util.Map.of(), body, Object.class, true); } + /** Create Add Provisioner Input */ + public Object createAddProvisionerInput(String storeId, CreateAddProvisionerInputRequest body) { + return httpClient.post("/key-stores/" + storeId + "/add-provisioner/input", java.util.Map.of(), body, Object.class, true); + } + /** Create Clone Input */ public Object createCloneInput(String storeId, CreateCloneInputRequest body) { return httpClient.post("/key-stores/" + storeId + "/clone/input", java.util.Map.of(), body, Object.class, true); @@ -56,6 +66,11 @@ public SubmitAddMacUserOutputResponse submitAddMacUserOutput(String storeId, Sub return httpClient.postMultipart("/key-stores/" + storeId + "/add-mac-user/output", java.util.Map.of(), body, file, SubmitAddMacUserOutputResponse.class, true); } + /** Submit Add Provisioner Output */ + public SubmitAddProvisionerOutputResponse submitAddProvisionerOutput(String storeId, SubmitAddProvisionerOutputRequest body, byte[] file) { + return httpClient.postMultipart("/key-stores/" + storeId + "/add-provisioner/output", java.util.Map.of(), body, file, SubmitAddProvisionerOutputResponse.class, true); + } + /** Submit Clone Output */ public SubmitCloneOutputResponse submitCloneOutput(String storeId, SubmitCloneOutputRequest body, byte[] file) { return httpClient.postMultipart("/key-stores/" + storeId + "/clone/output", java.util.Map.of(), body, file, SubmitCloneOutputResponse.class, true); diff --git a/src/main/java/co/dfns/sdk/signers/model/CancelFleetOperationRequest.java b/src/main/java/co/dfns/sdk/signers/model/CancelFleetOperationRequest.java new file mode 100644 index 0000000..889f621 --- /dev/null +++ b/src/main/java/co/dfns/sdk/signers/model/CancelFleetOperationRequest.java @@ -0,0 +1,12 @@ +package co.dfns.sdk.signers.model; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonInclude; + +@JsonIgnoreProperties(ignoreUnknown = true) +public record CancelFleetOperationRequest( + @JsonProperty("groupId") String groupId, + @JsonInclude(JsonInclude.Include.NON_NULL) + @JsonProperty("reason") String reason +) {} diff --git a/src/main/java/co/dfns/sdk/signers/model/CancelFleetOperationResponse.java b/src/main/java/co/dfns/sdk/signers/model/CancelFleetOperationResponse.java new file mode 100644 index 0000000..189e32f --- /dev/null +++ b/src/main/java/co/dfns/sdk/signers/model/CancelFleetOperationResponse.java @@ -0,0 +1,24 @@ +package co.dfns.sdk.signers.model; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Map; + +@JsonIgnoreProperties(ignoreUnknown = true) +public record CancelFleetOperationResponse( + @JsonProperty("groupId") String groupId, + @JsonProperty("storeId") String storeId, + @JsonProperty("orgId") String orgId, + @JsonProperty("status") String status, + @JsonProperty("createdBy") String createdBy, + @JsonProperty("submittedBy") Object submittedBy, + @JsonProperty("dateSubmitted") Object dateSubmitted, + @JsonProperty("reviewedBy") Object reviewedBy, + @JsonProperty("dateReviewed") Object dateReviewed, + @JsonProperty("canceledBy") Object canceledBy, + @JsonProperty("dateCanceled") Object dateCanceled, + @JsonProperty("reason") Object reason, + @JsonProperty("dateCreated") String dateCreated, + @JsonProperty("operations") List> operations +) {} diff --git a/src/main/java/co/dfns/sdk/signers/model/CreateAddProvisionerInputRequest.java b/src/main/java/co/dfns/sdk/signers/model/CreateAddProvisionerInputRequest.java new file mode 100644 index 0000000..b767368 --- /dev/null +++ b/src/main/java/co/dfns/sdk/signers/model/CreateAddProvisionerInputRequest.java @@ -0,0 +1,11 @@ +package co.dfns.sdk.signers.model; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; + +@JsonIgnoreProperties(ignoreUnknown = true) +public record CreateAddProvisionerInputRequest( + @JsonProperty("kind") String kind, + @JsonProperty("yubikeySerial") String yubikeySerial, + @JsonProperty("hsmTargetSerial") String hsmTargetSerial +) {} diff --git a/src/main/java/co/dfns/sdk/signers/model/SubmitAddProvisionerOutputRequest.java b/src/main/java/co/dfns/sdk/signers/model/SubmitAddProvisionerOutputRequest.java new file mode 100644 index 0000000..c1be0c4 --- /dev/null +++ b/src/main/java/co/dfns/sdk/signers/model/SubmitAddProvisionerOutputRequest.java @@ -0,0 +1,11 @@ +package co.dfns.sdk.signers.model; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Map; + +@JsonIgnoreProperties(ignoreUnknown = true) +public record SubmitAddProvisionerOutputRequest( + @JsonProperty("fileChecksum") String fileChecksum, + @JsonProperty("outputJson") Map outputJson +) {} diff --git a/src/main/java/co/dfns/sdk/signers/model/SubmitAddProvisionerOutputResponse.java b/src/main/java/co/dfns/sdk/signers/model/SubmitAddProvisionerOutputResponse.java new file mode 100644 index 0000000..2b980ae --- /dev/null +++ b/src/main/java/co/dfns/sdk/signers/model/SubmitAddProvisionerOutputResponse.java @@ -0,0 +1,9 @@ +package co.dfns.sdk.signers.model; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; + +@JsonIgnoreProperties(ignoreUnknown = true) +public record SubmitAddProvisionerOutputResponse( + @JsonProperty("message") String message +) {} diff --git a/src/main/java/co/dfns/sdk/vaults/DelegatedVaultsAsyncClient.java b/src/main/java/co/dfns/sdk/vaults/DelegatedVaultsAsyncClient.java index b57a369..5facaa8 100644 --- a/src/main/java/co/dfns/sdk/vaults/DelegatedVaultsAsyncClient.java +++ b/src/main/java/co/dfns/sdk/vaults/DelegatedVaultsAsyncClient.java @@ -80,6 +80,17 @@ public CompletableFuture> listVaultBalances(Str return httpClient.getAsync("/vaults/" + vaultId + "/balances", query.toMap(), new com.fasterxml.jackson.core.type.TypeReference>() {}); } + /** Delegated signing step 1 for Release Quarantine: returns the challenge to sign out-of-band. */ + public CompletableFuture releaseQuarantineInit(String vaultId, String quarantineId, ReleaseQuarantineRequest body) { + return httpClient.createUserActionChallengeAsync("POST", "/vaults/" + vaultId + "/quarantines/" + quarantineId + "/release", body); + } + + /** Delegated signing step 2 for Release Quarantine: submits the signed challenge and issues the request. */ + public CompletableFuture releaseQuarantineComplete(String vaultId, String quarantineId, ReleaseQuarantineRequest body, String challengeIdentifier, CredentialAssertion assertion) { + return httpClient.completeUserActionSigningAsync(challengeIdentifier, assertion) + .thenCompose(userAction -> httpClient.executeWithUserActionAsync("POST", "/vaults/" + vaultId + "/quarantines/" + quarantineId + "/release", java.util.Map.of(), body, ReleaseQuarantineResponse.class, userAction)); + } + /** Delegated signing step 1 for Tag Vault: returns the challenge to sign out-of-band. */ public CompletableFuture tagVaultInit(String vaultId, TagVaultRequest body) { return httpClient.createUserActionChallengeAsync("PUT", "/vaults/" + vaultId + "/tags", body); @@ -103,15 +114,4 @@ public CompletableFuture> untagVaultComplete(String vaultId, return httpClient.completeUserActionSigningAsync(challengeIdentifier, assertion) .thenCompose(userAction -> httpClient.executeWithUserActionAsync("DELETE", "/vaults/" + vaultId + "/tags", java.util.Map.of(), body, (Class>) (Class) Map.class, userAction)); } - - /** Delegated signing step 1 for Unquarantine: returns the challenge to sign out-of-band. */ - public CompletableFuture unquarantineInit(String vaultId, String quarantineId, UnquarantineRequest body) { - return httpClient.createUserActionChallengeAsync("DELETE", "/vaults/" + vaultId + "/quarantines/" + quarantineId, body); - } - - /** Delegated signing step 2 for Unquarantine: submits the signed challenge and issues the request. */ - public CompletableFuture unquarantineComplete(String vaultId, String quarantineId, UnquarantineRequest body, String challengeIdentifier, CredentialAssertion assertion) { - return httpClient.completeUserActionSigningAsync(challengeIdentifier, assertion) - .thenCompose(userAction -> httpClient.executeWithUserActionAsync("DELETE", "/vaults/" + vaultId + "/quarantines/" + quarantineId, java.util.Map.of(), body, UnquarantineResponse.class, userAction)); - } } diff --git a/src/main/java/co/dfns/sdk/vaults/DelegatedVaultsClient.java b/src/main/java/co/dfns/sdk/vaults/DelegatedVaultsClient.java index 0a12751..0b60a74 100644 --- a/src/main/java/co/dfns/sdk/vaults/DelegatedVaultsClient.java +++ b/src/main/java/co/dfns/sdk/vaults/DelegatedVaultsClient.java @@ -79,6 +79,17 @@ public PaginatedList listVaultBalances(String vaultId, ListVa return httpClient.get("/vaults/" + vaultId + "/balances", query.toMap(), new com.fasterxml.jackson.core.type.TypeReference>() {}); } + /** Delegated signing step 1 for Release Quarantine: returns the challenge to sign out-of-band. */ + public UserActionChallenge releaseQuarantineInit(String vaultId, String quarantineId, ReleaseQuarantineRequest body) { + return httpClient.createUserActionChallenge("POST", "/vaults/" + vaultId + "/quarantines/" + quarantineId + "/release", body); + } + + /** Delegated signing step 2 for Release Quarantine: submits the signed challenge and issues the request. */ + public ReleaseQuarantineResponse releaseQuarantineComplete(String vaultId, String quarantineId, ReleaseQuarantineRequest body, String challengeIdentifier, CredentialAssertion assertion) { + String userAction = httpClient.completeUserActionSigning(challengeIdentifier, assertion); + return httpClient.executeWithUserAction("POST", "/vaults/" + vaultId + "/quarantines/" + quarantineId + "/release", java.util.Map.of(), body, ReleaseQuarantineResponse.class, userAction); + } + /** Delegated signing step 1 for Tag Vault: returns the challenge to sign out-of-band. */ public UserActionChallenge tagVaultInit(String vaultId, TagVaultRequest body) { return httpClient.createUserActionChallenge("PUT", "/vaults/" + vaultId + "/tags", body); @@ -102,15 +113,4 @@ public Map untagVaultComplete(String vaultId, UntagVaultRequest String userAction = httpClient.completeUserActionSigning(challengeIdentifier, assertion); return httpClient.executeWithUserAction("DELETE", "/vaults/" + vaultId + "/tags", java.util.Map.of(), body, (Class>) (Class) Map.class, userAction); } - - /** Delegated signing step 1 for Unquarantine: returns the challenge to sign out-of-band. */ - public UserActionChallenge unquarantineInit(String vaultId, String quarantineId, UnquarantineRequest body) { - return httpClient.createUserActionChallenge("DELETE", "/vaults/" + vaultId + "/quarantines/" + quarantineId, body); - } - - /** Delegated signing step 2 for Unquarantine: submits the signed challenge and issues the request. */ - public UnquarantineResponse unquarantineComplete(String vaultId, String quarantineId, UnquarantineRequest body, String challengeIdentifier, CredentialAssertion assertion) { - String userAction = httpClient.completeUserActionSigning(challengeIdentifier, assertion); - return httpClient.executeWithUserAction("DELETE", "/vaults/" + vaultId + "/quarantines/" + quarantineId, java.util.Map.of(), body, UnquarantineResponse.class, userAction); - } } diff --git a/src/main/java/co/dfns/sdk/vaults/VaultsAsyncClient.java b/src/main/java/co/dfns/sdk/vaults/VaultsAsyncClient.java index 003cf89..abc5150 100644 --- a/src/main/java/co/dfns/sdk/vaults/VaultsAsyncClient.java +++ b/src/main/java/co/dfns/sdk/vaults/VaultsAsyncClient.java @@ -54,6 +54,11 @@ public CompletableFuture> listVaultBalances(Str return httpClient.getAsync("/vaults/" + vaultId + "/balances", query.toMap(), new com.fasterxml.jackson.core.type.TypeReference>() {}); } + /** Release Quarantine */ + public CompletableFuture releaseQuarantine(String vaultId, String quarantineId, ReleaseQuarantineRequest body) { + return httpClient.postAsync("/vaults/" + vaultId + "/quarantines/" + quarantineId + "/release", java.util.Map.of(), body, ReleaseQuarantineResponse.class, true); + } + /** Tag Vault */ @SuppressWarnings("unchecked") public CompletableFuture> tagVault(String vaultId, TagVaultRequest body) { @@ -65,9 +70,4 @@ public CompletableFuture> tagVault(String vaultId, TagVaultR public CompletableFuture> untagVault(String vaultId, UntagVaultRequest body) { return httpClient.deleteAsync("/vaults/" + vaultId + "/tags", java.util.Map.of(), body, (Class>) (Class) Map.class, true); } - - /** Unquarantine */ - public CompletableFuture unquarantine(String vaultId, String quarantineId, UnquarantineRequest body) { - return httpClient.deleteAsync("/vaults/" + vaultId + "/quarantines/" + quarantineId, java.util.Map.of(), body, UnquarantineResponse.class, true); - } } diff --git a/src/main/java/co/dfns/sdk/vaults/VaultsClient.java b/src/main/java/co/dfns/sdk/vaults/VaultsClient.java index c725dd5..68b1035 100644 --- a/src/main/java/co/dfns/sdk/vaults/VaultsClient.java +++ b/src/main/java/co/dfns/sdk/vaults/VaultsClient.java @@ -53,6 +53,11 @@ public PaginatedList listVaultBalances(String vaultId, ListVa return httpClient.get("/vaults/" + vaultId + "/balances", query.toMap(), new com.fasterxml.jackson.core.type.TypeReference>() {}); } + /** Release Quarantine */ + public ReleaseQuarantineResponse releaseQuarantine(String vaultId, String quarantineId, ReleaseQuarantineRequest body) { + return httpClient.post("/vaults/" + vaultId + "/quarantines/" + quarantineId + "/release", java.util.Map.of(), body, ReleaseQuarantineResponse.class, true); + } + /** Tag Vault */ @SuppressWarnings("unchecked") public Map tagVault(String vaultId, TagVaultRequest body) { @@ -64,9 +69,4 @@ public Map tagVault(String vaultId, TagVaultRequest body) { public Map untagVault(String vaultId, UntagVaultRequest body) { return httpClient.delete("/vaults/" + vaultId + "/tags", java.util.Map.of(), body, (Class>) (Class) Map.class, true); } - - /** Unquarantine */ - public UnquarantineResponse unquarantine(String vaultId, String quarantineId, UnquarantineRequest body) { - return httpClient.delete("/vaults/" + vaultId + "/quarantines/" + quarantineId, java.util.Map.of(), body, UnquarantineResponse.class, true); - } } diff --git a/src/main/java/co/dfns/sdk/vaults/model/CreateVaultAddressRequest.java b/src/main/java/co/dfns/sdk/vaults/model/CreateVaultAddressRequest.java index c3e912e..9240779 100644 --- a/src/main/java/co/dfns/sdk/vaults/model/CreateVaultAddressRequest.java +++ b/src/main/java/co/dfns/sdk/vaults/model/CreateVaultAddressRequest.java @@ -5,5 +5,5 @@ @JsonIgnoreProperties(ignoreUnknown = true) public record CreateVaultAddressRequest( - @JsonProperty("network") String network + @JsonProperty("network") Object network ) {} diff --git a/src/main/java/co/dfns/sdk/vaults/model/CreateVaultTransferRequest.java b/src/main/java/co/dfns/sdk/vaults/model/CreateVaultTransferRequest.java index a0df3b0..fd83a10 100644 --- a/src/main/java/co/dfns/sdk/vaults/model/CreateVaultTransferRequest.java +++ b/src/main/java/co/dfns/sdk/vaults/model/CreateVaultTransferRequest.java @@ -6,7 +6,7 @@ @JsonIgnoreProperties(ignoreUnknown = true) public record CreateVaultTransferRequest( - @JsonProperty("network") String network, + @JsonProperty("network") Object network, @JsonProperty("tid") String tid, @JsonProperty("to") String to, @JsonProperty("amount") String amount, diff --git a/src/main/java/co/dfns/sdk/vaults/model/ReleaseQuarantineRequest.java b/src/main/java/co/dfns/sdk/vaults/model/ReleaseQuarantineRequest.java new file mode 100644 index 0000000..08de3bc --- /dev/null +++ b/src/main/java/co/dfns/sdk/vaults/model/ReleaseQuarantineRequest.java @@ -0,0 +1,11 @@ +package co.dfns.sdk.vaults.model; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonInclude; + +@JsonIgnoreProperties(ignoreUnknown = true) +public record ReleaseQuarantineRequest( + @JsonInclude(JsonInclude.Include.NON_NULL) + @JsonProperty("reason") String reason +) {} diff --git a/src/main/java/co/dfns/sdk/vaults/model/ReleaseQuarantineResponse.java b/src/main/java/co/dfns/sdk/vaults/model/ReleaseQuarantineResponse.java new file mode 100644 index 0000000..be2d965 --- /dev/null +++ b/src/main/java/co/dfns/sdk/vaults/model/ReleaseQuarantineResponse.java @@ -0,0 +1,9 @@ +package co.dfns.sdk.vaults.model; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; + +@JsonIgnoreProperties(ignoreUnknown = true) +public record ReleaseQuarantineResponse( + @JsonProperty("status") String status +) {} diff --git a/src/main/java/co/dfns/sdk/wallets/model/GetWalletHistoryResponse.java b/src/main/java/co/dfns/sdk/wallets/model/GetWalletHistoryResponse.java index 31d60fd..c83f180 100644 --- a/src/main/java/co/dfns/sdk/wallets/model/GetWalletHistoryResponse.java +++ b/src/main/java/co/dfns/sdk/wallets/model/GetWalletHistoryResponse.java @@ -7,7 +7,7 @@ @JsonIgnoreProperties(ignoreUnknown = true) public record GetWalletHistoryResponse( - @JsonProperty("items") List items, + @JsonProperty("items") List items, @JsonInclude(JsonInclude.Include.NON_NULL) @JsonProperty("nextPageToken") String nextPageToken, @JsonProperty("walletId") String walletId, diff --git a/src/main/java/co/dfns/sdk/wallets/model/WalletHistoryEvent.java b/src/main/java/co/dfns/sdk/wallets/model/WalletHistoryEvent.java new file mode 100644 index 0000000..7e2f129 --- /dev/null +++ b/src/main/java/co/dfns/sdk/wallets/model/WalletHistoryEvent.java @@ -0,0 +1,38 @@ +package co.dfns.sdk.wallets.model; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonInclude; +import java.util.Map; + +@JsonIgnoreProperties(ignoreUnknown = true) +public record WalletHistoryEvent( + @JsonProperty("walletId") String walletId, + @JsonProperty("direction") String direction, + @JsonProperty("network") Network network, + @JsonProperty("blockNumber") double blockNumber, + @JsonProperty("txHash") String txHash, + @JsonInclude(JsonInclude.Include.NON_NULL) + @JsonProperty("index") String index, + @JsonProperty("timestamp") String timestamp, + @JsonProperty("status") String status, + @JsonProperty("metadata") Map metadata, + @JsonProperty("kind") String kind, + @JsonInclude(JsonInclude.Include.NON_NULL) + @JsonProperty("from") String from, + @JsonInclude(JsonInclude.Include.NON_NULL) + @JsonProperty("to") String to, + @JsonProperty("value") String value, + @JsonInclude(JsonInclude.Include.NON_NULL) + @JsonProperty("fee") String fee, + @JsonInclude(JsonInclude.Include.NON_NULL) + @JsonProperty("memo") String memo, + @JsonInclude(JsonInclude.Include.NON_NULL) + @JsonProperty("liquidityPool") String liquidityPool, + @JsonInclude(JsonInclude.Include.NON_NULL) + @JsonProperty("balanceId") String balanceId, + @JsonProperty("symbol") String symbol, + @JsonProperty("decimals") double decimals, + @JsonInclude(JsonInclude.Include.NON_NULL) + @JsonProperty("verified") Boolean verified +) {}