@rebornteam/reborn-api 3.1.0 → 3.2.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.
- package/.openapi-generator/FILES +1 -0
- package/README.md +4 -2
- package/api.ts +185 -95
- package/base.ts +1 -1
- package/common.ts +1 -1
- package/configuration.ts +1 -1
- package/dist/api.d.ts +148 -95
- package/dist/api.js +63 -1
- package/dist/base.d.ts +1 -1
- package/dist/base.js +1 -1
- package/dist/common.d.ts +1 -1
- package/dist/common.js +1 -1
- package/dist/configuration.d.ts +1 -1
- package/dist/configuration.js +1 -1
- package/dist/esm/api.d.ts +148 -95
- package/dist/esm/api.js +63 -1
- package/dist/esm/base.d.ts +1 -1
- package/dist/esm/base.js +1 -1
- package/dist/esm/common.d.ts +1 -1
- package/dist/esm/common.js +1 -1
- package/dist/esm/configuration.d.ts +1 -1
- package/dist/esm/configuration.js +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/docs/AdminApplyPunishmentRequest.md +2 -2
- package/docs/AdminApplyPunishmentResponse.md +1 -1
- package/docs/AdminApplyPunishmentResult.md +6 -6
- package/docs/AdminBackfillLocationResponse.md +25 -0
- package/docs/AdminClientCredentialResponse.md +6 -6
- package/docs/AdminConnectionBypassResponse.md +4 -4
- package/docs/AdminConnectionCheckResult.md +7 -3
- package/docs/AdminConnectionsApi.md +47 -0
- package/docs/AdminCreatePunishmentDraftRequest.md +2 -2
- package/docs/AdminDashboardConnectionResponse.md +2 -2
- package/docs/AdminIpSearchResult.md +2 -2
- package/docs/AdminPagedConnectionResponse.md +5 -5
- package/docs/AdminPagedPlayerResponse.md +5 -5
- package/docs/AdminPagedPunishmentResponse.md +5 -5
- package/docs/AdminPlayerDetailResponse.md +7 -7
- package/docs/AdminPlayerSearchResult.md +1 -1
- package/docs/AdminPlayerSummary.md +6 -6
- package/docs/AdminPunishmentDraftResponse.md +1 -1
- package/docs/AdminPunishmentEvaluation.md +9 -9
- package/docs/AdminPunishmentSearchResponse.md +3 -3
- package/docs/AdminUsernameHistoryEntry.md +2 -2
- package/docs/ConnectionGetConnectionDetailsResponse.md +7 -7
- package/docs/PlayerGetPlayerInformation.md +4 -4
- package/docs/PunishmentGetPunishmentResponse.md +6 -6
- package/docs/PunishmentSeveritiesResponse.md +1 -1
- package/docs/PunishmentSeveritiesResponsePunishmentTypeInfo.md +2 -2
- package/docs/PunishmentSeveritiesResponseSeverityInfo.md +2 -2
- package/index.ts +1 -1
- package/package.json +1 -1
package/api.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Reborn API
|
|
5
5
|
* The Reborn API serves as the central backend for the platform, orchestrating secure communication between game clients and data services. This API supports two authentication methods: - **OAuth 2.0 Client Credentials**: For programmatic API access - **Discord SSO Bearer Token**: For admin endpoints requiring Discord authentication
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 3.1
|
|
7
|
+
* The version of the OpenAPI document: 3.2.1
|
|
8
8
|
*
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
@@ -38,7 +38,7 @@ export interface AdminApplyPunishmentRequest {
|
|
|
38
38
|
/**
|
|
39
39
|
* Severity level: 1=Minor, 2=Moderate, 3=Severe, 4=Critical
|
|
40
40
|
*/
|
|
41
|
-
'severity'
|
|
41
|
+
'severity': number;
|
|
42
42
|
/**
|
|
43
43
|
* Reason for the punishment
|
|
44
44
|
*/
|
|
@@ -50,7 +50,7 @@ export interface AdminApplyPunishmentRequest {
|
|
|
50
50
|
/**
|
|
51
51
|
* Force the punishment to be permanent regardless of the target\'s current score
|
|
52
52
|
*/
|
|
53
|
-
'forcePermanent'
|
|
53
|
+
'forcePermanent': boolean;
|
|
54
54
|
/**
|
|
55
55
|
* Internal notes visible only to administrators — not shown to the punished player
|
|
56
56
|
*/
|
|
@@ -65,7 +65,7 @@ export interface AdminApplyPunishmentResponse {
|
|
|
65
65
|
/**
|
|
66
66
|
* Ordered list of results, one per target in the request
|
|
67
67
|
*/
|
|
68
|
-
'results'
|
|
68
|
+
'results': Array<AdminApplyPunishmentResult>;
|
|
69
69
|
}
|
|
70
70
|
/**
|
|
71
71
|
* Result of applying a punishment to a single target
|
|
@@ -74,27 +74,27 @@ export interface AdminApplyPunishmentResult {
|
|
|
74
74
|
/**
|
|
75
75
|
* The target this result applies to
|
|
76
76
|
*/
|
|
77
|
-
'target'
|
|
77
|
+
'target': AdminPunishmentTarget;
|
|
78
78
|
/**
|
|
79
79
|
* ID of the created punishment record
|
|
80
80
|
*/
|
|
81
|
-
'punishmentId'
|
|
81
|
+
'punishmentId': number;
|
|
82
82
|
/**
|
|
83
83
|
* Punishment type applied
|
|
84
84
|
*/
|
|
85
|
-
'type'
|
|
85
|
+
'type': PunishmentType;
|
|
86
86
|
/**
|
|
87
87
|
* Severity level applied
|
|
88
88
|
*/
|
|
89
|
-
'severity'
|
|
89
|
+
'severity': number;
|
|
90
90
|
/**
|
|
91
91
|
* Updated punishment score after applying
|
|
92
92
|
*/
|
|
93
|
-
'newScore'
|
|
93
|
+
'newScore': number;
|
|
94
94
|
/**
|
|
95
95
|
* Whether the punishment was made permanent
|
|
96
96
|
*/
|
|
97
|
-
'isPermanent'
|
|
97
|
+
'isPermanent': boolean;
|
|
98
98
|
/**
|
|
99
99
|
* When the punishment expires — null if permanent or a WARNING
|
|
100
100
|
*/
|
|
@@ -102,6 +102,23 @@ export interface AdminApplyPunishmentResult {
|
|
|
102
102
|
}
|
|
103
103
|
|
|
104
104
|
|
|
105
|
+
/**
|
|
106
|
+
* Result of a location backfill run — rechecks every connection_check row missing both city and country, repopulating them from the VPN providers.
|
|
107
|
+
*/
|
|
108
|
+
export interface AdminBackfillLocationResponse {
|
|
109
|
+
/**
|
|
110
|
+
* Total checks attempted
|
|
111
|
+
*/
|
|
112
|
+
'processed': number;
|
|
113
|
+
/**
|
|
114
|
+
* Checks where the provider returned at least a city or country
|
|
115
|
+
*/
|
|
116
|
+
'succeeded': number;
|
|
117
|
+
/**
|
|
118
|
+
* Checks that errored or returned no location data
|
|
119
|
+
*/
|
|
120
|
+
'failed': number;
|
|
121
|
+
}
|
|
105
122
|
/**
|
|
106
123
|
* Client credential response
|
|
107
124
|
*/
|
|
@@ -109,11 +126,11 @@ export interface AdminClientCredentialResponse {
|
|
|
109
126
|
/**
|
|
110
127
|
* Unique identifier for the client credential
|
|
111
128
|
*/
|
|
112
|
-
'id'
|
|
129
|
+
'id': number;
|
|
113
130
|
/**
|
|
114
131
|
* Client ID used for authentication
|
|
115
132
|
*/
|
|
116
|
-
'clientId'
|
|
133
|
+
'clientId': string;
|
|
117
134
|
/**
|
|
118
135
|
* Client secret (only returned on generation/rotation, null otherwise)
|
|
119
136
|
*/
|
|
@@ -121,19 +138,19 @@ export interface AdminClientCredentialResponse {
|
|
|
121
138
|
/**
|
|
122
139
|
* Human-readable name for the client
|
|
123
140
|
*/
|
|
124
|
-
'name'
|
|
141
|
+
'name': string;
|
|
125
142
|
/**
|
|
126
143
|
* Optional description of the client\'s purpose
|
|
127
144
|
*/
|
|
128
|
-
'description'
|
|
145
|
+
'description': string;
|
|
129
146
|
/**
|
|
130
147
|
* Whether the client credential is currently enabled
|
|
131
148
|
*/
|
|
132
|
-
'enabled'
|
|
149
|
+
'enabled': boolean;
|
|
133
150
|
/**
|
|
134
151
|
* Timestamp when the credential was created (ISO-8601 format)
|
|
135
152
|
*/
|
|
136
|
-
'createdAt'
|
|
153
|
+
'createdAt': string;
|
|
137
154
|
/**
|
|
138
155
|
* Timestamp when the credential expires (ISO-8601 format). Null means the credential never expires.
|
|
139
156
|
*/
|
|
@@ -146,19 +163,19 @@ export interface AdminConnectionBypassResponse {
|
|
|
146
163
|
/**
|
|
147
164
|
* Unique identifier for the bypass
|
|
148
165
|
*/
|
|
149
|
-
'id'
|
|
166
|
+
'id': number;
|
|
150
167
|
/**
|
|
151
168
|
* IP address that is bypassed
|
|
152
169
|
*/
|
|
153
|
-
'ipAddress'
|
|
170
|
+
'ipAddress': string;
|
|
154
171
|
/**
|
|
155
172
|
* Timestamp when the bypass expires (ISO-8601 format)
|
|
156
173
|
*/
|
|
157
|
-
'expiresAt'
|
|
174
|
+
'expiresAt': string;
|
|
158
175
|
/**
|
|
159
176
|
* Timestamp when the bypass was created (ISO-8601 format)
|
|
160
177
|
*/
|
|
161
|
-
'createdAt'
|
|
178
|
+
'createdAt': string;
|
|
162
179
|
}
|
|
163
180
|
/**
|
|
164
181
|
* Result from a single VPN detection service for a given IP address
|
|
@@ -167,15 +184,23 @@ export interface AdminConnectionCheckResult {
|
|
|
167
184
|
/**
|
|
168
185
|
* Service identifier
|
|
169
186
|
*/
|
|
170
|
-
'service'
|
|
187
|
+
'service': string;
|
|
171
188
|
/**
|
|
172
189
|
* Whether this service flagged the IP as a VPN, proxy, or Tor exit node
|
|
173
190
|
*/
|
|
174
|
-
'result'
|
|
191
|
+
'result': boolean;
|
|
175
192
|
/**
|
|
176
193
|
* When this check was last performed
|
|
177
194
|
*/
|
|
178
|
-
'checkedAt'
|
|
195
|
+
'checkedAt': string;
|
|
196
|
+
/**
|
|
197
|
+
* City reported by this service, if available
|
|
198
|
+
*/
|
|
199
|
+
'city'?: string | null;
|
|
200
|
+
/**
|
|
201
|
+
* Country code reported by this service, if available
|
|
202
|
+
*/
|
|
203
|
+
'country'?: string | null;
|
|
179
204
|
}
|
|
180
205
|
/**
|
|
181
206
|
* Request to evaluate the impact of a punishment across one or more targets before applying
|
|
@@ -192,7 +217,7 @@ export interface AdminCreatePunishmentDraftRequest {
|
|
|
192
217
|
/**
|
|
193
218
|
* Severity level: 1=Minor, 2=Moderate, 3=Severe, 4=Critical
|
|
194
219
|
*/
|
|
195
|
-
'severity'
|
|
220
|
+
'severity': number;
|
|
196
221
|
/**
|
|
197
222
|
* Reason for the punishment (not used in evaluation, required for apply)
|
|
198
223
|
*/
|
|
@@ -204,14 +229,14 @@ export interface AdminCreatePunishmentDraftRequest {
|
|
|
204
229
|
/**
|
|
205
230
|
* Force the punishment to be permanent regardless of the target\'s current score
|
|
206
231
|
*/
|
|
207
|
-
'forcePermanent'
|
|
232
|
+
'forcePermanent': boolean;
|
|
208
233
|
}
|
|
209
234
|
|
|
210
235
|
|
|
211
236
|
export interface AdminDashboardConnectionResponse {
|
|
212
237
|
'id': number;
|
|
213
238
|
'ipAddress': string;
|
|
214
|
-
'location'
|
|
239
|
+
'location'?: string | null;
|
|
215
240
|
'isVpn': boolean;
|
|
216
241
|
'isBypassed': boolean;
|
|
217
242
|
'bypassExpiresAt'?: string | null;
|
|
@@ -222,7 +247,7 @@ export interface AdminDashboardConnectionResponse {
|
|
|
222
247
|
/**
|
|
223
248
|
* Results from each VPN detection service for this IP address
|
|
224
249
|
*/
|
|
225
|
-
'results'
|
|
250
|
+
'results': Array<AdminConnectionCheckResult>;
|
|
226
251
|
}
|
|
227
252
|
export interface AdminGetDashboardStats {
|
|
228
253
|
'totalPlayers': number;
|
|
@@ -236,11 +261,11 @@ export interface AdminIpSearchResult {
|
|
|
236
261
|
/**
|
|
237
262
|
* IP address
|
|
238
263
|
*/
|
|
239
|
-
'ipAddress'
|
|
264
|
+
'ipAddress': string;
|
|
240
265
|
/**
|
|
241
266
|
* Players ever seen on this IP
|
|
242
267
|
*/
|
|
243
|
-
'players'
|
|
268
|
+
'players': Array<AdminPlayerSearchResult>;
|
|
244
269
|
}
|
|
245
270
|
/**
|
|
246
271
|
* Paginated connection list response
|
|
@@ -249,23 +274,23 @@ export interface AdminPagedConnectionResponse {
|
|
|
249
274
|
/**
|
|
250
275
|
* Connections on the current page
|
|
251
276
|
*/
|
|
252
|
-
'data'
|
|
277
|
+
'data': Array<AdminDashboardConnectionResponse>;
|
|
253
278
|
/**
|
|
254
279
|
* Total number of connections matching the filters
|
|
255
280
|
*/
|
|
256
|
-
'total'
|
|
281
|
+
'total': number;
|
|
257
282
|
/**
|
|
258
283
|
* Current page (1-indexed)
|
|
259
284
|
*/
|
|
260
|
-
'page'
|
|
285
|
+
'page': number;
|
|
261
286
|
/**
|
|
262
287
|
* Page size
|
|
263
288
|
*/
|
|
264
|
-
'limit'
|
|
289
|
+
'limit': number;
|
|
265
290
|
/**
|
|
266
291
|
* Total number of pages
|
|
267
292
|
*/
|
|
268
|
-
'totalPages'
|
|
293
|
+
'totalPages': number;
|
|
269
294
|
}
|
|
270
295
|
/**
|
|
271
296
|
* Paginated player list response
|
|
@@ -274,23 +299,23 @@ export interface AdminPagedPlayerResponse {
|
|
|
274
299
|
/**
|
|
275
300
|
* Players on the current page
|
|
276
301
|
*/
|
|
277
|
-
'data'
|
|
302
|
+
'data': Array<AdminPlayerSummary>;
|
|
278
303
|
/**
|
|
279
304
|
* Total number of players matching the search filter
|
|
280
305
|
*/
|
|
281
|
-
'total'
|
|
306
|
+
'total': number;
|
|
282
307
|
/**
|
|
283
308
|
* Current page (1-indexed)
|
|
284
309
|
*/
|
|
285
|
-
'page'
|
|
310
|
+
'page': number;
|
|
286
311
|
/**
|
|
287
312
|
* Page size
|
|
288
313
|
*/
|
|
289
|
-
'limit'
|
|
314
|
+
'limit': number;
|
|
290
315
|
/**
|
|
291
316
|
* Total number of pages
|
|
292
317
|
*/
|
|
293
|
-
'totalPages'
|
|
318
|
+
'totalPages': number;
|
|
294
319
|
}
|
|
295
320
|
/**
|
|
296
321
|
* Paginated punishment list response
|
|
@@ -299,23 +324,23 @@ export interface AdminPagedPunishmentResponse {
|
|
|
299
324
|
/**
|
|
300
325
|
* Punishments on the current page
|
|
301
326
|
*/
|
|
302
|
-
'data'
|
|
327
|
+
'data': Array<AdminPunishmentListItem>;
|
|
303
328
|
/**
|
|
304
329
|
* Total number of punishments matching the filters
|
|
305
330
|
*/
|
|
306
|
-
'total'
|
|
331
|
+
'total': number;
|
|
307
332
|
/**
|
|
308
333
|
* Current page (1-indexed)
|
|
309
334
|
*/
|
|
310
|
-
'page'
|
|
335
|
+
'page': number;
|
|
311
336
|
/**
|
|
312
337
|
* Page size
|
|
313
338
|
*/
|
|
314
|
-
'limit'
|
|
339
|
+
'limit': number;
|
|
315
340
|
/**
|
|
316
341
|
* Total number of pages
|
|
317
342
|
*/
|
|
318
|
-
'totalPages'
|
|
343
|
+
'totalPages': number;
|
|
319
344
|
}
|
|
320
345
|
/**
|
|
321
346
|
* Full player detail including punishment history and all known usernames
|
|
@@ -324,11 +349,11 @@ export interface AdminPlayerDetailResponse {
|
|
|
324
349
|
/**
|
|
325
350
|
* Internal player ID
|
|
326
351
|
*/
|
|
327
|
-
'id'
|
|
352
|
+
'id': number;
|
|
328
353
|
/**
|
|
329
354
|
* Player Minecraft UUID
|
|
330
355
|
*/
|
|
331
|
-
'uuid'
|
|
356
|
+
'uuid': string;
|
|
332
357
|
/**
|
|
333
358
|
* Most recently seen username
|
|
334
359
|
*/
|
|
@@ -336,11 +361,11 @@ export interface AdminPlayerDetailResponse {
|
|
|
336
361
|
/**
|
|
337
362
|
* Whether this player still has first-join status
|
|
338
363
|
*/
|
|
339
|
-
'firstJoin'
|
|
364
|
+
'firstJoin': boolean;
|
|
340
365
|
/**
|
|
341
366
|
* Timestamp of first connection (ISO-8601)
|
|
342
367
|
*/
|
|
343
|
-
'firstLogin'
|
|
368
|
+
'firstLogin': string;
|
|
344
369
|
/**
|
|
345
370
|
* Timestamp of most recent connection (ISO-8601)
|
|
346
371
|
*/
|
|
@@ -348,15 +373,15 @@ export interface AdminPlayerDetailResponse {
|
|
|
348
373
|
/**
|
|
349
374
|
* Raw punishment score
|
|
350
375
|
*/
|
|
351
|
-
'punishmentPointsRaw'
|
|
376
|
+
'punishmentPointsRaw': number;
|
|
352
377
|
/**
|
|
353
378
|
* Punishment score as a percentage
|
|
354
379
|
*/
|
|
355
|
-
'punishmentPointsPercent'
|
|
380
|
+
'punishmentPointsPercent': number;
|
|
356
381
|
/**
|
|
357
382
|
* All usernames this player has used, newest first
|
|
358
383
|
*/
|
|
359
|
-
'usernameHistory'
|
|
384
|
+
'usernameHistory': Array<AdminUsernameHistoryEntry>;
|
|
360
385
|
}
|
|
361
386
|
/**
|
|
362
387
|
* Lightweight player reference used in search results and punishment evaluations
|
|
@@ -365,7 +390,7 @@ export interface AdminPlayerSearchResult {
|
|
|
365
390
|
/**
|
|
366
391
|
* Player Minecraft UUID
|
|
367
392
|
*/
|
|
368
|
-
'uuid'
|
|
393
|
+
'uuid': string;
|
|
369
394
|
/**
|
|
370
395
|
* Most recently seen username, null if never recorded
|
|
371
396
|
*/
|
|
@@ -378,11 +403,11 @@ export interface AdminPlayerSummary {
|
|
|
378
403
|
/**
|
|
379
404
|
* Internal player ID
|
|
380
405
|
*/
|
|
381
|
-
'id'
|
|
406
|
+
'id': number;
|
|
382
407
|
/**
|
|
383
408
|
* Player Minecraft UUID
|
|
384
409
|
*/
|
|
385
|
-
'uuid'
|
|
410
|
+
'uuid': string;
|
|
386
411
|
/**
|
|
387
412
|
* Most recently seen username, null if never recorded
|
|
388
413
|
*/
|
|
@@ -390,11 +415,11 @@ export interface AdminPlayerSummary {
|
|
|
390
415
|
/**
|
|
391
416
|
* Whether this player still has first-join status
|
|
392
417
|
*/
|
|
393
|
-
'firstJoin'
|
|
418
|
+
'firstJoin': boolean;
|
|
394
419
|
/**
|
|
395
420
|
* Timestamp of first connection (ISO-8601)
|
|
396
421
|
*/
|
|
397
|
-
'firstLogin'
|
|
422
|
+
'firstLogin': string;
|
|
398
423
|
/**
|
|
399
424
|
* Timestamp of most recent connection (ISO-8601)
|
|
400
425
|
*/
|
|
@@ -402,11 +427,11 @@ export interface AdminPlayerSummary {
|
|
|
402
427
|
/**
|
|
403
428
|
* Raw punishment score (sum of weighted punishment values)
|
|
404
429
|
*/
|
|
405
|
-
'punishmentPointsRaw'
|
|
430
|
+
'punishmentPointsRaw': number;
|
|
406
431
|
/**
|
|
407
432
|
* Punishment score as a percentage. Values above 100 indicate future punishments should be permanent.
|
|
408
433
|
*/
|
|
409
|
-
'punishmentPointsPercent'
|
|
434
|
+
'punishmentPointsPercent': number;
|
|
410
435
|
}
|
|
411
436
|
/**
|
|
412
437
|
* Batch punishment draft — one evaluation per target
|
|
@@ -415,7 +440,7 @@ export interface AdminPunishmentDraftResponse {
|
|
|
415
440
|
/**
|
|
416
441
|
* Ordered list of evaluations, one per target in the request
|
|
417
442
|
*/
|
|
418
|
-
'evaluations'
|
|
443
|
+
'evaluations': Array<AdminPunishmentEvaluation>;
|
|
419
444
|
}
|
|
420
445
|
/**
|
|
421
446
|
* Evaluation of a punishment\'s impact on a single target
|
|
@@ -424,27 +449,27 @@ export interface AdminPunishmentEvaluation {
|
|
|
424
449
|
/**
|
|
425
450
|
* The target this evaluation applies to
|
|
426
451
|
*/
|
|
427
|
-
'target'
|
|
452
|
+
'target': AdminPunishmentTarget;
|
|
428
453
|
/**
|
|
429
454
|
* Players affected — one player for UUID targets, all players on the IP for connection targets
|
|
430
455
|
*/
|
|
431
|
-
'affectedPlayers'
|
|
456
|
+
'affectedPlayers': Array<AdminPlayerSearchResult>;
|
|
432
457
|
/**
|
|
433
458
|
* Current punishment score before applying this punishment (0–100+)
|
|
434
459
|
*/
|
|
435
|
-
'currentScore'
|
|
460
|
+
'currentScore': number;
|
|
436
461
|
/**
|
|
437
462
|
* Points this punishment would add to the score
|
|
438
463
|
*/
|
|
439
|
-
'pointsToAdd'
|
|
464
|
+
'pointsToAdd': number;
|
|
440
465
|
/**
|
|
441
466
|
* Projected score after applying this punishment
|
|
442
467
|
*/
|
|
443
|
-
'newScore'
|
|
468
|
+
'newScore': number;
|
|
444
469
|
/**
|
|
445
470
|
* Whether this punishment would be permanent based on the current score threshold
|
|
446
471
|
*/
|
|
447
|
-
'willBePermanent'
|
|
472
|
+
'willBePermanent': boolean;
|
|
448
473
|
/**
|
|
449
474
|
* Resolved duration in seconds — null if permanent or a WARNING
|
|
450
475
|
*/
|
|
@@ -452,15 +477,15 @@ export interface AdminPunishmentEvaluation {
|
|
|
452
477
|
/**
|
|
453
478
|
* Number of existing punishments on this target
|
|
454
479
|
*/
|
|
455
|
-
'previousPunishmentCount'
|
|
480
|
+
'previousPunishmentCount': number;
|
|
456
481
|
/**
|
|
457
482
|
* True when the target is an IP address (connection punishment) rather than a player UUID
|
|
458
483
|
*/
|
|
459
|
-
'isConnectionTarget'
|
|
484
|
+
'isConnectionTarget': boolean;
|
|
460
485
|
/**
|
|
461
486
|
* The effective punishment type that will be applied — may differ from the requested type if escalated to BAN at threshold
|
|
462
487
|
*/
|
|
463
|
-
'effectiveType'
|
|
488
|
+
'effectiveType': PunishmentType;
|
|
464
489
|
}
|
|
465
490
|
|
|
466
491
|
|
|
@@ -487,15 +512,15 @@ export interface AdminPunishmentSearchResponse {
|
|
|
487
512
|
/**
|
|
488
513
|
* Search kind — PLAYER for UUID/username searches, IP for IP address searches
|
|
489
514
|
*/
|
|
490
|
-
'kind'
|
|
515
|
+
'kind': SearchKind;
|
|
491
516
|
/**
|
|
492
517
|
* Matching players — only populated when kind=\'player\'
|
|
493
518
|
*/
|
|
494
|
-
'players'
|
|
519
|
+
'players': Array<AdminPlayerSearchResult>;
|
|
495
520
|
/**
|
|
496
521
|
* Matching IP addresses with their associated players — only populated when kind=\'ip\'
|
|
497
522
|
*/
|
|
498
|
-
'ipResults'
|
|
523
|
+
'ipResults': Array<AdminIpSearchResult>;
|
|
499
524
|
}
|
|
500
525
|
|
|
501
526
|
|
|
@@ -519,11 +544,11 @@ export interface AdminUsernameHistoryEntry {
|
|
|
519
544
|
/**
|
|
520
545
|
* The username at this point in time
|
|
521
546
|
*/
|
|
522
|
-
'username'
|
|
547
|
+
'username': string;
|
|
523
548
|
/**
|
|
524
549
|
* When this username was first observed (ISO-8601)
|
|
525
550
|
*/
|
|
526
|
-
'changedAt'
|
|
551
|
+
'changedAt': string;
|
|
527
552
|
}
|
|
528
553
|
export interface ChatMessageDTO {
|
|
529
554
|
'id': number;
|
|
@@ -563,23 +588,23 @@ export interface ConnectionGetConnectionDetailsResponse {
|
|
|
563
588
|
/**
|
|
564
589
|
* The analyzed IPv4 address
|
|
565
590
|
*/
|
|
566
|
-
'ipAddress'
|
|
591
|
+
'ipAddress': string;
|
|
567
592
|
/**
|
|
568
593
|
* Approximate geographic location of the IP address. Returns \'Local, N/A\' for localhost or private IPs.
|
|
569
594
|
*/
|
|
570
|
-
'approximateLocation'
|
|
595
|
+
'approximateLocation': string;
|
|
571
596
|
/**
|
|
572
597
|
* Confidence score representing the percentage of VPN detection services that flagged this IP as suspicious. Range: 0.0 (clean) to 100.0 (definitely VPN/proxy).
|
|
573
598
|
*/
|
|
574
|
-
'percentPositive'
|
|
599
|
+
'percentPositive': number;
|
|
575
600
|
/**
|
|
576
601
|
* Total number of VPN detection services successfully queried during the last check.
|
|
577
602
|
*/
|
|
578
|
-
'numberOfChecks'
|
|
603
|
+
'numberOfChecks': number;
|
|
579
604
|
/**
|
|
580
605
|
* Indicates if this IP address has been administratively bypassed.
|
|
581
606
|
*/
|
|
582
|
-
'isBypassed'
|
|
607
|
+
'isBypassed': boolean;
|
|
583
608
|
/**
|
|
584
609
|
* Expiration timestamp for the bypass (ISO-8601 format). Null if not bypassed or bypass is permanent.
|
|
585
610
|
*/
|
|
@@ -587,7 +612,7 @@ export interface ConnectionGetConnectionDetailsResponse {
|
|
|
587
612
|
/**
|
|
588
613
|
* Results from each VPN detection service that checked this IP address
|
|
589
614
|
*/
|
|
590
|
-
'results'
|
|
615
|
+
'results': Array<AdminConnectionCheckResult>;
|
|
591
616
|
/**
|
|
592
617
|
* Player information associated with this connection. Only populated when \'associate_uuid\' query parameter is provided.
|
|
593
618
|
*/
|
|
@@ -595,7 +620,7 @@ export interface ConnectionGetConnectionDetailsResponse {
|
|
|
595
620
|
/**
|
|
596
621
|
* Combined list of active punishments for both the IP address and player UUID (if provided). Only includes non-expired punishments.
|
|
597
622
|
*/
|
|
598
|
-
'punishments'
|
|
623
|
+
'punishments': Array<PunishmentGetPunishmentResponse>;
|
|
599
624
|
/**
|
|
600
625
|
* Join enforcement result. Only populated when \'associate_uuid\' query parameter is provided. Contains the final allow/deny decision and a formatted kick message if denied.
|
|
601
626
|
*/
|
|
@@ -655,19 +680,19 @@ export interface PlayerGetPlayerInformation {
|
|
|
655
680
|
/**
|
|
656
681
|
* Indicates whether this is the player\'s first time joining the server.
|
|
657
682
|
*/
|
|
658
|
-
'firstJoin'
|
|
683
|
+
'firstJoin': boolean;
|
|
659
684
|
/**
|
|
660
685
|
* Timestamp of when the player first connected to the server (ISO-8601 format).
|
|
661
686
|
*/
|
|
662
|
-
'firstLogin'
|
|
687
|
+
'firstLogin': string;
|
|
663
688
|
/**
|
|
664
689
|
* Raw punishment score calculated as: SUM((base_weight × severity/10)). Used for tracking overall punishment severity.
|
|
665
690
|
*/
|
|
666
|
-
'punishmentPointsRaw'
|
|
691
|
+
'punishmentPointsRaw': number;
|
|
667
692
|
/**
|
|
668
693
|
* Punishment score as a percentage (0-100). When >100% before applying a new punishment, the new punishment should be made permanent.
|
|
669
694
|
*/
|
|
670
|
-
'punishmentPointsPercent'
|
|
695
|
+
'punishmentPointsPercent': number;
|
|
671
696
|
}
|
|
672
697
|
/**
|
|
673
698
|
* Punishment information including reason, type, creator, and expiration
|
|
@@ -676,11 +701,11 @@ export interface PunishmentGetPunishmentResponse {
|
|
|
676
701
|
/**
|
|
677
702
|
* Unique identifier for the punishment
|
|
678
703
|
*/
|
|
679
|
-
'id'
|
|
704
|
+
'id': number;
|
|
680
705
|
/**
|
|
681
706
|
* Reason for the punishment, shown to the punished player
|
|
682
707
|
*/
|
|
683
|
-
'reason'
|
|
708
|
+
'reason': string;
|
|
684
709
|
/**
|
|
685
710
|
* Internal administrator notes — not shown to the punished player
|
|
686
711
|
*/
|
|
@@ -688,15 +713,15 @@ export interface PunishmentGetPunishmentResponse {
|
|
|
688
713
|
/**
|
|
689
714
|
* Type of punishment
|
|
690
715
|
*/
|
|
691
|
-
'type'
|
|
716
|
+
'type': PunishmentType;
|
|
692
717
|
/**
|
|
693
718
|
* Severity level (1=Minor, 2=Moderate, 3=Severe, 4=Critical)
|
|
694
719
|
*/
|
|
695
|
-
'severity'
|
|
720
|
+
'severity': number;
|
|
696
721
|
/**
|
|
697
722
|
* Username or identifier of the person who created this punishment
|
|
698
723
|
*/
|
|
699
|
-
'createdBy'
|
|
724
|
+
'createdBy': string;
|
|
700
725
|
/**
|
|
701
726
|
* Timestamp when the punishment expires (ISO-8601 format). Null for permanent punishments.
|
|
702
727
|
*/
|
|
@@ -704,7 +729,7 @@ export interface PunishmentGetPunishmentResponse {
|
|
|
704
729
|
/**
|
|
705
730
|
* Timestamp when the punishment was created (ISO-8601 format)
|
|
706
731
|
*/
|
|
707
|
-
'createdAt'
|
|
732
|
+
'createdAt': string;
|
|
708
733
|
}
|
|
709
734
|
|
|
710
735
|
|
|
@@ -715,7 +740,7 @@ export interface PunishmentSeveritiesResponse {
|
|
|
715
740
|
/**
|
|
716
741
|
* List of punishment types with their severity durations
|
|
717
742
|
*/
|
|
718
|
-
'punishmentTypes'
|
|
743
|
+
'punishmentTypes': Array<PunishmentSeveritiesResponsePunishmentTypeInfo>;
|
|
719
744
|
}
|
|
720
745
|
/**
|
|
721
746
|
* Punishment type with severity information
|
|
@@ -724,11 +749,11 @@ export interface PunishmentSeveritiesResponsePunishmentTypeInfo {
|
|
|
724
749
|
/**
|
|
725
750
|
* Type of punishment
|
|
726
751
|
*/
|
|
727
|
-
'type'
|
|
752
|
+
'type': PunishmentType;
|
|
728
753
|
/**
|
|
729
754
|
* List of severity levels with durations
|
|
730
755
|
*/
|
|
731
|
-
'severities'
|
|
756
|
+
'severities': Array<PunishmentSeveritiesResponseSeverityInfo>;
|
|
732
757
|
}
|
|
733
758
|
|
|
734
759
|
|
|
@@ -739,11 +764,11 @@ export interface PunishmentSeveritiesResponseSeverityInfo {
|
|
|
739
764
|
/**
|
|
740
765
|
* Severity level
|
|
741
766
|
*/
|
|
742
|
-
'severity'
|
|
767
|
+
'severity': number;
|
|
743
768
|
/**
|
|
744
769
|
* Duration in seconds (0 means no duration)
|
|
745
770
|
*/
|
|
746
|
-
'durationSeconds'
|
|
771
|
+
'durationSeconds': number;
|
|
747
772
|
}
|
|
748
773
|
|
|
749
774
|
export const PunishmentTargetType = {
|
|
@@ -1386,6 +1411,40 @@ export class AdminClientCredentialsApi extends BaseAPI {
|
|
|
1386
1411
|
*/
|
|
1387
1412
|
export const AdminConnectionsApiAxiosParamCreator = function (configuration?: Configuration) {
|
|
1388
1413
|
return {
|
|
1414
|
+
/**
|
|
1415
|
+
* 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.
|
|
1416
|
+
* @summary Backfill missing location data
|
|
1417
|
+
* @param {*} [options] Override http request option.
|
|
1418
|
+
* @throws {RequiredError}
|
|
1419
|
+
*/
|
|
1420
|
+
backfillLocation: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
|
|
1421
|
+
const localVarPath = `/admin/connection/backfill-location`;
|
|
1422
|
+
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
1423
|
+
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
|
|
1424
|
+
let baseOptions;
|
|
1425
|
+
if (configuration) {
|
|
1426
|
+
baseOptions = configuration.baseOptions;
|
|
1427
|
+
}
|
|
1428
|
+
|
|
1429
|
+
const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
|
|
1430
|
+
const localVarHeaderParameter = {} as any;
|
|
1431
|
+
const localVarQueryParameter = {} as any;
|
|
1432
|
+
|
|
1433
|
+
// authentication DiscordAuth required
|
|
1434
|
+
// http bearer authentication required
|
|
1435
|
+
await setBearerAuthToObject(localVarHeaderParameter, configuration)
|
|
1436
|
+
|
|
1437
|
+
localVarHeaderParameter['Accept'] = 'application/json';
|
|
1438
|
+
|
|
1439
|
+
setSearchParams(localVarUrlObj, localVarQueryParameter);
|
|
1440
|
+
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
1441
|
+
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
|
|
1442
|
+
|
|
1443
|
+
return {
|
|
1444
|
+
url: toPathString(localVarUrlObj),
|
|
1445
|
+
options: localVarRequestOptions,
|
|
1446
|
+
};
|
|
1447
|
+
},
|
|
1389
1448
|
/**
|
|
1390
1449
|
* Creates a temporary bypass for an IP address, expiring at the specified epoch timestamp (milliseconds since Unix epoch).
|
|
1391
1450
|
* @summary Create connection bypass
|
|
@@ -1604,6 +1663,18 @@ export const AdminConnectionsApiAxiosParamCreator = function (configuration?: Co
|
|
|
1604
1663
|
export const AdminConnectionsApiFp = function(configuration?: Configuration) {
|
|
1605
1664
|
const localVarAxiosParamCreator = AdminConnectionsApiAxiosParamCreator(configuration)
|
|
1606
1665
|
return {
|
|
1666
|
+
/**
|
|
1667
|
+
* 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.
|
|
1668
|
+
* @summary Backfill missing location data
|
|
1669
|
+
* @param {*} [options] Override http request option.
|
|
1670
|
+
* @throws {RequiredError}
|
|
1671
|
+
*/
|
|
1672
|
+
async backfillLocation(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AdminBackfillLocationResponse>> {
|
|
1673
|
+
const localVarAxiosArgs = await localVarAxiosParamCreator.backfillLocation(options);
|
|
1674
|
+
const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
|
|
1675
|
+
const localVarOperationServerBasePath = operationServerMap['AdminConnectionsApi.backfillLocation']?.[localVarOperationServerIndex]?.url;
|
|
1676
|
+
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1677
|
+
},
|
|
1607
1678
|
/**
|
|
1608
1679
|
* Creates a temporary bypass for an IP address, expiring at the specified epoch timestamp (milliseconds since Unix epoch).
|
|
1609
1680
|
* @summary Create connection bypass
|
|
@@ -1676,6 +1747,15 @@ export const AdminConnectionsApiFp = function(configuration?: Configuration) {
|
|
|
1676
1747
|
export const AdminConnectionsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
|
|
1677
1748
|
const localVarFp = AdminConnectionsApiFp(configuration)
|
|
1678
1749
|
return {
|
|
1750
|
+
/**
|
|
1751
|
+
* 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.
|
|
1752
|
+
* @summary Backfill missing location data
|
|
1753
|
+
* @param {*} [options] Override http request option.
|
|
1754
|
+
* @throws {RequiredError}
|
|
1755
|
+
*/
|
|
1756
|
+
backfillLocation(options?: RawAxiosRequestConfig): AxiosPromise<AdminBackfillLocationResponse> {
|
|
1757
|
+
return localVarFp.backfillLocation(options).then((request) => request(axios, basePath));
|
|
1758
|
+
},
|
|
1679
1759
|
/**
|
|
1680
1760
|
* Creates a temporary bypass for an IP address, expiring at the specified epoch timestamp (milliseconds since Unix epoch).
|
|
1681
1761
|
* @summary Create connection bypass
|
|
@@ -1734,6 +1814,16 @@ export const AdminConnectionsApiFactory = function (configuration?: Configuratio
|
|
|
1734
1814
|
* AdminConnectionsApi - object-oriented interface
|
|
1735
1815
|
*/
|
|
1736
1816
|
export class AdminConnectionsApi extends BaseAPI {
|
|
1817
|
+
/**
|
|
1818
|
+
* 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.
|
|
1819
|
+
* @summary Backfill missing location data
|
|
1820
|
+
* @param {*} [options] Override http request option.
|
|
1821
|
+
* @throws {RequiredError}
|
|
1822
|
+
*/
|
|
1823
|
+
public backfillLocation(options?: RawAxiosRequestConfig) {
|
|
1824
|
+
return AdminConnectionsApiFp(this.configuration).backfillLocation(options).then((request) => request(this.axios, this.basePath));
|
|
1825
|
+
}
|
|
1826
|
+
|
|
1737
1827
|
/**
|
|
1738
1828
|
* Creates a temporary bypass for an IP address, expiring at the specified epoch timestamp (milliseconds since Unix epoch).
|
|
1739
1829
|
* @summary Create connection bypass
|