@takaro/apiclient 0.0.0-dev.7ef2191 → 0.0.0-dev.814dfa1

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.
@@ -3322,6 +3322,315 @@ export interface EventEntityKilled {
3322
3322
  */
3323
3323
  msg?: string;
3324
3324
  }
3325
+ /**
3326
+ *
3327
+ * @export
3328
+ * @interface EventExploreCursorDTO
3329
+ */
3330
+ export interface EventExploreCursorDTO {
3331
+ /**
3332
+ *
3333
+ * @type {NOTDOMAINSCOPEDTakaroModelDTOCreatedAt}
3334
+ * @memberof EventExploreCursorDTO
3335
+ */
3336
+ time: NOTDOMAINSCOPEDTakaroModelDTOCreatedAt;
3337
+ /**
3338
+ *
3339
+ * @type {string}
3340
+ * @memberof EventExploreCursorDTO
3341
+ */
3342
+ id: string;
3343
+ }
3344
+ /**
3345
+ *
3346
+ * @export
3347
+ * @interface EventExploreFiltersDTO
3348
+ */
3349
+ export interface EventExploreFiltersDTO {
3350
+ /**
3351
+ *
3352
+ * @type {Array<string>}
3353
+ * @memberof EventExploreFiltersDTO
3354
+ */
3355
+ id?: Array<string>;
3356
+ /**
3357
+ *
3358
+ * @type {Array<string>}
3359
+ * @memberof EventExploreFiltersDTO
3360
+ */
3361
+ eventName?: Array<EventExploreFiltersDTOEventNameEnum>;
3362
+ /**
3363
+ *
3364
+ * @type {Array<string>}
3365
+ * @memberof EventExploreFiltersDTO
3366
+ */
3367
+ playerId?: Array<string>;
3368
+ /**
3369
+ *
3370
+ * @type {Array<string>}
3371
+ * @memberof EventExploreFiltersDTO
3372
+ */
3373
+ gameserverId?: Array<string>;
3374
+ /**
3375
+ *
3376
+ * @type {Array<string>}
3377
+ * @memberof EventExploreFiltersDTO
3378
+ */
3379
+ moduleId?: Array<string>;
3380
+ /**
3381
+ *
3382
+ * @type {Array<string>}
3383
+ * @memberof EventExploreFiltersDTO
3384
+ */
3385
+ userId?: Array<string>;
3386
+ /**
3387
+ *
3388
+ * @type {Array<string>}
3389
+ * @memberof EventExploreFiltersDTO
3390
+ */
3391
+ actingUserId?: Array<string>;
3392
+ /**
3393
+ *
3394
+ * @type {Array<string>}
3395
+ * @memberof EventExploreFiltersDTO
3396
+ */
3397
+ actingModuleId?: Array<string>;
3398
+ }
3399
+
3400
+ export const EventExploreFiltersDTOEventNameEnum = {
3401
+ RoleAssigned: 'role-assigned',
3402
+ RoleRemoved: 'role-removed',
3403
+ RoleCreated: 'role-created',
3404
+ RoleUpdated: 'role-updated',
3405
+ RoleDeleted: 'role-deleted',
3406
+ CommandExecuted: 'command-executed',
3407
+ CommandExecutionDenied: 'command-execution-denied',
3408
+ HookExecuted: 'hook-executed',
3409
+ CronjobExecuted: 'cronjob-executed',
3410
+ CurrencyAdded: 'currency-added',
3411
+ CurrencyDeducted: 'currency-deducted',
3412
+ CurrencyResetAll: 'currency-reset-all',
3413
+ SettingsSet: 'settings-set',
3414
+ PlayerNewIpDetected: 'player-new-ip-detected',
3415
+ PlayerNewNameDetected: 'player-new-name-detected',
3416
+ ServerStatusChanged: 'server-status-changed',
3417
+ ModuleCreated: 'module-created',
3418
+ ModuleUpdated: 'module-updated',
3419
+ ModuleDeleted: 'module-deleted',
3420
+ ModuleInstalled: 'module-installed',
3421
+ ModuleUninstalled: 'module-uninstalled',
3422
+ PlayerCreated: 'player-created',
3423
+ ShopListingCreated: 'shop-listing-created',
3424
+ ShopListingUpdated: 'shop-listing-updated',
3425
+ ShopListingDeleted: 'shop-listing-deleted',
3426
+ ShopOrderCreated: 'shop-order-created',
3427
+ ShopOrderStatusChanged: 'shop-order-status-changed',
3428
+ ShopOrderDeliveryFailed: 'shop-order-delivery-failed',
3429
+ PlayerLinked: 'player-linked',
3430
+ GameserverCreated: 'gameserver-created',
3431
+ GameserverUpdated: 'gameserver-updated',
3432
+ GameserverDeleted: 'gameserver-deleted',
3433
+ PlayerBanned: 'player-banned',
3434
+ PlayerUnbanned: 'player-unbanned',
3435
+ PlayerDeleted: 'player-deleted',
3436
+ ShopActionExecuted: 'shop-action-executed',
3437
+ PlayerInventoryChanged: 'player-inventory-changed',
3438
+ EventRateLimited: 'event-rate-limited',
3439
+ PlayerSyncSnapshot: 'player-sync-snapshot',
3440
+ PlayerConnected: 'player-connected',
3441
+ PlayerDisconnected: 'player-disconnected',
3442
+ ChatMessage: 'chat-message',
3443
+ PlayerDeath: 'player-death',
3444
+ EntityKilled: 'entity-killed',
3445
+ } as const;
3446
+
3447
+ export type EventExploreFiltersDTOEventNameEnum =
3448
+ (typeof EventExploreFiltersDTOEventNameEnum)[keyof typeof EventExploreFiltersDTOEventNameEnum];
3449
+
3450
+ /**
3451
+ *
3452
+ * @export
3453
+ * @interface EventExploreInputDTO
3454
+ */
3455
+ export interface EventExploreInputDTO {
3456
+ /**
3457
+ *
3458
+ * @type {EventExploreFiltersDTO}
3459
+ * @memberof EventExploreInputDTO
3460
+ */
3461
+ filters?: EventExploreFiltersDTO;
3462
+ /**
3463
+ *
3464
+ * @type {Array<any>}
3465
+ * @memberof EventExploreInputDTO
3466
+ */
3467
+ metaFilters?: Array<any>;
3468
+ /**
3469
+ *
3470
+ * @type {NOTDOMAINSCOPEDTakaroModelDTOCreatedAt}
3471
+ * @memberof EventExploreInputDTO
3472
+ */
3473
+ startDate?: NOTDOMAINSCOPEDTakaroModelDTOCreatedAt;
3474
+ /**
3475
+ *
3476
+ * @type {NOTDOMAINSCOPEDTakaroModelDTOCreatedAt}
3477
+ * @memberof EventExploreInputDTO
3478
+ */
3479
+ endDate?: NOTDOMAINSCOPEDTakaroModelDTOCreatedAt;
3480
+ /**
3481
+ *
3482
+ * @type {EventExploreCursorDTO}
3483
+ * @memberof EventExploreInputDTO
3484
+ */
3485
+ cursor?: EventExploreCursorDTO;
3486
+ /**
3487
+ *
3488
+ * @type {number}
3489
+ * @memberof EventExploreInputDTO
3490
+ */
3491
+ limit?: number;
3492
+ }
3493
+ /**
3494
+ *
3495
+ * @export
3496
+ * @interface EventExploreOutputDTO
3497
+ */
3498
+ export interface EventExploreOutputDTO {
3499
+ /**
3500
+ *
3501
+ * @type {Array<EventExploreRowDTO>}
3502
+ * @memberof EventExploreOutputDTO
3503
+ */
3504
+ rows: Array<EventExploreRowDTO>;
3505
+ /**
3506
+ *
3507
+ * @type {any}
3508
+ * @memberof EventExploreOutputDTO
3509
+ */
3510
+ nextCursor?: any;
3511
+ }
3512
+ /**
3513
+ *
3514
+ * @export
3515
+ * @interface EventExploreOutputDTOAPI
3516
+ */
3517
+ export interface EventExploreOutputDTOAPI {
3518
+ /**
3519
+ *
3520
+ * @type {EventExploreOutputDTO}
3521
+ * @memberof EventExploreOutputDTOAPI
3522
+ */
3523
+ data: EventExploreOutputDTO;
3524
+ /**
3525
+ *
3526
+ * @type {MetadataOutput}
3527
+ * @memberof EventExploreOutputDTOAPI
3528
+ */
3529
+ meta: MetadataOutput;
3530
+ }
3531
+ /**
3532
+ *
3533
+ * @export
3534
+ * @interface EventExploreRowDTO
3535
+ */
3536
+ export interface EventExploreRowDTO {
3537
+ /**
3538
+ *
3539
+ * @type {string}
3540
+ * @memberof EventExploreRowDTO
3541
+ */
3542
+ id: string;
3543
+ /**
3544
+ *
3545
+ * @type {string}
3546
+ * @memberof EventExploreRowDTO
3547
+ */
3548
+ eventName: string;
3549
+ /**
3550
+ *
3551
+ * @type {NOTDOMAINSCOPEDTakaroModelDTOCreatedAt}
3552
+ * @memberof EventExploreRowDTO
3553
+ */
3554
+ createdAt: NOTDOMAINSCOPEDTakaroModelDTOCreatedAt;
3555
+ /**
3556
+ *
3557
+ * @type {string}
3558
+ * @memberof EventExploreRowDTO
3559
+ */
3560
+ playerId?: string;
3561
+ /**
3562
+ *
3563
+ * @type {string}
3564
+ * @memberof EventExploreRowDTO
3565
+ */
3566
+ playerName?: string;
3567
+ /**
3568
+ *
3569
+ * @type {string}
3570
+ * @memberof EventExploreRowDTO
3571
+ */
3572
+ gameserverId?: string;
3573
+ /**
3574
+ *
3575
+ * @type {string}
3576
+ * @memberof EventExploreRowDTO
3577
+ */
3578
+ gameServerName?: string;
3579
+ /**
3580
+ *
3581
+ * @type {string}
3582
+ * @memberof EventExploreRowDTO
3583
+ */
3584
+ moduleId?: string;
3585
+ /**
3586
+ *
3587
+ * @type {string}
3588
+ * @memberof EventExploreRowDTO
3589
+ */
3590
+ moduleName?: string;
3591
+ /**
3592
+ *
3593
+ * @type {string}
3594
+ * @memberof EventExploreRowDTO
3595
+ */
3596
+ userId?: string;
3597
+ /**
3598
+ *
3599
+ * @type {string}
3600
+ * @memberof EventExploreRowDTO
3601
+ */
3602
+ userName?: string;
3603
+ /**
3604
+ *
3605
+ * @type {string}
3606
+ * @memberof EventExploreRowDTO
3607
+ */
3608
+ actingUserId?: string;
3609
+ /**
3610
+ *
3611
+ * @type {string}
3612
+ * @memberof EventExploreRowDTO
3613
+ */
3614
+ actingUserName?: string;
3615
+ /**
3616
+ *
3617
+ * @type {string}
3618
+ * @memberof EventExploreRowDTO
3619
+ */
3620
+ actingModuleId?: string;
3621
+ /**
3622
+ *
3623
+ * @type {string}
3624
+ * @memberof EventExploreRowDTO
3625
+ */
3626
+ actingModuleName?: string;
3627
+ /**
3628
+ *
3629
+ * @type {object}
3630
+ * @memberof EventExploreRowDTO
3631
+ */
3632
+ meta: object;
3633
+ }
3325
3634
  /**
3326
3635
  *
3327
3636
  * @export
@@ -3826,6 +4135,168 @@ export const EventSearchInputDTOSortDirectionEnum = {
3826
4135
  export type EventSearchInputDTOSortDirectionEnum =
3827
4136
  (typeof EventSearchInputDTOSortDirectionEnum)[keyof typeof EventSearchInputDTOSortDirectionEnum];
3828
4137
 
4138
+ /**
4139
+ *
4140
+ * @export
4141
+ * @interface EventVolumeDimensionTotalDTO
4142
+ */
4143
+ export interface EventVolumeDimensionTotalDTO {
4144
+ /**
4145
+ *
4146
+ * @type {string}
4147
+ * @memberof EventVolumeDimensionTotalDTO
4148
+ */
4149
+ key: string;
4150
+ /**
4151
+ * Resolved display name (populated when groupBy=gameServerId). Null for the
4152
+ * "other" bucket or when the entity no longer exists.
4153
+ * @type {string}
4154
+ * @memberof EventVolumeDimensionTotalDTO
4155
+ */
4156
+ name?: string | null;
4157
+ /**
4158
+ *
4159
+ * @type {number}
4160
+ * @memberof EventVolumeDimensionTotalDTO
4161
+ */
4162
+ count: number;
4163
+ }
4164
+ /**
4165
+ *
4166
+ * @export
4167
+ * @interface EventVolumeInputDTO
4168
+ */
4169
+ export interface EventVolumeInputDTO {
4170
+ /**
4171
+ *
4172
+ * @type {EventExploreFiltersDTO}
4173
+ * @memberof EventVolumeInputDTO
4174
+ */
4175
+ filters?: EventExploreFiltersDTO;
4176
+ /**
4177
+ *
4178
+ * @type {Array<any>}
4179
+ * @memberof EventVolumeInputDTO
4180
+ */
4181
+ metaFilters?: Array<any>;
4182
+ /**
4183
+ *
4184
+ * @type {NOTDOMAINSCOPEDTakaroModelDTOCreatedAt}
4185
+ * @memberof EventVolumeInputDTO
4186
+ */
4187
+ startDate?: NOTDOMAINSCOPEDTakaroModelDTOCreatedAt;
4188
+ /**
4189
+ *
4190
+ * @type {NOTDOMAINSCOPEDTakaroModelDTOCreatedAt}
4191
+ * @memberof EventVolumeInputDTO
4192
+ */
4193
+ endDate?: NOTDOMAINSCOPEDTakaroModelDTOCreatedAt;
4194
+ /**
4195
+ *
4196
+ * @type {string}
4197
+ * @memberof EventVolumeInputDTO
4198
+ */
4199
+ groupBy?: EventVolumeInputDTOGroupByEnum;
4200
+ /**
4201
+ * Optional preset period name (e.g. "24h", "7d") enabling result caching
4202
+ * for standard preset windows with empty filters.
4203
+ * @type {string}
4204
+ * @memberof EventVolumeInputDTO
4205
+ */
4206
+ period?: string;
4207
+ }
4208
+
4209
+ export const EventVolumeInputDTOGroupByEnum = {
4210
+ EventName: 'eventName',
4211
+ GameServerId: 'gameServerId',
4212
+ } as const;
4213
+
4214
+ export type EventVolumeInputDTOGroupByEnum =
4215
+ (typeof EventVolumeInputDTOGroupByEnum)[keyof typeof EventVolumeInputDTOGroupByEnum];
4216
+
4217
+ /**
4218
+ *
4219
+ * @export
4220
+ * @interface EventVolumeOutputDTO
4221
+ */
4222
+ export interface EventVolumeOutputDTO {
4223
+ /**
4224
+ *
4225
+ * @type {Array<EventVolumeSeriesDTO>}
4226
+ * @memberof EventVolumeOutputDTO
4227
+ */
4228
+ series: Array<EventVolumeSeriesDTO>;
4229
+ /**
4230
+ *
4231
+ * @type {Array<EventVolumeDimensionTotalDTO>}
4232
+ * @memberof EventVolumeOutputDTO
4233
+ */
4234
+ totalsByDimension: Array<EventVolumeDimensionTotalDTO>;
4235
+ }
4236
+ /**
4237
+ *
4238
+ * @export
4239
+ * @interface EventVolumeOutputDTOAPI
4240
+ */
4241
+ export interface EventVolumeOutputDTOAPI {
4242
+ /**
4243
+ *
4244
+ * @type {EventVolumeOutputDTO}
4245
+ * @memberof EventVolumeOutputDTOAPI
4246
+ */
4247
+ data: EventVolumeOutputDTO;
4248
+ /**
4249
+ *
4250
+ * @type {MetadataOutput}
4251
+ * @memberof EventVolumeOutputDTOAPI
4252
+ */
4253
+ meta: MetadataOutput;
4254
+ }
4255
+ /**
4256
+ *
4257
+ * @export
4258
+ * @interface EventVolumePointDTO
4259
+ */
4260
+ export interface EventVolumePointDTO {
4261
+ /**
4262
+ *
4263
+ * @type {NOTDOMAINSCOPEDTakaroModelDTOCreatedAt}
4264
+ * @memberof EventVolumePointDTO
4265
+ */
4266
+ timestamp: NOTDOMAINSCOPEDTakaroModelDTOCreatedAt;
4267
+ /**
4268
+ *
4269
+ * @type {number}
4270
+ * @memberof EventVolumePointDTO
4271
+ */
4272
+ value: number;
4273
+ }
4274
+ /**
4275
+ *
4276
+ * @export
4277
+ * @interface EventVolumeSeriesDTO
4278
+ */
4279
+ export interface EventVolumeSeriesDTO {
4280
+ /**
4281
+ *
4282
+ * @type {string}
4283
+ * @memberof EventVolumeSeriesDTO
4284
+ */
4285
+ key: string;
4286
+ /**
4287
+ * Resolved display name (populated when groupBy=gameServerId). Null for the
4288
+ * "other" bucket or when the entity no longer exists.
4289
+ * @type {string}
4290
+ * @memberof EventVolumeSeriesDTO
4291
+ */
4292
+ name?: string | null;
4293
+ /**
4294
+ *
4295
+ * @type {Array<EventVolumePointDTO>}
4296
+ * @memberof EventVolumeSeriesDTO
4297
+ */
4298
+ points: Array<EventVolumePointDTO>;
4299
+ }
3829
4300
  /**
3830
4301
  *
3831
4302
  * @export
@@ -24752,6 +25223,80 @@ export const EventApiAxiosParamCreator = function (configuration?: Configuration
24752
25223
  options: localVarRequestOptions,
24753
25224
  };
24754
25225
  },
25226
+ /**
25227
+ * Cursor-paginated event search powered by ClickHouse. Rows are hydrated with current entity names (player, gameserver, module, user) from Postgres. Use the returned `nextCursor` to fetch older events; pass `cursor: null` (or omit) to start from the newest. Required permissions: `READ_EVENTS`<br> OperationId: `EventControllerExplore`
25228
+ * @summary Explore events (ClickHouse-backed)
25229
+ * @param {EventExploreInputDTO} [eventExploreInputDTO] EventExploreInputDTO
25230
+ * @param {*} [options] Override http request option.
25231
+ * @throws {RequiredError}
25232
+ */
25233
+ eventControllerExplore: async (
25234
+ eventExploreInputDTO?: EventExploreInputDTO,
25235
+ options: RawAxiosRequestConfig = {},
25236
+ ): Promise<RequestArgs> => {
25237
+ const localVarPath = `/event/explore`;
25238
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
25239
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
25240
+ let baseOptions;
25241
+ if (configuration) {
25242
+ baseOptions = configuration.baseOptions;
25243
+ }
25244
+
25245
+ const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options };
25246
+ const localVarHeaderParameter = {} as any;
25247
+ const localVarQueryParameter = {} as any;
25248
+
25249
+ // authentication domainAuth required
25250
+
25251
+ localVarHeaderParameter['Content-Type'] = 'application/json';
25252
+
25253
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
25254
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
25255
+ localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
25256
+ localVarRequestOptions.data = serializeDataIfNeeded(eventExploreInputDTO, localVarRequestOptions, configuration);
25257
+
25258
+ return {
25259
+ url: toPathString(localVarUrlObj),
25260
+ options: localVarRequestOptions,
25261
+ };
25262
+ },
25263
+ /**
25264
+ * Returns time-bucketed event counts, optionally stacked by event name or game server. Accepts the same filter shape as `/event/explore` so the graph matches the stream. Bucket size adapts to the range. Caches preset-period queries with empty filters/metaFilters. Required permissions: `READ_EVENTS`<br> OperationId: `EventControllerExploreVolume`
25265
+ * @summary Get event volume time-series with optional grouping
25266
+ * @param {EventVolumeInputDTO} [eventVolumeInputDTO] EventVolumeInputDTO
25267
+ * @param {*} [options] Override http request option.
25268
+ * @throws {RequiredError}
25269
+ */
25270
+ eventControllerExploreVolume: async (
25271
+ eventVolumeInputDTO?: EventVolumeInputDTO,
25272
+ options: RawAxiosRequestConfig = {},
25273
+ ): Promise<RequestArgs> => {
25274
+ const localVarPath = `/event/explore/volume`;
25275
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
25276
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
25277
+ let baseOptions;
25278
+ if (configuration) {
25279
+ baseOptions = configuration.baseOptions;
25280
+ }
25281
+
25282
+ const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options };
25283
+ const localVarHeaderParameter = {} as any;
25284
+ const localVarQueryParameter = {} as any;
25285
+
25286
+ // authentication domainAuth required
25287
+
25288
+ localVarHeaderParameter['Content-Type'] = 'application/json';
25289
+
25290
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
25291
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
25292
+ localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
25293
+ localVarRequestOptions.data = serializeDataIfNeeded(eventVolumeInputDTO, localVarRequestOptions, configuration);
25294
+
25295
+ return {
25296
+ url: toPathString(localVarUrlObj),
25297
+ options: localVarRequestOptions,
25298
+ };
25299
+ },
24755
25300
  /**
24756
25301
  * Export events matching the search criteria to CSV format. Accepts the same parameters as the search endpoint. Maximum time range is 90 days. Required permissions: `READ_EVENTS`<br> OperationId: `EventControllerExport`
24757
25302
  * @summary Export events to CSV
@@ -24929,6 +25474,55 @@ export const EventApiFp = function (configuration?: Configuration) {
24929
25474
  configuration,
24930
25475
  )(axios, localVarOperationServerBasePath || basePath);
24931
25476
  },
25477
+ /**
25478
+ * Cursor-paginated event search powered by ClickHouse. Rows are hydrated with current entity names (player, gameserver, module, user) from Postgres. Use the returned `nextCursor` to fetch older events; pass `cursor: null` (or omit) to start from the newest. Required permissions: `READ_EVENTS`<br> OperationId: `EventControllerExplore`
25479
+ * @summary Explore events (ClickHouse-backed)
25480
+ * @param {EventExploreInputDTO} [eventExploreInputDTO] EventExploreInputDTO
25481
+ * @param {*} [options] Override http request option.
25482
+ * @throws {RequiredError}
25483
+ */
25484
+ async eventControllerExplore(
25485
+ eventExploreInputDTO?: EventExploreInputDTO,
25486
+ options?: RawAxiosRequestConfig,
25487
+ ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<EventExploreOutputDTOAPI>> {
25488
+ const localVarAxiosArgs = await localVarAxiosParamCreator.eventControllerExplore(eventExploreInputDTO, options);
25489
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
25490
+ const localVarOperationServerBasePath =
25491
+ operationServerMap['EventApi.eventControllerExplore']?.[localVarOperationServerIndex]?.url;
25492
+ return (axios, basePath) =>
25493
+ createRequestFunction(
25494
+ localVarAxiosArgs,
25495
+ globalAxios,
25496
+ BASE_PATH,
25497
+ configuration,
25498
+ )(axios, localVarOperationServerBasePath || basePath);
25499
+ },
25500
+ /**
25501
+ * Returns time-bucketed event counts, optionally stacked by event name or game server. Accepts the same filter shape as `/event/explore` so the graph matches the stream. Bucket size adapts to the range. Caches preset-period queries with empty filters/metaFilters. Required permissions: `READ_EVENTS`<br> OperationId: `EventControllerExploreVolume`
25502
+ * @summary Get event volume time-series with optional grouping
25503
+ * @param {EventVolumeInputDTO} [eventVolumeInputDTO] EventVolumeInputDTO
25504
+ * @param {*} [options] Override http request option.
25505
+ * @throws {RequiredError}
25506
+ */
25507
+ async eventControllerExploreVolume(
25508
+ eventVolumeInputDTO?: EventVolumeInputDTO,
25509
+ options?: RawAxiosRequestConfig,
25510
+ ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<EventVolumeOutputDTOAPI>> {
25511
+ const localVarAxiosArgs = await localVarAxiosParamCreator.eventControllerExploreVolume(
25512
+ eventVolumeInputDTO,
25513
+ options,
25514
+ );
25515
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
25516
+ const localVarOperationServerBasePath =
25517
+ operationServerMap['EventApi.eventControllerExploreVolume']?.[localVarOperationServerIndex]?.url;
25518
+ return (axios, basePath) =>
25519
+ createRequestFunction(
25520
+ localVarAxiosArgs,
25521
+ globalAxios,
25522
+ BASE_PATH,
25523
+ configuration,
25524
+ )(axios, localVarOperationServerBasePath || basePath);
25525
+ },
24932
25526
  /**
24933
25527
  * Export events matching the search criteria to CSV format. Accepts the same parameters as the search endpoint. Maximum time range is 90 days. Required permissions: `READ_EVENTS`<br> OperationId: `EventControllerExport`
24934
25528
  * @summary Export events to CSV
@@ -25047,6 +25641,36 @@ export const EventApiFactory = function (configuration?: Configuration, basePath
25047
25641
  ): AxiosPromise<EventOutputDTO> {
25048
25642
  return localVarFp.eventControllerCreate(eventCreateDTO, options).then((request) => request(axios, basePath));
25049
25643
  },
25644
+ /**
25645
+ * Cursor-paginated event search powered by ClickHouse. Rows are hydrated with current entity names (player, gameserver, module, user) from Postgres. Use the returned `nextCursor` to fetch older events; pass `cursor: null` (or omit) to start from the newest. Required permissions: `READ_EVENTS`<br> OperationId: `EventControllerExplore`
25646
+ * @summary Explore events (ClickHouse-backed)
25647
+ * @param {EventExploreInputDTO} [eventExploreInputDTO] EventExploreInputDTO
25648
+ * @param {*} [options] Override http request option.
25649
+ * @throws {RequiredError}
25650
+ */
25651
+ eventControllerExplore(
25652
+ eventExploreInputDTO?: EventExploreInputDTO,
25653
+ options?: RawAxiosRequestConfig,
25654
+ ): AxiosPromise<EventExploreOutputDTOAPI> {
25655
+ return localVarFp
25656
+ .eventControllerExplore(eventExploreInputDTO, options)
25657
+ .then((request) => request(axios, basePath));
25658
+ },
25659
+ /**
25660
+ * Returns time-bucketed event counts, optionally stacked by event name or game server. Accepts the same filter shape as `/event/explore` so the graph matches the stream. Bucket size adapts to the range. Caches preset-period queries with empty filters/metaFilters. Required permissions: `READ_EVENTS`<br> OperationId: `EventControllerExploreVolume`
25661
+ * @summary Get event volume time-series with optional grouping
25662
+ * @param {EventVolumeInputDTO} [eventVolumeInputDTO] EventVolumeInputDTO
25663
+ * @param {*} [options] Override http request option.
25664
+ * @throws {RequiredError}
25665
+ */
25666
+ eventControllerExploreVolume(
25667
+ eventVolumeInputDTO?: EventVolumeInputDTO,
25668
+ options?: RawAxiosRequestConfig,
25669
+ ): AxiosPromise<EventVolumeOutputDTOAPI> {
25670
+ return localVarFp
25671
+ .eventControllerExploreVolume(eventVolumeInputDTO, options)
25672
+ .then((request) => request(axios, basePath));
25673
+ },
25050
25674
  /**
25051
25675
  * Export events matching the search criteria to CSV format. Accepts the same parameters as the search endpoint. Maximum time range is 90 days. Required permissions: `READ_EVENTS`<br> OperationId: `EventControllerExport`
25052
25676
  * @summary Export events to CSV
@@ -25122,6 +25746,34 @@ export class EventApi extends BaseAPI {
25122
25746
  .then((request) => request(this.axios, this.basePath));
25123
25747
  }
25124
25748
 
25749
+ /**
25750
+ * Cursor-paginated event search powered by ClickHouse. Rows are hydrated with current entity names (player, gameserver, module, user) from Postgres. Use the returned `nextCursor` to fetch older events; pass `cursor: null` (or omit) to start from the newest. Required permissions: `READ_EVENTS`<br> OperationId: `EventControllerExplore`
25751
+ * @summary Explore events (ClickHouse-backed)
25752
+ * @param {EventExploreInputDTO} [eventExploreInputDTO] EventExploreInputDTO
25753
+ * @param {*} [options] Override http request option.
25754
+ * @throws {RequiredError}
25755
+ * @memberof EventApi
25756
+ */
25757
+ public eventControllerExplore(eventExploreInputDTO?: EventExploreInputDTO, options?: RawAxiosRequestConfig) {
25758
+ return EventApiFp(this.configuration)
25759
+ .eventControllerExplore(eventExploreInputDTO, options)
25760
+ .then((request) => request(this.axios, this.basePath));
25761
+ }
25762
+
25763
+ /**
25764
+ * Returns time-bucketed event counts, optionally stacked by event name or game server. Accepts the same filter shape as `/event/explore` so the graph matches the stream. Bucket size adapts to the range. Caches preset-period queries with empty filters/metaFilters. Required permissions: `READ_EVENTS`<br> OperationId: `EventControllerExploreVolume`
25765
+ * @summary Get event volume time-series with optional grouping
25766
+ * @param {EventVolumeInputDTO} [eventVolumeInputDTO] EventVolumeInputDTO
25767
+ * @param {*} [options] Override http request option.
25768
+ * @throws {RequiredError}
25769
+ * @memberof EventApi
25770
+ */
25771
+ public eventControllerExploreVolume(eventVolumeInputDTO?: EventVolumeInputDTO, options?: RawAxiosRequestConfig) {
25772
+ return EventApiFp(this.configuration)
25773
+ .eventControllerExploreVolume(eventVolumeInputDTO, options)
25774
+ .then((request) => request(this.axios, this.basePath));
25775
+ }
25776
+
25125
25777
  /**
25126
25778
  * Export events matching the search criteria to CSV format. Accepts the same parameters as the search endpoint. Maximum time range is 90 days. Required permissions: `READ_EVENTS`<br> OperationId: `EventControllerExport`
25127
25779
  * @summary Export events to CSV
@@ -23,11 +23,17 @@ export class BaseApiClient<T extends IBaseApiClientConfig> {
23
23
  };
24
24
 
25
25
  constructor(protected readonly config: T) {
26
+ // Browsers refuse to let JS set the User-Agent header (it's a "forbidden header").
27
+ // Only include it when running outside a browser context (Node.js / server-side).
28
+ // Use globalThis so this compiles under both DOM and non-DOM TypeScript lib targets.
29
+ const isBrowser =
30
+ typeof (globalThis as Record<string, unknown>)['window'] !== 'undefined' &&
31
+ typeof (globalThis as Record<string, unknown>)['document'] !== 'undefined';
26
32
  const axiosConfig: AxiosRequestConfig = {
27
33
  baseURL: this.config.url,
28
34
  headers: {
29
35
  'Content-Type': 'application/json',
30
- 'User-Agent': 'Takaro-API-Client',
36
+ ...(!isBrowser && { 'User-Agent': 'Takaro-API-Client' }),
31
37
  },
32
38
  withCredentials: true,
33
39
  };