dfns-sdk 0.0.0.dev0__py3-none-any.whl

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.
Files changed (69) hide show
  1. dfns_sdk/__init__.py +24 -0
  2. dfns_sdk/_internal/__init__.py +5 -0
  3. dfns_sdk/_internal/http_client.py +395 -0
  4. dfns_sdk/auth.py +137 -0
  5. dfns_sdk/base_auth_api.py +129 -0
  6. dfns_sdk/client.py +81 -0
  7. dfns_sdk/delegated_client.py +97 -0
  8. dfns_sdk/generated/__init__.py +47 -0
  9. dfns_sdk/generated/agreements/__init__.py +7 -0
  10. dfns_sdk/generated/agreements/client.py +55 -0
  11. dfns_sdk/generated/agreements/delegated_client.py +95 -0
  12. dfns_sdk/generated/agreements/types.py +20 -0
  13. dfns_sdk/generated/allocations/__init__.py +7 -0
  14. dfns_sdk/generated/allocations/client.py +118 -0
  15. dfns_sdk/generated/allocations/delegated_client.py +187 -0
  16. dfns_sdk/generated/allocations/types.py +69 -0
  17. dfns_sdk/generated/auth/__init__.py +7 -0
  18. dfns_sdk/generated/auth/client.py +1215 -0
  19. dfns_sdk/generated/auth/delegated_client.py +1825 -0
  20. dfns_sdk/generated/auth/types.py +702 -0
  21. dfns_sdk/generated/exchanges/__init__.py +7 -0
  22. dfns_sdk/generated/exchanges/client.py +209 -0
  23. dfns_sdk/generated/exchanges/delegated_client.py +341 -0
  24. dfns_sdk/generated/exchanges/types.py +96 -0
  25. dfns_sdk/generated/fee_sponsors/__init__.py +7 -0
  26. dfns_sdk/generated/fee_sponsors/client.py +161 -0
  27. dfns_sdk/generated/fee_sponsors/delegated_client.py +287 -0
  28. dfns_sdk/generated/fee_sponsors/types.py +89 -0
  29. dfns_sdk/generated/keys/__init__.py +7 -0
  30. dfns_sdk/generated/keys/client.py +310 -0
  31. dfns_sdk/generated/keys/delegated_client.py +518 -0
  32. dfns_sdk/generated/keys/types.py +229 -0
  33. dfns_sdk/generated/networks/__init__.py +7 -0
  34. dfns_sdk/generated/networks/client.py +176 -0
  35. dfns_sdk/generated/networks/delegated_client.py +274 -0
  36. dfns_sdk/generated/networks/types.py +77 -0
  37. dfns_sdk/generated/permissions/__init__.py +7 -0
  38. dfns_sdk/generated/permissions/client.py +185 -0
  39. dfns_sdk/generated/permissions/delegated_client.py +344 -0
  40. dfns_sdk/generated/permissions/types.py +107 -0
  41. dfns_sdk/generated/policies/__init__.py +7 -0
  42. dfns_sdk/generated/policies/client.py +187 -0
  43. dfns_sdk/generated/policies/delegated_client.py +311 -0
  44. dfns_sdk/generated/policies/types.py +70 -0
  45. dfns_sdk/generated/signers/__init__.py +7 -0
  46. dfns_sdk/generated/signers/client.py +45 -0
  47. dfns_sdk/generated/signers/delegated_client.py +56 -0
  48. dfns_sdk/generated/signers/types.py +13 -0
  49. dfns_sdk/generated/staking/__init__.py +7 -0
  50. dfns_sdk/generated/staking/client.py +142 -0
  51. dfns_sdk/generated/staking/delegated_client.py +211 -0
  52. dfns_sdk/generated/staking/types.py +64 -0
  53. dfns_sdk/generated/swaps/__init__.py +7 -0
  54. dfns_sdk/generated/swaps/client.py +118 -0
  55. dfns_sdk/generated/swaps/delegated_client.py +157 -0
  56. dfns_sdk/generated/swaps/types.py +99 -0
  57. dfns_sdk/generated/wallets/__init__.py +7 -0
  58. dfns_sdk/generated/wallets/client.py +805 -0
  59. dfns_sdk/generated/wallets/delegated_client.py +1231 -0
  60. dfns_sdk/generated/wallets/types.py +534 -0
  61. dfns_sdk/generated/webhooks/__init__.py +7 -0
  62. dfns_sdk/generated/webhooks/client.py +193 -0
  63. dfns_sdk/generated/webhooks/delegated_client.py +320 -0
  64. dfns_sdk/generated/webhooks/types.py +101 -0
  65. dfns_sdk/types.py +72 -0
  66. dfns_sdk-0.0.0.dev0.dist-info/METADATA +191 -0
  67. dfns_sdk-0.0.0.dev0.dist-info/RECORD +69 -0
  68. dfns_sdk-0.0.0.dev0.dist-info/WHEEL +4 -0
  69. dfns_sdk-0.0.0.dev0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,161 @@
1
+ """Client for the fee_sponsors domain."""
2
+
3
+ from typing import Any, Literal, Optional, TypedDict, Union
4
+
5
+ from ..._internal import HttpClient
6
+ from . import types as T
7
+
8
+
9
+ class FeeSponsorsClient:
10
+ """Client for fee_sponsors operations."""
11
+
12
+ def __init__(self, http_client: HttpClient):
13
+ self._http = http_client
14
+
15
+ def list_fee_sponsors(self, query: Optional[T.ListFeeSponsorsQuery] = None) -> T.ListFeeSponsorsResponse:
16
+ """
17
+ List Fee Sponsors.
18
+
19
+ Retrieves all Fee Sponsors configured in your organization.
20
+
21
+ Args:
22
+ query: Query parameters.
23
+
24
+ Returns:
25
+ T.ListFeeSponsorsResponse: The API response.
26
+ """
27
+ return self._http.request(
28
+ method="GET",
29
+ path="/fee-sponsors",
30
+ path_params={},
31
+ query_params=query,
32
+ body=None,
33
+ requires_signature=False,
34
+ )
35
+
36
+ def create_fee_sponsor(self, body: T.CreateFeeSponsorRequest) -> T.CreateFeeSponsorResponse:
37
+ """
38
+ Create Fee Sponsor.
39
+
40
+ Creates a new `FeeSponsor` associated with a sponsor wallet. Returns a new fee sponsor entity with the `id` to be used when making a transfer.
41
+
42
+ Args:
43
+ body: Request body.
44
+
45
+ Returns:
46
+ T.CreateFeeSponsorResponse: The API response.
47
+ """
48
+ return self._http.request(
49
+ method="POST",
50
+ path="/fee-sponsors",
51
+ path_params={},
52
+ query_params=None,
53
+ body=body,
54
+ requires_signature=True,
55
+ )
56
+
57
+ def get_fee_sponsor(self, fee_sponsor_id: str) -> T.GetFeeSponsorResponse:
58
+ """
59
+ Get Fee Sponsor.
60
+
61
+ Retrieve a Fee Sponsor information by ID.
62
+
63
+ Args:
64
+ fee_sponsor_id: Which Fee Sponsor you wish to retrieve.
65
+
66
+ Returns:
67
+ T.GetFeeSponsorResponse: The API response.
68
+ """
69
+ return self._http.request(
70
+ method="GET",
71
+ path="/fee-sponsors/{feeSponsorId}",
72
+ path_params={"feeSponsorId": fee_sponsor_id},
73
+ query_params=None,
74
+ body=None,
75
+ requires_signature=False,
76
+ )
77
+
78
+ def delete_fee_sponsor(self, fee_sponsor_id: str) -> T.DeleteFeeSponsorResponse:
79
+ """
80
+ Delete Fee Sponsor.
81
+
82
+ Delete a Fee Sponsor. This action is irreversible. The fee sponsor won't be able to be used anymore when making a transfer.
83
+
84
+ Args:
85
+ fee_sponsor_id: Which Fee Sponsor you wish to delete.
86
+
87
+ Returns:
88
+ T.DeleteFeeSponsorResponse: The API response.
89
+ """
90
+ return self._http.request(
91
+ method="DELETE",
92
+ path="/fee-sponsors/{feeSponsorId}",
93
+ path_params={"feeSponsorId": fee_sponsor_id},
94
+ query_params=None,
95
+ body=None,
96
+ requires_signature=True,
97
+ )
98
+
99
+ def deactivate_fee_sponsor(self, fee_sponsor_id: str) -> T.DeactivateFeeSponsorResponse:
100
+ """
101
+ Deactivate Fee Sponsor.
102
+
103
+ Deactivate a Fee Sponsor: The fee sponsor won't be able to be used anymore when making a transfer.
104
+
105
+ Args:
106
+ fee_sponsor_id: Which Fee Sponsor you wish to deactivate.
107
+
108
+ Returns:
109
+ T.DeactivateFeeSponsorResponse: The API response.
110
+ """
111
+ return self._http.request(
112
+ method="PUT",
113
+ path="/fee-sponsors/{feeSponsorId}/deactivate",
114
+ path_params={"feeSponsorId": fee_sponsor_id},
115
+ query_params=None,
116
+ body=None,
117
+ requires_signature=True,
118
+ )
119
+
120
+ def activate_fee_sponsor(self, fee_sponsor_id: str) -> T.ActivateFeeSponsorResponse:
121
+ """
122
+ Activate Fee Sponsor.
123
+
124
+ Activate a Fee Sponsor: The fee sponsor can be used when making a transfer.
125
+
126
+ Args:
127
+ fee_sponsor_id: Which Fee Sponsor you wish to activate.
128
+
129
+ Returns:
130
+ T.ActivateFeeSponsorResponse: The API response.
131
+ """
132
+ return self._http.request(
133
+ method="PUT",
134
+ path="/fee-sponsors/{feeSponsorId}/activate",
135
+ path_params={"feeSponsorId": fee_sponsor_id},
136
+ query_params=None,
137
+ body=None,
138
+ requires_signature=True,
139
+ )
140
+
141
+ def list_sponsored_fees(self, fee_sponsor_id: str, query: Optional[T.ListSponsoredFeesQuery] = None) -> T.ListSponsoredFeesResponse:
142
+ """
143
+ List Sponsored Fees.
144
+
145
+ Retrieves all fees paid by the specific Fee Sponsor.
146
+
147
+ Args:
148
+ fee_sponsor_id: Fee Sponsor to retrieve the fees from.
149
+ query: Query parameters.
150
+
151
+ Returns:
152
+ T.ListSponsoredFeesResponse: The API response.
153
+ """
154
+ return self._http.request(
155
+ method="GET",
156
+ path="/fee-sponsors/{feeSponsorId}/fees",
157
+ path_params={"feeSponsorId": fee_sponsor_id},
158
+ query_params=query,
159
+ body=None,
160
+ requires_signature=False,
161
+ )
@@ -0,0 +1,287 @@
1
+ """Delegated client for the fee_sponsors domain."""
2
+
3
+ import json
4
+ from typing import Any, Literal, Optional, TypedDict, Union
5
+
6
+ from ..._internal import HttpClient
7
+ from ...base_auth_api import (
8
+ BaseAuthApi,
9
+ SignUserActionChallengeRequest,
10
+ UserActionChallengeResponse,
11
+ )
12
+ from . import types as T
13
+
14
+
15
+ class DelegatedFeeSponsorsClient:
16
+ """
17
+ Delegated client for fee_sponsors operations.
18
+
19
+ This client separates user action signing into _init() and _complete() method pairs,
20
+ allowing external systems to handle the signing process.
21
+ """
22
+
23
+ def __init__(self, http_client: HttpClient):
24
+ self._http = http_client
25
+
26
+ def list_fee_sponsors(self, query: Optional[T.ListFeeSponsorsQuery] = None) -> T.ListFeeSponsorsResponse:
27
+ """
28
+ List Fee Sponsors.
29
+
30
+ Retrieves all Fee Sponsors configured in your organization.
31
+
32
+ Args:
33
+ query: Query parameters.
34
+
35
+ Returns:
36
+ T.ListFeeSponsorsResponse: The API response.
37
+ """
38
+ return self._http.request(
39
+ method="GET",
40
+ path="/fee-sponsors",
41
+ path_params={},
42
+ query_params=query,
43
+ body=None,
44
+ requires_signature=False,
45
+ )
46
+
47
+ def create_fee_sponsor_init(self, body: T.CreateFeeSponsorRequest) -> UserActionChallengeResponse:
48
+ """
49
+ Initialize Create Fee Sponsor.
50
+
51
+ Creates a user action challenge for external signing.
52
+
53
+ Args:
54
+ body: Request body.
55
+
56
+ Returns:
57
+ UserActionChallengeResponse: The challenge to sign externally.
58
+ """
59
+ path = "/fee-sponsors"
60
+ payload = json.dumps(body, separators=(",", ":")) if body else ""
61
+
62
+ return BaseAuthApi.create_user_action_challenge(
63
+ self._http,
64
+ user_action_http_method="POST",
65
+ user_action_http_path=path,
66
+ user_action_payload=payload,
67
+ )
68
+
69
+ def create_fee_sponsor_complete(self, body: T.CreateFeeSponsorRequest, signed_challenge: SignUserActionChallengeRequest) -> T.CreateFeeSponsorResponse:
70
+ """
71
+ Complete Create Fee Sponsor.
72
+
73
+ Submits the signed challenge and makes the API request.
74
+
75
+ Args:
76
+ body: Request body.
77
+ signed_challenge: The signed challenge from external signing.
78
+
79
+ Returns:
80
+ T.CreateFeeSponsorResponse: The API response.
81
+ """
82
+ user_action_result = BaseAuthApi.sign_user_action_challenge(
83
+ self._http, signed_challenge
84
+ )
85
+ user_action_token = user_action_result["userAction"]
86
+
87
+ return self._http.request_with_user_action(
88
+ method="POST",
89
+ path="/fee-sponsors",
90
+ path_params={},
91
+ query_params=None,
92
+ body=body,
93
+ user_action=user_action_token,
94
+ )
95
+
96
+ def get_fee_sponsor(self, fee_sponsor_id: str) -> T.GetFeeSponsorResponse:
97
+ """
98
+ Get Fee Sponsor.
99
+
100
+ Retrieve a Fee Sponsor information by ID.
101
+
102
+ Args:
103
+ fee_sponsor_id: Which Fee Sponsor you wish to retrieve.
104
+
105
+ Returns:
106
+ T.GetFeeSponsorResponse: The API response.
107
+ """
108
+ return self._http.request(
109
+ method="GET",
110
+ path="/fee-sponsors/{feeSponsorId}",
111
+ path_params={"feeSponsorId": fee_sponsor_id},
112
+ query_params=None,
113
+ body=None,
114
+ requires_signature=False,
115
+ )
116
+
117
+ def delete_fee_sponsor_init(self, fee_sponsor_id: str) -> UserActionChallengeResponse:
118
+ """
119
+ Initialize Delete Fee Sponsor.
120
+
121
+ Creates a user action challenge for external signing.
122
+
123
+ Args:
124
+ fee_sponsor_id: Which Fee Sponsor you wish to delete.
125
+
126
+ Returns:
127
+ UserActionChallengeResponse: The challenge to sign externally.
128
+ """
129
+ path = "/fee-sponsors/{feeSponsorId}"
130
+ path = path.replace("{feeSponsorId}", str(fee_sponsor_id))
131
+ payload = ""
132
+
133
+ return BaseAuthApi.create_user_action_challenge(
134
+ self._http,
135
+ user_action_http_method="DELETE",
136
+ user_action_http_path=path,
137
+ user_action_payload=payload,
138
+ )
139
+
140
+ def delete_fee_sponsor_complete(self, fee_sponsor_id: str, signed_challenge: SignUserActionChallengeRequest) -> T.DeleteFeeSponsorResponse:
141
+ """
142
+ Complete Delete Fee Sponsor.
143
+
144
+ Submits the signed challenge and makes the API request.
145
+
146
+ Args:
147
+ fee_sponsor_id: Which Fee Sponsor you wish to delete.
148
+ signed_challenge: The signed challenge from external signing.
149
+
150
+ Returns:
151
+ T.DeleteFeeSponsorResponse: The API response.
152
+ """
153
+ user_action_result = BaseAuthApi.sign_user_action_challenge(
154
+ self._http, signed_challenge
155
+ )
156
+ user_action_token = user_action_result["userAction"]
157
+
158
+ return self._http.request_with_user_action(
159
+ method="DELETE",
160
+ path="/fee-sponsors/{feeSponsorId}",
161
+ path_params={"feeSponsorId": fee_sponsor_id},
162
+ query_params=None,
163
+ body=None,
164
+ user_action=user_action_token,
165
+ )
166
+
167
+ def deactivate_fee_sponsor_init(self, fee_sponsor_id: str) -> UserActionChallengeResponse:
168
+ """
169
+ Initialize Deactivate Fee Sponsor.
170
+
171
+ Creates a user action challenge for external signing.
172
+
173
+ Args:
174
+ fee_sponsor_id: Which Fee Sponsor you wish to deactivate.
175
+
176
+ Returns:
177
+ UserActionChallengeResponse: The challenge to sign externally.
178
+ """
179
+ path = "/fee-sponsors/{feeSponsorId}/deactivate"
180
+ path = path.replace("{feeSponsorId}", str(fee_sponsor_id))
181
+ payload = ""
182
+
183
+ return BaseAuthApi.create_user_action_challenge(
184
+ self._http,
185
+ user_action_http_method="PUT",
186
+ user_action_http_path=path,
187
+ user_action_payload=payload,
188
+ )
189
+
190
+ def deactivate_fee_sponsor_complete(self, fee_sponsor_id: str, signed_challenge: SignUserActionChallengeRequest) -> T.DeactivateFeeSponsorResponse:
191
+ """
192
+ Complete Deactivate Fee Sponsor.
193
+
194
+ Submits the signed challenge and makes the API request.
195
+
196
+ Args:
197
+ fee_sponsor_id: Which Fee Sponsor you wish to deactivate.
198
+ signed_challenge: The signed challenge from external signing.
199
+
200
+ Returns:
201
+ T.DeactivateFeeSponsorResponse: The API response.
202
+ """
203
+ user_action_result = BaseAuthApi.sign_user_action_challenge(
204
+ self._http, signed_challenge
205
+ )
206
+ user_action_token = user_action_result["userAction"]
207
+
208
+ return self._http.request_with_user_action(
209
+ method="PUT",
210
+ path="/fee-sponsors/{feeSponsorId}/deactivate",
211
+ path_params={"feeSponsorId": fee_sponsor_id},
212
+ query_params=None,
213
+ body=None,
214
+ user_action=user_action_token,
215
+ )
216
+
217
+ def activate_fee_sponsor_init(self, fee_sponsor_id: str) -> UserActionChallengeResponse:
218
+ """
219
+ Initialize Activate Fee Sponsor.
220
+
221
+ Creates a user action challenge for external signing.
222
+
223
+ Args:
224
+ fee_sponsor_id: Which Fee Sponsor you wish to activate.
225
+
226
+ Returns:
227
+ UserActionChallengeResponse: The challenge to sign externally.
228
+ """
229
+ path = "/fee-sponsors/{feeSponsorId}/activate"
230
+ path = path.replace("{feeSponsorId}", str(fee_sponsor_id))
231
+ payload = ""
232
+
233
+ return BaseAuthApi.create_user_action_challenge(
234
+ self._http,
235
+ user_action_http_method="PUT",
236
+ user_action_http_path=path,
237
+ user_action_payload=payload,
238
+ )
239
+
240
+ def activate_fee_sponsor_complete(self, fee_sponsor_id: str, signed_challenge: SignUserActionChallengeRequest) -> T.ActivateFeeSponsorResponse:
241
+ """
242
+ Complete Activate Fee Sponsor.
243
+
244
+ Submits the signed challenge and makes the API request.
245
+
246
+ Args:
247
+ fee_sponsor_id: Which Fee Sponsor you wish to activate.
248
+ signed_challenge: The signed challenge from external signing.
249
+
250
+ Returns:
251
+ T.ActivateFeeSponsorResponse: The API response.
252
+ """
253
+ user_action_result = BaseAuthApi.sign_user_action_challenge(
254
+ self._http, signed_challenge
255
+ )
256
+ user_action_token = user_action_result["userAction"]
257
+
258
+ return self._http.request_with_user_action(
259
+ method="PUT",
260
+ path="/fee-sponsors/{feeSponsorId}/activate",
261
+ path_params={"feeSponsorId": fee_sponsor_id},
262
+ query_params=None,
263
+ body=None,
264
+ user_action=user_action_token,
265
+ )
266
+
267
+ def list_sponsored_fees(self, fee_sponsor_id: str, query: Optional[T.ListSponsoredFeesQuery] = None) -> T.ListSponsoredFeesResponse:
268
+ """
269
+ List Sponsored Fees.
270
+
271
+ Retrieves all fees paid by the specific Fee Sponsor.
272
+
273
+ Args:
274
+ fee_sponsor_id: Fee Sponsor to retrieve the fees from.
275
+ query: Query parameters.
276
+
277
+ Returns:
278
+ T.ListSponsoredFeesResponse: The API response.
279
+ """
280
+ return self._http.request(
281
+ method="GET",
282
+ path="/fee-sponsors/{feeSponsorId}/fees",
283
+ path_params={"feeSponsorId": fee_sponsor_id},
284
+ query_params=query,
285
+ body=None,
286
+ requires_signature=False,
287
+ )
@@ -0,0 +1,89 @@
1
+ """Types for the fee_sponsors domain."""
2
+
3
+ from typing import Any, Literal, NotRequired, Optional, TypedDict, Union
4
+
5
+ class ListFeeSponsorsResponse(TypedDict, total=False):
6
+ """listFeeSponsors response."""
7
+
8
+ items: list[TypedDict]
9
+ next_page_token: NotRequired[str]
10
+
11
+ class ListFeeSponsorsQuery(TypedDict, total=False):
12
+ """listFeeSponsors query parameters."""
13
+
14
+ limit: NotRequired[str]
15
+ pagination_token: NotRequired[str]
16
+
17
+ class CreateFeeSponsorRequest(TypedDict, total=False):
18
+ """createFeeSponsor request body."""
19
+
20
+ name: NotRequired[str]
21
+ wallet_id: str
22
+ allow_end_user: NotRequired[bool]
23
+
24
+ class CreateFeeSponsorResponse(TypedDict, total=False):
25
+ """createFeeSponsor response."""
26
+
27
+ id: str
28
+ name: NotRequired[str]
29
+ wallet_id: str
30
+ network: TypedDict
31
+ status: Literal["Active", "Deactivated", "Archived"]
32
+ date_created: str
33
+ allow_end_user: NotRequired[bool]
34
+
35
+ class GetFeeSponsorResponse(TypedDict, total=False):
36
+ """getFeeSponsor response."""
37
+
38
+ id: str
39
+ name: NotRequired[str]
40
+ wallet_id: str
41
+ network: TypedDict
42
+ status: Literal["Active", "Deactivated", "Archived"]
43
+ date_created: str
44
+ allow_end_user: NotRequired[bool]
45
+
46
+ class DeleteFeeSponsorResponse(TypedDict, total=False):
47
+ """deleteFeeSponsor response."""
48
+
49
+ id: str
50
+ name: NotRequired[str]
51
+ wallet_id: str
52
+ network: TypedDict
53
+ status: Literal["Active", "Deactivated", "Archived"]
54
+ date_created: str
55
+ allow_end_user: NotRequired[bool]
56
+
57
+ class DeactivateFeeSponsorResponse(TypedDict, total=False):
58
+ """deactivateFeeSponsor response."""
59
+
60
+ id: str
61
+ name: NotRequired[str]
62
+ wallet_id: str
63
+ network: TypedDict
64
+ status: Literal["Active", "Deactivated", "Archived"]
65
+ date_created: str
66
+ allow_end_user: NotRequired[bool]
67
+
68
+ class ActivateFeeSponsorResponse(TypedDict, total=False):
69
+ """activateFeeSponsor response."""
70
+
71
+ id: str
72
+ name: NotRequired[str]
73
+ wallet_id: str
74
+ network: TypedDict
75
+ status: Literal["Active", "Deactivated", "Archived"]
76
+ date_created: str
77
+ allow_end_user: NotRequired[bool]
78
+
79
+ class ListSponsoredFeesResponse(TypedDict, total=False):
80
+ """listSponsoredFees response."""
81
+
82
+ items: list[TypedDict]
83
+ next_page_token: NotRequired[str]
84
+
85
+ class ListSponsoredFeesQuery(TypedDict, total=False):
86
+ """listSponsoredFees query parameters."""
87
+
88
+ limit: NotRequired[str]
89
+ pagination_token: NotRequired[str]
@@ -0,0 +1,7 @@
1
+ """Keys domain module."""
2
+
3
+ from .client import KeysClient
4
+ from .delegated_client import DelegatedKeysClient
5
+ from . import types
6
+
7
+ __all__ = ["KeysClient", "DelegatedKeysClient", "types"]