@dfns/sdk 0.8.12 → 0.8.14-beta-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -120,7 +120,7 @@ export type GetCantonValidatorResponse = {
120
120
  };
121
121
  export type GetCantonValidatorRequest = GetCantonValidatorParams;
122
122
  export type GetFeesQuery = {
123
- network: "Bitcoin" | "BitcoinSignet" | "BitcoinTestnet3" | "Adi" | "AdiTestnet" | "AdiTestnetAb" | "ArbitrumOne" | "ArbitrumGoerli" | "ArbitrumSepolia" | "ArcTestnet" | "AvalancheC" | "AvalancheCFuji" | "Base" | "BaseGoerli" | "BaseSepolia" | "Bob" | "BobSepolia" | "Bsc" | "BscTestnet" | "Berachain" | "BerachainBArtio" | "BerachainBepolia" | "Celo" | "CeloAlfajores" | "Codex" | "CodexSepolia" | "Ethereum" | "EthereumClassic" | "EthereumClassicMordor" | "EthereumGoerli" | "EthereumSepolia" | "EthereumHolesky" | "EthereumHoodi" | "FantomOpera" | "FantomTestnet" | "FlareC" | "FlareCCoston2" | "FlowEvm" | "FlowEvmTestnet" | "Ink" | "InkSepolia" | "Optimism" | "OptimismGoerli" | "OptimismSepolia" | "Plasma" | "PlasmaTestnet" | "Plume" | "PlumeSepolia" | "Polygon" | "PolygonAmoy" | "PolygonMumbai" | "Race" | "RaceSepolia" | "Sonic" | "SonicTestnet" | "Tempo" | "TempoAndantino" | "TempoModerato" | "Tsc" | "TscTestnet1";
123
+ network: "Bitcoin" | "BitcoinSignet" | "BitcoinTestnet3" | "Adi" | "AdiTestnet" | "AdiTestnetAb" | "ArbitrumOne" | "ArbitrumGoerli" | "ArbitrumSepolia" | "ArcTestnet" | "AvalancheC" | "AvalancheCFuji" | "Base" | "BaseGoerli" | "BaseSepolia" | "Bob" | "BobSepolia" | "Bsc" | "BscTestnet" | "Berachain" | "BerachainBArtio" | "BerachainBepolia" | "Celo" | "CeloAlfajores" | "Codex" | "CodexSepolia" | "Ethereum" | "EthereumClassic" | "EthereumClassicMordor" | "EthereumGoerli" | "EthereumSepolia" | "EthereumHolesky" | "EthereumHoodi" | "FantomOpera" | "FantomTestnet" | "FlareC" | "FlareCCoston2" | "FlowEvm" | "FlowEvmTestnet" | "Ink" | "InkSepolia" | "Optimism" | "OptimismGoerli" | "OptimismSepolia" | "Plasma" | "PlasmaTestnet" | "Plume" | "PlumeSepolia" | "Polygon" | "PolygonAmoy" | "PolygonMumbai" | "Race" | "RaceSepolia" | "Sonic" | "SonicTestnet" | "Tempo" | "TempoAndantino" | "TempoModerato" | "Tsc" | "TscTestnet1" | "Solana" | "SolanaDevnet";
124
124
  };
125
125
  export type GetFeesResponse = {
126
126
  kind: "Bitcoin";
@@ -155,6 +155,19 @@ export type GetFeesResponse = {
155
155
  maxFeePerGas: string;
156
156
  };
157
157
  baseFeePerGas: string;
158
+ } | {
159
+ kind: "Solana";
160
+ network: "Solana" | "SolanaDevnet";
161
+ blockNumber: number;
162
+ slow: {
163
+ computeUnitPrice: string;
164
+ };
165
+ standard: {
166
+ computeUnitPrice: string;
167
+ };
168
+ fast: {
169
+ computeUnitPrice: string;
170
+ };
158
171
  };
159
172
  export type GetFeesRequest = {
160
173
  query?: GetFeesQuery;
@@ -7,4 +7,5 @@ export declare class PayoutsClient {
7
7
  createPayoutAction(request: T.CreatePayoutActionRequest): Promise<T.CreatePayoutActionResponse>;
8
8
  createPayoutQuote(request: T.CreatePayoutQuoteRequest): Promise<T.CreatePayoutQuoteResponse>;
9
9
  getPayout(request: T.GetPayoutRequest): Promise<T.GetPayoutResponse>;
10
+ listPayouts(request?: T.ListPayoutsRequest): Promise<T.ListPayoutsResponse>;
10
11
  }
@@ -56,5 +56,16 @@ class PayoutsClient {
56
56
  });
57
57
  return response.json();
58
58
  }
59
+ async listPayouts(request) {
60
+ const path = (0, url_1.buildPathAndQuery)('/payouts', {
61
+ path: request ?? {},
62
+ query: request?.query ?? {},
63
+ });
64
+ const response = await (0, fetch_1.simpleFetch)(path, {
65
+ method: 'GET',
66
+ apiOptions: this.apiOptions,
67
+ });
68
+ return response.json();
69
+ }
59
70
  }
60
71
  exports.PayoutsClient = PayoutsClient;
@@ -10,4 +10,5 @@ export declare class DelegatedPayoutsClient {
10
10
  createPayoutActionComplete(request: T.CreatePayoutActionRequest, signedChallenge: SignUserActionChallengeRequest): Promise<T.CreatePayoutActionResponse>;
11
11
  createPayoutQuote(request: T.CreatePayoutQuoteRequest): Promise<T.CreatePayoutQuoteResponse>;
12
12
  getPayout(request: T.GetPayoutRequest): Promise<T.GetPayoutResponse>;
13
+ listPayouts(request?: T.ListPayoutsRequest): Promise<T.ListPayoutsResponse>;
13
14
  }
@@ -85,5 +85,16 @@ class DelegatedPayoutsClient {
85
85
  });
86
86
  return response.json();
87
87
  }
88
+ async listPayouts(request) {
89
+ const path = (0, url_1.buildPathAndQuery)('/payouts', {
90
+ path: request ?? {},
91
+ query: request?.query ?? {},
92
+ });
93
+ const response = await (0, fetch_1.simpleFetch)(path, {
94
+ method: 'GET',
95
+ apiOptions: this.apiOptions,
96
+ });
97
+ return response.json();
98
+ }
88
99
  }
89
100
  exports.DelegatedPayoutsClient = DelegatedPayoutsClient;
@@ -322,3 +322,106 @@ export type GetPayoutResponse = {
322
322
  };
323
323
  };
324
324
  export type GetPayoutRequest = GetPayoutParams;
325
+ export type ListPayoutsQuery = {
326
+ /** Maximum number of items to return. */
327
+ limit?: number | undefined;
328
+ /** Opaque token used to retrieve the next page. Returned as `nextPageToken` from the previous request. */
329
+ paginationToken?: string | undefined;
330
+ /** Filter payouts by wallet ID. */
331
+ walletId?: string | undefined;
332
+ /** Filter payouts by status (comma-separated). */
333
+ status?: ("Processing" | "Completed" | "Failed" | "Rejected" | "Expired" | "Canceled")[] | undefined;
334
+ };
335
+ export type ListPayoutsResponse = {
336
+ /** Current page items. */
337
+ items: ({
338
+ /** Payout id. */
339
+ id: string;
340
+ /** The wallet ID used for the payout. */
341
+ walletId: string;
342
+ /** ISO-4217 fiat currency code for the payout. */
343
+ fiatCurrency: string;
344
+ /** The asset being paid out, including token descriptor and metadata. */
345
+ asset: {
346
+ kind: "Erc20";
347
+ /** The amount of the asset to be paid out in minimum denomination. */
348
+ amount: string;
349
+ /** The ERC-20 contract address. */
350
+ contract: string;
351
+ network: "Algorand" | "AlgorandTestnet" | "Aptos" | "AptosTestnet" | "ArbitrumOne" | "ArbitrumGoerli" | "ArbitrumSepolia" | "ArcTestnet" | "AvalancheC" | "AvalancheCFuji" | "Adi" | "AdiTestnet" | "AdiTestnetAb" | "BabylonGenesis" | "BabylonTestnet5" | "Base" | "BaseGoerli" | "BaseSepolia" | "Berachain" | "BerachainBArtio" | "BerachainBepolia" | "Bitcoin" | "BitcoinSignet" | "BitcoinTestnet3" | "BitcoinCash" | "BitcoinCashTestnet" | "Bob" | "BobSepolia" | "Bsc" | "BscTestnet" | "Canton" | "CantonDevnet" | "CantonTestnet" | "Cardano" | "CardanoPreprod" | "Concordium" | "ConcordiumTestnet" | "Celo" | "CeloAlfajores" | "Codex" | "CodexSepolia" | "CosmosHub4" | "CosmosIcsTestnet" | "Dogecoin" | "DogecoinTestnet" | "Ethereum" | "EthereumClassic" | "EthereumClassicMordor" | "EthereumGoerli" | "EthereumSepolia" | "EthereumHolesky" | "EthereumHoodi" | "FantomOpera" | "FantomTestnet" | "FlareC" | "FlareCCoston2" | "FlowEvm" | "FlowEvmTestnet" | "Hedera" | "HederaTestnet" | "Ink" | "InkSepolia" | "InternetComputer" | "Ion" | "IonTestnet" | "Iota" | "IotaTestnet" | "IotaZodianet" | "Kaspa" | "KaspaTestnet11" | "Kusama" | "KusamaAssetHub" | "Litecoin" | "LitecoinTestnet" | "Near" | "NearTestnet" | "Optimism" | "OptimismGoerli" | "OptimismSepolia" | "Origyn" | "Plasma" | "PlasmaTestnet" | "Plume" | "PlumeSepolia" | "Paseo" | "PaseoAssetHub" | "Polkadot" | "PolkadotAssetHub" | "Polygon" | "PolygonAmoy" | "PolygonMumbai" | "Polymesh" | "PolymeshTestnet" | "Race" | "RaceSepolia" | "SeiAtlantic2" | "SeiPacific1" | "Solana" | "SolanaDevnet" | "Sonic" | "SonicTestnet" | "Starknet" | "StarknetSepolia" | "Stellar" | "StellarTestnet" | "Sui" | "SuiTestnet" | "Tezos" | "TezosGhostnet" | "Tempo" | "TempoAndantino" | "TempoModerato" | "Tsc" | "TscTestnet1" | "Ton" | "TonTestnet" | "Tron" | "TronNile" | "Westend" | "WestendAssetHub" | "XrpLedger" | "XrpLedgerTestnet";
352
+ metadata?: {
353
+ /** The display name of the token. */
354
+ name?: string | undefined;
355
+ /** The ticker symbol of the token. */
356
+ symbol?: string | undefined;
357
+ /** Number of decimals used by the token. */
358
+ decimals: number;
359
+ /** Whether the token is verified by DFNS as legitimate. */
360
+ verified?: boolean | undefined;
361
+ } | undefined;
362
+ } | {
363
+ kind: "Spl" | "Spl2022";
364
+ /** The amount of the asset to be paid out in minimum denomination. */
365
+ amount: string;
366
+ /** The token mint address. */
367
+ mint: string;
368
+ network: "Algorand" | "AlgorandTestnet" | "Aptos" | "AptosTestnet" | "ArbitrumOne" | "ArbitrumGoerli" | "ArbitrumSepolia" | "ArcTestnet" | "AvalancheC" | "AvalancheCFuji" | "Adi" | "AdiTestnet" | "AdiTestnetAb" | "BabylonGenesis" | "BabylonTestnet5" | "Base" | "BaseGoerli" | "BaseSepolia" | "Berachain" | "BerachainBArtio" | "BerachainBepolia" | "Bitcoin" | "BitcoinSignet" | "BitcoinTestnet3" | "BitcoinCash" | "BitcoinCashTestnet" | "Bob" | "BobSepolia" | "Bsc" | "BscTestnet" | "Canton" | "CantonDevnet" | "CantonTestnet" | "Cardano" | "CardanoPreprod" | "Concordium" | "ConcordiumTestnet" | "Celo" | "CeloAlfajores" | "Codex" | "CodexSepolia" | "CosmosHub4" | "CosmosIcsTestnet" | "Dogecoin" | "DogecoinTestnet" | "Ethereum" | "EthereumClassic" | "EthereumClassicMordor" | "EthereumGoerli" | "EthereumSepolia" | "EthereumHolesky" | "EthereumHoodi" | "FantomOpera" | "FantomTestnet" | "FlareC" | "FlareCCoston2" | "FlowEvm" | "FlowEvmTestnet" | "Hedera" | "HederaTestnet" | "Ink" | "InkSepolia" | "InternetComputer" | "Ion" | "IonTestnet" | "Iota" | "IotaTestnet" | "IotaZodianet" | "Kaspa" | "KaspaTestnet11" | "Kusama" | "KusamaAssetHub" | "Litecoin" | "LitecoinTestnet" | "Near" | "NearTestnet" | "Optimism" | "OptimismGoerli" | "OptimismSepolia" | "Origyn" | "Plasma" | "PlasmaTestnet" | "Plume" | "PlumeSepolia" | "Paseo" | "PaseoAssetHub" | "Polkadot" | "PolkadotAssetHub" | "Polygon" | "PolygonAmoy" | "PolygonMumbai" | "Polymesh" | "PolymeshTestnet" | "Race" | "RaceSepolia" | "SeiAtlantic2" | "SeiPacific1" | "Solana" | "SolanaDevnet" | "Sonic" | "SonicTestnet" | "Starknet" | "StarknetSepolia" | "Stellar" | "StellarTestnet" | "Sui" | "SuiTestnet" | "Tezos" | "TezosGhostnet" | "Tempo" | "TempoAndantino" | "TempoModerato" | "Tsc" | "TscTestnet1" | "Ton" | "TonTestnet" | "Tron" | "TronNile" | "Westend" | "WestendAssetHub" | "XrpLedger" | "XrpLedgerTestnet";
369
+ metadata?: {
370
+ /** The display name of the token. */
371
+ name?: string | undefined;
372
+ /** The ticker symbol of the token. */
373
+ symbol?: string | undefined;
374
+ /** Number of decimals used by the token. */
375
+ decimals: number;
376
+ /** Whether the token is verified by DFNS as legitimate. */
377
+ verified?: boolean | undefined;
378
+ } | undefined;
379
+ };
380
+ /** Optional external identifier for idempotency. */
381
+ externalId?: string | undefined;
382
+ /** The current status of the payout. */
383
+ status: "Processing" | "Completed" | "Failed" | "Rejected" | "Expired" | "Canceled";
384
+ /** The user/token that initiated the payout. */
385
+ requester: {
386
+ /** User id. */
387
+ userId: string;
388
+ /** Token id. */
389
+ tokenId?: string | undefined;
390
+ };
391
+ dateCreated: string;
392
+ dateFinalized?: string | undefined;
393
+ provider: "Borderless";
394
+ /** Borderless provider-specific payout data. */
395
+ data: {
396
+ /** The Borderless account ID associated with the payout. */
397
+ borderlessAccountId: string;
398
+ /** The Borderless payment instructions ID linked to the destination bank account. */
399
+ paymentInstructionsId: string;
400
+ /** The purpose of the withdrawal payment. */
401
+ paymentPurpose: "salary payment" | "personal remittance" | "rent payment" | "property purchase" | "owned account abroad" | "advertising expenses" | "advisory fees" | "business insurance" | "construction" | "delivery fees" | "education" | "exports" | "donation" | "hotel" | "loan payment" | "maintenance expenses" | "medical expense" | "office expenses" | "royalty fees" | "service charge" | "shares investment" | "tax payment" | "transportation fees" | "travel" | "utility bills" | "other";
402
+ dateConfirmed?: string | undefined;
403
+ dateCanceled?: string | undefined;
404
+ /** The Borderless execution status. */
405
+ executionStatus: "Initializing" | "AwaitingPayoutInstructions" | "AwaitingPayoutConfirmation" | "SubmittingPayoutTransfer" | "PendingPolicyApproval" | "DepositProcessing" | "DisbursementPending" | "Completed" | "Rejected" | "Failed" | "Expired" | "Canceled";
406
+ /** Reason for the current status, primarily for failure cases. */
407
+ statusReason?: string | undefined;
408
+ /** ISO-3166 Alpha-2 country code for the payout destination. */
409
+ country: string;
410
+ /** The ID assigned by Borderless when the payout is created. */
411
+ borderlessPayoutId?: string | undefined;
412
+ /** The on-chain address to remit funds to. */
413
+ depositAddress?: string | undefined;
414
+ /** The Dfns transfer ID used to settle the payout. */
415
+ transferId?: string | undefined;
416
+ /** The blockchain transaction hash once the transfer is confirmed. */
417
+ transactionHash?: string | undefined;
418
+ dateDepositConfirmed?: string | undefined;
419
+ datePayoutConfirmed?: string | undefined;
420
+ };
421
+ })[];
422
+ /** token to use as `paginationToken` to request the next page. */
423
+ nextPageToken?: string | undefined;
424
+ };
425
+ export type ListPayoutsRequest = {
426
+ query?: ListPayoutsQuery;
427
+ };
@@ -70,7 +70,7 @@ class PermissionsClient {
70
70
  async listAssignments(request) {
71
71
  const path = (0, url_1.buildPathAndQuery)('/permissions/:permissionId/assignments', {
72
72
  path: request ?? {},
73
- query: {},
73
+ query: request.query ?? {},
74
74
  });
75
75
  const response = await (0, fetch_1.simpleFetch)(path, {
76
76
  method: 'GET',
@@ -129,7 +129,7 @@ class DelegatedPermissionsClient {
129
129
  async listAssignments(request) {
130
130
  const path = (0, url_1.buildPathAndQuery)('/permissions/:permissionId/assignments', {
131
131
  path: request ?? {},
132
- query: {},
132
+ query: request.query ?? {},
133
133
  });
134
134
  const response = await (0, fetch_1.simpleFetch)(path, {
135
135
  method: 'GET',
@@ -1,15 +1,23 @@
1
1
  export type ArchivePermissionBody = {
2
+ /** Set to true to archive, false to unarchive. */
2
3
  isArchived: boolean;
3
4
  };
4
5
  export type ArchivePermissionParams = {
6
+ /** ID of the permission (also referred to as "role" in the dashboard). */
5
7
  permissionId: string;
6
8
  };
7
9
  export type ArchivePermissionResponse = {
10
+ /** ID of the permission (also referred to as "role" in the dashboard). */
8
11
  id: string;
12
+ /** Human-readable name of the permission (role). */
9
13
  name: string;
14
+ /** List of API operations this permission grants access to. See [Permissions List](https://docs.dfns.co/core-concepts/roles-and-permissions#list-of-permissions) for available operations. */
10
15
  operations: string[];
16
+ /** Current status of the permission. */
11
17
  status: "Active";
18
+ /** Whether this permission is system-managed and cannot be modified. */
12
19
  isImmutable: boolean;
20
+ /** Whether this permission has been archived (soft-deleted). */
13
21
  isArchived: boolean;
14
22
  dateCreated: string;
15
23
  dateUpdated: string;
@@ -18,15 +26,21 @@ export type ArchivePermissionRequest = ArchivePermissionParams & {
18
26
  body: ArchivePermissionBody;
19
27
  };
20
28
  export type CreateAssignmentBody = {
29
+ /** ID of the identity to assign the permission to. Can be a user ID, a service account ID, or a personal access token (PAT) ID. */
21
30
  identityId: string;
22
31
  };
23
32
  export type CreateAssignmentParams = {
33
+ /** ID of the permission (also referred to as "role" in the dashboard). */
24
34
  permissionId: string;
25
35
  };
26
36
  export type CreateAssignmentResponse = {
37
+ /** ID of the permission assignment. */
27
38
  id: string;
39
+ /** ID of the permission (also referred to as "role" in the dashboard). */
28
40
  permissionId: string;
41
+ /** ID of the identity the permission is assigned to. Can be a user ID, a service account ID, or a personal access token (PAT) ID. */
29
42
  identityId: string;
43
+ /** Whether this assignment is system-managed and cannot be modified. */
30
44
  isImmutable: boolean;
31
45
  dateCreated: string;
32
46
  dateUpdated: string;
@@ -35,15 +49,23 @@ export type CreateAssignmentRequest = CreateAssignmentParams & {
35
49
  body: CreateAssignmentBody;
36
50
  };
37
51
  export type CreatePermissionBody = {
52
+ /** Human-readable name for the permission (role). */
38
53
  name: string;
39
- operations: (("Registry:Addresses:Create" | "Registry:Addresses:Delete" | "Registry:Addresses:Read" | "Registry:Addresses:Update" | "Registry:ContractSchemas:Create" | "Registry:ContractSchemas:Delete" | "Registry:ContractSchemas:Read" | "Auth:Logs:Read" | "Auth:Users:Create" | "Auth:Users:Read" | "Auth:Users:Update" | "Auth:Users:Activate" | "Auth:Users:Deactivate" | "Auth:Users:Delete" | "Auth:ServiceAccounts:Create" | "Auth:ServiceAccounts:Read" | "Auth:ServiceAccounts:Update" | "Auth:ServiceAccounts:Deactivate" | "Auth:ServiceAccounts:Activate" | "Auth:ServiceAccounts:Delete" | "Auth:Pats:Create" | "Auth:Register:Delegated" | "Auth:Login:Delegated" | "Auth:Recover:Delegated" | "Agreements:Acceptance:Create" | "Agreements:Acceptance:Read" | "Events:Read" | "Exchanges:Create" | "Exchanges:Read" | "Exchanges:Delete" | "Exchanges:Deposits:Create" | "Exchanges:Withdrawals:Create" | "FeeSponsors:Create" | "FeeSponsors:Read" | "FeeSponsors:Update" | "FeeSponsors:Delete" | "FeeSponsors:Use" | "Orgs:Read" | "Orgs:Update" | "Orgs:Settings:Read" | "Orgs:Settings:Update" | "Permissions:Archive" | "Permissions:Create" | "Permissions:Read" | "Permissions:Update" | "Permissions:Assign" | "Permissions:Revoke" | "Permissions:Assignments:Read" | "Policies:Archive" | "Policies:Create" | "Policies:Read" | "Policies:Update" | "Policies:Approvals:Read" | "Policies:Approvals:Approve" | "Signers:ListSigners" | "Stakes:Create" | "Stakes:Read" | "Stakes:Update" | "Swaps:Create" | "Swaps:Read" | "Payouts:Create" | "Payouts:Read" | "Payouts:Write" | "Allocations:Create" | "Allocations:Update" | "Allocations:Read" | "Keys:Create" | "Keys:Delete" | "Keys:Read" | "Keys:Update" | "Keys:Reuse" | "Keys:Delegate" | "Keys:Import" | "Keys:Export" | "Keys:Derive" | "Keys:ChildKeys:Create" | "Keys:Signatures:Create" | "Keys:Signatures:Read" | "KeyStores:Read" | "Networks:CantonValidators:Create" | "Networks:CantonValidators:Read" | "Networks:CantonValidators:Update" | "Networks:CantonValidators:Delete" | "Wallets:Create" | "Wallets:Read" | "Wallets:Update" | "Wallets:Tags:Add" | "Wallets:Tags:Delete" | "Wallets:Transactions:Create" | "Wallets:Transactions:Read" | "Wallets:Transfers:Create" | "Wallets:Transfers:Read" | "Wallets:Offers:Read" | "Wallets:Offers:Settle" | "Vaults:Create" | "Vaults:Read" | "Vaults:Update" | "Vaults:Tags:Add" | "Vaults:Tags:Delete" | "Webhooks:Create" | "Webhooks:Read" | "Webhooks:Update" | "Webhooks:Delete" | "Webhooks:Ping" | "Webhooks:Events:Read" | "Billing:Read" | "Billing:Write" | "Analytics:Read") | ("Alias:Create" | "Alias:Delete" | "Alias:Read" | "Alias:Update" | "Wallets:GenerateSignature" | "Wallets:BroadcastTransaction" | "Auth:Action:Sign" | "Auth:Apps:Read" | "Auth:Apps:Create" | "Auth:Apps:Update" | "Auth:Creds:Create" | "Auth:Creds:Read" | "Auth:Creds:Update" | "Auth:Creds:Code:Create" | "Auth:Types:Application" | "Auth:Types:Employee" | "Auth:Types:EndUser" | "Auth:Types:Pat" | "Auth:Types:ServiceAccount" | "Internal:Auth:Types:Staff" | "Auth:Users:Delegate" | "PermissionAssignments:Create" | "PermissionAssignments:Read" | "PermissionAssignments:Revoke"))[];
54
+ /** List of API operations this permission grants access to. See [Permissions List](https://docs.dfns.co/core-concepts/roles-and-permissions#list-of-permissions) for available operations. */
55
+ operations: (("Registry:Addresses:Create" | "Registry:Addresses:Delete" | "Registry:Addresses:Read" | "Registry:Addresses:Update" | "Registry:ContractSchemas:Create" | "Registry:ContractSchemas:Delete" | "Registry:ContractSchemas:Read" | "Auth:Logs:Read" | "Auth:Users:Create" | "Auth:Users:Read" | "Auth:Users:Update" | "Auth:Users:Activate" | "Auth:Users:Deactivate" | "Auth:Users:Delete" | "Auth:ServiceAccounts:Create" | "Auth:ServiceAccounts:Read" | "Auth:ServiceAccounts:Update" | "Auth:ServiceAccounts:Deactivate" | "Auth:ServiceAccounts:Activate" | "Auth:ServiceAccounts:Delete" | "Auth:Pats:Create" | "Auth:Register:Delegated" | "Auth:Login:Delegated" | "Auth:Recover:Delegated" | "Agreements:Acceptance:Create" | "Agreements:Acceptance:Read" | "Events:Read" | "Exchanges:Create" | "Exchanges:Read" | "Exchanges:Delete" | "Exchanges:Deposits:Create" | "Exchanges:Withdrawals:Create" | "FeeSponsors:Create" | "FeeSponsors:Read" | "FeeSponsors:Update" | "FeeSponsors:Delete" | "FeeSponsors:Use" | "Orgs:Read" | "Orgs:Update" | "Orgs:Settings:Read" | "Orgs:Settings:Update" | "Permissions:Archive" | "Permissions:Create" | "Permissions:Read" | "Permissions:Update" | "Permissions:Assign" | "Permissions:Revoke" | "Permissions:Assignments:Read" | "Policies:Archive" | "Policies:Create" | "Policies:Read" | "Policies:Update" | "Policies:Approvals:Read" | "Policies:Approvals:Approve" | "Signers:ListSigners" | "Stakes:Create" | "Stakes:Read" | "Stakes:Update" | "Swaps:Create" | "Swaps:Read" | "Payouts:Create" | "Payouts:Read" | "Payouts:Write" | "Allocations:Create" | "Allocations:Update" | "Allocations:Read" | "Keys:Create" | "Keys:Delete" | "Keys:Read" | "Keys:Update" | "Keys:Reuse" | "Keys:Delegate" | "Keys:Import" | "Keys:Export" | "Keys:Derive" | "Keys:ChildKeys:Create" | "Keys:Signatures:Create" | "Keys:Signatures:Read" | "KeyStores:Read" | "Networks:CantonValidators:Create" | "Networks:CantonValidators:Read" | "Networks:CantonValidators:Update" | "Networks:CantonValidators:Delete" | "Wallets:Create" | "Wallets:Read" | "Wallets:Update" | "Wallets:Tags:Add" | "Wallets:Tags:Delete" | "Wallets:Transactions:Create" | "Wallets:Transactions:Read" | "Wallets:Transactions:Update" | "Wallets:Transfers:Create" | "Wallets:Transfers:Read" | "Wallets:Transfers:Update" | "Wallets:Offers:Read" | "Wallets:Offers:Settle" | "Vaults:Create" | "Vaults:Read" | "Vaults:Update" | "Vaults:Tags:Add" | "Vaults:Tags:Delete" | "Webhooks:Create" | "Webhooks:Read" | "Webhooks:Update" | "Webhooks:Delete" | "Webhooks:Ping" | "Webhooks:Events:Read" | "Billing:Read" | "Billing:Write" | "Analytics:Read") | ("Alias:Create" | "Alias:Delete" | "Alias:Read" | "Alias:Update" | "Wallets:GenerateSignature" | "Wallets:BroadcastTransaction" | "Auth:Action:Sign" | "Auth:Apps:Read" | "Auth:Apps:Create" | "Auth:Apps:Update" | "Auth:Creds:Create" | "Auth:Creds:Read" | "Auth:Creds:Update" | "Auth:Creds:Code:Create" | "Auth:Types:Application" | "Auth:Types:Employee" | "Auth:Types:EndUser" | "Auth:Types:Pat" | "Auth:Types:ServiceAccount" | "Internal:Auth:Types:Staff" | "Auth:Users:Delegate" | "PermissionAssignments:Create" | "PermissionAssignments:Read" | "PermissionAssignments:Revoke"))[];
40
56
  };
41
57
  export type CreatePermissionResponse = {
58
+ /** ID of the permission (also referred to as "role" in the dashboard). */
42
59
  id: string;
60
+ /** Human-readable name of the permission (role). */
43
61
  name: string;
62
+ /** List of API operations this permission grants access to. See [Permissions List](https://docs.dfns.co/core-concepts/roles-and-permissions#list-of-permissions) for available operations. */
44
63
  operations: string[];
64
+ /** Current status of the permission. */
45
65
  status: "Active";
66
+ /** Whether this permission is system-managed and cannot be modified. */
46
67
  isImmutable: boolean;
68
+ /** Whether this permission has been archived (soft-deleted). */
47
69
  isArchived: boolean;
48
70
  dateCreated: string;
49
71
  dateUpdated: string;
@@ -52,10 +74,13 @@ export type CreatePermissionRequest = {
52
74
  body: CreatePermissionBody;
53
75
  };
54
76
  export type DeleteAssignmentParams = {
77
+ /** ID of the permission (also referred to as "role" in the dashboard). */
55
78
  permissionId: string;
79
+ /** ID of the permission assignment. */
56
80
  assignmentId: string;
57
81
  };
58
82
  export type DeleteAssignmentQuery = {
83
+ /** If true, bypasses the approval process and revokes immediately. */
59
84
  force?: boolean | undefined;
60
85
  };
61
86
  export type DeleteAssignmentResponse = void | undefined;
@@ -63,19 +88,27 @@ export type DeleteAssignmentRequest = DeleteAssignmentParams & {
63
88
  query?: DeleteAssignmentQuery;
64
89
  };
65
90
  export type GetPermissionParams = {
91
+ /** ID of the permission (also referred to as "role" in the dashboard). */
66
92
  permissionId: string;
67
93
  };
68
94
  export type GetPermissionResponse = {
95
+ /** ID of the permission (also referred to as "role" in the dashboard). */
69
96
  id: string;
97
+ /** Human-readable name of the permission (role). */
70
98
  name: string;
99
+ /** List of API operations this permission grants access to. See [Permissions List](https://docs.dfns.co/core-concepts/roles-and-permissions#list-of-permissions) for available operations. */
71
100
  operations: string[];
101
+ /** Current status of the permission. */
72
102
  status: "Active";
103
+ /** Whether this permission is system-managed and cannot be modified. */
73
104
  isImmutable: boolean;
105
+ /** Whether this permission has been archived (soft-deleted). */
74
106
  isArchived: boolean;
75
107
  dateCreated: string;
76
108
  dateUpdated: string;
77
109
  } & {
78
110
  pendingChangeRequest?: {
111
+ /** ID of the change request. */
79
112
  id: string;
80
113
  /** The user who initiated the change request. */
81
114
  requester: {
@@ -83,7 +116,9 @@ export type GetPermissionResponse = {
83
116
  tokenId?: string | undefined;
84
117
  appId?: string | undefined;
85
118
  };
119
+ /** Current status of the change request. */
86
120
  status: "Applied" | "Failed" | "Pending" | "Rejected";
121
+ /** ID of the entity being changed. */
87
122
  entityId: string;
88
123
  dateCreated: string;
89
124
  dateResolved?: string | undefined;
@@ -91,29 +126,48 @@ export type GetPermissionResponse = {
91
126
  kind: "Permission";
92
127
  operationKind: "Update";
93
128
  body: {
129
+ /** ID of the permission (also referred to as "role" in the dashboard). */
94
130
  id: string;
131
+ /** Human-readable name of the permission (role). */
95
132
  name: string;
133
+ /** Current status of the permission. */
96
134
  status: "Active";
135
+ /** List of API operations this permission grants access to. See [Permissions List](https://docs.dfns.co/core-concepts/roles-and-permissions#list-of-permissions) for available operations. */
97
136
  operations: string[];
137
+ /** Whether this permission is system-managed and cannot be modified. */
98
138
  isImmutable: boolean;
139
+ /** Whether this permission has been archived (soft-deleted). */
99
140
  isArchived: boolean;
100
141
  };
101
142
  } | undefined;
102
143
  };
103
144
  export type GetPermissionRequest = GetPermissionParams;
104
145
  export type ListAssignmentsParams = {
146
+ /** ID of the permission (also referred to as "role" in the dashboard). */
105
147
  permissionId: string;
106
148
  };
149
+ export type ListAssignmentsQuery = {
150
+ /** Maximum number of items to return. */
151
+ limit?: number | undefined;
152
+ /** Opaque token used to retrieve the next page. Returned as `nextPageToken` from the previous request. */
153
+ paginationToken?: string | undefined;
154
+ };
107
155
  export type ListAssignmentsResponse = {
156
+ /** Current page items. */
108
157
  items: ({
158
+ /** ID of the permission assignment. */
109
159
  id: string;
160
+ /** ID of the permission (also referred to as "role" in the dashboard). */
110
161
  permissionId: string;
162
+ /** ID of the identity the permission is assigned to. Can be a user ID, a service account ID, or a personal access token (PAT) ID. */
111
163
  identityId: string;
164
+ /** Whether this assignment is system-managed and cannot be modified. */
112
165
  isImmutable: boolean;
113
166
  dateCreated: string;
114
167
  dateUpdated: string;
115
168
  } & {
116
169
  pendingChangeRequest?: {
170
+ /** ID of the change request. */
117
171
  id: string;
118
172
  /** The user who initiated the change request. */
119
173
  requester: {
@@ -121,7 +175,9 @@ export type ListAssignmentsResponse = {
121
175
  tokenId?: string | undefined;
122
176
  appId?: string | undefined;
123
177
  };
178
+ /** Current status of the change request. */
124
179
  status: "Applied" | "Failed" | "Pending" | "Rejected";
180
+ /** ID of the entity being changed. */
125
181
  entityId: string;
126
182
  dateCreated: string;
127
183
  dateResolved?: string | undefined;
@@ -129,32 +185,49 @@ export type ListAssignmentsResponse = {
129
185
  kind: "Assignment";
130
186
  operationKind: "Create" | "Delete";
131
187
  body: {
188
+ /** ID of the permission assignment. */
132
189
  id: string;
190
+ /** ID of the permission (also referred to as "role" in the dashboard). */
133
191
  permissionId: string;
192
+ /** ID of the identity the permission is assigned to. Can be a user ID, a service account ID, or a personal access token (PAT) ID. */
134
193
  identityId: string;
194
+ /** Whether this assignment is system-managed and cannot be modified. */
135
195
  isImmutable: boolean;
136
196
  };
137
197
  } | undefined;
138
198
  })[];
199
+ /** token to use as `paginationToken` to request the next page. */
139
200
  nextPageToken?: string | undefined;
140
201
  };
141
- export type ListAssignmentsRequest = ListAssignmentsParams;
202
+ export type ListAssignmentsRequest = ListAssignmentsParams & {
203
+ query?: ListAssignmentsQuery;
204
+ };
142
205
  export type ListPermissionsQuery = {
143
- limit?: string | undefined;
206
+ /** Maximum number of items to return. */
207
+ limit?: number | undefined;
208
+ /** Opaque token used to retrieve the next page. Returned as `nextPageToken` from the previous request. */
144
209
  paginationToken?: string | undefined;
145
210
  };
146
211
  export type ListPermissionsResponse = {
212
+ /** Current page items. */
147
213
  items: ({
214
+ /** ID of the permission (also referred to as "role" in the dashboard). */
148
215
  id: string;
216
+ /** Human-readable name of the permission (role). */
149
217
  name: string;
218
+ /** List of API operations this permission grants access to. See [Permissions List](https://docs.dfns.co/core-concepts/roles-and-permissions#list-of-permissions) for available operations. */
150
219
  operations: string[];
220
+ /** Current status of the permission. */
151
221
  status: "Active";
222
+ /** Whether this permission is system-managed and cannot be modified. */
152
223
  isImmutable: boolean;
224
+ /** Whether this permission has been archived (soft-deleted). */
153
225
  isArchived: boolean;
154
226
  dateCreated: string;
155
227
  dateUpdated: string;
156
228
  } & {
157
229
  pendingChangeRequest?: {
230
+ /** ID of the change request. */
158
231
  id: string;
159
232
  /** The user who initiated the change request. */
160
233
  requester: {
@@ -162,7 +235,9 @@ export type ListPermissionsResponse = {
162
235
  tokenId?: string | undefined;
163
236
  appId?: string | undefined;
164
237
  };
238
+ /** Current status of the change request. */
165
239
  status: "Applied" | "Failed" | "Pending" | "Rejected";
240
+ /** ID of the entity being changed. */
166
241
  entityId: string;
167
242
  dateCreated: string;
168
243
  dateResolved?: string | undefined;
@@ -170,33 +245,49 @@ export type ListPermissionsResponse = {
170
245
  kind: "Permission";
171
246
  operationKind: "Update";
172
247
  body: {
248
+ /** ID of the permission (also referred to as "role" in the dashboard). */
173
249
  id: string;
250
+ /** Human-readable name of the permission (role). */
174
251
  name: string;
252
+ /** Current status of the permission. */
175
253
  status: "Active";
254
+ /** List of API operations this permission grants access to. See [Permissions List](https://docs.dfns.co/core-concepts/roles-and-permissions#list-of-permissions) for available operations. */
176
255
  operations: string[];
256
+ /** Whether this permission is system-managed and cannot be modified. */
177
257
  isImmutable: boolean;
258
+ /** Whether this permission has been archived (soft-deleted). */
178
259
  isArchived: boolean;
179
260
  };
180
261
  } | undefined;
181
262
  })[];
263
+ /** token to use as `paginationToken` to request the next page. */
182
264
  nextPageToken?: string | undefined;
183
265
  };
184
266
  export type ListPermissionsRequest = {
185
267
  query?: ListPermissionsQuery;
186
268
  };
187
269
  export type UpdatePermissionBody = {
270
+ /** New name for the permission (role). */
188
271
  name?: string | undefined;
189
- operations?: (("Registry:Addresses:Create" | "Registry:Addresses:Delete" | "Registry:Addresses:Read" | "Registry:Addresses:Update" | "Registry:ContractSchemas:Create" | "Registry:ContractSchemas:Delete" | "Registry:ContractSchemas:Read" | "Auth:Logs:Read" | "Auth:Users:Create" | "Auth:Users:Read" | "Auth:Users:Update" | "Auth:Users:Activate" | "Auth:Users:Deactivate" | "Auth:Users:Delete" | "Auth:ServiceAccounts:Create" | "Auth:ServiceAccounts:Read" | "Auth:ServiceAccounts:Update" | "Auth:ServiceAccounts:Deactivate" | "Auth:ServiceAccounts:Activate" | "Auth:ServiceAccounts:Delete" | "Auth:Pats:Create" | "Auth:Register:Delegated" | "Auth:Login:Delegated" | "Auth:Recover:Delegated" | "Agreements:Acceptance:Create" | "Agreements:Acceptance:Read" | "Events:Read" | "Exchanges:Create" | "Exchanges:Read" | "Exchanges:Delete" | "Exchanges:Deposits:Create" | "Exchanges:Withdrawals:Create" | "FeeSponsors:Create" | "FeeSponsors:Read" | "FeeSponsors:Update" | "FeeSponsors:Delete" | "FeeSponsors:Use" | "Orgs:Read" | "Orgs:Update" | "Orgs:Settings:Read" | "Orgs:Settings:Update" | "Permissions:Archive" | "Permissions:Create" | "Permissions:Read" | "Permissions:Update" | "Permissions:Assign" | "Permissions:Revoke" | "Permissions:Assignments:Read" | "Policies:Archive" | "Policies:Create" | "Policies:Read" | "Policies:Update" | "Policies:Approvals:Read" | "Policies:Approvals:Approve" | "Signers:ListSigners" | "Stakes:Create" | "Stakes:Read" | "Stakes:Update" | "Swaps:Create" | "Swaps:Read" | "Payouts:Create" | "Payouts:Read" | "Payouts:Write" | "Allocations:Create" | "Allocations:Update" | "Allocations:Read" | "Keys:Create" | "Keys:Delete" | "Keys:Read" | "Keys:Update" | "Keys:Reuse" | "Keys:Delegate" | "Keys:Import" | "Keys:Export" | "Keys:Derive" | "Keys:ChildKeys:Create" | "Keys:Signatures:Create" | "Keys:Signatures:Read" | "KeyStores:Read" | "Networks:CantonValidators:Create" | "Networks:CantonValidators:Read" | "Networks:CantonValidators:Update" | "Networks:CantonValidators:Delete" | "Wallets:Create" | "Wallets:Read" | "Wallets:Update" | "Wallets:Tags:Add" | "Wallets:Tags:Delete" | "Wallets:Transactions:Create" | "Wallets:Transactions:Read" | "Wallets:Transfers:Create" | "Wallets:Transfers:Read" | "Wallets:Offers:Read" | "Wallets:Offers:Settle" | "Vaults:Create" | "Vaults:Read" | "Vaults:Update" | "Vaults:Tags:Add" | "Vaults:Tags:Delete" | "Webhooks:Create" | "Webhooks:Read" | "Webhooks:Update" | "Webhooks:Delete" | "Webhooks:Ping" | "Webhooks:Events:Read" | "Billing:Read" | "Billing:Write" | "Analytics:Read") | ("Alias:Create" | "Alias:Delete" | "Alias:Read" | "Alias:Update" | "Wallets:GenerateSignature" | "Wallets:BroadcastTransaction" | "Auth:Action:Sign" | "Auth:Apps:Read" | "Auth:Apps:Create" | "Auth:Apps:Update" | "Auth:Creds:Create" | "Auth:Creds:Read" | "Auth:Creds:Update" | "Auth:Creds:Code:Create" | "Auth:Types:Application" | "Auth:Types:Employee" | "Auth:Types:EndUser" | "Auth:Types:Pat" | "Auth:Types:ServiceAccount" | "Internal:Auth:Types:Staff" | "Auth:Users:Delegate" | "PermissionAssignments:Create" | "PermissionAssignments:Read" | "PermissionAssignments:Revoke"))[] | undefined;
272
+ /** New list of API operations this permission grants access to. See [Permissions List](https://docs.dfns.co/core-concepts/roles-and-permissions#list-of-permissions) for available operations. */
273
+ operations?: (("Registry:Addresses:Create" | "Registry:Addresses:Delete" | "Registry:Addresses:Read" | "Registry:Addresses:Update" | "Registry:ContractSchemas:Create" | "Registry:ContractSchemas:Delete" | "Registry:ContractSchemas:Read" | "Auth:Logs:Read" | "Auth:Users:Create" | "Auth:Users:Read" | "Auth:Users:Update" | "Auth:Users:Activate" | "Auth:Users:Deactivate" | "Auth:Users:Delete" | "Auth:ServiceAccounts:Create" | "Auth:ServiceAccounts:Read" | "Auth:ServiceAccounts:Update" | "Auth:ServiceAccounts:Deactivate" | "Auth:ServiceAccounts:Activate" | "Auth:ServiceAccounts:Delete" | "Auth:Pats:Create" | "Auth:Register:Delegated" | "Auth:Login:Delegated" | "Auth:Recover:Delegated" | "Agreements:Acceptance:Create" | "Agreements:Acceptance:Read" | "Events:Read" | "Exchanges:Create" | "Exchanges:Read" | "Exchanges:Delete" | "Exchanges:Deposits:Create" | "Exchanges:Withdrawals:Create" | "FeeSponsors:Create" | "FeeSponsors:Read" | "FeeSponsors:Update" | "FeeSponsors:Delete" | "FeeSponsors:Use" | "Orgs:Read" | "Orgs:Update" | "Orgs:Settings:Read" | "Orgs:Settings:Update" | "Permissions:Archive" | "Permissions:Create" | "Permissions:Read" | "Permissions:Update" | "Permissions:Assign" | "Permissions:Revoke" | "Permissions:Assignments:Read" | "Policies:Archive" | "Policies:Create" | "Policies:Read" | "Policies:Update" | "Policies:Approvals:Read" | "Policies:Approvals:Approve" | "Signers:ListSigners" | "Stakes:Create" | "Stakes:Read" | "Stakes:Update" | "Swaps:Create" | "Swaps:Read" | "Payouts:Create" | "Payouts:Read" | "Payouts:Write" | "Allocations:Create" | "Allocations:Update" | "Allocations:Read" | "Keys:Create" | "Keys:Delete" | "Keys:Read" | "Keys:Update" | "Keys:Reuse" | "Keys:Delegate" | "Keys:Import" | "Keys:Export" | "Keys:Derive" | "Keys:ChildKeys:Create" | "Keys:Signatures:Create" | "Keys:Signatures:Read" | "KeyStores:Read" | "Networks:CantonValidators:Create" | "Networks:CantonValidators:Read" | "Networks:CantonValidators:Update" | "Networks:CantonValidators:Delete" | "Wallets:Create" | "Wallets:Read" | "Wallets:Update" | "Wallets:Tags:Add" | "Wallets:Tags:Delete" | "Wallets:Transactions:Create" | "Wallets:Transactions:Read" | "Wallets:Transactions:Update" | "Wallets:Transfers:Create" | "Wallets:Transfers:Read" | "Wallets:Transfers:Update" | "Wallets:Offers:Read" | "Wallets:Offers:Settle" | "Vaults:Create" | "Vaults:Read" | "Vaults:Update" | "Vaults:Tags:Add" | "Vaults:Tags:Delete" | "Webhooks:Create" | "Webhooks:Read" | "Webhooks:Update" | "Webhooks:Delete" | "Webhooks:Ping" | "Webhooks:Events:Read" | "Billing:Read" | "Billing:Write" | "Analytics:Read") | ("Alias:Create" | "Alias:Delete" | "Alias:Read" | "Alias:Update" | "Wallets:GenerateSignature" | "Wallets:BroadcastTransaction" | "Auth:Action:Sign" | "Auth:Apps:Read" | "Auth:Apps:Create" | "Auth:Apps:Update" | "Auth:Creds:Create" | "Auth:Creds:Read" | "Auth:Creds:Update" | "Auth:Creds:Code:Create" | "Auth:Types:Application" | "Auth:Types:Employee" | "Auth:Types:EndUser" | "Auth:Types:Pat" | "Auth:Types:ServiceAccount" | "Internal:Auth:Types:Staff" | "Auth:Users:Delegate" | "PermissionAssignments:Create" | "PermissionAssignments:Read" | "PermissionAssignments:Revoke"))[] | undefined;
190
274
  };
191
275
  export type UpdatePermissionParams = {
276
+ /** ID of the permission (also referred to as "role" in the dashboard). */
192
277
  permissionId: string;
193
278
  };
194
279
  export type UpdatePermissionResponse = {
280
+ /** ID of the permission (also referred to as "role" in the dashboard). */
195
281
  id: string;
282
+ /** Human-readable name of the permission (role). */
196
283
  name: string;
284
+ /** List of API operations this permission grants access to. See [Permissions List](https://docs.dfns.co/core-concepts/roles-and-permissions#list-of-permissions) for available operations. */
197
285
  operations: string[];
286
+ /** Current status of the permission. */
198
287
  status: "Active";
288
+ /** Whether this permission is system-managed and cannot be modified. */
199
289
  isImmutable: boolean;
290
+ /** Whether this permission has been archived (soft-deleted). */
200
291
  isArchived: boolean;
201
292
  dateCreated: string;
202
293
  dateUpdated: string;