forge-dashboard-sdk 0.1.2__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 (110) hide show
  1. forge_dashboard/__init__.py +23 -0
  2. forge_dashboard/_generated/__init__.py +8 -0
  3. forge_dashboard/_generated/api/__init__.py +1 -0
  4. forge_dashboard/_generated/api/admin/__init__.py +1 -0
  5. forge_dashboard/_generated/api/admin/delete_user.py +212 -0
  6. forge_dashboard/_generated/api/admin/list_users.py +182 -0
  7. forge_dashboard/_generated/api/admin/revoke_user.py +220 -0
  8. forge_dashboard/_generated/api/auth/__init__.py +1 -0
  9. forge_dashboard/_generated/api/auth/begin_add_credential.py +178 -0
  10. forge_dashboard/_generated/api/auth/begin_login.py +186 -0
  11. forge_dashboard/_generated/api/auth/begin_registration.py +186 -0
  12. forge_dashboard/_generated/api/auth/delete_credential.py +198 -0
  13. forge_dashboard/_generated/api/auth/finish_add_credential.py +233 -0
  14. forge_dashboard/_generated/api/auth/finish_login.py +226 -0
  15. forge_dashboard/_generated/api/auth/finish_registration.py +226 -0
  16. forge_dashboard/_generated/api/auth/get_session.py +158 -0
  17. forge_dashboard/_generated/api/auth/list_credentials.py +175 -0
  18. forge_dashboard/_generated/api/auth/logout.py +104 -0
  19. forge_dashboard/_generated/api/dashboard/__init__.py +1 -0
  20. forge_dashboard/_generated/api/dashboard/disable_auto_update_branch.py +205 -0
  21. forge_dashboard/_generated/api/dashboard/enable_auto_update_branch.py +217 -0
  22. forge_dashboard/_generated/api/dashboard/get_dashboard.py +242 -0
  23. forge_dashboard/_generated/api/dashboard/ignore_repo.py +217 -0
  24. forge_dashboard/_generated/api/dashboard/refresh_dashboard.py +213 -0
  25. forge_dashboard/_generated/api/dashboard/stream_dashboard.py +221 -0
  26. forge_dashboard/_generated/api/dashboard/unignore_repo.py +201 -0
  27. forge_dashboard/_generated/api/health/__init__.py +1 -0
  28. forge_dashboard/_generated/api/health/get_version.py +174 -0
  29. forge_dashboard/_generated/api/health/health.py +166 -0
  30. forge_dashboard/_generated/api/pull_requests/__init__.py +1 -0
  31. forge_dashboard/_generated/api/pull_requests/get_pull_request_checks.py +302 -0
  32. forge_dashboard/_generated/api/pull_requests/merge_pull_request.py +252 -0
  33. forge_dashboard/_generated/api/pull_requests/post_pull_request_dependabot_action.py +260 -0
  34. forge_dashboard/_generated/api/pull_requests/post_pull_request_renovate_rebase.py +249 -0
  35. forge_dashboard/_generated/api/pull_requests/update_pull_request_branch.py +256 -0
  36. forge_dashboard/_generated/api/settings/__init__.py +1 -0
  37. forge_dashboard/_generated/api/settings/get_bot_pr_updates_setting.py +190 -0
  38. forge_dashboard/_generated/api/settings/get_filter_state.py +186 -0
  39. forge_dashboard/_generated/api/settings/get_settings.py +174 -0
  40. forge_dashboard/_generated/api/settings/get_theme.py +182 -0
  41. forge_dashboard/_generated/api/settings/put_settings.py +237 -0
  42. forge_dashboard/_generated/api/settings/set_filter_state.py +261 -0
  43. forge_dashboard/_generated/api/settings/set_theme.py +229 -0
  44. forge_dashboard/_generated/api/sharing/__init__.py +1 -0
  45. forge_dashboard/_generated/api/sharing/get_sharing.py +174 -0
  46. forge_dashboard/_generated/api/sharing/share_with.py +209 -0
  47. forge_dashboard/_generated/api/sharing/unshare_with.py +183 -0
  48. forge_dashboard/_generated/api/tokens/__init__.py +1 -0
  49. forge_dashboard/_generated/api/tokens/create_api_token.py +193 -0
  50. forge_dashboard/_generated/api/tokens/delete_api_token.py +199 -0
  51. forge_dashboard/_generated/api/tokens/list_api_tokens.py +171 -0
  52. forge_dashboard/_generated/api/webhooks/__init__.py +1 -0
  53. forge_dashboard/_generated/api/webhooks/ensure_webhook.py +265 -0
  54. forge_dashboard/_generated/api/webhooks/receive_forgejo_webhook.py +238 -0
  55. forge_dashboard/_generated/api/webhooks/receive_git_hub_webhook.py +238 -0
  56. forge_dashboard/_generated/client.py +271 -0
  57. forge_dashboard/_generated/errors.py +14 -0
  58. forge_dashboard/_generated/models/__init__.py +91 -0
  59. forge_dashboard/_generated/models/admin_user.py +105 -0
  60. forge_dashboard/_generated/models/api_token.py +134 -0
  61. forge_dashboard/_generated/models/api_token_create_request.py +93 -0
  62. forge_dashboard/_generated/models/api_token_create_response.py +120 -0
  63. forge_dashboard/_generated/models/bot_pr_updates_response.py +77 -0
  64. forge_dashboard/_generated/models/check.py +99 -0
  65. forge_dashboard/_generated/models/check_state.py +13 -0
  66. forge_dashboard/_generated/models/ci_status.py +10 -0
  67. forge_dashboard/_generated/models/credential.py +101 -0
  68. forge_dashboard/_generated/models/dashboard.py +178 -0
  69. forge_dashboard/_generated/models/error.py +76 -0
  70. forge_dashboard/_generated/models/filter_state.py +74 -0
  71. forge_dashboard/_generated/models/forge.py +8 -0
  72. forge_dashboard/_generated/models/forge_error_kind.py +12 -0
  73. forge_dashboard/_generated/models/forge_health.py +181 -0
  74. forge_dashboard/_generated/models/health.py +79 -0
  75. forge_dashboard/_generated/models/issue.py +169 -0
  76. forge_dashboard/_generated/models/label.py +85 -0
  77. forge_dashboard/_generated/models/login_begin_request.py +76 -0
  78. forge_dashboard/_generated/models/merge_status.py +10 -0
  79. forge_dashboard/_generated/models/pull_request.py +236 -0
  80. forge_dashboard/_generated/models/pull_request_action_request.py +97 -0
  81. forge_dashboard/_generated/models/pull_request_checks_response.py +94 -0
  82. forge_dashboard/_generated/models/pull_request_dependabot_action_request.py +110 -0
  83. forge_dashboard/_generated/models/pull_request_dependabot_action_request_action.py +8 -0
  84. forge_dashboard/_generated/models/rate_limit.py +111 -0
  85. forge_dashboard/_generated/models/receive_forgejo_webhook_body.py +66 -0
  86. forge_dashboard/_generated/models/receive_git_hub_webhook_body.py +66 -0
  87. forge_dashboard/_generated/models/register_begin_request.py +84 -0
  88. forge_dashboard/_generated/models/repo_status.py +154 -0
  89. forge_dashboard/_generated/models/session_user.py +92 -0
  90. forge_dashboard/_generated/models/settings_request.py +138 -0
  91. forge_dashboard/_generated/models/settings_response.py +176 -0
  92. forge_dashboard/_generated/models/settings_response_theme.py +9 -0
  93. forge_dashboard/_generated/models/shared_user.py +84 -0
  94. forge_dashboard/_generated/models/sharing_response.py +115 -0
  95. forge_dashboard/_generated/models/theme_request.py +81 -0
  96. forge_dashboard/_generated/models/theme_request_theme.py +9 -0
  97. forge_dashboard/_generated/models/theme_response.py +81 -0
  98. forge_dashboard/_generated/models/theme_response_theme.py +9 -0
  99. forge_dashboard/_generated/models/version.py +77 -0
  100. forge_dashboard/_generated/models/web_authn_ceremony_options.py +71 -0
  101. forge_dashboard/_generated/models/webhook_ensure_request.py +89 -0
  102. forge_dashboard/_generated/types.py +53 -0
  103. forge_dashboard/client.py +158 -0
  104. forge_dashboard/errors.py +86 -0
  105. forge_dashboard/py.typed +0 -0
  106. forge_dashboard/retry.py +178 -0
  107. forge_dashboard_sdk-0.1.2.dist-info/METADATA +143 -0
  108. forge_dashboard_sdk-0.1.2.dist-info/RECORD +110 -0
  109. forge_dashboard_sdk-0.1.2.dist-info/WHEEL +4 -0
  110. forge_dashboard_sdk-0.1.2.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,23 @@
1
+ """A Python client for forge-dashboard's REST API
2
+ (github.com/alrayyes/forge-dashboard), generated from its OpenAPI spec
3
+ with openapi-python-client.
4
+
5
+ Every operation except ``get_version`` and the two webhook receivers
6
+ requires an authenticated session -- see :class:`ForgeDashboardClient` for
7
+ the bearer-token auth story.
8
+ """
9
+
10
+ from .client import API_TOKEN_ENV_VAR, ForgeDashboardClient
11
+ from .errors import APIError, decode_error
12
+ from .retry import DEFAULT_RETRY_CONFIG, AsyncRetryTransport, RetryConfig, RetryTransport
13
+
14
+ __all__ = [
15
+ "API_TOKEN_ENV_VAR",
16
+ "DEFAULT_RETRY_CONFIG",
17
+ "APIError",
18
+ "AsyncRetryTransport",
19
+ "ForgeDashboardClient",
20
+ "RetryConfig",
21
+ "RetryTransport",
22
+ "decode_error",
23
+ ]
@@ -0,0 +1,8 @@
1
+
2
+ """ A client library for accessing forge-dashboard """
3
+ from .client import AuthenticatedClient, Client
4
+
5
+ __all__ = (
6
+ "AuthenticatedClient",
7
+ "Client",
8
+ )
@@ -0,0 +1 @@
1
+ """ Contains methods for accessing the API """
@@ -0,0 +1 @@
1
+ """ Contains endpoint functions for accessing the API """
@@ -0,0 +1,212 @@
1
+ from http import HTTPStatus
2
+ from typing import Any, cast
3
+ from urllib.parse import quote
4
+
5
+ import httpx
6
+
7
+ from ...client import AuthenticatedClient, Client
8
+ from ...types import Response, UNSET
9
+ from ... import errors
10
+
11
+ from ...models.error import Error
12
+ from typing import cast
13
+
14
+
15
+
16
+ def _get_kwargs(
17
+ username: str,
18
+
19
+ ) -> dict[str, Any]:
20
+
21
+
22
+
23
+
24
+
25
+
26
+ _kwargs: dict[str, Any] = {
27
+ "method": "delete",
28
+ "url": "/api/admin/users/{username}".format(username=quote(str(username), safe=""),),
29
+ }
30
+
31
+
32
+ return _kwargs
33
+
34
+
35
+
36
+ def _parse_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Any | Error | None:
37
+ if response.status_code == 204:
38
+ response_204 = cast(Any, None)
39
+ return response_204
40
+
41
+ if response.status_code == 400:
42
+ response_400 = Error.from_dict(response.json())
43
+
44
+
45
+
46
+ return response_400
47
+
48
+ if response.status_code == 401:
49
+ response_401 = Error.from_dict(response.json())
50
+
51
+
52
+
53
+ return response_401
54
+
55
+ if response.status_code == 403:
56
+ response_403 = Error.from_dict(response.json())
57
+
58
+
59
+
60
+ return response_403
61
+
62
+ if response.status_code == 404:
63
+ response_404 = Error.from_dict(response.json())
64
+
65
+
66
+
67
+ return response_404
68
+
69
+ if client.raise_on_unexpected_status:
70
+ raise errors.UnexpectedStatus(response.status_code, response.content)
71
+ else:
72
+ return None
73
+
74
+
75
+ def _build_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Response[Any | Error]:
76
+ return Response(
77
+ status_code=HTTPStatus(response.status_code),
78
+ content=response.content,
79
+ headers=response.headers,
80
+ parsed=_parse_response(client=client, response=response),
81
+ )
82
+
83
+
84
+ def sync_detailed(
85
+ username: str,
86
+ *,
87
+ client: AuthenticatedClient | Client,
88
+
89
+ ) -> Response[Any | Error]:
90
+ """ Remove a user outright
91
+
92
+ Deletes the account, every session, every registered passkey, and
93
+ every saved forge credential — irreversible. Their username
94
+ becomes available for a fresh registration.
95
+
96
+ Args:
97
+ username (str):
98
+
99
+ Raises:
100
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
101
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
102
+
103
+ Returns:
104
+ Response[Any | Error]
105
+ """
106
+
107
+
108
+ kwargs = _get_kwargs(
109
+ username=username,
110
+
111
+ )
112
+
113
+ response = client.get_httpx_client().request(
114
+ **kwargs,
115
+ )
116
+
117
+ return _build_response(client=client, response=response)
118
+
119
+ def sync(
120
+ username: str,
121
+ *,
122
+ client: AuthenticatedClient | Client,
123
+
124
+ ) -> Any | Error | None:
125
+ """ Remove a user outright
126
+
127
+ Deletes the account, every session, every registered passkey, and
128
+ every saved forge credential — irreversible. Their username
129
+ becomes available for a fresh registration.
130
+
131
+ Args:
132
+ username (str):
133
+
134
+ Raises:
135
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
136
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
137
+
138
+ Returns:
139
+ Any | Error
140
+ """
141
+
142
+
143
+ return sync_detailed(
144
+ username=username,
145
+ client=client,
146
+
147
+ ).parsed
148
+
149
+ async def asyncio_detailed(
150
+ username: str,
151
+ *,
152
+ client: AuthenticatedClient | Client,
153
+
154
+ ) -> Response[Any | Error]:
155
+ """ Remove a user outright
156
+
157
+ Deletes the account, every session, every registered passkey, and
158
+ every saved forge credential — irreversible. Their username
159
+ becomes available for a fresh registration.
160
+
161
+ Args:
162
+ username (str):
163
+
164
+ Raises:
165
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
166
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
167
+
168
+ Returns:
169
+ Response[Any | Error]
170
+ """
171
+
172
+
173
+ kwargs = _get_kwargs(
174
+ username=username,
175
+
176
+ )
177
+
178
+ response = await client.get_async_httpx_client().request(
179
+ **kwargs
180
+ )
181
+
182
+ return _build_response(client=client, response=response)
183
+
184
+ async def asyncio(
185
+ username: str,
186
+ *,
187
+ client: AuthenticatedClient | Client,
188
+
189
+ ) -> Any | Error | None:
190
+ """ Remove a user outright
191
+
192
+ Deletes the account, every session, every registered passkey, and
193
+ every saved forge credential — irreversible. Their username
194
+ becomes available for a fresh registration.
195
+
196
+ Args:
197
+ username (str):
198
+
199
+ Raises:
200
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
201
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
202
+
203
+ Returns:
204
+ Any | Error
205
+ """
206
+
207
+
208
+ return (await asyncio_detailed(
209
+ username=username,
210
+ client=client,
211
+
212
+ )).parsed
@@ -0,0 +1,182 @@
1
+ from http import HTTPStatus
2
+ from typing import Any, cast
3
+ from urllib.parse import quote
4
+
5
+ import httpx
6
+
7
+ from ...client import AuthenticatedClient, Client
8
+ from ...types import Response, UNSET
9
+ from ... import errors
10
+
11
+ from ...models.admin_user import AdminUser
12
+ from ...models.error import Error
13
+ from typing import cast
14
+
15
+
16
+
17
+ def _get_kwargs(
18
+
19
+ ) -> dict[str, Any]:
20
+
21
+
22
+
23
+
24
+
25
+
26
+ _kwargs: dict[str, Any] = {
27
+ "method": "get",
28
+ "url": "/api/admin/users",
29
+ }
30
+
31
+
32
+ return _kwargs
33
+
34
+
35
+
36
+ def _parse_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Error | list[AdminUser] | None:
37
+ if response.status_code == 200:
38
+ response_200 = []
39
+ _response_200 = response.json()
40
+ for response_200_item_data in (_response_200):
41
+ response_200_item = AdminUser.from_dict(response_200_item_data)
42
+
43
+
44
+
45
+ response_200.append(response_200_item)
46
+
47
+ return response_200
48
+
49
+ if response.status_code == 401:
50
+ response_401 = Error.from_dict(response.json())
51
+
52
+
53
+
54
+ return response_401
55
+
56
+ if response.status_code == 403:
57
+ response_403 = Error.from_dict(response.json())
58
+
59
+
60
+
61
+ return response_403
62
+
63
+ if client.raise_on_unexpected_status:
64
+ raise errors.UnexpectedStatus(response.status_code, response.content)
65
+ else:
66
+ return None
67
+
68
+
69
+ def _build_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Response[Error | list[AdminUser]]:
70
+ return Response(
71
+ status_code=HTTPStatus(response.status_code),
72
+ content=response.content,
73
+ headers=response.headers,
74
+ parsed=_parse_response(client=client, response=response),
75
+ )
76
+
77
+
78
+ def sync_detailed(
79
+ *,
80
+ client: AuthenticatedClient | Client,
81
+
82
+ ) -> Response[Error | list[AdminUser]]:
83
+ """ List every registered user
84
+
85
+ Never includes a passkey or a forge credential — a username,
86
+ display name, admin flag and registration timestamp per user.
87
+
88
+ Raises:
89
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
90
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
91
+
92
+ Returns:
93
+ Response[Error | list[AdminUser]]
94
+ """
95
+
96
+
97
+ kwargs = _get_kwargs(
98
+
99
+ )
100
+
101
+ response = client.get_httpx_client().request(
102
+ **kwargs,
103
+ )
104
+
105
+ return _build_response(client=client, response=response)
106
+
107
+ def sync(
108
+ *,
109
+ client: AuthenticatedClient | Client,
110
+
111
+ ) -> Error | list[AdminUser] | None:
112
+ """ List every registered user
113
+
114
+ Never includes a passkey or a forge credential — a username,
115
+ display name, admin flag and registration timestamp per user.
116
+
117
+ Raises:
118
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
119
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
120
+
121
+ Returns:
122
+ Error | list[AdminUser]
123
+ """
124
+
125
+
126
+ return sync_detailed(
127
+ client=client,
128
+
129
+ ).parsed
130
+
131
+ async def asyncio_detailed(
132
+ *,
133
+ client: AuthenticatedClient | Client,
134
+
135
+ ) -> Response[Error | list[AdminUser]]:
136
+ """ List every registered user
137
+
138
+ Never includes a passkey or a forge credential — a username,
139
+ display name, admin flag and registration timestamp per user.
140
+
141
+ Raises:
142
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
143
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
144
+
145
+ Returns:
146
+ Response[Error | list[AdminUser]]
147
+ """
148
+
149
+
150
+ kwargs = _get_kwargs(
151
+
152
+ )
153
+
154
+ response = await client.get_async_httpx_client().request(
155
+ **kwargs
156
+ )
157
+
158
+ return _build_response(client=client, response=response)
159
+
160
+ async def asyncio(
161
+ *,
162
+ client: AuthenticatedClient | Client,
163
+
164
+ ) -> Error | list[AdminUser] | None:
165
+ """ List every registered user
166
+
167
+ Never includes a passkey or a forge credential — a username,
168
+ display name, admin flag and registration timestamp per user.
169
+
170
+ Raises:
171
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
172
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
173
+
174
+ Returns:
175
+ Error | list[AdminUser]
176
+ """
177
+
178
+
179
+ return (await asyncio_detailed(
180
+ client=client,
181
+
182
+ )).parsed
@@ -0,0 +1,220 @@
1
+ from http import HTTPStatus
2
+ from typing import Any, cast
3
+ from urllib.parse import quote
4
+
5
+ import httpx
6
+
7
+ from ...client import AuthenticatedClient, Client
8
+ from ...types import Response, UNSET
9
+ from ... import errors
10
+
11
+ from ...models.error import Error
12
+ from typing import cast
13
+
14
+
15
+
16
+ def _get_kwargs(
17
+ username: str,
18
+
19
+ ) -> dict[str, Any]:
20
+
21
+
22
+
23
+
24
+
25
+
26
+ _kwargs: dict[str, Any] = {
27
+ "method": "post",
28
+ "url": "/api/admin/users/{username}/revoke".format(username=quote(str(username), safe=""),),
29
+ }
30
+
31
+
32
+ return _kwargs
33
+
34
+
35
+
36
+ def _parse_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Any | Error | None:
37
+ if response.status_code == 204:
38
+ response_204 = cast(Any, None)
39
+ return response_204
40
+
41
+ if response.status_code == 400:
42
+ response_400 = Error.from_dict(response.json())
43
+
44
+
45
+
46
+ return response_400
47
+
48
+ if response.status_code == 401:
49
+ response_401 = Error.from_dict(response.json())
50
+
51
+
52
+
53
+ return response_401
54
+
55
+ if response.status_code == 403:
56
+ response_403 = Error.from_dict(response.json())
57
+
58
+
59
+
60
+ return response_403
61
+
62
+ if response.status_code == 404:
63
+ response_404 = Error.from_dict(response.json())
64
+
65
+
66
+
67
+ return response_404
68
+
69
+ if client.raise_on_unexpected_status:
70
+ raise errors.UnexpectedStatus(response.status_code, response.content)
71
+ else:
72
+ return None
73
+
74
+
75
+ def _build_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Response[Any | Error]:
76
+ return Response(
77
+ status_code=HTTPStatus(response.status_code),
78
+ content=response.content,
79
+ headers=response.headers,
80
+ parsed=_parse_response(client=client, response=response),
81
+ )
82
+
83
+
84
+ def sync_detailed(
85
+ username: str,
86
+ *,
87
+ client: AuthenticatedClient | Client,
88
+
89
+ ) -> Response[Any | Error]:
90
+ """ Revoke a user's passkeys and sessions
91
+
92
+ Deletes every session and every registered passkey for this user —
93
+ they're signed out everywhere immediately, and have to register a
94
+ new passkey from scratch to get back in. Their saved forge
95
+ credentials are untouched; use the delete endpoint to remove the
96
+ account itself.
97
+
98
+ Args:
99
+ username (str):
100
+
101
+ Raises:
102
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
103
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
104
+
105
+ Returns:
106
+ Response[Any | Error]
107
+ """
108
+
109
+
110
+ kwargs = _get_kwargs(
111
+ username=username,
112
+
113
+ )
114
+
115
+ response = client.get_httpx_client().request(
116
+ **kwargs,
117
+ )
118
+
119
+ return _build_response(client=client, response=response)
120
+
121
+ def sync(
122
+ username: str,
123
+ *,
124
+ client: AuthenticatedClient | Client,
125
+
126
+ ) -> Any | Error | None:
127
+ """ Revoke a user's passkeys and sessions
128
+
129
+ Deletes every session and every registered passkey for this user —
130
+ they're signed out everywhere immediately, and have to register a
131
+ new passkey from scratch to get back in. Their saved forge
132
+ credentials are untouched; use the delete endpoint to remove the
133
+ account itself.
134
+
135
+ Args:
136
+ username (str):
137
+
138
+ Raises:
139
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
140
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
141
+
142
+ Returns:
143
+ Any | Error
144
+ """
145
+
146
+
147
+ return sync_detailed(
148
+ username=username,
149
+ client=client,
150
+
151
+ ).parsed
152
+
153
+ async def asyncio_detailed(
154
+ username: str,
155
+ *,
156
+ client: AuthenticatedClient | Client,
157
+
158
+ ) -> Response[Any | Error]:
159
+ """ Revoke a user's passkeys and sessions
160
+
161
+ Deletes every session and every registered passkey for this user —
162
+ they're signed out everywhere immediately, and have to register a
163
+ new passkey from scratch to get back in. Their saved forge
164
+ credentials are untouched; use the delete endpoint to remove the
165
+ account itself.
166
+
167
+ Args:
168
+ username (str):
169
+
170
+ Raises:
171
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
172
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
173
+
174
+ Returns:
175
+ Response[Any | Error]
176
+ """
177
+
178
+
179
+ kwargs = _get_kwargs(
180
+ username=username,
181
+
182
+ )
183
+
184
+ response = await client.get_async_httpx_client().request(
185
+ **kwargs
186
+ )
187
+
188
+ return _build_response(client=client, response=response)
189
+
190
+ async def asyncio(
191
+ username: str,
192
+ *,
193
+ client: AuthenticatedClient | Client,
194
+
195
+ ) -> Any | Error | None:
196
+ """ Revoke a user's passkeys and sessions
197
+
198
+ Deletes every session and every registered passkey for this user —
199
+ they're signed out everywhere immediately, and have to register a
200
+ new passkey from scratch to get back in. Their saved forge
201
+ credentials are untouched; use the delete endpoint to remove the
202
+ account itself.
203
+
204
+ Args:
205
+ username (str):
206
+
207
+ Raises:
208
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
209
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
210
+
211
+ Returns:
212
+ Any | Error
213
+ """
214
+
215
+
216
+ return (await asyncio_detailed(
217
+ username=username,
218
+ client=client,
219
+
220
+ )).parsed
@@ -0,0 +1 @@
1
+ """ Contains endpoint functions for accessing the API """