@rebornteam/reborn-api 3.2.1 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/.openapi-generator/FILES +65 -4
  2. package/README.md +93 -8
  3. package/api.ts +3979 -537
  4. package/base.ts +1 -1
  5. package/common.ts +1 -1
  6. package/configuration.ts +1 -1
  7. package/dist/api.d.ts +2462 -386
  8. package/dist/api.js +2750 -361
  9. package/dist/base.d.ts +1 -1
  10. package/dist/base.js +1 -1
  11. package/dist/common.d.ts +1 -1
  12. package/dist/common.js +1 -1
  13. package/dist/configuration.d.ts +1 -1
  14. package/dist/configuration.js +1 -1
  15. package/dist/esm/api.d.ts +2462 -386
  16. package/dist/esm/api.js +2722 -353
  17. package/dist/esm/base.d.ts +1 -1
  18. package/dist/esm/base.js +1 -1
  19. package/dist/esm/common.d.ts +1 -1
  20. package/dist/esm/common.js +1 -1
  21. package/dist/esm/configuration.d.ts +1 -1
  22. package/dist/esm/configuration.js +1 -1
  23. package/dist/esm/index.d.ts +1 -1
  24. package/dist/esm/index.js +1 -1
  25. package/dist/index.d.ts +1 -1
  26. package/dist/index.js +1 -1
  27. package/docs/AdminAltAccount.md +27 -0
  28. package/docs/AdminAltExemption.md +31 -0
  29. package/docs/AdminApplyPunishmentResult.md +4 -4
  30. package/docs/AdminAsyncJob.md +47 -0
  31. package/docs/AdminAsyncJobStartResponse.md +21 -0
  32. package/docs/AdminAuditLogApi.md +141 -0
  33. package/docs/AdminAuditLogEntry.md +33 -0
  34. package/docs/AdminBulkRevokeRequest.md +25 -0
  35. package/docs/AdminBulkRevokeResponse.md +21 -0
  36. package/docs/AdminConnectionCheckResult.md +4 -0
  37. package/docs/AdminConnectionsApi.md +154 -39
  38. package/docs/AdminCreateAltExemptionRequest.md +23 -0
  39. package/docs/AdminCreatePlayerNoteRequest.md +21 -0
  40. package/docs/AdminDashboardConnectionResponse.md +4 -2
  41. package/docs/AdminJobsApi.md +175 -0
  42. package/docs/AdminPlayerDetailResponse.md +4 -4
  43. package/docs/AdminPlayerNote.md +31 -0
  44. package/docs/AdminPlayerPunishmentResponse.md +51 -0
  45. package/docs/AdminPlayerReport.md +39 -0
  46. package/docs/AdminPlayerSession.md +31 -0
  47. package/docs/AdminPlayerSessionStats.md +29 -0
  48. package/docs/AdminPlayerSummary.md +2 -4
  49. package/docs/AdminPlayersApi.md +936 -16
  50. package/docs/AdminPunishmentEvaluation.md +4 -8
  51. package/docs/AdminPunishmentsApi.md +78 -21
  52. package/docs/AdminReportTarget.md +23 -0
  53. package/docs/AdminReportsApi.md +123 -0
  54. package/docs/AdminResolveReportRequest.md +21 -0
  55. package/docs/AdminSetAggressiveModeImmunityRequest.md +21 -0
  56. package/docs/AdminTrustFactorBreakdown.md +61 -0
  57. package/docs/AdminTrustFactorHistoryEntry.md +23 -0
  58. package/docs/AdminTrustFactorImpact.md +23 -0
  59. package/docs/AdminUpdatePunishmentRequest.md +27 -0
  60. package/docs/ChatApi.md +4 -4
  61. package/docs/ConnectionApi.md +4 -4
  62. package/docs/ConnectionGetConnectionDetailsResponse.md +5 -1
  63. package/docs/ConnectionResult.md +1 -1
  64. package/docs/CreateReportRequest.md +27 -0
  65. package/docs/CreateReportResponse.md +23 -0
  66. package/docs/CursoredPageAdminAuditLogEntry.md +38 -0
  67. package/docs/CursoredPageable.md +30 -0
  68. package/docs/JobStatus.md +17 -0
  69. package/docs/PageAdminAltAccount.md +36 -0
  70. package/docs/PageAdminAltExemption.md +36 -0
  71. package/docs/PageAdminAsyncJob.md +36 -0
  72. package/docs/PageAdminAuditLogEntry.md +36 -0
  73. package/docs/PageAdminDashboardConnectionResponse.md +36 -0
  74. package/docs/PageAdminPlayerNote.md +36 -0
  75. package/docs/PageAdminPlayerPunishmentResponse.md +36 -0
  76. package/docs/PageAdminPlayerReport.md +36 -0
  77. package/docs/PageAdminPlayerSession.md +36 -0
  78. package/docs/PageAdminPlayerSummary.md +36 -0
  79. package/docs/PageAdminPunishmentListItem.md +36 -0
  80. package/docs/PagePunishmentGetPunishmentResponse.md +36 -0
  81. package/docs/Pageable.md +28 -0
  82. package/docs/PageableMode.md +12 -0
  83. package/docs/PlayerGetPlayerInformation.md +5 -3
  84. package/docs/PlayerSessionEndRequest.md +23 -0
  85. package/docs/PlayerSessionStartRequest.md +27 -0
  86. package/docs/PlayerSessionStartResponse.md +51 -0
  87. package/docs/PlayerSessionsApi.md +116 -0
  88. package/docs/PunishmentApi.md +22 -24
  89. package/docs/PunishmentSource.md +11 -0
  90. package/docs/PunishmentType.md +1 -0
  91. package/docs/ReportApi.md +64 -0
  92. package/docs/ReportCategory.md +17 -0
  93. package/docs/SliceAdminAltAccount.md +32 -0
  94. package/docs/SliceAdminAltExemption.md +32 -0
  95. package/docs/SliceAdminAsyncJob.md +32 -0
  96. package/docs/SliceAdminAuditLogEntry.md +32 -0
  97. package/docs/SliceAdminDashboardConnectionResponse.md +32 -0
  98. package/docs/SliceAdminPlayerNote.md +32 -0
  99. package/docs/SliceAdminPlayerPunishmentResponse.md +32 -0
  100. package/docs/SliceAdminPlayerReport.md +32 -0
  101. package/docs/SliceAdminPlayerSession.md +32 -0
  102. package/docs/SliceAdminPlayerSummary.md +32 -0
  103. package/docs/SliceAdminPunishmentListItem.md +32 -0
  104. package/docs/SlicePunishmentGetPunishmentResponse.md +32 -0
  105. package/docs/Sort.md +20 -0
  106. package/docs/SortOrder.md +26 -0
  107. package/docs/SortOrderDirection.md +10 -0
  108. package/index.ts +1 -1
  109. package/package.json +1 -1
  110. package/docs/AdminBackfillLocationResponse.md +0 -25
  111. package/docs/AdminPagedConnectionResponse.md +0 -29
  112. package/docs/AdminPagedPlayerResponse.md +0 -29
  113. package/docs/AdminPagedPunishmentResponse.md +0 -29
package/dist/api.js CHANGED
@@ -5,7 +5,7 @@
5
5
  * Reborn API
6
6
  * 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
7
7
  *
8
- * The version of the OpenAPI document: 3.2.1
8
+ * The version of the OpenAPI document: 4.0.0
9
9
  *
10
10
  *
11
11
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -22,8 +22,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
22
22
  });
23
23
  };
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.ServerSessionsApiFactory = exports.ServerSessionsApiFp = exports.ServerSessionsApiAxiosParamCreator = exports.PunishmentApi = exports.PunishmentApiFactory = exports.PunishmentApiFp = exports.PunishmentApiAxiosParamCreator = exports.PlayerApi = exports.PlayerApiFactory = exports.PlayerApiFp = exports.PlayerApiAxiosParamCreator = exports.ConnectionApi = exports.ConnectionApiFactory = exports.ConnectionApiFp = exports.ConnectionApiAxiosParamCreator = exports.ChatApi = exports.ChatApiFactory = exports.ChatApiFp = exports.ChatApiAxiosParamCreator = exports.AuthenticationApi = exports.AuthenticationApiFactory = exports.AuthenticationApiFp = exports.AuthenticationApiAxiosParamCreator = exports.AdminPunishmentsApi = exports.AdminPunishmentsApiFactory = exports.AdminPunishmentsApiFp = exports.AdminPunishmentsApiAxiosParamCreator = exports.AdminPlayersApi = exports.AdminPlayersApiFactory = exports.AdminPlayersApiFp = exports.AdminPlayersApiAxiosParamCreator = exports.AdminDashboardApi = exports.AdminDashboardApiFactory = exports.AdminDashboardApiFp = exports.AdminDashboardApiAxiosParamCreator = exports.AdminConnectionsApi = exports.AdminConnectionsApiFactory = exports.AdminConnectionsApiFp = exports.AdminConnectionsApiAxiosParamCreator = exports.AdminClientCredentialsApi = exports.AdminClientCredentialsApiFactory = exports.AdminClientCredentialsApiFp = exports.AdminClientCredentialsApiAxiosParamCreator = exports.SearchKind = exports.Region = exports.Rank = exports.PunishmentType = exports.PunishmentTargetType = exports.GameType = exports.ConnectionResultResultCode = void 0;
26
- exports.ServerSessionsApi = void 0;
25
+ exports.ChatApiFp = exports.ChatApiAxiosParamCreator = exports.AuthenticationApi = exports.AuthenticationApiFactory = exports.AuthenticationApiFp = exports.AuthenticationApiAxiosParamCreator = exports.AdminReportsApi = exports.AdminReportsApiFactory = exports.AdminReportsApiFp = exports.AdminReportsApiAxiosParamCreator = exports.AdminPunishmentsApi = exports.AdminPunishmentsApiFactory = exports.AdminPunishmentsApiFp = exports.AdminPunishmentsApiAxiosParamCreator = exports.AdminPlayersApi = exports.AdminPlayersApiFactory = exports.AdminPlayersApiFp = exports.AdminPlayersApiAxiosParamCreator = exports.AdminJobsApi = exports.AdminJobsApiFactory = exports.AdminJobsApiFp = exports.AdminJobsApiAxiosParamCreator = exports.AdminDashboardApi = exports.AdminDashboardApiFactory = exports.AdminDashboardApiFp = exports.AdminDashboardApiAxiosParamCreator = exports.AdminConnectionsApi = exports.AdminConnectionsApiFactory = exports.AdminConnectionsApiFp = exports.AdminConnectionsApiAxiosParamCreator = exports.AdminClientCredentialsApi = exports.AdminClientCredentialsApiFactory = exports.AdminClientCredentialsApiFp = exports.AdminClientCredentialsApiAxiosParamCreator = exports.AdminAuditLogApi = exports.AdminAuditLogApiFactory = exports.AdminAuditLogApiFp = exports.AdminAuditLogApiAxiosParamCreator = exports.SortOrderDirection = exports.SearchKind = exports.ReportCategory = exports.Region = exports.Rank = exports.PunishmentType = exports.PunishmentTargetType = exports.PunishmentSource = exports.PageableMode = exports.JobStatus = exports.GameType = exports.ConnectionResultResultCode = void 0;
26
+ exports.ServerSessionsApi = exports.ServerSessionsApiFactory = exports.ServerSessionsApiFp = exports.ServerSessionsApiAxiosParamCreator = exports.ReportApi = exports.ReportApiFactory = exports.ReportApiFp = exports.ReportApiAxiosParamCreator = exports.PunishmentApi = exports.PunishmentApiFactory = exports.PunishmentApiFp = exports.PunishmentApiAxiosParamCreator = exports.PlayerSessionsApi = exports.PlayerSessionsApiFactory = exports.PlayerSessionsApiFp = exports.PlayerSessionsApiAxiosParamCreator = exports.PlayerApi = exports.PlayerApiFactory = exports.PlayerApiFp = exports.PlayerApiAxiosParamCreator = exports.ConnectionApi = exports.ConnectionApiFactory = exports.ConnectionApiFp = exports.ConnectionApiAxiosParamCreator = exports.ChatApi = exports.ChatApiFactory = void 0;
27
27
  const axios_1 = require("axios");
28
28
  // Some imports not used depending on template conditions
29
29
  // @ts-ignore
@@ -44,10 +44,35 @@ exports.GameType = {
44
44
  Legacy: 'LEGACY',
45
45
  Classic: 'CLASSIC'
46
46
  };
47
+ /**
48
+ * Current lifecycle state.
49
+ */
50
+ exports.JobStatus = {
51
+ Queued: 'QUEUED',
52
+ Running: 'RUNNING',
53
+ Completed: 'COMPLETED',
54
+ Failed: 'FAILED',
55
+ Cancelled: 'CANCELLED'
56
+ };
57
+ exports.PageableMode = {
58
+ CursorNext: 'CURSOR_NEXT',
59
+ CursorPrevious: 'CURSOR_PREVIOUS',
60
+ Offset: 'OFFSET'
61
+ };
62
+ /**
63
+ * 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.
64
+ */
65
+ exports.PunishmentSource = {
66
+ Direct: 'DIRECT',
67
+ Propagated: 'PROPAGATED'
68
+ };
47
69
  exports.PunishmentTargetType = {
48
70
  Player: 'PLAYER',
49
71
  Connection: 'CONNECTION'
50
72
  };
73
+ /**
74
+ * Type of punishment
75
+ */
51
76
  exports.PunishmentType = {
52
77
  Ban: 'BAN',
53
78
  Mute: 'MUTE',
@@ -63,6 +88,16 @@ exports.Region = {
63
88
  Eu: 'EU',
64
89
  Au: 'AU'
65
90
  };
91
+ /**
92
+ * Category of misconduct. Coarse on purpose — staff refine in triage.
93
+ */
94
+ exports.ReportCategory = {
95
+ Cheating: 'CHEATING',
96
+ Harassment: 'HARASSMENT',
97
+ ChatAbuse: 'CHAT_ABUSE',
98
+ Griefing: 'GRIEFING',
99
+ Other: 'OTHER'
100
+ };
66
101
  /**
67
102
  * Search kind — PLAYER for UUID/username searches, IP for IP address searches
68
103
  */
@@ -70,6 +105,240 @@ exports.SearchKind = {
70
105
  Player: 'PLAYER',
71
106
  Ip: 'IP'
72
107
  };
108
+ exports.SortOrderDirection = {
109
+ Asc: 'ASC',
110
+ Desc: 'DESC'
111
+ };
112
+ /**
113
+ * AdminAuditLogApi - axios parameter creator
114
+ */
115
+ const AdminAuditLogApiAxiosParamCreator = function (configuration) {
116
+ return {
117
+ /**
118
+ * Paginated audit-log search. All filter parameters are optional; an empty filter set returns the most recent rows across the system. Sorted newest-first.
119
+ * @summary Search the admin audit log
120
+ * @param {Pageable} pageable
121
+ * @param {string | null} [actor] Filter to actions performed by this Discord username (case-sensitive exact match)
122
+ * @param {string | null} [action] Filter to a specific action verb (e.g. REVOKE_PROPAGATED_LINK, SET_AGGRESSIVE_MODE_IMMUNITY)
123
+ * @param {string | null} [targetType] Filter to a specific target type (e.g. PLAYER, PUNISHMENT, PLAYER_PUNISHMENT)
124
+ * @param {string | null} [targetId] Filter to a specific target id (paired with targetType for narrowing)
125
+ * @param {*} [options] Override http request option.
126
+ * @throws {RequiredError}
127
+ */
128
+ 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 = {}) {
129
+ // verify required parameter 'pageable' is not null or undefined
130
+ (0, common_1.assertParamExists)('search', 'pageable', pageable);
131
+ const localVarPath = `/admin/audit-log`;
132
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
133
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
134
+ let baseOptions;
135
+ if (configuration) {
136
+ baseOptions = configuration.baseOptions;
137
+ }
138
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
139
+ const localVarHeaderParameter = {};
140
+ const localVarQueryParameter = {};
141
+ // authentication DiscordAuth required
142
+ // http bearer authentication required
143
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
144
+ if (actor !== undefined) {
145
+ localVarQueryParameter['actor'] = actor;
146
+ }
147
+ if (action !== undefined) {
148
+ localVarQueryParameter['action'] = action;
149
+ }
150
+ if (targetType !== undefined) {
151
+ localVarQueryParameter['targetType'] = targetType;
152
+ }
153
+ if (targetId !== undefined) {
154
+ localVarQueryParameter['targetId'] = targetId;
155
+ }
156
+ if (pageable !== undefined) {
157
+ localVarQueryParameter['pageable'] = pageable;
158
+ }
159
+ localVarHeaderParameter['Accept'] = 'application/json';
160
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
161
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
162
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
163
+ return {
164
+ url: (0, common_1.toPathString)(localVarUrlObj),
165
+ options: localVarRequestOptions,
166
+ };
167
+ }),
168
+ /**
169
+ * 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.
170
+ * @summary Cursor-paginated audit-log search (infinite scroll)
171
+ * @param {CursoredPageable} pageable
172
+ * @param {string | null} [actor]
173
+ * @param {string | null} [action]
174
+ * @param {string | null} [targetType]
175
+ * @param {string | null} [targetId]
176
+ * @param {*} [options] Override http request option.
177
+ * @throws {RequiredError}
178
+ */
179
+ 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 = {}) {
180
+ // verify required parameter 'pageable' is not null or undefined
181
+ (0, common_1.assertParamExists)('searchCursor', 'pageable', pageable);
182
+ const localVarPath = `/admin/audit-log/cursor`;
183
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
184
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
185
+ let baseOptions;
186
+ if (configuration) {
187
+ baseOptions = configuration.baseOptions;
188
+ }
189
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
190
+ const localVarHeaderParameter = {};
191
+ const localVarQueryParameter = {};
192
+ // authentication DiscordAuth required
193
+ // http bearer authentication required
194
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
195
+ if (actor !== undefined) {
196
+ localVarQueryParameter['actor'] = actor;
197
+ }
198
+ if (action !== undefined) {
199
+ localVarQueryParameter['action'] = action;
200
+ }
201
+ if (targetType !== undefined) {
202
+ localVarQueryParameter['targetType'] = targetType;
203
+ }
204
+ if (targetId !== undefined) {
205
+ localVarQueryParameter['targetId'] = targetId;
206
+ }
207
+ if (pageable !== undefined) {
208
+ localVarQueryParameter['pageable'] = pageable;
209
+ }
210
+ localVarHeaderParameter['Accept'] = 'application/json';
211
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
212
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
213
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
214
+ return {
215
+ url: (0, common_1.toPathString)(localVarUrlObj),
216
+ options: localVarRequestOptions,
217
+ };
218
+ }),
219
+ };
220
+ };
221
+ exports.AdminAuditLogApiAxiosParamCreator = AdminAuditLogApiAxiosParamCreator;
222
+ /**
223
+ * AdminAuditLogApi - functional programming interface
224
+ */
225
+ const AdminAuditLogApiFp = function (configuration) {
226
+ const localVarAxiosParamCreator = (0, exports.AdminAuditLogApiAxiosParamCreator)(configuration);
227
+ return {
228
+ /**
229
+ * Paginated audit-log search. All filter parameters are optional; an empty filter set returns the most recent rows across the system. Sorted newest-first.
230
+ * @summary Search the admin audit log
231
+ * @param {Pageable} pageable
232
+ * @param {string | null} [actor] Filter to actions performed by this Discord username (case-sensitive exact match)
233
+ * @param {string | null} [action] Filter to a specific action verb (e.g. REVOKE_PROPAGATED_LINK, SET_AGGRESSIVE_MODE_IMMUNITY)
234
+ * @param {string | null} [targetType] Filter to a specific target type (e.g. PLAYER, PUNISHMENT, PLAYER_PUNISHMENT)
235
+ * @param {string | null} [targetId] Filter to a specific target id (paired with targetType for narrowing)
236
+ * @param {*} [options] Override http request option.
237
+ * @throws {RequiredError}
238
+ */
239
+ search(pageable, actor, action, targetType, targetId, options) {
240
+ return __awaiter(this, void 0, void 0, function* () {
241
+ var _a, _b, _c;
242
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.search(pageable, actor, action, targetType, targetId, options);
243
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
244
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminAuditLogApi.search']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
245
+ return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
246
+ });
247
+ },
248
+ /**
249
+ * 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.
250
+ * @summary Cursor-paginated audit-log search (infinite scroll)
251
+ * @param {CursoredPageable} pageable
252
+ * @param {string | null} [actor]
253
+ * @param {string | null} [action]
254
+ * @param {string | null} [targetType]
255
+ * @param {string | null} [targetId]
256
+ * @param {*} [options] Override http request option.
257
+ * @throws {RequiredError}
258
+ */
259
+ searchCursor(pageable, actor, action, targetType, targetId, options) {
260
+ return __awaiter(this, void 0, void 0, function* () {
261
+ var _a, _b, _c;
262
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.searchCursor(pageable, actor, action, targetType, targetId, options);
263
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
264
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminAuditLogApi.searchCursor']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
265
+ return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
266
+ });
267
+ },
268
+ };
269
+ };
270
+ exports.AdminAuditLogApiFp = AdminAuditLogApiFp;
271
+ /**
272
+ * AdminAuditLogApi - factory interface
273
+ */
274
+ const AdminAuditLogApiFactory = function (configuration, basePath, axios) {
275
+ const localVarFp = (0, exports.AdminAuditLogApiFp)(configuration);
276
+ return {
277
+ /**
278
+ * Paginated audit-log search. All filter parameters are optional; an empty filter set returns the most recent rows across the system. Sorted newest-first.
279
+ * @summary Search the admin audit log
280
+ * @param {Pageable} pageable
281
+ * @param {string | null} [actor] Filter to actions performed by this Discord username (case-sensitive exact match)
282
+ * @param {string | null} [action] Filter to a specific action verb (e.g. REVOKE_PROPAGATED_LINK, SET_AGGRESSIVE_MODE_IMMUNITY)
283
+ * @param {string | null} [targetType] Filter to a specific target type (e.g. PLAYER, PUNISHMENT, PLAYER_PUNISHMENT)
284
+ * @param {string | null} [targetId] Filter to a specific target id (paired with targetType for narrowing)
285
+ * @param {*} [options] Override http request option.
286
+ * @throws {RequiredError}
287
+ */
288
+ search(pageable, actor, action, targetType, targetId, options) {
289
+ return localVarFp.search(pageable, actor, action, targetType, targetId, options).then((request) => request(axios, basePath));
290
+ },
291
+ /**
292
+ * 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.
293
+ * @summary Cursor-paginated audit-log search (infinite scroll)
294
+ * @param {CursoredPageable} pageable
295
+ * @param {string | null} [actor]
296
+ * @param {string | null} [action]
297
+ * @param {string | null} [targetType]
298
+ * @param {string | null} [targetId]
299
+ * @param {*} [options] Override http request option.
300
+ * @throws {RequiredError}
301
+ */
302
+ searchCursor(pageable, actor, action, targetType, targetId, options) {
303
+ return localVarFp.searchCursor(pageable, actor, action, targetType, targetId, options).then((request) => request(axios, basePath));
304
+ },
305
+ };
306
+ };
307
+ exports.AdminAuditLogApiFactory = AdminAuditLogApiFactory;
308
+ /**
309
+ * AdminAuditLogApi - object-oriented interface
310
+ */
311
+ class AdminAuditLogApi extends base_1.BaseAPI {
312
+ /**
313
+ * Paginated audit-log search. All filter parameters are optional; an empty filter set returns the most recent rows across the system. Sorted newest-first.
314
+ * @summary Search the admin audit log
315
+ * @param {Pageable} pageable
316
+ * @param {string | null} [actor] Filter to actions performed by this Discord username (case-sensitive exact match)
317
+ * @param {string | null} [action] Filter to a specific action verb (e.g. REVOKE_PROPAGATED_LINK, SET_AGGRESSIVE_MODE_IMMUNITY)
318
+ * @param {string | null} [targetType] Filter to a specific target type (e.g. PLAYER, PUNISHMENT, PLAYER_PUNISHMENT)
319
+ * @param {string | null} [targetId] Filter to a specific target id (paired with targetType for narrowing)
320
+ * @param {*} [options] Override http request option.
321
+ * @throws {RequiredError}
322
+ */
323
+ search(pageable, actor, action, targetType, targetId, options) {
324
+ return (0, exports.AdminAuditLogApiFp)(this.configuration).search(pageable, actor, action, targetType, targetId, options).then((request) => request(this.axios, this.basePath));
325
+ }
326
+ /**
327
+ * 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.
328
+ * @summary Cursor-paginated audit-log search (infinite scroll)
329
+ * @param {CursoredPageable} pageable
330
+ * @param {string | null} [actor]
331
+ * @param {string | null} [action]
332
+ * @param {string | null} [targetType]
333
+ * @param {string | null} [targetId]
334
+ * @param {*} [options] Override http request option.
335
+ * @throws {RequiredError}
336
+ */
337
+ searchCursor(pageable, actor, action, targetType, targetId, options) {
338
+ return (0, exports.AdminAuditLogApiFp)(this.configuration).searchCursor(pageable, actor, action, targetType, targetId, options).then((request) => request(this.axios, this.basePath));
339
+ }
340
+ }
341
+ exports.AdminAuditLogApi = AdminAuditLogApi;
73
342
  /**
74
343
  * AdminClientCredentialsApi - axios parameter creator
75
344
  */
@@ -590,8 +859,8 @@ exports.AdminClientCredentialsApi = AdminClientCredentialsApi;
590
859
  const AdminConnectionsApiAxiosParamCreator = function (configuration) {
591
860
  return {
592
861
  /**
593
- * Iterates every connection_check row where both city and country are NULL and re-runs that row\'s source VPN service to populate location data. Concurrency is capped to avoid overwhelming external providers. Synchronous returns once the run completes.
594
- * @summary Backfill missing location data
862
+ * 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.
863
+ * @summary Start a location backfill job
595
864
  * @param {*} [options] Override http request option.
596
865
  * @throws {RequiredError}
597
866
  */
@@ -652,18 +921,93 @@ const AdminConnectionsApiAxiosParamCreator = function (configuration) {
652
921
  options: localVarRequestOptions,
653
922
  };
654
923
  }),
924
+ /**
925
+ * Single connection by id, enriched with VPN check results and bypass status — same shape as the dashboard list row.
926
+ * @summary Get connection detail
927
+ * @param {number} id
928
+ * @param {*} [options] Override http request option.
929
+ * @throws {RequiredError}
930
+ */
931
+ getConnection: (id_1, ...args_1) => __awaiter(this, [id_1, ...args_1], void 0, function* (id, options = {}) {
932
+ // verify required parameter 'id' is not null or undefined
933
+ (0, common_1.assertParamExists)('getConnection', 'id', id);
934
+ const localVarPath = `/admin/connection/{id}`
935
+ .replace(`{${"id"}}`, encodeURIComponent(String(id)));
936
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
937
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
938
+ let baseOptions;
939
+ if (configuration) {
940
+ baseOptions = configuration.baseOptions;
941
+ }
942
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
943
+ const localVarHeaderParameter = {};
944
+ const localVarQueryParameter = {};
945
+ // authentication DiscordAuth required
946
+ // http bearer authentication required
947
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
948
+ localVarHeaderParameter['Accept'] = 'application/json';
949
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
950
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
951
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
952
+ return {
953
+ url: (0, common_1.toPathString)(localVarUrlObj),
954
+ options: localVarRequestOptions,
955
+ };
956
+ }),
957
+ /**
958
+ * 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.
959
+ * @summary List players who have used this connection
960
+ * @param {number} id
961
+ * @param {Pageable} pageable
962
+ * @param {*} [options] Override http request option.
963
+ * @throws {RequiredError}
964
+ */
965
+ getConnectionPlayers: (id_1, pageable_1, ...args_1) => __awaiter(this, [id_1, pageable_1, ...args_1], void 0, function* (id, pageable, options = {}) {
966
+ // verify required parameter 'id' is not null or undefined
967
+ (0, common_1.assertParamExists)('getConnectionPlayers', 'id', id);
968
+ // verify required parameter 'pageable' is not null or undefined
969
+ (0, common_1.assertParamExists)('getConnectionPlayers', 'pageable', pageable);
970
+ const localVarPath = `/admin/connection/{id}/players`
971
+ .replace(`{${"id"}}`, encodeURIComponent(String(id)));
972
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
973
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
974
+ let baseOptions;
975
+ if (configuration) {
976
+ baseOptions = configuration.baseOptions;
977
+ }
978
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
979
+ const localVarHeaderParameter = {};
980
+ const localVarQueryParameter = {};
981
+ // authentication DiscordAuth required
982
+ // http bearer authentication required
983
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
984
+ if (pageable !== undefined) {
985
+ localVarQueryParameter['pageable'] = pageable;
986
+ }
987
+ localVarHeaderParameter['Accept'] = 'application/json';
988
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
989
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
990
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
991
+ return {
992
+ url: (0, common_1.toPathString)(localVarUrlObj),
993
+ options: localVarRequestOptions,
994
+ };
995
+ }),
655
996
  /**
656
997
  * Returns a paginated list of all connections with a total count. Supports filtering by IP address, UUID, and VPN status.
657
998
  * @summary List all connections (paginated)
658
- * @param {string | null} [ipAddress] Filter by IP address
659
- * @param {string | null} [uuid] Filter by player UUID
660
- * @param {boolean | null} [isVpn] Filter by VPN status
661
- * @param {number | null} [page] Page number (1-indexed)
662
- * @param {number | null} [limit] Page size
999
+ * @param {Pageable} pageable
1000
+ * @param {number | null} [createdAfter]
1001
+ * @param {number | null} [createdBefore]
1002
+ * @param {string | null} [ipAddress]
1003
+ * @param {string | null} [uuid]
1004
+ * @param {boolean | null} [isVpn]
663
1005
  * @param {*} [options] Override http request option.
664
1006
  * @throws {RequiredError}
665
1007
  */
666
- 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 = {}) {
1008
+ 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 = {}) {
1009
+ // verify required parameter 'pageable' is not null or undefined
1010
+ (0, common_1.assertParamExists)('listAllConnections', 'pageable', pageable);
667
1011
  const localVarPath = `/admin/connection`;
668
1012
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
669
1013
  const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
@@ -677,6 +1021,12 @@ const AdminConnectionsApiAxiosParamCreator = function (configuration) {
677
1021
  // authentication DiscordAuth required
678
1022
  // http bearer authentication required
679
1023
  yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
1024
+ if (createdAfter !== undefined) {
1025
+ localVarQueryParameter['createdAfter'] = createdAfter;
1026
+ }
1027
+ if (createdBefore !== undefined) {
1028
+ localVarQueryParameter['createdBefore'] = createdBefore;
1029
+ }
680
1030
  if (ipAddress !== undefined) {
681
1031
  localVarQueryParameter['ipAddress'] = ipAddress;
682
1032
  }
@@ -686,11 +1036,8 @@ const AdminConnectionsApiAxiosParamCreator = function (configuration) {
686
1036
  if (isVpn !== undefined) {
687
1037
  localVarQueryParameter['isVpn'] = isVpn;
688
1038
  }
689
- if (page !== undefined) {
690
- localVarQueryParameter['page'] = page;
691
- }
692
- if (limit !== undefined) {
693
- localVarQueryParameter['limit'] = limit;
1039
+ if (pageable !== undefined) {
1040
+ localVarQueryParameter['pageable'] = pageable;
694
1041
  }
695
1042
  localVarHeaderParameter['Accept'] = 'application/json';
696
1043
  (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
@@ -704,17 +1051,18 @@ const AdminConnectionsApiAxiosParamCreator = function (configuration) {
704
1051
  /**
705
1052
  * 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).
706
1053
  * @summary List recent connections
707
- * @param {number | null} [createdAfter] Filter connections after this epoch timestamp in milliseconds
708
- * @param {number | null} [createdBefore] Filter connections before this epoch timestamp in milliseconds
709
- * @param {string | null} [ipAddress] Filter by IP address
710
- * @param {string | null} [uuid] Filter by player UUID
711
- * @param {boolean | null} [isVpn] Filter by VPN status (true=VPN, false=not VPN)
712
- * @param {number | null} [page] Page number for pagination
713
- * @param {number | null} [limit] Maximum number of records to return
1054
+ * @param {Pageable} pageable
1055
+ * @param {number | null} [createdAfter]
1056
+ * @param {number | null} [createdBefore]
1057
+ * @param {string | null} [ipAddress]
1058
+ * @param {string | null} [uuid]
1059
+ * @param {boolean | null} [isVpn]
714
1060
  * @param {*} [options] Override http request option.
715
1061
  * @throws {RequiredError}
716
1062
  */
717
- 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 = {}) {
1063
+ 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 = {}) {
1064
+ // verify required parameter 'pageable' is not null or undefined
1065
+ (0, common_1.assertParamExists)('listConnections', 'pageable', pageable);
718
1066
  const localVarPath = `/admin/connection/recent`;
719
1067
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
720
1068
  const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
@@ -743,11 +1091,8 @@ const AdminConnectionsApiAxiosParamCreator = function (configuration) {
743
1091
  if (isVpn !== undefined) {
744
1092
  localVarQueryParameter['isVpn'] = isVpn;
745
1093
  }
746
- if (page !== undefined) {
747
- localVarQueryParameter['page'] = page;
748
- }
749
- if (limit !== undefined) {
750
- localVarQueryParameter['limit'] = limit;
1094
+ if (pageable !== undefined) {
1095
+ localVarQueryParameter['pageable'] = pageable;
751
1096
  }
752
1097
  localVarHeaderParameter['Accept'] = 'application/json';
753
1098
  (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
@@ -805,8 +1150,8 @@ const AdminConnectionsApiFp = function (configuration) {
805
1150
  const localVarAxiosParamCreator = (0, exports.AdminConnectionsApiAxiosParamCreator)(configuration);
806
1151
  return {
807
1152
  /**
808
- * Iterates every connection_check row where both city and country are NULL and re-runs that row\'s source VPN service to populate location data. Concurrency is capped to avoid overwhelming external providers. Synchronous returns once the run completes.
809
- * @summary Backfill missing location data
1153
+ * 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.
1154
+ * @summary Start a location backfill job
810
1155
  * @param {*} [options] Override http request option.
811
1156
  * @throws {RequiredError}
812
1157
  */
@@ -835,21 +1180,55 @@ const AdminConnectionsApiFp = function (configuration) {
835
1180
  return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
836
1181
  });
837
1182
  },
1183
+ /**
1184
+ * Single connection by id, enriched with VPN check results and bypass status — same shape as the dashboard list row.
1185
+ * @summary Get connection detail
1186
+ * @param {number} id
1187
+ * @param {*} [options] Override http request option.
1188
+ * @throws {RequiredError}
1189
+ */
1190
+ getConnection(id, options) {
1191
+ return __awaiter(this, void 0, void 0, function* () {
1192
+ var _a, _b, _c;
1193
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.getConnection(id, options);
1194
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
1195
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminConnectionsApi.getConnection']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
1196
+ return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1197
+ });
1198
+ },
1199
+ /**
1200
+ * 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.
1201
+ * @summary List players who have used this connection
1202
+ * @param {number} id
1203
+ * @param {Pageable} pageable
1204
+ * @param {*} [options] Override http request option.
1205
+ * @throws {RequiredError}
1206
+ */
1207
+ getConnectionPlayers(id, pageable, options) {
1208
+ return __awaiter(this, void 0, void 0, function* () {
1209
+ var _a, _b, _c;
1210
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.getConnectionPlayers(id, pageable, options);
1211
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
1212
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminConnectionsApi.getConnectionPlayers']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
1213
+ return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1214
+ });
1215
+ },
838
1216
  /**
839
1217
  * Returns a paginated list of all connections with a total count. Supports filtering by IP address, UUID, and VPN status.
840
1218
  * @summary List all connections (paginated)
841
- * @param {string | null} [ipAddress] Filter by IP address
842
- * @param {string | null} [uuid] Filter by player UUID
843
- * @param {boolean | null} [isVpn] Filter by VPN status
844
- * @param {number | null} [page] Page number (1-indexed)
845
- * @param {number | null} [limit] Page size
1219
+ * @param {Pageable} pageable
1220
+ * @param {number | null} [createdAfter]
1221
+ * @param {number | null} [createdBefore]
1222
+ * @param {string | null} [ipAddress]
1223
+ * @param {string | null} [uuid]
1224
+ * @param {boolean | null} [isVpn]
846
1225
  * @param {*} [options] Override http request option.
847
1226
  * @throws {RequiredError}
848
1227
  */
849
- listAllConnections(ipAddress, uuid, isVpn, page, limit, options) {
1228
+ listAllConnections(pageable, createdAfter, createdBefore, ipAddress, uuid, isVpn, options) {
850
1229
  return __awaiter(this, void 0, void 0, function* () {
851
1230
  var _a, _b, _c;
852
- const localVarAxiosArgs = yield localVarAxiosParamCreator.listAllConnections(ipAddress, uuid, isVpn, page, limit, options);
1231
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.listAllConnections(pageable, createdAfter, createdBefore, ipAddress, uuid, isVpn, options);
853
1232
  const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
854
1233
  const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminConnectionsApi.listAllConnections']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
855
1234
  return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
@@ -858,20 +1237,19 @@ const AdminConnectionsApiFp = function (configuration) {
858
1237
  /**
859
1238
  * 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).
860
1239
  * @summary List recent connections
861
- * @param {number | null} [createdAfter] Filter connections after this epoch timestamp in milliseconds
862
- * @param {number | null} [createdBefore] Filter connections before this epoch timestamp in milliseconds
863
- * @param {string | null} [ipAddress] Filter by IP address
864
- * @param {string | null} [uuid] Filter by player UUID
865
- * @param {boolean | null} [isVpn] Filter by VPN status (true=VPN, false=not VPN)
866
- * @param {number | null} [page] Page number for pagination
867
- * @param {number | null} [limit] Maximum number of records to return
1240
+ * @param {Pageable} pageable
1241
+ * @param {number | null} [createdAfter]
1242
+ * @param {number | null} [createdBefore]
1243
+ * @param {string | null} [ipAddress]
1244
+ * @param {string | null} [uuid]
1245
+ * @param {boolean | null} [isVpn]
868
1246
  * @param {*} [options] Override http request option.
869
1247
  * @throws {RequiredError}
870
1248
  */
871
- listConnections(createdAfter, createdBefore, ipAddress, uuid, isVpn, page, limit, options) {
1249
+ listConnections(pageable, createdAfter, createdBefore, ipAddress, uuid, isVpn, options) {
872
1250
  return __awaiter(this, void 0, void 0, function* () {
873
1251
  var _a, _b, _c;
874
- const localVarAxiosArgs = yield localVarAxiosParamCreator.listConnections(createdAfter, createdBefore, ipAddress, uuid, isVpn, page, limit, options);
1252
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.listConnections(pageable, createdAfter, createdBefore, ipAddress, uuid, isVpn, options);
875
1253
  const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
876
1254
  const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminConnectionsApi.listConnections']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
877
1255
  return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
@@ -904,8 +1282,8 @@ const AdminConnectionsApiFactory = function (configuration, basePath, axios) {
904
1282
  const localVarFp = (0, exports.AdminConnectionsApiFp)(configuration);
905
1283
  return {
906
1284
  /**
907
- * Iterates every connection_check row where both city and country are NULL and re-runs that row\'s source VPN service to populate location data. Concurrency is capped to avoid overwhelming external providers. Synchronous returns once the run completes.
908
- * @summary Backfill missing location data
1285
+ * 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.
1286
+ * @summary Start a location backfill job
909
1287
  * @param {*} [options] Override http request option.
910
1288
  * @throws {RequiredError}
911
1289
  */
@@ -922,35 +1300,56 @@ const AdminConnectionsApiFactory = function (configuration, basePath, axios) {
922
1300
  createBypass(createBypassRequest, options) {
923
1301
  return localVarFp.createBypass(createBypassRequest, options).then((request) => request(axios, basePath));
924
1302
  },
1303
+ /**
1304
+ * Single connection by id, enriched with VPN check results and bypass status — same shape as the dashboard list row.
1305
+ * @summary Get connection detail
1306
+ * @param {number} id
1307
+ * @param {*} [options] Override http request option.
1308
+ * @throws {RequiredError}
1309
+ */
1310
+ getConnection(id, options) {
1311
+ return localVarFp.getConnection(id, options).then((request) => request(axios, basePath));
1312
+ },
1313
+ /**
1314
+ * 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.
1315
+ * @summary List players who have used this connection
1316
+ * @param {number} id
1317
+ * @param {Pageable} pageable
1318
+ * @param {*} [options] Override http request option.
1319
+ * @throws {RequiredError}
1320
+ */
1321
+ getConnectionPlayers(id, pageable, options) {
1322
+ return localVarFp.getConnectionPlayers(id, pageable, options).then((request) => request(axios, basePath));
1323
+ },
925
1324
  /**
926
1325
  * Returns a paginated list of all connections with a total count. Supports filtering by IP address, UUID, and VPN status.
927
1326
  * @summary List all connections (paginated)
928
- * @param {string | null} [ipAddress] Filter by IP address
929
- * @param {string | null} [uuid] Filter by player UUID
930
- * @param {boolean | null} [isVpn] Filter by VPN status
931
- * @param {number | null} [page] Page number (1-indexed)
932
- * @param {number | null} [limit] Page size
1327
+ * @param {Pageable} pageable
1328
+ * @param {number | null} [createdAfter]
1329
+ * @param {number | null} [createdBefore]
1330
+ * @param {string | null} [ipAddress]
1331
+ * @param {string | null} [uuid]
1332
+ * @param {boolean | null} [isVpn]
933
1333
  * @param {*} [options] Override http request option.
934
1334
  * @throws {RequiredError}
935
1335
  */
936
- listAllConnections(ipAddress, uuid, isVpn, page, limit, options) {
937
- return localVarFp.listAllConnections(ipAddress, uuid, isVpn, page, limit, options).then((request) => request(axios, basePath));
1336
+ listAllConnections(pageable, createdAfter, createdBefore, ipAddress, uuid, isVpn, options) {
1337
+ return localVarFp.listAllConnections(pageable, createdAfter, createdBefore, ipAddress, uuid, isVpn, options).then((request) => request(axios, basePath));
938
1338
  },
939
1339
  /**
940
1340
  * 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).
941
1341
  * @summary List recent connections
942
- * @param {number | null} [createdAfter] Filter connections after this epoch timestamp in milliseconds
943
- * @param {number | null} [createdBefore] Filter connections before this epoch timestamp in milliseconds
944
- * @param {string | null} [ipAddress] Filter by IP address
945
- * @param {string | null} [uuid] Filter by player UUID
946
- * @param {boolean | null} [isVpn] Filter by VPN status (true=VPN, false=not VPN)
947
- * @param {number | null} [page] Page number for pagination
948
- * @param {number | null} [limit] Maximum number of records to return
1342
+ * @param {Pageable} pageable
1343
+ * @param {number | null} [createdAfter]
1344
+ * @param {number | null} [createdBefore]
1345
+ * @param {string | null} [ipAddress]
1346
+ * @param {string | null} [uuid]
1347
+ * @param {boolean | null} [isVpn]
949
1348
  * @param {*} [options] Override http request option.
950
1349
  * @throws {RequiredError}
951
1350
  */
952
- listConnections(createdAfter, createdBefore, ipAddress, uuid, isVpn, page, limit, options) {
953
- return localVarFp.listConnections(createdAfter, createdBefore, ipAddress, uuid, isVpn, page, limit, options).then((request) => request(axios, basePath));
1351
+ listConnections(pageable, createdAfter, createdBefore, ipAddress, uuid, isVpn, options) {
1352
+ return localVarFp.listConnections(pageable, createdAfter, createdBefore, ipAddress, uuid, isVpn, options).then((request) => request(axios, basePath));
954
1353
  },
955
1354
  /**
956
1355
  * 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.
@@ -971,8 +1370,8 @@ exports.AdminConnectionsApiFactory = AdminConnectionsApiFactory;
971
1370
  */
972
1371
  class AdminConnectionsApi extends base_1.BaseAPI {
973
1372
  /**
974
- * Iterates every connection_check row where both city and country are NULL and re-runs that row\'s source VPN service to populate location data. Concurrency is capped to avoid overwhelming external providers. Synchronous returns once the run completes.
975
- * @summary Backfill missing location data
1373
+ * 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.
1374
+ * @summary Start a location backfill job
976
1375
  * @param {*} [options] Override http request option.
977
1376
  * @throws {RequiredError}
978
1377
  */
@@ -989,35 +1388,56 @@ class AdminConnectionsApi extends base_1.BaseAPI {
989
1388
  createBypass(createBypassRequest, options) {
990
1389
  return (0, exports.AdminConnectionsApiFp)(this.configuration).createBypass(createBypassRequest, options).then((request) => request(this.axios, this.basePath));
991
1390
  }
1391
+ /**
1392
+ * Single connection by id, enriched with VPN check results and bypass status — same shape as the dashboard list row.
1393
+ * @summary Get connection detail
1394
+ * @param {number} id
1395
+ * @param {*} [options] Override http request option.
1396
+ * @throws {RequiredError}
1397
+ */
1398
+ getConnection(id, options) {
1399
+ return (0, exports.AdminConnectionsApiFp)(this.configuration).getConnection(id, options).then((request) => request(this.axios, this.basePath));
1400
+ }
1401
+ /**
1402
+ * 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.
1403
+ * @summary List players who have used this connection
1404
+ * @param {number} id
1405
+ * @param {Pageable} pageable
1406
+ * @param {*} [options] Override http request option.
1407
+ * @throws {RequiredError}
1408
+ */
1409
+ getConnectionPlayers(id, pageable, options) {
1410
+ return (0, exports.AdminConnectionsApiFp)(this.configuration).getConnectionPlayers(id, pageable, options).then((request) => request(this.axios, this.basePath));
1411
+ }
992
1412
  /**
993
1413
  * Returns a paginated list of all connections with a total count. Supports filtering by IP address, UUID, and VPN status.
994
1414
  * @summary List all connections (paginated)
995
- * @param {string | null} [ipAddress] Filter by IP address
996
- * @param {string | null} [uuid] Filter by player UUID
997
- * @param {boolean | null} [isVpn] Filter by VPN status
998
- * @param {number | null} [page] Page number (1-indexed)
999
- * @param {number | null} [limit] Page size
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]
1000
1421
  * @param {*} [options] Override http request option.
1001
1422
  * @throws {RequiredError}
1002
1423
  */
1003
- listAllConnections(ipAddress, uuid, isVpn, page, limit, options) {
1004
- return (0, exports.AdminConnectionsApiFp)(this.configuration).listAllConnections(ipAddress, uuid, isVpn, page, limit, options).then((request) => request(this.axios, this.basePath));
1424
+ listAllConnections(pageable, createdAfter, createdBefore, ipAddress, uuid, isVpn, options) {
1425
+ return (0, exports.AdminConnectionsApiFp)(this.configuration).listAllConnections(pageable, createdAfter, createdBefore, ipAddress, uuid, isVpn, options).then((request) => request(this.axios, this.basePath));
1005
1426
  }
1006
1427
  /**
1007
1428
  * 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).
1008
1429
  * @summary List recent connections
1009
- * @param {number | null} [createdAfter] Filter connections after this epoch timestamp in milliseconds
1010
- * @param {number | null} [createdBefore] Filter connections before this epoch timestamp in milliseconds
1011
- * @param {string | null} [ipAddress] Filter by IP address
1012
- * @param {string | null} [uuid] Filter by player UUID
1013
- * @param {boolean | null} [isVpn] Filter by VPN status (true=VPN, false=not VPN)
1014
- * @param {number | null} [page] Page number for pagination
1015
- * @param {number | null} [limit] Maximum number of records to return
1430
+ * @param {Pageable} pageable
1431
+ * @param {number | null} [createdAfter]
1432
+ * @param {number | null} [createdBefore]
1433
+ * @param {string | null} [ipAddress]
1434
+ * @param {string | null} [uuid]
1435
+ * @param {boolean | null} [isVpn]
1016
1436
  * @param {*} [options] Override http request option.
1017
1437
  * @throws {RequiredError}
1018
1438
  */
1019
- listConnections(createdAfter, createdBefore, ipAddress, uuid, isVpn, page, limit, options) {
1020
- return (0, exports.AdminConnectionsApiFp)(this.configuration).listConnections(createdAfter, createdBefore, ipAddress, uuid, isVpn, page, limit, options).then((request) => request(this.axios, this.basePath));
1439
+ listConnections(pageable, createdAfter, createdBefore, ipAddress, uuid, isVpn, options) {
1440
+ return (0, exports.AdminConnectionsApiFp)(this.configuration).listConnections(pageable, createdAfter, createdBefore, ipAddress, uuid, isVpn, options).then((request) => request(this.axios, this.basePath));
1021
1441
  }
1022
1442
  /**
1023
1443
  * 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.
@@ -1127,35 +1547,34 @@ class AdminDashboardApi extends base_1.BaseAPI {
1127
1547
  }
1128
1548
  exports.AdminDashboardApi = AdminDashboardApi;
1129
1549
  /**
1130
- * AdminPlayersApi - axios parameter creator
1550
+ * AdminJobsApi - axios parameter creator
1131
1551
  */
1132
- const AdminPlayersApiAxiosParamCreator = function (configuration) {
1552
+ const AdminJobsApiAxiosParamCreator = function (configuration) {
1133
1553
  return {
1134
1554
  /**
1135
- * Returns full detail for a single player including all known usernames and punishment scoring.
1136
- * @summary Get player detail
1137
- * @param {string} uuid Player Minecraft UUID
1555
+ * 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.
1556
+ * @summary Request cancellation of an async job
1557
+ * @param {string} id Job id
1138
1558
  * @param {*} [options] Override http request option.
1139
1559
  * @throws {RequiredError}
1140
1560
  */
1141
- getPlayer: (uuid_1, ...args_1) => __awaiter(this, [uuid_1, ...args_1], void 0, function* (uuid, options = {}) {
1142
- // verify required parameter 'uuid' is not null or undefined
1143
- (0, common_1.assertParamExists)('getPlayer', 'uuid', uuid);
1144
- const localVarPath = `/admin/player/{uuid}`
1145
- .replace(`{${"uuid"}}`, encodeURIComponent(String(uuid)));
1561
+ cancel: (id_1, ...args_1) => __awaiter(this, [id_1, ...args_1], void 0, function* (id, options = {}) {
1562
+ // verify required parameter 'id' is not null or undefined
1563
+ (0, common_1.assertParamExists)('cancel', 'id', id);
1564
+ const localVarPath = `/admin/job/{id}`
1565
+ .replace(`{${"id"}}`, encodeURIComponent(String(id)));
1146
1566
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
1147
1567
  const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
1148
1568
  let baseOptions;
1149
1569
  if (configuration) {
1150
1570
  baseOptions = configuration.baseOptions;
1151
1571
  }
1152
- const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
1572
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options);
1153
1573
  const localVarHeaderParameter = {};
1154
1574
  const localVarQueryParameter = {};
1155
1575
  // authentication DiscordAuth required
1156
1576
  // http bearer authentication required
1157
1577
  yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
1158
- localVarHeaderParameter['Accept'] = 'application/json';
1159
1578
  (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
1160
1579
  let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1161
1580
  localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
@@ -1165,20 +1584,17 @@ const AdminPlayersApiAxiosParamCreator = function (configuration) {
1165
1584
  };
1166
1585
  }),
1167
1586
  /**
1168
- * Returns up to 500 players ordered by most recently seen. Optionally filter by UUID or username substring.
1169
- * @summary List players
1170
- * @param {number} page Page number (1-indexed)
1171
- * @param {number} limit Page size
1172
- * @param {string | null} [search] Optional search string matched against UUID or username (case-insensitive substring)
1587
+ * The polling target the admin UI hits this every ~2 s while a job is running to update its progress bar.
1588
+ * @summary Get one async job
1589
+ * @param {string} id Job id
1173
1590
  * @param {*} [options] Override http request option.
1174
1591
  * @throws {RequiredError}
1175
1592
  */
1176
- 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 = {}) {
1177
- // verify required parameter 'page' is not null or undefined
1178
- (0, common_1.assertParamExists)('listPlayers', 'page', page);
1179
- // verify required parameter 'limit' is not null or undefined
1180
- (0, common_1.assertParamExists)('listPlayers', 'limit', limit);
1181
- const localVarPath = `/admin/player`;
1593
+ get: (id_1, ...args_1) => __awaiter(this, [id_1, ...args_1], void 0, function* (id, options = {}) {
1594
+ // verify required parameter 'id' is not null or undefined
1595
+ (0, common_1.assertParamExists)('get', 'id', id);
1596
+ const localVarPath = `/admin/job/{id}`
1597
+ .replace(`{${"id"}}`, encodeURIComponent(String(id)));
1182
1598
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
1183
1599
  const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
1184
1600
  let baseOptions;
@@ -1191,14 +1607,44 @@ const AdminPlayersApiAxiosParamCreator = function (configuration) {
1191
1607
  // authentication DiscordAuth required
1192
1608
  // http bearer authentication required
1193
1609
  yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
1194
- if (search !== undefined) {
1195
- localVarQueryParameter['search'] = search;
1610
+ localVarHeaderParameter['Accept'] = 'application/json';
1611
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
1612
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1613
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
1614
+ return {
1615
+ url: (0, common_1.toPathString)(localVarUrlObj),
1616
+ options: localVarRequestOptions,
1617
+ };
1618
+ }),
1619
+ /**
1620
+ * Paginated, newest first. Filter by status to see only RUNNING jobs (the live queue) or COMPLETED / FAILED / CANCELLED history.
1621
+ * @summary List async jobs
1622
+ * @param {Pageable} pageable
1623
+ * @param {JobStatus | null} [status] Filter by status (omit for all states)
1624
+ * @param {*} [options] Override http request option.
1625
+ * @throws {RequiredError}
1626
+ */
1627
+ list: (pageable_1, status_1, ...args_1) => __awaiter(this, [pageable_1, status_1, ...args_1], void 0, function* (pageable, status, options = {}) {
1628
+ // verify required parameter 'pageable' is not null or undefined
1629
+ (0, common_1.assertParamExists)('list', 'pageable', pageable);
1630
+ const localVarPath = `/admin/job`;
1631
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
1632
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
1633
+ let baseOptions;
1634
+ if (configuration) {
1635
+ baseOptions = configuration.baseOptions;
1196
1636
  }
1197
- if (page !== undefined) {
1198
- localVarQueryParameter['page'] = page;
1637
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
1638
+ const localVarHeaderParameter = {};
1639
+ const localVarQueryParameter = {};
1640
+ // authentication DiscordAuth required
1641
+ // http bearer authentication required
1642
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
1643
+ if (status !== undefined) {
1644
+ localVarQueryParameter['status'] = status;
1199
1645
  }
1200
- if (limit !== undefined) {
1201
- localVarQueryParameter['limit'] = limit;
1646
+ if (pageable !== undefined) {
1647
+ localVarQueryParameter['pageable'] = pageable;
1202
1648
  }
1203
1649
  localVarHeaderParameter['Accept'] = 'application/json';
1204
1650
  (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
@@ -1211,106 +1657,1525 @@ const AdminPlayersApiAxiosParamCreator = function (configuration) {
1211
1657
  }),
1212
1658
  };
1213
1659
  };
1214
- exports.AdminPlayersApiAxiosParamCreator = AdminPlayersApiAxiosParamCreator;
1660
+ exports.AdminJobsApiAxiosParamCreator = AdminJobsApiAxiosParamCreator;
1215
1661
  /**
1216
- * AdminPlayersApi - functional programming interface
1662
+ * AdminJobsApi - functional programming interface
1217
1663
  */
1218
- const AdminPlayersApiFp = function (configuration) {
1219
- const localVarAxiosParamCreator = (0, exports.AdminPlayersApiAxiosParamCreator)(configuration);
1664
+ const AdminJobsApiFp = function (configuration) {
1665
+ const localVarAxiosParamCreator = (0, exports.AdminJobsApiAxiosParamCreator)(configuration);
1220
1666
  return {
1221
1667
  /**
1222
- * Returns full detail for a single player including all known usernames and punishment scoring.
1223
- * @summary Get player detail
1224
- * @param {string} uuid Player Minecraft UUID
1668
+ * 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.
1669
+ * @summary Request cancellation of an async job
1670
+ * @param {string} id Job id
1225
1671
  * @param {*} [options] Override http request option.
1226
1672
  * @throws {RequiredError}
1227
1673
  */
1228
- getPlayer(uuid, options) {
1674
+ cancel(id, options) {
1229
1675
  return __awaiter(this, void 0, void 0, function* () {
1230
1676
  var _a, _b, _c;
1231
- const localVarAxiosArgs = yield localVarAxiosParamCreator.getPlayer(uuid, options);
1677
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.cancel(id, options);
1232
1678
  const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
1233
- const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminPlayersApi.getPlayer']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
1679
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminJobsApi.cancel']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
1234
1680
  return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1235
1681
  });
1236
1682
  },
1237
1683
  /**
1238
- * Returns up to 500 players ordered by most recently seen. Optionally filter by UUID or username substring.
1239
- * @summary List players
1240
- * @param {number} page Page number (1-indexed)
1241
- * @param {number} limit Page size
1242
- * @param {string | null} [search] Optional search string matched against UUID or username (case-insensitive substring)
1684
+ * The polling target the admin UI hits this every ~2 s while a job is running to update its progress bar.
1685
+ * @summary Get one async job
1686
+ * @param {string} id Job id
1243
1687
  * @param {*} [options] Override http request option.
1244
1688
  * @throws {RequiredError}
1245
1689
  */
1246
- listPlayers(page, limit, search, options) {
1690
+ get(id, options) {
1247
1691
  return __awaiter(this, void 0, void 0, function* () {
1248
1692
  var _a, _b, _c;
1249
- const localVarAxiosArgs = yield localVarAxiosParamCreator.listPlayers(page, limit, search, options);
1693
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.get(id, options);
1250
1694
  const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
1251
- const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminPlayersApi.listPlayers']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
1695
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminJobsApi.get']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
1696
+ return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1697
+ });
1698
+ },
1699
+ /**
1700
+ * Paginated, newest first. Filter by status to see only RUNNING jobs (the live queue) or COMPLETED / FAILED / CANCELLED history.
1701
+ * @summary List async jobs
1702
+ * @param {Pageable} pageable
1703
+ * @param {JobStatus | null} [status] Filter by status (omit for all states)
1704
+ * @param {*} [options] Override http request option.
1705
+ * @throws {RequiredError}
1706
+ */
1707
+ list(pageable, status, options) {
1708
+ return __awaiter(this, void 0, void 0, function* () {
1709
+ var _a, _b, _c;
1710
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.list(pageable, status, options);
1711
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
1712
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminJobsApi.list']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
1252
1713
  return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1253
1714
  });
1254
1715
  },
1255
1716
  };
1256
1717
  };
1257
- exports.AdminPlayersApiFp = AdminPlayersApiFp;
1718
+ exports.AdminJobsApiFp = AdminJobsApiFp;
1258
1719
  /**
1259
- * AdminPlayersApi - factory interface
1720
+ * AdminJobsApi - factory interface
1260
1721
  */
1261
- const AdminPlayersApiFactory = function (configuration, basePath, axios) {
1262
- const localVarFp = (0, exports.AdminPlayersApiFp)(configuration);
1722
+ const AdminJobsApiFactory = function (configuration, basePath, axios) {
1723
+ const localVarFp = (0, exports.AdminJobsApiFp)(configuration);
1263
1724
  return {
1264
1725
  /**
1265
- * Returns full detail for a single player including all known usernames and punishment scoring.
1266
- * @summary Get player detail
1267
- * @param {string} uuid Player Minecraft UUID
1726
+ * 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.
1727
+ * @summary Request cancellation of an async job
1728
+ * @param {string} id Job id
1268
1729
  * @param {*} [options] Override http request option.
1269
1730
  * @throws {RequiredError}
1270
1731
  */
1271
- getPlayer(uuid, options) {
1272
- return localVarFp.getPlayer(uuid, options).then((request) => request(axios, basePath));
1732
+ cancel(id, options) {
1733
+ return localVarFp.cancel(id, options).then((request) => request(axios, basePath));
1273
1734
  },
1274
1735
  /**
1275
- * Returns up to 500 players ordered by most recently seen. Optionally filter by UUID or username substring.
1276
- * @summary List players
1277
- * @param {number} page Page number (1-indexed)
1278
- * @param {number} limit Page size
1279
- * @param {string | null} [search] Optional search string matched against UUID or username (case-insensitive substring)
1736
+ * The polling target the admin UI hits this every ~2 s while a job is running to update its progress bar.
1737
+ * @summary Get one async job
1738
+ * @param {string} id Job id
1739
+ * @param {*} [options] Override http request option.
1740
+ * @throws {RequiredError}
1741
+ */
1742
+ get(id, options) {
1743
+ return localVarFp.get(id, options).then((request) => request(axios, basePath));
1744
+ },
1745
+ /**
1746
+ * Paginated, newest first. Filter by status to see only RUNNING jobs (the live queue) or COMPLETED / FAILED / CANCELLED history.
1747
+ * @summary List async jobs
1748
+ * @param {Pageable} pageable
1749
+ * @param {JobStatus | null} [status] Filter by status (omit for all states)
1280
1750
  * @param {*} [options] Override http request option.
1281
1751
  * @throws {RequiredError}
1282
1752
  */
1283
- listPlayers(page, limit, search, options) {
1284
- return localVarFp.listPlayers(page, limit, search, options).then((request) => request(axios, basePath));
1753
+ list(pageable, status, options) {
1754
+ return localVarFp.list(pageable, status, options).then((request) => request(axios, basePath));
1285
1755
  },
1286
1756
  };
1287
1757
  };
1288
- exports.AdminPlayersApiFactory = AdminPlayersApiFactory;
1758
+ exports.AdminJobsApiFactory = AdminJobsApiFactory;
1289
1759
  /**
1290
- * AdminPlayersApi - object-oriented interface
1760
+ * AdminJobsApi - object-oriented interface
1291
1761
  */
1292
- class AdminPlayersApi extends base_1.BaseAPI {
1762
+ class AdminJobsApi extends base_1.BaseAPI {
1763
+ /**
1764
+ * 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.
1765
+ * @summary Request cancellation of an async job
1766
+ * @param {string} id Job id
1767
+ * @param {*} [options] Override http request option.
1768
+ * @throws {RequiredError}
1769
+ */
1770
+ cancel(id, options) {
1771
+ return (0, exports.AdminJobsApiFp)(this.configuration).cancel(id, options).then((request) => request(this.axios, this.basePath));
1772
+ }
1773
+ /**
1774
+ * The polling target — the admin UI hits this every ~2 s while a job is running to update its progress bar.
1775
+ * @summary Get one async job
1776
+ * @param {string} id Job id
1777
+ * @param {*} [options] Override http request option.
1778
+ * @throws {RequiredError}
1779
+ */
1780
+ get(id, options) {
1781
+ return (0, exports.AdminJobsApiFp)(this.configuration).get(id, options).then((request) => request(this.axios, this.basePath));
1782
+ }
1783
+ /**
1784
+ * Paginated, newest first. Filter by status to see only RUNNING jobs (the live queue) or COMPLETED / FAILED / CANCELLED history.
1785
+ * @summary List async jobs
1786
+ * @param {Pageable} pageable
1787
+ * @param {JobStatus | null} [status] Filter by status (omit for all states)
1788
+ * @param {*} [options] Override http request option.
1789
+ * @throws {RequiredError}
1790
+ */
1791
+ list(pageable, status, options) {
1792
+ return (0, exports.AdminJobsApiFp)(this.configuration).list(pageable, status, options).then((request) => request(this.axios, this.basePath));
1793
+ }
1794
+ }
1795
+ exports.AdminJobsApi = AdminJobsApi;
1796
+ /**
1797
+ * AdminPlayersApi - axios parameter creator
1798
+ */
1799
+ const AdminPlayersApiAxiosParamCreator = function (configuration) {
1800
+ return {
1801
+ /**
1802
+ * 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.
1803
+ * @summary Add an alt exemption
1804
+ * @param {string} uuid Player Minecraft UUID
1805
+ * @param {AdminCreateAltExemptionRequest} adminCreateAltExemptionRequest
1806
+ * @param {*} [options] Override http request option.
1807
+ * @throws {RequiredError}
1808
+ */
1809
+ addAltExemption: (uuid_1, adminCreateAltExemptionRequest_1, ...args_1) => __awaiter(this, [uuid_1, adminCreateAltExemptionRequest_1, ...args_1], void 0, function* (uuid, adminCreateAltExemptionRequest, options = {}) {
1810
+ // verify required parameter 'uuid' is not null or undefined
1811
+ (0, common_1.assertParamExists)('addAltExemption', 'uuid', uuid);
1812
+ // verify required parameter 'adminCreateAltExemptionRequest' is not null or undefined
1813
+ (0, common_1.assertParamExists)('addAltExemption', 'adminCreateAltExemptionRequest', adminCreateAltExemptionRequest);
1814
+ const localVarPath = `/admin/player/{uuid}/alt-exemption`
1815
+ .replace(`{${"uuid"}}`, encodeURIComponent(String(uuid)));
1816
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
1817
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
1818
+ let baseOptions;
1819
+ if (configuration) {
1820
+ baseOptions = configuration.baseOptions;
1821
+ }
1822
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
1823
+ const localVarHeaderParameter = {};
1824
+ const localVarQueryParameter = {};
1825
+ // authentication DiscordAuth required
1826
+ // http bearer authentication required
1827
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
1828
+ localVarHeaderParameter['Content-Type'] = 'application/json';
1829
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
1830
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1831
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
1832
+ localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(adminCreateAltExemptionRequest, localVarRequestOptions, configuration);
1833
+ return {
1834
+ url: (0, common_1.toPathString)(localVarUrlObj),
1835
+ options: localVarRequestOptions,
1836
+ };
1837
+ }),
1838
+ /**
1839
+ * 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.
1840
+ * @summary Bulk-revoke PROPAGATED links by source
1841
+ * @param {AdminBulkRevokeRequest} adminBulkRevokeRequest
1842
+ * @param {*} [options] Override http request option.
1843
+ * @throws {RequiredError}
1844
+ */
1845
+ bulkRevokePropagated: (adminBulkRevokeRequest_1, ...args_1) => __awaiter(this, [adminBulkRevokeRequest_1, ...args_1], void 0, function* (adminBulkRevokeRequest, options = {}) {
1846
+ // verify required parameter 'adminBulkRevokeRequest' is not null or undefined
1847
+ (0, common_1.assertParamExists)('bulkRevokePropagated', 'adminBulkRevokeRequest', adminBulkRevokeRequest);
1848
+ const localVarPath = `/admin/player/player-punishment/bulk-revoke`;
1849
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
1850
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
1851
+ let baseOptions;
1852
+ if (configuration) {
1853
+ baseOptions = configuration.baseOptions;
1854
+ }
1855
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
1856
+ const localVarHeaderParameter = {};
1857
+ const localVarQueryParameter = {};
1858
+ // authentication DiscordAuth required
1859
+ // http bearer authentication required
1860
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
1861
+ localVarHeaderParameter['Content-Type'] = 'application/json';
1862
+ localVarHeaderParameter['Accept'] = 'application/json';
1863
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
1864
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1865
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
1866
+ localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(adminBulkRevokeRequest, localVarRequestOptions, configuration);
1867
+ return {
1868
+ url: (0, common_1.toPathString)(localVarUrlObj),
1869
+ options: localVarRequestOptions,
1870
+ };
1871
+ }),
1872
+ /**
1873
+ * Appends a free-form note (1–4000 chars). Notes are not editable — to revise, post a new one and soft-delete the old.
1874
+ * @summary Create a staff note on a player
1875
+ * @param {string} uuid Player Minecraft UUID
1876
+ * @param {AdminCreatePlayerNoteRequest} adminCreatePlayerNoteRequest
1877
+ * @param {*} [options] Override http request option.
1878
+ * @throws {RequiredError}
1879
+ */
1880
+ createPlayerNote: (uuid_1, adminCreatePlayerNoteRequest_1, ...args_1) => __awaiter(this, [uuid_1, adminCreatePlayerNoteRequest_1, ...args_1], void 0, function* (uuid, adminCreatePlayerNoteRequest, options = {}) {
1881
+ // verify required parameter 'uuid' is not null or undefined
1882
+ (0, common_1.assertParamExists)('createPlayerNote', 'uuid', uuid);
1883
+ // verify required parameter 'adminCreatePlayerNoteRequest' is not null or undefined
1884
+ (0, common_1.assertParamExists)('createPlayerNote', 'adminCreatePlayerNoteRequest', adminCreatePlayerNoteRequest);
1885
+ const localVarPath = `/admin/player/{uuid}/note`
1886
+ .replace(`{${"uuid"}}`, encodeURIComponent(String(uuid)));
1887
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
1888
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
1889
+ let baseOptions;
1890
+ if (configuration) {
1891
+ baseOptions = configuration.baseOptions;
1892
+ }
1893
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
1894
+ const localVarHeaderParameter = {};
1895
+ const localVarQueryParameter = {};
1896
+ // authentication DiscordAuth required
1897
+ // http bearer authentication required
1898
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
1899
+ localVarHeaderParameter['Content-Type'] = 'application/json';
1900
+ localVarHeaderParameter['Accept'] = 'application/json';
1901
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
1902
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1903
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
1904
+ localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(adminCreatePlayerNoteRequest, localVarRequestOptions, configuration);
1905
+ return {
1906
+ url: (0, common_1.toPathString)(localVarUrlObj),
1907
+ options: localVarRequestOptions,
1908
+ };
1909
+ }),
1910
+ /**
1911
+ * Marks the note as deleted but keeps the row for audit. Idempotent — 404 if already deleted or unknown id.
1912
+ * @summary Soft-delete a staff note
1913
+ * @param {string} uuid Player Minecraft UUID (routing only)
1914
+ * @param {number} noteId Note id
1915
+ * @param {*} [options] Override http request option.
1916
+ * @throws {RequiredError}
1917
+ */
1918
+ deletePlayerNote: (uuid_1, noteId_1, ...args_1) => __awaiter(this, [uuid_1, noteId_1, ...args_1], void 0, function* (uuid, noteId, options = {}) {
1919
+ // verify required parameter 'uuid' is not null or undefined
1920
+ (0, common_1.assertParamExists)('deletePlayerNote', 'uuid', uuid);
1921
+ // verify required parameter 'noteId' is not null or undefined
1922
+ (0, common_1.assertParamExists)('deletePlayerNote', 'noteId', noteId);
1923
+ const localVarPath = `/admin/player/{uuid}/note/{noteId}`
1924
+ .replace(`{${"uuid"}}`, encodeURIComponent(String(uuid)))
1925
+ .replace(`{${"noteId"}}`, encodeURIComponent(String(noteId)));
1926
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
1927
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
1928
+ let baseOptions;
1929
+ if (configuration) {
1930
+ baseOptions = configuration.baseOptions;
1931
+ }
1932
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options);
1933
+ const localVarHeaderParameter = {};
1934
+ const localVarQueryParameter = {};
1935
+ // authentication DiscordAuth required
1936
+ // http bearer authentication required
1937
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
1938
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
1939
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1940
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
1941
+ return {
1942
+ url: (0, common_1.toPathString)(localVarUrlObj),
1943
+ options: localVarRequestOptions,
1944
+ };
1945
+ }),
1946
+ /**
1947
+ * Returns full detail for a single player including all known usernames and punishment scoring.
1948
+ * @summary Get player detail
1949
+ * @param {string} uuid Player Minecraft UUID
1950
+ * @param {*} [options] Override http request option.
1951
+ * @throws {RequiredError}
1952
+ */
1953
+ getPlayer: (uuid_1, ...args_1) => __awaiter(this, [uuid_1, ...args_1], void 0, function* (uuid, options = {}) {
1954
+ // verify required parameter 'uuid' is not null or undefined
1955
+ (0, common_1.assertParamExists)('getPlayer', 'uuid', uuid);
1956
+ const localVarPath = `/admin/player/{uuid}`
1957
+ .replace(`{${"uuid"}}`, encodeURIComponent(String(uuid)));
1958
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
1959
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
1960
+ let baseOptions;
1961
+ if (configuration) {
1962
+ baseOptions = configuration.baseOptions;
1963
+ }
1964
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
1965
+ const localVarHeaderParameter = {};
1966
+ const localVarQueryParameter = {};
1967
+ // authentication DiscordAuth required
1968
+ // http bearer authentication required
1969
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
1970
+ localVarHeaderParameter['Accept'] = 'application/json';
1971
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
1972
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1973
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
1974
+ return {
1975
+ url: (0, common_1.toPathString)(localVarUrlObj),
1976
+ options: localVarRequestOptions,
1977
+ };
1978
+ }),
1979
+ /**
1980
+ * 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.
1981
+ * @summary List a player\'s alt accounts
1982
+ * @param {string} uuid Player Minecraft UUID
1983
+ * @param {Pageable} pageable
1984
+ * @param {*} [options] Override http request option.
1985
+ * @throws {RequiredError}
1986
+ */
1987
+ getPlayerAlts: (uuid_1, pageable_1, ...args_1) => __awaiter(this, [uuid_1, pageable_1, ...args_1], void 0, function* (uuid, pageable, options = {}) {
1988
+ // verify required parameter 'uuid' is not null or undefined
1989
+ (0, common_1.assertParamExists)('getPlayerAlts', 'uuid', uuid);
1990
+ // verify required parameter 'pageable' is not null or undefined
1991
+ (0, common_1.assertParamExists)('getPlayerAlts', 'pageable', pageable);
1992
+ const localVarPath = `/admin/player/{uuid}/alts`
1993
+ .replace(`{${"uuid"}}`, encodeURIComponent(String(uuid)));
1994
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
1995
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
1996
+ let baseOptions;
1997
+ if (configuration) {
1998
+ baseOptions = configuration.baseOptions;
1999
+ }
2000
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
2001
+ const localVarHeaderParameter = {};
2002
+ const localVarQueryParameter = {};
2003
+ // authentication DiscordAuth required
2004
+ // http bearer authentication required
2005
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
2006
+ if (pageable !== undefined) {
2007
+ localVarQueryParameter['pageable'] = pageable;
2008
+ }
2009
+ localVarHeaderParameter['Accept'] = 'application/json';
2010
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
2011
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
2012
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
2013
+ return {
2014
+ url: (0, common_1.toPathString)(localVarUrlObj),
2015
+ options: localVarRequestOptions,
2016
+ };
2017
+ }),
2018
+ /**
2019
+ * 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.
2020
+ * @summary List a player\'s connection history
2021
+ * @param {string} uuid Player Minecraft UUID
2022
+ * @param {Pageable} pageable
2023
+ * @param {*} [options] Override http request option.
2024
+ * @throws {RequiredError}
2025
+ */
2026
+ getPlayerConnections: (uuid_1, pageable_1, ...args_1) => __awaiter(this, [uuid_1, pageable_1, ...args_1], void 0, function* (uuid, pageable, options = {}) {
2027
+ // verify required parameter 'uuid' is not null or undefined
2028
+ (0, common_1.assertParamExists)('getPlayerConnections', 'uuid', uuid);
2029
+ // verify required parameter 'pageable' is not null or undefined
2030
+ (0, common_1.assertParamExists)('getPlayerConnections', 'pageable', pageable);
2031
+ const localVarPath = `/admin/player/{uuid}/connections`
2032
+ .replace(`{${"uuid"}}`, encodeURIComponent(String(uuid)));
2033
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
2034
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
2035
+ let baseOptions;
2036
+ if (configuration) {
2037
+ baseOptions = configuration.baseOptions;
2038
+ }
2039
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
2040
+ const localVarHeaderParameter = {};
2041
+ const localVarQueryParameter = {};
2042
+ // authentication DiscordAuth required
2043
+ // http bearer authentication required
2044
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
2045
+ if (pageable !== undefined) {
2046
+ localVarQueryParameter['pageable'] = pageable;
2047
+ }
2048
+ localVarHeaderParameter['Accept'] = 'application/json';
2049
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
2050
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
2051
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
2052
+ return {
2053
+ url: (0, common_1.toPathString)(localVarUrlObj),
2054
+ options: localVarRequestOptions,
2055
+ };
2056
+ }),
2057
+ /**
2058
+ * 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.
2059
+ * @summary List a player\'s full punishment history
2060
+ * @param {string} uuid Player Minecraft UUID
2061
+ * @param {Pageable} pageable
2062
+ * @param {*} [options] Override http request option.
2063
+ * @throws {RequiredError}
2064
+ */
2065
+ getPlayerPunishments: (uuid_1, pageable_1, ...args_1) => __awaiter(this, [uuid_1, pageable_1, ...args_1], void 0, function* (uuid, pageable, options = {}) {
2066
+ // verify required parameter 'uuid' is not null or undefined
2067
+ (0, common_1.assertParamExists)('getPlayerPunishments', 'uuid', uuid);
2068
+ // verify required parameter 'pageable' is not null or undefined
2069
+ (0, common_1.assertParamExists)('getPlayerPunishments', 'pageable', pageable);
2070
+ const localVarPath = `/admin/player/{uuid}/player-punishments`
2071
+ .replace(`{${"uuid"}}`, encodeURIComponent(String(uuid)));
2072
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
2073
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
2074
+ let baseOptions;
2075
+ if (configuration) {
2076
+ baseOptions = configuration.baseOptions;
2077
+ }
2078
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
2079
+ const localVarHeaderParameter = {};
2080
+ const localVarQueryParameter = {};
2081
+ // authentication DiscordAuth required
2082
+ // http bearer authentication required
2083
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
2084
+ if (pageable !== undefined) {
2085
+ localVarQueryParameter['pageable'] = pageable;
2086
+ }
2087
+ localVarHeaderParameter['Accept'] = 'application/json';
2088
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
2089
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
2090
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
2091
+ return {
2092
+ url: (0, common_1.toPathString)(localVarUrlObj),
2093
+ options: localVarRequestOptions,
2094
+ };
2095
+ }),
2096
+ /**
2097
+ * 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.
2098
+ * @summary Get a player\'s aggregate session stats
2099
+ * @param {string} uuid Player Minecraft UUID
2100
+ * @param {*} [options] Override http request option.
2101
+ * @throws {RequiredError}
2102
+ */
2103
+ getSessionStats: (uuid_1, ...args_1) => __awaiter(this, [uuid_1, ...args_1], void 0, function* (uuid, options = {}) {
2104
+ // verify required parameter 'uuid' is not null or undefined
2105
+ (0, common_1.assertParamExists)('getSessionStats', 'uuid', uuid);
2106
+ const localVarPath = `/admin/player/{uuid}/session-stats`
2107
+ .replace(`{${"uuid"}}`, encodeURIComponent(String(uuid)));
2108
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
2109
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
2110
+ let baseOptions;
2111
+ if (configuration) {
2112
+ baseOptions = configuration.baseOptions;
2113
+ }
2114
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
2115
+ const localVarHeaderParameter = {};
2116
+ const localVarQueryParameter = {};
2117
+ // authentication DiscordAuth required
2118
+ // http bearer authentication required
2119
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
2120
+ localVarHeaderParameter['Accept'] = 'application/json';
2121
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
2122
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
2123
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
2124
+ return {
2125
+ url: (0, common_1.toPathString)(localVarUrlObj),
2126
+ options: localVarRequestOptions,
2127
+ };
2128
+ }),
2129
+ /**
2130
+ * 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.
2131
+ * @summary List a player\'s alt exemptions
2132
+ * @param {string} uuid Player Minecraft UUID
2133
+ * @param {Pageable} pageable
2134
+ * @param {*} [options] Override http request option.
2135
+ * @throws {RequiredError}
2136
+ */
2137
+ listAltExemptions: (uuid_1, pageable_1, ...args_1) => __awaiter(this, [uuid_1, pageable_1, ...args_1], void 0, function* (uuid, pageable, options = {}) {
2138
+ // verify required parameter 'uuid' is not null or undefined
2139
+ (0, common_1.assertParamExists)('listAltExemptions', 'uuid', uuid);
2140
+ // verify required parameter 'pageable' is not null or undefined
2141
+ (0, common_1.assertParamExists)('listAltExemptions', 'pageable', pageable);
2142
+ const localVarPath = `/admin/player/{uuid}/alt-exemption`
2143
+ .replace(`{${"uuid"}}`, encodeURIComponent(String(uuid)));
2144
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
2145
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
2146
+ let baseOptions;
2147
+ if (configuration) {
2148
+ baseOptions = configuration.baseOptions;
2149
+ }
2150
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
2151
+ const localVarHeaderParameter = {};
2152
+ const localVarQueryParameter = {};
2153
+ // authentication DiscordAuth required
2154
+ // http bearer authentication required
2155
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
2156
+ if (pageable !== undefined) {
2157
+ localVarQueryParameter['pageable'] = pageable;
2158
+ }
2159
+ localVarHeaderParameter['Accept'] = 'application/json';
2160
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
2161
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
2162
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
2163
+ return {
2164
+ url: (0, common_1.toPathString)(localVarUrlObj),
2165
+ options: localVarRequestOptions,
2166
+ };
2167
+ }),
2168
+ /**
2169
+ * Paginated, newest first. Soft-deleted notes are included; the UI styles them as struck-through.
2170
+ * @summary List staff notes on a player
2171
+ * @param {string} uuid Player Minecraft UUID
2172
+ * @param {Pageable} pageable
2173
+ * @param {*} [options] Override http request option.
2174
+ * @throws {RequiredError}
2175
+ */
2176
+ listPlayerNotes: (uuid_1, pageable_1, ...args_1) => __awaiter(this, [uuid_1, pageable_1, ...args_1], void 0, function* (uuid, pageable, options = {}) {
2177
+ // verify required parameter 'uuid' is not null or undefined
2178
+ (0, common_1.assertParamExists)('listPlayerNotes', 'uuid', uuid);
2179
+ // verify required parameter 'pageable' is not null or undefined
2180
+ (0, common_1.assertParamExists)('listPlayerNotes', 'pageable', pageable);
2181
+ const localVarPath = `/admin/player/{uuid}/notes`
2182
+ .replace(`{${"uuid"}}`, encodeURIComponent(String(uuid)));
2183
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
2184
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
2185
+ let baseOptions;
2186
+ if (configuration) {
2187
+ baseOptions = configuration.baseOptions;
2188
+ }
2189
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
2190
+ const localVarHeaderParameter = {};
2191
+ const localVarQueryParameter = {};
2192
+ // authentication DiscordAuth required
2193
+ // http bearer authentication required
2194
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
2195
+ if (pageable !== undefined) {
2196
+ localVarQueryParameter['pageable'] = pageable;
2197
+ }
2198
+ localVarHeaderParameter['Accept'] = 'application/json';
2199
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
2200
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
2201
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
2202
+ return {
2203
+ url: (0, common_1.toPathString)(localVarUrlObj),
2204
+ options: localVarRequestOptions,
2205
+ };
2206
+ }),
2207
+ /**
2208
+ * Returns up to 500 players ordered by most recently seen. Optionally filter by UUID or username substring.
2209
+ * @summary List players
2210
+ * @param {Pageable} pageable
2211
+ * @param {string | null} [search] Optional search string matched against UUID or username (case-insensitive substring)
2212
+ * @param {*} [options] Override http request option.
2213
+ * @throws {RequiredError}
2214
+ */
2215
+ listPlayers: (pageable_1, search_1, ...args_1) => __awaiter(this, [pageable_1, search_1, ...args_1], void 0, function* (pageable, search, options = {}) {
2216
+ // verify required parameter 'pageable' is not null or undefined
2217
+ (0, common_1.assertParamExists)('listPlayers', 'pageable', pageable);
2218
+ const localVarPath = `/admin/player`;
2219
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
2220
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
2221
+ let baseOptions;
2222
+ if (configuration) {
2223
+ baseOptions = configuration.baseOptions;
2224
+ }
2225
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
2226
+ const localVarHeaderParameter = {};
2227
+ const localVarQueryParameter = {};
2228
+ // authentication DiscordAuth required
2229
+ // http bearer authentication required
2230
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
2231
+ if (search !== undefined) {
2232
+ localVarQueryParameter['search'] = search;
2233
+ }
2234
+ if (pageable !== undefined) {
2235
+ localVarQueryParameter['pageable'] = pageable;
2236
+ }
2237
+ localVarHeaderParameter['Accept'] = 'application/json';
2238
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
2239
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
2240
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
2241
+ return {
2242
+ url: (0, common_1.toPathString)(localVarUrlObj),
2243
+ options: localVarRequestOptions,
2244
+ };
2245
+ }),
2246
+ /**
2247
+ * 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.
2248
+ * @summary List a player\'s session history
2249
+ * @param {string} uuid Player Minecraft UUID
2250
+ * @param {Pageable} pageable
2251
+ * @param {*} [options] Override http request option.
2252
+ * @throws {RequiredError}
2253
+ */
2254
+ listSessions: (uuid_1, pageable_1, ...args_1) => __awaiter(this, [uuid_1, pageable_1, ...args_1], void 0, function* (uuid, pageable, options = {}) {
2255
+ // verify required parameter 'uuid' is not null or undefined
2256
+ (0, common_1.assertParamExists)('listSessions', 'uuid', uuid);
2257
+ // verify required parameter 'pageable' is not null or undefined
2258
+ (0, common_1.assertParamExists)('listSessions', 'pageable', pageable);
2259
+ const localVarPath = `/admin/player/{uuid}/sessions`
2260
+ .replace(`{${"uuid"}}`, encodeURIComponent(String(uuid)));
2261
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
2262
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
2263
+ let baseOptions;
2264
+ if (configuration) {
2265
+ baseOptions = configuration.baseOptions;
2266
+ }
2267
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
2268
+ const localVarHeaderParameter = {};
2269
+ const localVarQueryParameter = {};
2270
+ // authentication DiscordAuth required
2271
+ // http bearer authentication required
2272
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
2273
+ if (pageable !== undefined) {
2274
+ localVarQueryParameter['pageable'] = pageable;
2275
+ }
2276
+ localVarHeaderParameter['Accept'] = 'application/json';
2277
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
2278
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
2279
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
2280
+ return {
2281
+ url: (0, common_1.toPathString)(localVarUrlObj),
2282
+ options: localVarRequestOptions,
2283
+ };
2284
+ }),
2285
+ /**
2286
+ * Delete the symmetric exemption pair between two players. Both directions are removed.
2287
+ * @summary Remove an alt exemption
2288
+ * @param {string} uuid Player Minecraft UUID
2289
+ * @param {string} altPlayerUuid UUID of the alt to remove from exemption
2290
+ * @param {*} [options] Override http request option.
2291
+ * @throws {RequiredError}
2292
+ */
2293
+ removeAltExemption: (uuid_1, altPlayerUuid_1, ...args_1) => __awaiter(this, [uuid_1, altPlayerUuid_1, ...args_1], void 0, function* (uuid, altPlayerUuid, options = {}) {
2294
+ // verify required parameter 'uuid' is not null or undefined
2295
+ (0, common_1.assertParamExists)('removeAltExemption', 'uuid', uuid);
2296
+ // verify required parameter 'altPlayerUuid' is not null or undefined
2297
+ (0, common_1.assertParamExists)('removeAltExemption', 'altPlayerUuid', altPlayerUuid);
2298
+ const localVarPath = `/admin/player/{uuid}/alt-exemption/{altPlayerUuid}`
2299
+ .replace(`{${"uuid"}}`, encodeURIComponent(String(uuid)))
2300
+ .replace(`{${"altPlayerUuid"}}`, encodeURIComponent(String(altPlayerUuid)));
2301
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
2302
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
2303
+ let baseOptions;
2304
+ if (configuration) {
2305
+ baseOptions = configuration.baseOptions;
2306
+ }
2307
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options);
2308
+ const localVarHeaderParameter = {};
2309
+ const localVarQueryParameter = {};
2310
+ // authentication DiscordAuth required
2311
+ // http bearer authentication required
2312
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
2313
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
2314
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
2315
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
2316
+ return {
2317
+ url: (0, common_1.toPathString)(localVarUrlObj),
2318
+ options: localVarRequestOptions,
2319
+ };
2320
+ }),
2321
+ /**
2322
+ * 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.
2323
+ * @summary Revoke a propagated punishment link
2324
+ * @param {string} uuid Player Minecraft UUID (for routing/audit context; the link id is the source of truth)
2325
+ * @param {number} playerPunishmentId player_punishment row id
2326
+ * @param {*} [options] Override http request option.
2327
+ * @throws {RequiredError}
2328
+ */
2329
+ revokePropagatedLink: (uuid_1, playerPunishmentId_1, ...args_1) => __awaiter(this, [uuid_1, playerPunishmentId_1, ...args_1], void 0, function* (uuid, playerPunishmentId, options = {}) {
2330
+ // verify required parameter 'uuid' is not null or undefined
2331
+ (0, common_1.assertParamExists)('revokePropagatedLink', 'uuid', uuid);
2332
+ // verify required parameter 'playerPunishmentId' is not null or undefined
2333
+ (0, common_1.assertParamExists)('revokePropagatedLink', 'playerPunishmentId', playerPunishmentId);
2334
+ const localVarPath = `/admin/player/{uuid}/player-punishment/{playerPunishmentId}`
2335
+ .replace(`{${"uuid"}}`, encodeURIComponent(String(uuid)))
2336
+ .replace(`{${"playerPunishmentId"}}`, encodeURIComponent(String(playerPunishmentId)));
2337
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
2338
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
2339
+ let baseOptions;
2340
+ if (configuration) {
2341
+ baseOptions = configuration.baseOptions;
2342
+ }
2343
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options);
2344
+ const localVarHeaderParameter = {};
2345
+ const localVarQueryParameter = {};
2346
+ // authentication DiscordAuth required
2347
+ // http bearer authentication required
2348
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
2349
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
2350
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
2351
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
2352
+ return {
2353
+ url: (0, common_1.toPathString)(localVarUrlObj),
2354
+ options: localVarRequestOptions,
2355
+ };
2356
+ }),
2357
+ /**
2358
+ * 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.
2359
+ * @summary Toggle aggressive-mode immunity
2360
+ * @param {string} uuid Player Minecraft UUID
2361
+ * @param {AdminSetAggressiveModeImmunityRequest} adminSetAggressiveModeImmunityRequest
2362
+ * @param {*} [options] Override http request option.
2363
+ * @throws {RequiredError}
2364
+ */
2365
+ setAggressiveModeImmunity: (uuid_1, adminSetAggressiveModeImmunityRequest_1, ...args_1) => __awaiter(this, [uuid_1, adminSetAggressiveModeImmunityRequest_1, ...args_1], void 0, function* (uuid, adminSetAggressiveModeImmunityRequest, options = {}) {
2366
+ // verify required parameter 'uuid' is not null or undefined
2367
+ (0, common_1.assertParamExists)('setAggressiveModeImmunity', 'uuid', uuid);
2368
+ // verify required parameter 'adminSetAggressiveModeImmunityRequest' is not null or undefined
2369
+ (0, common_1.assertParamExists)('setAggressiveModeImmunity', 'adminSetAggressiveModeImmunityRequest', adminSetAggressiveModeImmunityRequest);
2370
+ const localVarPath = `/admin/player/{uuid}/aggressive-mode-immunity`
2371
+ .replace(`{${"uuid"}}`, encodeURIComponent(String(uuid)));
2372
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
2373
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
2374
+ let baseOptions;
2375
+ if (configuration) {
2376
+ baseOptions = configuration.baseOptions;
2377
+ }
2378
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'PATCH' }, baseOptions), options);
2379
+ const localVarHeaderParameter = {};
2380
+ const localVarQueryParameter = {};
2381
+ // authentication DiscordAuth required
2382
+ // http bearer authentication required
2383
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
2384
+ localVarHeaderParameter['Content-Type'] = 'application/json';
2385
+ localVarHeaderParameter['Accept'] = 'application/json';
2386
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
2387
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
2388
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
2389
+ localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(adminSetAggressiveModeImmunityRequest, localVarRequestOptions, configuration);
2390
+ return {
2391
+ url: (0, common_1.toPathString)(localVarUrlObj),
2392
+ options: localVarRequestOptions,
2393
+ };
2394
+ }),
2395
+ /**
2396
+ * 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.
2397
+ * @summary Trust factor breakdown for a player
2398
+ * @param {string} uuid Player Minecraft UUID
2399
+ * @param {*} [options] Override http request option.
2400
+ * @throws {RequiredError}
2401
+ */
2402
+ trustFactorBreakdown: (uuid_1, ...args_1) => __awaiter(this, [uuid_1, ...args_1], void 0, function* (uuid, options = {}) {
2403
+ // verify required parameter 'uuid' is not null or undefined
2404
+ (0, common_1.assertParamExists)('trustFactorBreakdown', 'uuid', uuid);
2405
+ const localVarPath = `/admin/player/{uuid}/trust-factor-breakdown`
2406
+ .replace(`{${"uuid"}}`, encodeURIComponent(String(uuid)));
2407
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
2408
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
2409
+ let baseOptions;
2410
+ if (configuration) {
2411
+ baseOptions = configuration.baseOptions;
2412
+ }
2413
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
2414
+ const localVarHeaderParameter = {};
2415
+ const localVarQueryParameter = {};
2416
+ // authentication DiscordAuth required
2417
+ // http bearer authentication required
2418
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
2419
+ localVarHeaderParameter['Accept'] = 'application/json';
2420
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
2421
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
2422
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
2423
+ return {
2424
+ url: (0, common_1.toPathString)(localVarUrlObj),
2425
+ options: localVarRequestOptions,
2426
+ };
2427
+ }),
2428
+ /**
2429
+ * 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).
2430
+ * @summary Trust factor history for a player
2431
+ * @param {string} uuid Player Minecraft UUID
2432
+ * @param {number} [days] Window in days (default 30, max 365)
2433
+ * @param {*} [options] Override http request option.
2434
+ * @throws {RequiredError}
2435
+ */
2436
+ trustFactorHistory: (uuid_1, days_1, ...args_1) => __awaiter(this, [uuid_1, days_1, ...args_1], void 0, function* (uuid, days, options = {}) {
2437
+ // verify required parameter 'uuid' is not null or undefined
2438
+ (0, common_1.assertParamExists)('trustFactorHistory', 'uuid', uuid);
2439
+ const localVarPath = `/admin/player/{uuid}/trust-factor-history`
2440
+ .replace(`{${"uuid"}}`, encodeURIComponent(String(uuid)));
2441
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
2442
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
2443
+ let baseOptions;
2444
+ if (configuration) {
2445
+ baseOptions = configuration.baseOptions;
2446
+ }
2447
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
2448
+ const localVarHeaderParameter = {};
2449
+ const localVarQueryParameter = {};
2450
+ // authentication DiscordAuth required
2451
+ // http bearer authentication required
2452
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
2453
+ if (days !== undefined) {
2454
+ localVarQueryParameter['days'] = days;
2455
+ }
2456
+ localVarHeaderParameter['Accept'] = 'application/json';
2457
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
2458
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
2459
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
2460
+ return {
2461
+ url: (0, common_1.toPathString)(localVarUrlObj),
2462
+ options: localVarRequestOptions,
2463
+ };
2464
+ }),
2465
+ };
2466
+ };
2467
+ exports.AdminPlayersApiAxiosParamCreator = AdminPlayersApiAxiosParamCreator;
2468
+ /**
2469
+ * AdminPlayersApi - functional programming interface
2470
+ */
2471
+ const AdminPlayersApiFp = function (configuration) {
2472
+ const localVarAxiosParamCreator = (0, exports.AdminPlayersApiAxiosParamCreator)(configuration);
2473
+ return {
2474
+ /**
2475
+ * 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.
2476
+ * @summary Add an alt exemption
2477
+ * @param {string} uuid Player Minecraft UUID
2478
+ * @param {AdminCreateAltExemptionRequest} adminCreateAltExemptionRequest
2479
+ * @param {*} [options] Override http request option.
2480
+ * @throws {RequiredError}
2481
+ */
2482
+ addAltExemption(uuid, adminCreateAltExemptionRequest, options) {
2483
+ return __awaiter(this, void 0, void 0, function* () {
2484
+ var _a, _b, _c;
2485
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.addAltExemption(uuid, adminCreateAltExemptionRequest, options);
2486
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2487
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminPlayersApi.addAltExemption']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2488
+ return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2489
+ });
2490
+ },
2491
+ /**
2492
+ * 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.
2493
+ * @summary Bulk-revoke PROPAGATED links by source
2494
+ * @param {AdminBulkRevokeRequest} adminBulkRevokeRequest
2495
+ * @param {*} [options] Override http request option.
2496
+ * @throws {RequiredError}
2497
+ */
2498
+ bulkRevokePropagated(adminBulkRevokeRequest, options) {
2499
+ return __awaiter(this, void 0, void 0, function* () {
2500
+ var _a, _b, _c;
2501
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.bulkRevokePropagated(adminBulkRevokeRequest, options);
2502
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2503
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminPlayersApi.bulkRevokePropagated']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2504
+ return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2505
+ });
2506
+ },
2507
+ /**
2508
+ * Appends a free-form note (1–4000 chars). Notes are not editable — to revise, post a new one and soft-delete the old.
2509
+ * @summary Create a staff note on a player
2510
+ * @param {string} uuid Player Minecraft UUID
2511
+ * @param {AdminCreatePlayerNoteRequest} adminCreatePlayerNoteRequest
2512
+ * @param {*} [options] Override http request option.
2513
+ * @throws {RequiredError}
2514
+ */
2515
+ createPlayerNote(uuid, adminCreatePlayerNoteRequest, options) {
2516
+ return __awaiter(this, void 0, void 0, function* () {
2517
+ var _a, _b, _c;
2518
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.createPlayerNote(uuid, adminCreatePlayerNoteRequest, options);
2519
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2520
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminPlayersApi.createPlayerNote']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2521
+ return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2522
+ });
2523
+ },
2524
+ /**
2525
+ * Marks the note as deleted but keeps the row for audit. Idempotent — 404 if already deleted or unknown id.
2526
+ * @summary Soft-delete a staff note
2527
+ * @param {string} uuid Player Minecraft UUID (routing only)
2528
+ * @param {number} noteId Note id
2529
+ * @param {*} [options] Override http request option.
2530
+ * @throws {RequiredError}
2531
+ */
2532
+ deletePlayerNote(uuid, noteId, options) {
2533
+ return __awaiter(this, void 0, void 0, function* () {
2534
+ var _a, _b, _c;
2535
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.deletePlayerNote(uuid, noteId, options);
2536
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2537
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminPlayersApi.deletePlayerNote']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2538
+ return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2539
+ });
2540
+ },
2541
+ /**
2542
+ * Returns full detail for a single player including all known usernames and punishment scoring.
2543
+ * @summary Get player detail
2544
+ * @param {string} uuid Player Minecraft UUID
2545
+ * @param {*} [options] Override http request option.
2546
+ * @throws {RequiredError}
2547
+ */
2548
+ getPlayer(uuid, options) {
2549
+ return __awaiter(this, void 0, void 0, function* () {
2550
+ var _a, _b, _c;
2551
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.getPlayer(uuid, options);
2552
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2553
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminPlayersApi.getPlayer']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2554
+ return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2555
+ });
2556
+ },
2557
+ /**
2558
+ * 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.
2559
+ * @summary List a player\'s alt accounts
2560
+ * @param {string} uuid Player Minecraft UUID
2561
+ * @param {Pageable} pageable
2562
+ * @param {*} [options] Override http request option.
2563
+ * @throws {RequiredError}
2564
+ */
2565
+ getPlayerAlts(uuid, pageable, options) {
2566
+ return __awaiter(this, void 0, void 0, function* () {
2567
+ var _a, _b, _c;
2568
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.getPlayerAlts(uuid, pageable, options);
2569
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2570
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminPlayersApi.getPlayerAlts']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2571
+ return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2572
+ });
2573
+ },
2574
+ /**
2575
+ * 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.
2576
+ * @summary List a player\'s connection history
2577
+ * @param {string} uuid Player Minecraft UUID
2578
+ * @param {Pageable} pageable
2579
+ * @param {*} [options] Override http request option.
2580
+ * @throws {RequiredError}
2581
+ */
2582
+ getPlayerConnections(uuid, pageable, options) {
2583
+ return __awaiter(this, void 0, void 0, function* () {
2584
+ var _a, _b, _c;
2585
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.getPlayerConnections(uuid, pageable, options);
2586
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2587
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminPlayersApi.getPlayerConnections']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2588
+ return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2589
+ });
2590
+ },
2591
+ /**
2592
+ * 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.
2593
+ * @summary List a player\'s full punishment history
2594
+ * @param {string} uuid Player Minecraft UUID
2595
+ * @param {Pageable} pageable
2596
+ * @param {*} [options] Override http request option.
2597
+ * @throws {RequiredError}
2598
+ */
2599
+ getPlayerPunishments(uuid, pageable, options) {
2600
+ return __awaiter(this, void 0, void 0, function* () {
2601
+ var _a, _b, _c;
2602
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.getPlayerPunishments(uuid, pageable, options);
2603
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2604
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminPlayersApi.getPlayerPunishments']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2605
+ return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2606
+ });
2607
+ },
2608
+ /**
2609
+ * 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.
2610
+ * @summary Get a player\'s aggregate session stats
2611
+ * @param {string} uuid Player Minecraft UUID
2612
+ * @param {*} [options] Override http request option.
2613
+ * @throws {RequiredError}
2614
+ */
2615
+ getSessionStats(uuid, options) {
2616
+ return __awaiter(this, void 0, void 0, function* () {
2617
+ var _a, _b, _c;
2618
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.getSessionStats(uuid, options);
2619
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2620
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminPlayersApi.getSessionStats']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2621
+ return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2622
+ });
2623
+ },
2624
+ /**
2625
+ * 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.
2626
+ * @summary List a player\'s alt exemptions
2627
+ * @param {string} uuid Player Minecraft UUID
2628
+ * @param {Pageable} pageable
2629
+ * @param {*} [options] Override http request option.
2630
+ * @throws {RequiredError}
2631
+ */
2632
+ listAltExemptions(uuid, pageable, options) {
2633
+ return __awaiter(this, void 0, void 0, function* () {
2634
+ var _a, _b, _c;
2635
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.listAltExemptions(uuid, pageable, options);
2636
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2637
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminPlayersApi.listAltExemptions']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2638
+ return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2639
+ });
2640
+ },
2641
+ /**
2642
+ * Paginated, newest first. Soft-deleted notes are included; the UI styles them as struck-through.
2643
+ * @summary List staff notes on a player
2644
+ * @param {string} uuid Player Minecraft UUID
2645
+ * @param {Pageable} pageable
2646
+ * @param {*} [options] Override http request option.
2647
+ * @throws {RequiredError}
2648
+ */
2649
+ listPlayerNotes(uuid, pageable, options) {
2650
+ return __awaiter(this, void 0, void 0, function* () {
2651
+ var _a, _b, _c;
2652
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.listPlayerNotes(uuid, pageable, options);
2653
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2654
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminPlayersApi.listPlayerNotes']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2655
+ return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2656
+ });
2657
+ },
2658
+ /**
2659
+ * Returns up to 500 players ordered by most recently seen. Optionally filter by UUID or username substring.
2660
+ * @summary List players
2661
+ * @param {Pageable} pageable
2662
+ * @param {string | null} [search] Optional search string matched against UUID or username (case-insensitive substring)
2663
+ * @param {*} [options] Override http request option.
2664
+ * @throws {RequiredError}
2665
+ */
2666
+ listPlayers(pageable, search, options) {
2667
+ return __awaiter(this, void 0, void 0, function* () {
2668
+ var _a, _b, _c;
2669
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.listPlayers(pageable, search, options);
2670
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2671
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminPlayersApi.listPlayers']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2672
+ return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2673
+ });
2674
+ },
2675
+ /**
2676
+ * 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.
2677
+ * @summary List a player\'s session history
2678
+ * @param {string} uuid Player Minecraft UUID
2679
+ * @param {Pageable} pageable
2680
+ * @param {*} [options] Override http request option.
2681
+ * @throws {RequiredError}
2682
+ */
2683
+ listSessions(uuid, pageable, options) {
2684
+ return __awaiter(this, void 0, void 0, function* () {
2685
+ var _a, _b, _c;
2686
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.listSessions(uuid, pageable, options);
2687
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2688
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminPlayersApi.listSessions']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2689
+ return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2690
+ });
2691
+ },
2692
+ /**
2693
+ * Delete the symmetric exemption pair between two players. Both directions are removed.
2694
+ * @summary Remove an alt exemption
2695
+ * @param {string} uuid Player Minecraft UUID
2696
+ * @param {string} altPlayerUuid UUID of the alt to remove from exemption
2697
+ * @param {*} [options] Override http request option.
2698
+ * @throws {RequiredError}
2699
+ */
2700
+ removeAltExemption(uuid, altPlayerUuid, options) {
2701
+ return __awaiter(this, void 0, void 0, function* () {
2702
+ var _a, _b, _c;
2703
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.removeAltExemption(uuid, altPlayerUuid, options);
2704
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2705
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminPlayersApi.removeAltExemption']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2706
+ return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2707
+ });
2708
+ },
2709
+ /**
2710
+ * 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.
2711
+ * @summary Revoke a propagated punishment link
2712
+ * @param {string} uuid Player Minecraft UUID (for routing/audit context; the link id is the source of truth)
2713
+ * @param {number} playerPunishmentId player_punishment row id
2714
+ * @param {*} [options] Override http request option.
2715
+ * @throws {RequiredError}
2716
+ */
2717
+ revokePropagatedLink(uuid, playerPunishmentId, options) {
2718
+ return __awaiter(this, void 0, void 0, function* () {
2719
+ var _a, _b, _c;
2720
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.revokePropagatedLink(uuid, playerPunishmentId, options);
2721
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2722
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminPlayersApi.revokePropagatedLink']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2723
+ return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2724
+ });
2725
+ },
2726
+ /**
2727
+ * 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.
2728
+ * @summary Toggle aggressive-mode immunity
2729
+ * @param {string} uuid Player Minecraft UUID
2730
+ * @param {AdminSetAggressiveModeImmunityRequest} adminSetAggressiveModeImmunityRequest
2731
+ * @param {*} [options] Override http request option.
2732
+ * @throws {RequiredError}
2733
+ */
2734
+ setAggressiveModeImmunity(uuid, adminSetAggressiveModeImmunityRequest, options) {
2735
+ return __awaiter(this, void 0, void 0, function* () {
2736
+ var _a, _b, _c;
2737
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.setAggressiveModeImmunity(uuid, adminSetAggressiveModeImmunityRequest, options);
2738
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2739
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminPlayersApi.setAggressiveModeImmunity']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2740
+ return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2741
+ });
2742
+ },
2743
+ /**
2744
+ * 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.
2745
+ * @summary Trust factor breakdown for a player
2746
+ * @param {string} uuid Player Minecraft UUID
2747
+ * @param {*} [options] Override http request option.
2748
+ * @throws {RequiredError}
2749
+ */
2750
+ trustFactorBreakdown(uuid, options) {
2751
+ return __awaiter(this, void 0, void 0, function* () {
2752
+ var _a, _b, _c;
2753
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.trustFactorBreakdown(uuid, options);
2754
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2755
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminPlayersApi.trustFactorBreakdown']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2756
+ return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2757
+ });
2758
+ },
2759
+ /**
2760
+ * 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).
2761
+ * @summary Trust factor history for a player
2762
+ * @param {string} uuid Player Minecraft UUID
2763
+ * @param {number} [days] Window in days (default 30, max 365)
2764
+ * @param {*} [options] Override http request option.
2765
+ * @throws {RequiredError}
2766
+ */
2767
+ trustFactorHistory(uuid, days, options) {
2768
+ return __awaiter(this, void 0, void 0, function* () {
2769
+ var _a, _b, _c;
2770
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.trustFactorHistory(uuid, days, options);
2771
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2772
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminPlayersApi.trustFactorHistory']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2773
+ return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2774
+ });
2775
+ },
2776
+ };
2777
+ };
2778
+ exports.AdminPlayersApiFp = AdminPlayersApiFp;
2779
+ /**
2780
+ * AdminPlayersApi - factory interface
2781
+ */
2782
+ const AdminPlayersApiFactory = function (configuration, basePath, axios) {
2783
+ const localVarFp = (0, exports.AdminPlayersApiFp)(configuration);
2784
+ return {
2785
+ /**
2786
+ * 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.
2787
+ * @summary Add an alt exemption
2788
+ * @param {string} uuid Player Minecraft UUID
2789
+ * @param {AdminCreateAltExemptionRequest} adminCreateAltExemptionRequest
2790
+ * @param {*} [options] Override http request option.
2791
+ * @throws {RequiredError}
2792
+ */
2793
+ addAltExemption(uuid, adminCreateAltExemptionRequest, options) {
2794
+ return localVarFp.addAltExemption(uuid, adminCreateAltExemptionRequest, options).then((request) => request(axios, basePath));
2795
+ },
2796
+ /**
2797
+ * 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.
2798
+ * @summary Bulk-revoke PROPAGATED links by source
2799
+ * @param {AdminBulkRevokeRequest} adminBulkRevokeRequest
2800
+ * @param {*} [options] Override http request option.
2801
+ * @throws {RequiredError}
2802
+ */
2803
+ bulkRevokePropagated(adminBulkRevokeRequest, options) {
2804
+ return localVarFp.bulkRevokePropagated(adminBulkRevokeRequest, options).then((request) => request(axios, basePath));
2805
+ },
2806
+ /**
2807
+ * Appends a free-form note (1–4000 chars). Notes are not editable — to revise, post a new one and soft-delete the old.
2808
+ * @summary Create a staff note on a player
2809
+ * @param {string} uuid Player Minecraft UUID
2810
+ * @param {AdminCreatePlayerNoteRequest} adminCreatePlayerNoteRequest
2811
+ * @param {*} [options] Override http request option.
2812
+ * @throws {RequiredError}
2813
+ */
2814
+ createPlayerNote(uuid, adminCreatePlayerNoteRequest, options) {
2815
+ return localVarFp.createPlayerNote(uuid, adminCreatePlayerNoteRequest, options).then((request) => request(axios, basePath));
2816
+ },
2817
+ /**
2818
+ * Marks the note as deleted but keeps the row for audit. Idempotent — 404 if already deleted or unknown id.
2819
+ * @summary Soft-delete a staff note
2820
+ * @param {string} uuid Player Minecraft UUID (routing only)
2821
+ * @param {number} noteId Note id
2822
+ * @param {*} [options] Override http request option.
2823
+ * @throws {RequiredError}
2824
+ */
2825
+ deletePlayerNote(uuid, noteId, options) {
2826
+ return localVarFp.deletePlayerNote(uuid, noteId, options).then((request) => request(axios, basePath));
2827
+ },
2828
+ /**
2829
+ * Returns full detail for a single player including all known usernames and punishment scoring.
2830
+ * @summary Get player detail
2831
+ * @param {string} uuid Player Minecraft UUID
2832
+ * @param {*} [options] Override http request option.
2833
+ * @throws {RequiredError}
2834
+ */
2835
+ getPlayer(uuid, options) {
2836
+ return localVarFp.getPlayer(uuid, options).then((request) => request(axios, basePath));
2837
+ },
2838
+ /**
2839
+ * 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.
2840
+ * @summary List a player\'s alt accounts
2841
+ * @param {string} uuid Player Minecraft UUID
2842
+ * @param {Pageable} pageable
2843
+ * @param {*} [options] Override http request option.
2844
+ * @throws {RequiredError}
2845
+ */
2846
+ getPlayerAlts(uuid, pageable, options) {
2847
+ return localVarFp.getPlayerAlts(uuid, pageable, options).then((request) => request(axios, basePath));
2848
+ },
2849
+ /**
2850
+ * 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.
2851
+ * @summary List a player\'s connection history
2852
+ * @param {string} uuid Player Minecraft UUID
2853
+ * @param {Pageable} pageable
2854
+ * @param {*} [options] Override http request option.
2855
+ * @throws {RequiredError}
2856
+ */
2857
+ getPlayerConnections(uuid, pageable, options) {
2858
+ return localVarFp.getPlayerConnections(uuid, pageable, options).then((request) => request(axios, basePath));
2859
+ },
2860
+ /**
2861
+ * 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.
2862
+ * @summary List a player\'s full punishment history
2863
+ * @param {string} uuid Player Minecraft UUID
2864
+ * @param {Pageable} pageable
2865
+ * @param {*} [options] Override http request option.
2866
+ * @throws {RequiredError}
2867
+ */
2868
+ getPlayerPunishments(uuid, pageable, options) {
2869
+ return localVarFp.getPlayerPunishments(uuid, pageable, options).then((request) => request(axios, basePath));
2870
+ },
2871
+ /**
2872
+ * 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.
2873
+ * @summary Get a player\'s aggregate session stats
2874
+ * @param {string} uuid Player Minecraft UUID
2875
+ * @param {*} [options] Override http request option.
2876
+ * @throws {RequiredError}
2877
+ */
2878
+ getSessionStats(uuid, options) {
2879
+ return localVarFp.getSessionStats(uuid, options).then((request) => request(axios, basePath));
2880
+ },
2881
+ /**
2882
+ * 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.
2883
+ * @summary List a player\'s alt exemptions
2884
+ * @param {string} uuid Player Minecraft UUID
2885
+ * @param {Pageable} pageable
2886
+ * @param {*} [options] Override http request option.
2887
+ * @throws {RequiredError}
2888
+ */
2889
+ listAltExemptions(uuid, pageable, options) {
2890
+ return localVarFp.listAltExemptions(uuid, pageable, options).then((request) => request(axios, basePath));
2891
+ },
2892
+ /**
2893
+ * Paginated, newest first. Soft-deleted notes are included; the UI styles them as struck-through.
2894
+ * @summary List staff notes on a player
2895
+ * @param {string} uuid Player Minecraft UUID
2896
+ * @param {Pageable} pageable
2897
+ * @param {*} [options] Override http request option.
2898
+ * @throws {RequiredError}
2899
+ */
2900
+ listPlayerNotes(uuid, pageable, options) {
2901
+ return localVarFp.listPlayerNotes(uuid, pageable, options).then((request) => request(axios, basePath));
2902
+ },
2903
+ /**
2904
+ * Returns up to 500 players ordered by most recently seen. Optionally filter by UUID or username substring.
2905
+ * @summary List players
2906
+ * @param {Pageable} pageable
2907
+ * @param {string | null} [search] Optional search string matched against UUID or username (case-insensitive substring)
2908
+ * @param {*} [options] Override http request option.
2909
+ * @throws {RequiredError}
2910
+ */
2911
+ listPlayers(pageable, search, options) {
2912
+ return localVarFp.listPlayers(pageable, search, options).then((request) => request(axios, basePath));
2913
+ },
2914
+ /**
2915
+ * 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.
2916
+ * @summary List a player\'s session history
2917
+ * @param {string} uuid Player Minecraft UUID
2918
+ * @param {Pageable} pageable
2919
+ * @param {*} [options] Override http request option.
2920
+ * @throws {RequiredError}
2921
+ */
2922
+ listSessions(uuid, pageable, options) {
2923
+ return localVarFp.listSessions(uuid, pageable, options).then((request) => request(axios, basePath));
2924
+ },
2925
+ /**
2926
+ * Delete the symmetric exemption pair between two players. Both directions are removed.
2927
+ * @summary Remove an alt exemption
2928
+ * @param {string} uuid Player Minecraft UUID
2929
+ * @param {string} altPlayerUuid UUID of the alt to remove from exemption
2930
+ * @param {*} [options] Override http request option.
2931
+ * @throws {RequiredError}
2932
+ */
2933
+ removeAltExemption(uuid, altPlayerUuid, options) {
2934
+ return localVarFp.removeAltExemption(uuid, altPlayerUuid, options).then((request) => request(axios, basePath));
2935
+ },
2936
+ /**
2937
+ * 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.
2938
+ * @summary Revoke a propagated punishment link
2939
+ * @param {string} uuid Player Minecraft UUID (for routing/audit context; the link id is the source of truth)
2940
+ * @param {number} playerPunishmentId player_punishment row id
2941
+ * @param {*} [options] Override http request option.
2942
+ * @throws {RequiredError}
2943
+ */
2944
+ revokePropagatedLink(uuid, playerPunishmentId, options) {
2945
+ return localVarFp.revokePropagatedLink(uuid, playerPunishmentId, options).then((request) => request(axios, basePath));
2946
+ },
2947
+ /**
2948
+ * 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.
2949
+ * @summary Toggle aggressive-mode immunity
2950
+ * @param {string} uuid Player Minecraft UUID
2951
+ * @param {AdminSetAggressiveModeImmunityRequest} adminSetAggressiveModeImmunityRequest
2952
+ * @param {*} [options] Override http request option.
2953
+ * @throws {RequiredError}
2954
+ */
2955
+ setAggressiveModeImmunity(uuid, adminSetAggressiveModeImmunityRequest, options) {
2956
+ return localVarFp.setAggressiveModeImmunity(uuid, adminSetAggressiveModeImmunityRequest, options).then((request) => request(axios, basePath));
2957
+ },
2958
+ /**
2959
+ * 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.
2960
+ * @summary Trust factor breakdown for a player
2961
+ * @param {string} uuid Player Minecraft UUID
2962
+ * @param {*} [options] Override http request option.
2963
+ * @throws {RequiredError}
2964
+ */
2965
+ trustFactorBreakdown(uuid, options) {
2966
+ return localVarFp.trustFactorBreakdown(uuid, options).then((request) => request(axios, basePath));
2967
+ },
2968
+ /**
2969
+ * 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).
2970
+ * @summary Trust factor history for a player
2971
+ * @param {string} uuid Player Minecraft UUID
2972
+ * @param {number} [days] Window in days (default 30, max 365)
2973
+ * @param {*} [options] Override http request option.
2974
+ * @throws {RequiredError}
2975
+ */
2976
+ trustFactorHistory(uuid, days, options) {
2977
+ return localVarFp.trustFactorHistory(uuid, days, options).then((request) => request(axios, basePath));
2978
+ },
2979
+ };
2980
+ };
2981
+ exports.AdminPlayersApiFactory = AdminPlayersApiFactory;
2982
+ /**
2983
+ * AdminPlayersApi - object-oriented interface
2984
+ */
2985
+ class AdminPlayersApi extends base_1.BaseAPI {
2986
+ /**
2987
+ * 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.
2988
+ * @summary Add an alt exemption
2989
+ * @param {string} uuid Player Minecraft UUID
2990
+ * @param {AdminCreateAltExemptionRequest} adminCreateAltExemptionRequest
2991
+ * @param {*} [options] Override http request option.
2992
+ * @throws {RequiredError}
2993
+ */
2994
+ addAltExemption(uuid, adminCreateAltExemptionRequest, options) {
2995
+ return (0, exports.AdminPlayersApiFp)(this.configuration).addAltExemption(uuid, adminCreateAltExemptionRequest, options).then((request) => request(this.axios, this.basePath));
2996
+ }
2997
+ /**
2998
+ * 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.
2999
+ * @summary Bulk-revoke PROPAGATED links by source
3000
+ * @param {AdminBulkRevokeRequest} adminBulkRevokeRequest
3001
+ * @param {*} [options] Override http request option.
3002
+ * @throws {RequiredError}
3003
+ */
3004
+ bulkRevokePropagated(adminBulkRevokeRequest, options) {
3005
+ return (0, exports.AdminPlayersApiFp)(this.configuration).bulkRevokePropagated(adminBulkRevokeRequest, options).then((request) => request(this.axios, this.basePath));
3006
+ }
3007
+ /**
3008
+ * Appends a free-form note (1–4000 chars). Notes are not editable — to revise, post a new one and soft-delete the old.
3009
+ * @summary Create a staff note on a player
3010
+ * @param {string} uuid Player Minecraft UUID
3011
+ * @param {AdminCreatePlayerNoteRequest} adminCreatePlayerNoteRequest
3012
+ * @param {*} [options] Override http request option.
3013
+ * @throws {RequiredError}
3014
+ */
3015
+ createPlayerNote(uuid, adminCreatePlayerNoteRequest, options) {
3016
+ return (0, exports.AdminPlayersApiFp)(this.configuration).createPlayerNote(uuid, adminCreatePlayerNoteRequest, options).then((request) => request(this.axios, this.basePath));
3017
+ }
3018
+ /**
3019
+ * Marks the note as deleted but keeps the row for audit. Idempotent — 404 if already deleted or unknown id.
3020
+ * @summary Soft-delete a staff note
3021
+ * @param {string} uuid Player Minecraft UUID (routing only)
3022
+ * @param {number} noteId Note id
3023
+ * @param {*} [options] Override http request option.
3024
+ * @throws {RequiredError}
3025
+ */
3026
+ deletePlayerNote(uuid, noteId, options) {
3027
+ return (0, exports.AdminPlayersApiFp)(this.configuration).deletePlayerNote(uuid, noteId, options).then((request) => request(this.axios, this.basePath));
3028
+ }
3029
+ /**
3030
+ * Returns full detail for a single player including all known usernames and punishment scoring.
3031
+ * @summary Get player detail
3032
+ * @param {string} uuid Player Minecraft UUID
3033
+ * @param {*} [options] Override http request option.
3034
+ * @throws {RequiredError}
3035
+ */
3036
+ getPlayer(uuid, options) {
3037
+ return (0, exports.AdminPlayersApiFp)(this.configuration).getPlayer(uuid, options).then((request) => request(this.axios, this.basePath));
3038
+ }
3039
+ /**
3040
+ * 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.
3041
+ * @summary List a player\'s alt accounts
3042
+ * @param {string} uuid Player Minecraft UUID
3043
+ * @param {Pageable} pageable
3044
+ * @param {*} [options] Override http request option.
3045
+ * @throws {RequiredError}
3046
+ */
3047
+ getPlayerAlts(uuid, pageable, options) {
3048
+ return (0, exports.AdminPlayersApiFp)(this.configuration).getPlayerAlts(uuid, pageable, options).then((request) => request(this.axios, this.basePath));
3049
+ }
3050
+ /**
3051
+ * 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.
3052
+ * @summary List a player\'s connection history
3053
+ * @param {string} uuid Player Minecraft UUID
3054
+ * @param {Pageable} pageable
3055
+ * @param {*} [options] Override http request option.
3056
+ * @throws {RequiredError}
3057
+ */
3058
+ getPlayerConnections(uuid, pageable, options) {
3059
+ return (0, exports.AdminPlayersApiFp)(this.configuration).getPlayerConnections(uuid, pageable, options).then((request) => request(this.axios, this.basePath));
3060
+ }
3061
+ /**
3062
+ * 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.
3063
+ * @summary List a player\'s full punishment history
3064
+ * @param {string} uuid Player Minecraft UUID
3065
+ * @param {Pageable} pageable
3066
+ * @param {*} [options] Override http request option.
3067
+ * @throws {RequiredError}
3068
+ */
3069
+ getPlayerPunishments(uuid, pageable, options) {
3070
+ return (0, exports.AdminPlayersApiFp)(this.configuration).getPlayerPunishments(uuid, pageable, options).then((request) => request(this.axios, this.basePath));
3071
+ }
3072
+ /**
3073
+ * 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.
3074
+ * @summary Get a player\'s aggregate session stats
3075
+ * @param {string} uuid Player Minecraft UUID
3076
+ * @param {*} [options] Override http request option.
3077
+ * @throws {RequiredError}
3078
+ */
3079
+ getSessionStats(uuid, options) {
3080
+ return (0, exports.AdminPlayersApiFp)(this.configuration).getSessionStats(uuid, options).then((request) => request(this.axios, this.basePath));
3081
+ }
3082
+ /**
3083
+ * 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.
3084
+ * @summary List a player\'s alt exemptions
3085
+ * @param {string} uuid Player Minecraft UUID
3086
+ * @param {Pageable} pageable
3087
+ * @param {*} [options] Override http request option.
3088
+ * @throws {RequiredError}
3089
+ */
3090
+ listAltExemptions(uuid, pageable, options) {
3091
+ return (0, exports.AdminPlayersApiFp)(this.configuration).listAltExemptions(uuid, pageable, options).then((request) => request(this.axios, this.basePath));
3092
+ }
3093
+ /**
3094
+ * Paginated, newest first. Soft-deleted notes are included; the UI styles them as struck-through.
3095
+ * @summary List staff notes on a player
3096
+ * @param {string} uuid Player Minecraft UUID
3097
+ * @param {Pageable} pageable
3098
+ * @param {*} [options] Override http request option.
3099
+ * @throws {RequiredError}
3100
+ */
3101
+ listPlayerNotes(uuid, pageable, options) {
3102
+ return (0, exports.AdminPlayersApiFp)(this.configuration).listPlayerNotes(uuid, pageable, options).then((request) => request(this.axios, this.basePath));
3103
+ }
3104
+ /**
3105
+ * Returns up to 500 players ordered by most recently seen. Optionally filter by UUID or username substring.
3106
+ * @summary List players
3107
+ * @param {Pageable} pageable
3108
+ * @param {string | null} [search] Optional search string matched against UUID or username (case-insensitive substring)
3109
+ * @param {*} [options] Override http request option.
3110
+ * @throws {RequiredError}
3111
+ */
3112
+ listPlayers(pageable, search, options) {
3113
+ return (0, exports.AdminPlayersApiFp)(this.configuration).listPlayers(pageable, search, options).then((request) => request(this.axios, this.basePath));
3114
+ }
3115
+ /**
3116
+ * 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.
3117
+ * @summary List a player\'s session history
3118
+ * @param {string} uuid Player Minecraft UUID
3119
+ * @param {Pageable} pageable
3120
+ * @param {*} [options] Override http request option.
3121
+ * @throws {RequiredError}
3122
+ */
3123
+ listSessions(uuid, pageable, options) {
3124
+ return (0, exports.AdminPlayersApiFp)(this.configuration).listSessions(uuid, pageable, options).then((request) => request(this.axios, this.basePath));
3125
+ }
1293
3126
  /**
1294
- * Returns full detail for a single player including all known usernames and punishment scoring.
1295
- * @summary Get player detail
3127
+ * Delete the symmetric exemption pair between two players. Both directions are removed.
3128
+ * @summary Remove an alt exemption
1296
3129
  * @param {string} uuid Player Minecraft UUID
3130
+ * @param {string} altPlayerUuid UUID of the alt to remove from exemption
1297
3131
  * @param {*} [options] Override http request option.
1298
3132
  * @throws {RequiredError}
1299
3133
  */
1300
- getPlayer(uuid, options) {
1301
- return (0, exports.AdminPlayersApiFp)(this.configuration).getPlayer(uuid, options).then((request) => request(this.axios, this.basePath));
3134
+ removeAltExemption(uuid, altPlayerUuid, options) {
3135
+ return (0, exports.AdminPlayersApiFp)(this.configuration).removeAltExemption(uuid, altPlayerUuid, options).then((request) => request(this.axios, this.basePath));
1302
3136
  }
1303
3137
  /**
1304
- * Returns up to 500 players ordered by most recently seen. Optionally filter by UUID or username substring.
1305
- * @summary List players
1306
- * @param {number} page Page number (1-indexed)
1307
- * @param {number} limit Page size
1308
- * @param {string | null} [search] Optional search string matched against UUID or username (case-insensitive substring)
3138
+ * 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.
3139
+ * @summary Revoke a propagated punishment link
3140
+ * @param {string} uuid Player Minecraft UUID (for routing/audit context; the link id is the source of truth)
3141
+ * @param {number} playerPunishmentId player_punishment row id
3142
+ * @param {*} [options] Override http request option.
3143
+ * @throws {RequiredError}
3144
+ */
3145
+ revokePropagatedLink(uuid, playerPunishmentId, options) {
3146
+ return (0, exports.AdminPlayersApiFp)(this.configuration).revokePropagatedLink(uuid, playerPunishmentId, options).then((request) => request(this.axios, this.basePath));
3147
+ }
3148
+ /**
3149
+ * 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.
3150
+ * @summary Toggle aggressive-mode immunity
3151
+ * @param {string} uuid Player Minecraft UUID
3152
+ * @param {AdminSetAggressiveModeImmunityRequest} adminSetAggressiveModeImmunityRequest
3153
+ * @param {*} [options] Override http request option.
3154
+ * @throws {RequiredError}
3155
+ */
3156
+ setAggressiveModeImmunity(uuid, adminSetAggressiveModeImmunityRequest, options) {
3157
+ return (0, exports.AdminPlayersApiFp)(this.configuration).setAggressiveModeImmunity(uuid, adminSetAggressiveModeImmunityRequest, options).then((request) => request(this.axios, this.basePath));
3158
+ }
3159
+ /**
3160
+ * 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.
3161
+ * @summary Trust factor breakdown for a player
3162
+ * @param {string} uuid Player Minecraft UUID
3163
+ * @param {*} [options] Override http request option.
3164
+ * @throws {RequiredError}
3165
+ */
3166
+ trustFactorBreakdown(uuid, options) {
3167
+ return (0, exports.AdminPlayersApiFp)(this.configuration).trustFactorBreakdown(uuid, options).then((request) => request(this.axios, this.basePath));
3168
+ }
3169
+ /**
3170
+ * 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).
3171
+ * @summary Trust factor history for a player
3172
+ * @param {string} uuid Player Minecraft UUID
3173
+ * @param {number} [days] Window in days (default 30, max 365)
1309
3174
  * @param {*} [options] Override http request option.
1310
3175
  * @throws {RequiredError}
1311
3176
  */
1312
- listPlayers(page, limit, search, options) {
1313
- return (0, exports.AdminPlayersApiFp)(this.configuration).listPlayers(page, limit, search, options).then((request) => request(this.axios, this.basePath));
3177
+ trustFactorHistory(uuid, days, options) {
3178
+ return (0, exports.AdminPlayersApiFp)(this.configuration).trustFactorHistory(uuid, days, options).then((request) => request(this.axios, this.basePath));
1314
3179
  }
1315
3180
  }
1316
3181
  exports.AdminPlayersApi = AdminPlayersApi;
@@ -1387,25 +3252,59 @@ const AdminPunishmentsApiAxiosParamCreator = function (configuration) {
1387
3252
  options: localVarRequestOptions,
1388
3253
  };
1389
3254
  }),
3255
+ /**
3256
+ * 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.
3257
+ * @summary Edit a punishment
3258
+ * @param {number} id Punishment id
3259
+ * @param {AdminUpdatePunishmentRequest} adminUpdatePunishmentRequest
3260
+ * @param {*} [options] Override http request option.
3261
+ * @throws {RequiredError}
3262
+ */
3263
+ editPunishment: (id_1, adminUpdatePunishmentRequest_1, ...args_1) => __awaiter(this, [id_1, adminUpdatePunishmentRequest_1, ...args_1], void 0, function* (id, adminUpdatePunishmentRequest, options = {}) {
3264
+ // verify required parameter 'id' is not null or undefined
3265
+ (0, common_1.assertParamExists)('editPunishment', 'id', id);
3266
+ // verify required parameter 'adminUpdatePunishmentRequest' is not null or undefined
3267
+ (0, common_1.assertParamExists)('editPunishment', 'adminUpdatePunishmentRequest', adminUpdatePunishmentRequest);
3268
+ const localVarPath = `/admin/punishment/{id}`
3269
+ .replace(`{${"id"}}`, encodeURIComponent(String(id)));
3270
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
3271
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
3272
+ let baseOptions;
3273
+ if (configuration) {
3274
+ baseOptions = configuration.baseOptions;
3275
+ }
3276
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'PATCH' }, baseOptions), options);
3277
+ const localVarHeaderParameter = {};
3278
+ const localVarQueryParameter = {};
3279
+ // authentication DiscordAuth required
3280
+ // http bearer authentication required
3281
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
3282
+ localVarHeaderParameter['Content-Type'] = 'application/json';
3283
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
3284
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
3285
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
3286
+ localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(adminUpdatePunishmentRequest, localVarRequestOptions, configuration);
3287
+ return {
3288
+ url: (0, common_1.toPathString)(localVarUrlObj),
3289
+ options: localVarRequestOptions,
3290
+ };
3291
+ }),
1390
3292
  /**
1391
3293
  * Returns a paginated list of punishments with optional filtering by player UUID, username, IP address, type, and date range.
1392
3294
  * @summary List punishments
1393
- * @param {number} page Page number (1-indexed)
1394
- * @param {number} limit Page size
1395
- * @param {string | null} [uuid] Filter by player UUID
1396
- * @param {string | null} [username] Filter by player username (case-insensitive substring match)
1397
- * @param {string | null} [ipAddress] Filter by IP address
1398
- * @param {Array<PunishmentType> | null} [type] Filter by punishment type. Repeatable.
1399
- * @param {number | null} [issuedAfter] Filter punishments issued after this epoch timestamp (ms)
1400
- * @param {number | null} [issuedBefore] Filter punishments issued before this epoch timestamp (ms)
1401
- * @param {*} [options] Override http request option.
1402
- * @throws {RequiredError}
1403
- */
1404
- 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 = {}) {
1405
- // verify required parameter 'page' is not null or undefined
1406
- (0, common_1.assertParamExists)('getPunishments', 'page', page);
1407
- // verify required parameter 'limit' is not null or undefined
1408
- (0, common_1.assertParamExists)('getPunishments', 'limit', limit);
3295
+ * @param {Pageable} pageable
3296
+ * @param {string | null} [uuid]
3297
+ * @param {string | null} [username]
3298
+ * @param {string | null} [ipAddress]
3299
+ * @param {Array<PunishmentType> | null} [type]
3300
+ * @param {number | null} [issuedAfter]
3301
+ * @param {number | null} [issuedBefore]
3302
+ * @param {*} [options] Override http request option.
3303
+ * @throws {RequiredError}
3304
+ */
3305
+ 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 = {}) {
3306
+ // verify required parameter 'pageable' is not null or undefined
3307
+ (0, common_1.assertParamExists)('getPunishments', 'pageable', pageable);
1409
3308
  const localVarPath = `/admin/punishment`;
1410
3309
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
1411
3310
  const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
@@ -1437,11 +3336,8 @@ const AdminPunishmentsApiAxiosParamCreator = function (configuration) {
1437
3336
  if (issuedBefore !== undefined) {
1438
3337
  localVarQueryParameter['issuedBefore'] = issuedBefore;
1439
3338
  }
1440
- if (page !== undefined) {
1441
- localVarQueryParameter['page'] = page;
1442
- }
1443
- if (limit !== undefined) {
1444
- localVarQueryParameter['limit'] = limit;
3339
+ if (pageable !== undefined) {
3340
+ localVarQueryParameter['pageable'] = pageable;
1445
3341
  }
1446
3342
  localVarHeaderParameter['Accept'] = 'application/json';
1447
3343
  (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
@@ -1529,156 +3425,385 @@ const AdminPunishmentsApiFp = function (configuration) {
1529
3425
  });
1530
3426
  },
1531
3427
  /**
1532
- * Returns a paginated list of punishments with optional filtering by player UUID, username, IP address, type, and date range.
1533
- * @summary List punishments
1534
- * @param {number} page Page number (1-indexed)
1535
- * @param {number} limit Page size
1536
- * @param {string | null} [uuid] Filter by player UUID
1537
- * @param {string | null} [username] Filter by player username (case-insensitive substring match)
1538
- * @param {string | null} [ipAddress] Filter by IP address
1539
- * @param {Array<PunishmentType> | null} [type] Filter by punishment type. Repeatable.
1540
- * @param {number | null} [issuedAfter] Filter punishments issued after this epoch timestamp (ms)
1541
- * @param {number | null} [issuedBefore] Filter punishments issued before this epoch timestamp (ms)
3428
+ * 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.
3429
+ * @summary Edit a punishment
3430
+ * @param {number} id Punishment id
3431
+ * @param {AdminUpdatePunishmentRequest} adminUpdatePunishmentRequest
3432
+ * @param {*} [options] Override http request option.
3433
+ * @throws {RequiredError}
3434
+ */
3435
+ editPunishment(id, adminUpdatePunishmentRequest, options) {
3436
+ return __awaiter(this, void 0, void 0, function* () {
3437
+ var _a, _b, _c;
3438
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.editPunishment(id, adminUpdatePunishmentRequest, options);
3439
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
3440
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminPunishmentsApi.editPunishment']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
3441
+ return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
3442
+ });
3443
+ },
3444
+ /**
3445
+ * Returns a paginated list of punishments with optional filtering by player UUID, username, IP address, type, and date range.
3446
+ * @summary List punishments
3447
+ * @param {Pageable} pageable
3448
+ * @param {string | null} [uuid]
3449
+ * @param {string | null} [username]
3450
+ * @param {string | null} [ipAddress]
3451
+ * @param {Array<PunishmentType> | null} [type]
3452
+ * @param {number | null} [issuedAfter]
3453
+ * @param {number | null} [issuedBefore]
3454
+ * @param {*} [options] Override http request option.
3455
+ * @throws {RequiredError}
3456
+ */
3457
+ getPunishments(pageable, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options) {
3458
+ return __awaiter(this, void 0, void 0, function* () {
3459
+ var _a, _b, _c;
3460
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.getPunishments(pageable, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options);
3461
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
3462
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminPunishmentsApi.getPunishments']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
3463
+ return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
3464
+ });
3465
+ },
3466
+ /**
3467
+ * Search for players by UUID or username, or look up all players associated with an IP address.
3468
+ * @summary Search punishment targets
3469
+ * @param {string} q UUID, username, or partial/full IP address to search for
3470
+ * @param {*} [options] Override http request option.
3471
+ * @throws {RequiredError}
3472
+ */
3473
+ searchTargets(q, options) {
3474
+ return __awaiter(this, void 0, void 0, function* () {
3475
+ var _a, _b, _c;
3476
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.searchTargets(q, options);
3477
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
3478
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminPunishmentsApi.searchTargets']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
3479
+ return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
3480
+ });
3481
+ },
3482
+ };
3483
+ };
3484
+ exports.AdminPunishmentsApiFp = AdminPunishmentsApiFp;
3485
+ /**
3486
+ * AdminPunishmentsApi - factory interface
3487
+ */
3488
+ const AdminPunishmentsApiFactory = function (configuration, basePath, axios) {
3489
+ const localVarFp = (0, exports.AdminPunishmentsApiFp)(configuration);
3490
+ return {
3491
+ /**
3492
+ * Apply a punishment to one or more targets. The authenticated user is recorded as the issuer.
3493
+ * @summary Apply punishment
3494
+ * @param {AdminApplyPunishmentRequest} adminApplyPunishmentRequest
3495
+ * @param {*} [options] Override http request option.
3496
+ * @throws {RequiredError}
3497
+ */
3498
+ applyPunishment(adminApplyPunishmentRequest, options) {
3499
+ return localVarFp.applyPunishment(adminApplyPunishmentRequest, options).then((request) => request(axios, basePath));
3500
+ },
3501
+ /**
3502
+ * Preview the impact of a punishment across one or more targets. No changes are made.
3503
+ * @summary Evaluate punishment impact
3504
+ * @param {AdminCreatePunishmentDraftRequest} adminCreatePunishmentDraftRequest
3505
+ * @param {*} [options] Override http request option.
3506
+ * @throws {RequiredError}
3507
+ */
3508
+ createDraft(adminCreatePunishmentDraftRequest, options) {
3509
+ return localVarFp.createDraft(adminCreatePunishmentDraftRequest, options).then((request) => request(axios, basePath));
3510
+ },
3511
+ /**
3512
+ * 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.
3513
+ * @summary Edit a punishment
3514
+ * @param {number} id Punishment id
3515
+ * @param {AdminUpdatePunishmentRequest} adminUpdatePunishmentRequest
3516
+ * @param {*} [options] Override http request option.
3517
+ * @throws {RequiredError}
3518
+ */
3519
+ editPunishment(id, adminUpdatePunishmentRequest, options) {
3520
+ return localVarFp.editPunishment(id, adminUpdatePunishmentRequest, options).then((request) => request(axios, basePath));
3521
+ },
3522
+ /**
3523
+ * Returns a paginated list of punishments with optional filtering by player UUID, username, IP address, type, and date range.
3524
+ * @summary List punishments
3525
+ * @param {Pageable} pageable
3526
+ * @param {string | null} [uuid]
3527
+ * @param {string | null} [username]
3528
+ * @param {string | null} [ipAddress]
3529
+ * @param {Array<PunishmentType> | null} [type]
3530
+ * @param {number | null} [issuedAfter]
3531
+ * @param {number | null} [issuedBefore]
3532
+ * @param {*} [options] Override http request option.
3533
+ * @throws {RequiredError}
3534
+ */
3535
+ getPunishments(pageable, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options) {
3536
+ return localVarFp.getPunishments(pageable, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options).then((request) => request(axios, basePath));
3537
+ },
3538
+ /**
3539
+ * Search for players by UUID or username, or look up all players associated with an IP address.
3540
+ * @summary Search punishment targets
3541
+ * @param {string} q UUID, username, or partial/full IP address to search for
3542
+ * @param {*} [options] Override http request option.
3543
+ * @throws {RequiredError}
3544
+ */
3545
+ searchTargets(q, options) {
3546
+ return localVarFp.searchTargets(q, options).then((request) => request(axios, basePath));
3547
+ },
3548
+ };
3549
+ };
3550
+ exports.AdminPunishmentsApiFactory = AdminPunishmentsApiFactory;
3551
+ /**
3552
+ * AdminPunishmentsApi - object-oriented interface
3553
+ */
3554
+ class AdminPunishmentsApi extends base_1.BaseAPI {
3555
+ /**
3556
+ * Apply a punishment to one or more targets. The authenticated user is recorded as the issuer.
3557
+ * @summary Apply punishment
3558
+ * @param {AdminApplyPunishmentRequest} adminApplyPunishmentRequest
3559
+ * @param {*} [options] Override http request option.
3560
+ * @throws {RequiredError}
3561
+ */
3562
+ applyPunishment(adminApplyPunishmentRequest, options) {
3563
+ return (0, exports.AdminPunishmentsApiFp)(this.configuration).applyPunishment(adminApplyPunishmentRequest, options).then((request) => request(this.axios, this.basePath));
3564
+ }
3565
+ /**
3566
+ * Preview the impact of a punishment across one or more targets. No changes are made.
3567
+ * @summary Evaluate punishment impact
3568
+ * @param {AdminCreatePunishmentDraftRequest} adminCreatePunishmentDraftRequest
3569
+ * @param {*} [options] Override http request option.
3570
+ * @throws {RequiredError}
3571
+ */
3572
+ createDraft(adminCreatePunishmentDraftRequest, options) {
3573
+ return (0, exports.AdminPunishmentsApiFp)(this.configuration).createDraft(adminCreatePunishmentDraftRequest, options).then((request) => request(this.axios, this.basePath));
3574
+ }
3575
+ /**
3576
+ * 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.
3577
+ * @summary Edit a punishment
3578
+ * @param {number} id Punishment id
3579
+ * @param {AdminUpdatePunishmentRequest} adminUpdatePunishmentRequest
3580
+ * @param {*} [options] Override http request option.
3581
+ * @throws {RequiredError}
3582
+ */
3583
+ editPunishment(id, adminUpdatePunishmentRequest, options) {
3584
+ return (0, exports.AdminPunishmentsApiFp)(this.configuration).editPunishment(id, adminUpdatePunishmentRequest, options).then((request) => request(this.axios, this.basePath));
3585
+ }
3586
+ /**
3587
+ * Returns a paginated list of punishments with optional filtering by player UUID, username, IP address, type, and date range.
3588
+ * @summary List punishments
3589
+ * @param {Pageable} pageable
3590
+ * @param {string | null} [uuid]
3591
+ * @param {string | null} [username]
3592
+ * @param {string | null} [ipAddress]
3593
+ * @param {Array<PunishmentType> | null} [type]
3594
+ * @param {number | null} [issuedAfter]
3595
+ * @param {number | null} [issuedBefore]
3596
+ * @param {*} [options] Override http request option.
3597
+ * @throws {RequiredError}
3598
+ */
3599
+ getPunishments(pageable, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options) {
3600
+ return (0, exports.AdminPunishmentsApiFp)(this.configuration).getPunishments(pageable, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options).then((request) => request(this.axios, this.basePath));
3601
+ }
3602
+ /**
3603
+ * Search for players by UUID or username, or look up all players associated with an IP address.
3604
+ * @summary Search punishment targets
3605
+ * @param {string} q UUID, username, or partial/full IP address to search for
3606
+ * @param {*} [options] Override http request option.
3607
+ * @throws {RequiredError}
3608
+ */
3609
+ searchTargets(q, options) {
3610
+ return (0, exports.AdminPunishmentsApiFp)(this.configuration).searchTargets(q, options).then((request) => request(this.axios, this.basePath));
3611
+ }
3612
+ }
3613
+ exports.AdminPunishmentsApi = AdminPunishmentsApi;
3614
+ /**
3615
+ * AdminReportsApi - axios parameter creator
3616
+ */
3617
+ const AdminReportsApiAxiosParamCreator = function (configuration) {
3618
+ return {
3619
+ /**
3620
+ * Paginated, newest first. Use openOnly=true to see the triage queue; reportedUuid filters to one player.
3621
+ * @summary List reports
3622
+ * @param {Pageable} pageable
3623
+ * @param {string | null} [reportedUuid] Filter to reports targeting this player UUID
3624
+ * @param {boolean} [openOnly]
3625
+ * @param {*} [options] Override http request option.
3626
+ * @throws {RequiredError}
3627
+ */
3628
+ 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 = {}) {
3629
+ // verify required parameter 'pageable' is not null or undefined
3630
+ (0, common_1.assertParamExists)('list1', 'pageable', pageable);
3631
+ const localVarPath = `/admin/report`;
3632
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
3633
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
3634
+ let baseOptions;
3635
+ if (configuration) {
3636
+ baseOptions = configuration.baseOptions;
3637
+ }
3638
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
3639
+ const localVarHeaderParameter = {};
3640
+ const localVarQueryParameter = {};
3641
+ // authentication DiscordAuth required
3642
+ // http bearer authentication required
3643
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
3644
+ if (reportedUuid !== undefined) {
3645
+ localVarQueryParameter['reportedUuid'] = reportedUuid;
3646
+ }
3647
+ if (openOnly !== undefined) {
3648
+ localVarQueryParameter['openOnly'] = openOnly;
3649
+ }
3650
+ if (pageable !== undefined) {
3651
+ localVarQueryParameter['pageable'] = pageable;
3652
+ }
3653
+ localVarHeaderParameter['Accept'] = 'application/json';
3654
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
3655
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
3656
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
3657
+ return {
3658
+ url: (0, common_1.toPathString)(localVarUrlObj),
3659
+ options: localVarRequestOptions,
3660
+ };
3661
+ }),
3662
+ /**
3663
+ * Marks the report resolved with the staff member\'s note. 404 if already resolved or unknown id.
3664
+ * @summary Resolve a report
3665
+ * @param {number} id Report id
3666
+ * @param {AdminResolveReportRequest} adminResolveReportRequest
3667
+ * @param {*} [options] Override http request option.
3668
+ * @throws {RequiredError}
3669
+ */
3670
+ resolve: (id_1, adminResolveReportRequest_1, ...args_1) => __awaiter(this, [id_1, adminResolveReportRequest_1, ...args_1], void 0, function* (id, adminResolveReportRequest, options = {}) {
3671
+ // verify required parameter 'id' is not null or undefined
3672
+ (0, common_1.assertParamExists)('resolve', 'id', id);
3673
+ // verify required parameter 'adminResolveReportRequest' is not null or undefined
3674
+ (0, common_1.assertParamExists)('resolve', 'adminResolveReportRequest', adminResolveReportRequest);
3675
+ const localVarPath = `/admin/report/{id}/resolve`
3676
+ .replace(`{${"id"}}`, encodeURIComponent(String(id)));
3677
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
3678
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
3679
+ let baseOptions;
3680
+ if (configuration) {
3681
+ baseOptions = configuration.baseOptions;
3682
+ }
3683
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
3684
+ const localVarHeaderParameter = {};
3685
+ const localVarQueryParameter = {};
3686
+ // authentication DiscordAuth required
3687
+ // http bearer authentication required
3688
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
3689
+ localVarHeaderParameter['Content-Type'] = 'application/json';
3690
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
3691
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
3692
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
3693
+ localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(adminResolveReportRequest, localVarRequestOptions, configuration);
3694
+ return {
3695
+ url: (0, common_1.toPathString)(localVarUrlObj),
3696
+ options: localVarRequestOptions,
3697
+ };
3698
+ }),
3699
+ };
3700
+ };
3701
+ exports.AdminReportsApiAxiosParamCreator = AdminReportsApiAxiosParamCreator;
3702
+ /**
3703
+ * AdminReportsApi - functional programming interface
3704
+ */
3705
+ const AdminReportsApiFp = function (configuration) {
3706
+ const localVarAxiosParamCreator = (0, exports.AdminReportsApiAxiosParamCreator)(configuration);
3707
+ return {
3708
+ /**
3709
+ * Paginated, newest first. Use openOnly=true to see the triage queue; reportedUuid filters to one player.
3710
+ * @summary List reports
3711
+ * @param {Pageable} pageable
3712
+ * @param {string | null} [reportedUuid] Filter to reports targeting this player UUID
3713
+ * @param {boolean} [openOnly]
1542
3714
  * @param {*} [options] Override http request option.
1543
3715
  * @throws {RequiredError}
1544
3716
  */
1545
- getPunishments(page, limit, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options) {
3717
+ list1(pageable, reportedUuid, openOnly, options) {
1546
3718
  return __awaiter(this, void 0, void 0, function* () {
1547
3719
  var _a, _b, _c;
1548
- const localVarAxiosArgs = yield localVarAxiosParamCreator.getPunishments(page, limit, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options);
3720
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.list1(pageable, reportedUuid, openOnly, options);
1549
3721
  const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
1550
- const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminPunishmentsApi.getPunishments']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
3722
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminReportsApi.list1']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
1551
3723
  return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1552
3724
  });
1553
3725
  },
1554
3726
  /**
1555
- * Search for players by UUID or username, or look up all players associated with an IP address.
1556
- * @summary Search punishment targets
1557
- * @param {string} q UUID, username, or partial/full IP address to search for
3727
+ * Marks the report resolved with the staff member\'s note. 404 if already resolved or unknown id.
3728
+ * @summary Resolve a report
3729
+ * @param {number} id Report id
3730
+ * @param {AdminResolveReportRequest} adminResolveReportRequest
1558
3731
  * @param {*} [options] Override http request option.
1559
3732
  * @throws {RequiredError}
1560
3733
  */
1561
- searchTargets(q, options) {
3734
+ resolve(id, adminResolveReportRequest, options) {
1562
3735
  return __awaiter(this, void 0, void 0, function* () {
1563
3736
  var _a, _b, _c;
1564
- const localVarAxiosArgs = yield localVarAxiosParamCreator.searchTargets(q, options);
3737
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.resolve(id, adminResolveReportRequest, options);
1565
3738
  const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
1566
- const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminPunishmentsApi.searchTargets']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
3739
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminReportsApi.resolve']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
1567
3740
  return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1568
3741
  });
1569
3742
  },
1570
3743
  };
1571
3744
  };
1572
- exports.AdminPunishmentsApiFp = AdminPunishmentsApiFp;
3745
+ exports.AdminReportsApiFp = AdminReportsApiFp;
1573
3746
  /**
1574
- * AdminPunishmentsApi - factory interface
3747
+ * AdminReportsApi - factory interface
1575
3748
  */
1576
- const AdminPunishmentsApiFactory = function (configuration, basePath, axios) {
1577
- const localVarFp = (0, exports.AdminPunishmentsApiFp)(configuration);
3749
+ const AdminReportsApiFactory = function (configuration, basePath, axios) {
3750
+ const localVarFp = (0, exports.AdminReportsApiFp)(configuration);
1578
3751
  return {
1579
3752
  /**
1580
- * Apply a punishment to one or more targets. The authenticated user is recorded as the issuer.
1581
- * @summary Apply punishment
1582
- * @param {AdminApplyPunishmentRequest} adminApplyPunishmentRequest
1583
- * @param {*} [options] Override http request option.
1584
- * @throws {RequiredError}
1585
- */
1586
- applyPunishment(adminApplyPunishmentRequest, options) {
1587
- return localVarFp.applyPunishment(adminApplyPunishmentRequest, options).then((request) => request(axios, basePath));
1588
- },
1589
- /**
1590
- * Preview the impact of a punishment across one or more targets. No changes are made.
1591
- * @summary Evaluate punishment impact
1592
- * @param {AdminCreatePunishmentDraftRequest} adminCreatePunishmentDraftRequest
1593
- * @param {*} [options] Override http request option.
1594
- * @throws {RequiredError}
1595
- */
1596
- createDraft(adminCreatePunishmentDraftRequest, options) {
1597
- return localVarFp.createDraft(adminCreatePunishmentDraftRequest, options).then((request) => request(axios, basePath));
1598
- },
1599
- /**
1600
- * Returns a paginated list of punishments with optional filtering by player UUID, username, IP address, type, and date range.
1601
- * @summary List punishments
1602
- * @param {number} page Page number (1-indexed)
1603
- * @param {number} limit Page size
1604
- * @param {string | null} [uuid] Filter by player UUID
1605
- * @param {string | null} [username] Filter by player username (case-insensitive substring match)
1606
- * @param {string | null} [ipAddress] Filter by IP address
1607
- * @param {Array<PunishmentType> | null} [type] Filter by punishment type. Repeatable.
1608
- * @param {number | null} [issuedAfter] Filter punishments issued after this epoch timestamp (ms)
1609
- * @param {number | null} [issuedBefore] Filter punishments issued before this epoch timestamp (ms)
3753
+ * Paginated, newest first. Use openOnly=true to see the triage queue; reportedUuid filters to one player.
3754
+ * @summary List reports
3755
+ * @param {Pageable} pageable
3756
+ * @param {string | null} [reportedUuid] Filter to reports targeting this player UUID
3757
+ * @param {boolean} [openOnly]
1610
3758
  * @param {*} [options] Override http request option.
1611
3759
  * @throws {RequiredError}
1612
3760
  */
1613
- getPunishments(page, limit, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options) {
1614
- return localVarFp.getPunishments(page, limit, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options).then((request) => request(axios, basePath));
3761
+ list1(pageable, reportedUuid, openOnly, options) {
3762
+ return localVarFp.list1(pageable, reportedUuid, openOnly, options).then((request) => request(axios, basePath));
1615
3763
  },
1616
3764
  /**
1617
- * Search for players by UUID or username, or look up all players associated with an IP address.
1618
- * @summary Search punishment targets
1619
- * @param {string} q UUID, username, or partial/full IP address to search for
3765
+ * Marks the report resolved with the staff member\'s note. 404 if already resolved or unknown id.
3766
+ * @summary Resolve a report
3767
+ * @param {number} id Report id
3768
+ * @param {AdminResolveReportRequest} adminResolveReportRequest
1620
3769
  * @param {*} [options] Override http request option.
1621
3770
  * @throws {RequiredError}
1622
3771
  */
1623
- searchTargets(q, options) {
1624
- return localVarFp.searchTargets(q, options).then((request) => request(axios, basePath));
3772
+ resolve(id, adminResolveReportRequest, options) {
3773
+ return localVarFp.resolve(id, adminResolveReportRequest, options).then((request) => request(axios, basePath));
1625
3774
  },
1626
3775
  };
1627
3776
  };
1628
- exports.AdminPunishmentsApiFactory = AdminPunishmentsApiFactory;
3777
+ exports.AdminReportsApiFactory = AdminReportsApiFactory;
1629
3778
  /**
1630
- * AdminPunishmentsApi - object-oriented interface
3779
+ * AdminReportsApi - object-oriented interface
1631
3780
  */
1632
- class AdminPunishmentsApi extends base_1.BaseAPI {
1633
- /**
1634
- * Apply a punishment to one or more targets. The authenticated user is recorded as the issuer.
1635
- * @summary Apply punishment
1636
- * @param {AdminApplyPunishmentRequest} adminApplyPunishmentRequest
1637
- * @param {*} [options] Override http request option.
1638
- * @throws {RequiredError}
1639
- */
1640
- applyPunishment(adminApplyPunishmentRequest, options) {
1641
- return (0, exports.AdminPunishmentsApiFp)(this.configuration).applyPunishment(adminApplyPunishmentRequest, options).then((request) => request(this.axios, this.basePath));
1642
- }
1643
- /**
1644
- * Preview the impact of a punishment across one or more targets. No changes are made.
1645
- * @summary Evaluate punishment impact
1646
- * @param {AdminCreatePunishmentDraftRequest} adminCreatePunishmentDraftRequest
1647
- * @param {*} [options] Override http request option.
1648
- * @throws {RequiredError}
1649
- */
1650
- createDraft(adminCreatePunishmentDraftRequest, options) {
1651
- return (0, exports.AdminPunishmentsApiFp)(this.configuration).createDraft(adminCreatePunishmentDraftRequest, options).then((request) => request(this.axios, this.basePath));
1652
- }
3781
+ class AdminReportsApi extends base_1.BaseAPI {
1653
3782
  /**
1654
- * Returns a paginated list of punishments with optional filtering by player UUID, username, IP address, type, and date range.
1655
- * @summary List punishments
1656
- * @param {number} page Page number (1-indexed)
1657
- * @param {number} limit Page size
1658
- * @param {string | null} [uuid] Filter by player UUID
1659
- * @param {string | null} [username] Filter by player username (case-insensitive substring match)
1660
- * @param {string | null} [ipAddress] Filter by IP address
1661
- * @param {Array<PunishmentType> | null} [type] Filter by punishment type. Repeatable.
1662
- * @param {number | null} [issuedAfter] Filter punishments issued after this epoch timestamp (ms)
1663
- * @param {number | null} [issuedBefore] Filter punishments issued before this epoch timestamp (ms)
3783
+ * Paginated, newest first. Use openOnly=true to see the triage queue; reportedUuid filters to one player.
3784
+ * @summary List reports
3785
+ * @param {Pageable} pageable
3786
+ * @param {string | null} [reportedUuid] Filter to reports targeting this player UUID
3787
+ * @param {boolean} [openOnly]
1664
3788
  * @param {*} [options] Override http request option.
1665
3789
  * @throws {RequiredError}
1666
3790
  */
1667
- getPunishments(page, limit, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options) {
1668
- return (0, exports.AdminPunishmentsApiFp)(this.configuration).getPunishments(page, limit, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options).then((request) => request(this.axios, this.basePath));
3791
+ list1(pageable, reportedUuid, openOnly, options) {
3792
+ return (0, exports.AdminReportsApiFp)(this.configuration).list1(pageable, reportedUuid, openOnly, options).then((request) => request(this.axios, this.basePath));
1669
3793
  }
1670
3794
  /**
1671
- * Search for players by UUID or username, or look up all players associated with an IP address.
1672
- * @summary Search punishment targets
1673
- * @param {string} q UUID, username, or partial/full IP address to search for
3795
+ * Marks the report resolved with the staff member\'s note. 404 if already resolved or unknown id.
3796
+ * @summary Resolve a report
3797
+ * @param {number} id Report id
3798
+ * @param {AdminResolveReportRequest} adminResolveReportRequest
1674
3799
  * @param {*} [options] Override http request option.
1675
3800
  * @throws {RequiredError}
1676
3801
  */
1677
- searchTargets(q, options) {
1678
- return (0, exports.AdminPunishmentsApiFp)(this.configuration).searchTargets(q, options).then((request) => request(this.axios, this.basePath));
3802
+ resolve(id, adminResolveReportRequest, options) {
3803
+ return (0, exports.AdminReportsApiFp)(this.configuration).resolve(id, adminResolveReportRequest, options).then((request) => request(this.axios, this.basePath));
1679
3804
  }
1680
3805
  }
1681
- exports.AdminPunishmentsApi = AdminPunishmentsApi;
3806
+ exports.AdminReportsApi = AdminReportsApi;
1682
3807
  /**
1683
3808
  * AuthenticationApi - axios parameter creator
1684
3809
  */
@@ -2003,15 +4128,13 @@ const ChatApiAxiosParamCreator = function (configuration) {
2003
4128
  /**
2004
4129
  * 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.
2005
4130
  * @summary Get chat history
2006
- * @param {number} limit Maximum number of messages to return (1–100)
2007
4131
  * @param {string | null} [sessionId] Filter to a specific server session. Omit for global history.
2008
4132
  * @param {string | null} [before] ISO-8601 timestamp cursor — return messages sent before this time. Omit to start from now.
4133
+ * @param {number} [limit] Maximum number of messages to return (1–100)
2009
4134
  * @param {*} [options] Override http request option.
2010
4135
  * @throws {RequiredError}
2011
4136
  */
2012
- 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 = {}) {
2013
- // verify required parameter 'limit' is not null or undefined
2014
- (0, common_1.assertParamExists)('history', 'limit', limit);
4137
+ 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 = {}) {
2015
4138
  const localVarPath = `/v1/chat`;
2016
4139
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
2017
4140
  const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
@@ -2089,16 +4212,16 @@ const ChatApiFp = function (configuration) {
2089
4212
  /**
2090
4213
  * 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.
2091
4214
  * @summary Get chat history
2092
- * @param {number} limit Maximum number of messages to return (1–100)
2093
4215
  * @param {string | null} [sessionId] Filter to a specific server session. Omit for global history.
2094
4216
  * @param {string | null} [before] ISO-8601 timestamp cursor — return messages sent before this time. Omit to start from now.
4217
+ * @param {number} [limit] Maximum number of messages to return (1–100)
2095
4218
  * @param {*} [options] Override http request option.
2096
4219
  * @throws {RequiredError}
2097
4220
  */
2098
- history(limit, sessionId, before, options) {
4221
+ history(sessionId, before, limit, options) {
2099
4222
  return __awaiter(this, void 0, void 0, function* () {
2100
4223
  var _a, _b, _c;
2101
- const localVarAxiosArgs = yield localVarAxiosParamCreator.history(limit, sessionId, before, options);
4224
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.history(sessionId, before, limit, options);
2102
4225
  const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2103
4226
  const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['ChatApi.history']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2104
4227
  return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
@@ -2132,14 +4255,14 @@ const ChatApiFactory = function (configuration, basePath, axios) {
2132
4255
  /**
2133
4256
  * 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.
2134
4257
  * @summary Get chat history
2135
- * @param {number} limit Maximum number of messages to return (1–100)
2136
4258
  * @param {string | null} [sessionId] Filter to a specific server session. Omit for global history.
2137
4259
  * @param {string | null} [before] ISO-8601 timestamp cursor — return messages sent before this time. Omit to start from now.
4260
+ * @param {number} [limit] Maximum number of messages to return (1–100)
2138
4261
  * @param {*} [options] Override http request option.
2139
4262
  * @throws {RequiredError}
2140
4263
  */
2141
- history(limit, sessionId, before, options) {
2142
- return localVarFp.history(limit, sessionId, before, options).then((request) => request(axios, basePath));
4264
+ history(sessionId, before, limit, options) {
4265
+ return localVarFp.history(sessionId, before, limit, options).then((request) => request(axios, basePath));
2143
4266
  },
2144
4267
  /**
2145
4268
  * 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.
@@ -2161,14 +4284,14 @@ class ChatApi extends base_1.BaseAPI {
2161
4284
  /**
2162
4285
  * 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.
2163
4286
  * @summary Get chat history
2164
- * @param {number} limit Maximum number of messages to return (1–100)
2165
4287
  * @param {string | null} [sessionId] Filter to a specific server session. Omit for global history.
2166
4288
  * @param {string | null} [before] ISO-8601 timestamp cursor — return messages sent before this time. Omit to start from now.
4289
+ * @param {number} [limit] Maximum number of messages to return (1–100)
2167
4290
  * @param {*} [options] Override http request option.
2168
4291
  * @throws {RequiredError}
2169
4292
  */
2170
- history(limit, sessionId, before, options) {
2171
- return (0, exports.ChatApiFp)(this.configuration).history(limit, sessionId, before, options).then((request) => request(this.axios, this.basePath));
4293
+ history(sessionId, before, limit, options) {
4294
+ return (0, exports.ChatApiFp)(this.configuration).history(sessionId, before, limit, options).then((request) => request(this.axios, this.basePath));
2172
4295
  }
2173
4296
  /**
2174
4297
  * 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.
@@ -2188,19 +4311,18 @@ exports.ChatApi = ChatApi;
2188
4311
  const ConnectionApiAxiosParamCreator = function (configuration) {
2189
4312
  return {
2190
4313
  /**
2191
- * 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.
2192
- * @summary Check Connection and Detect VPN/Proxy
4314
+ * **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.
4315
+ * @summary Check Connection and Detect VPN/Proxy (DEPRECATED for player-join use)
2193
4316
  * @param {string} ip IPv4 address to analyze for VPN/proxy detection and geolocation
2194
- * @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
4317
+ * @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
2195
4318
  * @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.
2196
4319
  * @param {*} [options] Override http request option.
4320
+ * @deprecated
2197
4321
  * @throws {RequiredError}
2198
4322
  */
2199
4323
  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 = {}) {
2200
4324
  // verify required parameter 'ip' is not null or undefined
2201
4325
  (0, common_1.assertParamExists)('getConnectionDetails', 'ip', ip);
2202
- // verify required parameter 'forceRecheck' is not null or undefined
2203
- (0, common_1.assertParamExists)('getConnectionDetails', 'forceRecheck', forceRecheck);
2204
4326
  const localVarPath = `/v1/connection/get-connection-details/{ip}`
2205
4327
  .replace(`{${"ip"}}`, encodeURIComponent(String(ip)));
2206
4328
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
@@ -2240,12 +4362,13 @@ const ConnectionApiFp = function (configuration) {
2240
4362
  const localVarAxiosParamCreator = (0, exports.ConnectionApiAxiosParamCreator)(configuration);
2241
4363
  return {
2242
4364
  /**
2243
- * 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.
2244
- * @summary Check Connection and Detect VPN/Proxy
4365
+ * **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.
4366
+ * @summary Check Connection and Detect VPN/Proxy (DEPRECATED for player-join use)
2245
4367
  * @param {string} ip IPv4 address to analyze for VPN/proxy detection and geolocation
2246
- * @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
4368
+ * @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
2247
4369
  * @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.
2248
4370
  * @param {*} [options] Override http request option.
4371
+ * @deprecated
2249
4372
  * @throws {RequiredError}
2250
4373
  */
2251
4374
  getConnectionDetails(ip, forceRecheck, associateUuid, options) {
@@ -2267,12 +4390,13 @@ const ConnectionApiFactory = function (configuration, basePath, axios) {
2267
4390
  const localVarFp = (0, exports.ConnectionApiFp)(configuration);
2268
4391
  return {
2269
4392
  /**
2270
- * 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.
2271
- * @summary Check Connection and Detect VPN/Proxy
4393
+ * **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.
4394
+ * @summary Check Connection and Detect VPN/Proxy (DEPRECATED for player-join use)
2272
4395
  * @param {string} ip IPv4 address to analyze for VPN/proxy detection and geolocation
2273
- * @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
4396
+ * @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
2274
4397
  * @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.
2275
4398
  * @param {*} [options] Override http request option.
4399
+ * @deprecated
2276
4400
  * @throws {RequiredError}
2277
4401
  */
2278
4402
  getConnectionDetails(ip, forceRecheck, associateUuid, options) {
@@ -2286,12 +4410,13 @@ exports.ConnectionApiFactory = ConnectionApiFactory;
2286
4410
  */
2287
4411
  class ConnectionApi extends base_1.BaseAPI {
2288
4412
  /**
2289
- * 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.
2290
- * @summary Check Connection and Detect VPN/Proxy
4413
+ * **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.
4414
+ * @summary Check Connection and Detect VPN/Proxy (DEPRECATED for player-join use)
2291
4415
  * @param {string} ip IPv4 address to analyze for VPN/proxy detection and geolocation
2292
- * @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
4416
+ * @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
2293
4417
  * @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.
2294
4418
  * @param {*} [options] Override http request option.
4419
+ * @deprecated
2295
4420
  * @throws {RequiredError}
2296
4421
  */
2297
4422
  getConnectionDetails(ip, forceRecheck, associateUuid, options) {
@@ -2471,6 +4596,177 @@ class PlayerApi extends base_1.BaseAPI {
2471
4596
  }
2472
4597
  }
2473
4598
  exports.PlayerApi = PlayerApi;
4599
+ /**
4600
+ * PlayerSessionsApi - axios parameter creator
4601
+ */
4602
+ const PlayerSessionsApiAxiosParamCreator = function (configuration) {
4603
+ return {
4604
+ /**
4605
+ * 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.
4606
+ * @summary Close the active player session
4607
+ * @param {PlayerSessionEndRequest} playerSessionEndRequest
4608
+ * @param {*} [options] Override http request option.
4609
+ * @throws {RequiredError}
4610
+ */
4611
+ end: (playerSessionEndRequest_1, ...args_1) => __awaiter(this, [playerSessionEndRequest_1, ...args_1], void 0, function* (playerSessionEndRequest, options = {}) {
4612
+ // verify required parameter 'playerSessionEndRequest' is not null or undefined
4613
+ (0, common_1.assertParamExists)('end', 'playerSessionEndRequest', playerSessionEndRequest);
4614
+ const localVarPath = `/v1/player-session/end`;
4615
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
4616
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
4617
+ let baseOptions;
4618
+ if (configuration) {
4619
+ baseOptions = configuration.baseOptions;
4620
+ }
4621
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
4622
+ const localVarHeaderParameter = {};
4623
+ const localVarQueryParameter = {};
4624
+ // authentication DiscordAuth required
4625
+ // http bearer authentication required
4626
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
4627
+ localVarHeaderParameter['Content-Type'] = 'application/json';
4628
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
4629
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
4630
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
4631
+ localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(playerSessionEndRequest, localVarRequestOptions, configuration);
4632
+ return {
4633
+ url: (0, common_1.toPathString)(localVarUrlObj),
4634
+ options: localVarRequestOptions,
4635
+ };
4636
+ }),
4637
+ /**
4638
+ * 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.
4639
+ * @summary Player join — unified authorization + session-open
4640
+ * @param {PlayerSessionStartRequest} playerSessionStartRequest
4641
+ * @param {*} [options] Override http request option.
4642
+ * @throws {RequiredError}
4643
+ */
4644
+ start: (playerSessionStartRequest_1, ...args_1) => __awaiter(this, [playerSessionStartRequest_1, ...args_1], void 0, function* (playerSessionStartRequest, options = {}) {
4645
+ // verify required parameter 'playerSessionStartRequest' is not null or undefined
4646
+ (0, common_1.assertParamExists)('start', 'playerSessionStartRequest', playerSessionStartRequest);
4647
+ const localVarPath = `/v1/player-session/start`;
4648
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
4649
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
4650
+ let baseOptions;
4651
+ if (configuration) {
4652
+ baseOptions = configuration.baseOptions;
4653
+ }
4654
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
4655
+ const localVarHeaderParameter = {};
4656
+ const localVarQueryParameter = {};
4657
+ // authentication DiscordAuth required
4658
+ // http bearer authentication required
4659
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
4660
+ localVarHeaderParameter['Content-Type'] = 'application/json';
4661
+ localVarHeaderParameter['Accept'] = 'application/json';
4662
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
4663
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
4664
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
4665
+ localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(playerSessionStartRequest, localVarRequestOptions, configuration);
4666
+ return {
4667
+ url: (0, common_1.toPathString)(localVarUrlObj),
4668
+ options: localVarRequestOptions,
4669
+ };
4670
+ }),
4671
+ };
4672
+ };
4673
+ exports.PlayerSessionsApiAxiosParamCreator = PlayerSessionsApiAxiosParamCreator;
4674
+ /**
4675
+ * PlayerSessionsApi - functional programming interface
4676
+ */
4677
+ const PlayerSessionsApiFp = function (configuration) {
4678
+ const localVarAxiosParamCreator = (0, exports.PlayerSessionsApiAxiosParamCreator)(configuration);
4679
+ return {
4680
+ /**
4681
+ * 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.
4682
+ * @summary Close the active player session
4683
+ * @param {PlayerSessionEndRequest} playerSessionEndRequest
4684
+ * @param {*} [options] Override http request option.
4685
+ * @throws {RequiredError}
4686
+ */
4687
+ end(playerSessionEndRequest, options) {
4688
+ return __awaiter(this, void 0, void 0, function* () {
4689
+ var _a, _b, _c;
4690
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.end(playerSessionEndRequest, options);
4691
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
4692
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['PlayerSessionsApi.end']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
4693
+ return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
4694
+ });
4695
+ },
4696
+ /**
4697
+ * 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.
4698
+ * @summary Player join — unified authorization + session-open
4699
+ * @param {PlayerSessionStartRequest} playerSessionStartRequest
4700
+ * @param {*} [options] Override http request option.
4701
+ * @throws {RequiredError}
4702
+ */
4703
+ start(playerSessionStartRequest, options) {
4704
+ return __awaiter(this, void 0, void 0, function* () {
4705
+ var _a, _b, _c;
4706
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.start(playerSessionStartRequest, options);
4707
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
4708
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['PlayerSessionsApi.start']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
4709
+ return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
4710
+ });
4711
+ },
4712
+ };
4713
+ };
4714
+ exports.PlayerSessionsApiFp = PlayerSessionsApiFp;
4715
+ /**
4716
+ * PlayerSessionsApi - factory interface
4717
+ */
4718
+ const PlayerSessionsApiFactory = function (configuration, basePath, axios) {
4719
+ const localVarFp = (0, exports.PlayerSessionsApiFp)(configuration);
4720
+ return {
4721
+ /**
4722
+ * 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.
4723
+ * @summary Close the active player session
4724
+ * @param {PlayerSessionEndRequest} playerSessionEndRequest
4725
+ * @param {*} [options] Override http request option.
4726
+ * @throws {RequiredError}
4727
+ */
4728
+ end(playerSessionEndRequest, options) {
4729
+ return localVarFp.end(playerSessionEndRequest, options).then((request) => request(axios, basePath));
4730
+ },
4731
+ /**
4732
+ * 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.
4733
+ * @summary Player join — unified authorization + session-open
4734
+ * @param {PlayerSessionStartRequest} playerSessionStartRequest
4735
+ * @param {*} [options] Override http request option.
4736
+ * @throws {RequiredError}
4737
+ */
4738
+ start(playerSessionStartRequest, options) {
4739
+ return localVarFp.start(playerSessionStartRequest, options).then((request) => request(axios, basePath));
4740
+ },
4741
+ };
4742
+ };
4743
+ exports.PlayerSessionsApiFactory = PlayerSessionsApiFactory;
4744
+ /**
4745
+ * PlayerSessionsApi - object-oriented interface
4746
+ */
4747
+ class PlayerSessionsApi extends base_1.BaseAPI {
4748
+ /**
4749
+ * 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.
4750
+ * @summary Close the active player session
4751
+ * @param {PlayerSessionEndRequest} playerSessionEndRequest
4752
+ * @param {*} [options] Override http request option.
4753
+ * @throws {RequiredError}
4754
+ */
4755
+ end(playerSessionEndRequest, options) {
4756
+ return (0, exports.PlayerSessionsApiFp)(this.configuration).end(playerSessionEndRequest, options).then((request) => request(this.axios, this.basePath));
4757
+ }
4758
+ /**
4759
+ * 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.
4760
+ * @summary Player join — unified authorization + session-open
4761
+ * @param {PlayerSessionStartRequest} playerSessionStartRequest
4762
+ * @param {*} [options] Override http request option.
4763
+ * @throws {RequiredError}
4764
+ */
4765
+ start(playerSessionStartRequest, options) {
4766
+ return (0, exports.PlayerSessionsApiFp)(this.configuration).start(playerSessionStartRequest, options).then((request) => request(this.axios, this.basePath));
4767
+ }
4768
+ }
4769
+ exports.PlayerSessionsApi = PlayerSessionsApi;
2474
4770
  /**
2475
4771
  * PunishmentApi - axios parameter creator
2476
4772
  */
@@ -2588,23 +4884,20 @@ const PunishmentApiAxiosParamCreator = function (configuration) {
2588
4884
  /**
2589
4885
  * Returns a paginated list of recent punishments with optional filtering by issue date, expiration date, and type
2590
4886
  * @summary List recent punishments
2591
- * @param {number} limit Maximum number of records to return
2592
- * @param {number} page Page number for pagination
2593
- * @param {number | null} [issuedAfter] Filter punishments issued after this epoch timestamp (milliseconds)
2594
- * @param {number | null} [issuedBefore] Filter punishments issued before this epoch timestamp (milliseconds)
2595
- * @param {number | null} [expiresAfter] Filter punishments expiring after this epoch timestamp (milliseconds)
2596
- * @param {number | null} [expiresBefore] Filter punishments expiring before this epoch timestamp (milliseconds)
2597
- * @param {Array<PunishmentType> | null} [type] Filter by punishment types
2598
- * @param {string | null} [uuid] Filter by player UUID
2599
- * @param {string | null} [ipAddress] Filter by IP address
4887
+ * @param {Pageable} pageable
4888
+ * @param {number | null} [issuedAfter]
4889
+ * @param {number | null} [issuedBefore]
4890
+ * @param {number | null} [expiresAfter]
4891
+ * @param {number | null} [expiresBefore]
4892
+ * @param {Array<PunishmentType> | null} [type]
4893
+ * @param {string | null} [uuid]
4894
+ * @param {string | null} [ipAddress]
2600
4895
  * @param {*} [options] Override http request option.
2601
4896
  * @throws {RequiredError}
2602
4897
  */
2603
- 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 = {}) {
2604
- // verify required parameter 'limit' is not null or undefined
2605
- (0, common_1.assertParamExists)('getRecentPunishments', 'limit', limit);
2606
- // verify required parameter 'page' is not null or undefined
2607
- (0, common_1.assertParamExists)('getRecentPunishments', 'page', page);
4898
+ 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 = {}) {
4899
+ // verify required parameter 'pageable' is not null or undefined
4900
+ (0, common_1.assertParamExists)('getRecentPunishments', 'pageable', pageable);
2608
4901
  const localVarPath = `/v1/punishment/recent`;
2609
4902
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
2610
4903
  const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
@@ -2639,11 +4932,8 @@ const PunishmentApiAxiosParamCreator = function (configuration) {
2639
4932
  if (ipAddress !== undefined) {
2640
4933
  localVarQueryParameter['ipAddress'] = ipAddress;
2641
4934
  }
2642
- if (limit !== undefined) {
2643
- localVarQueryParameter['limit'] = limit;
2644
- }
2645
- if (page !== undefined) {
2646
- localVarQueryParameter['page'] = page;
4935
+ if (pageable !== undefined) {
4936
+ localVarQueryParameter['pageable'] = pageable;
2647
4937
  }
2648
4938
  localVarHeaderParameter['Accept'] = 'application/json';
2649
4939
  (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
@@ -2716,22 +5006,21 @@ const PunishmentApiFp = function (configuration) {
2716
5006
  /**
2717
5007
  * Returns a paginated list of recent punishments with optional filtering by issue date, expiration date, and type
2718
5008
  * @summary List recent punishments
2719
- * @param {number} limit Maximum number of records to return
2720
- * @param {number} page Page number for pagination
2721
- * @param {number | null} [issuedAfter] Filter punishments issued after this epoch timestamp (milliseconds)
2722
- * @param {number | null} [issuedBefore] Filter punishments issued before this epoch timestamp (milliseconds)
2723
- * @param {number | null} [expiresAfter] Filter punishments expiring after this epoch timestamp (milliseconds)
2724
- * @param {number | null} [expiresBefore] Filter punishments expiring before this epoch timestamp (milliseconds)
2725
- * @param {Array<PunishmentType> | null} [type] Filter by punishment types
2726
- * @param {string | null} [uuid] Filter by player UUID
2727
- * @param {string | null} [ipAddress] Filter by IP address
5009
+ * @param {Pageable} pageable
5010
+ * @param {number | null} [issuedAfter]
5011
+ * @param {number | null} [issuedBefore]
5012
+ * @param {number | null} [expiresAfter]
5013
+ * @param {number | null} [expiresBefore]
5014
+ * @param {Array<PunishmentType> | null} [type]
5015
+ * @param {string | null} [uuid]
5016
+ * @param {string | null} [ipAddress]
2728
5017
  * @param {*} [options] Override http request option.
2729
5018
  * @throws {RequiredError}
2730
5019
  */
2731
- getRecentPunishments(limit, page, issuedAfter, issuedBefore, expiresAfter, expiresBefore, type, uuid, ipAddress, options) {
5020
+ getRecentPunishments(pageable, issuedAfter, issuedBefore, expiresAfter, expiresBefore, type, uuid, ipAddress, options) {
2732
5021
  return __awaiter(this, void 0, void 0, function* () {
2733
5022
  var _a, _b, _c;
2734
- const localVarAxiosArgs = yield localVarAxiosParamCreator.getRecentPunishments(limit, page, issuedAfter, issuedBefore, expiresAfter, expiresBefore, type, uuid, ipAddress, options);
5023
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.getRecentPunishments(pageable, issuedAfter, issuedBefore, expiresAfter, expiresBefore, type, uuid, ipAddress, options);
2735
5024
  const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2736
5025
  const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['PunishmentApi.getRecentPunishments']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2737
5026
  return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
@@ -2781,20 +5070,19 @@ const PunishmentApiFactory = function (configuration, basePath, axios) {
2781
5070
  /**
2782
5071
  * Returns a paginated list of recent punishments with optional filtering by issue date, expiration date, and type
2783
5072
  * @summary List recent punishments
2784
- * @param {number} limit Maximum number of records to return
2785
- * @param {number} page Page number for pagination
2786
- * @param {number | null} [issuedAfter] Filter punishments issued after this epoch timestamp (milliseconds)
2787
- * @param {number | null} [issuedBefore] Filter punishments issued before this epoch timestamp (milliseconds)
2788
- * @param {number | null} [expiresAfter] Filter punishments expiring after this epoch timestamp (milliseconds)
2789
- * @param {number | null} [expiresBefore] Filter punishments expiring before this epoch timestamp (milliseconds)
2790
- * @param {Array<PunishmentType> | null} [type] Filter by punishment types
2791
- * @param {string | null} [uuid] Filter by player UUID
2792
- * @param {string | null} [ipAddress] Filter by IP address
5073
+ * @param {Pageable} pageable
5074
+ * @param {number | null} [issuedAfter]
5075
+ * @param {number | null} [issuedBefore]
5076
+ * @param {number | null} [expiresAfter]
5077
+ * @param {number | null} [expiresBefore]
5078
+ * @param {Array<PunishmentType> | null} [type]
5079
+ * @param {string | null} [uuid]
5080
+ * @param {string | null} [ipAddress]
2793
5081
  * @param {*} [options] Override http request option.
2794
5082
  * @throws {RequiredError}
2795
5083
  */
2796
- getRecentPunishments(limit, page, issuedAfter, issuedBefore, expiresAfter, expiresBefore, type, uuid, ipAddress, options) {
2797
- return localVarFp.getRecentPunishments(limit, page, issuedAfter, issuedBefore, expiresAfter, expiresBefore, type, uuid, ipAddress, options).then((request) => request(axios, basePath));
5084
+ getRecentPunishments(pageable, issuedAfter, issuedBefore, expiresAfter, expiresBefore, type, uuid, ipAddress, options) {
5085
+ return localVarFp.getRecentPunishments(pageable, issuedAfter, issuedBefore, expiresAfter, expiresBefore, type, uuid, ipAddress, options).then((request) => request(axios, basePath));
2798
5086
  },
2799
5087
  };
2800
5088
  };
@@ -2838,23 +5126,124 @@ class PunishmentApi extends base_1.BaseAPI {
2838
5126
  /**
2839
5127
  * Returns a paginated list of recent punishments with optional filtering by issue date, expiration date, and type
2840
5128
  * @summary List recent punishments
2841
- * @param {number} limit Maximum number of records to return
2842
- * @param {number} page Page number for pagination
2843
- * @param {number | null} [issuedAfter] Filter punishments issued after this epoch timestamp (milliseconds)
2844
- * @param {number | null} [issuedBefore] Filter punishments issued before this epoch timestamp (milliseconds)
2845
- * @param {number | null} [expiresAfter] Filter punishments expiring after this epoch timestamp (milliseconds)
2846
- * @param {number | null} [expiresBefore] Filter punishments expiring before this epoch timestamp (milliseconds)
2847
- * @param {Array<PunishmentType> | null} [type] Filter by punishment types
2848
- * @param {string | null} [uuid] Filter by player UUID
2849
- * @param {string | null} [ipAddress] Filter by IP address
5129
+ * @param {Pageable} pageable
5130
+ * @param {number | null} [issuedAfter]
5131
+ * @param {number | null} [issuedBefore]
5132
+ * @param {number | null} [expiresAfter]
5133
+ * @param {number | null} [expiresBefore]
5134
+ * @param {Array<PunishmentType> | null} [type]
5135
+ * @param {string | null} [uuid]
5136
+ * @param {string | null} [ipAddress]
2850
5137
  * @param {*} [options] Override http request option.
2851
5138
  * @throws {RequiredError}
2852
5139
  */
2853
- getRecentPunishments(limit, page, issuedAfter, issuedBefore, expiresAfter, expiresBefore, type, uuid, ipAddress, options) {
2854
- return (0, exports.PunishmentApiFp)(this.configuration).getRecentPunishments(limit, page, issuedAfter, issuedBefore, expiresAfter, expiresBefore, type, uuid, ipAddress, options).then((request) => request(this.axios, this.basePath));
5140
+ getRecentPunishments(pageable, issuedAfter, issuedBefore, expiresAfter, expiresBefore, type, uuid, ipAddress, options) {
5141
+ return (0, exports.PunishmentApiFp)(this.configuration).getRecentPunishments(pageable, issuedAfter, issuedBefore, expiresAfter, expiresBefore, type, uuid, ipAddress, options).then((request) => request(this.axios, this.basePath));
2855
5142
  }
2856
5143
  }
2857
5144
  exports.PunishmentApi = PunishmentApi;
5145
+ /**
5146
+ * ReportApi - axios parameter creator
5147
+ */
5148
+ const ReportApiAxiosParamCreator = function (configuration) {
5149
+ return {
5150
+ /**
5151
+ * 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.
5152
+ * @summary Submit a peer report
5153
+ * @param {CreateReportRequest} createReportRequest
5154
+ * @param {*} [options] Override http request option.
5155
+ * @throws {RequiredError}
5156
+ */
5157
+ submit: (createReportRequest_1, ...args_1) => __awaiter(this, [createReportRequest_1, ...args_1], void 0, function* (createReportRequest, options = {}) {
5158
+ // verify required parameter 'createReportRequest' is not null or undefined
5159
+ (0, common_1.assertParamExists)('submit', 'createReportRequest', createReportRequest);
5160
+ const localVarPath = `/v1/report`;
5161
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
5162
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
5163
+ let baseOptions;
5164
+ if (configuration) {
5165
+ baseOptions = configuration.baseOptions;
5166
+ }
5167
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
5168
+ const localVarHeaderParameter = {};
5169
+ const localVarQueryParameter = {};
5170
+ // authentication DiscordAuth required
5171
+ // http bearer authentication required
5172
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
5173
+ localVarHeaderParameter['Content-Type'] = 'application/json';
5174
+ localVarHeaderParameter['Accept'] = 'application/json';
5175
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
5176
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
5177
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
5178
+ localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(createReportRequest, localVarRequestOptions, configuration);
5179
+ return {
5180
+ url: (0, common_1.toPathString)(localVarUrlObj),
5181
+ options: localVarRequestOptions,
5182
+ };
5183
+ }),
5184
+ };
5185
+ };
5186
+ exports.ReportApiAxiosParamCreator = ReportApiAxiosParamCreator;
5187
+ /**
5188
+ * ReportApi - functional programming interface
5189
+ */
5190
+ const ReportApiFp = function (configuration) {
5191
+ const localVarAxiosParamCreator = (0, exports.ReportApiAxiosParamCreator)(configuration);
5192
+ return {
5193
+ /**
5194
+ * 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.
5195
+ * @summary Submit a peer report
5196
+ * @param {CreateReportRequest} createReportRequest
5197
+ * @param {*} [options] Override http request option.
5198
+ * @throws {RequiredError}
5199
+ */
5200
+ submit(createReportRequest, options) {
5201
+ return __awaiter(this, void 0, void 0, function* () {
5202
+ var _a, _b, _c;
5203
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.submit(createReportRequest, options);
5204
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
5205
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['ReportApi.submit']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
5206
+ return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
5207
+ });
5208
+ },
5209
+ };
5210
+ };
5211
+ exports.ReportApiFp = ReportApiFp;
5212
+ /**
5213
+ * ReportApi - factory interface
5214
+ */
5215
+ const ReportApiFactory = function (configuration, basePath, axios) {
5216
+ const localVarFp = (0, exports.ReportApiFp)(configuration);
5217
+ return {
5218
+ /**
5219
+ * 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.
5220
+ * @summary Submit a peer report
5221
+ * @param {CreateReportRequest} createReportRequest
5222
+ * @param {*} [options] Override http request option.
5223
+ * @throws {RequiredError}
5224
+ */
5225
+ submit(createReportRequest, options) {
5226
+ return localVarFp.submit(createReportRequest, options).then((request) => request(axios, basePath));
5227
+ },
5228
+ };
5229
+ };
5230
+ exports.ReportApiFactory = ReportApiFactory;
5231
+ /**
5232
+ * ReportApi - object-oriented interface
5233
+ */
5234
+ class ReportApi extends base_1.BaseAPI {
5235
+ /**
5236
+ * 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.
5237
+ * @summary Submit a peer report
5238
+ * @param {CreateReportRequest} createReportRequest
5239
+ * @param {*} [options] Override http request option.
5240
+ * @throws {RequiredError}
5241
+ */
5242
+ submit(createReportRequest, options) {
5243
+ return (0, exports.ReportApiFp)(this.configuration).submit(createReportRequest, options).then((request) => request(this.axios, this.basePath));
5244
+ }
5245
+ }
5246
+ exports.ReportApi = ReportApi;
2858
5247
  /**
2859
5248
  * ServerSessionsApi - axios parameter creator
2860
5249
  */