@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
package/dist/esm/api.js 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.2.1
7
+ * The version of the OpenAPI document: 4.0.0
8
8
  *
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -40,10 +40,35 @@ export const GameType = {
40
40
  Legacy: 'LEGACY',
41
41
  Classic: 'CLASSIC'
42
42
  };
43
+ /**
44
+ * Current lifecycle state.
45
+ */
46
+ export const JobStatus = {
47
+ Queued: 'QUEUED',
48
+ Running: 'RUNNING',
49
+ Completed: 'COMPLETED',
50
+ Failed: 'FAILED',
51
+ Cancelled: 'CANCELLED'
52
+ };
53
+ export const PageableMode = {
54
+ CursorNext: 'CURSOR_NEXT',
55
+ CursorPrevious: 'CURSOR_PREVIOUS',
56
+ Offset: 'OFFSET'
57
+ };
58
+ /**
59
+ * 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.
60
+ */
61
+ export const PunishmentSource = {
62
+ Direct: 'DIRECT',
63
+ Propagated: 'PROPAGATED'
64
+ };
43
65
  export const PunishmentTargetType = {
44
66
  Player: 'PLAYER',
45
67
  Connection: 'CONNECTION'
46
68
  };
69
+ /**
70
+ * Type of punishment
71
+ */
47
72
  export const PunishmentType = {
48
73
  Ban: 'BAN',
49
74
  Mute: 'MUTE',
@@ -59,6 +84,16 @@ export const Region = {
59
84
  Eu: 'EU',
60
85
  Au: 'AU'
61
86
  };
87
+ /**
88
+ * Category of misconduct. Coarse on purpose — staff refine in triage.
89
+ */
90
+ export const ReportCategory = {
91
+ Cheating: 'CHEATING',
92
+ Harassment: 'HARASSMENT',
93
+ ChatAbuse: 'CHAT_ABUSE',
94
+ Griefing: 'GRIEFING',
95
+ Other: 'OTHER'
96
+ };
62
97
  /**
63
98
  * Search kind — PLAYER for UUID/username searches, IP for IP address searches
64
99
  */
@@ -66,6 +101,236 @@ export const SearchKind = {
66
101
  Player: 'PLAYER',
67
102
  Ip: 'IP'
68
103
  };
104
+ export const SortOrderDirection = {
105
+ Asc: 'ASC',
106
+ Desc: 'DESC'
107
+ };
108
+ /**
109
+ * AdminAuditLogApi - axios parameter creator
110
+ */
111
+ export const AdminAuditLogApiAxiosParamCreator = function (configuration) {
112
+ return {
113
+ /**
114
+ * Paginated audit-log search. All filter parameters are optional; an empty filter set returns the most recent rows across the system. Sorted newest-first.
115
+ * @summary Search the admin audit log
116
+ * @param {Pageable} pageable
117
+ * @param {string | null} [actor] Filter to actions performed by this Discord username (case-sensitive exact match)
118
+ * @param {string | null} [action] Filter to a specific action verb (e.g. REVOKE_PROPAGATED_LINK, SET_AGGRESSIVE_MODE_IMMUNITY)
119
+ * @param {string | null} [targetType] Filter to a specific target type (e.g. PLAYER, PUNISHMENT, PLAYER_PUNISHMENT)
120
+ * @param {string | null} [targetId] Filter to a specific target id (paired with targetType for narrowing)
121
+ * @param {*} [options] Override http request option.
122
+ * @throws {RequiredError}
123
+ */
124
+ search: (pageable_1, actor_1, action_1, targetType_1, targetId_1, ...args_1) => __awaiter(this, [pageable_1, actor_1, action_1, targetType_1, targetId_1, ...args_1], void 0, function* (pageable, actor, action, targetType, targetId, options = {}) {
125
+ // verify required parameter 'pageable' is not null or undefined
126
+ assertParamExists('search', 'pageable', pageable);
127
+ const localVarPath = `/admin/audit-log`;
128
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
129
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
130
+ let baseOptions;
131
+ if (configuration) {
132
+ baseOptions = configuration.baseOptions;
133
+ }
134
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
135
+ const localVarHeaderParameter = {};
136
+ const localVarQueryParameter = {};
137
+ // authentication DiscordAuth required
138
+ // http bearer authentication required
139
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
140
+ if (actor !== undefined) {
141
+ localVarQueryParameter['actor'] = actor;
142
+ }
143
+ if (action !== undefined) {
144
+ localVarQueryParameter['action'] = action;
145
+ }
146
+ if (targetType !== undefined) {
147
+ localVarQueryParameter['targetType'] = targetType;
148
+ }
149
+ if (targetId !== undefined) {
150
+ localVarQueryParameter['targetId'] = targetId;
151
+ }
152
+ if (pageable !== undefined) {
153
+ localVarQueryParameter['pageable'] = pageable;
154
+ }
155
+ localVarHeaderParameter['Accept'] = 'application/json';
156
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
157
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
158
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
159
+ return {
160
+ url: toPathString(localVarUrlObj),
161
+ options: localVarRequestOptions,
162
+ };
163
+ }),
164
+ /**
165
+ * Cursor-based companion to GET /admin/audit-log. Preferred for the admin UI\'s infinite-scroll view of the audit log because the SQL plan stays flat as the table grows — offset pagination degrades linearly with depth, this does not. Pass the {@code cursor} returned in the previous response to get the next page; omit it for the first page.
166
+ * @summary Cursor-paginated audit-log search (infinite scroll)
167
+ * @param {CursoredPageable} pageable
168
+ * @param {string | null} [actor]
169
+ * @param {string | null} [action]
170
+ * @param {string | null} [targetType]
171
+ * @param {string | null} [targetId]
172
+ * @param {*} [options] Override http request option.
173
+ * @throws {RequiredError}
174
+ */
175
+ searchCursor: (pageable_1, actor_1, action_1, targetType_1, targetId_1, ...args_1) => __awaiter(this, [pageable_1, actor_1, action_1, targetType_1, targetId_1, ...args_1], void 0, function* (pageable, actor, action, targetType, targetId, options = {}) {
176
+ // verify required parameter 'pageable' is not null or undefined
177
+ assertParamExists('searchCursor', 'pageable', pageable);
178
+ const localVarPath = `/admin/audit-log/cursor`;
179
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
180
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
181
+ let baseOptions;
182
+ if (configuration) {
183
+ baseOptions = configuration.baseOptions;
184
+ }
185
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
186
+ const localVarHeaderParameter = {};
187
+ const localVarQueryParameter = {};
188
+ // authentication DiscordAuth required
189
+ // http bearer authentication required
190
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
191
+ if (actor !== undefined) {
192
+ localVarQueryParameter['actor'] = actor;
193
+ }
194
+ if (action !== undefined) {
195
+ localVarQueryParameter['action'] = action;
196
+ }
197
+ if (targetType !== undefined) {
198
+ localVarQueryParameter['targetType'] = targetType;
199
+ }
200
+ if (targetId !== undefined) {
201
+ localVarQueryParameter['targetId'] = targetId;
202
+ }
203
+ if (pageable !== undefined) {
204
+ localVarQueryParameter['pageable'] = pageable;
205
+ }
206
+ localVarHeaderParameter['Accept'] = 'application/json';
207
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
208
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
209
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
210
+ return {
211
+ url: toPathString(localVarUrlObj),
212
+ options: localVarRequestOptions,
213
+ };
214
+ }),
215
+ };
216
+ };
217
+ /**
218
+ * AdminAuditLogApi - functional programming interface
219
+ */
220
+ export const AdminAuditLogApiFp = function (configuration) {
221
+ const localVarAxiosParamCreator = AdminAuditLogApiAxiosParamCreator(configuration);
222
+ return {
223
+ /**
224
+ * Paginated audit-log search. All filter parameters are optional; an empty filter set returns the most recent rows across the system. Sorted newest-first.
225
+ * @summary Search the admin audit log
226
+ * @param {Pageable} pageable
227
+ * @param {string | null} [actor] Filter to actions performed by this Discord username (case-sensitive exact match)
228
+ * @param {string | null} [action] Filter to a specific action verb (e.g. REVOKE_PROPAGATED_LINK, SET_AGGRESSIVE_MODE_IMMUNITY)
229
+ * @param {string | null} [targetType] Filter to a specific target type (e.g. PLAYER, PUNISHMENT, PLAYER_PUNISHMENT)
230
+ * @param {string | null} [targetId] Filter to a specific target id (paired with targetType for narrowing)
231
+ * @param {*} [options] Override http request option.
232
+ * @throws {RequiredError}
233
+ */
234
+ search(pageable, actor, action, targetType, targetId, options) {
235
+ return __awaiter(this, void 0, void 0, function* () {
236
+ var _a, _b, _c;
237
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.search(pageable, actor, action, targetType, targetId, options);
238
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
239
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminAuditLogApi.search']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
240
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
241
+ });
242
+ },
243
+ /**
244
+ * Cursor-based companion to GET /admin/audit-log. Preferred for the admin UI\'s infinite-scroll view of the audit log because the SQL plan stays flat as the table grows — offset pagination degrades linearly with depth, this does not. Pass the {@code cursor} returned in the previous response to get the next page; omit it for the first page.
245
+ * @summary Cursor-paginated audit-log search (infinite scroll)
246
+ * @param {CursoredPageable} pageable
247
+ * @param {string | null} [actor]
248
+ * @param {string | null} [action]
249
+ * @param {string | null} [targetType]
250
+ * @param {string | null} [targetId]
251
+ * @param {*} [options] Override http request option.
252
+ * @throws {RequiredError}
253
+ */
254
+ searchCursor(pageable, actor, action, targetType, targetId, options) {
255
+ return __awaiter(this, void 0, void 0, function* () {
256
+ var _a, _b, _c;
257
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.searchCursor(pageable, actor, action, targetType, targetId, options);
258
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
259
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminAuditLogApi.searchCursor']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
260
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
261
+ });
262
+ },
263
+ };
264
+ };
265
+ /**
266
+ * AdminAuditLogApi - factory interface
267
+ */
268
+ export const AdminAuditLogApiFactory = function (configuration, basePath, axios) {
269
+ const localVarFp = AdminAuditLogApiFp(configuration);
270
+ return {
271
+ /**
272
+ * Paginated audit-log search. All filter parameters are optional; an empty filter set returns the most recent rows across the system. Sorted newest-first.
273
+ * @summary Search the admin audit log
274
+ * @param {Pageable} pageable
275
+ * @param {string | null} [actor] Filter to actions performed by this Discord username (case-sensitive exact match)
276
+ * @param {string | null} [action] Filter to a specific action verb (e.g. REVOKE_PROPAGATED_LINK, SET_AGGRESSIVE_MODE_IMMUNITY)
277
+ * @param {string | null} [targetType] Filter to a specific target type (e.g. PLAYER, PUNISHMENT, PLAYER_PUNISHMENT)
278
+ * @param {string | null} [targetId] Filter to a specific target id (paired with targetType for narrowing)
279
+ * @param {*} [options] Override http request option.
280
+ * @throws {RequiredError}
281
+ */
282
+ search(pageable, actor, action, targetType, targetId, options) {
283
+ return localVarFp.search(pageable, actor, action, targetType, targetId, options).then((request) => request(axios, basePath));
284
+ },
285
+ /**
286
+ * Cursor-based companion to GET /admin/audit-log. Preferred for the admin UI\'s infinite-scroll view of the audit log because the SQL plan stays flat as the table grows — offset pagination degrades linearly with depth, this does not. Pass the {@code cursor} returned in the previous response to get the next page; omit it for the first page.
287
+ * @summary Cursor-paginated audit-log search (infinite scroll)
288
+ * @param {CursoredPageable} pageable
289
+ * @param {string | null} [actor]
290
+ * @param {string | null} [action]
291
+ * @param {string | null} [targetType]
292
+ * @param {string | null} [targetId]
293
+ * @param {*} [options] Override http request option.
294
+ * @throws {RequiredError}
295
+ */
296
+ searchCursor(pageable, actor, action, targetType, targetId, options) {
297
+ return localVarFp.searchCursor(pageable, actor, action, targetType, targetId, options).then((request) => request(axios, basePath));
298
+ },
299
+ };
300
+ };
301
+ /**
302
+ * AdminAuditLogApi - object-oriented interface
303
+ */
304
+ export class AdminAuditLogApi extends BaseAPI {
305
+ /**
306
+ * Paginated audit-log search. All filter parameters are optional; an empty filter set returns the most recent rows across the system. Sorted newest-first.
307
+ * @summary Search the admin audit log
308
+ * @param {Pageable} pageable
309
+ * @param {string | null} [actor] Filter to actions performed by this Discord username (case-sensitive exact match)
310
+ * @param {string | null} [action] Filter to a specific action verb (e.g. REVOKE_PROPAGATED_LINK, SET_AGGRESSIVE_MODE_IMMUNITY)
311
+ * @param {string | null} [targetType] Filter to a specific target type (e.g. PLAYER, PUNISHMENT, PLAYER_PUNISHMENT)
312
+ * @param {string | null} [targetId] Filter to a specific target id (paired with targetType for narrowing)
313
+ * @param {*} [options] Override http request option.
314
+ * @throws {RequiredError}
315
+ */
316
+ search(pageable, actor, action, targetType, targetId, options) {
317
+ return AdminAuditLogApiFp(this.configuration).search(pageable, actor, action, targetType, targetId, options).then((request) => request(this.axios, this.basePath));
318
+ }
319
+ /**
320
+ * Cursor-based companion to GET /admin/audit-log. Preferred for the admin UI\'s infinite-scroll view of the audit log because the SQL plan stays flat as the table grows — offset pagination degrades linearly with depth, this does not. Pass the {@code cursor} returned in the previous response to get the next page; omit it for the first page.
321
+ * @summary Cursor-paginated audit-log search (infinite scroll)
322
+ * @param {CursoredPageable} pageable
323
+ * @param {string | null} [actor]
324
+ * @param {string | null} [action]
325
+ * @param {string | null} [targetType]
326
+ * @param {string | null} [targetId]
327
+ * @param {*} [options] Override http request option.
328
+ * @throws {RequiredError}
329
+ */
330
+ searchCursor(pageable, actor, action, targetType, targetId, options) {
331
+ return AdminAuditLogApiFp(this.configuration).searchCursor(pageable, actor, action, targetType, targetId, options).then((request) => request(this.axios, this.basePath));
332
+ }
333
+ }
69
334
  /**
70
335
  * AdminClientCredentialsApi - axios parameter creator
71
336
  */
@@ -582,8 +847,8 @@ export class AdminClientCredentialsApi extends BaseAPI {
582
847
  export const AdminConnectionsApiAxiosParamCreator = function (configuration) {
583
848
  return {
584
849
  /**
585
- * 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.
586
- * @summary Backfill missing location data
850
+ * 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.
851
+ * @summary Start a location backfill job
587
852
  * @param {*} [options] Override http request option.
588
853
  * @throws {RequiredError}
589
854
  */
@@ -644,18 +909,93 @@ export const AdminConnectionsApiAxiosParamCreator = function (configuration) {
644
909
  options: localVarRequestOptions,
645
910
  };
646
911
  }),
912
+ /**
913
+ * Single connection by id, enriched with VPN check results and bypass status — same shape as the dashboard list row.
914
+ * @summary Get connection detail
915
+ * @param {number} id
916
+ * @param {*} [options] Override http request option.
917
+ * @throws {RequiredError}
918
+ */
919
+ getConnection: (id_1, ...args_1) => __awaiter(this, [id_1, ...args_1], void 0, function* (id, options = {}) {
920
+ // verify required parameter 'id' is not null or undefined
921
+ assertParamExists('getConnection', 'id', id);
922
+ const localVarPath = `/admin/connection/{id}`
923
+ .replace(`{${"id"}}`, encodeURIComponent(String(id)));
924
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
925
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
926
+ let baseOptions;
927
+ if (configuration) {
928
+ baseOptions = configuration.baseOptions;
929
+ }
930
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
931
+ const localVarHeaderParameter = {};
932
+ const localVarQueryParameter = {};
933
+ // authentication DiscordAuth required
934
+ // http bearer authentication required
935
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
936
+ localVarHeaderParameter['Accept'] = 'application/json';
937
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
938
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
939
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
940
+ return {
941
+ url: toPathString(localVarUrlObj),
942
+ options: localVarRequestOptions,
943
+ };
944
+ }),
945
+ /**
946
+ * 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.
947
+ * @summary List players who have used this connection
948
+ * @param {number} id
949
+ * @param {Pageable} pageable
950
+ * @param {*} [options] Override http request option.
951
+ * @throws {RequiredError}
952
+ */
953
+ getConnectionPlayers: (id_1, pageable_1, ...args_1) => __awaiter(this, [id_1, pageable_1, ...args_1], void 0, function* (id, pageable, options = {}) {
954
+ // verify required parameter 'id' is not null or undefined
955
+ assertParamExists('getConnectionPlayers', 'id', id);
956
+ // verify required parameter 'pageable' is not null or undefined
957
+ assertParamExists('getConnectionPlayers', 'pageable', pageable);
958
+ const localVarPath = `/admin/connection/{id}/players`
959
+ .replace(`{${"id"}}`, encodeURIComponent(String(id)));
960
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
961
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
962
+ let baseOptions;
963
+ if (configuration) {
964
+ baseOptions = configuration.baseOptions;
965
+ }
966
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
967
+ const localVarHeaderParameter = {};
968
+ const localVarQueryParameter = {};
969
+ // authentication DiscordAuth required
970
+ // http bearer authentication required
971
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
972
+ if (pageable !== undefined) {
973
+ localVarQueryParameter['pageable'] = pageable;
974
+ }
975
+ localVarHeaderParameter['Accept'] = 'application/json';
976
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
977
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
978
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
979
+ return {
980
+ url: toPathString(localVarUrlObj),
981
+ options: localVarRequestOptions,
982
+ };
983
+ }),
647
984
  /**
648
985
  * Returns a paginated list of all connections with a total count. Supports filtering by IP address, UUID, and VPN status.
649
986
  * @summary List all connections (paginated)
650
- * @param {string | null} [ipAddress] Filter by IP address
651
- * @param {string | null} [uuid] Filter by player UUID
652
- * @param {boolean | null} [isVpn] Filter by VPN status
653
- * @param {number | null} [page] Page number (1-indexed)
654
- * @param {number | null} [limit] Page size
987
+ * @param {Pageable} pageable
988
+ * @param {number | null} [createdAfter]
989
+ * @param {number | null} [createdBefore]
990
+ * @param {string | null} [ipAddress]
991
+ * @param {string | null} [uuid]
992
+ * @param {boolean | null} [isVpn]
655
993
  * @param {*} [options] Override http request option.
656
994
  * @throws {RequiredError}
657
995
  */
658
- listAllConnections: (ipAddress_1, uuid_1, isVpn_1, page_1, limit_1, ...args_1) => __awaiter(this, [ipAddress_1, uuid_1, isVpn_1, page_1, limit_1, ...args_1], void 0, function* (ipAddress, uuid, isVpn, page, limit, options = {}) {
996
+ listAllConnections: (pageable_1, createdAfter_1, createdBefore_1, ipAddress_1, uuid_1, isVpn_1, ...args_1) => __awaiter(this, [pageable_1, createdAfter_1, createdBefore_1, ipAddress_1, uuid_1, isVpn_1, ...args_1], void 0, function* (pageable, createdAfter, createdBefore, ipAddress, uuid, isVpn, options = {}) {
997
+ // verify required parameter 'pageable' is not null or undefined
998
+ assertParamExists('listAllConnections', 'pageable', pageable);
659
999
  const localVarPath = `/admin/connection`;
660
1000
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
661
1001
  const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
@@ -669,6 +1009,12 @@ export const AdminConnectionsApiAxiosParamCreator = function (configuration) {
669
1009
  // authentication DiscordAuth required
670
1010
  // http bearer authentication required
671
1011
  yield setBearerAuthToObject(localVarHeaderParameter, configuration);
1012
+ if (createdAfter !== undefined) {
1013
+ localVarQueryParameter['createdAfter'] = createdAfter;
1014
+ }
1015
+ if (createdBefore !== undefined) {
1016
+ localVarQueryParameter['createdBefore'] = createdBefore;
1017
+ }
672
1018
  if (ipAddress !== undefined) {
673
1019
  localVarQueryParameter['ipAddress'] = ipAddress;
674
1020
  }
@@ -678,11 +1024,8 @@ export const AdminConnectionsApiAxiosParamCreator = function (configuration) {
678
1024
  if (isVpn !== undefined) {
679
1025
  localVarQueryParameter['isVpn'] = isVpn;
680
1026
  }
681
- if (page !== undefined) {
682
- localVarQueryParameter['page'] = page;
683
- }
684
- if (limit !== undefined) {
685
- localVarQueryParameter['limit'] = limit;
1027
+ if (pageable !== undefined) {
1028
+ localVarQueryParameter['pageable'] = pageable;
686
1029
  }
687
1030
  localVarHeaderParameter['Accept'] = 'application/json';
688
1031
  setSearchParams(localVarUrlObj, localVarQueryParameter);
@@ -696,17 +1039,18 @@ export const AdminConnectionsApiAxiosParamCreator = function (configuration) {
696
1039
  /**
697
1040
  * Returns a list of recent connections with VPN detection status, bypass information, and associated player data. Optionally filter by epoch timestamp (seconds since Unix epoch).
698
1041
  * @summary List recent connections
699
- * @param {number | null} [createdAfter] Filter connections after this epoch timestamp in milliseconds
700
- * @param {number | null} [createdBefore] Filter connections before this epoch timestamp in milliseconds
701
- * @param {string | null} [ipAddress] Filter by IP address
702
- * @param {string | null} [uuid] Filter by player UUID
703
- * @param {boolean | null} [isVpn] Filter by VPN status (true=VPN, false=not VPN)
704
- * @param {number | null} [page] Page number for pagination
705
- * @param {number | null} [limit] Maximum number of records to return
1042
+ * @param {Pageable} pageable
1043
+ * @param {number | null} [createdAfter]
1044
+ * @param {number | null} [createdBefore]
1045
+ * @param {string | null} [ipAddress]
1046
+ * @param {string | null} [uuid]
1047
+ * @param {boolean | null} [isVpn]
706
1048
  * @param {*} [options] Override http request option.
707
1049
  * @throws {RequiredError}
708
1050
  */
709
- listConnections: (createdAfter_1, createdBefore_1, ipAddress_1, uuid_1, isVpn_1, page_1, limit_1, ...args_1) => __awaiter(this, [createdAfter_1, createdBefore_1, ipAddress_1, uuid_1, isVpn_1, page_1, limit_1, ...args_1], void 0, function* (createdAfter, createdBefore, ipAddress, uuid, isVpn, page, limit, options = {}) {
1051
+ listConnections: (pageable_1, createdAfter_1, createdBefore_1, ipAddress_1, uuid_1, isVpn_1, ...args_1) => __awaiter(this, [pageable_1, createdAfter_1, createdBefore_1, ipAddress_1, uuid_1, isVpn_1, ...args_1], void 0, function* (pageable, createdAfter, createdBefore, ipAddress, uuid, isVpn, options = {}) {
1052
+ // verify required parameter 'pageable' is not null or undefined
1053
+ assertParamExists('listConnections', 'pageable', pageable);
710
1054
  const localVarPath = `/admin/connection/recent`;
711
1055
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
712
1056
  const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
@@ -735,11 +1079,8 @@ export const AdminConnectionsApiAxiosParamCreator = function (configuration) {
735
1079
  if (isVpn !== undefined) {
736
1080
  localVarQueryParameter['isVpn'] = isVpn;
737
1081
  }
738
- if (page !== undefined) {
739
- localVarQueryParameter['page'] = page;
740
- }
741
- if (limit !== undefined) {
742
- localVarQueryParameter['limit'] = limit;
1082
+ if (pageable !== undefined) {
1083
+ localVarQueryParameter['pageable'] = pageable;
743
1084
  }
744
1085
  localVarHeaderParameter['Accept'] = 'application/json';
745
1086
  setSearchParams(localVarUrlObj, localVarQueryParameter);
@@ -796,8 +1137,8 @@ export const AdminConnectionsApiFp = function (configuration) {
796
1137
  const localVarAxiosParamCreator = AdminConnectionsApiAxiosParamCreator(configuration);
797
1138
  return {
798
1139
  /**
799
- * 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.
800
- * @summary Backfill missing location data
1140
+ * 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.
1141
+ * @summary Start a location backfill job
801
1142
  * @param {*} [options] Override http request option.
802
1143
  * @throws {RequiredError}
803
1144
  */
@@ -826,21 +1167,55 @@ export const AdminConnectionsApiFp = function (configuration) {
826
1167
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
827
1168
  });
828
1169
  },
1170
+ /**
1171
+ * Single connection by id, enriched with VPN check results and bypass status — same shape as the dashboard list row.
1172
+ * @summary Get connection detail
1173
+ * @param {number} id
1174
+ * @param {*} [options] Override http request option.
1175
+ * @throws {RequiredError}
1176
+ */
1177
+ getConnection(id, options) {
1178
+ return __awaiter(this, void 0, void 0, function* () {
1179
+ var _a, _b, _c;
1180
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.getConnection(id, options);
1181
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
1182
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminConnectionsApi.getConnection']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
1183
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1184
+ });
1185
+ },
1186
+ /**
1187
+ * 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.
1188
+ * @summary List players who have used this connection
1189
+ * @param {number} id
1190
+ * @param {Pageable} pageable
1191
+ * @param {*} [options] Override http request option.
1192
+ * @throws {RequiredError}
1193
+ */
1194
+ getConnectionPlayers(id, pageable, options) {
1195
+ return __awaiter(this, void 0, void 0, function* () {
1196
+ var _a, _b, _c;
1197
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.getConnectionPlayers(id, pageable, options);
1198
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
1199
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminConnectionsApi.getConnectionPlayers']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
1200
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1201
+ });
1202
+ },
829
1203
  /**
830
1204
  * Returns a paginated list of all connections with a total count. Supports filtering by IP address, UUID, and VPN status.
831
1205
  * @summary List all connections (paginated)
832
- * @param {string | null} [ipAddress] Filter by IP address
833
- * @param {string | null} [uuid] Filter by player UUID
834
- * @param {boolean | null} [isVpn] Filter by VPN status
835
- * @param {number | null} [page] Page number (1-indexed)
836
- * @param {number | null} [limit] Page size
1206
+ * @param {Pageable} pageable
1207
+ * @param {number | null} [createdAfter]
1208
+ * @param {number | null} [createdBefore]
1209
+ * @param {string | null} [ipAddress]
1210
+ * @param {string | null} [uuid]
1211
+ * @param {boolean | null} [isVpn]
837
1212
  * @param {*} [options] Override http request option.
838
1213
  * @throws {RequiredError}
839
1214
  */
840
- listAllConnections(ipAddress, uuid, isVpn, page, limit, options) {
1215
+ listAllConnections(pageable, createdAfter, createdBefore, ipAddress, uuid, isVpn, options) {
841
1216
  return __awaiter(this, void 0, void 0, function* () {
842
1217
  var _a, _b, _c;
843
- const localVarAxiosArgs = yield localVarAxiosParamCreator.listAllConnections(ipAddress, uuid, isVpn, page, limit, options);
1218
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.listAllConnections(pageable, createdAfter, createdBefore, ipAddress, uuid, isVpn, options);
844
1219
  const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
845
1220
  const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminConnectionsApi.listAllConnections']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
846
1221
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
@@ -849,20 +1224,19 @@ export const AdminConnectionsApiFp = function (configuration) {
849
1224
  /**
850
1225
  * Returns a list of recent connections with VPN detection status, bypass information, and associated player data. Optionally filter by epoch timestamp (seconds since Unix epoch).
851
1226
  * @summary List recent connections
852
- * @param {number | null} [createdAfter] Filter connections after this epoch timestamp in milliseconds
853
- * @param {number | null} [createdBefore] Filter connections before this epoch timestamp in milliseconds
854
- * @param {string | null} [ipAddress] Filter by IP address
855
- * @param {string | null} [uuid] Filter by player UUID
856
- * @param {boolean | null} [isVpn] Filter by VPN status (true=VPN, false=not VPN)
857
- * @param {number | null} [page] Page number for pagination
858
- * @param {number | null} [limit] Maximum number of records to return
1227
+ * @param {Pageable} pageable
1228
+ * @param {number | null} [createdAfter]
1229
+ * @param {number | null} [createdBefore]
1230
+ * @param {string | null} [ipAddress]
1231
+ * @param {string | null} [uuid]
1232
+ * @param {boolean | null} [isVpn]
859
1233
  * @param {*} [options] Override http request option.
860
1234
  * @throws {RequiredError}
861
1235
  */
862
- listConnections(createdAfter, createdBefore, ipAddress, uuid, isVpn, page, limit, options) {
1236
+ listConnections(pageable, createdAfter, createdBefore, ipAddress, uuid, isVpn, options) {
863
1237
  return __awaiter(this, void 0, void 0, function* () {
864
1238
  var _a, _b, _c;
865
- const localVarAxiosArgs = yield localVarAxiosParamCreator.listConnections(createdAfter, createdBefore, ipAddress, uuid, isVpn, page, limit, options);
1239
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.listConnections(pageable, createdAfter, createdBefore, ipAddress, uuid, isVpn, options);
866
1240
  const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
867
1241
  const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminConnectionsApi.listConnections']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
868
1242
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
@@ -894,8 +1268,8 @@ export const AdminConnectionsApiFactory = function (configuration, basePath, axi
894
1268
  const localVarFp = AdminConnectionsApiFp(configuration);
895
1269
  return {
896
1270
  /**
897
- * 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.
898
- * @summary Backfill missing location data
1271
+ * 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.
1272
+ * @summary Start a location backfill job
899
1273
  * @param {*} [options] Override http request option.
900
1274
  * @throws {RequiredError}
901
1275
  */
@@ -912,35 +1286,56 @@ export const AdminConnectionsApiFactory = function (configuration, basePath, axi
912
1286
  createBypass(createBypassRequest, options) {
913
1287
  return localVarFp.createBypass(createBypassRequest, options).then((request) => request(axios, basePath));
914
1288
  },
1289
+ /**
1290
+ * Single connection by id, enriched with VPN check results and bypass status — same shape as the dashboard list row.
1291
+ * @summary Get connection detail
1292
+ * @param {number} id
1293
+ * @param {*} [options] Override http request option.
1294
+ * @throws {RequiredError}
1295
+ */
1296
+ getConnection(id, options) {
1297
+ return localVarFp.getConnection(id, options).then((request) => request(axios, basePath));
1298
+ },
1299
+ /**
1300
+ * 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.
1301
+ * @summary List players who have used this connection
1302
+ * @param {number} id
1303
+ * @param {Pageable} pageable
1304
+ * @param {*} [options] Override http request option.
1305
+ * @throws {RequiredError}
1306
+ */
1307
+ getConnectionPlayers(id, pageable, options) {
1308
+ return localVarFp.getConnectionPlayers(id, pageable, options).then((request) => request(axios, basePath));
1309
+ },
915
1310
  /**
916
1311
  * Returns a paginated list of all connections with a total count. Supports filtering by IP address, UUID, and VPN status.
917
1312
  * @summary List all connections (paginated)
918
- * @param {string | null} [ipAddress] Filter by IP address
919
- * @param {string | null} [uuid] Filter by player UUID
920
- * @param {boolean | null} [isVpn] Filter by VPN status
921
- * @param {number | null} [page] Page number (1-indexed)
922
- * @param {number | null} [limit] Page size
1313
+ * @param {Pageable} pageable
1314
+ * @param {number | null} [createdAfter]
1315
+ * @param {number | null} [createdBefore]
1316
+ * @param {string | null} [ipAddress]
1317
+ * @param {string | null} [uuid]
1318
+ * @param {boolean | null} [isVpn]
923
1319
  * @param {*} [options] Override http request option.
924
1320
  * @throws {RequiredError}
925
1321
  */
926
- listAllConnections(ipAddress, uuid, isVpn, page, limit, options) {
927
- return localVarFp.listAllConnections(ipAddress, uuid, isVpn, page, limit, options).then((request) => request(axios, basePath));
1322
+ listAllConnections(pageable, createdAfter, createdBefore, ipAddress, uuid, isVpn, options) {
1323
+ return localVarFp.listAllConnections(pageable, createdAfter, createdBefore, ipAddress, uuid, isVpn, options).then((request) => request(axios, basePath));
928
1324
  },
929
1325
  /**
930
1326
  * Returns a list of recent connections with VPN detection status, bypass information, and associated player data. Optionally filter by epoch timestamp (seconds since Unix epoch).
931
1327
  * @summary List recent connections
932
- * @param {number | null} [createdAfter] Filter connections after this epoch timestamp in milliseconds
933
- * @param {number | null} [createdBefore] Filter connections before this epoch timestamp in milliseconds
934
- * @param {string | null} [ipAddress] Filter by IP address
935
- * @param {string | null} [uuid] Filter by player UUID
936
- * @param {boolean | null} [isVpn] Filter by VPN status (true=VPN, false=not VPN)
937
- * @param {number | null} [page] Page number for pagination
938
- * @param {number | null} [limit] Maximum number of records to return
1328
+ * @param {Pageable} pageable
1329
+ * @param {number | null} [createdAfter]
1330
+ * @param {number | null} [createdBefore]
1331
+ * @param {string | null} [ipAddress]
1332
+ * @param {string | null} [uuid]
1333
+ * @param {boolean | null} [isVpn]
939
1334
  * @param {*} [options] Override http request option.
940
1335
  * @throws {RequiredError}
941
1336
  */
942
- listConnections(createdAfter, createdBefore, ipAddress, uuid, isVpn, page, limit, options) {
943
- return localVarFp.listConnections(createdAfter, createdBefore, ipAddress, uuid, isVpn, page, limit, options).then((request) => request(axios, basePath));
1337
+ listConnections(pageable, createdAfter, createdBefore, ipAddress, uuid, isVpn, options) {
1338
+ return localVarFp.listConnections(pageable, createdAfter, createdBefore, ipAddress, uuid, isVpn, options).then((request) => request(axios, basePath));
944
1339
  },
945
1340
  /**
946
1341
  * Re-runs one named VPN detection service for a specific connection, persists the updated result, and recalculates the connection\'s overall `percentPositive` and `numberOfChecks` from all stored checks. Returns the refreshed check result including its new `checkedAt` timestamp.
@@ -960,8 +1355,8 @@ export const AdminConnectionsApiFactory = function (configuration, basePath, axi
960
1355
  */
961
1356
  export class AdminConnectionsApi extends BaseAPI {
962
1357
  /**
963
- * 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.
964
- * @summary Backfill missing location data
1358
+ * 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.
1359
+ * @summary Start a location backfill job
965
1360
  * @param {*} [options] Override http request option.
966
1361
  * @throws {RequiredError}
967
1362
  */
@@ -978,35 +1373,56 @@ export class AdminConnectionsApi extends BaseAPI {
978
1373
  createBypass(createBypassRequest, options) {
979
1374
  return AdminConnectionsApiFp(this.configuration).createBypass(createBypassRequest, options).then((request) => request(this.axios, this.basePath));
980
1375
  }
1376
+ /**
1377
+ * Single connection by id, enriched with VPN check results and bypass status — same shape as the dashboard list row.
1378
+ * @summary Get connection detail
1379
+ * @param {number} id
1380
+ * @param {*} [options] Override http request option.
1381
+ * @throws {RequiredError}
1382
+ */
1383
+ getConnection(id, options) {
1384
+ return AdminConnectionsApiFp(this.configuration).getConnection(id, options).then((request) => request(this.axios, this.basePath));
1385
+ }
1386
+ /**
1387
+ * 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.
1388
+ * @summary List players who have used this connection
1389
+ * @param {number} id
1390
+ * @param {Pageable} pageable
1391
+ * @param {*} [options] Override http request option.
1392
+ * @throws {RequiredError}
1393
+ */
1394
+ getConnectionPlayers(id, pageable, options) {
1395
+ return AdminConnectionsApiFp(this.configuration).getConnectionPlayers(id, pageable, options).then((request) => request(this.axios, this.basePath));
1396
+ }
981
1397
  /**
982
1398
  * Returns a paginated list of all connections with a total count. Supports filtering by IP address, UUID, and VPN status.
983
1399
  * @summary List all connections (paginated)
984
- * @param {string | null} [ipAddress] Filter by IP address
985
- * @param {string | null} [uuid] Filter by player UUID
986
- * @param {boolean | null} [isVpn] Filter by VPN status
987
- * @param {number | null} [page] Page number (1-indexed)
988
- * @param {number | null} [limit] Page size
1400
+ * @param {Pageable} pageable
1401
+ * @param {number | null} [createdAfter]
1402
+ * @param {number | null} [createdBefore]
1403
+ * @param {string | null} [ipAddress]
1404
+ * @param {string | null} [uuid]
1405
+ * @param {boolean | null} [isVpn]
989
1406
  * @param {*} [options] Override http request option.
990
1407
  * @throws {RequiredError}
991
1408
  */
992
- listAllConnections(ipAddress, uuid, isVpn, page, limit, options) {
993
- return AdminConnectionsApiFp(this.configuration).listAllConnections(ipAddress, uuid, isVpn, page, limit, options).then((request) => request(this.axios, this.basePath));
1409
+ listAllConnections(pageable, createdAfter, createdBefore, ipAddress, uuid, isVpn, options) {
1410
+ return AdminConnectionsApiFp(this.configuration).listAllConnections(pageable, createdAfter, createdBefore, ipAddress, uuid, isVpn, options).then((request) => request(this.axios, this.basePath));
994
1411
  }
995
1412
  /**
996
1413
  * Returns a list of recent connections with VPN detection status, bypass information, and associated player data. Optionally filter by epoch timestamp (seconds since Unix epoch).
997
1414
  * @summary List recent connections
998
- * @param {number | null} [createdAfter] Filter connections after this epoch timestamp in milliseconds
999
- * @param {number | null} [createdBefore] Filter connections before this epoch timestamp in milliseconds
1000
- * @param {string | null} [ipAddress] Filter by IP address
1001
- * @param {string | null} [uuid] Filter by player UUID
1002
- * @param {boolean | null} [isVpn] Filter by VPN status (true=VPN, false=not VPN)
1003
- * @param {number | null} [page] Page number for pagination
1004
- * @param {number | null} [limit] Maximum number of records to return
1415
+ * @param {Pageable} pageable
1416
+ * @param {number | null} [createdAfter]
1417
+ * @param {number | null} [createdBefore]
1418
+ * @param {string | null} [ipAddress]
1419
+ * @param {string | null} [uuid]
1420
+ * @param {boolean | null} [isVpn]
1005
1421
  * @param {*} [options] Override http request option.
1006
1422
  * @throws {RequiredError}
1007
1423
  */
1008
- listConnections(createdAfter, createdBefore, ipAddress, uuid, isVpn, page, limit, options) {
1009
- return AdminConnectionsApiFp(this.configuration).listConnections(createdAfter, createdBefore, ipAddress, uuid, isVpn, page, limit, options).then((request) => request(this.axios, this.basePath));
1424
+ listConnections(pageable, createdAfter, createdBefore, ipAddress, uuid, isVpn, options) {
1425
+ return AdminConnectionsApiFp(this.configuration).listConnections(pageable, createdAfter, createdBefore, ipAddress, uuid, isVpn, options).then((request) => request(this.axios, this.basePath));
1010
1426
  }
1011
1427
  /**
1012
1428
  * Re-runs one named VPN detection service for a specific connection, persists the updated result, and recalculates the connection\'s overall `percentPositive` and `numberOfChecks` from all stored checks. Returns the refreshed check result including its new `checkedAt` timestamp.
@@ -1111,35 +1527,34 @@ export class AdminDashboardApi extends BaseAPI {
1111
1527
  }
1112
1528
  }
1113
1529
  /**
1114
- * AdminPlayersApi - axios parameter creator
1530
+ * AdminJobsApi - axios parameter creator
1115
1531
  */
1116
- export const AdminPlayersApiAxiosParamCreator = function (configuration) {
1532
+ export const AdminJobsApiAxiosParamCreator = function (configuration) {
1117
1533
  return {
1118
1534
  /**
1119
- * Returns full detail for a single player including all known usernames and punishment scoring.
1120
- * @summary Get player detail
1121
- * @param {string} uuid Player Minecraft UUID
1535
+ * 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.
1536
+ * @summary Request cancellation of an async job
1537
+ * @param {string} id Job id
1122
1538
  * @param {*} [options] Override http request option.
1123
1539
  * @throws {RequiredError}
1124
1540
  */
1125
- getPlayer: (uuid_1, ...args_1) => __awaiter(this, [uuid_1, ...args_1], void 0, function* (uuid, options = {}) {
1126
- // verify required parameter 'uuid' is not null or undefined
1127
- assertParamExists('getPlayer', 'uuid', uuid);
1128
- const localVarPath = `/admin/player/{uuid}`
1129
- .replace(`{${"uuid"}}`, encodeURIComponent(String(uuid)));
1541
+ cancel: (id_1, ...args_1) => __awaiter(this, [id_1, ...args_1], void 0, function* (id, options = {}) {
1542
+ // verify required parameter 'id' is not null or undefined
1543
+ assertParamExists('cancel', 'id', id);
1544
+ const localVarPath = `/admin/job/{id}`
1545
+ .replace(`{${"id"}}`, encodeURIComponent(String(id)));
1130
1546
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
1131
1547
  const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
1132
1548
  let baseOptions;
1133
1549
  if (configuration) {
1134
1550
  baseOptions = configuration.baseOptions;
1135
1551
  }
1136
- const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
1552
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options);
1137
1553
  const localVarHeaderParameter = {};
1138
1554
  const localVarQueryParameter = {};
1139
1555
  // authentication DiscordAuth required
1140
1556
  // http bearer authentication required
1141
1557
  yield setBearerAuthToObject(localVarHeaderParameter, configuration);
1142
- localVarHeaderParameter['Accept'] = 'application/json';
1143
1558
  setSearchParams(localVarUrlObj, localVarQueryParameter);
1144
1559
  let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1145
1560
  localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
@@ -1149,20 +1564,17 @@ export const AdminPlayersApiAxiosParamCreator = function (configuration) {
1149
1564
  };
1150
1565
  }),
1151
1566
  /**
1152
- * Returns up to 500 players ordered by most recently seen. Optionally filter by UUID or username substring.
1153
- * @summary List players
1154
- * @param {number} page Page number (1-indexed)
1155
- * @param {number} limit Page size
1156
- * @param {string | null} [search] Optional search string matched against UUID or username (case-insensitive substring)
1567
+ * The polling target the admin UI hits this every ~2 s while a job is running to update its progress bar.
1568
+ * @summary Get one async job
1569
+ * @param {string} id Job id
1157
1570
  * @param {*} [options] Override http request option.
1158
1571
  * @throws {RequiredError}
1159
1572
  */
1160
- listPlayers: (page_1, limit_1, search_1, ...args_1) => __awaiter(this, [page_1, limit_1, search_1, ...args_1], void 0, function* (page, limit, search, options = {}) {
1161
- // verify required parameter 'page' is not null or undefined
1162
- assertParamExists('listPlayers', 'page', page);
1163
- // verify required parameter 'limit' is not null or undefined
1164
- assertParamExists('listPlayers', 'limit', limit);
1165
- const localVarPath = `/admin/player`;
1573
+ get: (id_1, ...args_1) => __awaiter(this, [id_1, ...args_1], void 0, function* (id, options = {}) {
1574
+ // verify required parameter 'id' is not null or undefined
1575
+ assertParamExists('get', 'id', id);
1576
+ const localVarPath = `/admin/job/{id}`
1577
+ .replace(`{${"id"}}`, encodeURIComponent(String(id)));
1166
1578
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
1167
1579
  const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
1168
1580
  let baseOptions;
@@ -1175,14 +1587,44 @@ export const AdminPlayersApiAxiosParamCreator = function (configuration) {
1175
1587
  // authentication DiscordAuth required
1176
1588
  // http bearer authentication required
1177
1589
  yield setBearerAuthToObject(localVarHeaderParameter, configuration);
1178
- if (search !== undefined) {
1179
- localVarQueryParameter['search'] = search;
1590
+ localVarHeaderParameter['Accept'] = 'application/json';
1591
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
1592
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1593
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
1594
+ return {
1595
+ url: toPathString(localVarUrlObj),
1596
+ options: localVarRequestOptions,
1597
+ };
1598
+ }),
1599
+ /**
1600
+ * Paginated, newest first. Filter by status to see only RUNNING jobs (the live queue) or COMPLETED / FAILED / CANCELLED history.
1601
+ * @summary List async jobs
1602
+ * @param {Pageable} pageable
1603
+ * @param {JobStatus | null} [status] Filter by status (omit for all states)
1604
+ * @param {*} [options] Override http request option.
1605
+ * @throws {RequiredError}
1606
+ */
1607
+ list: (pageable_1, status_1, ...args_1) => __awaiter(this, [pageable_1, status_1, ...args_1], void 0, function* (pageable, status, options = {}) {
1608
+ // verify required parameter 'pageable' is not null or undefined
1609
+ assertParamExists('list', 'pageable', pageable);
1610
+ const localVarPath = `/admin/job`;
1611
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
1612
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
1613
+ let baseOptions;
1614
+ if (configuration) {
1615
+ baseOptions = configuration.baseOptions;
1180
1616
  }
1181
- if (page !== undefined) {
1182
- localVarQueryParameter['page'] = page;
1617
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
1618
+ const localVarHeaderParameter = {};
1619
+ const localVarQueryParameter = {};
1620
+ // authentication DiscordAuth required
1621
+ // http bearer authentication required
1622
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
1623
+ if (status !== undefined) {
1624
+ localVarQueryParameter['status'] = status;
1183
1625
  }
1184
- if (limit !== undefined) {
1185
- localVarQueryParameter['limit'] = limit;
1626
+ if (pageable !== undefined) {
1627
+ localVarQueryParameter['pageable'] = pageable;
1186
1628
  }
1187
1629
  localVarHeaderParameter['Accept'] = 'application/json';
1188
1630
  setSearchParams(localVarUrlObj, localVarQueryParameter);
@@ -1196,102 +1638,1517 @@ export const AdminPlayersApiAxiosParamCreator = function (configuration) {
1196
1638
  };
1197
1639
  };
1198
1640
  /**
1199
- * AdminPlayersApi - functional programming interface
1641
+ * AdminJobsApi - functional programming interface
1200
1642
  */
1201
- export const AdminPlayersApiFp = function (configuration) {
1202
- const localVarAxiosParamCreator = AdminPlayersApiAxiosParamCreator(configuration);
1643
+ export const AdminJobsApiFp = function (configuration) {
1644
+ const localVarAxiosParamCreator = AdminJobsApiAxiosParamCreator(configuration);
1203
1645
  return {
1204
1646
  /**
1205
- * Returns full detail for a single player including all known usernames and punishment scoring.
1206
- * @summary Get player detail
1207
- * @param {string} uuid Player Minecraft UUID
1647
+ * 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.
1648
+ * @summary Request cancellation of an async job
1649
+ * @param {string} id Job id
1208
1650
  * @param {*} [options] Override http request option.
1209
1651
  * @throws {RequiredError}
1210
1652
  */
1211
- getPlayer(uuid, options) {
1653
+ cancel(id, options) {
1212
1654
  return __awaiter(this, void 0, void 0, function* () {
1213
1655
  var _a, _b, _c;
1214
- const localVarAxiosArgs = yield localVarAxiosParamCreator.getPlayer(uuid, options);
1656
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.cancel(id, options);
1215
1657
  const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
1216
- const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminPlayersApi.getPlayer']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
1658
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminJobsApi.cancel']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
1217
1659
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1218
1660
  });
1219
1661
  },
1220
1662
  /**
1221
- * Returns up to 500 players ordered by most recently seen. Optionally filter by UUID or username substring.
1222
- * @summary List players
1223
- * @param {number} page Page number (1-indexed)
1224
- * @param {number} limit Page size
1225
- * @param {string | null} [search] Optional search string matched against UUID or username (case-insensitive substring)
1663
+ * The polling target the admin UI hits this every ~2 s while a job is running to update its progress bar.
1664
+ * @summary Get one async job
1665
+ * @param {string} id Job id
1226
1666
  * @param {*} [options] Override http request option.
1227
1667
  * @throws {RequiredError}
1228
1668
  */
1229
- listPlayers(page, limit, search, options) {
1669
+ get(id, options) {
1230
1670
  return __awaiter(this, void 0, void 0, function* () {
1231
1671
  var _a, _b, _c;
1232
- const localVarAxiosArgs = yield localVarAxiosParamCreator.listPlayers(page, limit, search, options);
1672
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.get(id, options);
1233
1673
  const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
1234
- const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminPlayersApi.listPlayers']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
1674
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminJobsApi.get']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
1675
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1676
+ });
1677
+ },
1678
+ /**
1679
+ * Paginated, newest first. Filter by status to see only RUNNING jobs (the live queue) or COMPLETED / FAILED / CANCELLED history.
1680
+ * @summary List async jobs
1681
+ * @param {Pageable} pageable
1682
+ * @param {JobStatus | null} [status] Filter by status (omit for all states)
1683
+ * @param {*} [options] Override http request option.
1684
+ * @throws {RequiredError}
1685
+ */
1686
+ list(pageable, status, options) {
1687
+ return __awaiter(this, void 0, void 0, function* () {
1688
+ var _a, _b, _c;
1689
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.list(pageable, status, options);
1690
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
1691
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminJobsApi.list']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
1235
1692
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1236
1693
  });
1237
1694
  },
1238
1695
  };
1239
1696
  };
1240
1697
  /**
1241
- * AdminPlayersApi - factory interface
1698
+ * AdminJobsApi - factory interface
1242
1699
  */
1243
- export const AdminPlayersApiFactory = function (configuration, basePath, axios) {
1244
- const localVarFp = AdminPlayersApiFp(configuration);
1700
+ export const AdminJobsApiFactory = function (configuration, basePath, axios) {
1701
+ const localVarFp = AdminJobsApiFp(configuration);
1245
1702
  return {
1246
1703
  /**
1247
- * Returns full detail for a single player including all known usernames and punishment scoring.
1248
- * @summary Get player detail
1249
- * @param {string} uuid Player Minecraft UUID
1704
+ * 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.
1705
+ * @summary Request cancellation of an async job
1706
+ * @param {string} id Job id
1250
1707
  * @param {*} [options] Override http request option.
1251
1708
  * @throws {RequiredError}
1252
1709
  */
1253
- getPlayer(uuid, options) {
1254
- return localVarFp.getPlayer(uuid, options).then((request) => request(axios, basePath));
1710
+ cancel(id, options) {
1711
+ return localVarFp.cancel(id, options).then((request) => request(axios, basePath));
1255
1712
  },
1256
1713
  /**
1257
- * Returns up to 500 players ordered by most recently seen. Optionally filter by UUID or username substring.
1258
- * @summary List players
1259
- * @param {number} page Page number (1-indexed)
1260
- * @param {number} limit Page size
1261
- * @param {string | null} [search] Optional search string matched against UUID or username (case-insensitive substring)
1714
+ * The polling target the admin UI hits this every ~2 s while a job is running to update its progress bar.
1715
+ * @summary Get one async job
1716
+ * @param {string} id Job id
1717
+ * @param {*} [options] Override http request option.
1718
+ * @throws {RequiredError}
1719
+ */
1720
+ get(id, options) {
1721
+ return localVarFp.get(id, options).then((request) => request(axios, basePath));
1722
+ },
1723
+ /**
1724
+ * Paginated, newest first. Filter by status to see only RUNNING jobs (the live queue) or COMPLETED / FAILED / CANCELLED history.
1725
+ * @summary List async jobs
1726
+ * @param {Pageable} pageable
1727
+ * @param {JobStatus | null} [status] Filter by status (omit for all states)
1262
1728
  * @param {*} [options] Override http request option.
1263
1729
  * @throws {RequiredError}
1264
1730
  */
1265
- listPlayers(page, limit, search, options) {
1266
- return localVarFp.listPlayers(page, limit, search, options).then((request) => request(axios, basePath));
1731
+ list(pageable, status, options) {
1732
+ return localVarFp.list(pageable, status, options).then((request) => request(axios, basePath));
1267
1733
  },
1268
1734
  };
1269
1735
  };
1270
1736
  /**
1271
- * AdminPlayersApi - object-oriented interface
1737
+ * AdminJobsApi - object-oriented interface
1272
1738
  */
1273
- export class AdminPlayersApi extends BaseAPI {
1739
+ export class AdminJobsApi extends BaseAPI {
1740
+ /**
1741
+ * 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.
1742
+ * @summary Request cancellation of an async job
1743
+ * @param {string} id Job id
1744
+ * @param {*} [options] Override http request option.
1745
+ * @throws {RequiredError}
1746
+ */
1747
+ cancel(id, options) {
1748
+ return AdminJobsApiFp(this.configuration).cancel(id, options).then((request) => request(this.axios, this.basePath));
1749
+ }
1750
+ /**
1751
+ * The polling target — the admin UI hits this every ~2 s while a job is running to update its progress bar.
1752
+ * @summary Get one async job
1753
+ * @param {string} id Job id
1754
+ * @param {*} [options] Override http request option.
1755
+ * @throws {RequiredError}
1756
+ */
1757
+ get(id, options) {
1758
+ return AdminJobsApiFp(this.configuration).get(id, options).then((request) => request(this.axios, this.basePath));
1759
+ }
1760
+ /**
1761
+ * Paginated, newest first. Filter by status to see only RUNNING jobs (the live queue) or COMPLETED / FAILED / CANCELLED history.
1762
+ * @summary List async jobs
1763
+ * @param {Pageable} pageable
1764
+ * @param {JobStatus | null} [status] Filter by status (omit for all states)
1765
+ * @param {*} [options] Override http request option.
1766
+ * @throws {RequiredError}
1767
+ */
1768
+ list(pageable, status, options) {
1769
+ return AdminJobsApiFp(this.configuration).list(pageable, status, options).then((request) => request(this.axios, this.basePath));
1770
+ }
1771
+ }
1772
+ /**
1773
+ * AdminPlayersApi - axios parameter creator
1774
+ */
1775
+ export const AdminPlayersApiAxiosParamCreator = function (configuration) {
1776
+ return {
1777
+ /**
1778
+ * Mark another player as a known-legitimate associate (e.g. roommate). The relationship is stored symmetrically: subsequent aggressive-mode propagation skips this pair as an alt source in either direction. Finer-grained than the per-player aggressive_mode_immunity flag.
1779
+ * @summary Add an alt exemption
1780
+ * @param {string} uuid Player Minecraft UUID
1781
+ * @param {AdminCreateAltExemptionRequest} adminCreateAltExemptionRequest
1782
+ * @param {*} [options] Override http request option.
1783
+ * @throws {RequiredError}
1784
+ */
1785
+ addAltExemption: (uuid_1, adminCreateAltExemptionRequest_1, ...args_1) => __awaiter(this, [uuid_1, adminCreateAltExemptionRequest_1, ...args_1], void 0, function* (uuid, adminCreateAltExemptionRequest, options = {}) {
1786
+ // verify required parameter 'uuid' is not null or undefined
1787
+ assertParamExists('addAltExemption', 'uuid', uuid);
1788
+ // verify required parameter 'adminCreateAltExemptionRequest' is not null or undefined
1789
+ assertParamExists('addAltExemption', 'adminCreateAltExemptionRequest', adminCreateAltExemptionRequest);
1790
+ const localVarPath = `/admin/player/{uuid}/alt-exemption`
1791
+ .replace(`{${"uuid"}}`, encodeURIComponent(String(uuid)));
1792
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
1793
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
1794
+ let baseOptions;
1795
+ if (configuration) {
1796
+ baseOptions = configuration.baseOptions;
1797
+ }
1798
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
1799
+ const localVarHeaderParameter = {};
1800
+ const localVarQueryParameter = {};
1801
+ // authentication DiscordAuth required
1802
+ // http bearer authentication required
1803
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
1804
+ localVarHeaderParameter['Content-Type'] = 'application/json';
1805
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
1806
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1807
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
1808
+ localVarRequestOptions.data = serializeDataIfNeeded(adminCreateAltExemptionRequest, localVarRequestOptions, configuration);
1809
+ return {
1810
+ url: toPathString(localVarUrlObj),
1811
+ options: localVarRequestOptions,
1812
+ };
1813
+ }),
1814
+ /**
1815
+ * Soft-revokes every currently active PROPAGATED player_punishment row whose source matches the supplied id. Exactly one of sourcePlayerId / sourceConnectionId must be set. Useful when staff identify a single source as a false positive (e.g. shared NAT, legitimate roommate) and want to undo every link it caused in one operation.
1816
+ * @summary Bulk-revoke PROPAGATED links by source
1817
+ * @param {AdminBulkRevokeRequest} adminBulkRevokeRequest
1818
+ * @param {*} [options] Override http request option.
1819
+ * @throws {RequiredError}
1820
+ */
1821
+ bulkRevokePropagated: (adminBulkRevokeRequest_1, ...args_1) => __awaiter(this, [adminBulkRevokeRequest_1, ...args_1], void 0, function* (adminBulkRevokeRequest, options = {}) {
1822
+ // verify required parameter 'adminBulkRevokeRequest' is not null or undefined
1823
+ assertParamExists('bulkRevokePropagated', 'adminBulkRevokeRequest', adminBulkRevokeRequest);
1824
+ const localVarPath = `/admin/player/player-punishment/bulk-revoke`;
1825
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
1826
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
1827
+ let baseOptions;
1828
+ if (configuration) {
1829
+ baseOptions = configuration.baseOptions;
1830
+ }
1831
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
1832
+ const localVarHeaderParameter = {};
1833
+ const localVarQueryParameter = {};
1834
+ // authentication DiscordAuth required
1835
+ // http bearer authentication required
1836
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
1837
+ localVarHeaderParameter['Content-Type'] = 'application/json';
1838
+ localVarHeaderParameter['Accept'] = 'application/json';
1839
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
1840
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1841
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
1842
+ localVarRequestOptions.data = serializeDataIfNeeded(adminBulkRevokeRequest, localVarRequestOptions, configuration);
1843
+ return {
1844
+ url: toPathString(localVarUrlObj),
1845
+ options: localVarRequestOptions,
1846
+ };
1847
+ }),
1848
+ /**
1849
+ * Appends a free-form note (1–4000 chars). Notes are not editable — to revise, post a new one and soft-delete the old.
1850
+ * @summary Create a staff note on a player
1851
+ * @param {string} uuid Player Minecraft UUID
1852
+ * @param {AdminCreatePlayerNoteRequest} adminCreatePlayerNoteRequest
1853
+ * @param {*} [options] Override http request option.
1854
+ * @throws {RequiredError}
1855
+ */
1856
+ createPlayerNote: (uuid_1, adminCreatePlayerNoteRequest_1, ...args_1) => __awaiter(this, [uuid_1, adminCreatePlayerNoteRequest_1, ...args_1], void 0, function* (uuid, adminCreatePlayerNoteRequest, options = {}) {
1857
+ // verify required parameter 'uuid' is not null or undefined
1858
+ assertParamExists('createPlayerNote', 'uuid', uuid);
1859
+ // verify required parameter 'adminCreatePlayerNoteRequest' is not null or undefined
1860
+ assertParamExists('createPlayerNote', 'adminCreatePlayerNoteRequest', adminCreatePlayerNoteRequest);
1861
+ const localVarPath = `/admin/player/{uuid}/note`
1862
+ .replace(`{${"uuid"}}`, encodeURIComponent(String(uuid)));
1863
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
1864
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
1865
+ let baseOptions;
1866
+ if (configuration) {
1867
+ baseOptions = configuration.baseOptions;
1868
+ }
1869
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
1870
+ const localVarHeaderParameter = {};
1871
+ const localVarQueryParameter = {};
1872
+ // authentication DiscordAuth required
1873
+ // http bearer authentication required
1874
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
1875
+ localVarHeaderParameter['Content-Type'] = 'application/json';
1876
+ localVarHeaderParameter['Accept'] = 'application/json';
1877
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
1878
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1879
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
1880
+ localVarRequestOptions.data = serializeDataIfNeeded(adminCreatePlayerNoteRequest, localVarRequestOptions, configuration);
1881
+ return {
1882
+ url: toPathString(localVarUrlObj),
1883
+ options: localVarRequestOptions,
1884
+ };
1885
+ }),
1886
+ /**
1887
+ * Marks the note as deleted but keeps the row for audit. Idempotent — 404 if already deleted or unknown id.
1888
+ * @summary Soft-delete a staff note
1889
+ * @param {string} uuid Player Minecraft UUID (routing only)
1890
+ * @param {number} noteId Note id
1891
+ * @param {*} [options] Override http request option.
1892
+ * @throws {RequiredError}
1893
+ */
1894
+ deletePlayerNote: (uuid_1, noteId_1, ...args_1) => __awaiter(this, [uuid_1, noteId_1, ...args_1], void 0, function* (uuid, noteId, options = {}) {
1895
+ // verify required parameter 'uuid' is not null or undefined
1896
+ assertParamExists('deletePlayerNote', 'uuid', uuid);
1897
+ // verify required parameter 'noteId' is not null or undefined
1898
+ assertParamExists('deletePlayerNote', 'noteId', noteId);
1899
+ const localVarPath = `/admin/player/{uuid}/note/{noteId}`
1900
+ .replace(`{${"uuid"}}`, encodeURIComponent(String(uuid)))
1901
+ .replace(`{${"noteId"}}`, encodeURIComponent(String(noteId)));
1902
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
1903
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
1904
+ let baseOptions;
1905
+ if (configuration) {
1906
+ baseOptions = configuration.baseOptions;
1907
+ }
1908
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options);
1909
+ const localVarHeaderParameter = {};
1910
+ const localVarQueryParameter = {};
1911
+ // authentication DiscordAuth required
1912
+ // http bearer authentication required
1913
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
1914
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
1915
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1916
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
1917
+ return {
1918
+ url: toPathString(localVarUrlObj),
1919
+ options: localVarRequestOptions,
1920
+ };
1921
+ }),
1922
+ /**
1923
+ * Returns full detail for a single player including all known usernames and punishment scoring.
1924
+ * @summary Get player detail
1925
+ * @param {string} uuid Player Minecraft UUID
1926
+ * @param {*} [options] Override http request option.
1927
+ * @throws {RequiredError}
1928
+ */
1929
+ getPlayer: (uuid_1, ...args_1) => __awaiter(this, [uuid_1, ...args_1], void 0, function* (uuid, options = {}) {
1930
+ // verify required parameter 'uuid' is not null or undefined
1931
+ assertParamExists('getPlayer', 'uuid', uuid);
1932
+ const localVarPath = `/admin/player/{uuid}`
1933
+ .replace(`{${"uuid"}}`, encodeURIComponent(String(uuid)));
1934
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
1935
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
1936
+ let baseOptions;
1937
+ if (configuration) {
1938
+ baseOptions = configuration.baseOptions;
1939
+ }
1940
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
1941
+ const localVarHeaderParameter = {};
1942
+ const localVarQueryParameter = {};
1943
+ // authentication DiscordAuth required
1944
+ // http bearer authentication required
1945
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
1946
+ localVarHeaderParameter['Accept'] = 'application/json';
1947
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
1948
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1949
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
1950
+ return {
1951
+ url: toPathString(localVarUrlObj),
1952
+ options: localVarRequestOptions,
1953
+ };
1954
+ }),
1955
+ /**
1956
+ * Other players who have been seen on at least one of this player\'s historical connections. Sorted by shared-connection count desc, then last seen desc.
1957
+ * @summary List a player\'s alt accounts
1958
+ * @param {string} uuid Player Minecraft UUID
1959
+ * @param {Pageable} pageable
1960
+ * @param {*} [options] Override http request option.
1961
+ * @throws {RequiredError}
1962
+ */
1963
+ getPlayerAlts: (uuid_1, pageable_1, ...args_1) => __awaiter(this, [uuid_1, pageable_1, ...args_1], void 0, function* (uuid, pageable, options = {}) {
1964
+ // verify required parameter 'uuid' is not null or undefined
1965
+ assertParamExists('getPlayerAlts', 'uuid', uuid);
1966
+ // verify required parameter 'pageable' is not null or undefined
1967
+ assertParamExists('getPlayerAlts', 'pageable', pageable);
1968
+ const localVarPath = `/admin/player/{uuid}/alts`
1969
+ .replace(`{${"uuid"}}`, encodeURIComponent(String(uuid)));
1970
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
1971
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
1972
+ let baseOptions;
1973
+ if (configuration) {
1974
+ baseOptions = configuration.baseOptions;
1975
+ }
1976
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
1977
+ const localVarHeaderParameter = {};
1978
+ const localVarQueryParameter = {};
1979
+ // authentication DiscordAuth required
1980
+ // http bearer authentication required
1981
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
1982
+ if (pageable !== undefined) {
1983
+ localVarQueryParameter['pageable'] = pageable;
1984
+ }
1985
+ localVarHeaderParameter['Accept'] = 'application/json';
1986
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
1987
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1988
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
1989
+ return {
1990
+ url: toPathString(localVarUrlObj),
1991
+ options: localVarRequestOptions,
1992
+ };
1993
+ }),
1994
+ /**
1995
+ * Paginated list of every connection this player has used (latest first). Same shape as the dashboard connection list, suitable for an infinite-scroll panel inside the player detail modal.
1996
+ * @summary List a player\'s connection history
1997
+ * @param {string} uuid Player Minecraft UUID
1998
+ * @param {Pageable} pageable
1999
+ * @param {*} [options] Override http request option.
2000
+ * @throws {RequiredError}
2001
+ */
2002
+ getPlayerConnections: (uuid_1, pageable_1, ...args_1) => __awaiter(this, [uuid_1, pageable_1, ...args_1], void 0, function* (uuid, pageable, options = {}) {
2003
+ // verify required parameter 'uuid' is not null or undefined
2004
+ assertParamExists('getPlayerConnections', 'uuid', uuid);
2005
+ // verify required parameter 'pageable' is not null or undefined
2006
+ assertParamExists('getPlayerConnections', 'pageable', pageable);
2007
+ const localVarPath = `/admin/player/{uuid}/connections`
2008
+ .replace(`{${"uuid"}}`, encodeURIComponent(String(uuid)));
2009
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
2010
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
2011
+ let baseOptions;
2012
+ if (configuration) {
2013
+ baseOptions = configuration.baseOptions;
2014
+ }
2015
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
2016
+ const localVarHeaderParameter = {};
2017
+ const localVarQueryParameter = {};
2018
+ // authentication DiscordAuth required
2019
+ // http bearer authentication required
2020
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
2021
+ if (pageable !== undefined) {
2022
+ localVarQueryParameter['pageable'] = pageable;
2023
+ }
2024
+ localVarHeaderParameter['Accept'] = 'application/json';
2025
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
2026
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
2027
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
2028
+ return {
2029
+ url: toPathString(localVarUrlObj),
2030
+ options: localVarRequestOptions,
2031
+ };
2032
+ }),
2033
+ /**
2034
+ * Paginated list of every player_punishment row for this player — DIRECT and PROPAGATED, active and revoked. Includes the transfer_note explaining why each propagated link was inserted and the revocation audit trail. The admin UI uses this to render a punishment-history section inside the player detail modal.
2035
+ * @summary List a player\'s full punishment history
2036
+ * @param {string} uuid Player Minecraft UUID
2037
+ * @param {Pageable} pageable
2038
+ * @param {*} [options] Override http request option.
2039
+ * @throws {RequiredError}
2040
+ */
2041
+ getPlayerPunishments: (uuid_1, pageable_1, ...args_1) => __awaiter(this, [uuid_1, pageable_1, ...args_1], void 0, function* (uuid, pageable, options = {}) {
2042
+ // verify required parameter 'uuid' is not null or undefined
2043
+ assertParamExists('getPlayerPunishments', 'uuid', uuid);
2044
+ // verify required parameter 'pageable' is not null or undefined
2045
+ assertParamExists('getPlayerPunishments', 'pageable', pageable);
2046
+ const localVarPath = `/admin/player/{uuid}/player-punishments`
2047
+ .replace(`{${"uuid"}}`, encodeURIComponent(String(uuid)));
2048
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
2049
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
2050
+ let baseOptions;
2051
+ if (configuration) {
2052
+ baseOptions = configuration.baseOptions;
2053
+ }
2054
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
2055
+ const localVarHeaderParameter = {};
2056
+ const localVarQueryParameter = {};
2057
+ // authentication DiscordAuth required
2058
+ // http bearer authentication required
2059
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
2060
+ if (pageable !== undefined) {
2061
+ localVarQueryParameter['pageable'] = pageable;
2062
+ }
2063
+ localVarHeaderParameter['Accept'] = 'application/json';
2064
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
2065
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
2066
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
2067
+ return {
2068
+ url: toPathString(localVarUrlObj),
2069
+ options: localVarRequestOptions,
2070
+ };
2071
+ }),
2072
+ /**
2073
+ * Single-row summary: total seconds played, session count, distinct days active, most recent session start, and whether the player is currently online. Computed on demand from player_session. Feeds the trust factor system.
2074
+ * @summary Get a player\'s aggregate session stats
2075
+ * @param {string} uuid Player Minecraft UUID
2076
+ * @param {*} [options] Override http request option.
2077
+ * @throws {RequiredError}
2078
+ */
2079
+ getSessionStats: (uuid_1, ...args_1) => __awaiter(this, [uuid_1, ...args_1], void 0, function* (uuid, options = {}) {
2080
+ // verify required parameter 'uuid' is not null or undefined
2081
+ assertParamExists('getSessionStats', 'uuid', uuid);
2082
+ const localVarPath = `/admin/player/{uuid}/session-stats`
2083
+ .replace(`{${"uuid"}}`, encodeURIComponent(String(uuid)));
2084
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
2085
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
2086
+ let baseOptions;
2087
+ if (configuration) {
2088
+ baseOptions = configuration.baseOptions;
2089
+ }
2090
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
2091
+ const localVarHeaderParameter = {};
2092
+ const localVarQueryParameter = {};
2093
+ // authentication DiscordAuth required
2094
+ // http bearer authentication required
2095
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
2096
+ localVarHeaderParameter['Accept'] = 'application/json';
2097
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
2098
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
2099
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
2100
+ return {
2101
+ url: toPathString(localVarUrlObj),
2102
+ options: localVarRequestOptions,
2103
+ };
2104
+ }),
2105
+ /**
2106
+ * Paginated list of the player\'s known-legitimate-associate exemptions. The list reflects rows where this player is the source side (player_id = this); since exemptions are stored symmetrically the reciprocal rows exist too.
2107
+ * @summary List a player\'s alt exemptions
2108
+ * @param {string} uuid Player Minecraft UUID
2109
+ * @param {Pageable} pageable
2110
+ * @param {*} [options] Override http request option.
2111
+ * @throws {RequiredError}
2112
+ */
2113
+ listAltExemptions: (uuid_1, pageable_1, ...args_1) => __awaiter(this, [uuid_1, pageable_1, ...args_1], void 0, function* (uuid, pageable, options = {}) {
2114
+ // verify required parameter 'uuid' is not null or undefined
2115
+ assertParamExists('listAltExemptions', 'uuid', uuid);
2116
+ // verify required parameter 'pageable' is not null or undefined
2117
+ assertParamExists('listAltExemptions', 'pageable', pageable);
2118
+ const localVarPath = `/admin/player/{uuid}/alt-exemption`
2119
+ .replace(`{${"uuid"}}`, encodeURIComponent(String(uuid)));
2120
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
2121
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
2122
+ let baseOptions;
2123
+ if (configuration) {
2124
+ baseOptions = configuration.baseOptions;
2125
+ }
2126
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
2127
+ const localVarHeaderParameter = {};
2128
+ const localVarQueryParameter = {};
2129
+ // authentication DiscordAuth required
2130
+ // http bearer authentication required
2131
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
2132
+ if (pageable !== undefined) {
2133
+ localVarQueryParameter['pageable'] = pageable;
2134
+ }
2135
+ localVarHeaderParameter['Accept'] = 'application/json';
2136
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
2137
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
2138
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
2139
+ return {
2140
+ url: toPathString(localVarUrlObj),
2141
+ options: localVarRequestOptions,
2142
+ };
2143
+ }),
2144
+ /**
2145
+ * Paginated, newest first. Soft-deleted notes are included; the UI styles them as struck-through.
2146
+ * @summary List staff notes on a player
2147
+ * @param {string} uuid Player Minecraft UUID
2148
+ * @param {Pageable} pageable
2149
+ * @param {*} [options] Override http request option.
2150
+ * @throws {RequiredError}
2151
+ */
2152
+ listPlayerNotes: (uuid_1, pageable_1, ...args_1) => __awaiter(this, [uuid_1, pageable_1, ...args_1], void 0, function* (uuid, pageable, options = {}) {
2153
+ // verify required parameter 'uuid' is not null or undefined
2154
+ assertParamExists('listPlayerNotes', 'uuid', uuid);
2155
+ // verify required parameter 'pageable' is not null or undefined
2156
+ assertParamExists('listPlayerNotes', 'pageable', pageable);
2157
+ const localVarPath = `/admin/player/{uuid}/notes`
2158
+ .replace(`{${"uuid"}}`, encodeURIComponent(String(uuid)));
2159
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
2160
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
2161
+ let baseOptions;
2162
+ if (configuration) {
2163
+ baseOptions = configuration.baseOptions;
2164
+ }
2165
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
2166
+ const localVarHeaderParameter = {};
2167
+ const localVarQueryParameter = {};
2168
+ // authentication DiscordAuth required
2169
+ // http bearer authentication required
2170
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
2171
+ if (pageable !== undefined) {
2172
+ localVarQueryParameter['pageable'] = pageable;
2173
+ }
2174
+ localVarHeaderParameter['Accept'] = 'application/json';
2175
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
2176
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
2177
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
2178
+ return {
2179
+ url: toPathString(localVarUrlObj),
2180
+ options: localVarRequestOptions,
2181
+ };
2182
+ }),
2183
+ /**
2184
+ * Returns up to 500 players ordered by most recently seen. Optionally filter by UUID or username substring.
2185
+ * @summary List players
2186
+ * @param {Pageable} pageable
2187
+ * @param {string | null} [search] Optional search string matched against UUID or username (case-insensitive substring)
2188
+ * @param {*} [options] Override http request option.
2189
+ * @throws {RequiredError}
2190
+ */
2191
+ listPlayers: (pageable_1, search_1, ...args_1) => __awaiter(this, [pageable_1, search_1, ...args_1], void 0, function* (pageable, search, options = {}) {
2192
+ // verify required parameter 'pageable' is not null or undefined
2193
+ assertParamExists('listPlayers', 'pageable', pageable);
2194
+ const localVarPath = `/admin/player`;
2195
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
2196
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
2197
+ let baseOptions;
2198
+ if (configuration) {
2199
+ baseOptions = configuration.baseOptions;
2200
+ }
2201
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
2202
+ const localVarHeaderParameter = {};
2203
+ const localVarQueryParameter = {};
2204
+ // authentication DiscordAuth required
2205
+ // http bearer authentication required
2206
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
2207
+ if (search !== undefined) {
2208
+ localVarQueryParameter['search'] = search;
2209
+ }
2210
+ if (pageable !== undefined) {
2211
+ localVarQueryParameter['pageable'] = pageable;
2212
+ }
2213
+ localVarHeaderParameter['Accept'] = 'application/json';
2214
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
2215
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
2216
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
2217
+ return {
2218
+ url: toPathString(localVarUrlObj),
2219
+ options: localVarRequestOptions,
2220
+ };
2221
+ }),
2222
+ /**
2223
+ * Paginated history of player_session rows (active + closed), newest first. Each row records one visit by this player to one game server. Used by the admin player detail view and as the underlying data for the session-stats aggregate.
2224
+ * @summary List a player\'s session history
2225
+ * @param {string} uuid Player Minecraft UUID
2226
+ * @param {Pageable} pageable
2227
+ * @param {*} [options] Override http request option.
2228
+ * @throws {RequiredError}
2229
+ */
2230
+ listSessions: (uuid_1, pageable_1, ...args_1) => __awaiter(this, [uuid_1, pageable_1, ...args_1], void 0, function* (uuid, pageable, options = {}) {
2231
+ // verify required parameter 'uuid' is not null or undefined
2232
+ assertParamExists('listSessions', 'uuid', uuid);
2233
+ // verify required parameter 'pageable' is not null or undefined
2234
+ assertParamExists('listSessions', 'pageable', pageable);
2235
+ const localVarPath = `/admin/player/{uuid}/sessions`
2236
+ .replace(`{${"uuid"}}`, encodeURIComponent(String(uuid)));
2237
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
2238
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
2239
+ let baseOptions;
2240
+ if (configuration) {
2241
+ baseOptions = configuration.baseOptions;
2242
+ }
2243
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
2244
+ const localVarHeaderParameter = {};
2245
+ const localVarQueryParameter = {};
2246
+ // authentication DiscordAuth required
2247
+ // http bearer authentication required
2248
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
2249
+ if (pageable !== undefined) {
2250
+ localVarQueryParameter['pageable'] = pageable;
2251
+ }
2252
+ localVarHeaderParameter['Accept'] = 'application/json';
2253
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
2254
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
2255
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
2256
+ return {
2257
+ url: toPathString(localVarUrlObj),
2258
+ options: localVarRequestOptions,
2259
+ };
2260
+ }),
2261
+ /**
2262
+ * Delete the symmetric exemption pair between two players. Both directions are removed.
2263
+ * @summary Remove an alt exemption
2264
+ * @param {string} uuid Player Minecraft UUID
2265
+ * @param {string} altPlayerUuid UUID of the alt to remove from exemption
2266
+ * @param {*} [options] Override http request option.
2267
+ * @throws {RequiredError}
2268
+ */
2269
+ removeAltExemption: (uuid_1, altPlayerUuid_1, ...args_1) => __awaiter(this, [uuid_1, altPlayerUuid_1, ...args_1], void 0, function* (uuid, altPlayerUuid, options = {}) {
2270
+ // verify required parameter 'uuid' is not null or undefined
2271
+ assertParamExists('removeAltExemption', 'uuid', uuid);
2272
+ // verify required parameter 'altPlayerUuid' is not null or undefined
2273
+ assertParamExists('removeAltExemption', 'altPlayerUuid', altPlayerUuid);
2274
+ const localVarPath = `/admin/player/{uuid}/alt-exemption/{altPlayerUuid}`
2275
+ .replace(`{${"uuid"}}`, encodeURIComponent(String(uuid)))
2276
+ .replace(`{${"altPlayerUuid"}}`, encodeURIComponent(String(altPlayerUuid)));
2277
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
2278
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
2279
+ let baseOptions;
2280
+ if (configuration) {
2281
+ baseOptions = configuration.baseOptions;
2282
+ }
2283
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options);
2284
+ const localVarHeaderParameter = {};
2285
+ const localVarQueryParameter = {};
2286
+ // authentication DiscordAuth required
2287
+ // http bearer authentication required
2288
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
2289
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
2290
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
2291
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
2292
+ return {
2293
+ url: toPathString(localVarUrlObj),
2294
+ options: localVarRequestOptions,
2295
+ };
2296
+ }),
2297
+ /**
2298
+ * Soft-deletes a single player_punishment row that was inserted by aggressive-mode propagation. The source punishment record is untouched — only the link between this player and that punishment is removed from enforcement. Rejected with 404 if the row is DIRECT (the original punishment record) or already revoked.
2299
+ * @summary Revoke a propagated punishment link
2300
+ * @param {string} uuid Player Minecraft UUID (for routing/audit context; the link id is the source of truth)
2301
+ * @param {number} playerPunishmentId player_punishment row id
2302
+ * @param {*} [options] Override http request option.
2303
+ * @throws {RequiredError}
2304
+ */
2305
+ revokePropagatedLink: (uuid_1, playerPunishmentId_1, ...args_1) => __awaiter(this, [uuid_1, playerPunishmentId_1, ...args_1], void 0, function* (uuid, playerPunishmentId, options = {}) {
2306
+ // verify required parameter 'uuid' is not null or undefined
2307
+ assertParamExists('revokePropagatedLink', 'uuid', uuid);
2308
+ // verify required parameter 'playerPunishmentId' is not null or undefined
2309
+ assertParamExists('revokePropagatedLink', 'playerPunishmentId', playerPunishmentId);
2310
+ const localVarPath = `/admin/player/{uuid}/player-punishment/{playerPunishmentId}`
2311
+ .replace(`{${"uuid"}}`, encodeURIComponent(String(uuid)))
2312
+ .replace(`{${"playerPunishmentId"}}`, encodeURIComponent(String(playerPunishmentId)));
2313
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
2314
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
2315
+ let baseOptions;
2316
+ if (configuration) {
2317
+ baseOptions = configuration.baseOptions;
2318
+ }
2319
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options);
2320
+ const localVarHeaderParameter = {};
2321
+ const localVarQueryParameter = {};
2322
+ // authentication DiscordAuth required
2323
+ // http bearer authentication required
2324
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
2325
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
2326
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
2327
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
2328
+ return {
2329
+ url: toPathString(localVarUrlObj),
2330
+ options: localVarRequestOptions,
2331
+ };
2332
+ }),
2333
+ /**
2334
+ * Sets whether a player is exempt from aggressive-mode propagation. Flipping the flag ON also bulk-revokes every currently active PROPAGATED link for the player in the same transaction, so the player\'s enforcement state immediately reflects the cleared status. Flipping back to OFF re-enables propagation but does NOT un-revoke previously-revoked links.
2335
+ * @summary Toggle aggressive-mode immunity
2336
+ * @param {string} uuid Player Minecraft UUID
2337
+ * @param {AdminSetAggressiveModeImmunityRequest} adminSetAggressiveModeImmunityRequest
2338
+ * @param {*} [options] Override http request option.
2339
+ * @throws {RequiredError}
2340
+ */
2341
+ setAggressiveModeImmunity: (uuid_1, adminSetAggressiveModeImmunityRequest_1, ...args_1) => __awaiter(this, [uuid_1, adminSetAggressiveModeImmunityRequest_1, ...args_1], void 0, function* (uuid, adminSetAggressiveModeImmunityRequest, options = {}) {
2342
+ // verify required parameter 'uuid' is not null or undefined
2343
+ assertParamExists('setAggressiveModeImmunity', 'uuid', uuid);
2344
+ // verify required parameter 'adminSetAggressiveModeImmunityRequest' is not null or undefined
2345
+ assertParamExists('setAggressiveModeImmunity', 'adminSetAggressiveModeImmunityRequest', adminSetAggressiveModeImmunityRequest);
2346
+ const localVarPath = `/admin/player/{uuid}/aggressive-mode-immunity`
2347
+ .replace(`{${"uuid"}}`, encodeURIComponent(String(uuid)));
2348
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
2349
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
2350
+ let baseOptions;
2351
+ if (configuration) {
2352
+ baseOptions = configuration.baseOptions;
2353
+ }
2354
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'PATCH' }, baseOptions), options);
2355
+ const localVarHeaderParameter = {};
2356
+ const localVarQueryParameter = {};
2357
+ // authentication DiscordAuth required
2358
+ // http bearer authentication required
2359
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
2360
+ localVarHeaderParameter['Content-Type'] = 'application/json';
2361
+ localVarHeaderParameter['Accept'] = 'application/json';
2362
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
2363
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
2364
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
2365
+ localVarRequestOptions.data = serializeDataIfNeeded(adminSetAggressiveModeImmunityRequest, localVarRequestOptions, configuration);
2366
+ return {
2367
+ url: toPathString(localVarUrlObj),
2368
+ options: localVarRequestOptions,
2369
+ };
2370
+ }),
2371
+ /**
2372
+ * Returns every subtotal (bonuses / penalties) and the underlying signal counts that fed compute_trust_factor for this player. The {@code finalScore} matches what GET /admin/player/{uuid} returns; this endpoint adds the per-component detail. Used by the admin UI \"why is this score what it is?\" tooltip. Informational only — trust factor never auto-escalates punishments.
2373
+ * @summary Trust factor breakdown for a player
2374
+ * @param {string} uuid Player Minecraft UUID
2375
+ * @param {*} [options] Override http request option.
2376
+ * @throws {RequiredError}
2377
+ */
2378
+ trustFactorBreakdown: (uuid_1, ...args_1) => __awaiter(this, [uuid_1, ...args_1], void 0, function* (uuid, options = {}) {
2379
+ // verify required parameter 'uuid' is not null or undefined
2380
+ assertParamExists('trustFactorBreakdown', 'uuid', uuid);
2381
+ const localVarPath = `/admin/player/{uuid}/trust-factor-breakdown`
2382
+ .replace(`{${"uuid"}}`, encodeURIComponent(String(uuid)));
2383
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
2384
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
2385
+ let baseOptions;
2386
+ if (configuration) {
2387
+ baseOptions = configuration.baseOptions;
2388
+ }
2389
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
2390
+ const localVarHeaderParameter = {};
2391
+ const localVarQueryParameter = {};
2392
+ // authentication DiscordAuth required
2393
+ // http bearer authentication required
2394
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
2395
+ localVarHeaderParameter['Accept'] = 'application/json';
2396
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
2397
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
2398
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
2399
+ return {
2400
+ url: toPathString(localVarUrlObj),
2401
+ options: localVarRequestOptions,
2402
+ };
2403
+ }),
2404
+ /**
2405
+ * Returns one snapshot per day (oldest first) over the requested window. Useful for trend visualization. The daily snapshot job runs at 03:00 UTC; days with no row indicate the snapshot job didn\'t run that day (e.g., outage).
2406
+ * @summary Trust factor history for a player
2407
+ * @param {string} uuid Player Minecraft UUID
2408
+ * @param {number} [days] Window in days (default 30, max 365)
2409
+ * @param {*} [options] Override http request option.
2410
+ * @throws {RequiredError}
2411
+ */
2412
+ trustFactorHistory: (uuid_1, days_1, ...args_1) => __awaiter(this, [uuid_1, days_1, ...args_1], void 0, function* (uuid, days, options = {}) {
2413
+ // verify required parameter 'uuid' is not null or undefined
2414
+ assertParamExists('trustFactorHistory', 'uuid', uuid);
2415
+ const localVarPath = `/admin/player/{uuid}/trust-factor-history`
2416
+ .replace(`{${"uuid"}}`, encodeURIComponent(String(uuid)));
2417
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
2418
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
2419
+ let baseOptions;
2420
+ if (configuration) {
2421
+ baseOptions = configuration.baseOptions;
2422
+ }
2423
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
2424
+ const localVarHeaderParameter = {};
2425
+ const localVarQueryParameter = {};
2426
+ // authentication DiscordAuth required
2427
+ // http bearer authentication required
2428
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
2429
+ if (days !== undefined) {
2430
+ localVarQueryParameter['days'] = days;
2431
+ }
2432
+ localVarHeaderParameter['Accept'] = 'application/json';
2433
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
2434
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
2435
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
2436
+ return {
2437
+ url: toPathString(localVarUrlObj),
2438
+ options: localVarRequestOptions,
2439
+ };
2440
+ }),
2441
+ };
2442
+ };
2443
+ /**
2444
+ * AdminPlayersApi - functional programming interface
2445
+ */
2446
+ export const AdminPlayersApiFp = function (configuration) {
2447
+ const localVarAxiosParamCreator = AdminPlayersApiAxiosParamCreator(configuration);
2448
+ return {
2449
+ /**
2450
+ * Mark another player as a known-legitimate associate (e.g. roommate). The relationship is stored symmetrically: subsequent aggressive-mode propagation skips this pair as an alt source in either direction. Finer-grained than the per-player aggressive_mode_immunity flag.
2451
+ * @summary Add an alt exemption
2452
+ * @param {string} uuid Player Minecraft UUID
2453
+ * @param {AdminCreateAltExemptionRequest} adminCreateAltExemptionRequest
2454
+ * @param {*} [options] Override http request option.
2455
+ * @throws {RequiredError}
2456
+ */
2457
+ addAltExemption(uuid, adminCreateAltExemptionRequest, options) {
2458
+ return __awaiter(this, void 0, void 0, function* () {
2459
+ var _a, _b, _c;
2460
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.addAltExemption(uuid, adminCreateAltExemptionRequest, options);
2461
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2462
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminPlayersApi.addAltExemption']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2463
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2464
+ });
2465
+ },
2466
+ /**
2467
+ * Soft-revokes every currently active PROPAGATED player_punishment row whose source matches the supplied id. Exactly one of sourcePlayerId / sourceConnectionId must be set. Useful when staff identify a single source as a false positive (e.g. shared NAT, legitimate roommate) and want to undo every link it caused in one operation.
2468
+ * @summary Bulk-revoke PROPAGATED links by source
2469
+ * @param {AdminBulkRevokeRequest} adminBulkRevokeRequest
2470
+ * @param {*} [options] Override http request option.
2471
+ * @throws {RequiredError}
2472
+ */
2473
+ bulkRevokePropagated(adminBulkRevokeRequest, options) {
2474
+ return __awaiter(this, void 0, void 0, function* () {
2475
+ var _a, _b, _c;
2476
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.bulkRevokePropagated(adminBulkRevokeRequest, options);
2477
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2478
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminPlayersApi.bulkRevokePropagated']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2479
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2480
+ });
2481
+ },
2482
+ /**
2483
+ * Appends a free-form note (1–4000 chars). Notes are not editable — to revise, post a new one and soft-delete the old.
2484
+ * @summary Create a staff note on a player
2485
+ * @param {string} uuid Player Minecraft UUID
2486
+ * @param {AdminCreatePlayerNoteRequest} adminCreatePlayerNoteRequest
2487
+ * @param {*} [options] Override http request option.
2488
+ * @throws {RequiredError}
2489
+ */
2490
+ createPlayerNote(uuid, adminCreatePlayerNoteRequest, options) {
2491
+ return __awaiter(this, void 0, void 0, function* () {
2492
+ var _a, _b, _c;
2493
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.createPlayerNote(uuid, adminCreatePlayerNoteRequest, options);
2494
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2495
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminPlayersApi.createPlayerNote']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2496
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2497
+ });
2498
+ },
2499
+ /**
2500
+ * Marks the note as deleted but keeps the row for audit. Idempotent — 404 if already deleted or unknown id.
2501
+ * @summary Soft-delete a staff note
2502
+ * @param {string} uuid Player Minecraft UUID (routing only)
2503
+ * @param {number} noteId Note id
2504
+ * @param {*} [options] Override http request option.
2505
+ * @throws {RequiredError}
2506
+ */
2507
+ deletePlayerNote(uuid, noteId, options) {
2508
+ return __awaiter(this, void 0, void 0, function* () {
2509
+ var _a, _b, _c;
2510
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.deletePlayerNote(uuid, noteId, options);
2511
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2512
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminPlayersApi.deletePlayerNote']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2513
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2514
+ });
2515
+ },
2516
+ /**
2517
+ * Returns full detail for a single player including all known usernames and punishment scoring.
2518
+ * @summary Get player detail
2519
+ * @param {string} uuid Player Minecraft UUID
2520
+ * @param {*} [options] Override http request option.
2521
+ * @throws {RequiredError}
2522
+ */
2523
+ getPlayer(uuid, options) {
2524
+ return __awaiter(this, void 0, void 0, function* () {
2525
+ var _a, _b, _c;
2526
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.getPlayer(uuid, options);
2527
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2528
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminPlayersApi.getPlayer']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2529
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2530
+ });
2531
+ },
2532
+ /**
2533
+ * Other players who have been seen on at least one of this player\'s historical connections. Sorted by shared-connection count desc, then last seen desc.
2534
+ * @summary List a player\'s alt accounts
2535
+ * @param {string} uuid Player Minecraft UUID
2536
+ * @param {Pageable} pageable
2537
+ * @param {*} [options] Override http request option.
2538
+ * @throws {RequiredError}
2539
+ */
2540
+ getPlayerAlts(uuid, pageable, options) {
2541
+ return __awaiter(this, void 0, void 0, function* () {
2542
+ var _a, _b, _c;
2543
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.getPlayerAlts(uuid, pageable, options);
2544
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2545
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminPlayersApi.getPlayerAlts']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2546
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2547
+ });
2548
+ },
2549
+ /**
2550
+ * Paginated list of every connection this player has used (latest first). Same shape as the dashboard connection list, suitable for an infinite-scroll panel inside the player detail modal.
2551
+ * @summary List a player\'s connection history
2552
+ * @param {string} uuid Player Minecraft UUID
2553
+ * @param {Pageable} pageable
2554
+ * @param {*} [options] Override http request option.
2555
+ * @throws {RequiredError}
2556
+ */
2557
+ getPlayerConnections(uuid, pageable, options) {
2558
+ return __awaiter(this, void 0, void 0, function* () {
2559
+ var _a, _b, _c;
2560
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.getPlayerConnections(uuid, pageable, options);
2561
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2562
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminPlayersApi.getPlayerConnections']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2563
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2564
+ });
2565
+ },
2566
+ /**
2567
+ * Paginated list of every player_punishment row for this player — DIRECT and PROPAGATED, active and revoked. Includes the transfer_note explaining why each propagated link was inserted and the revocation audit trail. The admin UI uses this to render a punishment-history section inside the player detail modal.
2568
+ * @summary List a player\'s full punishment history
2569
+ * @param {string} uuid Player Minecraft UUID
2570
+ * @param {Pageable} pageable
2571
+ * @param {*} [options] Override http request option.
2572
+ * @throws {RequiredError}
2573
+ */
2574
+ getPlayerPunishments(uuid, pageable, options) {
2575
+ return __awaiter(this, void 0, void 0, function* () {
2576
+ var _a, _b, _c;
2577
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.getPlayerPunishments(uuid, pageable, options);
2578
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2579
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminPlayersApi.getPlayerPunishments']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2580
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2581
+ });
2582
+ },
2583
+ /**
2584
+ * Single-row summary: total seconds played, session count, distinct days active, most recent session start, and whether the player is currently online. Computed on demand from player_session. Feeds the trust factor system.
2585
+ * @summary Get a player\'s aggregate session stats
2586
+ * @param {string} uuid Player Minecraft UUID
2587
+ * @param {*} [options] Override http request option.
2588
+ * @throws {RequiredError}
2589
+ */
2590
+ getSessionStats(uuid, options) {
2591
+ return __awaiter(this, void 0, void 0, function* () {
2592
+ var _a, _b, _c;
2593
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.getSessionStats(uuid, options);
2594
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2595
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminPlayersApi.getSessionStats']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2596
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2597
+ });
2598
+ },
2599
+ /**
2600
+ * Paginated list of the player\'s known-legitimate-associate exemptions. The list reflects rows where this player is the source side (player_id = this); since exemptions are stored symmetrically the reciprocal rows exist too.
2601
+ * @summary List a player\'s alt exemptions
2602
+ * @param {string} uuid Player Minecraft UUID
2603
+ * @param {Pageable} pageable
2604
+ * @param {*} [options] Override http request option.
2605
+ * @throws {RequiredError}
2606
+ */
2607
+ listAltExemptions(uuid, pageable, options) {
2608
+ return __awaiter(this, void 0, void 0, function* () {
2609
+ var _a, _b, _c;
2610
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.listAltExemptions(uuid, pageable, options);
2611
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2612
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminPlayersApi.listAltExemptions']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2613
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2614
+ });
2615
+ },
2616
+ /**
2617
+ * Paginated, newest first. Soft-deleted notes are included; the UI styles them as struck-through.
2618
+ * @summary List staff notes on a player
2619
+ * @param {string} uuid Player Minecraft UUID
2620
+ * @param {Pageable} pageable
2621
+ * @param {*} [options] Override http request option.
2622
+ * @throws {RequiredError}
2623
+ */
2624
+ listPlayerNotes(uuid, pageable, options) {
2625
+ return __awaiter(this, void 0, void 0, function* () {
2626
+ var _a, _b, _c;
2627
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.listPlayerNotes(uuid, pageable, options);
2628
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2629
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminPlayersApi.listPlayerNotes']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2630
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2631
+ });
2632
+ },
2633
+ /**
2634
+ * Returns up to 500 players ordered by most recently seen. Optionally filter by UUID or username substring.
2635
+ * @summary List players
2636
+ * @param {Pageable} pageable
2637
+ * @param {string | null} [search] Optional search string matched against UUID or username (case-insensitive substring)
2638
+ * @param {*} [options] Override http request option.
2639
+ * @throws {RequiredError}
2640
+ */
2641
+ listPlayers(pageable, search, options) {
2642
+ return __awaiter(this, void 0, void 0, function* () {
2643
+ var _a, _b, _c;
2644
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.listPlayers(pageable, search, options);
2645
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2646
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminPlayersApi.listPlayers']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2647
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2648
+ });
2649
+ },
2650
+ /**
2651
+ * Paginated history of player_session rows (active + closed), newest first. Each row records one visit by this player to one game server. Used by the admin player detail view and as the underlying data for the session-stats aggregate.
2652
+ * @summary List a player\'s session history
2653
+ * @param {string} uuid Player Minecraft UUID
2654
+ * @param {Pageable} pageable
2655
+ * @param {*} [options] Override http request option.
2656
+ * @throws {RequiredError}
2657
+ */
2658
+ listSessions(uuid, pageable, options) {
2659
+ return __awaiter(this, void 0, void 0, function* () {
2660
+ var _a, _b, _c;
2661
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.listSessions(uuid, pageable, options);
2662
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2663
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminPlayersApi.listSessions']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2664
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2665
+ });
2666
+ },
2667
+ /**
2668
+ * Delete the symmetric exemption pair between two players. Both directions are removed.
2669
+ * @summary Remove an alt exemption
2670
+ * @param {string} uuid Player Minecraft UUID
2671
+ * @param {string} altPlayerUuid UUID of the alt to remove from exemption
2672
+ * @param {*} [options] Override http request option.
2673
+ * @throws {RequiredError}
2674
+ */
2675
+ removeAltExemption(uuid, altPlayerUuid, options) {
2676
+ return __awaiter(this, void 0, void 0, function* () {
2677
+ var _a, _b, _c;
2678
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.removeAltExemption(uuid, altPlayerUuid, options);
2679
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2680
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminPlayersApi.removeAltExemption']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2681
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2682
+ });
2683
+ },
2684
+ /**
2685
+ * Soft-deletes a single player_punishment row that was inserted by aggressive-mode propagation. The source punishment record is untouched — only the link between this player and that punishment is removed from enforcement. Rejected with 404 if the row is DIRECT (the original punishment record) or already revoked.
2686
+ * @summary Revoke a propagated punishment link
2687
+ * @param {string} uuid Player Minecraft UUID (for routing/audit context; the link id is the source of truth)
2688
+ * @param {number} playerPunishmentId player_punishment row id
2689
+ * @param {*} [options] Override http request option.
2690
+ * @throws {RequiredError}
2691
+ */
2692
+ revokePropagatedLink(uuid, playerPunishmentId, options) {
2693
+ return __awaiter(this, void 0, void 0, function* () {
2694
+ var _a, _b, _c;
2695
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.revokePropagatedLink(uuid, playerPunishmentId, options);
2696
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2697
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminPlayersApi.revokePropagatedLink']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2698
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2699
+ });
2700
+ },
2701
+ /**
2702
+ * Sets whether a player is exempt from aggressive-mode propagation. Flipping the flag ON also bulk-revokes every currently active PROPAGATED link for the player in the same transaction, so the player\'s enforcement state immediately reflects the cleared status. Flipping back to OFF re-enables propagation but does NOT un-revoke previously-revoked links.
2703
+ * @summary Toggle aggressive-mode immunity
2704
+ * @param {string} uuid Player Minecraft UUID
2705
+ * @param {AdminSetAggressiveModeImmunityRequest} adminSetAggressiveModeImmunityRequest
2706
+ * @param {*} [options] Override http request option.
2707
+ * @throws {RequiredError}
2708
+ */
2709
+ setAggressiveModeImmunity(uuid, adminSetAggressiveModeImmunityRequest, options) {
2710
+ return __awaiter(this, void 0, void 0, function* () {
2711
+ var _a, _b, _c;
2712
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.setAggressiveModeImmunity(uuid, adminSetAggressiveModeImmunityRequest, options);
2713
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2714
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminPlayersApi.setAggressiveModeImmunity']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2715
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2716
+ });
2717
+ },
2718
+ /**
2719
+ * Returns every subtotal (bonuses / penalties) and the underlying signal counts that fed compute_trust_factor for this player. The {@code finalScore} matches what GET /admin/player/{uuid} returns; this endpoint adds the per-component detail. Used by the admin UI \"why is this score what it is?\" tooltip. Informational only — trust factor never auto-escalates punishments.
2720
+ * @summary Trust factor breakdown for a player
2721
+ * @param {string} uuid Player Minecraft UUID
2722
+ * @param {*} [options] Override http request option.
2723
+ * @throws {RequiredError}
2724
+ */
2725
+ trustFactorBreakdown(uuid, options) {
2726
+ return __awaiter(this, void 0, void 0, function* () {
2727
+ var _a, _b, _c;
2728
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.trustFactorBreakdown(uuid, options);
2729
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2730
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminPlayersApi.trustFactorBreakdown']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2731
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2732
+ });
2733
+ },
2734
+ /**
2735
+ * Returns one snapshot per day (oldest first) over the requested window. Useful for trend visualization. The daily snapshot job runs at 03:00 UTC; days with no row indicate the snapshot job didn\'t run that day (e.g., outage).
2736
+ * @summary Trust factor history for a player
2737
+ * @param {string} uuid Player Minecraft UUID
2738
+ * @param {number} [days] Window in days (default 30, max 365)
2739
+ * @param {*} [options] Override http request option.
2740
+ * @throws {RequiredError}
2741
+ */
2742
+ trustFactorHistory(uuid, days, options) {
2743
+ return __awaiter(this, void 0, void 0, function* () {
2744
+ var _a, _b, _c;
2745
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.trustFactorHistory(uuid, days, options);
2746
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2747
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminPlayersApi.trustFactorHistory']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2748
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2749
+ });
2750
+ },
2751
+ };
2752
+ };
2753
+ /**
2754
+ * AdminPlayersApi - factory interface
2755
+ */
2756
+ export const AdminPlayersApiFactory = function (configuration, basePath, axios) {
2757
+ const localVarFp = AdminPlayersApiFp(configuration);
2758
+ return {
2759
+ /**
2760
+ * Mark another player as a known-legitimate associate (e.g. roommate). The relationship is stored symmetrically: subsequent aggressive-mode propagation skips this pair as an alt source in either direction. Finer-grained than the per-player aggressive_mode_immunity flag.
2761
+ * @summary Add an alt exemption
2762
+ * @param {string} uuid Player Minecraft UUID
2763
+ * @param {AdminCreateAltExemptionRequest} adminCreateAltExemptionRequest
2764
+ * @param {*} [options] Override http request option.
2765
+ * @throws {RequiredError}
2766
+ */
2767
+ addAltExemption(uuid, adminCreateAltExemptionRequest, options) {
2768
+ return localVarFp.addAltExemption(uuid, adminCreateAltExemptionRequest, options).then((request) => request(axios, basePath));
2769
+ },
2770
+ /**
2771
+ * Soft-revokes every currently active PROPAGATED player_punishment row whose source matches the supplied id. Exactly one of sourcePlayerId / sourceConnectionId must be set. Useful when staff identify a single source as a false positive (e.g. shared NAT, legitimate roommate) and want to undo every link it caused in one operation.
2772
+ * @summary Bulk-revoke PROPAGATED links by source
2773
+ * @param {AdminBulkRevokeRequest} adminBulkRevokeRequest
2774
+ * @param {*} [options] Override http request option.
2775
+ * @throws {RequiredError}
2776
+ */
2777
+ bulkRevokePropagated(adminBulkRevokeRequest, options) {
2778
+ return localVarFp.bulkRevokePropagated(adminBulkRevokeRequest, options).then((request) => request(axios, basePath));
2779
+ },
2780
+ /**
2781
+ * Appends a free-form note (1–4000 chars). Notes are not editable — to revise, post a new one and soft-delete the old.
2782
+ * @summary Create a staff note on a player
2783
+ * @param {string} uuid Player Minecraft UUID
2784
+ * @param {AdminCreatePlayerNoteRequest} adminCreatePlayerNoteRequest
2785
+ * @param {*} [options] Override http request option.
2786
+ * @throws {RequiredError}
2787
+ */
2788
+ createPlayerNote(uuid, adminCreatePlayerNoteRequest, options) {
2789
+ return localVarFp.createPlayerNote(uuid, adminCreatePlayerNoteRequest, options).then((request) => request(axios, basePath));
2790
+ },
2791
+ /**
2792
+ * Marks the note as deleted but keeps the row for audit. Idempotent — 404 if already deleted or unknown id.
2793
+ * @summary Soft-delete a staff note
2794
+ * @param {string} uuid Player Minecraft UUID (routing only)
2795
+ * @param {number} noteId Note id
2796
+ * @param {*} [options] Override http request option.
2797
+ * @throws {RequiredError}
2798
+ */
2799
+ deletePlayerNote(uuid, noteId, options) {
2800
+ return localVarFp.deletePlayerNote(uuid, noteId, options).then((request) => request(axios, basePath));
2801
+ },
2802
+ /**
2803
+ * Returns full detail for a single player including all known usernames and punishment scoring.
2804
+ * @summary Get player detail
2805
+ * @param {string} uuid Player Minecraft UUID
2806
+ * @param {*} [options] Override http request option.
2807
+ * @throws {RequiredError}
2808
+ */
2809
+ getPlayer(uuid, options) {
2810
+ return localVarFp.getPlayer(uuid, options).then((request) => request(axios, basePath));
2811
+ },
2812
+ /**
2813
+ * Other players who have been seen on at least one of this player\'s historical connections. Sorted by shared-connection count desc, then last seen desc.
2814
+ * @summary List a player\'s alt accounts
2815
+ * @param {string} uuid Player Minecraft UUID
2816
+ * @param {Pageable} pageable
2817
+ * @param {*} [options] Override http request option.
2818
+ * @throws {RequiredError}
2819
+ */
2820
+ getPlayerAlts(uuid, pageable, options) {
2821
+ return localVarFp.getPlayerAlts(uuid, pageable, options).then((request) => request(axios, basePath));
2822
+ },
2823
+ /**
2824
+ * Paginated list of every connection this player has used (latest first). Same shape as the dashboard connection list, suitable for an infinite-scroll panel inside the player detail modal.
2825
+ * @summary List a player\'s connection history
2826
+ * @param {string} uuid Player Minecraft UUID
2827
+ * @param {Pageable} pageable
2828
+ * @param {*} [options] Override http request option.
2829
+ * @throws {RequiredError}
2830
+ */
2831
+ getPlayerConnections(uuid, pageable, options) {
2832
+ return localVarFp.getPlayerConnections(uuid, pageable, options).then((request) => request(axios, basePath));
2833
+ },
2834
+ /**
2835
+ * Paginated list of every player_punishment row for this player — DIRECT and PROPAGATED, active and revoked. Includes the transfer_note explaining why each propagated link was inserted and the revocation audit trail. The admin UI uses this to render a punishment-history section inside the player detail modal.
2836
+ * @summary List a player\'s full punishment history
2837
+ * @param {string} uuid Player Minecraft UUID
2838
+ * @param {Pageable} pageable
2839
+ * @param {*} [options] Override http request option.
2840
+ * @throws {RequiredError}
2841
+ */
2842
+ getPlayerPunishments(uuid, pageable, options) {
2843
+ return localVarFp.getPlayerPunishments(uuid, pageable, options).then((request) => request(axios, basePath));
2844
+ },
2845
+ /**
2846
+ * Single-row summary: total seconds played, session count, distinct days active, most recent session start, and whether the player is currently online. Computed on demand from player_session. Feeds the trust factor system.
2847
+ * @summary Get a player\'s aggregate session stats
2848
+ * @param {string} uuid Player Minecraft UUID
2849
+ * @param {*} [options] Override http request option.
2850
+ * @throws {RequiredError}
2851
+ */
2852
+ getSessionStats(uuid, options) {
2853
+ return localVarFp.getSessionStats(uuid, options).then((request) => request(axios, basePath));
2854
+ },
2855
+ /**
2856
+ * Paginated list of the player\'s known-legitimate-associate exemptions. The list reflects rows where this player is the source side (player_id = this); since exemptions are stored symmetrically the reciprocal rows exist too.
2857
+ * @summary List a player\'s alt exemptions
2858
+ * @param {string} uuid Player Minecraft UUID
2859
+ * @param {Pageable} pageable
2860
+ * @param {*} [options] Override http request option.
2861
+ * @throws {RequiredError}
2862
+ */
2863
+ listAltExemptions(uuid, pageable, options) {
2864
+ return localVarFp.listAltExemptions(uuid, pageable, options).then((request) => request(axios, basePath));
2865
+ },
2866
+ /**
2867
+ * Paginated, newest first. Soft-deleted notes are included; the UI styles them as struck-through.
2868
+ * @summary List staff notes on a player
2869
+ * @param {string} uuid Player Minecraft UUID
2870
+ * @param {Pageable} pageable
2871
+ * @param {*} [options] Override http request option.
2872
+ * @throws {RequiredError}
2873
+ */
2874
+ listPlayerNotes(uuid, pageable, options) {
2875
+ return localVarFp.listPlayerNotes(uuid, pageable, options).then((request) => request(axios, basePath));
2876
+ },
2877
+ /**
2878
+ * Returns up to 500 players ordered by most recently seen. Optionally filter by UUID or username substring.
2879
+ * @summary List players
2880
+ * @param {Pageable} pageable
2881
+ * @param {string | null} [search] Optional search string matched against UUID or username (case-insensitive substring)
2882
+ * @param {*} [options] Override http request option.
2883
+ * @throws {RequiredError}
2884
+ */
2885
+ listPlayers(pageable, search, options) {
2886
+ return localVarFp.listPlayers(pageable, search, options).then((request) => request(axios, basePath));
2887
+ },
2888
+ /**
2889
+ * Paginated history of player_session rows (active + closed), newest first. Each row records one visit by this player to one game server. Used by the admin player detail view and as the underlying data for the session-stats aggregate.
2890
+ * @summary List a player\'s session history
2891
+ * @param {string} uuid Player Minecraft UUID
2892
+ * @param {Pageable} pageable
2893
+ * @param {*} [options] Override http request option.
2894
+ * @throws {RequiredError}
2895
+ */
2896
+ listSessions(uuid, pageable, options) {
2897
+ return localVarFp.listSessions(uuid, pageable, options).then((request) => request(axios, basePath));
2898
+ },
2899
+ /**
2900
+ * Delete the symmetric exemption pair between two players. Both directions are removed.
2901
+ * @summary Remove an alt exemption
2902
+ * @param {string} uuid Player Minecraft UUID
2903
+ * @param {string} altPlayerUuid UUID of the alt to remove from exemption
2904
+ * @param {*} [options] Override http request option.
2905
+ * @throws {RequiredError}
2906
+ */
2907
+ removeAltExemption(uuid, altPlayerUuid, options) {
2908
+ return localVarFp.removeAltExemption(uuid, altPlayerUuid, options).then((request) => request(axios, basePath));
2909
+ },
2910
+ /**
2911
+ * Soft-deletes a single player_punishment row that was inserted by aggressive-mode propagation. The source punishment record is untouched — only the link between this player and that punishment is removed from enforcement. Rejected with 404 if the row is DIRECT (the original punishment record) or already revoked.
2912
+ * @summary Revoke a propagated punishment link
2913
+ * @param {string} uuid Player Minecraft UUID (for routing/audit context; the link id is the source of truth)
2914
+ * @param {number} playerPunishmentId player_punishment row id
2915
+ * @param {*} [options] Override http request option.
2916
+ * @throws {RequiredError}
2917
+ */
2918
+ revokePropagatedLink(uuid, playerPunishmentId, options) {
2919
+ return localVarFp.revokePropagatedLink(uuid, playerPunishmentId, options).then((request) => request(axios, basePath));
2920
+ },
2921
+ /**
2922
+ * Sets whether a player is exempt from aggressive-mode propagation. Flipping the flag ON also bulk-revokes every currently active PROPAGATED link for the player in the same transaction, so the player\'s enforcement state immediately reflects the cleared status. Flipping back to OFF re-enables propagation but does NOT un-revoke previously-revoked links.
2923
+ * @summary Toggle aggressive-mode immunity
2924
+ * @param {string} uuid Player Minecraft UUID
2925
+ * @param {AdminSetAggressiveModeImmunityRequest} adminSetAggressiveModeImmunityRequest
2926
+ * @param {*} [options] Override http request option.
2927
+ * @throws {RequiredError}
2928
+ */
2929
+ setAggressiveModeImmunity(uuid, adminSetAggressiveModeImmunityRequest, options) {
2930
+ return localVarFp.setAggressiveModeImmunity(uuid, adminSetAggressiveModeImmunityRequest, options).then((request) => request(axios, basePath));
2931
+ },
2932
+ /**
2933
+ * Returns every subtotal (bonuses / penalties) and the underlying signal counts that fed compute_trust_factor for this player. The {@code finalScore} matches what GET /admin/player/{uuid} returns; this endpoint adds the per-component detail. Used by the admin UI \"why is this score what it is?\" tooltip. Informational only — trust factor never auto-escalates punishments.
2934
+ * @summary Trust factor breakdown for a player
2935
+ * @param {string} uuid Player Minecraft UUID
2936
+ * @param {*} [options] Override http request option.
2937
+ * @throws {RequiredError}
2938
+ */
2939
+ trustFactorBreakdown(uuid, options) {
2940
+ return localVarFp.trustFactorBreakdown(uuid, options).then((request) => request(axios, basePath));
2941
+ },
2942
+ /**
2943
+ * Returns one snapshot per day (oldest first) over the requested window. Useful for trend visualization. The daily snapshot job runs at 03:00 UTC; days with no row indicate the snapshot job didn\'t run that day (e.g., outage).
2944
+ * @summary Trust factor history for a player
2945
+ * @param {string} uuid Player Minecraft UUID
2946
+ * @param {number} [days] Window in days (default 30, max 365)
2947
+ * @param {*} [options] Override http request option.
2948
+ * @throws {RequiredError}
2949
+ */
2950
+ trustFactorHistory(uuid, days, options) {
2951
+ return localVarFp.trustFactorHistory(uuid, days, options).then((request) => request(axios, basePath));
2952
+ },
2953
+ };
2954
+ };
2955
+ /**
2956
+ * AdminPlayersApi - object-oriented interface
2957
+ */
2958
+ export class AdminPlayersApi extends BaseAPI {
2959
+ /**
2960
+ * Mark another player as a known-legitimate associate (e.g. roommate). The relationship is stored symmetrically: subsequent aggressive-mode propagation skips this pair as an alt source in either direction. Finer-grained than the per-player aggressive_mode_immunity flag.
2961
+ * @summary Add an alt exemption
2962
+ * @param {string} uuid Player Minecraft UUID
2963
+ * @param {AdminCreateAltExemptionRequest} adminCreateAltExemptionRequest
2964
+ * @param {*} [options] Override http request option.
2965
+ * @throws {RequiredError}
2966
+ */
2967
+ addAltExemption(uuid, adminCreateAltExemptionRequest, options) {
2968
+ return AdminPlayersApiFp(this.configuration).addAltExemption(uuid, adminCreateAltExemptionRequest, options).then((request) => request(this.axios, this.basePath));
2969
+ }
2970
+ /**
2971
+ * Soft-revokes every currently active PROPAGATED player_punishment row whose source matches the supplied id. Exactly one of sourcePlayerId / sourceConnectionId must be set. Useful when staff identify a single source as a false positive (e.g. shared NAT, legitimate roommate) and want to undo every link it caused in one operation.
2972
+ * @summary Bulk-revoke PROPAGATED links by source
2973
+ * @param {AdminBulkRevokeRequest} adminBulkRevokeRequest
2974
+ * @param {*} [options] Override http request option.
2975
+ * @throws {RequiredError}
2976
+ */
2977
+ bulkRevokePropagated(adminBulkRevokeRequest, options) {
2978
+ return AdminPlayersApiFp(this.configuration).bulkRevokePropagated(adminBulkRevokeRequest, options).then((request) => request(this.axios, this.basePath));
2979
+ }
2980
+ /**
2981
+ * Appends a free-form note (1–4000 chars). Notes are not editable — to revise, post a new one and soft-delete the old.
2982
+ * @summary Create a staff note on a player
2983
+ * @param {string} uuid Player Minecraft UUID
2984
+ * @param {AdminCreatePlayerNoteRequest} adminCreatePlayerNoteRequest
2985
+ * @param {*} [options] Override http request option.
2986
+ * @throws {RequiredError}
2987
+ */
2988
+ createPlayerNote(uuid, adminCreatePlayerNoteRequest, options) {
2989
+ return AdminPlayersApiFp(this.configuration).createPlayerNote(uuid, adminCreatePlayerNoteRequest, options).then((request) => request(this.axios, this.basePath));
2990
+ }
2991
+ /**
2992
+ * Marks the note as deleted but keeps the row for audit. Idempotent — 404 if already deleted or unknown id.
2993
+ * @summary Soft-delete a staff note
2994
+ * @param {string} uuid Player Minecraft UUID (routing only)
2995
+ * @param {number} noteId Note id
2996
+ * @param {*} [options] Override http request option.
2997
+ * @throws {RequiredError}
2998
+ */
2999
+ deletePlayerNote(uuid, noteId, options) {
3000
+ return AdminPlayersApiFp(this.configuration).deletePlayerNote(uuid, noteId, options).then((request) => request(this.axios, this.basePath));
3001
+ }
3002
+ /**
3003
+ * Returns full detail for a single player including all known usernames and punishment scoring.
3004
+ * @summary Get player detail
3005
+ * @param {string} uuid Player Minecraft UUID
3006
+ * @param {*} [options] Override http request option.
3007
+ * @throws {RequiredError}
3008
+ */
3009
+ getPlayer(uuid, options) {
3010
+ return AdminPlayersApiFp(this.configuration).getPlayer(uuid, options).then((request) => request(this.axios, this.basePath));
3011
+ }
3012
+ /**
3013
+ * Other players who have been seen on at least one of this player\'s historical connections. Sorted by shared-connection count desc, then last seen desc.
3014
+ * @summary List a player\'s alt accounts
3015
+ * @param {string} uuid Player Minecraft UUID
3016
+ * @param {Pageable} pageable
3017
+ * @param {*} [options] Override http request option.
3018
+ * @throws {RequiredError}
3019
+ */
3020
+ getPlayerAlts(uuid, pageable, options) {
3021
+ return AdminPlayersApiFp(this.configuration).getPlayerAlts(uuid, pageable, options).then((request) => request(this.axios, this.basePath));
3022
+ }
3023
+ /**
3024
+ * Paginated list of every connection this player has used (latest first). Same shape as the dashboard connection list, suitable for an infinite-scroll panel inside the player detail modal.
3025
+ * @summary List a player\'s connection history
3026
+ * @param {string} uuid Player Minecraft UUID
3027
+ * @param {Pageable} pageable
3028
+ * @param {*} [options] Override http request option.
3029
+ * @throws {RequiredError}
3030
+ */
3031
+ getPlayerConnections(uuid, pageable, options) {
3032
+ return AdminPlayersApiFp(this.configuration).getPlayerConnections(uuid, pageable, options).then((request) => request(this.axios, this.basePath));
3033
+ }
3034
+ /**
3035
+ * Paginated list of every player_punishment row for this player — DIRECT and PROPAGATED, active and revoked. Includes the transfer_note explaining why each propagated link was inserted and the revocation audit trail. The admin UI uses this to render a punishment-history section inside the player detail modal.
3036
+ * @summary List a player\'s full punishment history
3037
+ * @param {string} uuid Player Minecraft UUID
3038
+ * @param {Pageable} pageable
3039
+ * @param {*} [options] Override http request option.
3040
+ * @throws {RequiredError}
3041
+ */
3042
+ getPlayerPunishments(uuid, pageable, options) {
3043
+ return AdminPlayersApiFp(this.configuration).getPlayerPunishments(uuid, pageable, options).then((request) => request(this.axios, this.basePath));
3044
+ }
3045
+ /**
3046
+ * Single-row summary: total seconds played, session count, distinct days active, most recent session start, and whether the player is currently online. Computed on demand from player_session. Feeds the trust factor system.
3047
+ * @summary Get a player\'s aggregate session stats
3048
+ * @param {string} uuid Player Minecraft UUID
3049
+ * @param {*} [options] Override http request option.
3050
+ * @throws {RequiredError}
3051
+ */
3052
+ getSessionStats(uuid, options) {
3053
+ return AdminPlayersApiFp(this.configuration).getSessionStats(uuid, options).then((request) => request(this.axios, this.basePath));
3054
+ }
3055
+ /**
3056
+ * Paginated list of the player\'s known-legitimate-associate exemptions. The list reflects rows where this player is the source side (player_id = this); since exemptions are stored symmetrically the reciprocal rows exist too.
3057
+ * @summary List a player\'s alt exemptions
3058
+ * @param {string} uuid Player Minecraft UUID
3059
+ * @param {Pageable} pageable
3060
+ * @param {*} [options] Override http request option.
3061
+ * @throws {RequiredError}
3062
+ */
3063
+ listAltExemptions(uuid, pageable, options) {
3064
+ return AdminPlayersApiFp(this.configuration).listAltExemptions(uuid, pageable, options).then((request) => request(this.axios, this.basePath));
3065
+ }
3066
+ /**
3067
+ * Paginated, newest first. Soft-deleted notes are included; the UI styles them as struck-through.
3068
+ * @summary List staff notes on a player
3069
+ * @param {string} uuid Player Minecraft UUID
3070
+ * @param {Pageable} pageable
3071
+ * @param {*} [options] Override http request option.
3072
+ * @throws {RequiredError}
3073
+ */
3074
+ listPlayerNotes(uuid, pageable, options) {
3075
+ return AdminPlayersApiFp(this.configuration).listPlayerNotes(uuid, pageable, options).then((request) => request(this.axios, this.basePath));
3076
+ }
3077
+ /**
3078
+ * Returns up to 500 players ordered by most recently seen. Optionally filter by UUID or username substring.
3079
+ * @summary List players
3080
+ * @param {Pageable} pageable
3081
+ * @param {string | null} [search] Optional search string matched against UUID or username (case-insensitive substring)
3082
+ * @param {*} [options] Override http request option.
3083
+ * @throws {RequiredError}
3084
+ */
3085
+ listPlayers(pageable, search, options) {
3086
+ return AdminPlayersApiFp(this.configuration).listPlayers(pageable, search, options).then((request) => request(this.axios, this.basePath));
3087
+ }
1274
3088
  /**
1275
- * Returns full detail for a single player including all known usernames and punishment scoring.
1276
- * @summary Get player detail
3089
+ * Paginated history of player_session rows (active + closed), newest first. Each row records one visit by this player to one game server. Used by the admin player detail view and as the underlying data for the session-stats aggregate.
3090
+ * @summary List a player\'s session history
1277
3091
  * @param {string} uuid Player Minecraft UUID
3092
+ * @param {Pageable} pageable
1278
3093
  * @param {*} [options] Override http request option.
1279
3094
  * @throws {RequiredError}
1280
3095
  */
1281
- getPlayer(uuid, options) {
1282
- return AdminPlayersApiFp(this.configuration).getPlayer(uuid, options).then((request) => request(this.axios, this.basePath));
3096
+ listSessions(uuid, pageable, options) {
3097
+ return AdminPlayersApiFp(this.configuration).listSessions(uuid, pageable, options).then((request) => request(this.axios, this.basePath));
1283
3098
  }
1284
3099
  /**
1285
- * Returns up to 500 players ordered by most recently seen. Optionally filter by UUID or username substring.
1286
- * @summary List players
1287
- * @param {number} page Page number (1-indexed)
1288
- * @param {number} limit Page size
1289
- * @param {string | null} [search] Optional search string matched against UUID or username (case-insensitive substring)
3100
+ * Delete the symmetric exemption pair between two players. Both directions are removed.
3101
+ * @summary Remove an alt exemption
3102
+ * @param {string} uuid Player Minecraft UUID
3103
+ * @param {string} altPlayerUuid UUID of the alt to remove from exemption
3104
+ * @param {*} [options] Override http request option.
3105
+ * @throws {RequiredError}
3106
+ */
3107
+ removeAltExemption(uuid, altPlayerUuid, options) {
3108
+ return AdminPlayersApiFp(this.configuration).removeAltExemption(uuid, altPlayerUuid, options).then((request) => request(this.axios, this.basePath));
3109
+ }
3110
+ /**
3111
+ * Soft-deletes a single player_punishment row that was inserted by aggressive-mode propagation. The source punishment record is untouched — only the link between this player and that punishment is removed from enforcement. Rejected with 404 if the row is DIRECT (the original punishment record) or already revoked.
3112
+ * @summary Revoke a propagated punishment link
3113
+ * @param {string} uuid Player Minecraft UUID (for routing/audit context; the link id is the source of truth)
3114
+ * @param {number} playerPunishmentId player_punishment row id
3115
+ * @param {*} [options] Override http request option.
3116
+ * @throws {RequiredError}
3117
+ */
3118
+ revokePropagatedLink(uuid, playerPunishmentId, options) {
3119
+ return AdminPlayersApiFp(this.configuration).revokePropagatedLink(uuid, playerPunishmentId, options).then((request) => request(this.axios, this.basePath));
3120
+ }
3121
+ /**
3122
+ * Sets whether a player is exempt from aggressive-mode propagation. Flipping the flag ON also bulk-revokes every currently active PROPAGATED link for the player in the same transaction, so the player\'s enforcement state immediately reflects the cleared status. Flipping back to OFF re-enables propagation but does NOT un-revoke previously-revoked links.
3123
+ * @summary Toggle aggressive-mode immunity
3124
+ * @param {string} uuid Player Minecraft UUID
3125
+ * @param {AdminSetAggressiveModeImmunityRequest} adminSetAggressiveModeImmunityRequest
3126
+ * @param {*} [options] Override http request option.
3127
+ * @throws {RequiredError}
3128
+ */
3129
+ setAggressiveModeImmunity(uuid, adminSetAggressiveModeImmunityRequest, options) {
3130
+ return AdminPlayersApiFp(this.configuration).setAggressiveModeImmunity(uuid, adminSetAggressiveModeImmunityRequest, options).then((request) => request(this.axios, this.basePath));
3131
+ }
3132
+ /**
3133
+ * Returns every subtotal (bonuses / penalties) and the underlying signal counts that fed compute_trust_factor for this player. The {@code finalScore} matches what GET /admin/player/{uuid} returns; this endpoint adds the per-component detail. Used by the admin UI \"why is this score what it is?\" tooltip. Informational only — trust factor never auto-escalates punishments.
3134
+ * @summary Trust factor breakdown for a player
3135
+ * @param {string} uuid Player Minecraft UUID
3136
+ * @param {*} [options] Override http request option.
3137
+ * @throws {RequiredError}
3138
+ */
3139
+ trustFactorBreakdown(uuid, options) {
3140
+ return AdminPlayersApiFp(this.configuration).trustFactorBreakdown(uuid, options).then((request) => request(this.axios, this.basePath));
3141
+ }
3142
+ /**
3143
+ * Returns one snapshot per day (oldest first) over the requested window. Useful for trend visualization. The daily snapshot job runs at 03:00 UTC; days with no row indicate the snapshot job didn\'t run that day (e.g., outage).
3144
+ * @summary Trust factor history for a player
3145
+ * @param {string} uuid Player Minecraft UUID
3146
+ * @param {number} [days] Window in days (default 30, max 365)
1290
3147
  * @param {*} [options] Override http request option.
1291
3148
  * @throws {RequiredError}
1292
3149
  */
1293
- listPlayers(page, limit, search, options) {
1294
- return AdminPlayersApiFp(this.configuration).listPlayers(page, limit, search, options).then((request) => request(this.axios, this.basePath));
3150
+ trustFactorHistory(uuid, days, options) {
3151
+ return AdminPlayersApiFp(this.configuration).trustFactorHistory(uuid, days, options).then((request) => request(this.axios, this.basePath));
1295
3152
  }
1296
3153
  }
1297
3154
  /**
@@ -1367,25 +3224,59 @@ export const AdminPunishmentsApiAxiosParamCreator = function (configuration) {
1367
3224
  options: localVarRequestOptions,
1368
3225
  };
1369
3226
  }),
3227
+ /**
3228
+ * Partial update of a punishment record. Reason / notes / expiresAt are mutable; severity is intentionally immutable to keep the punishment score deterministic. To make a punishment permanent, set forcePermanent=true. The endpoint returns 404 if the id doesn\'t exist, 200 with the updated entity otherwise. Every edit is recorded in admin_audit_log with the before/after payload.
3229
+ * @summary Edit a punishment
3230
+ * @param {number} id Punishment id
3231
+ * @param {AdminUpdatePunishmentRequest} adminUpdatePunishmentRequest
3232
+ * @param {*} [options] Override http request option.
3233
+ * @throws {RequiredError}
3234
+ */
3235
+ editPunishment: (id_1, adminUpdatePunishmentRequest_1, ...args_1) => __awaiter(this, [id_1, adminUpdatePunishmentRequest_1, ...args_1], void 0, function* (id, adminUpdatePunishmentRequest, options = {}) {
3236
+ // verify required parameter 'id' is not null or undefined
3237
+ assertParamExists('editPunishment', 'id', id);
3238
+ // verify required parameter 'adminUpdatePunishmentRequest' is not null or undefined
3239
+ assertParamExists('editPunishment', 'adminUpdatePunishmentRequest', adminUpdatePunishmentRequest);
3240
+ const localVarPath = `/admin/punishment/{id}`
3241
+ .replace(`{${"id"}}`, encodeURIComponent(String(id)));
3242
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
3243
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
3244
+ let baseOptions;
3245
+ if (configuration) {
3246
+ baseOptions = configuration.baseOptions;
3247
+ }
3248
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'PATCH' }, baseOptions), options);
3249
+ const localVarHeaderParameter = {};
3250
+ const localVarQueryParameter = {};
3251
+ // authentication DiscordAuth required
3252
+ // http bearer authentication required
3253
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
3254
+ localVarHeaderParameter['Content-Type'] = 'application/json';
3255
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
3256
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
3257
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
3258
+ localVarRequestOptions.data = serializeDataIfNeeded(adminUpdatePunishmentRequest, localVarRequestOptions, configuration);
3259
+ return {
3260
+ url: toPathString(localVarUrlObj),
3261
+ options: localVarRequestOptions,
3262
+ };
3263
+ }),
1370
3264
  /**
1371
3265
  * Returns a paginated list of punishments with optional filtering by player UUID, username, IP address, type, and date range.
1372
3266
  * @summary List punishments
1373
- * @param {number} page Page number (1-indexed)
1374
- * @param {number} limit Page size
1375
- * @param {string | null} [uuid] Filter by player UUID
1376
- * @param {string | null} [username] Filter by player username (case-insensitive substring match)
1377
- * @param {string | null} [ipAddress] Filter by IP address
1378
- * @param {Array<PunishmentType> | null} [type] Filter by punishment type. Repeatable.
1379
- * @param {number | null} [issuedAfter] Filter punishments issued after this epoch timestamp (ms)
1380
- * @param {number | null} [issuedBefore] Filter punishments issued before this epoch timestamp (ms)
1381
- * @param {*} [options] Override http request option.
1382
- * @throws {RequiredError}
1383
- */
1384
- getPunishments: (page_1, limit_1, uuid_1, username_1, ipAddress_1, type_1, issuedAfter_1, issuedBefore_1, ...args_1) => __awaiter(this, [page_1, limit_1, uuid_1, username_1, ipAddress_1, type_1, issuedAfter_1, issuedBefore_1, ...args_1], void 0, function* (page, limit, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options = {}) {
1385
- // verify required parameter 'page' is not null or undefined
1386
- assertParamExists('getPunishments', 'page', page);
1387
- // verify required parameter 'limit' is not null or undefined
1388
- assertParamExists('getPunishments', 'limit', limit);
3267
+ * @param {Pageable} pageable
3268
+ * @param {string | null} [uuid]
3269
+ * @param {string | null} [username]
3270
+ * @param {string | null} [ipAddress]
3271
+ * @param {Array<PunishmentType> | null} [type]
3272
+ * @param {number | null} [issuedAfter]
3273
+ * @param {number | null} [issuedBefore]
3274
+ * @param {*} [options] Override http request option.
3275
+ * @throws {RequiredError}
3276
+ */
3277
+ getPunishments: (pageable_1, uuid_1, username_1, ipAddress_1, type_1, issuedAfter_1, issuedBefore_1, ...args_1) => __awaiter(this, [pageable_1, uuid_1, username_1, ipAddress_1, type_1, issuedAfter_1, issuedBefore_1, ...args_1], void 0, function* (pageable, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options = {}) {
3278
+ // verify required parameter 'pageable' is not null or undefined
3279
+ assertParamExists('getPunishments', 'pageable', pageable);
1389
3280
  const localVarPath = `/admin/punishment`;
1390
3281
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
1391
3282
  const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
@@ -1417,11 +3308,8 @@ export const AdminPunishmentsApiAxiosParamCreator = function (configuration) {
1417
3308
  if (issuedBefore !== undefined) {
1418
3309
  localVarQueryParameter['issuedBefore'] = issuedBefore;
1419
3310
  }
1420
- if (page !== undefined) {
1421
- localVarQueryParameter['page'] = page;
1422
- }
1423
- if (limit !== undefined) {
1424
- localVarQueryParameter['limit'] = limit;
3311
+ if (pageable !== undefined) {
3312
+ localVarQueryParameter['pageable'] = pageable;
1425
3313
  }
1426
3314
  localVarHeaderParameter['Accept'] = 'application/json';
1427
3315
  setSearchParams(localVarUrlObj, localVarQueryParameter);
@@ -1508,151 +3396,376 @@ export const AdminPunishmentsApiFp = function (configuration) {
1508
3396
  });
1509
3397
  },
1510
3398
  /**
1511
- * Returns a paginated list of punishments with optional filtering by player UUID, username, IP address, type, and date range.
1512
- * @summary List punishments
1513
- * @param {number} page Page number (1-indexed)
1514
- * @param {number} limit Page size
1515
- * @param {string | null} [uuid] Filter by player UUID
1516
- * @param {string | null} [username] Filter by player username (case-insensitive substring match)
1517
- * @param {string | null} [ipAddress] Filter by IP address
1518
- * @param {Array<PunishmentType> | null} [type] Filter by punishment type. Repeatable.
1519
- * @param {number | null} [issuedAfter] Filter punishments issued after this epoch timestamp (ms)
1520
- * @param {number | null} [issuedBefore] Filter punishments issued before this epoch timestamp (ms)
3399
+ * Partial update of a punishment record. Reason / notes / expiresAt are mutable; severity is intentionally immutable to keep the punishment score deterministic. To make a punishment permanent, set forcePermanent=true. The endpoint returns 404 if the id doesn\'t exist, 200 with the updated entity otherwise. Every edit is recorded in admin_audit_log with the before/after payload.
3400
+ * @summary Edit a punishment
3401
+ * @param {number} id Punishment id
3402
+ * @param {AdminUpdatePunishmentRequest} adminUpdatePunishmentRequest
3403
+ * @param {*} [options] Override http request option.
3404
+ * @throws {RequiredError}
3405
+ */
3406
+ editPunishment(id, adminUpdatePunishmentRequest, options) {
3407
+ return __awaiter(this, void 0, void 0, function* () {
3408
+ var _a, _b, _c;
3409
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.editPunishment(id, adminUpdatePunishmentRequest, options);
3410
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
3411
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminPunishmentsApi.editPunishment']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
3412
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
3413
+ });
3414
+ },
3415
+ /**
3416
+ * Returns a paginated list of punishments with optional filtering by player UUID, username, IP address, type, and date range.
3417
+ * @summary List punishments
3418
+ * @param {Pageable} pageable
3419
+ * @param {string | null} [uuid]
3420
+ * @param {string | null} [username]
3421
+ * @param {string | null} [ipAddress]
3422
+ * @param {Array<PunishmentType> | null} [type]
3423
+ * @param {number | null} [issuedAfter]
3424
+ * @param {number | null} [issuedBefore]
3425
+ * @param {*} [options] Override http request option.
3426
+ * @throws {RequiredError}
3427
+ */
3428
+ getPunishments(pageable, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options) {
3429
+ return __awaiter(this, void 0, void 0, function* () {
3430
+ var _a, _b, _c;
3431
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.getPunishments(pageable, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options);
3432
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
3433
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminPunishmentsApi.getPunishments']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
3434
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
3435
+ });
3436
+ },
3437
+ /**
3438
+ * Search for players by UUID or username, or look up all players associated with an IP address.
3439
+ * @summary Search punishment targets
3440
+ * @param {string} q UUID, username, or partial/full IP address to search for
3441
+ * @param {*} [options] Override http request option.
3442
+ * @throws {RequiredError}
3443
+ */
3444
+ searchTargets(q, options) {
3445
+ return __awaiter(this, void 0, void 0, function* () {
3446
+ var _a, _b, _c;
3447
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.searchTargets(q, options);
3448
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
3449
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminPunishmentsApi.searchTargets']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
3450
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
3451
+ });
3452
+ },
3453
+ };
3454
+ };
3455
+ /**
3456
+ * AdminPunishmentsApi - factory interface
3457
+ */
3458
+ export const AdminPunishmentsApiFactory = function (configuration, basePath, axios) {
3459
+ const localVarFp = AdminPunishmentsApiFp(configuration);
3460
+ return {
3461
+ /**
3462
+ * Apply a punishment to one or more targets. The authenticated user is recorded as the issuer.
3463
+ * @summary Apply punishment
3464
+ * @param {AdminApplyPunishmentRequest} adminApplyPunishmentRequest
3465
+ * @param {*} [options] Override http request option.
3466
+ * @throws {RequiredError}
3467
+ */
3468
+ applyPunishment(adminApplyPunishmentRequest, options) {
3469
+ return localVarFp.applyPunishment(adminApplyPunishmentRequest, options).then((request) => request(axios, basePath));
3470
+ },
3471
+ /**
3472
+ * Preview the impact of a punishment across one or more targets. No changes are made.
3473
+ * @summary Evaluate punishment impact
3474
+ * @param {AdminCreatePunishmentDraftRequest} adminCreatePunishmentDraftRequest
3475
+ * @param {*} [options] Override http request option.
3476
+ * @throws {RequiredError}
3477
+ */
3478
+ createDraft(adminCreatePunishmentDraftRequest, options) {
3479
+ return localVarFp.createDraft(adminCreatePunishmentDraftRequest, options).then((request) => request(axios, basePath));
3480
+ },
3481
+ /**
3482
+ * Partial update of a punishment record. Reason / notes / expiresAt are mutable; severity is intentionally immutable to keep the punishment score deterministic. To make a punishment permanent, set forcePermanent=true. The endpoint returns 404 if the id doesn\'t exist, 200 with the updated entity otherwise. Every edit is recorded in admin_audit_log with the before/after payload.
3483
+ * @summary Edit a punishment
3484
+ * @param {number} id Punishment id
3485
+ * @param {AdminUpdatePunishmentRequest} adminUpdatePunishmentRequest
3486
+ * @param {*} [options] Override http request option.
3487
+ * @throws {RequiredError}
3488
+ */
3489
+ editPunishment(id, adminUpdatePunishmentRequest, options) {
3490
+ return localVarFp.editPunishment(id, adminUpdatePunishmentRequest, options).then((request) => request(axios, basePath));
3491
+ },
3492
+ /**
3493
+ * Returns a paginated list of punishments with optional filtering by player UUID, username, IP address, type, and date range.
3494
+ * @summary List punishments
3495
+ * @param {Pageable} pageable
3496
+ * @param {string | null} [uuid]
3497
+ * @param {string | null} [username]
3498
+ * @param {string | null} [ipAddress]
3499
+ * @param {Array<PunishmentType> | null} [type]
3500
+ * @param {number | null} [issuedAfter]
3501
+ * @param {number | null} [issuedBefore]
3502
+ * @param {*} [options] Override http request option.
3503
+ * @throws {RequiredError}
3504
+ */
3505
+ getPunishments(pageable, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options) {
3506
+ return localVarFp.getPunishments(pageable, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options).then((request) => request(axios, basePath));
3507
+ },
3508
+ /**
3509
+ * Search for players by UUID or username, or look up all players associated with an IP address.
3510
+ * @summary Search punishment targets
3511
+ * @param {string} q UUID, username, or partial/full IP address to search for
3512
+ * @param {*} [options] Override http request option.
3513
+ * @throws {RequiredError}
3514
+ */
3515
+ searchTargets(q, options) {
3516
+ return localVarFp.searchTargets(q, options).then((request) => request(axios, basePath));
3517
+ },
3518
+ };
3519
+ };
3520
+ /**
3521
+ * AdminPunishmentsApi - object-oriented interface
3522
+ */
3523
+ export class AdminPunishmentsApi extends BaseAPI {
3524
+ /**
3525
+ * Apply a punishment to one or more targets. The authenticated user is recorded as the issuer.
3526
+ * @summary Apply punishment
3527
+ * @param {AdminApplyPunishmentRequest} adminApplyPunishmentRequest
3528
+ * @param {*} [options] Override http request option.
3529
+ * @throws {RequiredError}
3530
+ */
3531
+ applyPunishment(adminApplyPunishmentRequest, options) {
3532
+ return AdminPunishmentsApiFp(this.configuration).applyPunishment(adminApplyPunishmentRequest, options).then((request) => request(this.axios, this.basePath));
3533
+ }
3534
+ /**
3535
+ * Preview the impact of a punishment across one or more targets. No changes are made.
3536
+ * @summary Evaluate punishment impact
3537
+ * @param {AdminCreatePunishmentDraftRequest} adminCreatePunishmentDraftRequest
3538
+ * @param {*} [options] Override http request option.
3539
+ * @throws {RequiredError}
3540
+ */
3541
+ createDraft(adminCreatePunishmentDraftRequest, options) {
3542
+ return AdminPunishmentsApiFp(this.configuration).createDraft(adminCreatePunishmentDraftRequest, options).then((request) => request(this.axios, this.basePath));
3543
+ }
3544
+ /**
3545
+ * Partial update of a punishment record. Reason / notes / expiresAt are mutable; severity is intentionally immutable to keep the punishment score deterministic. To make a punishment permanent, set forcePermanent=true. The endpoint returns 404 if the id doesn\'t exist, 200 with the updated entity otherwise. Every edit is recorded in admin_audit_log with the before/after payload.
3546
+ * @summary Edit a punishment
3547
+ * @param {number} id Punishment id
3548
+ * @param {AdminUpdatePunishmentRequest} adminUpdatePunishmentRequest
3549
+ * @param {*} [options] Override http request option.
3550
+ * @throws {RequiredError}
3551
+ */
3552
+ editPunishment(id, adminUpdatePunishmentRequest, options) {
3553
+ return AdminPunishmentsApiFp(this.configuration).editPunishment(id, adminUpdatePunishmentRequest, options).then((request) => request(this.axios, this.basePath));
3554
+ }
3555
+ /**
3556
+ * Returns a paginated list of punishments with optional filtering by player UUID, username, IP address, type, and date range.
3557
+ * @summary List punishments
3558
+ * @param {Pageable} pageable
3559
+ * @param {string | null} [uuid]
3560
+ * @param {string | null} [username]
3561
+ * @param {string | null} [ipAddress]
3562
+ * @param {Array<PunishmentType> | null} [type]
3563
+ * @param {number | null} [issuedAfter]
3564
+ * @param {number | null} [issuedBefore]
3565
+ * @param {*} [options] Override http request option.
3566
+ * @throws {RequiredError}
3567
+ */
3568
+ getPunishments(pageable, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options) {
3569
+ return AdminPunishmentsApiFp(this.configuration).getPunishments(pageable, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options).then((request) => request(this.axios, this.basePath));
3570
+ }
3571
+ /**
3572
+ * Search for players by UUID or username, or look up all players associated with an IP address.
3573
+ * @summary Search punishment targets
3574
+ * @param {string} q UUID, username, or partial/full IP address to search for
3575
+ * @param {*} [options] Override http request option.
3576
+ * @throws {RequiredError}
3577
+ */
3578
+ searchTargets(q, options) {
3579
+ return AdminPunishmentsApiFp(this.configuration).searchTargets(q, options).then((request) => request(this.axios, this.basePath));
3580
+ }
3581
+ }
3582
+ /**
3583
+ * AdminReportsApi - axios parameter creator
3584
+ */
3585
+ export const AdminReportsApiAxiosParamCreator = function (configuration) {
3586
+ return {
3587
+ /**
3588
+ * Paginated, newest first. Use openOnly=true to see the triage queue; reportedUuid filters to one player.
3589
+ * @summary List reports
3590
+ * @param {Pageable} pageable
3591
+ * @param {string | null} [reportedUuid] Filter to reports targeting this player UUID
3592
+ * @param {boolean} [openOnly]
3593
+ * @param {*} [options] Override http request option.
3594
+ * @throws {RequiredError}
3595
+ */
3596
+ list1: (pageable_1, reportedUuid_1, openOnly_1, ...args_1) => __awaiter(this, [pageable_1, reportedUuid_1, openOnly_1, ...args_1], void 0, function* (pageable, reportedUuid, openOnly, options = {}) {
3597
+ // verify required parameter 'pageable' is not null or undefined
3598
+ assertParamExists('list1', 'pageable', pageable);
3599
+ const localVarPath = `/admin/report`;
3600
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
3601
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
3602
+ let baseOptions;
3603
+ if (configuration) {
3604
+ baseOptions = configuration.baseOptions;
3605
+ }
3606
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
3607
+ const localVarHeaderParameter = {};
3608
+ const localVarQueryParameter = {};
3609
+ // authentication DiscordAuth required
3610
+ // http bearer authentication required
3611
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
3612
+ if (reportedUuid !== undefined) {
3613
+ localVarQueryParameter['reportedUuid'] = reportedUuid;
3614
+ }
3615
+ if (openOnly !== undefined) {
3616
+ localVarQueryParameter['openOnly'] = openOnly;
3617
+ }
3618
+ if (pageable !== undefined) {
3619
+ localVarQueryParameter['pageable'] = pageable;
3620
+ }
3621
+ localVarHeaderParameter['Accept'] = 'application/json';
3622
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
3623
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
3624
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
3625
+ return {
3626
+ url: toPathString(localVarUrlObj),
3627
+ options: localVarRequestOptions,
3628
+ };
3629
+ }),
3630
+ /**
3631
+ * Marks the report resolved with the staff member\'s note. 404 if already resolved or unknown id.
3632
+ * @summary Resolve a report
3633
+ * @param {number} id Report id
3634
+ * @param {AdminResolveReportRequest} adminResolveReportRequest
3635
+ * @param {*} [options] Override http request option.
3636
+ * @throws {RequiredError}
3637
+ */
3638
+ resolve: (id_1, adminResolveReportRequest_1, ...args_1) => __awaiter(this, [id_1, adminResolveReportRequest_1, ...args_1], void 0, function* (id, adminResolveReportRequest, options = {}) {
3639
+ // verify required parameter 'id' is not null or undefined
3640
+ assertParamExists('resolve', 'id', id);
3641
+ // verify required parameter 'adminResolveReportRequest' is not null or undefined
3642
+ assertParamExists('resolve', 'adminResolveReportRequest', adminResolveReportRequest);
3643
+ const localVarPath = `/admin/report/{id}/resolve`
3644
+ .replace(`{${"id"}}`, encodeURIComponent(String(id)));
3645
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
3646
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
3647
+ let baseOptions;
3648
+ if (configuration) {
3649
+ baseOptions = configuration.baseOptions;
3650
+ }
3651
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
3652
+ const localVarHeaderParameter = {};
3653
+ const localVarQueryParameter = {};
3654
+ // authentication DiscordAuth required
3655
+ // http bearer authentication required
3656
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
3657
+ localVarHeaderParameter['Content-Type'] = 'application/json';
3658
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
3659
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
3660
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
3661
+ localVarRequestOptions.data = serializeDataIfNeeded(adminResolveReportRequest, localVarRequestOptions, configuration);
3662
+ return {
3663
+ url: toPathString(localVarUrlObj),
3664
+ options: localVarRequestOptions,
3665
+ };
3666
+ }),
3667
+ };
3668
+ };
3669
+ /**
3670
+ * AdminReportsApi - functional programming interface
3671
+ */
3672
+ export const AdminReportsApiFp = function (configuration) {
3673
+ const localVarAxiosParamCreator = AdminReportsApiAxiosParamCreator(configuration);
3674
+ return {
3675
+ /**
3676
+ * Paginated, newest first. Use openOnly=true to see the triage queue; reportedUuid filters to one player.
3677
+ * @summary List reports
3678
+ * @param {Pageable} pageable
3679
+ * @param {string | null} [reportedUuid] Filter to reports targeting this player UUID
3680
+ * @param {boolean} [openOnly]
1521
3681
  * @param {*} [options] Override http request option.
1522
3682
  * @throws {RequiredError}
1523
3683
  */
1524
- getPunishments(page, limit, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options) {
3684
+ list1(pageable, reportedUuid, openOnly, options) {
1525
3685
  return __awaiter(this, void 0, void 0, function* () {
1526
3686
  var _a, _b, _c;
1527
- const localVarAxiosArgs = yield localVarAxiosParamCreator.getPunishments(page, limit, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options);
3687
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.list1(pageable, reportedUuid, openOnly, options);
1528
3688
  const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
1529
- const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminPunishmentsApi.getPunishments']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
3689
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminReportsApi.list1']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
1530
3690
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1531
3691
  });
1532
3692
  },
1533
3693
  /**
1534
- * Search for players by UUID or username, or look up all players associated with an IP address.
1535
- * @summary Search punishment targets
1536
- * @param {string} q UUID, username, or partial/full IP address to search for
3694
+ * Marks the report resolved with the staff member\'s note. 404 if already resolved or unknown id.
3695
+ * @summary Resolve a report
3696
+ * @param {number} id Report id
3697
+ * @param {AdminResolveReportRequest} adminResolveReportRequest
1537
3698
  * @param {*} [options] Override http request option.
1538
3699
  * @throws {RequiredError}
1539
3700
  */
1540
- searchTargets(q, options) {
3701
+ resolve(id, adminResolveReportRequest, options) {
1541
3702
  return __awaiter(this, void 0, void 0, function* () {
1542
3703
  var _a, _b, _c;
1543
- const localVarAxiosArgs = yield localVarAxiosParamCreator.searchTargets(q, options);
3704
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.resolve(id, adminResolveReportRequest, options);
1544
3705
  const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
1545
- const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminPunishmentsApi.searchTargets']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
3706
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminReportsApi.resolve']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
1546
3707
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1547
3708
  });
1548
3709
  },
1549
3710
  };
1550
3711
  };
1551
3712
  /**
1552
- * AdminPunishmentsApi - factory interface
3713
+ * AdminReportsApi - factory interface
1553
3714
  */
1554
- export const AdminPunishmentsApiFactory = function (configuration, basePath, axios) {
1555
- const localVarFp = AdminPunishmentsApiFp(configuration);
3715
+ export const AdminReportsApiFactory = function (configuration, basePath, axios) {
3716
+ const localVarFp = AdminReportsApiFp(configuration);
1556
3717
  return {
1557
3718
  /**
1558
- * Apply a punishment to one or more targets. The authenticated user is recorded as the issuer.
1559
- * @summary Apply punishment
1560
- * @param {AdminApplyPunishmentRequest} adminApplyPunishmentRequest
1561
- * @param {*} [options] Override http request option.
1562
- * @throws {RequiredError}
1563
- */
1564
- applyPunishment(adminApplyPunishmentRequest, options) {
1565
- return localVarFp.applyPunishment(adminApplyPunishmentRequest, options).then((request) => request(axios, basePath));
1566
- },
1567
- /**
1568
- * Preview the impact of a punishment across one or more targets. No changes are made.
1569
- * @summary Evaluate punishment impact
1570
- * @param {AdminCreatePunishmentDraftRequest} adminCreatePunishmentDraftRequest
1571
- * @param {*} [options] Override http request option.
1572
- * @throws {RequiredError}
1573
- */
1574
- createDraft(adminCreatePunishmentDraftRequest, options) {
1575
- return localVarFp.createDraft(adminCreatePunishmentDraftRequest, options).then((request) => request(axios, basePath));
1576
- },
1577
- /**
1578
- * Returns a paginated list of punishments with optional filtering by player UUID, username, IP address, type, and date range.
1579
- * @summary List punishments
1580
- * @param {number} page Page number (1-indexed)
1581
- * @param {number} limit Page size
1582
- * @param {string | null} [uuid] Filter by player UUID
1583
- * @param {string | null} [username] Filter by player username (case-insensitive substring match)
1584
- * @param {string | null} [ipAddress] Filter by IP address
1585
- * @param {Array<PunishmentType> | null} [type] Filter by punishment type. Repeatable.
1586
- * @param {number | null} [issuedAfter] Filter punishments issued after this epoch timestamp (ms)
1587
- * @param {number | null} [issuedBefore] Filter punishments issued before this epoch timestamp (ms)
3719
+ * Paginated, newest first. Use openOnly=true to see the triage queue; reportedUuid filters to one player.
3720
+ * @summary List reports
3721
+ * @param {Pageable} pageable
3722
+ * @param {string | null} [reportedUuid] Filter to reports targeting this player UUID
3723
+ * @param {boolean} [openOnly]
1588
3724
  * @param {*} [options] Override http request option.
1589
3725
  * @throws {RequiredError}
1590
3726
  */
1591
- getPunishments(page, limit, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options) {
1592
- return localVarFp.getPunishments(page, limit, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options).then((request) => request(axios, basePath));
3727
+ list1(pageable, reportedUuid, openOnly, options) {
3728
+ return localVarFp.list1(pageable, reportedUuid, openOnly, options).then((request) => request(axios, basePath));
1593
3729
  },
1594
3730
  /**
1595
- * Search for players by UUID or username, or look up all players associated with an IP address.
1596
- * @summary Search punishment targets
1597
- * @param {string} q UUID, username, or partial/full IP address to search for
3731
+ * Marks the report resolved with the staff member\'s note. 404 if already resolved or unknown id.
3732
+ * @summary Resolve a report
3733
+ * @param {number} id Report id
3734
+ * @param {AdminResolveReportRequest} adminResolveReportRequest
1598
3735
  * @param {*} [options] Override http request option.
1599
3736
  * @throws {RequiredError}
1600
3737
  */
1601
- searchTargets(q, options) {
1602
- return localVarFp.searchTargets(q, options).then((request) => request(axios, basePath));
3738
+ resolve(id, adminResolveReportRequest, options) {
3739
+ return localVarFp.resolve(id, adminResolveReportRequest, options).then((request) => request(axios, basePath));
1603
3740
  },
1604
3741
  };
1605
3742
  };
1606
3743
  /**
1607
- * AdminPunishmentsApi - object-oriented interface
3744
+ * AdminReportsApi - object-oriented interface
1608
3745
  */
1609
- export class AdminPunishmentsApi extends BaseAPI {
1610
- /**
1611
- * Apply a punishment to one or more targets. The authenticated user is recorded as the issuer.
1612
- * @summary Apply punishment
1613
- * @param {AdminApplyPunishmentRequest} adminApplyPunishmentRequest
1614
- * @param {*} [options] Override http request option.
1615
- * @throws {RequiredError}
1616
- */
1617
- applyPunishment(adminApplyPunishmentRequest, options) {
1618
- return AdminPunishmentsApiFp(this.configuration).applyPunishment(adminApplyPunishmentRequest, options).then((request) => request(this.axios, this.basePath));
1619
- }
1620
- /**
1621
- * Preview the impact of a punishment across one or more targets. No changes are made.
1622
- * @summary Evaluate punishment impact
1623
- * @param {AdminCreatePunishmentDraftRequest} adminCreatePunishmentDraftRequest
1624
- * @param {*} [options] Override http request option.
1625
- * @throws {RequiredError}
1626
- */
1627
- createDraft(adminCreatePunishmentDraftRequest, options) {
1628
- return AdminPunishmentsApiFp(this.configuration).createDraft(adminCreatePunishmentDraftRequest, options).then((request) => request(this.axios, this.basePath));
1629
- }
3746
+ export class AdminReportsApi extends BaseAPI {
1630
3747
  /**
1631
- * Returns a paginated list of punishments with optional filtering by player UUID, username, IP address, type, and date range.
1632
- * @summary List punishments
1633
- * @param {number} page Page number (1-indexed)
1634
- * @param {number} limit Page size
1635
- * @param {string | null} [uuid] Filter by player UUID
1636
- * @param {string | null} [username] Filter by player username (case-insensitive substring match)
1637
- * @param {string | null} [ipAddress] Filter by IP address
1638
- * @param {Array<PunishmentType> | null} [type] Filter by punishment type. Repeatable.
1639
- * @param {number | null} [issuedAfter] Filter punishments issued after this epoch timestamp (ms)
1640
- * @param {number | null} [issuedBefore] Filter punishments issued before this epoch timestamp (ms)
3748
+ * Paginated, newest first. Use openOnly=true to see the triage queue; reportedUuid filters to one player.
3749
+ * @summary List reports
3750
+ * @param {Pageable} pageable
3751
+ * @param {string | null} [reportedUuid] Filter to reports targeting this player UUID
3752
+ * @param {boolean} [openOnly]
1641
3753
  * @param {*} [options] Override http request option.
1642
3754
  * @throws {RequiredError}
1643
3755
  */
1644
- getPunishments(page, limit, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options) {
1645
- return AdminPunishmentsApiFp(this.configuration).getPunishments(page, limit, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options).then((request) => request(this.axios, this.basePath));
3756
+ list1(pageable, reportedUuid, openOnly, options) {
3757
+ return AdminReportsApiFp(this.configuration).list1(pageable, reportedUuid, openOnly, options).then((request) => request(this.axios, this.basePath));
1646
3758
  }
1647
3759
  /**
1648
- * Search for players by UUID or username, or look up all players associated with an IP address.
1649
- * @summary Search punishment targets
1650
- * @param {string} q UUID, username, or partial/full IP address to search for
3760
+ * Marks the report resolved with the staff member\'s note. 404 if already resolved or unknown id.
3761
+ * @summary Resolve a report
3762
+ * @param {number} id Report id
3763
+ * @param {AdminResolveReportRequest} adminResolveReportRequest
1651
3764
  * @param {*} [options] Override http request option.
1652
3765
  * @throws {RequiredError}
1653
3766
  */
1654
- searchTargets(q, options) {
1655
- return AdminPunishmentsApiFp(this.configuration).searchTargets(q, options).then((request) => request(this.axios, this.basePath));
3767
+ resolve(id, adminResolveReportRequest, options) {
3768
+ return AdminReportsApiFp(this.configuration).resolve(id, adminResolveReportRequest, options).then((request) => request(this.axios, this.basePath));
1656
3769
  }
1657
3770
  }
1658
3771
  /**
@@ -1975,15 +4088,13 @@ export const ChatApiAxiosParamCreator = function (configuration) {
1975
4088
  /**
1976
4089
  * Returns up to `limit` chat messages before the given `before` timestamp (keyset pagination). Results are returned in ascending chronological order. Omit `before` to start from the current time. Scroll back through history by passing the `sentAt` of the oldest message received as the next `before` value.
1977
4090
  * @summary Get chat history
1978
- * @param {number} limit Maximum number of messages to return (1–100)
1979
4091
  * @param {string | null} [sessionId] Filter to a specific server session. Omit for global history.
1980
4092
  * @param {string | null} [before] ISO-8601 timestamp cursor — return messages sent before this time. Omit to start from now.
4093
+ * @param {number} [limit] Maximum number of messages to return (1–100)
1981
4094
  * @param {*} [options] Override http request option.
1982
4095
  * @throws {RequiredError}
1983
4096
  */
1984
- history: (limit_1, sessionId_1, before_1, ...args_1) => __awaiter(this, [limit_1, sessionId_1, before_1, ...args_1], void 0, function* (limit, sessionId, before, options = {}) {
1985
- // verify required parameter 'limit' is not null or undefined
1986
- assertParamExists('history', 'limit', limit);
4097
+ history: (sessionId_1, before_1, limit_1, ...args_1) => __awaiter(this, [sessionId_1, before_1, limit_1, ...args_1], void 0, function* (sessionId, before, limit, options = {}) {
1987
4098
  const localVarPath = `/v1/chat`;
1988
4099
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
1989
4100
  const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
@@ -2060,16 +4171,16 @@ export const ChatApiFp = function (configuration) {
2060
4171
  /**
2061
4172
  * Returns up to `limit` chat messages before the given `before` timestamp (keyset pagination). Results are returned in ascending chronological order. Omit `before` to start from the current time. Scroll back through history by passing the `sentAt` of the oldest message received as the next `before` value.
2062
4173
  * @summary Get chat history
2063
- * @param {number} limit Maximum number of messages to return (1–100)
2064
4174
  * @param {string | null} [sessionId] Filter to a specific server session. Omit for global history.
2065
4175
  * @param {string | null} [before] ISO-8601 timestamp cursor — return messages sent before this time. Omit to start from now.
4176
+ * @param {number} [limit] Maximum number of messages to return (1–100)
2066
4177
  * @param {*} [options] Override http request option.
2067
4178
  * @throws {RequiredError}
2068
4179
  */
2069
- history(limit, sessionId, before, options) {
4180
+ history(sessionId, before, limit, options) {
2070
4181
  return __awaiter(this, void 0, void 0, function* () {
2071
4182
  var _a, _b, _c;
2072
- const localVarAxiosArgs = yield localVarAxiosParamCreator.history(limit, sessionId, before, options);
4183
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.history(sessionId, before, limit, options);
2073
4184
  const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2074
4185
  const localVarOperationServerBasePath = (_c = (_b = operationServerMap['ChatApi.history']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2075
4186
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
@@ -2102,14 +4213,14 @@ export const ChatApiFactory = function (configuration, basePath, axios) {
2102
4213
  /**
2103
4214
  * Returns up to `limit` chat messages before the given `before` timestamp (keyset pagination). Results are returned in ascending chronological order. Omit `before` to start from the current time. Scroll back through history by passing the `sentAt` of the oldest message received as the next `before` value.
2104
4215
  * @summary Get chat history
2105
- * @param {number} limit Maximum number of messages to return (1–100)
2106
4216
  * @param {string | null} [sessionId] Filter to a specific server session. Omit for global history.
2107
4217
  * @param {string | null} [before] ISO-8601 timestamp cursor — return messages sent before this time. Omit to start from now.
4218
+ * @param {number} [limit] Maximum number of messages to return (1–100)
2108
4219
  * @param {*} [options] Override http request option.
2109
4220
  * @throws {RequiredError}
2110
4221
  */
2111
- history(limit, sessionId, before, options) {
2112
- return localVarFp.history(limit, sessionId, before, options).then((request) => request(axios, basePath));
4222
+ history(sessionId, before, limit, options) {
4223
+ return localVarFp.history(sessionId, before, limit, options).then((request) => request(axios, basePath));
2113
4224
  },
2114
4225
  /**
2115
4226
  * Stores a chat message from a game server and fans it out to all connected WebSocket clients via PostgreSQL LISTEN/NOTIFY. The session must be currently online. Only the player UUID is stored — usernames are resolved on the web UI from the player database cache.
@@ -2130,14 +4241,14 @@ export class ChatApi extends BaseAPI {
2130
4241
  /**
2131
4242
  * Returns up to `limit` chat messages before the given `before` timestamp (keyset pagination). Results are returned in ascending chronological order. Omit `before` to start from the current time. Scroll back through history by passing the `sentAt` of the oldest message received as the next `before` value.
2132
4243
  * @summary Get chat history
2133
- * @param {number} limit Maximum number of messages to return (1–100)
2134
4244
  * @param {string | null} [sessionId] Filter to a specific server session. Omit for global history.
2135
4245
  * @param {string | null} [before] ISO-8601 timestamp cursor — return messages sent before this time. Omit to start from now.
4246
+ * @param {number} [limit] Maximum number of messages to return (1–100)
2136
4247
  * @param {*} [options] Override http request option.
2137
4248
  * @throws {RequiredError}
2138
4249
  */
2139
- history(limit, sessionId, before, options) {
2140
- return ChatApiFp(this.configuration).history(limit, sessionId, before, options).then((request) => request(this.axios, this.basePath));
4250
+ history(sessionId, before, limit, options) {
4251
+ return ChatApiFp(this.configuration).history(sessionId, before, limit, options).then((request) => request(this.axios, this.basePath));
2141
4252
  }
2142
4253
  /**
2143
4254
  * Stores a chat message from a game server and fans it out to all connected WebSocket clients via PostgreSQL LISTEN/NOTIFY. The session must be currently online. Only the player UUID is stored — usernames are resolved on the web UI from the player database cache.
@@ -2156,19 +4267,18 @@ export class ChatApi extends BaseAPI {
2156
4267
  export const ConnectionApiAxiosParamCreator = function (configuration) {
2157
4268
  return {
2158
4269
  /**
2159
- * Performs comprehensive analysis of an IPv4 address to detect VPN, proxy, or suspicious connections. **Features:** - Multi-provider VPN/proxy detection with aggregated confidence scoring - Approximate geolocation lookup (city and country) - Connection bypass status and expiration tracking - Optional player UUID association for connection history **Use Cases:** - Prevent VPN/proxy usage during player authentication - Track player connection history across sessions - Implement temporary bypass systems for false positives - Monitor suspicious connection patterns **Query Parameters:** - `force_recheck`: Bypass cache and re-run all detection services - `associate_uuid`: Link this IP to a player UUID and return player info **Caching:** Results are cached unless `force_recheck=true` is specified, reducing API costs and improving response times.
2160
- * @summary Check Connection and Detect VPN/Proxy
4270
+ * **DEPRECATED for game-server player-join flows.** Use `POST /v1/player-session/start` instead — it runs the same authorization check AND opens the player_session row in a single round-trip, returning the same connection / player / punishment context plus aggregate session stats. This endpoint remains available for admin and debugging scenarios where you want to inspect a connection\'s state without opening a session (e.g. one-off lookups, batch sweeps, support troubleshooting). Performs comprehensive analysis of an IPv4 address to detect VPN, proxy, or suspicious connections. **Features:** - Multi-provider VPN/proxy detection with aggregated confidence scoring - Approximate geolocation lookup (city and country) - Connection bypass status and expiration tracking - Optional player UUID association for connection history **Use Cases:** - Prevent VPN/proxy usage during player authentication - Track player connection history across sessions - Implement temporary bypass systems for false positives - Monitor suspicious connection patterns **Query Parameters:** - `force_recheck`: Bypass cache and re-run all detection services - `associate_uuid`: Link this IP to a player UUID and return player info **Caching:** Results are cached unless `force_recheck=true` is specified, reducing API costs and improving response times.
4271
+ * @summary Check Connection and Detect VPN/Proxy (DEPRECATED for player-join use)
2161
4272
  * @param {string} ip IPv4 address to analyze for VPN/proxy detection and geolocation
2162
- * @param {boolean} forceRecheck When true, bypasses cached results and re-runs all VPN detection services. Use this when you need the most up-to-date analysis or suspect cached data may be stale. Default: false
4273
+ * @param {boolean} [forceRecheck] When true, bypasses cached results and re-runs all VPN detection services. Use this when you need the most up-to-date analysis or suspect cached data may be stale. Default: false
2163
4274
  * @param {string | null} [associateUuid] Minecraft player UUID to associate with this IP address. When provided, the API will: - Link this connection to the player\&#39;s history - Update the player\&#39;s username from Mojang API - Return player information (first join status, first login time) in the response - Track connection history for fraud detection This operation is asynchronous and won\&#39;t block the response.
2164
4275
  * @param {*} [options] Override http request option.
4276
+ * @deprecated
2165
4277
  * @throws {RequiredError}
2166
4278
  */
2167
4279
  getConnectionDetails: (ip_1, forceRecheck_1, associateUuid_1, ...args_1) => __awaiter(this, [ip_1, forceRecheck_1, associateUuid_1, ...args_1], void 0, function* (ip, forceRecheck, associateUuid, options = {}) {
2168
4280
  // verify required parameter 'ip' is not null or undefined
2169
4281
  assertParamExists('getConnectionDetails', 'ip', ip);
2170
- // verify required parameter 'forceRecheck' is not null or undefined
2171
- assertParamExists('getConnectionDetails', 'forceRecheck', forceRecheck);
2172
4282
  const localVarPath = `/v1/connection/get-connection-details/{ip}`
2173
4283
  .replace(`{${"ip"}}`, encodeURIComponent(String(ip)));
2174
4284
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
@@ -2207,12 +4317,13 @@ export const ConnectionApiFp = function (configuration) {
2207
4317
  const localVarAxiosParamCreator = ConnectionApiAxiosParamCreator(configuration);
2208
4318
  return {
2209
4319
  /**
2210
- * Performs comprehensive analysis of an IPv4 address to detect VPN, proxy, or suspicious connections. **Features:** - Multi-provider VPN/proxy detection with aggregated confidence scoring - Approximate geolocation lookup (city and country) - Connection bypass status and expiration tracking - Optional player UUID association for connection history **Use Cases:** - Prevent VPN/proxy usage during player authentication - Track player connection history across sessions - Implement temporary bypass systems for false positives - Monitor suspicious connection patterns **Query Parameters:** - `force_recheck`: Bypass cache and re-run all detection services - `associate_uuid`: Link this IP to a player UUID and return player info **Caching:** Results are cached unless `force_recheck=true` is specified, reducing API costs and improving response times.
2211
- * @summary Check Connection and Detect VPN/Proxy
4320
+ * **DEPRECATED for game-server player-join flows.** Use `POST /v1/player-session/start` instead — it runs the same authorization check AND opens the player_session row in a single round-trip, returning the same connection / player / punishment context plus aggregate session stats. This endpoint remains available for admin and debugging scenarios where you want to inspect a connection\'s state without opening a session (e.g. one-off lookups, batch sweeps, support troubleshooting). Performs comprehensive analysis of an IPv4 address to detect VPN, proxy, or suspicious connections. **Features:** - Multi-provider VPN/proxy detection with aggregated confidence scoring - Approximate geolocation lookup (city and country) - Connection bypass status and expiration tracking - Optional player UUID association for connection history **Use Cases:** - Prevent VPN/proxy usage during player authentication - Track player connection history across sessions - Implement temporary bypass systems for false positives - Monitor suspicious connection patterns **Query Parameters:** - `force_recheck`: Bypass cache and re-run all detection services - `associate_uuid`: Link this IP to a player UUID and return player info **Caching:** Results are cached unless `force_recheck=true` is specified, reducing API costs and improving response times.
4321
+ * @summary Check Connection and Detect VPN/Proxy (DEPRECATED for player-join use)
2212
4322
  * @param {string} ip IPv4 address to analyze for VPN/proxy detection and geolocation
2213
- * @param {boolean} forceRecheck When true, bypasses cached results and re-runs all VPN detection services. Use this when you need the most up-to-date analysis or suspect cached data may be stale. Default: false
4323
+ * @param {boolean} [forceRecheck] When true, bypasses cached results and re-runs all VPN detection services. Use this when you need the most up-to-date analysis or suspect cached data may be stale. Default: false
2214
4324
  * @param {string | null} [associateUuid] Minecraft player UUID to associate with this IP address. When provided, the API will: - Link this connection to the player\&#39;s history - Update the player\&#39;s username from Mojang API - Return player information (first join status, first login time) in the response - Track connection history for fraud detection This operation is asynchronous and won\&#39;t block the response.
2215
4325
  * @param {*} [options] Override http request option.
4326
+ * @deprecated
2216
4327
  * @throws {RequiredError}
2217
4328
  */
2218
4329
  getConnectionDetails(ip, forceRecheck, associateUuid, options) {
@@ -2233,12 +4344,13 @@ export const ConnectionApiFactory = function (configuration, basePath, axios) {
2233
4344
  const localVarFp = ConnectionApiFp(configuration);
2234
4345
  return {
2235
4346
  /**
2236
- * Performs comprehensive analysis of an IPv4 address to detect VPN, proxy, or suspicious connections. **Features:** - Multi-provider VPN/proxy detection with aggregated confidence scoring - Approximate geolocation lookup (city and country) - Connection bypass status and expiration tracking - Optional player UUID association for connection history **Use Cases:** - Prevent VPN/proxy usage during player authentication - Track player connection history across sessions - Implement temporary bypass systems for false positives - Monitor suspicious connection patterns **Query Parameters:** - `force_recheck`: Bypass cache and re-run all detection services - `associate_uuid`: Link this IP to a player UUID and return player info **Caching:** Results are cached unless `force_recheck=true` is specified, reducing API costs and improving response times.
2237
- * @summary Check Connection and Detect VPN/Proxy
4347
+ * **DEPRECATED for game-server player-join flows.** Use `POST /v1/player-session/start` instead — it runs the same authorization check AND opens the player_session row in a single round-trip, returning the same connection / player / punishment context plus aggregate session stats. This endpoint remains available for admin and debugging scenarios where you want to inspect a connection\'s state without opening a session (e.g. one-off lookups, batch sweeps, support troubleshooting). Performs comprehensive analysis of an IPv4 address to detect VPN, proxy, or suspicious connections. **Features:** - Multi-provider VPN/proxy detection with aggregated confidence scoring - Approximate geolocation lookup (city and country) - Connection bypass status and expiration tracking - Optional player UUID association for connection history **Use Cases:** - Prevent VPN/proxy usage during player authentication - Track player connection history across sessions - Implement temporary bypass systems for false positives - Monitor suspicious connection patterns **Query Parameters:** - `force_recheck`: Bypass cache and re-run all detection services - `associate_uuid`: Link this IP to a player UUID and return player info **Caching:** Results are cached unless `force_recheck=true` is specified, reducing API costs and improving response times.
4348
+ * @summary Check Connection and Detect VPN/Proxy (DEPRECATED for player-join use)
2238
4349
  * @param {string} ip IPv4 address to analyze for VPN/proxy detection and geolocation
2239
- * @param {boolean} forceRecheck When true, bypasses cached results and re-runs all VPN detection services. Use this when you need the most up-to-date analysis or suspect cached data may be stale. Default: false
4350
+ * @param {boolean} [forceRecheck] When true, bypasses cached results and re-runs all VPN detection services. Use this when you need the most up-to-date analysis or suspect cached data may be stale. Default: false
2240
4351
  * @param {string | null} [associateUuid] Minecraft player UUID to associate with this IP address. When provided, the API will: - Link this connection to the player\&#39;s history - Update the player\&#39;s username from Mojang API - Return player information (first join status, first login time) in the response - Track connection history for fraud detection This operation is asynchronous and won\&#39;t block the response.
2241
4352
  * @param {*} [options] Override http request option.
4353
+ * @deprecated
2242
4354
  * @throws {RequiredError}
2243
4355
  */
2244
4356
  getConnectionDetails(ip, forceRecheck, associateUuid, options) {
@@ -2251,12 +4363,13 @@ export const ConnectionApiFactory = function (configuration, basePath, axios) {
2251
4363
  */
2252
4364
  export class ConnectionApi extends BaseAPI {
2253
4365
  /**
2254
- * Performs comprehensive analysis of an IPv4 address to detect VPN, proxy, or suspicious connections. **Features:** - Multi-provider VPN/proxy detection with aggregated confidence scoring - Approximate geolocation lookup (city and country) - Connection bypass status and expiration tracking - Optional player UUID association for connection history **Use Cases:** - Prevent VPN/proxy usage during player authentication - Track player connection history across sessions - Implement temporary bypass systems for false positives - Monitor suspicious connection patterns **Query Parameters:** - `force_recheck`: Bypass cache and re-run all detection services - `associate_uuid`: Link this IP to a player UUID and return player info **Caching:** Results are cached unless `force_recheck=true` is specified, reducing API costs and improving response times.
2255
- * @summary Check Connection and Detect VPN/Proxy
4366
+ * **DEPRECATED for game-server player-join flows.** Use `POST /v1/player-session/start` instead — it runs the same authorization check AND opens the player_session row in a single round-trip, returning the same connection / player / punishment context plus aggregate session stats. This endpoint remains available for admin and debugging scenarios where you want to inspect a connection\'s state without opening a session (e.g. one-off lookups, batch sweeps, support troubleshooting). Performs comprehensive analysis of an IPv4 address to detect VPN, proxy, or suspicious connections. **Features:** - Multi-provider VPN/proxy detection with aggregated confidence scoring - Approximate geolocation lookup (city and country) - Connection bypass status and expiration tracking - Optional player UUID association for connection history **Use Cases:** - Prevent VPN/proxy usage during player authentication - Track player connection history across sessions - Implement temporary bypass systems for false positives - Monitor suspicious connection patterns **Query Parameters:** - `force_recheck`: Bypass cache and re-run all detection services - `associate_uuid`: Link this IP to a player UUID and return player info **Caching:** Results are cached unless `force_recheck=true` is specified, reducing API costs and improving response times.
4367
+ * @summary Check Connection and Detect VPN/Proxy (DEPRECATED for player-join use)
2256
4368
  * @param {string} ip IPv4 address to analyze for VPN/proxy detection and geolocation
2257
- * @param {boolean} forceRecheck When true, bypasses cached results and re-runs all VPN detection services. Use this when you need the most up-to-date analysis or suspect cached data may be stale. Default: false
4369
+ * @param {boolean} [forceRecheck] When true, bypasses cached results and re-runs all VPN detection services. Use this when you need the most up-to-date analysis or suspect cached data may be stale. Default: false
2258
4370
  * @param {string | null} [associateUuid] Minecraft player UUID to associate with this IP address. When provided, the API will: - Link this connection to the player\&#39;s history - Update the player\&#39;s username from Mojang API - Return player information (first join status, first login time) in the response - Track connection history for fraud detection This operation is asynchronous and won\&#39;t block the response.
2259
4371
  * @param {*} [options] Override http request option.
4372
+ * @deprecated
2260
4373
  * @throws {RequiredError}
2261
4374
  */
2262
4375
  getConnectionDetails(ip, forceRecheck, associateUuid, options) {
@@ -2431,6 +4544,173 @@ export class PlayerApi extends BaseAPI {
2431
4544
  return PlayerApiFp(this.configuration).getUsernames(uuids, options).then((request) => request(this.axios, this.basePath));
2432
4545
  }
2433
4546
  }
4547
+ /**
4548
+ * PlayerSessionsApi - axios parameter creator
4549
+ */
4550
+ export const PlayerSessionsApiAxiosParamCreator = function (configuration) {
4551
+ return {
4552
+ /**
4553
+ * Closes the active session for a (playerUuid, serverSessionId) pair. No-op if no active session is found, so duplicate end events from a retry don\'t error.
4554
+ * @summary Close the active player session
4555
+ * @param {PlayerSessionEndRequest} playerSessionEndRequest
4556
+ * @param {*} [options] Override http request option.
4557
+ * @throws {RequiredError}
4558
+ */
4559
+ end: (playerSessionEndRequest_1, ...args_1) => __awaiter(this, [playerSessionEndRequest_1, ...args_1], void 0, function* (playerSessionEndRequest, options = {}) {
4560
+ // verify required parameter 'playerSessionEndRequest' is not null or undefined
4561
+ assertParamExists('end', 'playerSessionEndRequest', playerSessionEndRequest);
4562
+ const localVarPath = `/v1/player-session/end`;
4563
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
4564
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
4565
+ let baseOptions;
4566
+ if (configuration) {
4567
+ baseOptions = configuration.baseOptions;
4568
+ }
4569
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
4570
+ const localVarHeaderParameter = {};
4571
+ const localVarQueryParameter = {};
4572
+ // authentication DiscordAuth required
4573
+ // http bearer authentication required
4574
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
4575
+ localVarHeaderParameter['Content-Type'] = 'application/json';
4576
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
4577
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
4578
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
4579
+ localVarRequestOptions.data = serializeDataIfNeeded(playerSessionEndRequest, localVarRequestOptions, configuration);
4580
+ return {
4581
+ url: toPathString(localVarUrlObj),
4582
+ options: localVarRequestOptions,
4583
+ };
4584
+ }),
4585
+ /**
4586
+ * Single round-trip the game server / proxy makes when a player joins. Runs the full authorization check (VPN detection, bypass tiers, punishment propagation, active-ban evaluation) and — only if allowed — opens (or re-attaches to) a player_session row. Replaces the older two-call flow (`GET /v1/connection/details` followed by a session-open POST). `/v1/connection/details` remains available for admin / debugging use but is deprecated for player-join purposes. Idempotent at the session-open step: a duplicate join request returns the existing active session\'s id instead of creating a duplicate row. Response shape: - `connectionResult` — always populated; carries ALLOWED / BANNED / VPN_DETECTED etc. plus a formatted kick message when denied. - `sessionId` / `startedAt` — populated only when the join was allowed. - Connection context (IP, location, VPN%, bypass) for display + logging. - `playerInformation`, `activePunishments` — full player history at join time. - `sessionStats` — total seconds played / days active / currently-online, useful for game-server-side welcome messages.
4587
+ * @summary Player join — unified authorization + session-open
4588
+ * @param {PlayerSessionStartRequest} playerSessionStartRequest
4589
+ * @param {*} [options] Override http request option.
4590
+ * @throws {RequiredError}
4591
+ */
4592
+ start: (playerSessionStartRequest_1, ...args_1) => __awaiter(this, [playerSessionStartRequest_1, ...args_1], void 0, function* (playerSessionStartRequest, options = {}) {
4593
+ // verify required parameter 'playerSessionStartRequest' is not null or undefined
4594
+ assertParamExists('start', 'playerSessionStartRequest', playerSessionStartRequest);
4595
+ const localVarPath = `/v1/player-session/start`;
4596
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
4597
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
4598
+ let baseOptions;
4599
+ if (configuration) {
4600
+ baseOptions = configuration.baseOptions;
4601
+ }
4602
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
4603
+ const localVarHeaderParameter = {};
4604
+ const localVarQueryParameter = {};
4605
+ // authentication DiscordAuth required
4606
+ // http bearer authentication required
4607
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
4608
+ localVarHeaderParameter['Content-Type'] = 'application/json';
4609
+ localVarHeaderParameter['Accept'] = 'application/json';
4610
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
4611
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
4612
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
4613
+ localVarRequestOptions.data = serializeDataIfNeeded(playerSessionStartRequest, localVarRequestOptions, configuration);
4614
+ return {
4615
+ url: toPathString(localVarUrlObj),
4616
+ options: localVarRequestOptions,
4617
+ };
4618
+ }),
4619
+ };
4620
+ };
4621
+ /**
4622
+ * PlayerSessionsApi - functional programming interface
4623
+ */
4624
+ export const PlayerSessionsApiFp = function (configuration) {
4625
+ const localVarAxiosParamCreator = PlayerSessionsApiAxiosParamCreator(configuration);
4626
+ return {
4627
+ /**
4628
+ * Closes the active session for a (playerUuid, serverSessionId) pair. No-op if no active session is found, so duplicate end events from a retry don\'t error.
4629
+ * @summary Close the active player session
4630
+ * @param {PlayerSessionEndRequest} playerSessionEndRequest
4631
+ * @param {*} [options] Override http request option.
4632
+ * @throws {RequiredError}
4633
+ */
4634
+ end(playerSessionEndRequest, options) {
4635
+ return __awaiter(this, void 0, void 0, function* () {
4636
+ var _a, _b, _c;
4637
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.end(playerSessionEndRequest, options);
4638
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
4639
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['PlayerSessionsApi.end']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
4640
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
4641
+ });
4642
+ },
4643
+ /**
4644
+ * Single round-trip the game server / proxy makes when a player joins. Runs the full authorization check (VPN detection, bypass tiers, punishment propagation, active-ban evaluation) and — only if allowed — opens (or re-attaches to) a player_session row. Replaces the older two-call flow (`GET /v1/connection/details` followed by a session-open POST). `/v1/connection/details` remains available for admin / debugging use but is deprecated for player-join purposes. Idempotent at the session-open step: a duplicate join request returns the existing active session\'s id instead of creating a duplicate row. Response shape: - `connectionResult` — always populated; carries ALLOWED / BANNED / VPN_DETECTED etc. plus a formatted kick message when denied. - `sessionId` / `startedAt` — populated only when the join was allowed. - Connection context (IP, location, VPN%, bypass) for display + logging. - `playerInformation`, `activePunishments` — full player history at join time. - `sessionStats` — total seconds played / days active / currently-online, useful for game-server-side welcome messages.
4645
+ * @summary Player join — unified authorization + session-open
4646
+ * @param {PlayerSessionStartRequest} playerSessionStartRequest
4647
+ * @param {*} [options] Override http request option.
4648
+ * @throws {RequiredError}
4649
+ */
4650
+ start(playerSessionStartRequest, options) {
4651
+ return __awaiter(this, void 0, void 0, function* () {
4652
+ var _a, _b, _c;
4653
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.start(playerSessionStartRequest, options);
4654
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
4655
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['PlayerSessionsApi.start']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
4656
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
4657
+ });
4658
+ },
4659
+ };
4660
+ };
4661
+ /**
4662
+ * PlayerSessionsApi - factory interface
4663
+ */
4664
+ export const PlayerSessionsApiFactory = function (configuration, basePath, axios) {
4665
+ const localVarFp = PlayerSessionsApiFp(configuration);
4666
+ return {
4667
+ /**
4668
+ * Closes the active session for a (playerUuid, serverSessionId) pair. No-op if no active session is found, so duplicate end events from a retry don\'t error.
4669
+ * @summary Close the active player session
4670
+ * @param {PlayerSessionEndRequest} playerSessionEndRequest
4671
+ * @param {*} [options] Override http request option.
4672
+ * @throws {RequiredError}
4673
+ */
4674
+ end(playerSessionEndRequest, options) {
4675
+ return localVarFp.end(playerSessionEndRequest, options).then((request) => request(axios, basePath));
4676
+ },
4677
+ /**
4678
+ * Single round-trip the game server / proxy makes when a player joins. Runs the full authorization check (VPN detection, bypass tiers, punishment propagation, active-ban evaluation) and — only if allowed — opens (or re-attaches to) a player_session row. Replaces the older two-call flow (`GET /v1/connection/details` followed by a session-open POST). `/v1/connection/details` remains available for admin / debugging use but is deprecated for player-join purposes. Idempotent at the session-open step: a duplicate join request returns the existing active session\'s id instead of creating a duplicate row. Response shape: - `connectionResult` — always populated; carries ALLOWED / BANNED / VPN_DETECTED etc. plus a formatted kick message when denied. - `sessionId` / `startedAt` — populated only when the join was allowed. - Connection context (IP, location, VPN%, bypass) for display + logging. - `playerInformation`, `activePunishments` — full player history at join time. - `sessionStats` — total seconds played / days active / currently-online, useful for game-server-side welcome messages.
4679
+ * @summary Player join — unified authorization + session-open
4680
+ * @param {PlayerSessionStartRequest} playerSessionStartRequest
4681
+ * @param {*} [options] Override http request option.
4682
+ * @throws {RequiredError}
4683
+ */
4684
+ start(playerSessionStartRequest, options) {
4685
+ return localVarFp.start(playerSessionStartRequest, options).then((request) => request(axios, basePath));
4686
+ },
4687
+ };
4688
+ };
4689
+ /**
4690
+ * PlayerSessionsApi - object-oriented interface
4691
+ */
4692
+ export class PlayerSessionsApi extends BaseAPI {
4693
+ /**
4694
+ * Closes the active session for a (playerUuid, serverSessionId) pair. No-op if no active session is found, so duplicate end events from a retry don\'t error.
4695
+ * @summary Close the active player session
4696
+ * @param {PlayerSessionEndRequest} playerSessionEndRequest
4697
+ * @param {*} [options] Override http request option.
4698
+ * @throws {RequiredError}
4699
+ */
4700
+ end(playerSessionEndRequest, options) {
4701
+ return PlayerSessionsApiFp(this.configuration).end(playerSessionEndRequest, options).then((request) => request(this.axios, this.basePath));
4702
+ }
4703
+ /**
4704
+ * Single round-trip the game server / proxy makes when a player joins. Runs the full authorization check (VPN detection, bypass tiers, punishment propagation, active-ban evaluation) and — only if allowed — opens (or re-attaches to) a player_session row. Replaces the older two-call flow (`GET /v1/connection/details` followed by a session-open POST). `/v1/connection/details` remains available for admin / debugging use but is deprecated for player-join purposes. Idempotent at the session-open step: a duplicate join request returns the existing active session\'s id instead of creating a duplicate row. Response shape: - `connectionResult` — always populated; carries ALLOWED / BANNED / VPN_DETECTED etc. plus a formatted kick message when denied. - `sessionId` / `startedAt` — populated only when the join was allowed. - Connection context (IP, location, VPN%, bypass) for display + logging. - `playerInformation`, `activePunishments` — full player history at join time. - `sessionStats` — total seconds played / days active / currently-online, useful for game-server-side welcome messages.
4705
+ * @summary Player join — unified authorization + session-open
4706
+ * @param {PlayerSessionStartRequest} playerSessionStartRequest
4707
+ * @param {*} [options] Override http request option.
4708
+ * @throws {RequiredError}
4709
+ */
4710
+ start(playerSessionStartRequest, options) {
4711
+ return PlayerSessionsApiFp(this.configuration).start(playerSessionStartRequest, options).then((request) => request(this.axios, this.basePath));
4712
+ }
4713
+ }
2434
4714
  /**
2435
4715
  * PunishmentApi - axios parameter creator
2436
4716
  */
@@ -2548,23 +4828,20 @@ export const PunishmentApiAxiosParamCreator = function (configuration) {
2548
4828
  /**
2549
4829
  * Returns a paginated list of recent punishments with optional filtering by issue date, expiration date, and type
2550
4830
  * @summary List recent punishments
2551
- * @param {number} limit Maximum number of records to return
2552
- * @param {number} page Page number for pagination
2553
- * @param {number | null} [issuedAfter] Filter punishments issued after this epoch timestamp (milliseconds)
2554
- * @param {number | null} [issuedBefore] Filter punishments issued before this epoch timestamp (milliseconds)
2555
- * @param {number | null} [expiresAfter] Filter punishments expiring after this epoch timestamp (milliseconds)
2556
- * @param {number | null} [expiresBefore] Filter punishments expiring before this epoch timestamp (milliseconds)
2557
- * @param {Array<PunishmentType> | null} [type] Filter by punishment types
2558
- * @param {string | null} [uuid] Filter by player UUID
2559
- * @param {string | null} [ipAddress] Filter by IP address
4831
+ * @param {Pageable} pageable
4832
+ * @param {number | null} [issuedAfter]
4833
+ * @param {number | null} [issuedBefore]
4834
+ * @param {number | null} [expiresAfter]
4835
+ * @param {number | null} [expiresBefore]
4836
+ * @param {Array<PunishmentType> | null} [type]
4837
+ * @param {string | null} [uuid]
4838
+ * @param {string | null} [ipAddress]
2560
4839
  * @param {*} [options] Override http request option.
2561
4840
  * @throws {RequiredError}
2562
4841
  */
2563
- getRecentPunishments: (limit_1, page_1, issuedAfter_1, issuedBefore_1, expiresAfter_1, expiresBefore_1, type_1, uuid_1, ipAddress_1, ...args_1) => __awaiter(this, [limit_1, page_1, issuedAfter_1, issuedBefore_1, expiresAfter_1, expiresBefore_1, type_1, uuid_1, ipAddress_1, ...args_1], void 0, function* (limit, page, issuedAfter, issuedBefore, expiresAfter, expiresBefore, type, uuid, ipAddress, options = {}) {
2564
- // verify required parameter 'limit' is not null or undefined
2565
- assertParamExists('getRecentPunishments', 'limit', limit);
2566
- // verify required parameter 'page' is not null or undefined
2567
- assertParamExists('getRecentPunishments', 'page', page);
4842
+ getRecentPunishments: (pageable_1, issuedAfter_1, issuedBefore_1, expiresAfter_1, expiresBefore_1, type_1, uuid_1, ipAddress_1, ...args_1) => __awaiter(this, [pageable_1, issuedAfter_1, issuedBefore_1, expiresAfter_1, expiresBefore_1, type_1, uuid_1, ipAddress_1, ...args_1], void 0, function* (pageable, issuedAfter, issuedBefore, expiresAfter, expiresBefore, type, uuid, ipAddress, options = {}) {
4843
+ // verify required parameter 'pageable' is not null or undefined
4844
+ assertParamExists('getRecentPunishments', 'pageable', pageable);
2568
4845
  const localVarPath = `/v1/punishment/recent`;
2569
4846
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
2570
4847
  const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
@@ -2599,11 +4876,8 @@ export const PunishmentApiAxiosParamCreator = function (configuration) {
2599
4876
  if (ipAddress !== undefined) {
2600
4877
  localVarQueryParameter['ipAddress'] = ipAddress;
2601
4878
  }
2602
- if (limit !== undefined) {
2603
- localVarQueryParameter['limit'] = limit;
2604
- }
2605
- if (page !== undefined) {
2606
- localVarQueryParameter['page'] = page;
4879
+ if (pageable !== undefined) {
4880
+ localVarQueryParameter['pageable'] = pageable;
2607
4881
  }
2608
4882
  localVarHeaderParameter['Accept'] = 'application/json';
2609
4883
  setSearchParams(localVarUrlObj, localVarQueryParameter);
@@ -2675,22 +4949,21 @@ export const PunishmentApiFp = function (configuration) {
2675
4949
  /**
2676
4950
  * Returns a paginated list of recent punishments with optional filtering by issue date, expiration date, and type
2677
4951
  * @summary List recent punishments
2678
- * @param {number} limit Maximum number of records to return
2679
- * @param {number} page Page number for pagination
2680
- * @param {number | null} [issuedAfter] Filter punishments issued after this epoch timestamp (milliseconds)
2681
- * @param {number | null} [issuedBefore] Filter punishments issued before this epoch timestamp (milliseconds)
2682
- * @param {number | null} [expiresAfter] Filter punishments expiring after this epoch timestamp (milliseconds)
2683
- * @param {number | null} [expiresBefore] Filter punishments expiring before this epoch timestamp (milliseconds)
2684
- * @param {Array<PunishmentType> | null} [type] Filter by punishment types
2685
- * @param {string | null} [uuid] Filter by player UUID
2686
- * @param {string | null} [ipAddress] Filter by IP address
4952
+ * @param {Pageable} pageable
4953
+ * @param {number | null} [issuedAfter]
4954
+ * @param {number | null} [issuedBefore]
4955
+ * @param {number | null} [expiresAfter]
4956
+ * @param {number | null} [expiresBefore]
4957
+ * @param {Array<PunishmentType> | null} [type]
4958
+ * @param {string | null} [uuid]
4959
+ * @param {string | null} [ipAddress]
2687
4960
  * @param {*} [options] Override http request option.
2688
4961
  * @throws {RequiredError}
2689
4962
  */
2690
- getRecentPunishments(limit, page, issuedAfter, issuedBefore, expiresAfter, expiresBefore, type, uuid, ipAddress, options) {
4963
+ getRecentPunishments(pageable, issuedAfter, issuedBefore, expiresAfter, expiresBefore, type, uuid, ipAddress, options) {
2691
4964
  return __awaiter(this, void 0, void 0, function* () {
2692
4965
  var _a, _b, _c;
2693
- const localVarAxiosArgs = yield localVarAxiosParamCreator.getRecentPunishments(limit, page, issuedAfter, issuedBefore, expiresAfter, expiresBefore, type, uuid, ipAddress, options);
4966
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.getRecentPunishments(pageable, issuedAfter, issuedBefore, expiresAfter, expiresBefore, type, uuid, ipAddress, options);
2694
4967
  const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2695
4968
  const localVarOperationServerBasePath = (_c = (_b = operationServerMap['PunishmentApi.getRecentPunishments']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2696
4969
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
@@ -2739,20 +5012,19 @@ export const PunishmentApiFactory = function (configuration, basePath, axios) {
2739
5012
  /**
2740
5013
  * Returns a paginated list of recent punishments with optional filtering by issue date, expiration date, and type
2741
5014
  * @summary List recent punishments
2742
- * @param {number} limit Maximum number of records to return
2743
- * @param {number} page Page number for pagination
2744
- * @param {number | null} [issuedAfter] Filter punishments issued after this epoch timestamp (milliseconds)
2745
- * @param {number | null} [issuedBefore] Filter punishments issued before this epoch timestamp (milliseconds)
2746
- * @param {number | null} [expiresAfter] Filter punishments expiring after this epoch timestamp (milliseconds)
2747
- * @param {number | null} [expiresBefore] Filter punishments expiring before this epoch timestamp (milliseconds)
2748
- * @param {Array<PunishmentType> | null} [type] Filter by punishment types
2749
- * @param {string | null} [uuid] Filter by player UUID
2750
- * @param {string | null} [ipAddress] Filter by IP address
5015
+ * @param {Pageable} pageable
5016
+ * @param {number | null} [issuedAfter]
5017
+ * @param {number | null} [issuedBefore]
5018
+ * @param {number | null} [expiresAfter]
5019
+ * @param {number | null} [expiresBefore]
5020
+ * @param {Array<PunishmentType> | null} [type]
5021
+ * @param {string | null} [uuid]
5022
+ * @param {string | null} [ipAddress]
2751
5023
  * @param {*} [options] Override http request option.
2752
5024
  * @throws {RequiredError}
2753
5025
  */
2754
- getRecentPunishments(limit, page, issuedAfter, issuedBefore, expiresAfter, expiresBefore, type, uuid, ipAddress, options) {
2755
- return localVarFp.getRecentPunishments(limit, page, issuedAfter, issuedBefore, expiresAfter, expiresBefore, type, uuid, ipAddress, options).then((request) => request(axios, basePath));
5026
+ getRecentPunishments(pageable, issuedAfter, issuedBefore, expiresAfter, expiresBefore, type, uuid, ipAddress, options) {
5027
+ return localVarFp.getRecentPunishments(pageable, issuedAfter, issuedBefore, expiresAfter, expiresBefore, type, uuid, ipAddress, options).then((request) => request(axios, basePath));
2756
5028
  },
2757
5029
  };
2758
5030
  };
@@ -2795,20 +5067,117 @@ export class PunishmentApi extends BaseAPI {
2795
5067
  /**
2796
5068
  * Returns a paginated list of recent punishments with optional filtering by issue date, expiration date, and type
2797
5069
  * @summary List recent punishments
2798
- * @param {number} limit Maximum number of records to return
2799
- * @param {number} page Page number for pagination
2800
- * @param {number | null} [issuedAfter] Filter punishments issued after this epoch timestamp (milliseconds)
2801
- * @param {number | null} [issuedBefore] Filter punishments issued before this epoch timestamp (milliseconds)
2802
- * @param {number | null} [expiresAfter] Filter punishments expiring after this epoch timestamp (milliseconds)
2803
- * @param {number | null} [expiresBefore] Filter punishments expiring before this epoch timestamp (milliseconds)
2804
- * @param {Array<PunishmentType> | null} [type] Filter by punishment types
2805
- * @param {string | null} [uuid] Filter by player UUID
2806
- * @param {string | null} [ipAddress] Filter by IP address
5070
+ * @param {Pageable} pageable
5071
+ * @param {number | null} [issuedAfter]
5072
+ * @param {number | null} [issuedBefore]
5073
+ * @param {number | null} [expiresAfter]
5074
+ * @param {number | null} [expiresBefore]
5075
+ * @param {Array<PunishmentType> | null} [type]
5076
+ * @param {string | null} [uuid]
5077
+ * @param {string | null} [ipAddress]
5078
+ * @param {*} [options] Override http request option.
5079
+ * @throws {RequiredError}
5080
+ */
5081
+ getRecentPunishments(pageable, issuedAfter, issuedBefore, expiresAfter, expiresBefore, type, uuid, ipAddress, options) {
5082
+ return PunishmentApiFp(this.configuration).getRecentPunishments(pageable, issuedAfter, issuedBefore, expiresAfter, expiresBefore, type, uuid, ipAddress, options).then((request) => request(this.axios, this.basePath));
5083
+ }
5084
+ }
5085
+ /**
5086
+ * ReportApi - axios parameter creator
5087
+ */
5088
+ export const ReportApiAxiosParamCreator = function (configuration) {
5089
+ return {
5090
+ /**
5091
+ * Records that {reporterUuid} flagged one OR MORE players for misconduct in a single incident. Idempotent per (reporter, exact target set) while the prior report is unresolved — repeat submissions with the same target set overwrite reason / category in place and the response\'s {@code deduplicated} flag is true. A different target set (even overlapping) creates a new report. Resolved reports do not block fresh submissions. **Active-report cap**: each reporter may hold at most 3 unresolved reports at a time. A 4th submission with a NEW target set returns 429 until staff resolve one of the existing reports. Dedupe updates (same target set) never count against the cap.
5092
+ * @summary Submit a peer report
5093
+ * @param {CreateReportRequest} createReportRequest
5094
+ * @param {*} [options] Override http request option.
5095
+ * @throws {RequiredError}
5096
+ */
5097
+ submit: (createReportRequest_1, ...args_1) => __awaiter(this, [createReportRequest_1, ...args_1], void 0, function* (createReportRequest, options = {}) {
5098
+ // verify required parameter 'createReportRequest' is not null or undefined
5099
+ assertParamExists('submit', 'createReportRequest', createReportRequest);
5100
+ const localVarPath = `/v1/report`;
5101
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
5102
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
5103
+ let baseOptions;
5104
+ if (configuration) {
5105
+ baseOptions = configuration.baseOptions;
5106
+ }
5107
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
5108
+ const localVarHeaderParameter = {};
5109
+ const localVarQueryParameter = {};
5110
+ // authentication DiscordAuth required
5111
+ // http bearer authentication required
5112
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
5113
+ localVarHeaderParameter['Content-Type'] = 'application/json';
5114
+ localVarHeaderParameter['Accept'] = 'application/json';
5115
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
5116
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
5117
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
5118
+ localVarRequestOptions.data = serializeDataIfNeeded(createReportRequest, localVarRequestOptions, configuration);
5119
+ return {
5120
+ url: toPathString(localVarUrlObj),
5121
+ options: localVarRequestOptions,
5122
+ };
5123
+ }),
5124
+ };
5125
+ };
5126
+ /**
5127
+ * ReportApi - functional programming interface
5128
+ */
5129
+ export const ReportApiFp = function (configuration) {
5130
+ const localVarAxiosParamCreator = ReportApiAxiosParamCreator(configuration);
5131
+ return {
5132
+ /**
5133
+ * Records that {reporterUuid} flagged one OR MORE players for misconduct in a single incident. Idempotent per (reporter, exact target set) while the prior report is unresolved — repeat submissions with the same target set overwrite reason / category in place and the response\'s {@code deduplicated} flag is true. A different target set (even overlapping) creates a new report. Resolved reports do not block fresh submissions. **Active-report cap**: each reporter may hold at most 3 unresolved reports at a time. A 4th submission with a NEW target set returns 429 until staff resolve one of the existing reports. Dedupe updates (same target set) never count against the cap.
5134
+ * @summary Submit a peer report
5135
+ * @param {CreateReportRequest} createReportRequest
5136
+ * @param {*} [options] Override http request option.
5137
+ * @throws {RequiredError}
5138
+ */
5139
+ submit(createReportRequest, options) {
5140
+ return __awaiter(this, void 0, void 0, function* () {
5141
+ var _a, _b, _c;
5142
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.submit(createReportRequest, options);
5143
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
5144
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['ReportApi.submit']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
5145
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
5146
+ });
5147
+ },
5148
+ };
5149
+ };
5150
+ /**
5151
+ * ReportApi - factory interface
5152
+ */
5153
+ export const ReportApiFactory = function (configuration, basePath, axios) {
5154
+ const localVarFp = ReportApiFp(configuration);
5155
+ return {
5156
+ /**
5157
+ * Records that {reporterUuid} flagged one OR MORE players for misconduct in a single incident. Idempotent per (reporter, exact target set) while the prior report is unresolved — repeat submissions with the same target set overwrite reason / category in place and the response\'s {@code deduplicated} flag is true. A different target set (even overlapping) creates a new report. Resolved reports do not block fresh submissions. **Active-report cap**: each reporter may hold at most 3 unresolved reports at a time. A 4th submission with a NEW target set returns 429 until staff resolve one of the existing reports. Dedupe updates (same target set) never count against the cap.
5158
+ * @summary Submit a peer report
5159
+ * @param {CreateReportRequest} createReportRequest
5160
+ * @param {*} [options] Override http request option.
5161
+ * @throws {RequiredError}
5162
+ */
5163
+ submit(createReportRequest, options) {
5164
+ return localVarFp.submit(createReportRequest, options).then((request) => request(axios, basePath));
5165
+ },
5166
+ };
5167
+ };
5168
+ /**
5169
+ * ReportApi - object-oriented interface
5170
+ */
5171
+ export class ReportApi extends BaseAPI {
5172
+ /**
5173
+ * Records that {reporterUuid} flagged one OR MORE players for misconduct in a single incident. Idempotent per (reporter, exact target set) while the prior report is unresolved — repeat submissions with the same target set overwrite reason / category in place and the response\'s {@code deduplicated} flag is true. A different target set (even overlapping) creates a new report. Resolved reports do not block fresh submissions. **Active-report cap**: each reporter may hold at most 3 unresolved reports at a time. A 4th submission with a NEW target set returns 429 until staff resolve one of the existing reports. Dedupe updates (same target set) never count against the cap.
5174
+ * @summary Submit a peer report
5175
+ * @param {CreateReportRequest} createReportRequest
2807
5176
  * @param {*} [options] Override http request option.
2808
5177
  * @throws {RequiredError}
2809
5178
  */
2810
- getRecentPunishments(limit, page, issuedAfter, issuedBefore, expiresAfter, expiresBefore, type, uuid, ipAddress, options) {
2811
- return PunishmentApiFp(this.configuration).getRecentPunishments(limit, page, issuedAfter, issuedBefore, expiresAfter, expiresBefore, type, uuid, ipAddress, options).then((request) => request(this.axios, this.basePath));
5179
+ submit(createReportRequest, options) {
5180
+ return ReportApiFp(this.configuration).submit(createReportRequest, options).then((request) => request(this.axios, this.basePath));
2812
5181
  }
2813
5182
  }
2814
5183
  /**