@rebornteam/reborn-api 3.2.0 → 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 (112) hide show
  1. package/.openapi-generator/FILES +65 -3
  2. package/README.md +93 -6
  3. package/api.ts +3991 -467
  4. package/base.ts +1 -1
  5. package/common.ts +1 -1
  6. package/configuration.ts +1 -1
  7. package/dist/api.d.ts +2485 -364
  8. package/dist/api.js +2876 -425
  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 +2485 -364
  16. package/dist/esm/api.js +2851 -420
  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 +196 -34
  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/AdminPagedConnectionResponse.md +0 -29
  111. package/docs/AdminPagedPlayerResponse.md +0 -29
  112. 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.0
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
  */
@@ -581,6 +846,35 @@ export class AdminClientCredentialsApi extends BaseAPI {
581
846
  */
582
847
  export const AdminConnectionsApiAxiosParamCreator = function (configuration) {
583
848
  return {
849
+ /**
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
852
+ * @param {*} [options] Override http request option.
853
+ * @throws {RequiredError}
854
+ */
855
+ backfillLocation: (...args_1) => __awaiter(this, [...args_1], void 0, function* (options = {}) {
856
+ const localVarPath = `/admin/connection/backfill-location`;
857
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
858
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
859
+ let baseOptions;
860
+ if (configuration) {
861
+ baseOptions = configuration.baseOptions;
862
+ }
863
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
864
+ const localVarHeaderParameter = {};
865
+ const localVarQueryParameter = {};
866
+ // authentication DiscordAuth required
867
+ // http bearer authentication required
868
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
869
+ localVarHeaderParameter['Accept'] = 'application/json';
870
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
871
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
872
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
873
+ return {
874
+ url: toPathString(localVarUrlObj),
875
+ options: localVarRequestOptions,
876
+ };
877
+ }),
584
878
  /**
585
879
  * Creates a temporary bypass for an IP address, expiring at the specified epoch timestamp (milliseconds since Unix epoch).
586
880
  * @summary Create connection bypass
@@ -615,18 +909,93 @@ export const AdminConnectionsApiAxiosParamCreator = function (configuration) {
615
909
  options: localVarRequestOptions,
616
910
  };
617
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
+ }),
618
984
  /**
619
985
  * Returns a paginated list of all connections with a total count. Supports filtering by IP address, UUID, and VPN status.
620
986
  * @summary List all connections (paginated)
621
- * @param {string | null} [ipAddress] Filter by IP address
622
- * @param {string | null} [uuid] Filter by player UUID
623
- * @param {boolean | null} [isVpn] Filter by VPN status
624
- * @param {number | null} [page] Page number (1-indexed)
625
- * @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]
626
993
  * @param {*} [options] Override http request option.
627
994
  * @throws {RequiredError}
628
995
  */
629
- 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);
630
999
  const localVarPath = `/admin/connection`;
631
1000
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
632
1001
  const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
@@ -640,6 +1009,12 @@ export const AdminConnectionsApiAxiosParamCreator = function (configuration) {
640
1009
  // authentication DiscordAuth required
641
1010
  // http bearer authentication required
642
1011
  yield setBearerAuthToObject(localVarHeaderParameter, configuration);
1012
+ if (createdAfter !== undefined) {
1013
+ localVarQueryParameter['createdAfter'] = createdAfter;
1014
+ }
1015
+ if (createdBefore !== undefined) {
1016
+ localVarQueryParameter['createdBefore'] = createdBefore;
1017
+ }
643
1018
  if (ipAddress !== undefined) {
644
1019
  localVarQueryParameter['ipAddress'] = ipAddress;
645
1020
  }
@@ -649,11 +1024,8 @@ export const AdminConnectionsApiAxiosParamCreator = function (configuration) {
649
1024
  if (isVpn !== undefined) {
650
1025
  localVarQueryParameter['isVpn'] = isVpn;
651
1026
  }
652
- if (page !== undefined) {
653
- localVarQueryParameter['page'] = page;
654
- }
655
- if (limit !== undefined) {
656
- localVarQueryParameter['limit'] = limit;
1027
+ if (pageable !== undefined) {
1028
+ localVarQueryParameter['pageable'] = pageable;
657
1029
  }
658
1030
  localVarHeaderParameter['Accept'] = 'application/json';
659
1031
  setSearchParams(localVarUrlObj, localVarQueryParameter);
@@ -667,17 +1039,18 @@ export const AdminConnectionsApiAxiosParamCreator = function (configuration) {
667
1039
  /**
668
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).
669
1041
  * @summary List recent connections
670
- * @param {number | null} [createdAfter] Filter connections after this epoch timestamp in milliseconds
671
- * @param {number | null} [createdBefore] Filter connections before this epoch timestamp in milliseconds
672
- * @param {string | null} [ipAddress] Filter by IP address
673
- * @param {string | null} [uuid] Filter by player UUID
674
- * @param {boolean | null} [isVpn] Filter by VPN status (true=VPN, false=not VPN)
675
- * @param {number | null} [page] Page number for pagination
676
- * @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]
677
1048
  * @param {*} [options] Override http request option.
678
1049
  * @throws {RequiredError}
679
1050
  */
680
- 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);
681
1054
  const localVarPath = `/admin/connection/recent`;
682
1055
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
683
1056
  const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
@@ -706,11 +1079,8 @@ export const AdminConnectionsApiAxiosParamCreator = function (configuration) {
706
1079
  if (isVpn !== undefined) {
707
1080
  localVarQueryParameter['isVpn'] = isVpn;
708
1081
  }
709
- if (page !== undefined) {
710
- localVarQueryParameter['page'] = page;
711
- }
712
- if (limit !== undefined) {
713
- localVarQueryParameter['limit'] = limit;
1082
+ if (pageable !== undefined) {
1083
+ localVarQueryParameter['pageable'] = pageable;
714
1084
  }
715
1085
  localVarHeaderParameter['Accept'] = 'application/json';
716
1086
  setSearchParams(localVarUrlObj, localVarQueryParameter);
@@ -766,6 +1136,21 @@ export const AdminConnectionsApiAxiosParamCreator = function (configuration) {
766
1136
  export const AdminConnectionsApiFp = function (configuration) {
767
1137
  const localVarAxiosParamCreator = AdminConnectionsApiAxiosParamCreator(configuration);
768
1138
  return {
1139
+ /**
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
1142
+ * @param {*} [options] Override http request option.
1143
+ * @throws {RequiredError}
1144
+ */
1145
+ backfillLocation(options) {
1146
+ return __awaiter(this, void 0, void 0, function* () {
1147
+ var _a, _b, _c;
1148
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.backfillLocation(options);
1149
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
1150
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminConnectionsApi.backfillLocation']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
1151
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1152
+ });
1153
+ },
769
1154
  /**
770
1155
  * Creates a temporary bypass for an IP address, expiring at the specified epoch timestamp (milliseconds since Unix epoch).
771
1156
  * @summary Create connection bypass
@@ -782,21 +1167,55 @@ export const AdminConnectionsApiFp = function (configuration) {
782
1167
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
783
1168
  });
784
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
+ },
785
1203
  /**
786
1204
  * Returns a paginated list of all connections with a total count. Supports filtering by IP address, UUID, and VPN status.
787
1205
  * @summary List all connections (paginated)
788
- * @param {string | null} [ipAddress] Filter by IP address
789
- * @param {string | null} [uuid] Filter by player UUID
790
- * @param {boolean | null} [isVpn] Filter by VPN status
791
- * @param {number | null} [page] Page number (1-indexed)
792
- * @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]
793
1212
  * @param {*} [options] Override http request option.
794
1213
  * @throws {RequiredError}
795
1214
  */
796
- listAllConnections(ipAddress, uuid, isVpn, page, limit, options) {
1215
+ listAllConnections(pageable, createdAfter, createdBefore, ipAddress, uuid, isVpn, options) {
797
1216
  return __awaiter(this, void 0, void 0, function* () {
798
1217
  var _a, _b, _c;
799
- const localVarAxiosArgs = yield localVarAxiosParamCreator.listAllConnections(ipAddress, uuid, isVpn, page, limit, options);
1218
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.listAllConnections(pageable, createdAfter, createdBefore, ipAddress, uuid, isVpn, options);
800
1219
  const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
801
1220
  const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminConnectionsApi.listAllConnections']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
802
1221
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
@@ -805,20 +1224,19 @@ export const AdminConnectionsApiFp = function (configuration) {
805
1224
  /**
806
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).
807
1226
  * @summary List recent connections
808
- * @param {number | null} [createdAfter] Filter connections after this epoch timestamp in milliseconds
809
- * @param {number | null} [createdBefore] Filter connections before this epoch timestamp in milliseconds
810
- * @param {string | null} [ipAddress] Filter by IP address
811
- * @param {string | null} [uuid] Filter by player UUID
812
- * @param {boolean | null} [isVpn] Filter by VPN status (true=VPN, false=not VPN)
813
- * @param {number | null} [page] Page number for pagination
814
- * @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]
815
1233
  * @param {*} [options] Override http request option.
816
1234
  * @throws {RequiredError}
817
1235
  */
818
- listConnections(createdAfter, createdBefore, ipAddress, uuid, isVpn, page, limit, options) {
1236
+ listConnections(pageable, createdAfter, createdBefore, ipAddress, uuid, isVpn, options) {
819
1237
  return __awaiter(this, void 0, void 0, function* () {
820
1238
  var _a, _b, _c;
821
- 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);
822
1240
  const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
823
1241
  const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminConnectionsApi.listConnections']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
824
1242
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
@@ -850,44 +1268,74 @@ export const AdminConnectionsApiFactory = function (configuration, basePath, axi
850
1268
  const localVarFp = AdminConnectionsApiFp(configuration);
851
1269
  return {
852
1270
  /**
853
- * Creates a temporary bypass for an IP address, expiring at the specified epoch timestamp (milliseconds since Unix epoch).
854
- * @summary Create connection bypass
855
- * @param {CreateBypassRequest} createBypassRequest
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
1273
+ * @param {*} [options] Override http request option.
1274
+ * @throws {RequiredError}
1275
+ */
1276
+ backfillLocation(options) {
1277
+ return localVarFp.backfillLocation(options).then((request) => request(axios, basePath));
1278
+ },
1279
+ /**
1280
+ * Creates a temporary bypass for an IP address, expiring at the specified epoch timestamp (milliseconds since Unix epoch).
1281
+ * @summary Create connection bypass
1282
+ * @param {CreateBypassRequest} createBypassRequest
856
1283
  * @param {*} [options] Override http request option.
857
1284
  * @throws {RequiredError}
858
1285
  */
859
1286
  createBypass(createBypassRequest, options) {
860
1287
  return localVarFp.createBypass(createBypassRequest, options).then((request) => request(axios, basePath));
861
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
+ },
862
1310
  /**
863
1311
  * Returns a paginated list of all connections with a total count. Supports filtering by IP address, UUID, and VPN status.
864
1312
  * @summary List all connections (paginated)
865
- * @param {string | null} [ipAddress] Filter by IP address
866
- * @param {string | null} [uuid] Filter by player UUID
867
- * @param {boolean | null} [isVpn] Filter by VPN status
868
- * @param {number | null} [page] Page number (1-indexed)
869
- * @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]
870
1319
  * @param {*} [options] Override http request option.
871
1320
  * @throws {RequiredError}
872
1321
  */
873
- listAllConnections(ipAddress, uuid, isVpn, page, limit, options) {
874
- 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));
875
1324
  },
876
1325
  /**
877
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).
878
1327
  * @summary List recent connections
879
- * @param {number | null} [createdAfter] Filter connections after this epoch timestamp in milliseconds
880
- * @param {number | null} [createdBefore] Filter connections before this epoch timestamp in milliseconds
881
- * @param {string | null} [ipAddress] Filter by IP address
882
- * @param {string | null} [uuid] Filter by player UUID
883
- * @param {boolean | null} [isVpn] Filter by VPN status (true=VPN, false=not VPN)
884
- * @param {number | null} [page] Page number for pagination
885
- * @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]
886
1334
  * @param {*} [options] Override http request option.
887
1335
  * @throws {RequiredError}
888
1336
  */
889
- listConnections(createdAfter, createdBefore, ipAddress, uuid, isVpn, page, limit, options) {
890
- 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));
891
1339
  },
892
1340
  /**
893
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.
@@ -906,6 +1354,15 @@ export const AdminConnectionsApiFactory = function (configuration, basePath, axi
906
1354
  * AdminConnectionsApi - object-oriented interface
907
1355
  */
908
1356
  export class AdminConnectionsApi extends BaseAPI {
1357
+ /**
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
1360
+ * @param {*} [options] Override http request option.
1361
+ * @throws {RequiredError}
1362
+ */
1363
+ backfillLocation(options) {
1364
+ return AdminConnectionsApiFp(this.configuration).backfillLocation(options).then((request) => request(this.axios, this.basePath));
1365
+ }
909
1366
  /**
910
1367
  * Creates a temporary bypass for an IP address, expiring at the specified epoch timestamp (milliseconds since Unix epoch).
911
1368
  * @summary Create connection bypass
@@ -916,35 +1373,56 @@ export class AdminConnectionsApi extends BaseAPI {
916
1373
  createBypass(createBypassRequest, options) {
917
1374
  return AdminConnectionsApiFp(this.configuration).createBypass(createBypassRequest, options).then((request) => request(this.axios, this.basePath));
918
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
+ }
919
1397
  /**
920
1398
  * Returns a paginated list of all connections with a total count. Supports filtering by IP address, UUID, and VPN status.
921
1399
  * @summary List all connections (paginated)
922
- * @param {string | null} [ipAddress] Filter by IP address
923
- * @param {string | null} [uuid] Filter by player UUID
924
- * @param {boolean | null} [isVpn] Filter by VPN status
925
- * @param {number | null} [page] Page number (1-indexed)
926
- * @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]
927
1406
  * @param {*} [options] Override http request option.
928
1407
  * @throws {RequiredError}
929
1408
  */
930
- listAllConnections(ipAddress, uuid, isVpn, page, limit, options) {
931
- 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));
932
1411
  }
933
1412
  /**
934
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).
935
1414
  * @summary List recent connections
936
- * @param {number | null} [createdAfter] Filter connections after this epoch timestamp in milliseconds
937
- * @param {number | null} [createdBefore] Filter connections before this epoch timestamp in milliseconds
938
- * @param {string | null} [ipAddress] Filter by IP address
939
- * @param {string | null} [uuid] Filter by player UUID
940
- * @param {boolean | null} [isVpn] Filter by VPN status (true=VPN, false=not VPN)
941
- * @param {number | null} [page] Page number for pagination
942
- * @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]
943
1421
  * @param {*} [options] Override http request option.
944
1422
  * @throws {RequiredError}
945
1423
  */
946
- listConnections(createdAfter, createdBefore, ipAddress, uuid, isVpn, page, limit, options) {
947
- 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));
948
1426
  }
949
1427
  /**
950
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.
@@ -1049,22 +1527,54 @@ export class AdminDashboardApi extends BaseAPI {
1049
1527
  }
1050
1528
  }
1051
1529
  /**
1052
- * AdminPlayersApi - axios parameter creator
1530
+ * AdminJobsApi - axios parameter creator
1053
1531
  */
1054
- export const AdminPlayersApiAxiosParamCreator = function (configuration) {
1532
+ export const AdminJobsApiAxiosParamCreator = function (configuration) {
1055
1533
  return {
1056
1534
  /**
1057
- * Returns full detail for a single player including all known usernames and punishment scoring.
1058
- * @summary Get player detail
1059
- * @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
1060
1538
  * @param {*} [options] Override http request option.
1061
1539
  * @throws {RequiredError}
1062
1540
  */
1063
- getPlayer: (uuid_1, ...args_1) => __awaiter(this, [uuid_1, ...args_1], void 0, function* (uuid, options = {}) {
1064
- // verify required parameter 'uuid' is not null or undefined
1065
- assertParamExists('getPlayer', 'uuid', uuid);
1066
- const localVarPath = `/admin/player/{uuid}`
1067
- .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)));
1546
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
1547
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
1548
+ let baseOptions;
1549
+ if (configuration) {
1550
+ baseOptions = configuration.baseOptions;
1551
+ }
1552
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options);
1553
+ const localVarHeaderParameter = {};
1554
+ const localVarQueryParameter = {};
1555
+ // authentication DiscordAuth required
1556
+ // http bearer authentication required
1557
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
1558
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
1559
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1560
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
1561
+ return {
1562
+ url: toPathString(localVarUrlObj),
1563
+ options: localVarRequestOptions,
1564
+ };
1565
+ }),
1566
+ /**
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
1570
+ * @param {*} [options] Override http request option.
1571
+ * @throws {RequiredError}
1572
+ */
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)));
1068
1578
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
1069
1579
  const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
1070
1580
  let baseOptions;
@@ -1087,20 +1597,17 @@ export const AdminPlayersApiAxiosParamCreator = function (configuration) {
1087
1597
  };
1088
1598
  }),
1089
1599
  /**
1090
- * Returns up to 500 players ordered by most recently seen. Optionally filter by UUID or username substring.
1091
- * @summary List players
1092
- * @param {number} page Page number (1-indexed)
1093
- * @param {number} limit Page size
1094
- * @param {string | null} [search] Optional search string matched against UUID or username (case-insensitive substring)
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)
1095
1604
  * @param {*} [options] Override http request option.
1096
1605
  * @throws {RequiredError}
1097
1606
  */
1098
- 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 = {}) {
1099
- // verify required parameter 'page' is not null or undefined
1100
- assertParamExists('listPlayers', 'page', page);
1101
- // verify required parameter 'limit' is not null or undefined
1102
- assertParamExists('listPlayers', 'limit', limit);
1103
- const localVarPath = `/admin/player`;
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`;
1104
1611
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
1105
1612
  const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
1106
1613
  let baseOptions;
@@ -1113,14 +1620,11 @@ export const AdminPlayersApiAxiosParamCreator = function (configuration) {
1113
1620
  // authentication DiscordAuth required
1114
1621
  // http bearer authentication required
1115
1622
  yield setBearerAuthToObject(localVarHeaderParameter, configuration);
1116
- if (search !== undefined) {
1117
- localVarQueryParameter['search'] = search;
1118
- }
1119
- if (page !== undefined) {
1120
- localVarQueryParameter['page'] = page;
1623
+ if (status !== undefined) {
1624
+ localVarQueryParameter['status'] = status;
1121
1625
  }
1122
- if (limit !== undefined) {
1123
- localVarQueryParameter['limit'] = limit;
1626
+ if (pageable !== undefined) {
1627
+ localVarQueryParameter['pageable'] = pageable;
1124
1628
  }
1125
1629
  localVarHeaderParameter['Accept'] = 'application/json';
1126
1630
  setSearchParams(localVarUrlObj, localVarQueryParameter);
@@ -1134,120 +1638,157 @@ export const AdminPlayersApiAxiosParamCreator = function (configuration) {
1134
1638
  };
1135
1639
  };
1136
1640
  /**
1137
- * AdminPlayersApi - functional programming interface
1641
+ * AdminJobsApi - functional programming interface
1138
1642
  */
1139
- export const AdminPlayersApiFp = function (configuration) {
1140
- const localVarAxiosParamCreator = AdminPlayersApiAxiosParamCreator(configuration);
1643
+ export const AdminJobsApiFp = function (configuration) {
1644
+ const localVarAxiosParamCreator = AdminJobsApiAxiosParamCreator(configuration);
1141
1645
  return {
1142
1646
  /**
1143
- * Returns full detail for a single player including all known usernames and punishment scoring.
1144
- * @summary Get player detail
1145
- * @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
1146
1650
  * @param {*} [options] Override http request option.
1147
1651
  * @throws {RequiredError}
1148
1652
  */
1149
- getPlayer(uuid, options) {
1653
+ cancel(id, options) {
1150
1654
  return __awaiter(this, void 0, void 0, function* () {
1151
1655
  var _a, _b, _c;
1152
- const localVarAxiosArgs = yield localVarAxiosParamCreator.getPlayer(uuid, options);
1656
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.cancel(id, options);
1153
1657
  const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
1154
- 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;
1155
1659
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1156
1660
  });
1157
1661
  },
1158
1662
  /**
1159
- * Returns up to 500 players ordered by most recently seen. Optionally filter by UUID or username substring.
1160
- * @summary List players
1161
- * @param {number} page Page number (1-indexed)
1162
- * @param {number} limit Page size
1163
- * @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
1164
1666
  * @param {*} [options] Override http request option.
1165
1667
  * @throws {RequiredError}
1166
1668
  */
1167
- listPlayers(page, limit, search, options) {
1669
+ get(id, options) {
1168
1670
  return __awaiter(this, void 0, void 0, function* () {
1169
1671
  var _a, _b, _c;
1170
- const localVarAxiosArgs = yield localVarAxiosParamCreator.listPlayers(page, limit, search, options);
1672
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.get(id, options);
1171
1673
  const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
1172
- 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;
1173
1692
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1174
1693
  });
1175
1694
  },
1176
1695
  };
1177
1696
  };
1178
1697
  /**
1179
- * AdminPlayersApi - factory interface
1698
+ * AdminJobsApi - factory interface
1180
1699
  */
1181
- export const AdminPlayersApiFactory = function (configuration, basePath, axios) {
1182
- const localVarFp = AdminPlayersApiFp(configuration);
1700
+ export const AdminJobsApiFactory = function (configuration, basePath, axios) {
1701
+ const localVarFp = AdminJobsApiFp(configuration);
1183
1702
  return {
1184
1703
  /**
1185
- * Returns full detail for a single player including all known usernames and punishment scoring.
1186
- * @summary Get player detail
1187
- * @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
1188
1707
  * @param {*} [options] Override http request option.
1189
1708
  * @throws {RequiredError}
1190
1709
  */
1191
- getPlayer(uuid, options) {
1192
- 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));
1193
1712
  },
1194
1713
  /**
1195
- * Returns up to 500 players ordered by most recently seen. Optionally filter by UUID or username substring.
1196
- * @summary List players
1197
- * @param {number} page Page number (1-indexed)
1198
- * @param {number} limit Page size
1199
- * @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)
1200
1728
  * @param {*} [options] Override http request option.
1201
1729
  * @throws {RequiredError}
1202
1730
  */
1203
- listPlayers(page, limit, search, options) {
1204
- 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));
1205
1733
  },
1206
1734
  };
1207
1735
  };
1208
1736
  /**
1209
- * AdminPlayersApi - object-oriented interface
1737
+ * AdminJobsApi - object-oriented interface
1210
1738
  */
1211
- export class AdminPlayersApi extends BaseAPI {
1739
+ export class AdminJobsApi extends BaseAPI {
1212
1740
  /**
1213
- * Returns full detail for a single player including all known usernames and punishment scoring.
1214
- * @summary Get player detail
1215
- * @param {string} uuid Player Minecraft UUID
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
1216
1744
  * @param {*} [options] Override http request option.
1217
1745
  * @throws {RequiredError}
1218
1746
  */
1219
- getPlayer(uuid, options) {
1220
- return AdminPlayersApiFp(this.configuration).getPlayer(uuid, options).then((request) => request(this.axios, this.basePath));
1747
+ cancel(id, options) {
1748
+ return AdminJobsApiFp(this.configuration).cancel(id, options).then((request) => request(this.axios, this.basePath));
1221
1749
  }
1222
1750
  /**
1223
- * Returns up to 500 players ordered by most recently seen. Optionally filter by UUID or username substring.
1224
- * @summary List players
1225
- * @param {number} page Page number (1-indexed)
1226
- * @param {number} limit Page size
1227
- * @param {string | null} [search] Optional search string matched against UUID or username (case-insensitive substring)
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)
1228
1765
  * @param {*} [options] Override http request option.
1229
1766
  * @throws {RequiredError}
1230
1767
  */
1231
- listPlayers(page, limit, search, options) {
1232
- return AdminPlayersApiFp(this.configuration).listPlayers(page, limit, search, options).then((request) => request(this.axios, this.basePath));
1768
+ list(pageable, status, options) {
1769
+ return AdminJobsApiFp(this.configuration).list(pageable, status, options).then((request) => request(this.axios, this.basePath));
1233
1770
  }
1234
1771
  }
1235
1772
  /**
1236
- * AdminPunishmentsApi - axios parameter creator
1773
+ * AdminPlayersApi - axios parameter creator
1237
1774
  */
1238
- export const AdminPunishmentsApiAxiosParamCreator = function (configuration) {
1775
+ export const AdminPlayersApiAxiosParamCreator = function (configuration) {
1239
1776
  return {
1240
1777
  /**
1241
- * Apply a punishment to one or more targets. The authenticated user is recorded as the issuer.
1242
- * @summary Apply punishment
1243
- * @param {AdminApplyPunishmentRequest} adminApplyPunishmentRequest
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
1244
1782
  * @param {*} [options] Override http request option.
1245
1783
  * @throws {RequiredError}
1246
1784
  */
1247
- applyPunishment: (adminApplyPunishmentRequest_1, ...args_1) => __awaiter(this, [adminApplyPunishmentRequest_1, ...args_1], void 0, function* (adminApplyPunishmentRequest, options = {}) {
1248
- // verify required parameter 'adminApplyPunishmentRequest' is not null or undefined
1249
- assertParamExists('applyPunishment', 'adminApplyPunishmentRequest', adminApplyPunishmentRequest);
1250
- const localVarPath = `/admin/punishment/apply`;
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)));
1251
1792
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
1252
1793
  const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
1253
1794
  let baseOptions;
@@ -1261,27 +1802,26 @@ export const AdminPunishmentsApiAxiosParamCreator = function (configuration) {
1261
1802
  // http bearer authentication required
1262
1803
  yield setBearerAuthToObject(localVarHeaderParameter, configuration);
1263
1804
  localVarHeaderParameter['Content-Type'] = 'application/json';
1264
- localVarHeaderParameter['Accept'] = 'application/json';
1265
1805
  setSearchParams(localVarUrlObj, localVarQueryParameter);
1266
1806
  let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1267
1807
  localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
1268
- localVarRequestOptions.data = serializeDataIfNeeded(adminApplyPunishmentRequest, localVarRequestOptions, configuration);
1808
+ localVarRequestOptions.data = serializeDataIfNeeded(adminCreateAltExemptionRequest, localVarRequestOptions, configuration);
1269
1809
  return {
1270
1810
  url: toPathString(localVarUrlObj),
1271
1811
  options: localVarRequestOptions,
1272
1812
  };
1273
1813
  }),
1274
1814
  /**
1275
- * Preview the impact of a punishment across one or more targets. No changes are made.
1276
- * @summary Evaluate punishment impact
1277
- * @param {AdminCreatePunishmentDraftRequest} adminCreatePunishmentDraftRequest
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
1278
1818
  * @param {*} [options] Override http request option.
1279
1819
  * @throws {RequiredError}
1280
1820
  */
1281
- createDraft: (adminCreatePunishmentDraftRequest_1, ...args_1) => __awaiter(this, [adminCreatePunishmentDraftRequest_1, ...args_1], void 0, function* (adminCreatePunishmentDraftRequest, options = {}) {
1282
- // verify required parameter 'adminCreatePunishmentDraftRequest' is not null or undefined
1283
- assertParamExists('createDraft', 'adminCreatePunishmentDraftRequest', adminCreatePunishmentDraftRequest);
1284
- const localVarPath = `/admin/punishment/draft`;
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`;
1285
1825
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
1286
1826
  const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
1287
1827
  let baseOptions;
@@ -1299,103 +1839,110 @@ export const AdminPunishmentsApiAxiosParamCreator = function (configuration) {
1299
1839
  setSearchParams(localVarUrlObj, localVarQueryParameter);
1300
1840
  let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1301
1841
  localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
1302
- localVarRequestOptions.data = serializeDataIfNeeded(adminCreatePunishmentDraftRequest, localVarRequestOptions, configuration);
1842
+ localVarRequestOptions.data = serializeDataIfNeeded(adminBulkRevokeRequest, localVarRequestOptions, configuration);
1303
1843
  return {
1304
1844
  url: toPathString(localVarUrlObj),
1305
1845
  options: localVarRequestOptions,
1306
1846
  };
1307
1847
  }),
1308
1848
  /**
1309
- * Returns a paginated list of punishments with optional filtering by player UUID, username, IP address, type, and date range.
1310
- * @summary List punishments
1311
- * @param {number} page Page number (1-indexed)
1312
- * @param {number} limit Page size
1313
- * @param {string | null} [uuid] Filter by player UUID
1314
- * @param {string | null} [username] Filter by player username (case-insensitive substring match)
1315
- * @param {string | null} [ipAddress] Filter by IP address
1316
- * @param {Array<PunishmentType> | null} [type] Filter by punishment type. Repeatable.
1317
- * @param {number | null} [issuedAfter] Filter punishments issued after this epoch timestamp (ms)
1318
- * @param {number | null} [issuedBefore] Filter punishments issued before this epoch timestamp (ms)
1319
- * @param {*} [options] Override http request option.
1320
- * @throws {RequiredError}
1321
- */
1322
- 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 = {}) {
1323
- // verify required parameter 'page' is not null or undefined
1324
- assertParamExists('getPunishments', 'page', page);
1325
- // verify required parameter 'limit' is not null or undefined
1326
- assertParamExists('getPunishments', 'limit', limit);
1327
- const localVarPath = `/admin/punishment`;
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)));
1328
1863
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
1329
1864
  const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
1330
1865
  let baseOptions;
1331
1866
  if (configuration) {
1332
1867
  baseOptions = configuration.baseOptions;
1333
1868
  }
1334
- const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
1869
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
1335
1870
  const localVarHeaderParameter = {};
1336
1871
  const localVarQueryParameter = {};
1337
1872
  // authentication DiscordAuth required
1338
1873
  // http bearer authentication required
1339
1874
  yield setBearerAuthToObject(localVarHeaderParameter, configuration);
1340
- if (uuid !== undefined) {
1341
- localVarQueryParameter['uuid'] = uuid;
1342
- }
1343
- if (username !== undefined) {
1344
- localVarQueryParameter['username'] = username;
1345
- }
1346
- if (ipAddress !== undefined) {
1347
- localVarQueryParameter['ipAddress'] = ipAddress;
1348
- }
1349
- if (type) {
1350
- localVarQueryParameter['type'] = type.join(COLLECTION_FORMATS.csv);
1351
- }
1352
- if (issuedAfter !== undefined) {
1353
- localVarQueryParameter['issuedAfter'] = issuedAfter;
1354
- }
1355
- if (issuedBefore !== undefined) {
1356
- localVarQueryParameter['issuedBefore'] = issuedBefore;
1357
- }
1358
- if (page !== undefined) {
1359
- localVarQueryParameter['page'] = page;
1360
- }
1361
- if (limit !== undefined) {
1362
- localVarQueryParameter['limit'] = limit;
1363
- }
1875
+ localVarHeaderParameter['Content-Type'] = 'application/json';
1364
1876
  localVarHeaderParameter['Accept'] = 'application/json';
1365
1877
  setSearchParams(localVarUrlObj, localVarQueryParameter);
1366
1878
  let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1367
1879
  localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
1880
+ localVarRequestOptions.data = serializeDataIfNeeded(adminCreatePlayerNoteRequest, localVarRequestOptions, configuration);
1368
1881
  return {
1369
1882
  url: toPathString(localVarUrlObj),
1370
1883
  options: localVarRequestOptions,
1371
1884
  };
1372
1885
  }),
1373
1886
  /**
1374
- * Search for players by UUID or username, or look up all players associated with an IP address.
1375
- * @summary Search punishment targets
1376
- * @param {string} q UUID, username, or partial/full IP address to search for
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
1377
1891
  * @param {*} [options] Override http request option.
1378
1892
  * @throws {RequiredError}
1379
1893
  */
1380
- searchTargets: (q_1, ...args_1) => __awaiter(this, [q_1, ...args_1], void 0, function* (q, options = {}) {
1381
- // verify required parameter 'q' is not null or undefined
1382
- assertParamExists('searchTargets', 'q', q);
1383
- const localVarPath = `/admin/punishment/search`;
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)));
1384
1902
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
1385
1903
  const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
1386
1904
  let baseOptions;
1387
1905
  if (configuration) {
1388
1906
  baseOptions = configuration.baseOptions;
1389
1907
  }
1390
- const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
1908
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options);
1391
1909
  const localVarHeaderParameter = {};
1392
1910
  const localVarQueryParameter = {};
1393
1911
  // authentication DiscordAuth required
1394
1912
  // http bearer authentication required
1395
1913
  yield setBearerAuthToObject(localVarHeaderParameter, configuration);
1396
- if (q !== undefined) {
1397
- localVarQueryParameter['q'] = q;
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;
1398
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);
1399
1946
  localVarHeaderParameter['Accept'] = 'application/json';
1400
1947
  setSearchParams(localVarUrlObj, localVarQueryParameter);
1401
1948
  let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
@@ -1405,30 +1952,1433 @@ export const AdminPunishmentsApiAxiosParamCreator = function (configuration) {
1405
1952
  options: localVarRequestOptions,
1406
1953
  };
1407
1954
  }),
1408
- };
1409
- };
1410
- /**
1411
- * AdminPunishmentsApi - functional programming interface
1412
- */
1413
- export const AdminPunishmentsApiFp = function (configuration) {
1414
- const localVarAxiosParamCreator = AdminPunishmentsApiAxiosParamCreator(configuration);
1415
- return {
1416
1955
  /**
1417
- * Apply a punishment to one or more targets. The authenticated user is recorded as the issuer.
1418
- * @summary Apply punishment
1419
- * @param {AdminApplyPunishmentRequest} adminApplyPunishmentRequest
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
1420
1960
  * @param {*} [options] Override http request option.
1421
1961
  * @throws {RequiredError}
1422
1962
  */
1423
- applyPunishment(adminApplyPunishmentRequest, options) {
1424
- return __awaiter(this, void 0, void 0, function* () {
1425
- var _a, _b, _c;
1426
- const localVarAxiosArgs = yield localVarAxiosParamCreator.applyPunishment(adminApplyPunishmentRequest, options);
1427
- const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
1428
- const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminPunishmentsApi.applyPunishment']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
1429
- return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1430
- });
1431
- },
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
+ }
3088
+ /**
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
3091
+ * @param {string} uuid Player Minecraft UUID
3092
+ * @param {Pageable} pageable
3093
+ * @param {*} [options] Override http request option.
3094
+ * @throws {RequiredError}
3095
+ */
3096
+ listSessions(uuid, pageable, options) {
3097
+ return AdminPlayersApiFp(this.configuration).listSessions(uuid, pageable, options).then((request) => request(this.axios, this.basePath));
3098
+ }
3099
+ /**
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)
3147
+ * @param {*} [options] Override http request option.
3148
+ * @throws {RequiredError}
3149
+ */
3150
+ trustFactorHistory(uuid, days, options) {
3151
+ return AdminPlayersApiFp(this.configuration).trustFactorHistory(uuid, days, options).then((request) => request(this.axios, this.basePath));
3152
+ }
3153
+ }
3154
+ /**
3155
+ * AdminPunishmentsApi - axios parameter creator
3156
+ */
3157
+ export const AdminPunishmentsApiAxiosParamCreator = function (configuration) {
3158
+ return {
3159
+ /**
3160
+ * Apply a punishment to one or more targets. The authenticated user is recorded as the issuer.
3161
+ * @summary Apply punishment
3162
+ * @param {AdminApplyPunishmentRequest} adminApplyPunishmentRequest
3163
+ * @param {*} [options] Override http request option.
3164
+ * @throws {RequiredError}
3165
+ */
3166
+ applyPunishment: (adminApplyPunishmentRequest_1, ...args_1) => __awaiter(this, [adminApplyPunishmentRequest_1, ...args_1], void 0, function* (adminApplyPunishmentRequest, options = {}) {
3167
+ // verify required parameter 'adminApplyPunishmentRequest' is not null or undefined
3168
+ assertParamExists('applyPunishment', 'adminApplyPunishmentRequest', adminApplyPunishmentRequest);
3169
+ const localVarPath = `/admin/punishment/apply`;
3170
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
3171
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
3172
+ let baseOptions;
3173
+ if (configuration) {
3174
+ baseOptions = configuration.baseOptions;
3175
+ }
3176
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
3177
+ const localVarHeaderParameter = {};
3178
+ const localVarQueryParameter = {};
3179
+ // authentication DiscordAuth required
3180
+ // http bearer authentication required
3181
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
3182
+ localVarHeaderParameter['Content-Type'] = 'application/json';
3183
+ localVarHeaderParameter['Accept'] = 'application/json';
3184
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
3185
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
3186
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
3187
+ localVarRequestOptions.data = serializeDataIfNeeded(adminApplyPunishmentRequest, localVarRequestOptions, configuration);
3188
+ return {
3189
+ url: toPathString(localVarUrlObj),
3190
+ options: localVarRequestOptions,
3191
+ };
3192
+ }),
3193
+ /**
3194
+ * Preview the impact of a punishment across one or more targets. No changes are made.
3195
+ * @summary Evaluate punishment impact
3196
+ * @param {AdminCreatePunishmentDraftRequest} adminCreatePunishmentDraftRequest
3197
+ * @param {*} [options] Override http request option.
3198
+ * @throws {RequiredError}
3199
+ */
3200
+ createDraft: (adminCreatePunishmentDraftRequest_1, ...args_1) => __awaiter(this, [adminCreatePunishmentDraftRequest_1, ...args_1], void 0, function* (adminCreatePunishmentDraftRequest, options = {}) {
3201
+ // verify required parameter 'adminCreatePunishmentDraftRequest' is not null or undefined
3202
+ assertParamExists('createDraft', 'adminCreatePunishmentDraftRequest', adminCreatePunishmentDraftRequest);
3203
+ const localVarPath = `/admin/punishment/draft`;
3204
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
3205
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
3206
+ let baseOptions;
3207
+ if (configuration) {
3208
+ baseOptions = configuration.baseOptions;
3209
+ }
3210
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
3211
+ const localVarHeaderParameter = {};
3212
+ const localVarQueryParameter = {};
3213
+ // authentication DiscordAuth required
3214
+ // http bearer authentication required
3215
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
3216
+ localVarHeaderParameter['Content-Type'] = 'application/json';
3217
+ localVarHeaderParameter['Accept'] = 'application/json';
3218
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
3219
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
3220
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
3221
+ localVarRequestOptions.data = serializeDataIfNeeded(adminCreatePunishmentDraftRequest, localVarRequestOptions, configuration);
3222
+ return {
3223
+ url: toPathString(localVarUrlObj),
3224
+ options: localVarRequestOptions,
3225
+ };
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
+ }),
3264
+ /**
3265
+ * Returns a paginated list of punishments with optional filtering by player UUID, username, IP address, type, and date range.
3266
+ * @summary List punishments
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);
3280
+ const localVarPath = `/admin/punishment`;
3281
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
3282
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
3283
+ let baseOptions;
3284
+ if (configuration) {
3285
+ baseOptions = configuration.baseOptions;
3286
+ }
3287
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
3288
+ const localVarHeaderParameter = {};
3289
+ const localVarQueryParameter = {};
3290
+ // authentication DiscordAuth required
3291
+ // http bearer authentication required
3292
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
3293
+ if (uuid !== undefined) {
3294
+ localVarQueryParameter['uuid'] = uuid;
3295
+ }
3296
+ if (username !== undefined) {
3297
+ localVarQueryParameter['username'] = username;
3298
+ }
3299
+ if (ipAddress !== undefined) {
3300
+ localVarQueryParameter['ipAddress'] = ipAddress;
3301
+ }
3302
+ if (type) {
3303
+ localVarQueryParameter['type'] = type.join(COLLECTION_FORMATS.csv);
3304
+ }
3305
+ if (issuedAfter !== undefined) {
3306
+ localVarQueryParameter['issuedAfter'] = issuedAfter;
3307
+ }
3308
+ if (issuedBefore !== undefined) {
3309
+ localVarQueryParameter['issuedBefore'] = issuedBefore;
3310
+ }
3311
+ if (pageable !== undefined) {
3312
+ localVarQueryParameter['pageable'] = pageable;
3313
+ }
3314
+ localVarHeaderParameter['Accept'] = 'application/json';
3315
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
3316
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
3317
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
3318
+ return {
3319
+ url: toPathString(localVarUrlObj),
3320
+ options: localVarRequestOptions,
3321
+ };
3322
+ }),
3323
+ /**
3324
+ * Search for players by UUID or username, or look up all players associated with an IP address.
3325
+ * @summary Search punishment targets
3326
+ * @param {string} q UUID, username, or partial/full IP address to search for
3327
+ * @param {*} [options] Override http request option.
3328
+ * @throws {RequiredError}
3329
+ */
3330
+ searchTargets: (q_1, ...args_1) => __awaiter(this, [q_1, ...args_1], void 0, function* (q, options = {}) {
3331
+ // verify required parameter 'q' is not null or undefined
3332
+ assertParamExists('searchTargets', 'q', q);
3333
+ const localVarPath = `/admin/punishment/search`;
3334
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
3335
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
3336
+ let baseOptions;
3337
+ if (configuration) {
3338
+ baseOptions = configuration.baseOptions;
3339
+ }
3340
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
3341
+ const localVarHeaderParameter = {};
3342
+ const localVarQueryParameter = {};
3343
+ // authentication DiscordAuth required
3344
+ // http bearer authentication required
3345
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
3346
+ if (q !== undefined) {
3347
+ localVarQueryParameter['q'] = q;
3348
+ }
3349
+ localVarHeaderParameter['Accept'] = 'application/json';
3350
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
3351
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
3352
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
3353
+ return {
3354
+ url: toPathString(localVarUrlObj),
3355
+ options: localVarRequestOptions,
3356
+ };
3357
+ }),
3358
+ };
3359
+ };
3360
+ /**
3361
+ * AdminPunishmentsApi - functional programming interface
3362
+ */
3363
+ export const AdminPunishmentsApiFp = function (configuration) {
3364
+ const localVarAxiosParamCreator = AdminPunishmentsApiAxiosParamCreator(configuration);
3365
+ return {
3366
+ /**
3367
+ * Apply a punishment to one or more targets. The authenticated user is recorded as the issuer.
3368
+ * @summary Apply punishment
3369
+ * @param {AdminApplyPunishmentRequest} adminApplyPunishmentRequest
3370
+ * @param {*} [options] Override http request option.
3371
+ * @throws {RequiredError}
3372
+ */
3373
+ applyPunishment(adminApplyPunishmentRequest, options) {
3374
+ return __awaiter(this, void 0, void 0, function* () {
3375
+ var _a, _b, _c;
3376
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.applyPunishment(adminApplyPunishmentRequest, options);
3377
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
3378
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminPunishmentsApi.applyPunishment']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
3379
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
3380
+ });
3381
+ },
1432
3382
  /**
1433
3383
  * Preview the impact of a punishment across one or more targets. No changes are made.
1434
3384
  * @summary Evaluate punishment impact
@@ -1446,151 +3396,376 @@ export const AdminPunishmentsApiFp = function (configuration) {
1446
3396
  });
1447
3397
  },
1448
3398
  /**
1449
- * Returns a paginated list of punishments with optional filtering by player UUID, username, IP address, type, and date range.
1450
- * @summary List punishments
1451
- * @param {number} page Page number (1-indexed)
1452
- * @param {number} limit Page size
1453
- * @param {string | null} [uuid] Filter by player UUID
1454
- * @param {string | null} [username] Filter by player username (case-insensitive substring match)
1455
- * @param {string | null} [ipAddress] Filter by IP address
1456
- * @param {Array<PunishmentType> | null} [type] Filter by punishment type. Repeatable.
1457
- * @param {number | null} [issuedAfter] Filter punishments issued after this epoch timestamp (ms)
1458
- * @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]
1459
3681
  * @param {*} [options] Override http request option.
1460
3682
  * @throws {RequiredError}
1461
3683
  */
1462
- getPunishments(page, limit, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options) {
3684
+ list1(pageable, reportedUuid, openOnly, options) {
1463
3685
  return __awaiter(this, void 0, void 0, function* () {
1464
3686
  var _a, _b, _c;
1465
- const localVarAxiosArgs = yield localVarAxiosParamCreator.getPunishments(page, limit, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options);
3687
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.list1(pageable, reportedUuid, openOnly, options);
1466
3688
  const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
1467
- 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;
1468
3690
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1469
3691
  });
1470
3692
  },
1471
3693
  /**
1472
- * Search for players by UUID or username, or look up all players associated with an IP address.
1473
- * @summary Search punishment targets
1474
- * @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
1475
3698
  * @param {*} [options] Override http request option.
1476
3699
  * @throws {RequiredError}
1477
3700
  */
1478
- searchTargets(q, options) {
3701
+ resolve(id, adminResolveReportRequest, options) {
1479
3702
  return __awaiter(this, void 0, void 0, function* () {
1480
3703
  var _a, _b, _c;
1481
- const localVarAxiosArgs = yield localVarAxiosParamCreator.searchTargets(q, options);
3704
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.resolve(id, adminResolveReportRequest, options);
1482
3705
  const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
1483
- 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;
1484
3707
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1485
3708
  });
1486
3709
  },
1487
3710
  };
1488
3711
  };
1489
3712
  /**
1490
- * AdminPunishmentsApi - factory interface
3713
+ * AdminReportsApi - factory interface
1491
3714
  */
1492
- export const AdminPunishmentsApiFactory = function (configuration, basePath, axios) {
1493
- const localVarFp = AdminPunishmentsApiFp(configuration);
3715
+ export const AdminReportsApiFactory = function (configuration, basePath, axios) {
3716
+ const localVarFp = AdminReportsApiFp(configuration);
1494
3717
  return {
1495
3718
  /**
1496
- * Apply a punishment to one or more targets. The authenticated user is recorded as the issuer.
1497
- * @summary Apply punishment
1498
- * @param {AdminApplyPunishmentRequest} adminApplyPunishmentRequest
1499
- * @param {*} [options] Override http request option.
1500
- * @throws {RequiredError}
1501
- */
1502
- applyPunishment(adminApplyPunishmentRequest, options) {
1503
- return localVarFp.applyPunishment(adminApplyPunishmentRequest, options).then((request) => request(axios, basePath));
1504
- },
1505
- /**
1506
- * Preview the impact of a punishment across one or more targets. No changes are made.
1507
- * @summary Evaluate punishment impact
1508
- * @param {AdminCreatePunishmentDraftRequest} adminCreatePunishmentDraftRequest
1509
- * @param {*} [options] Override http request option.
1510
- * @throws {RequiredError}
1511
- */
1512
- createDraft(adminCreatePunishmentDraftRequest, options) {
1513
- return localVarFp.createDraft(adminCreatePunishmentDraftRequest, options).then((request) => request(axios, basePath));
1514
- },
1515
- /**
1516
- * Returns a paginated list of punishments with optional filtering by player UUID, username, IP address, type, and date range.
1517
- * @summary List punishments
1518
- * @param {number} page Page number (1-indexed)
1519
- * @param {number} limit Page size
1520
- * @param {string | null} [uuid] Filter by player UUID
1521
- * @param {string | null} [username] Filter by player username (case-insensitive substring match)
1522
- * @param {string | null} [ipAddress] Filter by IP address
1523
- * @param {Array<PunishmentType> | null} [type] Filter by punishment type. Repeatable.
1524
- * @param {number | null} [issuedAfter] Filter punishments issued after this epoch timestamp (ms)
1525
- * @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]
1526
3724
  * @param {*} [options] Override http request option.
1527
3725
  * @throws {RequiredError}
1528
3726
  */
1529
- getPunishments(page, limit, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options) {
1530
- 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));
1531
3729
  },
1532
3730
  /**
1533
- * Search for players by UUID or username, or look up all players associated with an IP address.
1534
- * @summary Search punishment targets
1535
- * @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
1536
3735
  * @param {*} [options] Override http request option.
1537
3736
  * @throws {RequiredError}
1538
3737
  */
1539
- searchTargets(q, options) {
1540
- 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));
1541
3740
  },
1542
3741
  };
1543
3742
  };
1544
3743
  /**
1545
- * AdminPunishmentsApi - object-oriented interface
3744
+ * AdminReportsApi - object-oriented interface
1546
3745
  */
1547
- export class AdminPunishmentsApi extends BaseAPI {
1548
- /**
1549
- * Apply a punishment to one or more targets. The authenticated user is recorded as the issuer.
1550
- * @summary Apply punishment
1551
- * @param {AdminApplyPunishmentRequest} adminApplyPunishmentRequest
1552
- * @param {*} [options] Override http request option.
1553
- * @throws {RequiredError}
1554
- */
1555
- applyPunishment(adminApplyPunishmentRequest, options) {
1556
- return AdminPunishmentsApiFp(this.configuration).applyPunishment(adminApplyPunishmentRequest, options).then((request) => request(this.axios, this.basePath));
1557
- }
1558
- /**
1559
- * Preview the impact of a punishment across one or more targets. No changes are made.
1560
- * @summary Evaluate punishment impact
1561
- * @param {AdminCreatePunishmentDraftRequest} adminCreatePunishmentDraftRequest
1562
- * @param {*} [options] Override http request option.
1563
- * @throws {RequiredError}
1564
- */
1565
- createDraft(adminCreatePunishmentDraftRequest, options) {
1566
- return AdminPunishmentsApiFp(this.configuration).createDraft(adminCreatePunishmentDraftRequest, options).then((request) => request(this.axios, this.basePath));
1567
- }
3746
+ export class AdminReportsApi extends BaseAPI {
1568
3747
  /**
1569
- * Returns a paginated list of punishments with optional filtering by player UUID, username, IP address, type, and date range.
1570
- * @summary List punishments
1571
- * @param {number} page Page number (1-indexed)
1572
- * @param {number} limit Page size
1573
- * @param {string | null} [uuid] Filter by player UUID
1574
- * @param {string | null} [username] Filter by player username (case-insensitive substring match)
1575
- * @param {string | null} [ipAddress] Filter by IP address
1576
- * @param {Array<PunishmentType> | null} [type] Filter by punishment type. Repeatable.
1577
- * @param {number | null} [issuedAfter] Filter punishments issued after this epoch timestamp (ms)
1578
- * @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]
1579
3753
  * @param {*} [options] Override http request option.
1580
3754
  * @throws {RequiredError}
1581
3755
  */
1582
- getPunishments(page, limit, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options) {
1583
- 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));
1584
3758
  }
1585
3759
  /**
1586
- * Search for players by UUID or username, or look up all players associated with an IP address.
1587
- * @summary Search punishment targets
1588
- * @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
1589
3764
  * @param {*} [options] Override http request option.
1590
3765
  * @throws {RequiredError}
1591
3766
  */
1592
- searchTargets(q, options) {
1593
- 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));
1594
3769
  }
1595
3770
  }
1596
3771
  /**
@@ -1913,15 +4088,13 @@ export const ChatApiAxiosParamCreator = function (configuration) {
1913
4088
  /**
1914
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.
1915
4090
  * @summary Get chat history
1916
- * @param {number} limit Maximum number of messages to return (1–100)
1917
4091
  * @param {string | null} [sessionId] Filter to a specific server session. Omit for global history.
1918
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)
1919
4094
  * @param {*} [options] Override http request option.
1920
4095
  * @throws {RequiredError}
1921
4096
  */
1922
- 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 = {}) {
1923
- // verify required parameter 'limit' is not null or undefined
1924
- 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 = {}) {
1925
4098
  const localVarPath = `/v1/chat`;
1926
4099
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
1927
4100
  const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
@@ -1998,16 +4171,16 @@ export const ChatApiFp = function (configuration) {
1998
4171
  /**
1999
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.
2000
4173
  * @summary Get chat history
2001
- * @param {number} limit Maximum number of messages to return (1–100)
2002
4174
  * @param {string | null} [sessionId] Filter to a specific server session. Omit for global history.
2003
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)
2004
4177
  * @param {*} [options] Override http request option.
2005
4178
  * @throws {RequiredError}
2006
4179
  */
2007
- history(limit, sessionId, before, options) {
4180
+ history(sessionId, before, limit, options) {
2008
4181
  return __awaiter(this, void 0, void 0, function* () {
2009
4182
  var _a, _b, _c;
2010
- const localVarAxiosArgs = yield localVarAxiosParamCreator.history(limit, sessionId, before, options);
4183
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.history(sessionId, before, limit, options);
2011
4184
  const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2012
4185
  const localVarOperationServerBasePath = (_c = (_b = operationServerMap['ChatApi.history']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2013
4186
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
@@ -2040,14 +4213,14 @@ export const ChatApiFactory = function (configuration, basePath, axios) {
2040
4213
  /**
2041
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.
2042
4215
  * @summary Get chat history
2043
- * @param {number} limit Maximum number of messages to return (1–100)
2044
4216
  * @param {string | null} [sessionId] Filter to a specific server session. Omit for global history.
2045
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)
2046
4219
  * @param {*} [options] Override http request option.
2047
4220
  * @throws {RequiredError}
2048
4221
  */
2049
- history(limit, sessionId, before, options) {
2050
- 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));
2051
4224
  },
2052
4225
  /**
2053
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.
@@ -2068,14 +4241,14 @@ export class ChatApi extends BaseAPI {
2068
4241
  /**
2069
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.
2070
4243
  * @summary Get chat history
2071
- * @param {number} limit Maximum number of messages to return (1–100)
2072
4244
  * @param {string | null} [sessionId] Filter to a specific server session. Omit for global history.
2073
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)
2074
4247
  * @param {*} [options] Override http request option.
2075
4248
  * @throws {RequiredError}
2076
4249
  */
2077
- history(limit, sessionId, before, options) {
2078
- 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));
2079
4252
  }
2080
4253
  /**
2081
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.
@@ -2094,19 +4267,18 @@ export class ChatApi extends BaseAPI {
2094
4267
  export const ConnectionApiAxiosParamCreator = function (configuration) {
2095
4268
  return {
2096
4269
  /**
2097
- * 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.
2098
- * @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)
2099
4272
  * @param {string} ip IPv4 address to analyze for VPN/proxy detection and geolocation
2100
- * @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
2101
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.
2102
4275
  * @param {*} [options] Override http request option.
4276
+ * @deprecated
2103
4277
  * @throws {RequiredError}
2104
4278
  */
2105
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 = {}) {
2106
4280
  // verify required parameter 'ip' is not null or undefined
2107
4281
  assertParamExists('getConnectionDetails', 'ip', ip);
2108
- // verify required parameter 'forceRecheck' is not null or undefined
2109
- assertParamExists('getConnectionDetails', 'forceRecheck', forceRecheck);
2110
4282
  const localVarPath = `/v1/connection/get-connection-details/{ip}`
2111
4283
  .replace(`{${"ip"}}`, encodeURIComponent(String(ip)));
2112
4284
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
@@ -2145,12 +4317,13 @@ export const ConnectionApiFp = function (configuration) {
2145
4317
  const localVarAxiosParamCreator = ConnectionApiAxiosParamCreator(configuration);
2146
4318
  return {
2147
4319
  /**
2148
- * 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.
2149
- * @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)
2150
4322
  * @param {string} ip IPv4 address to analyze for VPN/proxy detection and geolocation
2151
- * @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
2152
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.
2153
4325
  * @param {*} [options] Override http request option.
4326
+ * @deprecated
2154
4327
  * @throws {RequiredError}
2155
4328
  */
2156
4329
  getConnectionDetails(ip, forceRecheck, associateUuid, options) {
@@ -2171,12 +4344,13 @@ export const ConnectionApiFactory = function (configuration, basePath, axios) {
2171
4344
  const localVarFp = ConnectionApiFp(configuration);
2172
4345
  return {
2173
4346
  /**
2174
- * 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.
2175
- * @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)
2176
4349
  * @param {string} ip IPv4 address to analyze for VPN/proxy detection and geolocation
2177
- * @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
2178
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.
2179
4352
  * @param {*} [options] Override http request option.
4353
+ * @deprecated
2180
4354
  * @throws {RequiredError}
2181
4355
  */
2182
4356
  getConnectionDetails(ip, forceRecheck, associateUuid, options) {
@@ -2189,12 +4363,13 @@ export const ConnectionApiFactory = function (configuration, basePath, axios) {
2189
4363
  */
2190
4364
  export class ConnectionApi extends BaseAPI {
2191
4365
  /**
2192
- * 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.
2193
- * @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)
2194
4368
  * @param {string} ip IPv4 address to analyze for VPN/proxy detection and geolocation
2195
- * @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
2196
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.
2197
4371
  * @param {*} [options] Override http request option.
4372
+ * @deprecated
2198
4373
  * @throws {RequiredError}
2199
4374
  */
2200
4375
  getConnectionDetails(ip, forceRecheck, associateUuid, options) {
@@ -2369,6 +4544,173 @@ export class PlayerApi extends BaseAPI {
2369
4544
  return PlayerApiFp(this.configuration).getUsernames(uuids, options).then((request) => request(this.axios, this.basePath));
2370
4545
  }
2371
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
+ }
2372
4714
  /**
2373
4715
  * PunishmentApi - axios parameter creator
2374
4716
  */
@@ -2486,23 +4828,20 @@ export const PunishmentApiAxiosParamCreator = function (configuration) {
2486
4828
  /**
2487
4829
  * Returns a paginated list of recent punishments with optional filtering by issue date, expiration date, and type
2488
4830
  * @summary List recent punishments
2489
- * @param {number} limit Maximum number of records to return
2490
- * @param {number} page Page number for pagination
2491
- * @param {number | null} [issuedAfter] Filter punishments issued after this epoch timestamp (milliseconds)
2492
- * @param {number | null} [issuedBefore] Filter punishments issued before this epoch timestamp (milliseconds)
2493
- * @param {number | null} [expiresAfter] Filter punishments expiring after this epoch timestamp (milliseconds)
2494
- * @param {number | null} [expiresBefore] Filter punishments expiring before this epoch timestamp (milliseconds)
2495
- * @param {Array<PunishmentType> | null} [type] Filter by punishment types
2496
- * @param {string | null} [uuid] Filter by player UUID
2497
- * @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]
2498
4839
  * @param {*} [options] Override http request option.
2499
4840
  * @throws {RequiredError}
2500
4841
  */
2501
- 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 = {}) {
2502
- // verify required parameter 'limit' is not null or undefined
2503
- assertParamExists('getRecentPunishments', 'limit', limit);
2504
- // verify required parameter 'page' is not null or undefined
2505
- 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);
2506
4845
  const localVarPath = `/v1/punishment/recent`;
2507
4846
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
2508
4847
  const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
@@ -2537,11 +4876,8 @@ export const PunishmentApiAxiosParamCreator = function (configuration) {
2537
4876
  if (ipAddress !== undefined) {
2538
4877
  localVarQueryParameter['ipAddress'] = ipAddress;
2539
4878
  }
2540
- if (limit !== undefined) {
2541
- localVarQueryParameter['limit'] = limit;
2542
- }
2543
- if (page !== undefined) {
2544
- localVarQueryParameter['page'] = page;
4879
+ if (pageable !== undefined) {
4880
+ localVarQueryParameter['pageable'] = pageable;
2545
4881
  }
2546
4882
  localVarHeaderParameter['Accept'] = 'application/json';
2547
4883
  setSearchParams(localVarUrlObj, localVarQueryParameter);
@@ -2613,22 +4949,21 @@ export const PunishmentApiFp = function (configuration) {
2613
4949
  /**
2614
4950
  * Returns a paginated list of recent punishments with optional filtering by issue date, expiration date, and type
2615
4951
  * @summary List recent punishments
2616
- * @param {number} limit Maximum number of records to return
2617
- * @param {number} page Page number for pagination
2618
- * @param {number | null} [issuedAfter] Filter punishments issued after this epoch timestamp (milliseconds)
2619
- * @param {number | null} [issuedBefore] Filter punishments issued before this epoch timestamp (milliseconds)
2620
- * @param {number | null} [expiresAfter] Filter punishments expiring after this epoch timestamp (milliseconds)
2621
- * @param {number | null} [expiresBefore] Filter punishments expiring before this epoch timestamp (milliseconds)
2622
- * @param {Array<PunishmentType> | null} [type] Filter by punishment types
2623
- * @param {string | null} [uuid] Filter by player UUID
2624
- * @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]
2625
4960
  * @param {*} [options] Override http request option.
2626
4961
  * @throws {RequiredError}
2627
4962
  */
2628
- getRecentPunishments(limit, page, issuedAfter, issuedBefore, expiresAfter, expiresBefore, type, uuid, ipAddress, options) {
4963
+ getRecentPunishments(pageable, issuedAfter, issuedBefore, expiresAfter, expiresBefore, type, uuid, ipAddress, options) {
2629
4964
  return __awaiter(this, void 0, void 0, function* () {
2630
4965
  var _a, _b, _c;
2631
- 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);
2632
4967
  const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2633
4968
  const localVarOperationServerBasePath = (_c = (_b = operationServerMap['PunishmentApi.getRecentPunishments']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2634
4969
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
@@ -2677,20 +5012,19 @@ export const PunishmentApiFactory = function (configuration, basePath, axios) {
2677
5012
  /**
2678
5013
  * Returns a paginated list of recent punishments with optional filtering by issue date, expiration date, and type
2679
5014
  * @summary List recent punishments
2680
- * @param {number} limit Maximum number of records to return
2681
- * @param {number} page Page number for pagination
2682
- * @param {number | null} [issuedAfter] Filter punishments issued after this epoch timestamp (milliseconds)
2683
- * @param {number | null} [issuedBefore] Filter punishments issued before this epoch timestamp (milliseconds)
2684
- * @param {number | null} [expiresAfter] Filter punishments expiring after this epoch timestamp (milliseconds)
2685
- * @param {number | null} [expiresBefore] Filter punishments expiring before this epoch timestamp (milliseconds)
2686
- * @param {Array<PunishmentType> | null} [type] Filter by punishment types
2687
- * @param {string | null} [uuid] Filter by player UUID
2688
- * @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]
2689
5023
  * @param {*} [options] Override http request option.
2690
5024
  * @throws {RequiredError}
2691
5025
  */
2692
- getRecentPunishments(limit, page, issuedAfter, issuedBefore, expiresAfter, expiresBefore, type, uuid, ipAddress, options) {
2693
- 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));
2694
5028
  },
2695
5029
  };
2696
5030
  };
@@ -2733,20 +5067,117 @@ export class PunishmentApi extends BaseAPI {
2733
5067
  /**
2734
5068
  * Returns a paginated list of recent punishments with optional filtering by issue date, expiration date, and type
2735
5069
  * @summary List recent punishments
2736
- * @param {number} limit Maximum number of records to return
2737
- * @param {number} page Page number for pagination
2738
- * @param {number | null} [issuedAfter] Filter punishments issued after this epoch timestamp (milliseconds)
2739
- * @param {number | null} [issuedBefore] Filter punishments issued before this epoch timestamp (milliseconds)
2740
- * @param {number | null} [expiresAfter] Filter punishments expiring after this epoch timestamp (milliseconds)
2741
- * @param {number | null} [expiresBefore] Filter punishments expiring before this epoch timestamp (milliseconds)
2742
- * @param {Array<PunishmentType> | null} [type] Filter by punishment types
2743
- * @param {string | null} [uuid] Filter by player UUID
2744
- * @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
2745
5176
  * @param {*} [options] Override http request option.
2746
5177
  * @throws {RequiredError}
2747
5178
  */
2748
- getRecentPunishments(limit, page, issuedAfter, issuedBefore, expiresAfter, expiresBefore, type, uuid, ipAddress, options) {
2749
- 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));
2750
5181
  }
2751
5182
  }
2752
5183
  /**