@rebornteam/reborn-api 3.2.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/.openapi-generator/FILES +65 -3
  2. package/README.md +93 -6
  3. package/api.ts +3991 -467
  4. package/base.ts +1 -1
  5. package/common.ts +1 -1
  6. package/configuration.ts +1 -1
  7. package/dist/api.d.ts +2485 -364
  8. package/dist/api.js +2876 -425
  9. package/dist/base.d.ts +1 -1
  10. package/dist/base.js +1 -1
  11. package/dist/common.d.ts +1 -1
  12. package/dist/common.js +1 -1
  13. package/dist/configuration.d.ts +1 -1
  14. package/dist/configuration.js +1 -1
  15. package/dist/esm/api.d.ts +2485 -364
  16. package/dist/esm/api.js +2851 -420
  17. package/dist/esm/base.d.ts +1 -1
  18. package/dist/esm/base.js +1 -1
  19. package/dist/esm/common.d.ts +1 -1
  20. package/dist/esm/common.js +1 -1
  21. package/dist/esm/configuration.d.ts +1 -1
  22. package/dist/esm/configuration.js +1 -1
  23. package/dist/esm/index.d.ts +1 -1
  24. package/dist/esm/index.js +1 -1
  25. package/dist/index.d.ts +1 -1
  26. package/dist/index.js +1 -1
  27. package/docs/AdminAltAccount.md +27 -0
  28. package/docs/AdminAltExemption.md +31 -0
  29. package/docs/AdminApplyPunishmentResult.md +4 -4
  30. package/docs/AdminAsyncJob.md +47 -0
  31. package/docs/AdminAsyncJobStartResponse.md +21 -0
  32. package/docs/AdminAuditLogApi.md +141 -0
  33. package/docs/AdminAuditLogEntry.md +33 -0
  34. package/docs/AdminBulkRevokeRequest.md +25 -0
  35. package/docs/AdminBulkRevokeResponse.md +21 -0
  36. package/docs/AdminConnectionCheckResult.md +4 -0
  37. package/docs/AdminConnectionsApi.md +196 -34
  38. package/docs/AdminCreateAltExemptionRequest.md +23 -0
  39. package/docs/AdminCreatePlayerNoteRequest.md +21 -0
  40. package/docs/AdminDashboardConnectionResponse.md +4 -2
  41. package/docs/AdminJobsApi.md +175 -0
  42. package/docs/AdminPlayerDetailResponse.md +4 -4
  43. package/docs/AdminPlayerNote.md +31 -0
  44. package/docs/AdminPlayerPunishmentResponse.md +51 -0
  45. package/docs/AdminPlayerReport.md +39 -0
  46. package/docs/AdminPlayerSession.md +31 -0
  47. package/docs/AdminPlayerSessionStats.md +29 -0
  48. package/docs/AdminPlayerSummary.md +2 -4
  49. package/docs/AdminPlayersApi.md +936 -16
  50. package/docs/AdminPunishmentEvaluation.md +4 -8
  51. package/docs/AdminPunishmentsApi.md +78 -21
  52. package/docs/AdminReportTarget.md +23 -0
  53. package/docs/AdminReportsApi.md +123 -0
  54. package/docs/AdminResolveReportRequest.md +21 -0
  55. package/docs/AdminSetAggressiveModeImmunityRequest.md +21 -0
  56. package/docs/AdminTrustFactorBreakdown.md +61 -0
  57. package/docs/AdminTrustFactorHistoryEntry.md +23 -0
  58. package/docs/AdminTrustFactorImpact.md +23 -0
  59. package/docs/AdminUpdatePunishmentRequest.md +27 -0
  60. package/docs/ChatApi.md +4 -4
  61. package/docs/ConnectionApi.md +4 -4
  62. package/docs/ConnectionGetConnectionDetailsResponse.md +5 -1
  63. package/docs/ConnectionResult.md +1 -1
  64. package/docs/CreateReportRequest.md +27 -0
  65. package/docs/CreateReportResponse.md +23 -0
  66. package/docs/CursoredPageAdminAuditLogEntry.md +38 -0
  67. package/docs/CursoredPageable.md +30 -0
  68. package/docs/JobStatus.md +17 -0
  69. package/docs/PageAdminAltAccount.md +36 -0
  70. package/docs/PageAdminAltExemption.md +36 -0
  71. package/docs/PageAdminAsyncJob.md +36 -0
  72. package/docs/PageAdminAuditLogEntry.md +36 -0
  73. package/docs/PageAdminDashboardConnectionResponse.md +36 -0
  74. package/docs/PageAdminPlayerNote.md +36 -0
  75. package/docs/PageAdminPlayerPunishmentResponse.md +36 -0
  76. package/docs/PageAdminPlayerReport.md +36 -0
  77. package/docs/PageAdminPlayerSession.md +36 -0
  78. package/docs/PageAdminPlayerSummary.md +36 -0
  79. package/docs/PageAdminPunishmentListItem.md +36 -0
  80. package/docs/PagePunishmentGetPunishmentResponse.md +36 -0
  81. package/docs/Pageable.md +28 -0
  82. package/docs/PageableMode.md +12 -0
  83. package/docs/PlayerGetPlayerInformation.md +5 -3
  84. package/docs/PlayerSessionEndRequest.md +23 -0
  85. package/docs/PlayerSessionStartRequest.md +27 -0
  86. package/docs/PlayerSessionStartResponse.md +51 -0
  87. package/docs/PlayerSessionsApi.md +116 -0
  88. package/docs/PunishmentApi.md +22 -24
  89. package/docs/PunishmentSource.md +11 -0
  90. package/docs/PunishmentType.md +1 -0
  91. package/docs/ReportApi.md +64 -0
  92. package/docs/ReportCategory.md +17 -0
  93. package/docs/SliceAdminAltAccount.md +32 -0
  94. package/docs/SliceAdminAltExemption.md +32 -0
  95. package/docs/SliceAdminAsyncJob.md +32 -0
  96. package/docs/SliceAdminAuditLogEntry.md +32 -0
  97. package/docs/SliceAdminDashboardConnectionResponse.md +32 -0
  98. package/docs/SliceAdminPlayerNote.md +32 -0
  99. package/docs/SliceAdminPlayerPunishmentResponse.md +32 -0
  100. package/docs/SliceAdminPlayerReport.md +32 -0
  101. package/docs/SliceAdminPlayerSession.md +32 -0
  102. package/docs/SliceAdminPlayerSummary.md +32 -0
  103. package/docs/SliceAdminPunishmentListItem.md +32 -0
  104. package/docs/SlicePunishmentGetPunishmentResponse.md +32 -0
  105. package/docs/Sort.md +20 -0
  106. package/docs/SortOrder.md +26 -0
  107. package/docs/SortOrderDirection.md +10 -0
  108. package/index.ts +1 -1
  109. package/package.json +1 -1
  110. package/docs/AdminPagedConnectionResponse.md +0 -29
  111. package/docs/AdminPagedPlayerResponse.md +0 -29
  112. package/docs/AdminPagedPunishmentResponse.md +0 -29
package/dist/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.0
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
  */
@@ -589,6 +858,35 @@ exports.AdminClientCredentialsApi = AdminClientCredentialsApi;
589
858
  */
590
859
  const AdminConnectionsApiAxiosParamCreator = function (configuration) {
591
860
  return {
861
+ /**
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
864
+ * @param {*} [options] Override http request option.
865
+ * @throws {RequiredError}
866
+ */
867
+ backfillLocation: (...args_1) => __awaiter(this, [...args_1], void 0, function* (options = {}) {
868
+ const localVarPath = `/admin/connection/backfill-location`;
869
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
870
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
871
+ let baseOptions;
872
+ if (configuration) {
873
+ baseOptions = configuration.baseOptions;
874
+ }
875
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
876
+ const localVarHeaderParameter = {};
877
+ const localVarQueryParameter = {};
878
+ // authentication DiscordAuth required
879
+ // http bearer authentication required
880
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
881
+ localVarHeaderParameter['Accept'] = 'application/json';
882
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
883
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
884
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
885
+ return {
886
+ url: (0, common_1.toPathString)(localVarUrlObj),
887
+ options: localVarRequestOptions,
888
+ };
889
+ }),
592
890
  /**
593
891
  * Creates a temporary bypass for an IP address, expiring at the specified epoch timestamp (milliseconds since Unix epoch).
594
892
  * @summary Create connection bypass
@@ -623,18 +921,93 @@ const AdminConnectionsApiAxiosParamCreator = function (configuration) {
623
921
  options: localVarRequestOptions,
624
922
  };
625
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
+ }),
626
996
  /**
627
997
  * Returns a paginated list of all connections with a total count. Supports filtering by IP address, UUID, and VPN status.
628
998
  * @summary List all connections (paginated)
629
- * @param {string | null} [ipAddress] Filter by IP address
630
- * @param {string | null} [uuid] Filter by player UUID
631
- * @param {boolean | null} [isVpn] Filter by VPN status
632
- * @param {number | null} [page] Page number (1-indexed)
633
- * @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]
634
1005
  * @param {*} [options] Override http request option.
635
1006
  * @throws {RequiredError}
636
1007
  */
637
- 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);
638
1011
  const localVarPath = `/admin/connection`;
639
1012
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
640
1013
  const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
@@ -648,6 +1021,12 @@ const AdminConnectionsApiAxiosParamCreator = function (configuration) {
648
1021
  // authentication DiscordAuth required
649
1022
  // http bearer authentication required
650
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
+ }
651
1030
  if (ipAddress !== undefined) {
652
1031
  localVarQueryParameter['ipAddress'] = ipAddress;
653
1032
  }
@@ -657,11 +1036,8 @@ const AdminConnectionsApiAxiosParamCreator = function (configuration) {
657
1036
  if (isVpn !== undefined) {
658
1037
  localVarQueryParameter['isVpn'] = isVpn;
659
1038
  }
660
- if (page !== undefined) {
661
- localVarQueryParameter['page'] = page;
662
- }
663
- if (limit !== undefined) {
664
- localVarQueryParameter['limit'] = limit;
1039
+ if (pageable !== undefined) {
1040
+ localVarQueryParameter['pageable'] = pageable;
665
1041
  }
666
1042
  localVarHeaderParameter['Accept'] = 'application/json';
667
1043
  (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
@@ -675,17 +1051,18 @@ const AdminConnectionsApiAxiosParamCreator = function (configuration) {
675
1051
  /**
676
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).
677
1053
  * @summary List recent connections
678
- * @param {number | null} [createdAfter] Filter connections after this epoch timestamp in milliseconds
679
- * @param {number | null} [createdBefore] Filter connections before this epoch timestamp in milliseconds
680
- * @param {string | null} [ipAddress] Filter by IP address
681
- * @param {string | null} [uuid] Filter by player UUID
682
- * @param {boolean | null} [isVpn] Filter by VPN status (true=VPN, false=not VPN)
683
- * @param {number | null} [page] Page number for pagination
684
- * @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]
685
1060
  * @param {*} [options] Override http request option.
686
1061
  * @throws {RequiredError}
687
1062
  */
688
- 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);
689
1066
  const localVarPath = `/admin/connection/recent`;
690
1067
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
691
1068
  const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
@@ -714,11 +1091,8 @@ const AdminConnectionsApiAxiosParamCreator = function (configuration) {
714
1091
  if (isVpn !== undefined) {
715
1092
  localVarQueryParameter['isVpn'] = isVpn;
716
1093
  }
717
- if (page !== undefined) {
718
- localVarQueryParameter['page'] = page;
719
- }
720
- if (limit !== undefined) {
721
- localVarQueryParameter['limit'] = limit;
1094
+ if (pageable !== undefined) {
1095
+ localVarQueryParameter['pageable'] = pageable;
722
1096
  }
723
1097
  localVarHeaderParameter['Accept'] = 'application/json';
724
1098
  (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
@@ -775,6 +1149,21 @@ exports.AdminConnectionsApiAxiosParamCreator = AdminConnectionsApiAxiosParamCrea
775
1149
  const AdminConnectionsApiFp = function (configuration) {
776
1150
  const localVarAxiosParamCreator = (0, exports.AdminConnectionsApiAxiosParamCreator)(configuration);
777
1151
  return {
1152
+ /**
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
1155
+ * @param {*} [options] Override http request option.
1156
+ * @throws {RequiredError}
1157
+ */
1158
+ backfillLocation(options) {
1159
+ return __awaiter(this, void 0, void 0, function* () {
1160
+ var _a, _b, _c;
1161
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.backfillLocation(options);
1162
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
1163
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminConnectionsApi.backfillLocation']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
1164
+ return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1165
+ });
1166
+ },
778
1167
  /**
779
1168
  * Creates a temporary bypass for an IP address, expiring at the specified epoch timestamp (milliseconds since Unix epoch).
780
1169
  * @summary Create connection bypass
@@ -791,21 +1180,55 @@ const AdminConnectionsApiFp = function (configuration) {
791
1180
  return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
792
1181
  });
793
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
+ },
794
1216
  /**
795
1217
  * Returns a paginated list of all connections with a total count. Supports filtering by IP address, UUID, and VPN status.
796
1218
  * @summary List all connections (paginated)
797
- * @param {string | null} [ipAddress] Filter by IP address
798
- * @param {string | null} [uuid] Filter by player UUID
799
- * @param {boolean | null} [isVpn] Filter by VPN status
800
- * @param {number | null} [page] Page number (1-indexed)
801
- * @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]
802
1225
  * @param {*} [options] Override http request option.
803
1226
  * @throws {RequiredError}
804
1227
  */
805
- listAllConnections(ipAddress, uuid, isVpn, page, limit, options) {
1228
+ listAllConnections(pageable, createdAfter, createdBefore, ipAddress, uuid, isVpn, options) {
806
1229
  return __awaiter(this, void 0, void 0, function* () {
807
1230
  var _a, _b, _c;
808
- const localVarAxiosArgs = yield localVarAxiosParamCreator.listAllConnections(ipAddress, uuid, isVpn, page, limit, options);
1231
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.listAllConnections(pageable, createdAfter, createdBefore, ipAddress, uuid, isVpn, options);
809
1232
  const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
810
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;
811
1234
  return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
@@ -814,20 +1237,19 @@ const AdminConnectionsApiFp = function (configuration) {
814
1237
  /**
815
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).
816
1239
  * @summary List recent connections
817
- * @param {number | null} [createdAfter] Filter connections after this epoch timestamp in milliseconds
818
- * @param {number | null} [createdBefore] Filter connections before this epoch timestamp in milliseconds
819
- * @param {string | null} [ipAddress] Filter by IP address
820
- * @param {string | null} [uuid] Filter by player UUID
821
- * @param {boolean | null} [isVpn] Filter by VPN status (true=VPN, false=not VPN)
822
- * @param {number | null} [page] Page number for pagination
823
- * @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]
824
1246
  * @param {*} [options] Override http request option.
825
1247
  * @throws {RequiredError}
826
1248
  */
827
- listConnections(createdAfter, createdBefore, ipAddress, uuid, isVpn, page, limit, options) {
1249
+ listConnections(pageable, createdAfter, createdBefore, ipAddress, uuid, isVpn, options) {
828
1250
  return __awaiter(this, void 0, void 0, function* () {
829
1251
  var _a, _b, _c;
830
- 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);
831
1253
  const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
832
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;
833
1255
  return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
@@ -860,44 +1282,74 @@ const AdminConnectionsApiFactory = function (configuration, basePath, axios) {
860
1282
  const localVarFp = (0, exports.AdminConnectionsApiFp)(configuration);
861
1283
  return {
862
1284
  /**
863
- * Creates a temporary bypass for an IP address, expiring at the specified epoch timestamp (milliseconds since Unix epoch).
864
- * @summary Create connection bypass
865
- * @param {CreateBypassRequest} createBypassRequest
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
1287
+ * @param {*} [options] Override http request option.
1288
+ * @throws {RequiredError}
1289
+ */
1290
+ backfillLocation(options) {
1291
+ return localVarFp.backfillLocation(options).then((request) => request(axios, basePath));
1292
+ },
1293
+ /**
1294
+ * Creates a temporary bypass for an IP address, expiring at the specified epoch timestamp (milliseconds since Unix epoch).
1295
+ * @summary Create connection bypass
1296
+ * @param {CreateBypassRequest} createBypassRequest
866
1297
  * @param {*} [options] Override http request option.
867
1298
  * @throws {RequiredError}
868
1299
  */
869
1300
  createBypass(createBypassRequest, options) {
870
1301
  return localVarFp.createBypass(createBypassRequest, options).then((request) => request(axios, basePath));
871
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
+ },
872
1324
  /**
873
1325
  * Returns a paginated list of all connections with a total count. Supports filtering by IP address, UUID, and VPN status.
874
1326
  * @summary List all connections (paginated)
875
- * @param {string | null} [ipAddress] Filter by IP address
876
- * @param {string | null} [uuid] Filter by player UUID
877
- * @param {boolean | null} [isVpn] Filter by VPN status
878
- * @param {number | null} [page] Page number (1-indexed)
879
- * @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]
880
1333
  * @param {*} [options] Override http request option.
881
1334
  * @throws {RequiredError}
882
1335
  */
883
- listAllConnections(ipAddress, uuid, isVpn, page, limit, options) {
884
- 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));
885
1338
  },
886
1339
  /**
887
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).
888
1341
  * @summary List recent connections
889
- * @param {number | null} [createdAfter] Filter connections after this epoch timestamp in milliseconds
890
- * @param {number | null} [createdBefore] Filter connections before this epoch timestamp in milliseconds
891
- * @param {string | null} [ipAddress] Filter by IP address
892
- * @param {string | null} [uuid] Filter by player UUID
893
- * @param {boolean | null} [isVpn] Filter by VPN status (true=VPN, false=not VPN)
894
- * @param {number | null} [page] Page number for pagination
895
- * @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]
896
1348
  * @param {*} [options] Override http request option.
897
1349
  * @throws {RequiredError}
898
1350
  */
899
- listConnections(createdAfter, createdBefore, ipAddress, uuid, isVpn, page, limit, options) {
900
- 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));
901
1353
  },
902
1354
  /**
903
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.
@@ -917,6 +1369,15 @@ exports.AdminConnectionsApiFactory = AdminConnectionsApiFactory;
917
1369
  * AdminConnectionsApi - object-oriented interface
918
1370
  */
919
1371
  class AdminConnectionsApi extends base_1.BaseAPI {
1372
+ /**
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
1375
+ * @param {*} [options] Override http request option.
1376
+ * @throws {RequiredError}
1377
+ */
1378
+ backfillLocation(options) {
1379
+ return (0, exports.AdminConnectionsApiFp)(this.configuration).backfillLocation(options).then((request) => request(this.axios, this.basePath));
1380
+ }
920
1381
  /**
921
1382
  * Creates a temporary bypass for an IP address, expiring at the specified epoch timestamp (milliseconds since Unix epoch).
922
1383
  * @summary Create connection bypass
@@ -927,35 +1388,56 @@ class AdminConnectionsApi extends base_1.BaseAPI {
927
1388
  createBypass(createBypassRequest, options) {
928
1389
  return (0, exports.AdminConnectionsApiFp)(this.configuration).createBypass(createBypassRequest, options).then((request) => request(this.axios, this.basePath));
929
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
+ }
930
1412
  /**
931
1413
  * Returns a paginated list of all connections with a total count. Supports filtering by IP address, UUID, and VPN status.
932
1414
  * @summary List all connections (paginated)
933
- * @param {string | null} [ipAddress] Filter by IP address
934
- * @param {string | null} [uuid] Filter by player UUID
935
- * @param {boolean | null} [isVpn] Filter by VPN status
936
- * @param {number | null} [page] Page number (1-indexed)
937
- * @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]
938
1421
  * @param {*} [options] Override http request option.
939
1422
  * @throws {RequiredError}
940
1423
  */
941
- listAllConnections(ipAddress, uuid, isVpn, page, limit, options) {
942
- 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));
943
1426
  }
944
1427
  /**
945
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).
946
1429
  * @summary List recent connections
947
- * @param {number | null} [createdAfter] Filter connections after this epoch timestamp in milliseconds
948
- * @param {number | null} [createdBefore] Filter connections before this epoch timestamp in milliseconds
949
- * @param {string | null} [ipAddress] Filter by IP address
950
- * @param {string | null} [uuid] Filter by player UUID
951
- * @param {boolean | null} [isVpn] Filter by VPN status (true=VPN, false=not VPN)
952
- * @param {number | null} [page] Page number for pagination
953
- * @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]
954
1436
  * @param {*} [options] Override http request option.
955
1437
  * @throws {RequiredError}
956
1438
  */
957
- listConnections(createdAfter, createdBefore, ipAddress, uuid, isVpn, page, limit, options) {
958
- 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));
959
1441
  }
960
1442
  /**
961
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.
@@ -1065,22 +1547,54 @@ class AdminDashboardApi extends base_1.BaseAPI {
1065
1547
  }
1066
1548
  exports.AdminDashboardApi = AdminDashboardApi;
1067
1549
  /**
1068
- * AdminPlayersApi - axios parameter creator
1550
+ * AdminJobsApi - axios parameter creator
1069
1551
  */
1070
- const AdminPlayersApiAxiosParamCreator = function (configuration) {
1552
+ const AdminJobsApiAxiosParamCreator = function (configuration) {
1071
1553
  return {
1072
1554
  /**
1073
- * Returns full detail for a single player including all known usernames and punishment scoring.
1074
- * @summary Get player detail
1075
- * @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
1076
1558
  * @param {*} [options] Override http request option.
1077
1559
  * @throws {RequiredError}
1078
1560
  */
1079
- getPlayer: (uuid_1, ...args_1) => __awaiter(this, [uuid_1, ...args_1], void 0, function* (uuid, options = {}) {
1080
- // verify required parameter 'uuid' is not null or undefined
1081
- (0, common_1.assertParamExists)('getPlayer', 'uuid', uuid);
1082
- const localVarPath = `/admin/player/{uuid}`
1083
- .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)));
1566
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
1567
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
1568
+ let baseOptions;
1569
+ if (configuration) {
1570
+ baseOptions = configuration.baseOptions;
1571
+ }
1572
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options);
1573
+ const localVarHeaderParameter = {};
1574
+ const localVarQueryParameter = {};
1575
+ // authentication DiscordAuth required
1576
+ // http bearer authentication required
1577
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
1578
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
1579
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1580
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
1581
+ return {
1582
+ url: (0, common_1.toPathString)(localVarUrlObj),
1583
+ options: localVarRequestOptions,
1584
+ };
1585
+ }),
1586
+ /**
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
1590
+ * @param {*} [options] Override http request option.
1591
+ * @throws {RequiredError}
1592
+ */
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)));
1084
1598
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
1085
1599
  const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
1086
1600
  let baseOptions;
@@ -1103,20 +1617,17 @@ const AdminPlayersApiAxiosParamCreator = function (configuration) {
1103
1617
  };
1104
1618
  }),
1105
1619
  /**
1106
- * Returns up to 500 players ordered by most recently seen. Optionally filter by UUID or username substring.
1107
- * @summary List players
1108
- * @param {number} page Page number (1-indexed)
1109
- * @param {number} limit Page size
1110
- * @param {string | null} [search] Optional search string matched against UUID or username (case-insensitive substring)
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)
1111
1624
  * @param {*} [options] Override http request option.
1112
1625
  * @throws {RequiredError}
1113
1626
  */
1114
- 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 = {}) {
1115
- // verify required parameter 'page' is not null or undefined
1116
- (0, common_1.assertParamExists)('listPlayers', 'page', page);
1117
- // verify required parameter 'limit' is not null or undefined
1118
- (0, common_1.assertParamExists)('listPlayers', 'limit', limit);
1119
- const localVarPath = `/admin/player`;
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`;
1120
1631
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
1121
1632
  const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
1122
1633
  let baseOptions;
@@ -1129,14 +1640,11 @@ const AdminPlayersApiAxiosParamCreator = function (configuration) {
1129
1640
  // authentication DiscordAuth required
1130
1641
  // http bearer authentication required
1131
1642
  yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
1132
- if (search !== undefined) {
1133
- localVarQueryParameter['search'] = search;
1134
- }
1135
- if (page !== undefined) {
1136
- localVarQueryParameter['page'] = page;
1643
+ if (status !== undefined) {
1644
+ localVarQueryParameter['status'] = status;
1137
1645
  }
1138
- if (limit !== undefined) {
1139
- localVarQueryParameter['limit'] = limit;
1646
+ if (pageable !== undefined) {
1647
+ localVarQueryParameter['pageable'] = pageable;
1140
1648
  }
1141
1649
  localVarHeaderParameter['Accept'] = 'application/json';
1142
1650
  (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
@@ -1149,125 +1657,162 @@ const AdminPlayersApiAxiosParamCreator = function (configuration) {
1149
1657
  }),
1150
1658
  };
1151
1659
  };
1152
- exports.AdminPlayersApiAxiosParamCreator = AdminPlayersApiAxiosParamCreator;
1660
+ exports.AdminJobsApiAxiosParamCreator = AdminJobsApiAxiosParamCreator;
1153
1661
  /**
1154
- * AdminPlayersApi - functional programming interface
1662
+ * AdminJobsApi - functional programming interface
1155
1663
  */
1156
- const AdminPlayersApiFp = function (configuration) {
1157
- const localVarAxiosParamCreator = (0, exports.AdminPlayersApiAxiosParamCreator)(configuration);
1664
+ const AdminJobsApiFp = function (configuration) {
1665
+ const localVarAxiosParamCreator = (0, exports.AdminJobsApiAxiosParamCreator)(configuration);
1158
1666
  return {
1159
1667
  /**
1160
- * Returns full detail for a single player including all known usernames and punishment scoring.
1161
- * @summary Get player detail
1162
- * @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
1163
1671
  * @param {*} [options] Override http request option.
1164
1672
  * @throws {RequiredError}
1165
1673
  */
1166
- getPlayer(uuid, options) {
1674
+ cancel(id, options) {
1167
1675
  return __awaiter(this, void 0, void 0, function* () {
1168
1676
  var _a, _b, _c;
1169
- const localVarAxiosArgs = yield localVarAxiosParamCreator.getPlayer(uuid, options);
1677
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.cancel(id, options);
1170
1678
  const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
1171
- 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;
1172
1680
  return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1173
1681
  });
1174
1682
  },
1175
1683
  /**
1176
- * Returns up to 500 players ordered by most recently seen. Optionally filter by UUID or username substring.
1177
- * @summary List players
1178
- * @param {number} page Page number (1-indexed)
1179
- * @param {number} limit Page size
1180
- * @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
1181
1687
  * @param {*} [options] Override http request option.
1182
1688
  * @throws {RequiredError}
1183
1689
  */
1184
- listPlayers(page, limit, search, options) {
1690
+ get(id, options) {
1185
1691
  return __awaiter(this, void 0, void 0, function* () {
1186
1692
  var _a, _b, _c;
1187
- const localVarAxiosArgs = yield localVarAxiosParamCreator.listPlayers(page, limit, search, options);
1693
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.get(id, options);
1188
1694
  const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
1189
- 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;
1190
1713
  return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1191
1714
  });
1192
1715
  },
1193
1716
  };
1194
1717
  };
1195
- exports.AdminPlayersApiFp = AdminPlayersApiFp;
1718
+ exports.AdminJobsApiFp = AdminJobsApiFp;
1196
1719
  /**
1197
- * AdminPlayersApi - factory interface
1720
+ * AdminJobsApi - factory interface
1198
1721
  */
1199
- const AdminPlayersApiFactory = function (configuration, basePath, axios) {
1200
- const localVarFp = (0, exports.AdminPlayersApiFp)(configuration);
1722
+ const AdminJobsApiFactory = function (configuration, basePath, axios) {
1723
+ const localVarFp = (0, exports.AdminJobsApiFp)(configuration);
1201
1724
  return {
1202
1725
  /**
1203
- * Returns full detail for a single player including all known usernames and punishment scoring.
1204
- * @summary Get player detail
1205
- * @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
1206
1729
  * @param {*} [options] Override http request option.
1207
1730
  * @throws {RequiredError}
1208
1731
  */
1209
- getPlayer(uuid, options) {
1210
- 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));
1211
1734
  },
1212
1735
  /**
1213
- * Returns up to 500 players ordered by most recently seen. Optionally filter by UUID or username substring.
1214
- * @summary List players
1215
- * @param {number} page Page number (1-indexed)
1216
- * @param {number} limit Page size
1217
- * @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)
1218
1750
  * @param {*} [options] Override http request option.
1219
1751
  * @throws {RequiredError}
1220
1752
  */
1221
- listPlayers(page, limit, search, options) {
1222
- 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));
1223
1755
  },
1224
1756
  };
1225
1757
  };
1226
- exports.AdminPlayersApiFactory = AdminPlayersApiFactory;
1758
+ exports.AdminJobsApiFactory = AdminJobsApiFactory;
1227
1759
  /**
1228
- * AdminPlayersApi - object-oriented interface
1760
+ * AdminJobsApi - object-oriented interface
1229
1761
  */
1230
- class AdminPlayersApi extends base_1.BaseAPI {
1762
+ class AdminJobsApi extends base_1.BaseAPI {
1231
1763
  /**
1232
- * Returns full detail for a single player including all known usernames and punishment scoring.
1233
- * @summary Get player detail
1234
- * @param {string} uuid Player Minecraft UUID
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
1235
1767
  * @param {*} [options] Override http request option.
1236
1768
  * @throws {RequiredError}
1237
1769
  */
1238
- getPlayer(uuid, options) {
1239
- return (0, exports.AdminPlayersApiFp)(this.configuration).getPlayer(uuid, options).then((request) => request(this.axios, this.basePath));
1770
+ cancel(id, options) {
1771
+ return (0, exports.AdminJobsApiFp)(this.configuration).cancel(id, options).then((request) => request(this.axios, this.basePath));
1240
1772
  }
1241
1773
  /**
1242
- * Returns up to 500 players ordered by most recently seen. Optionally filter by UUID or username substring.
1243
- * @summary List players
1244
- * @param {number} page Page number (1-indexed)
1245
- * @param {number} limit Page size
1246
- * @param {string | null} [search] Optional search string matched against UUID or username (case-insensitive substring)
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)
1247
1788
  * @param {*} [options] Override http request option.
1248
1789
  * @throws {RequiredError}
1249
1790
  */
1250
- listPlayers(page, limit, search, options) {
1251
- return (0, exports.AdminPlayersApiFp)(this.configuration).listPlayers(page, limit, search, options).then((request) => request(this.axios, this.basePath));
1791
+ list(pageable, status, options) {
1792
+ return (0, exports.AdminJobsApiFp)(this.configuration).list(pageable, status, options).then((request) => request(this.axios, this.basePath));
1252
1793
  }
1253
1794
  }
1254
- exports.AdminPlayersApi = AdminPlayersApi;
1795
+ exports.AdminJobsApi = AdminJobsApi;
1255
1796
  /**
1256
- * AdminPunishmentsApi - axios parameter creator
1797
+ * AdminPlayersApi - axios parameter creator
1257
1798
  */
1258
- const AdminPunishmentsApiAxiosParamCreator = function (configuration) {
1799
+ const AdminPlayersApiAxiosParamCreator = function (configuration) {
1259
1800
  return {
1260
1801
  /**
1261
- * Apply a punishment to one or more targets. The authenticated user is recorded as the issuer.
1262
- * @summary Apply punishment
1263
- * @param {AdminApplyPunishmentRequest} adminApplyPunishmentRequest
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
1264
1806
  * @param {*} [options] Override http request option.
1265
1807
  * @throws {RequiredError}
1266
1808
  */
1267
- applyPunishment: (adminApplyPunishmentRequest_1, ...args_1) => __awaiter(this, [adminApplyPunishmentRequest_1, ...args_1], void 0, function* (adminApplyPunishmentRequest, options = {}) {
1268
- // verify required parameter 'adminApplyPunishmentRequest' is not null or undefined
1269
- (0, common_1.assertParamExists)('applyPunishment', 'adminApplyPunishmentRequest', adminApplyPunishmentRequest);
1270
- const localVarPath = `/admin/punishment/apply`;
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)));
1271
1816
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
1272
1817
  const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
1273
1818
  let baseOptions;
@@ -1281,27 +1826,26 @@ const AdminPunishmentsApiAxiosParamCreator = function (configuration) {
1281
1826
  // http bearer authentication required
1282
1827
  yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
1283
1828
  localVarHeaderParameter['Content-Type'] = 'application/json';
1284
- localVarHeaderParameter['Accept'] = 'application/json';
1285
1829
  (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
1286
1830
  let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1287
1831
  localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
1288
- localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(adminApplyPunishmentRequest, localVarRequestOptions, configuration);
1832
+ localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(adminCreateAltExemptionRequest, localVarRequestOptions, configuration);
1289
1833
  return {
1290
1834
  url: (0, common_1.toPathString)(localVarUrlObj),
1291
1835
  options: localVarRequestOptions,
1292
1836
  };
1293
1837
  }),
1294
1838
  /**
1295
- * Preview the impact of a punishment across one or more targets. No changes are made.
1296
- * @summary Evaluate punishment impact
1297
- * @param {AdminCreatePunishmentDraftRequest} adminCreatePunishmentDraftRequest
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
1298
1842
  * @param {*} [options] Override http request option.
1299
1843
  * @throws {RequiredError}
1300
1844
  */
1301
- createDraft: (adminCreatePunishmentDraftRequest_1, ...args_1) => __awaiter(this, [adminCreatePunishmentDraftRequest_1, ...args_1], void 0, function* (adminCreatePunishmentDraftRequest, options = {}) {
1302
- // verify required parameter 'adminCreatePunishmentDraftRequest' is not null or undefined
1303
- (0, common_1.assertParamExists)('createDraft', 'adminCreatePunishmentDraftRequest', adminCreatePunishmentDraftRequest);
1304
- const localVarPath = `/admin/punishment/draft`;
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`;
1305
1849
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
1306
1850
  const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
1307
1851
  let baseOptions;
@@ -1319,103 +1863,110 @@ const AdminPunishmentsApiAxiosParamCreator = function (configuration) {
1319
1863
  (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
1320
1864
  let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1321
1865
  localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
1322
- localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(adminCreatePunishmentDraftRequest, localVarRequestOptions, configuration);
1866
+ localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(adminBulkRevokeRequest, localVarRequestOptions, configuration);
1323
1867
  return {
1324
1868
  url: (0, common_1.toPathString)(localVarUrlObj),
1325
1869
  options: localVarRequestOptions,
1326
1870
  };
1327
1871
  }),
1328
1872
  /**
1329
- * Returns a paginated list of punishments with optional filtering by player UUID, username, IP address, type, and date range.
1330
- * @summary List punishments
1331
- * @param {number} page Page number (1-indexed)
1332
- * @param {number} limit Page size
1333
- * @param {string | null} [uuid] Filter by player UUID
1334
- * @param {string | null} [username] Filter by player username (case-insensitive substring match)
1335
- * @param {string | null} [ipAddress] Filter by IP address
1336
- * @param {Array<PunishmentType> | null} [type] Filter by punishment type. Repeatable.
1337
- * @param {number | null} [issuedAfter] Filter punishments issued after this epoch timestamp (ms)
1338
- * @param {number | null} [issuedBefore] Filter punishments issued before this epoch timestamp (ms)
1339
- * @param {*} [options] Override http request option.
1340
- * @throws {RequiredError}
1341
- */
1342
- 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 = {}) {
1343
- // verify required parameter 'page' is not null or undefined
1344
- (0, common_1.assertParamExists)('getPunishments', 'page', page);
1345
- // verify required parameter 'limit' is not null or undefined
1346
- (0, common_1.assertParamExists)('getPunishments', 'limit', limit);
1347
- const localVarPath = `/admin/punishment`;
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)));
1348
1887
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
1349
1888
  const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
1350
1889
  let baseOptions;
1351
1890
  if (configuration) {
1352
1891
  baseOptions = configuration.baseOptions;
1353
1892
  }
1354
- const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
1893
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
1355
1894
  const localVarHeaderParameter = {};
1356
1895
  const localVarQueryParameter = {};
1357
1896
  // authentication DiscordAuth required
1358
1897
  // http bearer authentication required
1359
1898
  yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
1360
- if (uuid !== undefined) {
1361
- localVarQueryParameter['uuid'] = uuid;
1362
- }
1363
- if (username !== undefined) {
1364
- localVarQueryParameter['username'] = username;
1365
- }
1366
- if (ipAddress !== undefined) {
1367
- localVarQueryParameter['ipAddress'] = ipAddress;
1368
- }
1369
- if (type) {
1370
- localVarQueryParameter['type'] = type.join(base_1.COLLECTION_FORMATS.csv);
1371
- }
1372
- if (issuedAfter !== undefined) {
1373
- localVarQueryParameter['issuedAfter'] = issuedAfter;
1374
- }
1375
- if (issuedBefore !== undefined) {
1376
- localVarQueryParameter['issuedBefore'] = issuedBefore;
1377
- }
1378
- if (page !== undefined) {
1379
- localVarQueryParameter['page'] = page;
1380
- }
1381
- if (limit !== undefined) {
1382
- localVarQueryParameter['limit'] = limit;
1383
- }
1899
+ localVarHeaderParameter['Content-Type'] = 'application/json';
1384
1900
  localVarHeaderParameter['Accept'] = 'application/json';
1385
1901
  (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
1386
1902
  let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1387
1903
  localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
1904
+ localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(adminCreatePlayerNoteRequest, localVarRequestOptions, configuration);
1388
1905
  return {
1389
1906
  url: (0, common_1.toPathString)(localVarUrlObj),
1390
1907
  options: localVarRequestOptions,
1391
1908
  };
1392
1909
  }),
1393
1910
  /**
1394
- * Search for players by UUID or username, or look up all players associated with an IP address.
1395
- * @summary Search punishment targets
1396
- * @param {string} q UUID, username, or partial/full IP address to search for
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
1397
1915
  * @param {*} [options] Override http request option.
1398
1916
  * @throws {RequiredError}
1399
1917
  */
1400
- searchTargets: (q_1, ...args_1) => __awaiter(this, [q_1, ...args_1], void 0, function* (q, options = {}) {
1401
- // verify required parameter 'q' is not null or undefined
1402
- (0, common_1.assertParamExists)('searchTargets', 'q', q);
1403
- const localVarPath = `/admin/punishment/search`;
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)));
1404
1926
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
1405
1927
  const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
1406
1928
  let baseOptions;
1407
1929
  if (configuration) {
1408
1930
  baseOptions = configuration.baseOptions;
1409
1931
  }
1410
- const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
1932
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options);
1411
1933
  const localVarHeaderParameter = {};
1412
1934
  const localVarQueryParameter = {};
1413
1935
  // authentication DiscordAuth required
1414
1936
  // http bearer authentication required
1415
1937
  yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
1416
- if (q !== undefined) {
1417
- localVarQueryParameter['q'] = q;
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;
1418
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);
1419
1970
  localVarHeaderParameter['Accept'] = 'application/json';
1420
1971
  (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
1421
1972
  let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
@@ -1425,26 +1976,1433 @@ const AdminPunishmentsApiAxiosParamCreator = function (configuration) {
1425
1976
  options: localVarRequestOptions,
1426
1977
  };
1427
1978
  }),
1428
- };
1429
- };
1430
- exports.AdminPunishmentsApiAxiosParamCreator = AdminPunishmentsApiAxiosParamCreator;
1431
- /**
1432
- * AdminPunishmentsApi - functional programming interface
1433
- */
1434
- const AdminPunishmentsApiFp = function (configuration) {
1435
- const localVarAxiosParamCreator = (0, exports.AdminPunishmentsApiAxiosParamCreator)(configuration);
1436
- return {
1437
1979
  /**
1438
- * Apply a punishment to one or more targets. The authenticated user is recorded as the issuer.
1439
- * @summary Apply punishment
1440
- * @param {AdminApplyPunishmentRequest} adminApplyPunishmentRequest
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
1441
1984
  * @param {*} [options] Override http request option.
1442
1985
  * @throws {RequiredError}
1443
1986
  */
1444
- applyPunishment(adminApplyPunishmentRequest, options) {
1445
- return __awaiter(this, void 0, void 0, function* () {
1446
- var _a, _b, _c;
1447
- const localVarAxiosArgs = yield localVarAxiosParamCreator.applyPunishment(adminApplyPunishmentRequest, options);
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
+ }
3126
+ /**
3127
+ * Delete the symmetric exemption pair between two players. Both directions are removed.
3128
+ * @summary Remove an alt exemption
3129
+ * @param {string} uuid Player Minecraft UUID
3130
+ * @param {string} altPlayerUuid UUID of the alt to remove from exemption
3131
+ * @param {*} [options] Override http request option.
3132
+ * @throws {RequiredError}
3133
+ */
3134
+ removeAltExemption(uuid, altPlayerUuid, options) {
3135
+ return (0, exports.AdminPlayersApiFp)(this.configuration).removeAltExemption(uuid, altPlayerUuid, options).then((request) => request(this.axios, this.basePath));
3136
+ }
3137
+ /**
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)
3174
+ * @param {*} [options] Override http request option.
3175
+ * @throws {RequiredError}
3176
+ */
3177
+ trustFactorHistory(uuid, days, options) {
3178
+ return (0, exports.AdminPlayersApiFp)(this.configuration).trustFactorHistory(uuid, days, options).then((request) => request(this.axios, this.basePath));
3179
+ }
3180
+ }
3181
+ exports.AdminPlayersApi = AdminPlayersApi;
3182
+ /**
3183
+ * AdminPunishmentsApi - axios parameter creator
3184
+ */
3185
+ const AdminPunishmentsApiAxiosParamCreator = function (configuration) {
3186
+ return {
3187
+ /**
3188
+ * Apply a punishment to one or more targets. The authenticated user is recorded as the issuer.
3189
+ * @summary Apply punishment
3190
+ * @param {AdminApplyPunishmentRequest} adminApplyPunishmentRequest
3191
+ * @param {*} [options] Override http request option.
3192
+ * @throws {RequiredError}
3193
+ */
3194
+ applyPunishment: (adminApplyPunishmentRequest_1, ...args_1) => __awaiter(this, [adminApplyPunishmentRequest_1, ...args_1], void 0, function* (adminApplyPunishmentRequest, options = {}) {
3195
+ // verify required parameter 'adminApplyPunishmentRequest' is not null or undefined
3196
+ (0, common_1.assertParamExists)('applyPunishment', 'adminApplyPunishmentRequest', adminApplyPunishmentRequest);
3197
+ const localVarPath = `/admin/punishment/apply`;
3198
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
3199
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
3200
+ let baseOptions;
3201
+ if (configuration) {
3202
+ baseOptions = configuration.baseOptions;
3203
+ }
3204
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
3205
+ const localVarHeaderParameter = {};
3206
+ const localVarQueryParameter = {};
3207
+ // authentication DiscordAuth required
3208
+ // http bearer authentication required
3209
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
3210
+ localVarHeaderParameter['Content-Type'] = 'application/json';
3211
+ localVarHeaderParameter['Accept'] = 'application/json';
3212
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
3213
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
3214
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
3215
+ localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(adminApplyPunishmentRequest, localVarRequestOptions, configuration);
3216
+ return {
3217
+ url: (0, common_1.toPathString)(localVarUrlObj),
3218
+ options: localVarRequestOptions,
3219
+ };
3220
+ }),
3221
+ /**
3222
+ * Preview the impact of a punishment across one or more targets. No changes are made.
3223
+ * @summary Evaluate punishment impact
3224
+ * @param {AdminCreatePunishmentDraftRequest} adminCreatePunishmentDraftRequest
3225
+ * @param {*} [options] Override http request option.
3226
+ * @throws {RequiredError}
3227
+ */
3228
+ createDraft: (adminCreatePunishmentDraftRequest_1, ...args_1) => __awaiter(this, [adminCreatePunishmentDraftRequest_1, ...args_1], void 0, function* (adminCreatePunishmentDraftRequest, options = {}) {
3229
+ // verify required parameter 'adminCreatePunishmentDraftRequest' is not null or undefined
3230
+ (0, common_1.assertParamExists)('createDraft', 'adminCreatePunishmentDraftRequest', adminCreatePunishmentDraftRequest);
3231
+ const localVarPath = `/admin/punishment/draft`;
3232
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
3233
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
3234
+ let baseOptions;
3235
+ if (configuration) {
3236
+ baseOptions = configuration.baseOptions;
3237
+ }
3238
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
3239
+ const localVarHeaderParameter = {};
3240
+ const localVarQueryParameter = {};
3241
+ // authentication DiscordAuth required
3242
+ // http bearer authentication required
3243
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
3244
+ localVarHeaderParameter['Content-Type'] = 'application/json';
3245
+ localVarHeaderParameter['Accept'] = 'application/json';
3246
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
3247
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
3248
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
3249
+ localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(adminCreatePunishmentDraftRequest, localVarRequestOptions, configuration);
3250
+ return {
3251
+ url: (0, common_1.toPathString)(localVarUrlObj),
3252
+ options: localVarRequestOptions,
3253
+ };
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
+ }),
3292
+ /**
3293
+ * Returns a paginated list of punishments with optional filtering by player UUID, username, IP address, type, and date range.
3294
+ * @summary List punishments
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);
3308
+ const localVarPath = `/admin/punishment`;
3309
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
3310
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
3311
+ let baseOptions;
3312
+ if (configuration) {
3313
+ baseOptions = configuration.baseOptions;
3314
+ }
3315
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
3316
+ const localVarHeaderParameter = {};
3317
+ const localVarQueryParameter = {};
3318
+ // authentication DiscordAuth required
3319
+ // http bearer authentication required
3320
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
3321
+ if (uuid !== undefined) {
3322
+ localVarQueryParameter['uuid'] = uuid;
3323
+ }
3324
+ if (username !== undefined) {
3325
+ localVarQueryParameter['username'] = username;
3326
+ }
3327
+ if (ipAddress !== undefined) {
3328
+ localVarQueryParameter['ipAddress'] = ipAddress;
3329
+ }
3330
+ if (type) {
3331
+ localVarQueryParameter['type'] = type.join(base_1.COLLECTION_FORMATS.csv);
3332
+ }
3333
+ if (issuedAfter !== undefined) {
3334
+ localVarQueryParameter['issuedAfter'] = issuedAfter;
3335
+ }
3336
+ if (issuedBefore !== undefined) {
3337
+ localVarQueryParameter['issuedBefore'] = issuedBefore;
3338
+ }
3339
+ if (pageable !== undefined) {
3340
+ localVarQueryParameter['pageable'] = pageable;
3341
+ }
3342
+ localVarHeaderParameter['Accept'] = 'application/json';
3343
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
3344
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
3345
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
3346
+ return {
3347
+ url: (0, common_1.toPathString)(localVarUrlObj),
3348
+ options: localVarRequestOptions,
3349
+ };
3350
+ }),
3351
+ /**
3352
+ * Search for players by UUID or username, or look up all players associated with an IP address.
3353
+ * @summary Search punishment targets
3354
+ * @param {string} q UUID, username, or partial/full IP address to search for
3355
+ * @param {*} [options] Override http request option.
3356
+ * @throws {RequiredError}
3357
+ */
3358
+ searchTargets: (q_1, ...args_1) => __awaiter(this, [q_1, ...args_1], void 0, function* (q, options = {}) {
3359
+ // verify required parameter 'q' is not null or undefined
3360
+ (0, common_1.assertParamExists)('searchTargets', 'q', q);
3361
+ const localVarPath = `/admin/punishment/search`;
3362
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
3363
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
3364
+ let baseOptions;
3365
+ if (configuration) {
3366
+ baseOptions = configuration.baseOptions;
3367
+ }
3368
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
3369
+ const localVarHeaderParameter = {};
3370
+ const localVarQueryParameter = {};
3371
+ // authentication DiscordAuth required
3372
+ // http bearer authentication required
3373
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
3374
+ if (q !== undefined) {
3375
+ localVarQueryParameter['q'] = q;
3376
+ }
3377
+ localVarHeaderParameter['Accept'] = 'application/json';
3378
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
3379
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
3380
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
3381
+ return {
3382
+ url: (0, common_1.toPathString)(localVarUrlObj),
3383
+ options: localVarRequestOptions,
3384
+ };
3385
+ }),
3386
+ };
3387
+ };
3388
+ exports.AdminPunishmentsApiAxiosParamCreator = AdminPunishmentsApiAxiosParamCreator;
3389
+ /**
3390
+ * AdminPunishmentsApi - functional programming interface
3391
+ */
3392
+ const AdminPunishmentsApiFp = function (configuration) {
3393
+ const localVarAxiosParamCreator = (0, exports.AdminPunishmentsApiAxiosParamCreator)(configuration);
3394
+ return {
3395
+ /**
3396
+ * Apply a punishment to one or more targets. The authenticated user is recorded as the issuer.
3397
+ * @summary Apply punishment
3398
+ * @param {AdminApplyPunishmentRequest} adminApplyPunishmentRequest
3399
+ * @param {*} [options] Override http request option.
3400
+ * @throws {RequiredError}
3401
+ */
3402
+ applyPunishment(adminApplyPunishmentRequest, options) {
3403
+ return __awaiter(this, void 0, void 0, function* () {
3404
+ var _a, _b, _c;
3405
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.applyPunishment(adminApplyPunishmentRequest, options);
1448
3406
  const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
1449
3407
  const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminPunishmentsApi.applyPunishment']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
1450
3408
  return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
@@ -1467,156 +3425,385 @@ const AdminPunishmentsApiFp = function (configuration) {
1467
3425
  });
1468
3426
  },
1469
3427
  /**
1470
- * Returns a paginated list of punishments with optional filtering by player UUID, username, IP address, type, and date range.
1471
- * @summary List punishments
1472
- * @param {number} page Page number (1-indexed)
1473
- * @param {number} limit Page size
1474
- * @param {string | null} [uuid] Filter by player UUID
1475
- * @param {string | null} [username] Filter by player username (case-insensitive substring match)
1476
- * @param {string | null} [ipAddress] Filter by IP address
1477
- * @param {Array<PunishmentType> | null} [type] Filter by punishment type. Repeatable.
1478
- * @param {number | null} [issuedAfter] Filter punishments issued after this epoch timestamp (ms)
1479
- * @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]
1480
3714
  * @param {*} [options] Override http request option.
1481
3715
  * @throws {RequiredError}
1482
3716
  */
1483
- getPunishments(page, limit, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options) {
3717
+ list1(pageable, reportedUuid, openOnly, options) {
1484
3718
  return __awaiter(this, void 0, void 0, function* () {
1485
3719
  var _a, _b, _c;
1486
- const localVarAxiosArgs = yield localVarAxiosParamCreator.getPunishments(page, limit, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options);
3720
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.list1(pageable, reportedUuid, openOnly, options);
1487
3721
  const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
1488
- 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;
1489
3723
  return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1490
3724
  });
1491
3725
  },
1492
3726
  /**
1493
- * Search for players by UUID or username, or look up all players associated with an IP address.
1494
- * @summary Search punishment targets
1495
- * @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
1496
3731
  * @param {*} [options] Override http request option.
1497
3732
  * @throws {RequiredError}
1498
3733
  */
1499
- searchTargets(q, options) {
3734
+ resolve(id, adminResolveReportRequest, options) {
1500
3735
  return __awaiter(this, void 0, void 0, function* () {
1501
3736
  var _a, _b, _c;
1502
- const localVarAxiosArgs = yield localVarAxiosParamCreator.searchTargets(q, options);
3737
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.resolve(id, adminResolveReportRequest, options);
1503
3738
  const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
1504
- 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;
1505
3740
  return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1506
3741
  });
1507
3742
  },
1508
3743
  };
1509
3744
  };
1510
- exports.AdminPunishmentsApiFp = AdminPunishmentsApiFp;
3745
+ exports.AdminReportsApiFp = AdminReportsApiFp;
1511
3746
  /**
1512
- * AdminPunishmentsApi - factory interface
3747
+ * AdminReportsApi - factory interface
1513
3748
  */
1514
- const AdminPunishmentsApiFactory = function (configuration, basePath, axios) {
1515
- const localVarFp = (0, exports.AdminPunishmentsApiFp)(configuration);
3749
+ const AdminReportsApiFactory = function (configuration, basePath, axios) {
3750
+ const localVarFp = (0, exports.AdminReportsApiFp)(configuration);
1516
3751
  return {
1517
3752
  /**
1518
- * Apply a punishment to one or more targets. The authenticated user is recorded as the issuer.
1519
- * @summary Apply punishment
1520
- * @param {AdminApplyPunishmentRequest} adminApplyPunishmentRequest
1521
- * @param {*} [options] Override http request option.
1522
- * @throws {RequiredError}
1523
- */
1524
- applyPunishment(adminApplyPunishmentRequest, options) {
1525
- return localVarFp.applyPunishment(adminApplyPunishmentRequest, options).then((request) => request(axios, basePath));
1526
- },
1527
- /**
1528
- * Preview the impact of a punishment across one or more targets. No changes are made.
1529
- * @summary Evaluate punishment impact
1530
- * @param {AdminCreatePunishmentDraftRequest} adminCreatePunishmentDraftRequest
1531
- * @param {*} [options] Override http request option.
1532
- * @throws {RequiredError}
1533
- */
1534
- createDraft(adminCreatePunishmentDraftRequest, options) {
1535
- return localVarFp.createDraft(adminCreatePunishmentDraftRequest, options).then((request) => request(axios, basePath));
1536
- },
1537
- /**
1538
- * Returns a paginated list of punishments with optional filtering by player UUID, username, IP address, type, and date range.
1539
- * @summary List punishments
1540
- * @param {number} page Page number (1-indexed)
1541
- * @param {number} limit Page size
1542
- * @param {string | null} [uuid] Filter by player UUID
1543
- * @param {string | null} [username] Filter by player username (case-insensitive substring match)
1544
- * @param {string | null} [ipAddress] Filter by IP address
1545
- * @param {Array<PunishmentType> | null} [type] Filter by punishment type. Repeatable.
1546
- * @param {number | null} [issuedAfter] Filter punishments issued after this epoch timestamp (ms)
1547
- * @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]
1548
3758
  * @param {*} [options] Override http request option.
1549
3759
  * @throws {RequiredError}
1550
3760
  */
1551
- getPunishments(page, limit, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options) {
1552
- 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));
1553
3763
  },
1554
3764
  /**
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
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
1558
3769
  * @param {*} [options] Override http request option.
1559
3770
  * @throws {RequiredError}
1560
3771
  */
1561
- searchTargets(q, options) {
1562
- 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));
1563
3774
  },
1564
3775
  };
1565
3776
  };
1566
- exports.AdminPunishmentsApiFactory = AdminPunishmentsApiFactory;
3777
+ exports.AdminReportsApiFactory = AdminReportsApiFactory;
1567
3778
  /**
1568
- * AdminPunishmentsApi - object-oriented interface
3779
+ * AdminReportsApi - object-oriented interface
1569
3780
  */
1570
- class AdminPunishmentsApi extends base_1.BaseAPI {
1571
- /**
1572
- * Apply a punishment to one or more targets. The authenticated user is recorded as the issuer.
1573
- * @summary Apply punishment
1574
- * @param {AdminApplyPunishmentRequest} adminApplyPunishmentRequest
1575
- * @param {*} [options] Override http request option.
1576
- * @throws {RequiredError}
1577
- */
1578
- applyPunishment(adminApplyPunishmentRequest, options) {
1579
- return (0, exports.AdminPunishmentsApiFp)(this.configuration).applyPunishment(adminApplyPunishmentRequest, options).then((request) => request(this.axios, this.basePath));
1580
- }
1581
- /**
1582
- * Preview the impact of a punishment across one or more targets. No changes are made.
1583
- * @summary Evaluate punishment impact
1584
- * @param {AdminCreatePunishmentDraftRequest} adminCreatePunishmentDraftRequest
1585
- * @param {*} [options] Override http request option.
1586
- * @throws {RequiredError}
1587
- */
1588
- createDraft(adminCreatePunishmentDraftRequest, options) {
1589
- return (0, exports.AdminPunishmentsApiFp)(this.configuration).createDraft(adminCreatePunishmentDraftRequest, options).then((request) => request(this.axios, this.basePath));
1590
- }
3781
+ class AdminReportsApi extends base_1.BaseAPI {
1591
3782
  /**
1592
- * Returns a paginated list of punishments with optional filtering by player UUID, username, IP address, type, and date range.
1593
- * @summary List punishments
1594
- * @param {number} page Page number (1-indexed)
1595
- * @param {number} limit Page size
1596
- * @param {string | null} [uuid] Filter by player UUID
1597
- * @param {string | null} [username] Filter by player username (case-insensitive substring match)
1598
- * @param {string | null} [ipAddress] Filter by IP address
1599
- * @param {Array<PunishmentType> | null} [type] Filter by punishment type. Repeatable.
1600
- * @param {number | null} [issuedAfter] Filter punishments issued after this epoch timestamp (ms)
1601
- * @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]
1602
3788
  * @param {*} [options] Override http request option.
1603
3789
  * @throws {RequiredError}
1604
3790
  */
1605
- getPunishments(page, limit, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options) {
1606
- 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));
1607
3793
  }
1608
3794
  /**
1609
- * Search for players by UUID or username, or look up all players associated with an IP address.
1610
- * @summary Search punishment targets
1611
- * @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
1612
3799
  * @param {*} [options] Override http request option.
1613
3800
  * @throws {RequiredError}
1614
3801
  */
1615
- searchTargets(q, options) {
1616
- 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));
1617
3804
  }
1618
3805
  }
1619
- exports.AdminPunishmentsApi = AdminPunishmentsApi;
3806
+ exports.AdminReportsApi = AdminReportsApi;
1620
3807
  /**
1621
3808
  * AuthenticationApi - axios parameter creator
1622
3809
  */
@@ -1941,15 +4128,13 @@ const ChatApiAxiosParamCreator = function (configuration) {
1941
4128
  /**
1942
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.
1943
4130
  * @summary Get chat history
1944
- * @param {number} limit Maximum number of messages to return (1–100)
1945
4131
  * @param {string | null} [sessionId] Filter to a specific server session. Omit for global history.
1946
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)
1947
4134
  * @param {*} [options] Override http request option.
1948
4135
  * @throws {RequiredError}
1949
4136
  */
1950
- 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 = {}) {
1951
- // verify required parameter 'limit' is not null or undefined
1952
- (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 = {}) {
1953
4138
  const localVarPath = `/v1/chat`;
1954
4139
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
1955
4140
  const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
@@ -2027,16 +4212,16 @@ const ChatApiFp = function (configuration) {
2027
4212
  /**
2028
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.
2029
4214
  * @summary Get chat history
2030
- * @param {number} limit Maximum number of messages to return (1–100)
2031
4215
  * @param {string | null} [sessionId] Filter to a specific server session. Omit for global history.
2032
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)
2033
4218
  * @param {*} [options] Override http request option.
2034
4219
  * @throws {RequiredError}
2035
4220
  */
2036
- history(limit, sessionId, before, options) {
4221
+ history(sessionId, before, limit, options) {
2037
4222
  return __awaiter(this, void 0, void 0, function* () {
2038
4223
  var _a, _b, _c;
2039
- const localVarAxiosArgs = yield localVarAxiosParamCreator.history(limit, sessionId, before, options);
4224
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.history(sessionId, before, limit, options);
2040
4225
  const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2041
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;
2042
4227
  return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
@@ -2070,14 +4255,14 @@ const ChatApiFactory = function (configuration, basePath, axios) {
2070
4255
  /**
2071
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.
2072
4257
  * @summary Get chat history
2073
- * @param {number} limit Maximum number of messages to return (1–100)
2074
4258
  * @param {string | null} [sessionId] Filter to a specific server session. Omit for global history.
2075
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)
2076
4261
  * @param {*} [options] Override http request option.
2077
4262
  * @throws {RequiredError}
2078
4263
  */
2079
- history(limit, sessionId, before, options) {
2080
- 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));
2081
4266
  },
2082
4267
  /**
2083
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.
@@ -2099,14 +4284,14 @@ class ChatApi extends base_1.BaseAPI {
2099
4284
  /**
2100
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.
2101
4286
  * @summary Get chat history
2102
- * @param {number} limit Maximum number of messages to return (1–100)
2103
4287
  * @param {string | null} [sessionId] Filter to a specific server session. Omit for global history.
2104
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)
2105
4290
  * @param {*} [options] Override http request option.
2106
4291
  * @throws {RequiredError}
2107
4292
  */
2108
- history(limit, sessionId, before, options) {
2109
- 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));
2110
4295
  }
2111
4296
  /**
2112
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.
@@ -2126,19 +4311,18 @@ exports.ChatApi = ChatApi;
2126
4311
  const ConnectionApiAxiosParamCreator = function (configuration) {
2127
4312
  return {
2128
4313
  /**
2129
- * 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.
2130
- * @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)
2131
4316
  * @param {string} ip IPv4 address to analyze for VPN/proxy detection and geolocation
2132
- * @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
2133
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.
2134
4319
  * @param {*} [options] Override http request option.
4320
+ * @deprecated
2135
4321
  * @throws {RequiredError}
2136
4322
  */
2137
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 = {}) {
2138
4324
  // verify required parameter 'ip' is not null or undefined
2139
4325
  (0, common_1.assertParamExists)('getConnectionDetails', 'ip', ip);
2140
- // verify required parameter 'forceRecheck' is not null or undefined
2141
- (0, common_1.assertParamExists)('getConnectionDetails', 'forceRecheck', forceRecheck);
2142
4326
  const localVarPath = `/v1/connection/get-connection-details/{ip}`
2143
4327
  .replace(`{${"ip"}}`, encodeURIComponent(String(ip)));
2144
4328
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
@@ -2178,12 +4362,13 @@ const ConnectionApiFp = function (configuration) {
2178
4362
  const localVarAxiosParamCreator = (0, exports.ConnectionApiAxiosParamCreator)(configuration);
2179
4363
  return {
2180
4364
  /**
2181
- * 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.
2182
- * @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)
2183
4367
  * @param {string} ip IPv4 address to analyze for VPN/proxy detection and geolocation
2184
- * @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
2185
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.
2186
4370
  * @param {*} [options] Override http request option.
4371
+ * @deprecated
2187
4372
  * @throws {RequiredError}
2188
4373
  */
2189
4374
  getConnectionDetails(ip, forceRecheck, associateUuid, options) {
@@ -2205,12 +4390,13 @@ const ConnectionApiFactory = function (configuration, basePath, axios) {
2205
4390
  const localVarFp = (0, exports.ConnectionApiFp)(configuration);
2206
4391
  return {
2207
4392
  /**
2208
- * 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.
2209
- * @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)
2210
4395
  * @param {string} ip IPv4 address to analyze for VPN/proxy detection and geolocation
2211
- * @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
2212
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.
2213
4398
  * @param {*} [options] Override http request option.
4399
+ * @deprecated
2214
4400
  * @throws {RequiredError}
2215
4401
  */
2216
4402
  getConnectionDetails(ip, forceRecheck, associateUuid, options) {
@@ -2224,12 +4410,13 @@ exports.ConnectionApiFactory = ConnectionApiFactory;
2224
4410
  */
2225
4411
  class ConnectionApi extends base_1.BaseAPI {
2226
4412
  /**
2227
- * 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.
2228
- * @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)
2229
4415
  * @param {string} ip IPv4 address to analyze for VPN/proxy detection and geolocation
2230
- * @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
2231
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.
2232
4418
  * @param {*} [options] Override http request option.
4419
+ * @deprecated
2233
4420
  * @throws {RequiredError}
2234
4421
  */
2235
4422
  getConnectionDetails(ip, forceRecheck, associateUuid, options) {
@@ -2409,6 +4596,177 @@ class PlayerApi extends base_1.BaseAPI {
2409
4596
  }
2410
4597
  }
2411
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;
2412
4770
  /**
2413
4771
  * PunishmentApi - axios parameter creator
2414
4772
  */
@@ -2526,23 +4884,20 @@ const PunishmentApiAxiosParamCreator = function (configuration) {
2526
4884
  /**
2527
4885
  * Returns a paginated list of recent punishments with optional filtering by issue date, expiration date, and type
2528
4886
  * @summary List recent punishments
2529
- * @param {number} limit Maximum number of records to return
2530
- * @param {number} page Page number for pagination
2531
- * @param {number | null} [issuedAfter] Filter punishments issued after this epoch timestamp (milliseconds)
2532
- * @param {number | null} [issuedBefore] Filter punishments issued before this epoch timestamp (milliseconds)
2533
- * @param {number | null} [expiresAfter] Filter punishments expiring after this epoch timestamp (milliseconds)
2534
- * @param {number | null} [expiresBefore] Filter punishments expiring before this epoch timestamp (milliseconds)
2535
- * @param {Array<PunishmentType> | null} [type] Filter by punishment types
2536
- * @param {string | null} [uuid] Filter by player UUID
2537
- * @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]
2538
4895
  * @param {*} [options] Override http request option.
2539
4896
  * @throws {RequiredError}
2540
4897
  */
2541
- 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 = {}) {
2542
- // verify required parameter 'limit' is not null or undefined
2543
- (0, common_1.assertParamExists)('getRecentPunishments', 'limit', limit);
2544
- // verify required parameter 'page' is not null or undefined
2545
- (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);
2546
4901
  const localVarPath = `/v1/punishment/recent`;
2547
4902
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
2548
4903
  const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
@@ -2577,11 +4932,8 @@ const PunishmentApiAxiosParamCreator = function (configuration) {
2577
4932
  if (ipAddress !== undefined) {
2578
4933
  localVarQueryParameter['ipAddress'] = ipAddress;
2579
4934
  }
2580
- if (limit !== undefined) {
2581
- localVarQueryParameter['limit'] = limit;
2582
- }
2583
- if (page !== undefined) {
2584
- localVarQueryParameter['page'] = page;
4935
+ if (pageable !== undefined) {
4936
+ localVarQueryParameter['pageable'] = pageable;
2585
4937
  }
2586
4938
  localVarHeaderParameter['Accept'] = 'application/json';
2587
4939
  (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
@@ -2654,22 +5006,21 @@ const PunishmentApiFp = function (configuration) {
2654
5006
  /**
2655
5007
  * Returns a paginated list of recent punishments with optional filtering by issue date, expiration date, and type
2656
5008
  * @summary List recent punishments
2657
- * @param {number} limit Maximum number of records to return
2658
- * @param {number} page Page number for pagination
2659
- * @param {number | null} [issuedAfter] Filter punishments issued after this epoch timestamp (milliseconds)
2660
- * @param {number | null} [issuedBefore] Filter punishments issued before this epoch timestamp (milliseconds)
2661
- * @param {number | null} [expiresAfter] Filter punishments expiring after this epoch timestamp (milliseconds)
2662
- * @param {number | null} [expiresBefore] Filter punishments expiring before this epoch timestamp (milliseconds)
2663
- * @param {Array<PunishmentType> | null} [type] Filter by punishment types
2664
- * @param {string | null} [uuid] Filter by player UUID
2665
- * @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]
2666
5017
  * @param {*} [options] Override http request option.
2667
5018
  * @throws {RequiredError}
2668
5019
  */
2669
- getRecentPunishments(limit, page, issuedAfter, issuedBefore, expiresAfter, expiresBefore, type, uuid, ipAddress, options) {
5020
+ getRecentPunishments(pageable, issuedAfter, issuedBefore, expiresAfter, expiresBefore, type, uuid, ipAddress, options) {
2670
5021
  return __awaiter(this, void 0, void 0, function* () {
2671
5022
  var _a, _b, _c;
2672
- 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);
2673
5024
  const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2674
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;
2675
5026
  return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
@@ -2719,20 +5070,19 @@ const PunishmentApiFactory = function (configuration, basePath, axios) {
2719
5070
  /**
2720
5071
  * Returns a paginated list of recent punishments with optional filtering by issue date, expiration date, and type
2721
5072
  * @summary List recent punishments
2722
- * @param {number} limit Maximum number of records to return
2723
- * @param {number} page Page number for pagination
2724
- * @param {number | null} [issuedAfter] Filter punishments issued after this epoch timestamp (milliseconds)
2725
- * @param {number | null} [issuedBefore] Filter punishments issued before this epoch timestamp (milliseconds)
2726
- * @param {number | null} [expiresAfter] Filter punishments expiring after this epoch timestamp (milliseconds)
2727
- * @param {number | null} [expiresBefore] Filter punishments expiring before this epoch timestamp (milliseconds)
2728
- * @param {Array<PunishmentType> | null} [type] Filter by punishment types
2729
- * @param {string | null} [uuid] Filter by player UUID
2730
- * @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]
2731
5081
  * @param {*} [options] Override http request option.
2732
5082
  * @throws {RequiredError}
2733
5083
  */
2734
- getRecentPunishments(limit, page, issuedAfter, issuedBefore, expiresAfter, expiresBefore, type, uuid, ipAddress, options) {
2735
- 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));
2736
5086
  },
2737
5087
  };
2738
5088
  };
@@ -2776,23 +5126,124 @@ class PunishmentApi extends base_1.BaseAPI {
2776
5126
  /**
2777
5127
  * Returns a paginated list of recent punishments with optional filtering by issue date, expiration date, and type
2778
5128
  * @summary List recent punishments
2779
- * @param {number} limit Maximum number of records to return
2780
- * @param {number} page Page number for pagination
2781
- * @param {number | null} [issuedAfter] Filter punishments issued after this epoch timestamp (milliseconds)
2782
- * @param {number | null} [issuedBefore] Filter punishments issued before this epoch timestamp (milliseconds)
2783
- * @param {number | null} [expiresAfter] Filter punishments expiring after this epoch timestamp (milliseconds)
2784
- * @param {number | null} [expiresBefore] Filter punishments expiring before this epoch timestamp (milliseconds)
2785
- * @param {Array<PunishmentType> | null} [type] Filter by punishment types
2786
- * @param {string | null} [uuid] Filter by player UUID
2787
- * @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]
2788
5137
  * @param {*} [options] Override http request option.
2789
5138
  * @throws {RequiredError}
2790
5139
  */
2791
- getRecentPunishments(limit, page, issuedAfter, issuedBefore, expiresAfter, expiresBefore, type, uuid, ipAddress, options) {
2792
- 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));
2793
5142
  }
2794
5143
  }
2795
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;
2796
5247
  /**
2797
5248
  * ServerSessionsApi - axios parameter creator
2798
5249
  */