@rebornteam/reborn-api 4.0.0 → 4.5.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.
package/common.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  * Reborn API
5
5
  * The Reborn API serves as the central backend for the platform, orchestrating secure communication between game clients and data services. This API supports two authentication methods: - **OAuth 2.0 Client Credentials**: For programmatic API access - **Discord SSO Bearer Token**: For admin endpoints requiring Discord authentication
6
6
  *
7
- * The version of the OpenAPI document: 4.0.0
7
+ * The version of the OpenAPI document: 4.5.0
8
8
  *
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/configuration.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  * Reborn API
4
4
  * 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
5
5
  *
6
- * The version of the OpenAPI document: 4.0.0
6
+ * The version of the OpenAPI document: 4.5.0
7
7
  *
8
8
  *
9
9
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/dist/api.d.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  * Reborn API
3
3
  * 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
4
4
  *
5
- * The version of the OpenAPI document: 4.0.0
5
+ * The version of the OpenAPI document: 4.5.0
6
6
  *
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -63,6 +63,69 @@ export interface AdminAltExemption {
63
63
  */
64
64
  'reason'?: string | null;
65
65
  }
66
+ /**
67
+ * Alt-graph rooted at a player, walked out to the requested hop depth.
68
+ */
69
+ export interface AdminAltGraph {
70
+ /**
71
+ * UUID of the focal player. Always appears in nodes at depth=0.
72
+ */
73
+ 'rootUuid': string;
74
+ /**
75
+ * Maximum hop depth walked. Capped server-side at MAX_PROPAGATION_DEPTH.
76
+ */
77
+ 'depth': number;
78
+ /**
79
+ * Every player reachable from the root within {@code depth} hops, including the root at depth=0.
80
+ */
81
+ 'nodes': Array<AdminAltGraphNode>;
82
+ /**
83
+ * Undirected edges between any two players in nodes that share at least one non-promiscuous connection.
84
+ */
85
+ 'edges': Array<AdminAltGraphEdge>;
86
+ }
87
+ /**
88
+ * Undirected edge in an alt-graph traversal.
89
+ */
90
+ export interface AdminAltGraphEdge {
91
+ /**
92
+ * One endpoint of the edge
93
+ */
94
+ 'fromUuid': string;
95
+ /**
96
+ * Other endpoint of the edge. The pair is emitted only once — the SQL ensures fromUuid < toUuid lexicographically.
97
+ */
98
+ 'toUuid': string;
99
+ /**
100
+ * Number of distinct non-promiscuous connections these two players share. Drives edge thickness.
101
+ */
102
+ 'sharedConnectionCount': number;
103
+ }
104
+ /**
105
+ * One player node in an alt-graph traversal.
106
+ */
107
+ export interface AdminAltGraphNode {
108
+ /**
109
+ * Player Minecraft UUID
110
+ */
111
+ 'uuid': string;
112
+ /**
113
+ * Most recently seen username, null if never resolved
114
+ */
115
+ 'username'?: string | null;
116
+ /**
117
+ * Hop count from the focal player (0 = the focal player herself).
118
+ */
119
+ 'depth': number;
120
+ /**
121
+ * Trust factor (0-100). Drives the node colour in the graph.
122
+ */
123
+ 'trustFactor': number;
124
+ /**
125
+ * Whether this player currently has at least one active (non-revoked, non-expired) player_punishment row. Drives a red outline ring on the node.
126
+ */
127
+ 'hasActivePunishment': boolean;
128
+ }
66
129
  /**
67
130
  * Request to apply a punishment to one or more targets
68
131
  */
@@ -198,6 +261,23 @@ export interface AdminAsyncJob {
198
261
  * Identifier of the API instance that is running this job. Other instances can see state and request cancellation but cannot dispose the in-flight Reactor subscription directly.
199
262
  */
200
263
  'hostInstance': string;
264
+ /**
265
+ * Pointer to a CSV artifact emitted by this job, when one exists. Present only after the job marks COMPLETED and the artifact has been persisted. Download the CSV bytes via GET /admin/job/{id}/artifact.csv.
266
+ */
267
+ 'artifact'?: AdminAsyncJobArtifactMeta | null;
268
+ }
269
+ /**
270
+ * Pointer to a job\'s CSV artifact. Present only when the job emitted one.
271
+ */
272
+ export interface AdminAsyncJobArtifactMeta {
273
+ /**
274
+ * Number of data rows in the artifact (excluding the header).
275
+ */
276
+ 'rowCount': number;
277
+ /**
278
+ * When the artifact was finalized (typically a few seconds after the job marked COMPLETED).
279
+ */
280
+ 'createdAt': string;
201
281
  }
202
282
  /**
203
283
  * Acknowledgement returned by endpoints that submit an async job. The id is the polling target — GET /admin/job/{id} for status, DELETE /admin/job/{id} to cancel.
@@ -824,6 +904,19 @@ export interface AdminPunishmentTarget {
824
904
  */
825
905
  'ipAddress'?: string | null;
826
906
  }
907
+ /**
908
+ * Active DIRECT participants currently attached to a punishment.
909
+ */
910
+ export interface AdminPunishmentTargets {
911
+ /**
912
+ * UUIDs of players with an active DIRECT player_punishment link to this punishment.
913
+ */
914
+ 'playerUuids': Array<string>;
915
+ /**
916
+ * IPs of connections with a live connection_punishment row for this punishment.
917
+ */
918
+ 'ipAddresses': Array<string>;
919
+ }
827
920
  /**
828
921
  * One reported player attached to a report.
829
922
  */
@@ -971,7 +1064,7 @@ export interface AdminTrustFactorImpact {
971
1064
  'projectedTrustFactor': number;
972
1065
  }
973
1066
  /**
974
- * Partial update for a punishment. Only reason / notes / expiresAt may be edited — severity is intentionally immutable to keep the punishment score deterministic.
1067
+ * Partial update for a punishment. All fields are optional; omitted fields stay untouched.
975
1068
  */
976
1069
  export interface AdminUpdatePunishmentRequest {
977
1070
  /**
@@ -990,6 +1083,22 @@ export interface AdminUpdatePunishmentRequest {
990
1083
  * When true, clears expiresAt (makes the punishment permanent). Takes precedence over expiresAt.
991
1084
  */
992
1085
  'forcePermanent'?: boolean | null;
1086
+ /**
1087
+ * Replace the punishment type (BAN/MUTE/KICK/WARNING). Affects trust factor retroactively.
1088
+ */
1089
+ 'type'?: PunishmentType | null;
1090
+ /**
1091
+ * Replace the severity (1–4). Affects trust factor retroactively.
1092
+ */
1093
+ 'severity'?: number | null;
1094
+ /**
1095
+ * Targets to ADD. Each entry has either a player UUID or an IP. UUID → new DIRECT player_punishment row. IP → new connection_punishment row.
1096
+ */
1097
+ 'addTargets'?: Array<AdminPunishmentTarget> | null;
1098
+ /**
1099
+ * Targets to REMOVE. UUID → soft-revoke the DIRECT player_punishment link. IP → delete the connection_punishment row outright. PROPAGATED links are not affected by this endpoint.
1100
+ */
1101
+ 'removeTargets'?: Array<AdminPunishmentTarget> | null;
993
1102
  }
994
1103
  /**
995
1104
  * A single entry in a player\'s username history
@@ -2463,6 +2572,14 @@ export declare const AdminJobsApiAxiosParamCreator: (configuration?: Configurati
2463
2572
  * @throws {RequiredError}
2464
2573
  */
2465
2574
  cancel: (id: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
2575
+ /**
2576
+ * Returns the CSV emitted by the job — typically one row per record the job touched. The first line is a header; subsequent lines are RFC-4180 escaped data rows. 404 when the job has no artifact (either it didn\'t emit one, or it hasn\'t finished yet).
2577
+ * @summary Download a job\'s CSV artifact
2578
+ * @param {string} id Job id
2579
+ * @param {*} [options] Override http request option.
2580
+ * @throws {RequiredError}
2581
+ */
2582
+ downloadArtifact: (id: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
2466
2583
  /**
2467
2584
  * The polling target — the admin UI hits this every ~2 s while a job is running to update its progress bar.
2468
2585
  * @summary Get one async job
@@ -2493,6 +2610,14 @@ export declare const AdminJobsApiFp: (configuration?: Configuration) => {
2493
2610
  * @throws {RequiredError}
2494
2611
  */
2495
2612
  cancel(id: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
2613
+ /**
2614
+ * Returns the CSV emitted by the job — typically one row per record the job touched. The first line is a header; subsequent lines are RFC-4180 escaped data rows. 404 when the job has no artifact (either it didn\'t emit one, or it hasn\'t finished yet).
2615
+ * @summary Download a job\'s CSV artifact
2616
+ * @param {string} id Job id
2617
+ * @param {*} [options] Override http request option.
2618
+ * @throws {RequiredError}
2619
+ */
2620
+ downloadArtifact(id: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<string>>;
2496
2621
  /**
2497
2622
  * The polling target — the admin UI hits this every ~2 s while a job is running to update its progress bar.
2498
2623
  * @summary Get one async job
@@ -2523,6 +2648,14 @@ export declare const AdminJobsApiFactory: (configuration?: Configuration, basePa
2523
2648
  * @throws {RequiredError}
2524
2649
  */
2525
2650
  cancel(id: string, options?: RawAxiosRequestConfig): AxiosPromise<void>;
2651
+ /**
2652
+ * Returns the CSV emitted by the job — typically one row per record the job touched. The first line is a header; subsequent lines are RFC-4180 escaped data rows. 404 when the job has no artifact (either it didn\'t emit one, or it hasn\'t finished yet).
2653
+ * @summary Download a job\'s CSV artifact
2654
+ * @param {string} id Job id
2655
+ * @param {*} [options] Override http request option.
2656
+ * @throws {RequiredError}
2657
+ */
2658
+ downloadArtifact(id: string, options?: RawAxiosRequestConfig): AxiosPromise<string>;
2526
2659
  /**
2527
2660
  * The polling target — the admin UI hits this every ~2 s while a job is running to update its progress bar.
2528
2661
  * @summary Get one async job
@@ -2553,6 +2686,14 @@ export declare class AdminJobsApi extends BaseAPI {
2553
2686
  * @throws {RequiredError}
2554
2687
  */
2555
2688
  cancel(id: string, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<void, any, {}>>;
2689
+ /**
2690
+ * Returns the CSV emitted by the job — typically one row per record the job touched. The first line is a header; subsequent lines are RFC-4180 escaped data rows. 404 when the job has no artifact (either it didn\'t emit one, or it hasn\'t finished yet).
2691
+ * @summary Download a job\'s CSV artifact
2692
+ * @param {string} id Job id
2693
+ * @param {*} [options] Override http request option.
2694
+ * @throws {RequiredError}
2695
+ */
2696
+ downloadArtifact(id: string, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<string, any, {}>>;
2556
2697
  /**
2557
2698
  * The polling target — the admin UI hits this every ~2 s while a job is running to update its progress bar.
2558
2699
  * @summary Get one async job
@@ -2584,6 +2725,13 @@ export declare const AdminPlayersApiAxiosParamCreator: (configuration?: Configur
2584
2725
  * @throws {RequiredError}
2585
2726
  */
2586
2727
  addAltExemption: (uuid: string, adminCreateAltExemptionRequest: AdminCreateAltExemptionRequest, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
2728
+ /**
2729
+ * Submits an async job that walks every player row whose username is NULL and calls the Mojang profile API to resolve it. The job upserts both the player.username column and a player_username_history row. Returns immediately with a job id — poll GET /admin/job/{id} for progress and DELETE /admin/job/{id} to cancel. The final Admin_BackfillUsernamesResponse (processed/succeeded/failed counts) lands in the job\'s result_payload on COMPLETED. Mojang rate-limits at ~1 req/sec; a backfill of many rows can run for a while — cancel is honoured between rows.
2730
+ * @summary Start a username backfill job
2731
+ * @param {*} [options] Override http request option.
2732
+ * @throws {RequiredError}
2733
+ */
2734
+ backfillUsernames: (options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
2587
2735
  /**
2588
2736
  * 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.
2589
2737
  * @summary Bulk-revoke PROPAGATED links by source
@@ -2610,6 +2758,15 @@ export declare const AdminPlayersApiAxiosParamCreator: (configuration?: Configur
2610
2758
  * @throws {RequiredError}
2611
2759
  */
2612
2760
  deletePlayerNote: (uuid: string, noteId: number, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
2761
+ /**
2762
+ * Returns the connection-shared player graph reachable from this player within {depth} hops. Mirrors the propagation walk used by ALT_PROPAGATION_SWEEP — promiscuous (likely shared-NAT) connections are pruned, alt-exemption rows cut the graph at exempted players. Depth is clamped server-side at 5. Used by the admin Graph tab to render an interactive explorer.
2763
+ * @summary Alt-graph traversal rooted at a player
2764
+ * @param {string} uuid Player Minecraft UUID
2765
+ * @param {number} [depth] Hop depth to walk. 1&#x3D;direct alts only; 5&#x3D;full sticky-trap radius. Default 2.
2766
+ * @param {*} [options] Override http request option.
2767
+ * @throws {RequiredError}
2768
+ */
2769
+ getAltGraph: (uuid: string, depth?: number, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
2613
2770
  /**
2614
2771
  * Returns full detail for a single player including all known usernames and punishment scoring.
2615
2772
  * @summary Get player detail
@@ -2747,6 +2904,13 @@ export declare const AdminPlayersApiFp: (configuration?: Configuration) => {
2747
2904
  * @throws {RequiredError}
2748
2905
  */
2749
2906
  addAltExemption(uuid: string, adminCreateAltExemptionRequest: AdminCreateAltExemptionRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
2907
+ /**
2908
+ * Submits an async job that walks every player row whose username is NULL and calls the Mojang profile API to resolve it. The job upserts both the player.username column and a player_username_history row. Returns immediately with a job id — poll GET /admin/job/{id} for progress and DELETE /admin/job/{id} to cancel. The final Admin_BackfillUsernamesResponse (processed/succeeded/failed counts) lands in the job\'s result_payload on COMPLETED. Mojang rate-limits at ~1 req/sec; a backfill of many rows can run for a while — cancel is honoured between rows.
2909
+ * @summary Start a username backfill job
2910
+ * @param {*} [options] Override http request option.
2911
+ * @throws {RequiredError}
2912
+ */
2913
+ backfillUsernames(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AdminAsyncJobStartResponse>>;
2750
2914
  /**
2751
2915
  * 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.
2752
2916
  * @summary Bulk-revoke PROPAGATED links by source
@@ -2773,6 +2937,15 @@ export declare const AdminPlayersApiFp: (configuration?: Configuration) => {
2773
2937
  * @throws {RequiredError}
2774
2938
  */
2775
2939
  deletePlayerNote(uuid: string, noteId: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
2940
+ /**
2941
+ * Returns the connection-shared player graph reachable from this player within {depth} hops. Mirrors the propagation walk used by ALT_PROPAGATION_SWEEP — promiscuous (likely shared-NAT) connections are pruned, alt-exemption rows cut the graph at exempted players. Depth is clamped server-side at 5. Used by the admin Graph tab to render an interactive explorer.
2942
+ * @summary Alt-graph traversal rooted at a player
2943
+ * @param {string} uuid Player Minecraft UUID
2944
+ * @param {number} [depth] Hop depth to walk. 1&#x3D;direct alts only; 5&#x3D;full sticky-trap radius. Default 2.
2945
+ * @param {*} [options] Override http request option.
2946
+ * @throws {RequiredError}
2947
+ */
2948
+ getAltGraph(uuid: string, depth?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AdminAltGraph>>;
2776
2949
  /**
2777
2950
  * Returns full detail for a single player including all known usernames and punishment scoring.
2778
2951
  * @summary Get player detail
@@ -2910,6 +3083,13 @@ export declare const AdminPlayersApiFactory: (configuration?: Configuration, bas
2910
3083
  * @throws {RequiredError}
2911
3084
  */
2912
3085
  addAltExemption(uuid: string, adminCreateAltExemptionRequest: AdminCreateAltExemptionRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
3086
+ /**
3087
+ * Submits an async job that walks every player row whose username is NULL and calls the Mojang profile API to resolve it. The job upserts both the player.username column and a player_username_history row. Returns immediately with a job id — poll GET /admin/job/{id} for progress and DELETE /admin/job/{id} to cancel. The final Admin_BackfillUsernamesResponse (processed/succeeded/failed counts) lands in the job\'s result_payload on COMPLETED. Mojang rate-limits at ~1 req/sec; a backfill of many rows can run for a while — cancel is honoured between rows.
3088
+ * @summary Start a username backfill job
3089
+ * @param {*} [options] Override http request option.
3090
+ * @throws {RequiredError}
3091
+ */
3092
+ backfillUsernames(options?: RawAxiosRequestConfig): AxiosPromise<AdminAsyncJobStartResponse>;
2913
3093
  /**
2914
3094
  * 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.
2915
3095
  * @summary Bulk-revoke PROPAGATED links by source
@@ -2936,6 +3116,15 @@ export declare const AdminPlayersApiFactory: (configuration?: Configuration, bas
2936
3116
  * @throws {RequiredError}
2937
3117
  */
2938
3118
  deletePlayerNote(uuid: string, noteId: number, options?: RawAxiosRequestConfig): AxiosPromise<void>;
3119
+ /**
3120
+ * Returns the connection-shared player graph reachable from this player within {depth} hops. Mirrors the propagation walk used by ALT_PROPAGATION_SWEEP — promiscuous (likely shared-NAT) connections are pruned, alt-exemption rows cut the graph at exempted players. Depth is clamped server-side at 5. Used by the admin Graph tab to render an interactive explorer.
3121
+ * @summary Alt-graph traversal rooted at a player
3122
+ * @param {string} uuid Player Minecraft UUID
3123
+ * @param {number} [depth] Hop depth to walk. 1&#x3D;direct alts only; 5&#x3D;full sticky-trap radius. Default 2.
3124
+ * @param {*} [options] Override http request option.
3125
+ * @throws {RequiredError}
3126
+ */
3127
+ getAltGraph(uuid: string, depth?: number, options?: RawAxiosRequestConfig): AxiosPromise<AdminAltGraph>;
2939
3128
  /**
2940
3129
  * Returns full detail for a single player including all known usernames and punishment scoring.
2941
3130
  * @summary Get player detail
@@ -3073,6 +3262,13 @@ export declare class AdminPlayersApi extends BaseAPI {
3073
3262
  * @throws {RequiredError}
3074
3263
  */
3075
3264
  addAltExemption(uuid: string, adminCreateAltExemptionRequest: AdminCreateAltExemptionRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<void, any, {}>>;
3265
+ /**
3266
+ * Submits an async job that walks every player row whose username is NULL and calls the Mojang profile API to resolve it. The job upserts both the player.username column and a player_username_history row. Returns immediately with a job id — poll GET /admin/job/{id} for progress and DELETE /admin/job/{id} to cancel. The final Admin_BackfillUsernamesResponse (processed/succeeded/failed counts) lands in the job\'s result_payload on COMPLETED. Mojang rate-limits at ~1 req/sec; a backfill of many rows can run for a while — cancel is honoured between rows.
3267
+ * @summary Start a username backfill job
3268
+ * @param {*} [options] Override http request option.
3269
+ * @throws {RequiredError}
3270
+ */
3271
+ backfillUsernames(options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<AdminAsyncJobStartResponse, any, {}>>;
3076
3272
  /**
3077
3273
  * 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.
3078
3274
  * @summary Bulk-revoke PROPAGATED links by source
@@ -3099,6 +3295,15 @@ export declare class AdminPlayersApi extends BaseAPI {
3099
3295
  * @throws {RequiredError}
3100
3296
  */
3101
3297
  deletePlayerNote(uuid: string, noteId: number, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<void, any, {}>>;
3298
+ /**
3299
+ * Returns the connection-shared player graph reachable from this player within {depth} hops. Mirrors the propagation walk used by ALT_PROPAGATION_SWEEP — promiscuous (likely shared-NAT) connections are pruned, alt-exemption rows cut the graph at exempted players. Depth is clamped server-side at 5. Used by the admin Graph tab to render an interactive explorer.
3300
+ * @summary Alt-graph traversal rooted at a player
3301
+ * @param {string} uuid Player Minecraft UUID
3302
+ * @param {number} [depth] Hop depth to walk. 1&#x3D;direct alts only; 5&#x3D;full sticky-trap radius. Default 2.
3303
+ * @param {*} [options] Override http request option.
3304
+ * @throws {RequiredError}
3305
+ */
3306
+ getAltGraph(uuid: string, depth?: number, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<AdminAltGraph, any, {}>>;
3102
3307
  /**
3103
3308
  * Returns full detail for a single player including all known usernames and punishment scoring.
3104
3309
  * @summary Get player detail
@@ -3252,6 +3457,14 @@ export declare const AdminPunishmentsApiAxiosParamCreator: (configuration?: Conf
3252
3457
  * @throws {RequiredError}
3253
3458
  */
3254
3459
  editPunishment: (id: number, adminUpdatePunishmentRequest: AdminUpdatePunishmentRequest, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
3460
+ /**
3461
+ * Returns the active DIRECT player_punishment UUIDs and the live connection_punishment IPs for a punishment. Used by the admin edit dialog to render the editable participant list. PROPAGATED links are excluded — they\'re an enforcement detail, not part of \'who the admin attached to this punishment\'.
3462
+ * @summary List a punishment\'s current participants
3463
+ * @param {number} id Punishment id
3464
+ * @param {*} [options] Override http request option.
3465
+ * @throws {RequiredError}
3466
+ */
3467
+ getPunishmentTargets: (id: number, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
3255
3468
  /**
3256
3469
  * Returns a paginated list of punishments with optional filtering by player UUID, username, IP address, type, and date range.
3257
3470
  * @summary List punishments
@@ -3266,6 +3479,13 @@ export declare const AdminPunishmentsApiAxiosParamCreator: (configuration?: Conf
3266
3479
  * @throws {RequiredError}
3267
3480
  */
3268
3481
  getPunishments: (pageable: Pageable, uuid?: string | null, username?: string | null, ipAddress?: string | null, type?: Array<PunishmentType> | null, issuedAfter?: number | null, issuedBefore?: number | null, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
3482
+ /**
3483
+ * Submits an async job that walks every player and re-runs the aggressive-mode propagation logic (tier-1 own-IP plus tier-2 alt-driven). Useful after toggling aggressive-mode on, or after a propagation-rule change, to backfill PROPAGATED player_punishment rows that would otherwise only appear on each player\'s next login. Idempotent — ON CONFLICT DO NOTHING. Returns immediately with a job id; poll GET /admin/job/{id} for progress and DELETE /admin/job/{id} to cancel.
3484
+ * @summary Start an alt-propagation sweep job
3485
+ * @param {*} [options] Override http request option.
3486
+ * @throws {RequiredError}
3487
+ */
3488
+ propagationSweep: (options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
3269
3489
  /**
3270
3490
  * Search for players by UUID or username, or look up all players associated with an IP address.
3271
3491
  * @summary Search punishment targets
@@ -3304,6 +3524,14 @@ export declare const AdminPunishmentsApiFp: (configuration?: Configuration) => {
3304
3524
  * @throws {RequiredError}
3305
3525
  */
3306
3526
  editPunishment(id: number, adminUpdatePunishmentRequest: AdminUpdatePunishmentRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
3527
+ /**
3528
+ * Returns the active DIRECT player_punishment UUIDs and the live connection_punishment IPs for a punishment. Used by the admin edit dialog to render the editable participant list. PROPAGATED links are excluded — they\'re an enforcement detail, not part of \'who the admin attached to this punishment\'.
3529
+ * @summary List a punishment\'s current participants
3530
+ * @param {number} id Punishment id
3531
+ * @param {*} [options] Override http request option.
3532
+ * @throws {RequiredError}
3533
+ */
3534
+ getPunishmentTargets(id: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AdminPunishmentTargets>>;
3307
3535
  /**
3308
3536
  * Returns a paginated list of punishments with optional filtering by player UUID, username, IP address, type, and date range.
3309
3537
  * @summary List punishments
@@ -3318,6 +3546,13 @@ export declare const AdminPunishmentsApiFp: (configuration?: Configuration) => {
3318
3546
  * @throws {RequiredError}
3319
3547
  */
3320
3548
  getPunishments(pageable: Pageable, uuid?: string | null, username?: string | null, ipAddress?: string | null, type?: Array<PunishmentType> | null, issuedAfter?: number | null, issuedBefore?: number | null, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PageAdminPunishmentListItem>>;
3549
+ /**
3550
+ * Submits an async job that walks every player and re-runs the aggressive-mode propagation logic (tier-1 own-IP plus tier-2 alt-driven). Useful after toggling aggressive-mode on, or after a propagation-rule change, to backfill PROPAGATED player_punishment rows that would otherwise only appear on each player\'s next login. Idempotent — ON CONFLICT DO NOTHING. Returns immediately with a job id; poll GET /admin/job/{id} for progress and DELETE /admin/job/{id} to cancel.
3551
+ * @summary Start an alt-propagation sweep job
3552
+ * @param {*} [options] Override http request option.
3553
+ * @throws {RequiredError}
3554
+ */
3555
+ propagationSweep(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AdminAsyncJobStartResponse>>;
3321
3556
  /**
3322
3557
  * Search for players by UUID or username, or look up all players associated with an IP address.
3323
3558
  * @summary Search punishment targets
@@ -3356,6 +3591,14 @@ export declare const AdminPunishmentsApiFactory: (configuration?: Configuration,
3356
3591
  * @throws {RequiredError}
3357
3592
  */
3358
3593
  editPunishment(id: number, adminUpdatePunishmentRequest: AdminUpdatePunishmentRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
3594
+ /**
3595
+ * Returns the active DIRECT player_punishment UUIDs and the live connection_punishment IPs for a punishment. Used by the admin edit dialog to render the editable participant list. PROPAGATED links are excluded — they\'re an enforcement detail, not part of \'who the admin attached to this punishment\'.
3596
+ * @summary List a punishment\'s current participants
3597
+ * @param {number} id Punishment id
3598
+ * @param {*} [options] Override http request option.
3599
+ * @throws {RequiredError}
3600
+ */
3601
+ getPunishmentTargets(id: number, options?: RawAxiosRequestConfig): AxiosPromise<AdminPunishmentTargets>;
3359
3602
  /**
3360
3603
  * Returns a paginated list of punishments with optional filtering by player UUID, username, IP address, type, and date range.
3361
3604
  * @summary List punishments
@@ -3370,6 +3613,13 @@ export declare const AdminPunishmentsApiFactory: (configuration?: Configuration,
3370
3613
  * @throws {RequiredError}
3371
3614
  */
3372
3615
  getPunishments(pageable: Pageable, uuid?: string | null, username?: string | null, ipAddress?: string | null, type?: Array<PunishmentType> | null, issuedAfter?: number | null, issuedBefore?: number | null, options?: RawAxiosRequestConfig): AxiosPromise<PageAdminPunishmentListItem>;
3616
+ /**
3617
+ * Submits an async job that walks every player and re-runs the aggressive-mode propagation logic (tier-1 own-IP plus tier-2 alt-driven). Useful after toggling aggressive-mode on, or after a propagation-rule change, to backfill PROPAGATED player_punishment rows that would otherwise only appear on each player\'s next login. Idempotent — ON CONFLICT DO NOTHING. Returns immediately with a job id; poll GET /admin/job/{id} for progress and DELETE /admin/job/{id} to cancel.
3618
+ * @summary Start an alt-propagation sweep job
3619
+ * @param {*} [options] Override http request option.
3620
+ * @throws {RequiredError}
3621
+ */
3622
+ propagationSweep(options?: RawAxiosRequestConfig): AxiosPromise<AdminAsyncJobStartResponse>;
3373
3623
  /**
3374
3624
  * Search for players by UUID or username, or look up all players associated with an IP address.
3375
3625
  * @summary Search punishment targets
@@ -3408,6 +3658,14 @@ export declare class AdminPunishmentsApi extends BaseAPI {
3408
3658
  * @throws {RequiredError}
3409
3659
  */
3410
3660
  editPunishment(id: number, adminUpdatePunishmentRequest: AdminUpdatePunishmentRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<void, any, {}>>;
3661
+ /**
3662
+ * Returns the active DIRECT player_punishment UUIDs and the live connection_punishment IPs for a punishment. Used by the admin edit dialog to render the editable participant list. PROPAGATED links are excluded — they\'re an enforcement detail, not part of \'who the admin attached to this punishment\'.
3663
+ * @summary List a punishment\'s current participants
3664
+ * @param {number} id Punishment id
3665
+ * @param {*} [options] Override http request option.
3666
+ * @throws {RequiredError}
3667
+ */
3668
+ getPunishmentTargets(id: number, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<AdminPunishmentTargets, any, {}>>;
3411
3669
  /**
3412
3670
  * Returns a paginated list of punishments with optional filtering by player UUID, username, IP address, type, and date range.
3413
3671
  * @summary List punishments
@@ -3422,6 +3680,13 @@ export declare class AdminPunishmentsApi extends BaseAPI {
3422
3680
  * @throws {RequiredError}
3423
3681
  */
3424
3682
  getPunishments(pageable: Pageable, uuid?: string | null, username?: string | null, ipAddress?: string | null, type?: Array<PunishmentType> | null, issuedAfter?: number | null, issuedBefore?: number | null, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<PageAdminPunishmentListItem, any, {}>>;
3683
+ /**
3684
+ * Submits an async job that walks every player and re-runs the aggressive-mode propagation logic (tier-1 own-IP plus tier-2 alt-driven). Useful after toggling aggressive-mode on, or after a propagation-rule change, to backfill PROPAGATED player_punishment rows that would otherwise only appear on each player\'s next login. Idempotent — ON CONFLICT DO NOTHING. Returns immediately with a job id; poll GET /admin/job/{id} for progress and DELETE /admin/job/{id} to cancel.
3685
+ * @summary Start an alt-propagation sweep job
3686
+ * @param {*} [options] Override http request option.
3687
+ * @throws {RequiredError}
3688
+ */
3689
+ propagationSweep(options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<AdminAsyncJobStartResponse, any, {}>>;
3425
3690
  /**
3426
3691
  * Search for players by UUID or username, or look up all players associated with an IP address.
3427
3692
  * @summary Search punishment targets