@rebornteam/reborn-api 3.2.1 → 4.0.0

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 (113) hide show
  1. package/.openapi-generator/FILES +65 -4
  2. package/README.md +93 -8
  3. package/api.ts +3979 -537
  4. package/base.ts +1 -1
  5. package/common.ts +1 -1
  6. package/configuration.ts +1 -1
  7. package/dist/api.d.ts +2462 -386
  8. package/dist/api.js +2750 -361
  9. package/dist/base.d.ts +1 -1
  10. package/dist/base.js +1 -1
  11. package/dist/common.d.ts +1 -1
  12. package/dist/common.js +1 -1
  13. package/dist/configuration.d.ts +1 -1
  14. package/dist/configuration.js +1 -1
  15. package/dist/esm/api.d.ts +2462 -386
  16. package/dist/esm/api.js +2722 -353
  17. package/dist/esm/base.d.ts +1 -1
  18. package/dist/esm/base.js +1 -1
  19. package/dist/esm/common.d.ts +1 -1
  20. package/dist/esm/common.js +1 -1
  21. package/dist/esm/configuration.d.ts +1 -1
  22. package/dist/esm/configuration.js +1 -1
  23. package/dist/esm/index.d.ts +1 -1
  24. package/dist/esm/index.js +1 -1
  25. package/dist/index.d.ts +1 -1
  26. package/dist/index.js +1 -1
  27. package/docs/AdminAltAccount.md +27 -0
  28. package/docs/AdminAltExemption.md +31 -0
  29. package/docs/AdminApplyPunishmentResult.md +4 -4
  30. package/docs/AdminAsyncJob.md +47 -0
  31. package/docs/AdminAsyncJobStartResponse.md +21 -0
  32. package/docs/AdminAuditLogApi.md +141 -0
  33. package/docs/AdminAuditLogEntry.md +33 -0
  34. package/docs/AdminBulkRevokeRequest.md +25 -0
  35. package/docs/AdminBulkRevokeResponse.md +21 -0
  36. package/docs/AdminConnectionCheckResult.md +4 -0
  37. package/docs/AdminConnectionsApi.md +154 -39
  38. package/docs/AdminCreateAltExemptionRequest.md +23 -0
  39. package/docs/AdminCreatePlayerNoteRequest.md +21 -0
  40. package/docs/AdminDashboardConnectionResponse.md +4 -2
  41. package/docs/AdminJobsApi.md +175 -0
  42. package/docs/AdminPlayerDetailResponse.md +4 -4
  43. package/docs/AdminPlayerNote.md +31 -0
  44. package/docs/AdminPlayerPunishmentResponse.md +51 -0
  45. package/docs/AdminPlayerReport.md +39 -0
  46. package/docs/AdminPlayerSession.md +31 -0
  47. package/docs/AdminPlayerSessionStats.md +29 -0
  48. package/docs/AdminPlayerSummary.md +2 -4
  49. package/docs/AdminPlayersApi.md +936 -16
  50. package/docs/AdminPunishmentEvaluation.md +4 -8
  51. package/docs/AdminPunishmentsApi.md +78 -21
  52. package/docs/AdminReportTarget.md +23 -0
  53. package/docs/AdminReportsApi.md +123 -0
  54. package/docs/AdminResolveReportRequest.md +21 -0
  55. package/docs/AdminSetAggressiveModeImmunityRequest.md +21 -0
  56. package/docs/AdminTrustFactorBreakdown.md +61 -0
  57. package/docs/AdminTrustFactorHistoryEntry.md +23 -0
  58. package/docs/AdminTrustFactorImpact.md +23 -0
  59. package/docs/AdminUpdatePunishmentRequest.md +27 -0
  60. package/docs/ChatApi.md +4 -4
  61. package/docs/ConnectionApi.md +4 -4
  62. package/docs/ConnectionGetConnectionDetailsResponse.md +5 -1
  63. package/docs/ConnectionResult.md +1 -1
  64. package/docs/CreateReportRequest.md +27 -0
  65. package/docs/CreateReportResponse.md +23 -0
  66. package/docs/CursoredPageAdminAuditLogEntry.md +38 -0
  67. package/docs/CursoredPageable.md +30 -0
  68. package/docs/JobStatus.md +17 -0
  69. package/docs/PageAdminAltAccount.md +36 -0
  70. package/docs/PageAdminAltExemption.md +36 -0
  71. package/docs/PageAdminAsyncJob.md +36 -0
  72. package/docs/PageAdminAuditLogEntry.md +36 -0
  73. package/docs/PageAdminDashboardConnectionResponse.md +36 -0
  74. package/docs/PageAdminPlayerNote.md +36 -0
  75. package/docs/PageAdminPlayerPunishmentResponse.md +36 -0
  76. package/docs/PageAdminPlayerReport.md +36 -0
  77. package/docs/PageAdminPlayerSession.md +36 -0
  78. package/docs/PageAdminPlayerSummary.md +36 -0
  79. package/docs/PageAdminPunishmentListItem.md +36 -0
  80. package/docs/PagePunishmentGetPunishmentResponse.md +36 -0
  81. package/docs/Pageable.md +28 -0
  82. package/docs/PageableMode.md +12 -0
  83. package/docs/PlayerGetPlayerInformation.md +5 -3
  84. package/docs/PlayerSessionEndRequest.md +23 -0
  85. package/docs/PlayerSessionStartRequest.md +27 -0
  86. package/docs/PlayerSessionStartResponse.md +51 -0
  87. package/docs/PlayerSessionsApi.md +116 -0
  88. package/docs/PunishmentApi.md +22 -24
  89. package/docs/PunishmentSource.md +11 -0
  90. package/docs/PunishmentType.md +1 -0
  91. package/docs/ReportApi.md +64 -0
  92. package/docs/ReportCategory.md +17 -0
  93. package/docs/SliceAdminAltAccount.md +32 -0
  94. package/docs/SliceAdminAltExemption.md +32 -0
  95. package/docs/SliceAdminAsyncJob.md +32 -0
  96. package/docs/SliceAdminAuditLogEntry.md +32 -0
  97. package/docs/SliceAdminDashboardConnectionResponse.md +32 -0
  98. package/docs/SliceAdminPlayerNote.md +32 -0
  99. package/docs/SliceAdminPlayerPunishmentResponse.md +32 -0
  100. package/docs/SliceAdminPlayerReport.md +32 -0
  101. package/docs/SliceAdminPlayerSession.md +32 -0
  102. package/docs/SliceAdminPlayerSummary.md +32 -0
  103. package/docs/SliceAdminPunishmentListItem.md +32 -0
  104. package/docs/SlicePunishmentGetPunishmentResponse.md +32 -0
  105. package/docs/Sort.md +20 -0
  106. package/docs/SortOrder.md +26 -0
  107. package/docs/SortOrderDirection.md +10 -0
  108. package/index.ts +1 -1
  109. package/package.json +1 -1
  110. package/docs/AdminBackfillLocationResponse.md +0 -25
  111. package/docs/AdminPagedConnectionResponse.md +0 -29
  112. package/docs/AdminPagedPlayerResponse.md +0 -29
  113. package/docs/AdminPagedPunishmentResponse.md +0 -29
@@ -4,16 +4,18 @@ All URIs are relative to *https://api.smsh.sh*
4
4
 
5
5
  |Method | HTTP request | Description|
6
6
  |------------- | ------------- | -------------|
7
- |[**backfillLocation**](#backfilllocation) | **POST** /admin/connection/backfill-location | Backfill missing location data|
7
+ |[**backfillLocation**](#backfilllocation) | **POST** /admin/connection/backfill-location | Start a location backfill job|
8
8
  |[**createBypass**](#createbypass) | **POST** /admin/connection/bypass | Create connection bypass|
9
+ |[**getConnection**](#getconnection) | **GET** /admin/connection/{id} | Get connection detail|
10
+ |[**getConnectionPlayers**](#getconnectionplayers) | **GET** /admin/connection/{id}/players | List players who have used this connection|
9
11
  |[**listAllConnections**](#listallconnections) | **GET** /admin/connection | List all connections (paginated)|
10
12
  |[**listConnections**](#listconnections) | **GET** /admin/connection/recent | List recent connections|
11
13
  |[**recheckService**](#recheckservice) | **POST** /admin/connection/{connectionId}/recheck/{service} | Refresh a single VPN check|
12
14
 
13
15
  # **backfillLocation**
14
- > AdminBackfillLocationResponse backfillLocation()
16
+ > AdminAsyncJobStartResponse backfillLocation()
15
17
 
16
- Iterates every connection_check row where both city and country are NULL and re-runs that row\'s source VPN service to populate location data. Concurrency is capped to avoid overwhelming external providers. Synchronous returns once the run completes.
18
+ Submits an async job that iterates every connection_check row missing both city and country and re-runs its source VPN service to populate location data. Returns immediately with a job id poll GET /admin/job/{id} for progress and DELETE /admin/job/{id} to cancel. The final {@code Admin_BackfillLocationResponse} (processed/succeeded/failed counts) lands in the job\'s {@code result_payload} on COMPLETED.
17
19
 
18
20
  ### Example
19
21
 
@@ -35,7 +37,7 @@ This endpoint does not have any parameters.
35
37
 
36
38
  ### Return type
37
39
 
38
- **AdminBackfillLocationResponse**
40
+ **AdminAsyncJobStartResponse**
39
41
 
40
42
  ### Authorization
41
43
 
@@ -50,7 +52,7 @@ This endpoint does not have any parameters.
50
52
  ### HTTP response details
51
53
  | Status code | Description | Response headers |
52
54
  |-------------|-------------|------------------|
53
- |**200** | Backfill completed | - |
55
+ |**202** | Job accepted; poll /admin/job/{id} for progress | - |
54
56
  |**401** | Unauthorized - Authentication required | - |
55
57
  |**403** | Forbidden - Moderator role required | - |
56
58
 
@@ -111,8 +113,119 @@ const { status, data } = await apiInstance.createBypass(
111
113
 
112
114
  [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
113
115
 
116
+ # **getConnection**
117
+ > AdminDashboardConnectionResponse getConnection()
118
+
119
+ Single connection by id, enriched with VPN check results and bypass status — same shape as the dashboard list row.
120
+
121
+ ### Example
122
+
123
+ ```typescript
124
+ import {
125
+ AdminConnectionsApi,
126
+ Configuration
127
+ } from '@rebornteam/reborn-api';
128
+
129
+ const configuration = new Configuration();
130
+ const apiInstance = new AdminConnectionsApi(configuration);
131
+
132
+ let id: number; // (default to undefined)
133
+
134
+ const { status, data } = await apiInstance.getConnection(
135
+ id
136
+ );
137
+ ```
138
+
139
+ ### Parameters
140
+
141
+ |Name | Type | Description | Notes|
142
+ |------------- | ------------- | ------------- | -------------|
143
+ | **id** | [**number**] | | defaults to undefined|
144
+
145
+
146
+ ### Return type
147
+
148
+ **AdminDashboardConnectionResponse**
149
+
150
+ ### Authorization
151
+
152
+ [DiscordAuth](../README.md#DiscordAuth)
153
+
154
+ ### HTTP request headers
155
+
156
+ - **Content-Type**: Not defined
157
+ - **Accept**: application/json
158
+
159
+
160
+ ### HTTP response details
161
+ | Status code | Description | Response headers |
162
+ |-------------|-------------|------------------|
163
+ |**200** | Connection retrieved | - |
164
+ |**401** | Unauthorized | - |
165
+ |**403** | Forbidden - Moderator role required | - |
166
+ |**404** | Connection not found | - |
167
+
168
+ [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
169
+
170
+ # **getConnectionPlayers**
171
+ > PageAdminPlayerSummary getConnectionPlayers()
172
+
173
+ Paginated list of every player ever seen on this connection, with punishment scoring inline. Suitable for an infinite-scroll panel inside the connection detail modal.
174
+
175
+ ### Example
176
+
177
+ ```typescript
178
+ import {
179
+ AdminConnectionsApi,
180
+ Configuration,
181
+ Pageable
182
+ } from '@rebornteam/reborn-api';
183
+
184
+ const configuration = new Configuration();
185
+ const apiInstance = new AdminConnectionsApi(configuration);
186
+
187
+ let id: number; // (default to undefined)
188
+ let pageable: Pageable; // (default to undefined)
189
+
190
+ const { status, data } = await apiInstance.getConnectionPlayers(
191
+ id,
192
+ pageable
193
+ );
194
+ ```
195
+
196
+ ### Parameters
197
+
198
+ |Name | Type | Description | Notes|
199
+ |------------- | ------------- | ------------- | -------------|
200
+ | **id** | [**number**] | | defaults to undefined|
201
+ | **pageable** | **Pageable** | | defaults to undefined|
202
+
203
+
204
+ ### Return type
205
+
206
+ **PageAdminPlayerSummary**
207
+
208
+ ### Authorization
209
+
210
+ [DiscordAuth](../README.md#DiscordAuth)
211
+
212
+ ### HTTP request headers
213
+
214
+ - **Content-Type**: Not defined
215
+ - **Accept**: application/json
216
+
217
+
218
+ ### HTTP response details
219
+ | Status code | Description | Response headers |
220
+ |-------------|-------------|------------------|
221
+ |**200** | Player list retrieved | - |
222
+ |**401** | Unauthorized | - |
223
+ |**403** | Forbidden - Moderator role required | - |
224
+
225
+ [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
226
+
114
227
  # **listAllConnections**
115
- > AdminPagedConnectionResponse listAllConnections()
228
+ > PageAdminDashboardConnectionResponse listAllConnections()
116
229
 
117
230
  Returns a paginated list of all connections with a total count. Supports filtering by IP address, UUID, and VPN status.
118
231
 
@@ -121,24 +234,27 @@ Returns a paginated list of all connections with a total count. Supports filteri
121
234
  ```typescript
122
235
  import {
123
236
  AdminConnectionsApi,
124
- Configuration
237
+ Configuration,
238
+ Pageable
125
239
  } from '@rebornteam/reborn-api';
126
240
 
127
241
  const configuration = new Configuration();
128
242
  const apiInstance = new AdminConnectionsApi(configuration);
129
243
 
130
- let ipAddress: string; //Filter by IP address (optional) (default to undefined)
131
- let uuid: string; //Filter by player UUID (optional) (default to undefined)
132
- let isVpn: boolean; //Filter by VPN status (optional) (default to undefined)
133
- let page: number; //Page number (1-indexed) (optional) (default to 1)
134
- let limit: number; //Page size (optional) (default to 50)
244
+ let pageable: Pageable; // (default to undefined)
245
+ let createdAfter: number; // (optional) (default to undefined)
246
+ let createdBefore: number; // (optional) (default to undefined)
247
+ let ipAddress: string; // (optional) (default to undefined)
248
+ let uuid: string; // (optional) (default to undefined)
249
+ let isVpn: boolean; // (optional) (default to undefined)
135
250
 
136
251
  const { status, data } = await apiInstance.listAllConnections(
252
+ pageable,
253
+ createdAfter,
254
+ createdBefore,
137
255
  ipAddress,
138
256
  uuid,
139
- isVpn,
140
- page,
141
- limit
257
+ isVpn
142
258
  );
143
259
  ```
144
260
 
@@ -146,16 +262,17 @@ const { status, data } = await apiInstance.listAllConnections(
146
262
 
147
263
  |Name | Type | Description | Notes|
148
264
  |------------- | ------------- | ------------- | -------------|
149
- | **ipAddress** | [**string**] | Filter by IP address | (optional) defaults to undefined|
150
- | **uuid** | [**string**] | Filter by player UUID | (optional) defaults to undefined|
151
- | **isVpn** | [**boolean**] | Filter by VPN status | (optional) defaults to undefined|
152
- | **page** | [**number**] | Page number (1-indexed) | (optional) defaults to 1|
153
- | **limit** | [**number**] | Page size | (optional) defaults to 50|
265
+ | **pageable** | **Pageable** | | defaults to undefined|
266
+ | **createdAfter** | [**number**] | | (optional) defaults to undefined|
267
+ | **createdBefore** | [**number**] | | (optional) defaults to undefined|
268
+ | **ipAddress** | [**string**] | | (optional) defaults to undefined|
269
+ | **uuid** | [**string**] | | (optional) defaults to undefined|
270
+ | **isVpn** | [**boolean**] | | (optional) defaults to undefined|
154
271
 
155
272
 
156
273
  ### Return type
157
274
 
158
- **AdminPagedConnectionResponse**
275
+ **PageAdminDashboardConnectionResponse**
159
276
 
160
277
  ### Authorization
161
278
 
@@ -186,28 +303,27 @@ Returns a list of recent connections with VPN detection status, bypass informati
186
303
  ```typescript
187
304
  import {
188
305
  AdminConnectionsApi,
189
- Configuration
306
+ Configuration,
307
+ Pageable
190
308
  } from '@rebornteam/reborn-api';
191
309
 
192
310
  const configuration = new Configuration();
193
311
  const apiInstance = new AdminConnectionsApi(configuration);
194
312
 
195
- let createdAfter: number; //Filter connections after this epoch timestamp in milliseconds (optional) (default to undefined)
196
- let createdBefore: number; //Filter connections before this epoch timestamp in milliseconds (optional) (default to undefined)
197
- let ipAddress: string; //Filter by IP address (optional) (default to undefined)
198
- let uuid: string; //Filter by player UUID (optional) (default to undefined)
199
- let isVpn: boolean; //Filter by VPN status (true=VPN, false=not VPN) (optional) (default to undefined)
200
- let page: number; //Page number for pagination (optional) (default to 1)
201
- let limit: number; //Maximum number of records to return (optional) (default to 100)
313
+ let pageable: Pageable; // (default to undefined)
314
+ let createdAfter: number; // (optional) (default to undefined)
315
+ let createdBefore: number; // (optional) (default to undefined)
316
+ let ipAddress: string; // (optional) (default to undefined)
317
+ let uuid: string; // (optional) (default to undefined)
318
+ let isVpn: boolean; // (optional) (default to undefined)
202
319
 
203
320
  const { status, data } = await apiInstance.listConnections(
321
+ pageable,
204
322
  createdAfter,
205
323
  createdBefore,
206
324
  ipAddress,
207
325
  uuid,
208
- isVpn,
209
- page,
210
- limit
326
+ isVpn
211
327
  );
212
328
  ```
213
329
 
@@ -215,13 +331,12 @@ const { status, data } = await apiInstance.listConnections(
215
331
 
216
332
  |Name | Type | Description | Notes|
217
333
  |------------- | ------------- | ------------- | -------------|
218
- | **createdAfter** | [**number**] | Filter connections after this epoch timestamp in milliseconds | (optional) defaults to undefined|
219
- | **createdBefore** | [**number**] | Filter connections before this epoch timestamp in milliseconds | (optional) defaults to undefined|
220
- | **ipAddress** | [**string**] | Filter by IP address | (optional) defaults to undefined|
221
- | **uuid** | [**string**] | Filter by player UUID | (optional) defaults to undefined|
222
- | **isVpn** | [**boolean**] | Filter by VPN status (true=VPN, false=not VPN) | (optional) defaults to undefined|
223
- | **page** | [**number**] | Page number for pagination | (optional) defaults to 1|
224
- | **limit** | [**number**] | Maximum number of records to return | (optional) defaults to 100|
334
+ | **pageable** | **Pageable** | | defaults to undefined|
335
+ | **createdAfter** | [**number**] | | (optional) defaults to undefined|
336
+ | **createdBefore** | [**number**] | | (optional) defaults to undefined|
337
+ | **ipAddress** | [**string**] | | (optional) defaults to undefined|
338
+ | **uuid** | [**string**] | | (optional) defaults to undefined|
339
+ | **isVpn** | [**boolean**] | | (optional) defaults to undefined|
225
340
 
226
341
 
227
342
  ### Return type
@@ -0,0 +1,23 @@
1
+ # AdminCreateAltExemptionRequest
2
+
3
+ Add an alt exemption: mark altPlayerUuid as a known-legitimate associate of the path player. Subsequent aggressive-mode propagation skips this pair as an alt source.
4
+
5
+ ## Properties
6
+
7
+ Name | Type | Description | Notes
8
+ ------------ | ------------- | ------------- | -------------
9
+ **altPlayerUuid** | **string** | UUID of the player to mark as a known-legitimate associate | [default to undefined]
10
+ **reason** | **string** | Optional human-readable reason (e.g. \'roommates, verified via support ticket #1234\') | [optional] [default to undefined]
11
+
12
+ ## Example
13
+
14
+ ```typescript
15
+ import { AdminCreateAltExemptionRequest } from '@rebornteam/reborn-api';
16
+
17
+ const instance: AdminCreateAltExemptionRequest = {
18
+ altPlayerUuid,
19
+ reason,
20
+ };
21
+ ```
22
+
23
+ [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
@@ -0,0 +1,21 @@
1
+ # AdminCreatePlayerNoteRequest
2
+
3
+ Create a staff note on a player
4
+
5
+ ## Properties
6
+
7
+ Name | Type | Description | Notes
8
+ ------------ | ------------- | ------------- | -------------
9
+ **body** | **string** | Note body (1–4000 chars) | [default to undefined]
10
+
11
+ ## Example
12
+
13
+ ```typescript
14
+ import { AdminCreatePlayerNoteRequest } from '@rebornteam/reborn-api';
15
+
16
+ const instance: AdminCreatePlayerNoteRequest = {
17
+ body,
18
+ };
19
+ ```
20
+
21
+ [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
@@ -7,7 +7,8 @@ Name | Type | Description | Notes
7
7
  ------------ | ------------- | ------------- | -------------
8
8
  **id** | **number** | | [default to undefined]
9
9
  **ipAddress** | **string** | | [default to undefined]
10
- **location** | **string** | | [optional] [default to undefined]
10
+ **city** | **string** | City reported by the first VPN provider that returned one for this IP. | [optional] [default to undefined]
11
+ **country** | **string** | Country code (ISO 3166-1 alpha-2 or alpha-3 depending on provider) from the first provider that returned one. | [optional] [default to undefined]
11
12
  **isVpn** | **boolean** | | [default to undefined]
12
13
  **isBypassed** | **boolean** | | [default to undefined]
13
14
  **bypassExpiresAt** | **string** | | [optional] [default to undefined]
@@ -25,7 +26,8 @@ import { AdminDashboardConnectionResponse } from '@rebornteam/reborn-api';
25
26
  const instance: AdminDashboardConnectionResponse = {
26
27
  id,
27
28
  ipAddress,
28
- location,
29
+ city,
30
+ country,
29
31
  isVpn,
30
32
  isBypassed,
31
33
  bypassExpiresAt,
@@ -0,0 +1,175 @@
1
+ # AdminJobsApi
2
+
3
+ All URIs are relative to *https://api.smsh.sh*
4
+
5
+ |Method | HTTP request | Description|
6
+ |------------- | ------------- | -------------|
7
+ |[**cancel**](#cancel) | **DELETE** /admin/job/{id} | Request cancellation of an async job|
8
+ |[**get**](#get) | **GET** /admin/job/{id} | Get one async job|
9
+ |[**list**](#list) | **GET** /admin/job | List async jobs|
10
+
11
+ # **cancel**
12
+ > cancel()
13
+
14
+ Flips cancel_requested on the row. The host instance sees this at its next progress tick and bails out, transitioning the row to CANCELLED. Already-terminal jobs (COMPLETED/FAILED/CANCELLED) return 404.
15
+
16
+ ### Example
17
+
18
+ ```typescript
19
+ import {
20
+ AdminJobsApi,
21
+ Configuration
22
+ } from '@rebornteam/reborn-api';
23
+
24
+ const configuration = new Configuration();
25
+ const apiInstance = new AdminJobsApi(configuration);
26
+
27
+ let id: string; //Job id (default to undefined)
28
+
29
+ const { status, data } = await apiInstance.cancel(
30
+ id
31
+ );
32
+ ```
33
+
34
+ ### Parameters
35
+
36
+ |Name | Type | Description | Notes|
37
+ |------------- | ------------- | ------------- | -------------|
38
+ | **id** | [**string**] | Job id | defaults to undefined|
39
+
40
+
41
+ ### Return type
42
+
43
+ void (empty response body)
44
+
45
+ ### Authorization
46
+
47
+ [DiscordAuth](../README.md#DiscordAuth)
48
+
49
+ ### HTTP request headers
50
+
51
+ - **Content-Type**: Not defined
52
+ - **Accept**: Not defined
53
+
54
+
55
+ ### HTTP response details
56
+ | Status code | Description | Response headers |
57
+ |-------------|-------------|------------------|
58
+ |**204** | Cancellation requested | - |
59
+ |**404** | Job not found or already terminal | - |
60
+ |**401** | Unauthorized | - |
61
+ |**403** | Forbidden - Moderator role required | - |
62
+
63
+ [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
64
+
65
+ # **get**
66
+ > AdminAsyncJob get()
67
+
68
+ The polling target — the admin UI hits this every ~2 s while a job is running to update its progress bar.
69
+
70
+ ### Example
71
+
72
+ ```typescript
73
+ import {
74
+ AdminJobsApi,
75
+ Configuration
76
+ } from '@rebornteam/reborn-api';
77
+
78
+ const configuration = new Configuration();
79
+ const apiInstance = new AdminJobsApi(configuration);
80
+
81
+ let id: string; //Job id (default to undefined)
82
+
83
+ const { status, data } = await apiInstance.get(
84
+ id
85
+ );
86
+ ```
87
+
88
+ ### Parameters
89
+
90
+ |Name | Type | Description | Notes|
91
+ |------------- | ------------- | ------------- | -------------|
92
+ | **id** | [**string**] | Job id | defaults to undefined|
93
+
94
+
95
+ ### Return type
96
+
97
+ **AdminAsyncJob**
98
+
99
+ ### Authorization
100
+
101
+ [DiscordAuth](../README.md#DiscordAuth)
102
+
103
+ ### HTTP request headers
104
+
105
+ - **Content-Type**: Not defined
106
+ - **Accept**: application/json
107
+
108
+
109
+ ### HTTP response details
110
+ | Status code | Description | Response headers |
111
+ |-------------|-------------|------------------|
112
+ |**200** | Job found | - |
113
+ |**404** | Job not found | - |
114
+ |**401** | Unauthorized | - |
115
+ |**403** | Forbidden - Moderator role required | - |
116
+
117
+ [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
118
+
119
+ # **list**
120
+ > PageAdminAsyncJob list()
121
+
122
+ Paginated, newest first. Filter by status to see only RUNNING jobs (the live queue) or COMPLETED / FAILED / CANCELLED history.
123
+
124
+ ### Example
125
+
126
+ ```typescript
127
+ import {
128
+ AdminJobsApi,
129
+ Configuration,
130
+ Pageable
131
+ } from '@rebornteam/reborn-api';
132
+
133
+ const configuration = new Configuration();
134
+ const apiInstance = new AdminJobsApi(configuration);
135
+
136
+ let pageable: Pageable; // (default to undefined)
137
+ let status: JobStatus; //Filter by status (omit for all states) (optional) (default to undefined)
138
+
139
+ const { status, data } = await apiInstance.list(
140
+ pageable,
141
+ status
142
+ );
143
+ ```
144
+
145
+ ### Parameters
146
+
147
+ |Name | Type | Description | Notes|
148
+ |------------- | ------------- | ------------- | -------------|
149
+ | **pageable** | **Pageable** | | defaults to undefined|
150
+ | **status** | **JobStatus** | Filter by status (omit for all states) | (optional) defaults to undefined|
151
+
152
+
153
+ ### Return type
154
+
155
+ **PageAdminAsyncJob**
156
+
157
+ ### Authorization
158
+
159
+ [DiscordAuth](../README.md#DiscordAuth)
160
+
161
+ ### HTTP request headers
162
+
163
+ - **Content-Type**: Not defined
164
+ - **Accept**: application/json
165
+
166
+
167
+ ### HTTP response details
168
+ | Status code | Description | Response headers |
169
+ |-------------|-------------|------------------|
170
+ |**200** | Jobs retrieved | - |
171
+ |**401** | Unauthorized | - |
172
+ |**403** | Forbidden - Moderator role required | - |
173
+
174
+ [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
175
+
@@ -12,9 +12,9 @@ Name | Type | Description | Notes
12
12
  **firstJoin** | **boolean** | Whether this player still has first-join status | [default to undefined]
13
13
  **firstLogin** | **string** | Timestamp of first connection (ISO-8601) | [default to undefined]
14
14
  **lastUsedAt** | **string** | Timestamp of most recent connection (ISO-8601) | [optional] [default to undefined]
15
- **punishmentPointsRaw** | **number** | Raw punishment score | [default to undefined]
16
- **punishmentPointsPercent** | **number** | Punishment score as a percentage | [default to undefined]
15
+ **trustFactor** | **number** | Trust factor (0-100, higher = more trusted). Informational only — does NOT auto-escalate punishments. See compute_trust_factor in the database for the formula. | [default to undefined]
17
16
  **usernameHistory** | [**Array<AdminUsernameHistoryEntry>**](AdminUsernameHistoryEntry.md) | All usernames this player has used, newest first | [default to undefined]
17
+ **aggressiveModeImmunity** | **boolean** | True when this player is exempt from aggressive-mode propagation. Toggling on also bulk-revokes existing propagated links. Defaults to false. | [default to undefined]
18
18
 
19
19
  ## Example
20
20
 
@@ -28,9 +28,9 @@ const instance: AdminPlayerDetailResponse = {
28
28
  firstJoin,
29
29
  firstLogin,
30
30
  lastUsedAt,
31
- punishmentPointsRaw,
32
- punishmentPointsPercent,
31
+ trustFactor,
33
32
  usernameHistory,
33
+ aggressiveModeImmunity,
34
34
  };
35
35
  ```
36
36
 
@@ -0,0 +1,31 @@
1
+ # AdminPlayerNote
2
+
3
+ Free-form staff note about a player
4
+
5
+ ## Properties
6
+
7
+ Name | Type | Description | Notes
8
+ ------------ | ------------- | ------------- | -------------
9
+ **id** | **number** | Note id | [default to undefined]
10
+ **author** | **string** | Username (Discord username for SSO admins) of the staff member who wrote the note | [default to undefined]
11
+ **body** | **string** | The note body (1–4000 characters) | [default to undefined]
12
+ **createdAt** | **string** | When the note was created (ISO-8601) | [default to undefined]
13
+ **deletedAt** | **string** | When the note was soft-deleted. Null on active notes. Deleted notes are still returned by default; the UI styles them as struck-through. | [optional] [default to undefined]
14
+ **deletedBy** | **string** | Staff member who soft-deleted the note. Null on active notes. | [optional] [default to undefined]
15
+
16
+ ## Example
17
+
18
+ ```typescript
19
+ import { AdminPlayerNote } from '@rebornteam/reborn-api';
20
+
21
+ const instance: AdminPlayerNote = {
22
+ id,
23
+ author,
24
+ body,
25
+ createdAt,
26
+ deletedAt,
27
+ deletedBy,
28
+ };
29
+ ```
30
+
31
+ [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
@@ -0,0 +1,51 @@
1
+ # AdminPlayerPunishmentResponse
2
+
3
+ A single player_punishment link with full audit metadata. Used by admin UIs to render the player\'s punishment history with DIRECT vs PROPAGATED badges and per-link revoke controls.
4
+
5
+ ## Properties
6
+
7
+ Name | Type | Description | Notes
8
+ ------------ | ------------- | ------------- | -------------
9
+ **id** | **number** | player_punishment row id (the link id, NOT the punishment id) | [default to undefined]
10
+ **punishmentId** | **number** | Source punishment id this link points to | [default to undefined]
11
+ **playerUuid** | **string** | UUID of the player this link is attached to | [default to undefined]
12
+ **type** | [**PunishmentType**](PunishmentType.md) | Punishment type | [default to undefined]
13
+ **severity** | **number** | Severity (1-4) | [default to undefined]
14
+ **reason** | **string** | Reason from the source punishment record | [default to undefined]
15
+ **notes** | **string** | Internal admin notes from the source punishment (may be null) | [optional] [default to undefined]
16
+ **createdBy** | **string** | Original issuer of the punishment | [default to undefined]
17
+ **createdAt** | **string** | When the source punishment was created (ISO-8601) | [default to undefined]
18
+ **expiresAt** | **string** | Source punishment expiration (null = permanent) | [optional] [default to undefined]
19
+ **source** | [**PunishmentSource**](PunishmentSource.md) | How this link came to exist. DIRECT links are immutable from the link side (remove via the punishment-level delete); PROPAGATED links are revocable individually. | [default to undefined]
20
+ **transferNote** | **string** | Human-readable origin for a PROPAGATED link, e.g. \'Propagated from alt Notch (player_id=42)\' or \'Propagated from connection 1.2.3.4\'. Null for DIRECT links. | [optional] [default to undefined]
21
+ **sourcePlayerId** | **number** | player.id that triggered this PROPAGATED link (the alt account). Null for DIRECT links, for PROPAGATED links pre-dating the structured-source migration, and for connection-sourced PROPAGATED links. | [optional] [default to undefined]
22
+ **sourceConnectionId** | **number** | connection.id that triggered this PROPAGATED link (the IP). Null for DIRECT links, for PROPAGATED links pre-dating the structured-source migration, and for player-sourced PROPAGATED links. | [optional] [default to undefined]
23
+ **revokedAt** | **string** | When this link was revoked by a staff member. Null while active. | [optional] [default to undefined]
24
+ **revokedBy** | **string** | Staff member who revoked this link. | [optional] [default to undefined]
25
+
26
+ ## Example
27
+
28
+ ```typescript
29
+ import { AdminPlayerPunishmentResponse } from '@rebornteam/reborn-api';
30
+
31
+ const instance: AdminPlayerPunishmentResponse = {
32
+ id,
33
+ punishmentId,
34
+ playerUuid,
35
+ type,
36
+ severity,
37
+ reason,
38
+ notes,
39
+ createdBy,
40
+ createdAt,
41
+ expiresAt,
42
+ source,
43
+ transferNote,
44
+ sourcePlayerId,
45
+ sourceConnectionId,
46
+ revokedAt,
47
+ revokedBy,
48
+ };
49
+ ```
50
+
51
+ [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
@@ -0,0 +1,39 @@
1
+ # AdminPlayerReport
2
+
3
+ One peer report. May target one or more players.
4
+
5
+ ## Properties
6
+
7
+ Name | Type | Description | Notes
8
+ ------------ | ------------- | ------------- | -------------
9
+ **id** | **number** | Report id | [default to undefined]
10
+ **reporterUuid** | **string** | Reporter\'s UUID | [default to undefined]
11
+ **reporterUsername** | **string** | Reporter\'s username at the time of the report (last-known if changed) | [optional] [default to undefined]
12
+ **reportedTargets** | [**Array<AdminReportTarget>**](AdminReportTarget.md) | All players this report flags. At least one entry. | [default to undefined]
13
+ **category** | **string** | Category | [default to undefined]
14
+ **reason** | **string** | Reason text | [default to undefined]
15
+ **createdAt** | **string** | When created (ISO-8601) | [default to undefined]
16
+ **resolvedAt** | **string** | When resolved by staff. Null = open. | [optional] [default to undefined]
17
+ **resolvedBy** | **string** | Staff member who resolved it | [optional] [default to undefined]
18
+ **resolutionNote** | **string** | Staff\'s resolution note | [optional] [default to undefined]
19
+
20
+ ## Example
21
+
22
+ ```typescript
23
+ import { AdminPlayerReport } from '@rebornteam/reborn-api';
24
+
25
+ const instance: AdminPlayerReport = {
26
+ id,
27
+ reporterUuid,
28
+ reporterUsername,
29
+ reportedTargets,
30
+ category,
31
+ reason,
32
+ createdAt,
33
+ resolvedAt,
34
+ resolvedBy,
35
+ resolutionNote,
36
+ };
37
+ ```
38
+
39
+ [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)