@crowdstrike/aidr 1.0.2

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 (51) hide show
  1. package/.editorconfig +9 -0
  2. package/.github/CODEOWNERS +1 -0
  3. package/.github/workflows/ci.yml +128 -0
  4. package/.pnpmfile.cjs +17 -0
  5. package/.releaserc.json +21 -0
  6. package/LICENSE.txt +21 -0
  7. package/README.md +3 -0
  8. package/biome.json +67 -0
  9. package/dist/chunk.cjs +34 -0
  10. package/dist/index.cjs +356 -0
  11. package/dist/index.d.cts +2347 -0
  12. package/dist/index.d.mts +2347 -0
  13. package/dist/index.mjs +354 -0
  14. package/dist/schemas/ai-guard.cjs +1000 -0
  15. package/dist/schemas/ai-guard.d.cts +1232 -0
  16. package/dist/schemas/ai-guard.d.mts +1232 -0
  17. package/dist/schemas/ai-guard.mjs +907 -0
  18. package/dist/schemas/index.cjs +7 -0
  19. package/dist/schemas/index.d.cts +64 -0
  20. package/dist/schemas/index.d.mts +64 -0
  21. package/dist/schemas/index.mjs +3 -0
  22. package/dist/schemas.cjs +139 -0
  23. package/dist/schemas.mjs +108 -0
  24. package/flake.lock +59 -0
  25. package/flake.nix +26 -0
  26. package/openapi-ts.config.ts +15 -0
  27. package/package.json +55 -0
  28. package/pnpm-workspace.yaml +3 -0
  29. package/scripts/generate-models +15 -0
  30. package/scripts/test +10 -0
  31. package/specs/ai-guard.openapi.json +3721 -0
  32. package/src/client.ts +441 -0
  33. package/src/core/error.ts +78 -0
  34. package/src/index.ts +2 -0
  35. package/src/internal/builtin-types.ts +18 -0
  36. package/src/internal/errors.ts +34 -0
  37. package/src/internal/headers.ts +100 -0
  38. package/src/internal/parse.ts +30 -0
  39. package/src/internal/request-options.ts +57 -0
  40. package/src/internal/types.ts +3 -0
  41. package/src/internal/utils/sleep.ts +3 -0
  42. package/src/internal/utils/values.ts +38 -0
  43. package/src/schemas/ai-guard.ts +1215 -0
  44. package/src/schemas/index.ts +114 -0
  45. package/src/services/ai-guard.ts +27 -0
  46. package/src/types/ai-guard.ts +2276 -0
  47. package/src/types/index.ts +161 -0
  48. package/tests/ai-guard.test.ts +29 -0
  49. package/tsconfig.json +26 -0
  50. package/tsdown.config.mts +14 -0
  51. package/vitest.config.mts +4 -0
@@ -0,0 +1,907 @@
1
+ import * as v from "valibot";
2
+
3
+ //#region src/schemas/ai-guard.ts
4
+ /**
5
+ * Response Schema
6
+ *
7
+ * Pangea standard response schema
8
+ */
9
+ const PangeaResponseSchema = v.object({
10
+ request_id: v.string(),
11
+ request_time: v.pipe(v.string(), v.isoTimestamp()),
12
+ response_time: v.pipe(v.string(), v.isoTimestamp()),
13
+ status: v.string(),
14
+ summary: v.optional(v.string()),
15
+ result: v.optional(v.record(v.string(), v.unknown()))
16
+ });
17
+ const PangeaValidationErrorsSchema = PangeaResponseSchema;
18
+ /**
19
+ * Device status. Allowed values are active, pending, disabled
20
+ */
21
+ const AidrDeviceStatusSchema = v.picklist([
22
+ "pending",
23
+ "active",
24
+ "disabled"
25
+ ]);
26
+ const AidrIpv4OrV6Schema = v.union([v.pipe(v.string(), v.ip()), v.pipe(v.string(), v.ip())]);
27
+ const AidrDeviceSchema = v.strictObject({
28
+ id: v.pipe(v.string(), v.minLength(1), v.maxLength(32)),
29
+ name: v.optional(v.pipe(v.string(), v.minLength(1), v.maxLength(255))),
30
+ status: v.optional(AidrDeviceStatusSchema),
31
+ metadata: v.optional(v.record(v.string(), v.unknown())),
32
+ user_id: v.optional(v.string()),
33
+ last_used_ip: v.optional(AidrIpv4OrV6Schema)
34
+ });
35
+ const AidrDeviceTokenInfoSchema = v.object({
36
+ token: v.optional(v.string()),
37
+ expires_in: v.optional(v.pipe(v.number(), v.integer())),
38
+ created_at: v.optional(v.pipe(v.string(), v.isoTimestamp()))
39
+ });
40
+ const AidrDeviceResultSchema = v.strictObject({
41
+ id: v.pipe(v.string(), v.minLength(1), v.maxLength(32)),
42
+ name: v.optional(v.pipe(v.string(), v.minLength(1), v.maxLength(255))),
43
+ status: AidrDeviceStatusSchema,
44
+ metadata: v.optional(v.record(v.string(), v.unknown())),
45
+ user_id: v.optional(v.string()),
46
+ last_used_ip: v.optional(AidrIpv4OrV6Schema),
47
+ created_at: v.optional(v.pipe(v.string(), v.isoTimestamp())),
48
+ updated_at: v.optional(v.pipe(v.string(), v.isoTimestamp()))
49
+ });
50
+ /**
51
+ * client generated unique ID.
52
+ */
53
+ const AidrDeviceIdSchema = v.pipe(v.string(), v.minLength(1), v.maxLength(32));
54
+ /**
55
+ * List or filter/search device records.
56
+ */
57
+ const AidrDeviceSearchSchema = v.strictObject({
58
+ filter: v.optional(v.object({
59
+ created_at: v.optional(v.pipe(v.string(), v.isoTimestamp())),
60
+ created_at__gt: v.optional(v.pipe(v.string(), v.isoTimestamp())),
61
+ created_at__gte: v.optional(v.pipe(v.string(), v.isoTimestamp())),
62
+ created_at__lt: v.optional(v.pipe(v.string(), v.isoTimestamp())),
63
+ created_at__lte: v.optional(v.pipe(v.string(), v.isoTimestamp())),
64
+ updated_at: v.optional(v.pipe(v.string(), v.isoTimestamp())),
65
+ updated_at__gt: v.optional(v.pipe(v.string(), v.isoTimestamp())),
66
+ updated_at__gte: v.optional(v.pipe(v.string(), v.isoTimestamp())),
67
+ updated_at__lt: v.optional(v.pipe(v.string(), v.isoTimestamp())),
68
+ updated_at__lte: v.optional(v.pipe(v.string(), v.isoTimestamp())),
69
+ id: v.optional(v.string()),
70
+ id__contains: v.optional(v.array(v.string())),
71
+ id__in: v.optional(v.array(v.string())),
72
+ name: v.optional(v.string()),
73
+ name__contains: v.optional(v.array(v.string())),
74
+ name__in: v.optional(v.array(v.string())),
75
+ status: v.optional(AidrDeviceStatusSchema),
76
+ status__contains: v.optional(v.array(AidrDeviceStatusSchema)),
77
+ status__in: v.optional(v.array(AidrDeviceStatusSchema))
78
+ })),
79
+ last: v.optional(v.string()),
80
+ order: v.optional(v.picklist(["asc", "desc"])),
81
+ order_by: v.optional(v.picklist([
82
+ "name",
83
+ "created_at",
84
+ "updated_at"
85
+ ])),
86
+ size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1)))
87
+ });
88
+ const AidrDeviceSearchResultSchema = v.object({
89
+ count: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
90
+ last: v.optional(v.string()),
91
+ devices: v.optional(v.array(AidrDeviceResultSchema))
92
+ });
93
+ /**
94
+ * MetricEvent data
95
+ */
96
+ const AidrMetricOnlyDataSchema = v.strictObject({
97
+ app_id: v.optional(v.string()),
98
+ actor_id: v.optional(v.string()),
99
+ llm_provider: v.optional(v.string()),
100
+ model: v.optional(v.string()),
101
+ model_version: v.optional(v.string()),
102
+ request_token_count: v.optional(v.pipe(v.number(), v.integer())),
103
+ response_token_count: v.optional(v.pipe(v.number(), v.integer())),
104
+ source_ip: v.optional(v.pipe(v.string(), v.ip())),
105
+ source_location: v.optional(v.string()),
106
+ event_type: v.optional(v.string()),
107
+ collector_instance_id: v.optional(v.string()),
108
+ extra_info: v.optional(v.record(v.string(), v.unknown()))
109
+ });
110
+ /**
111
+ * List or filter/search saved filter records.
112
+ */
113
+ const AidrSavedFilterSearchSchema = v.strictObject({
114
+ filter: v.optional(v.object({
115
+ created_at: v.optional(v.pipe(v.string(), v.isoTimestamp())),
116
+ created_at__gt: v.optional(v.pipe(v.string(), v.isoTimestamp())),
117
+ created_at__gte: v.optional(v.pipe(v.string(), v.isoTimestamp())),
118
+ created_at__lt: v.optional(v.pipe(v.string(), v.isoTimestamp())),
119
+ created_at__lte: v.optional(v.pipe(v.string(), v.isoTimestamp())),
120
+ updated_at: v.optional(v.pipe(v.string(), v.isoTimestamp())),
121
+ updated_at__gt: v.optional(v.pipe(v.string(), v.isoTimestamp())),
122
+ updated_at__gte: v.optional(v.pipe(v.string(), v.isoTimestamp())),
123
+ updated_at__lt: v.optional(v.pipe(v.string(), v.isoTimestamp())),
124
+ updated_at__lte: v.optional(v.pipe(v.string(), v.isoTimestamp())),
125
+ id: v.optional(v.string()),
126
+ id__contains: v.optional(v.array(v.string())),
127
+ id__in: v.optional(v.array(v.string())),
128
+ name: v.optional(v.string()),
129
+ name__contains: v.optional(v.array(v.string())),
130
+ name__in: v.optional(v.array(v.string()))
131
+ })),
132
+ last: v.optional(v.string()),
133
+ order: v.optional(v.picklist(["asc", "desc"])),
134
+ order_by: v.optional(v.picklist([
135
+ "name",
136
+ "created_at",
137
+ "updated_at"
138
+ ])),
139
+ size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1)))
140
+ });
141
+ const AidrSavedFilterSchema = v.strictObject({
142
+ name: v.string(),
143
+ filter: v.record(v.string(), v.unknown())
144
+ });
145
+ const AidrSavedFilterResultSchema = v.strictObject({
146
+ name: v.string(),
147
+ filter: v.record(v.string(), v.unknown()),
148
+ created_at: v.pipe(v.string(), v.isoTimestamp()),
149
+ updated_at: v.pipe(v.string(), v.isoTimestamp())
150
+ });
151
+ const AidrSavedFilterSearchResultSchema = v.object({
152
+ count: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
153
+ last: v.optional(v.string()),
154
+ saved_filters: v.optional(v.array(AidrSavedFilterResultSchema))
155
+ });
156
+ /**
157
+ * List or filter/search field alias records.
158
+ */
159
+ const AidrFieldAliasSearchSchema = v.strictObject({
160
+ filter: v.optional(v.object({
161
+ created_at: v.optional(v.pipe(v.string(), v.isoTimestamp())),
162
+ created_at__gt: v.optional(v.pipe(v.string(), v.isoTimestamp())),
163
+ created_at__gte: v.optional(v.pipe(v.string(), v.isoTimestamp())),
164
+ created_at__lt: v.optional(v.pipe(v.string(), v.isoTimestamp())),
165
+ created_at__lte: v.optional(v.pipe(v.string(), v.isoTimestamp())),
166
+ field_name: v.optional(v.string()),
167
+ field_name__contains: v.optional(v.array(v.string())),
168
+ field_name__in: v.optional(v.array(v.string())),
169
+ field_type: v.optional(v.string()),
170
+ field_type__contains: v.optional(v.array(v.string())),
171
+ field_type__in: v.optional(v.array(v.string())),
172
+ field_alias: v.optional(v.string()),
173
+ field_alias__contains: v.optional(v.array(v.string())),
174
+ field_alias__in: v.optional(v.array(v.string())),
175
+ updated_at: v.optional(v.pipe(v.string(), v.isoTimestamp())),
176
+ updated_at__gt: v.optional(v.pipe(v.string(), v.isoTimestamp())),
177
+ updated_at__gte: v.optional(v.pipe(v.string(), v.isoTimestamp())),
178
+ updated_at__lt: v.optional(v.pipe(v.string(), v.isoTimestamp())),
179
+ updated_at__lte: v.optional(v.pipe(v.string(), v.isoTimestamp()))
180
+ })),
181
+ last: v.optional(v.string()),
182
+ order: v.optional(v.picklist(["asc", "desc"])),
183
+ order_by: v.optional(v.picklist([
184
+ "field_name",
185
+ "field_type",
186
+ "created_at",
187
+ "updated_at",
188
+ "published_at",
189
+ "field_alias"
190
+ ])),
191
+ size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1)))
192
+ });
193
+ const AidrCustomlistSchema = v.object({
194
+ name: v.optional(v.string()),
195
+ type: v.optional(v.picklist(["site"])),
196
+ content: v.optional(v.array(v.unknown()))
197
+ });
198
+ const ChatCompletionsGuardSchema = v.strictObject({
199
+ guard_input: v.record(v.string(), v.unknown()),
200
+ app_id: v.optional(v.string()),
201
+ user_id: v.optional(v.string()),
202
+ llm_provider: v.optional(v.string()),
203
+ model: v.optional(v.string()),
204
+ model_version: v.optional(v.string()),
205
+ source_ip: v.optional(v.string()),
206
+ source_location: v.optional(v.string()),
207
+ tenant_id: v.optional(v.string()),
208
+ event_type: v.optional(v.picklist([
209
+ "input",
210
+ "output",
211
+ "tool_input",
212
+ "tool_output",
213
+ "tool_listing"
214
+ ])),
215
+ collector_instance_id: v.optional(v.string()),
216
+ extra_info: v.optional(v.objectWithRest({
217
+ app_name: v.optional(v.string()),
218
+ app_group: v.optional(v.string()),
219
+ app_version: v.optional(v.string()),
220
+ actor_name: v.optional(v.string()),
221
+ actor_group: v.optional(v.string()),
222
+ source_region: v.optional(v.string()),
223
+ sub_tenant: v.optional(v.string()),
224
+ mcp_tools: v.optional(v.array(v.strictObject({
225
+ server_name: v.pipe(v.string(), v.minLength(1)),
226
+ tools: v.pipe(v.array(v.pipe(v.string(), v.minLength(1))), v.minLength(1))
227
+ })))
228
+ }, v.unknown()))
229
+ });
230
+ const AidrPromptInjectionResultSchema = v.object({
231
+ action: v.optional(v.string()),
232
+ analyzer_responses: v.optional(v.array(v.object({
233
+ analyzer: v.string(),
234
+ confidence: v.number()
235
+ })))
236
+ });
237
+ const AidrRedactEntityResultSchema = v.object({ entities: v.optional(v.array(v.object({
238
+ action: v.string(),
239
+ type: v.string(),
240
+ value: v.string(),
241
+ start_pos: v.optional(v.pipe(v.number(), v.integer(), v.minValue(0)))
242
+ }))) });
243
+ const AidrMaliciousEntityResultSchema = v.object({ entities: v.optional(v.array(v.object({
244
+ type: v.string(),
245
+ value: v.string(),
246
+ start_pos: v.optional(v.pipe(v.number(), v.integer(), v.minValue(0))),
247
+ raw: v.optional(v.record(v.string(), v.unknown()))
248
+ }))) });
249
+ const AidrSingleEntityResultSchema = v.object({
250
+ action: v.optional(v.string()),
251
+ entities: v.optional(v.array(v.string()))
252
+ });
253
+ const AidrLanguageResultSchema = v.object({
254
+ action: v.optional(v.string()),
255
+ language: v.optional(v.string())
256
+ });
257
+ const AidrTopicResultSchema = v.object({
258
+ action: v.optional(v.string()),
259
+ topics: v.optional(v.array(v.object({
260
+ topic: v.string(),
261
+ confidence: v.number()
262
+ })))
263
+ });
264
+ const AidrCustomlistResultSchema = v.object({
265
+ id: v.optional(v.string()),
266
+ name: v.optional(v.string()),
267
+ type: v.optional(v.picklist(["site"])),
268
+ content: v.optional(v.array(v.record(v.string(), v.unknown()))),
269
+ created_at: v.optional(v.pipe(v.string(), v.isoTimestamp())),
270
+ updated_at: v.optional(v.pipe(v.string(), v.isoTimestamp()))
271
+ });
272
+ /**
273
+ * List or filter/search policy records.
274
+ */
275
+ const AidrPolicySearchSchema = v.strictObject({
276
+ filter: v.optional(v.object({
277
+ key: v.optional(v.string()),
278
+ key__contains: v.optional(v.array(v.string())),
279
+ name__in: v.optional(v.array(v.string())),
280
+ status: v.optional(v.string())
281
+ })),
282
+ last: v.optional(v.string()),
283
+ order: v.optional(v.picklist(["asc", "desc"])),
284
+ order_by: v.optional(v.picklist([
285
+ "key",
286
+ "name",
287
+ "created_at",
288
+ "updated_at"
289
+ ])),
290
+ size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1)))
291
+ });
292
+ const AidrPromptItemSchema = v.object({
293
+ id: v.optional(v.string()),
294
+ type: v.optional(v.string()),
295
+ content: v.optional(v.string())
296
+ });
297
+ const AidrPromptItemListResultSchema = v.object({ policies: v.optional(v.array(AidrPromptItemSchema)) });
298
+ const AidrFieldAliasSchema = v.strictObject({
299
+ field_name: v.string(),
300
+ field_type: v.string(),
301
+ field_alias: v.string(),
302
+ field_tags: v.optional(v.array(v.string()))
303
+ });
304
+ const AidrFieldAliasResultSchema = v.strictObject({
305
+ field_name: v.string(),
306
+ field_type: v.string(),
307
+ field_alias: v.string(),
308
+ field_tags: v.optional(v.array(v.string())),
309
+ created_at: v.pipe(v.string(), v.isoTimestamp()),
310
+ updated_at: v.pipe(v.string(), v.isoTimestamp())
311
+ });
312
+ const AidrFieldAliasSearchResultSchema = v.object({
313
+ count: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
314
+ last: v.optional(v.string()),
315
+ items: v.optional(v.array(AidrFieldAliasResultSchema))
316
+ });
317
+ const AidrPolicycollectionResultSchema = v.object({
318
+ key: v.optional(v.string()),
319
+ name: v.optional(v.string()),
320
+ type: v.optional(v.picklist([
321
+ "logging",
322
+ "gateway",
323
+ "browser",
324
+ "application",
325
+ "agentic"
326
+ ])),
327
+ settings: v.optional(v.record(v.string(), v.unknown())),
328
+ created_at: v.optional(v.pipe(v.string(), v.isoTimestamp())),
329
+ updated_at: v.optional(v.pipe(v.string(), v.isoTimestamp()))
330
+ });
331
+ /**
332
+ * List or filter/search policy collection records.
333
+ */
334
+ const AidrPolicycollectionSearchSchema = v.strictObject({
335
+ filter: v.optional(v.object({
336
+ created_at: v.optional(v.pipe(v.string(), v.isoTimestamp())),
337
+ created_at__gt: v.optional(v.pipe(v.string(), v.isoTimestamp())),
338
+ created_at__gte: v.optional(v.pipe(v.string(), v.isoTimestamp())),
339
+ created_at__lt: v.optional(v.pipe(v.string(), v.isoTimestamp())),
340
+ created_at__lte: v.optional(v.pipe(v.string(), v.isoTimestamp())),
341
+ updated_at: v.optional(v.pipe(v.string(), v.isoTimestamp())),
342
+ updated_at__gt: v.optional(v.pipe(v.string(), v.isoTimestamp())),
343
+ updated_at__gte: v.optional(v.pipe(v.string(), v.isoTimestamp())),
344
+ updated_at__lt: v.optional(v.pipe(v.string(), v.isoTimestamp())),
345
+ updated_at__lte: v.optional(v.pipe(v.string(), v.isoTimestamp())),
346
+ type: v.optional(v.picklist([
347
+ "logging",
348
+ "gateway",
349
+ "browser",
350
+ "application",
351
+ "agentic"
352
+ ])),
353
+ type__in: v.optional(v.array(v.picklist([
354
+ "logging",
355
+ "gateway",
356
+ "browser",
357
+ "application",
358
+ "agentic"
359
+ ]))),
360
+ key: v.optional(v.string()),
361
+ key__contains: v.optional(v.array(v.string())),
362
+ key__in: v.optional(v.array(v.string())),
363
+ name: v.optional(v.string()),
364
+ name__contains: v.optional(v.array(v.string())),
365
+ name__in: v.optional(v.array(v.string()))
366
+ })),
367
+ last: v.optional(v.string()),
368
+ order: v.optional(v.picklist(["asc", "desc"])),
369
+ order_by: v.optional(v.picklist([
370
+ "key",
371
+ "name",
372
+ "type",
373
+ "created_at",
374
+ "updated_at"
375
+ ])),
376
+ size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1)))
377
+ });
378
+ const AidrPolicycollectionSearchResultSchema = v.object({
379
+ collections: v.optional(v.array(AidrPolicycollectionResultSchema)),
380
+ count: v.optional(v.pipe(v.number(), v.integer())),
381
+ last: v.optional(v.string())
382
+ });
383
+ /**
384
+ * List or filter/search list records.
385
+ */
386
+ const AidrCustomlistSearchSchema = v.strictObject({
387
+ filter: v.optional(v.object({
388
+ created_at: v.optional(v.pipe(v.string(), v.isoTimestamp())),
389
+ created_at__gt: v.optional(v.pipe(v.string(), v.isoTimestamp())),
390
+ created_at__gte: v.optional(v.pipe(v.string(), v.isoTimestamp())),
391
+ created_at__lt: v.optional(v.pipe(v.string(), v.isoTimestamp())),
392
+ created_at__lte: v.optional(v.pipe(v.string(), v.isoTimestamp())),
393
+ updated_at: v.optional(v.pipe(v.string(), v.isoTimestamp())),
394
+ updated_at__gt: v.optional(v.pipe(v.string(), v.isoTimestamp())),
395
+ updated_at__gte: v.optional(v.pipe(v.string(), v.isoTimestamp())),
396
+ updated_at__lt: v.optional(v.pipe(v.string(), v.isoTimestamp())),
397
+ updated_at__lte: v.optional(v.pipe(v.string(), v.isoTimestamp())),
398
+ type: v.optional(v.string()),
399
+ name: v.optional(v.string()),
400
+ name__contains: v.optional(v.array(v.string())),
401
+ name__in: v.optional(v.array(v.string()))
402
+ })),
403
+ last: v.optional(v.string()),
404
+ order: v.optional(v.picklist(["asc", "desc"])),
405
+ order_by: v.optional(v.picklist([
406
+ "id",
407
+ "name",
408
+ "created_at",
409
+ "updated_at"
410
+ ])),
411
+ size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1)))
412
+ });
413
+ const AidrCustomlistSearchResultSchema = v.object({
414
+ lists: v.optional(v.array(AidrCustomlistResultSchema)),
415
+ count: v.optional(v.pipe(v.number(), v.integer())),
416
+ last: v.optional(v.string())
417
+ });
418
+ /**
419
+ * AIDR Collector Summary list
420
+ */
421
+ const AidrSensorInsightsSchema = v.strictObject({
422
+ is_instance_data: v.optional(v.boolean()),
423
+ filters: v.optional(v.strictObject({
424
+ collector_id: v.optional(v.string()),
425
+ collector_id__contains: v.optional(v.array(v.string())),
426
+ collector_id__in: v.optional(v.array(v.string())),
427
+ instance_id: v.optional(v.string()),
428
+ instance_id__contains: v.optional(v.array(v.string())),
429
+ instance_id__in: v.optional(v.array(v.string())),
430
+ collector_type: v.optional(v.string()),
431
+ collector_type_contains: v.optional(v.array(v.string())),
432
+ collector_type__in: v.optional(v.array(v.string()))
433
+ })),
434
+ order_by: v.optional(v.string()),
435
+ order: v.optional(v.picklist(["asc", "desc"])),
436
+ count: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
437
+ last: v.optional(v.string())
438
+ });
439
+ /**
440
+ * Duration string (e.g., '100ms', '2h')
441
+ */
442
+ const AidrGolangDurationSchema = v.union([v.unknown(), v.unknown()]);
443
+ /**
444
+ * List or filter/config records.
445
+ */
446
+ const AidrServiceConfigListSchema = v.strictObject({
447
+ filter: v.optional(v.strictObject({
448
+ name: v.optional(v.string()),
449
+ name__contains: v.optional(v.array(v.string())),
450
+ name__in: v.optional(v.array(v.string())),
451
+ collector_type: v.optional(v.string()),
452
+ collector_type__contains: v.optional(v.array(v.string())),
453
+ collector_type__in: v.optional(v.array(v.string())),
454
+ id: v.optional(v.string()),
455
+ id__contains: v.optional(v.array(v.string())),
456
+ id__in: v.optional(v.array(v.string())),
457
+ created_at: v.optional(v.pipe(v.string(), v.isoTimestamp())),
458
+ created_at__gt: v.optional(v.pipe(v.string(), v.isoTimestamp())),
459
+ created_at__gte: v.optional(v.pipe(v.string(), v.isoTimestamp())),
460
+ created_at__lt: v.optional(v.pipe(v.string(), v.isoTimestamp())),
461
+ created_at__lte: v.optional(v.pipe(v.string(), v.isoTimestamp())),
462
+ updated_at: v.optional(v.pipe(v.string(), v.isoTimestamp())),
463
+ updated_at__gt: v.optional(v.pipe(v.string(), v.isoTimestamp())),
464
+ updated_at__gte: v.optional(v.pipe(v.string(), v.isoTimestamp())),
465
+ updated_at__lt: v.optional(v.pipe(v.string(), v.isoTimestamp())),
466
+ updated_at__lte: v.optional(v.pipe(v.string(), v.isoTimestamp()))
467
+ })),
468
+ last: v.optional(v.string()),
469
+ order: v.optional(v.picklist(["asc", "desc"])),
470
+ order_by: v.optional(v.picklist([
471
+ "id",
472
+ "created_at",
473
+ "updated_at"
474
+ ])),
475
+ size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1)))
476
+ });
477
+ /**
478
+ * A service config ID
479
+ */
480
+ const AidrMetricpoolIdSchema = v.pipe(v.string(), v.regex(/^pro_[a-z2-7]{32}$/));
481
+ const AidrLogSchema = v.strictObject({ event: v.record(v.string(), v.unknown()) });
482
+ const AidrLogsSchema = v.strictObject({ events: v.pipe(v.array(v.record(v.string(), v.unknown())), v.minLength(1), v.maxLength(100)) });
483
+ /**
484
+ * An empty object
485
+ */
486
+ const AidrEmptySchema = v.strictObject({});
487
+ /**
488
+ * Collector health endpoint object
489
+ */
490
+ const AidrSensorHealthSchema = v.strictObject({ collector_instance_id: v.string() });
491
+ /**
492
+ * A service config ID
493
+ */
494
+ const ServiceConfigIdSchema = v.pipe(v.string(), v.regex(/^pci_[a-z2-7]{32}$/));
495
+ /**
496
+ * AIDR Collector Summary Result Data
497
+ */
498
+ const AidrSensorInsightsItemSchema = v.strictObject({
499
+ updated_at: v.pipe(v.string(), v.isoTimestamp()),
500
+ created_at: v.pipe(v.string(), v.isoTimestamp()),
501
+ count: v.pipe(v.number(), v.integer(), v.minValue(0)),
502
+ collector_id: ServiceConfigIdSchema,
503
+ instance_id: v.optional(v.string()),
504
+ collector_type: v.string()
505
+ });
506
+ /**
507
+ * AIDR Collector Summary Result Data
508
+ */
509
+ const AidrSensorInsightsResultSchema = v.object({
510
+ count: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
511
+ last: v.optional(v.string()),
512
+ items: v.optional(v.array(AidrSensorInsightsItemSchema))
513
+ });
514
+ /**
515
+ * audit data activity configuration
516
+ */
517
+ const AidrAuditDataActivitySchema = v.object({
518
+ audit_config_id: v.optional(ServiceConfigIdSchema),
519
+ enabled: v.optional(v.boolean())
520
+ });
521
+ /**
522
+ * A filter ID
523
+ */
524
+ const FilterIdSchema = v.pipe(v.string(), v.regex(/^paf_[a-z2-7]{32}$/));
525
+ /**
526
+ * A Policy ID
527
+ */
528
+ const PolicyIdSchema = v.pipe(v.string(), v.regex(/^pap_[a-z2-7]{32}$/));
529
+ /**
530
+ * A time in ISO-8601 format
531
+ */
532
+ const AidrTimestampSchema = v.pipe(v.string(), v.isoTimestamp());
533
+ /**
534
+ * AIDR Service Config Settings
535
+ */
536
+ const AidrServiceConfigSchema = v.objectWithRest({
537
+ id: v.optional(ServiceConfigIdSchema),
538
+ name: v.optional(v.string()),
539
+ version: v.optional(v.string()),
540
+ metric_pool_rid: v.optional(AidrMetricpoolIdSchema),
541
+ updated_at: v.optional(AidrTimestampSchema),
542
+ collector_type: v.optional(v.string()),
543
+ settings: v.optional(v.record(v.string(), v.unknown())),
544
+ warning_threshold: v.optional(AidrGolangDurationSchema),
545
+ in_active_threshold: v.optional(AidrGolangDurationSchema)
546
+ }, v.unknown());
547
+ const AidrServiceConfigResultSchema = AidrServiceConfigSchema;
548
+ const AidrDeviceCheckResultSchema = v.strictObject({
549
+ device: v.optional(AidrDeviceResultSchema),
550
+ config: v.optional(AidrServiceConfigResultSchema),
551
+ access_token: v.optional(AidrDeviceTokenInfoSchema)
552
+ });
553
+ /**
554
+ * Define field name and path mapping to extract from the log
555
+ */
556
+ const AidrResourceFieldMappingSchema = v.record(v.string(), v.strictObject({
557
+ path: v.pipe(v.string(), v.regex(/^([\w]+|\*)(\.(\*|[\w]+|#(\(\w+(==|!=|=~|>|<)[^)]*\))?|\d+))*$/)),
558
+ type: v.picklist([
559
+ "string",
560
+ "int",
561
+ "bool"
562
+ ]),
563
+ disabled: v.optional(v.boolean())
564
+ }));
565
+ /**
566
+ * AIDR metric pool settings
567
+ */
568
+ const AidrMetricpoolResourceSchema = v.object({
569
+ id: v.optional(AidrMetricpoolIdSchema),
570
+ updated_at: v.optional(AidrTimestampSchema),
571
+ field_mappings: v.optional(AidrResourceFieldMappingSchema)
572
+ });
573
+ const AidrOtelInstrumentationScopeSchema = v.objectWithRest({
574
+ name: v.optional(v.string()),
575
+ version: v.optional(v.string())
576
+ }, v.unknown());
577
+ /**
578
+ * AIDR Search Request
579
+ */
580
+ const AidrMetricSchema = v.strictObject({
581
+ start_time: v.pipe(v.string(), v.isoTimestamp()),
582
+ end_time: v.optional(v.pipe(v.string(), v.isoTimestamp())),
583
+ interval: v.optional(v.picklist([
584
+ "hourly",
585
+ "daily",
586
+ "weekly",
587
+ "monthly",
588
+ "yearly"
589
+ ])),
590
+ filters: v.optional(v.strictObject({})),
591
+ tag_filters: v.optional(v.strictObject({})),
592
+ detector_filters: v.optional(v.strictObject({})),
593
+ group_by: v.optional(v.array(v.pipe(v.string(), v.regex(/^[A-Za-z_][A-Za-z0-9_]{0,63}$/)))),
594
+ order_by: v.optional(v.string()),
595
+ order: v.optional(v.picklist(["asc", "desc"])),
596
+ limit: v.optional(v.pipe(v.number(), v.integer())),
597
+ offset: v.optional(v.pipe(v.number(), v.integer()))
598
+ });
599
+ /**
600
+ * AIDR Aggregate Search Request
601
+ */
602
+ const AidrMetricAggregatesSearchParamsSchema = v.strictObject({
603
+ start_time: v.pipe(v.string(), v.isoTimestamp()),
604
+ end_time: v.optional(v.pipe(v.string(), v.isoTimestamp())),
605
+ interval: v.optional(v.picklist([
606
+ "hourly",
607
+ "daily",
608
+ "weekly",
609
+ "monthly",
610
+ "yearly"
611
+ ])),
612
+ aggregate_fields: v.optional(v.array(v.pipe(v.string(), v.regex(/^[A-Za-z_][A-Za-z0-9_]{0,63}$/)))),
613
+ filters: v.optional(v.strictObject({})),
614
+ detector_filters: v.optional(v.strictObject({})),
615
+ tag_filters: v.optional(v.strictObject({})),
616
+ group_by: v.optional(v.array(v.pipe(v.string(), v.regex(/^[A-Za-z_][A-Za-z0-9_]{0,63}$/)))),
617
+ order_by: v.optional(v.string()),
618
+ order: v.optional(v.picklist(["asc", "desc"])),
619
+ limit: v.optional(v.pipe(v.number(), v.integer())),
620
+ offset: v.optional(v.pipe(v.number(), v.integer()))
621
+ });
622
+ const AidrMetricAggregateItemSchema = v.array(v.object({
623
+ bucket_time: v.optional(v.union([v.pipe(v.string(), v.isoTimestamp()), v.null()])),
624
+ counts: v.record(v.string(), v.pipe(v.number(), v.integer()))
625
+ }));
626
+ /**
627
+ * AIDR Metric Search Aggregate Result Data
628
+ */
629
+ const AidrMetricAggregatesResultSchema = v.object({ items: v.optional(v.array(AidrMetricAggregateItemSchema)) });
630
+ const AidrMetricResultDetectorItemSchema = v.optional(v.record(v.string(), v.unknown()), {});
631
+ const AidrMetricItemSchema = v.array(v.object({
632
+ bucket_time: v.optional(v.union([v.pipe(v.string(), v.isoTimestamp()), v.null()])),
633
+ tags: v.optional(v.record(v.string(), v.string())),
634
+ count: v.pipe(v.number(), v.integer()),
635
+ detectors_count: v.pipe(v.number(), v.integer()),
636
+ is_blocked: v.boolean(),
637
+ request_token_count: v.pipe(v.number(), v.integer()),
638
+ response_token_count: v.pipe(v.number(), v.integer()),
639
+ detectors: AidrMetricResultDetectorItemSchema
640
+ }));
641
+ /**
642
+ * AIDR Metric Search Result Data
643
+ */
644
+ const AidrMetricResultSchema = v.object({ items: v.optional(v.array(AidrMetricItemSchema)) });
645
+ /**
646
+ * A time in ISO-8601 format
647
+ */
648
+ const AuthnTimestampSchema = v.pipe(v.string(), v.isoTimestamp());
649
+ /**
650
+ * A time in ISO-8601 format or null
651
+ */
652
+ const AirdTimestampNullableSchema = v.union([AuthnTimestampSchema, v.null()]);
653
+ /**
654
+ * Details about the evaluation of a single rule, including whether it matched, the action to take, the rule name, and optional debugging information.
655
+ */
656
+ const AccessRuleResultSchema = v.strictObject({
657
+ matched: v.boolean(),
658
+ action: v.string(),
659
+ name: v.string(),
660
+ logic: v.optional(v.record(v.string(), v.unknown())),
661
+ attributes: v.optional(v.record(v.string(), v.unknown()))
662
+ });
663
+ /**
664
+ * Result of the recipe evaluating configured rules
665
+ */
666
+ const AidrAccessRulesResponseSchema = v.record(v.string(), v.unknown());
667
+ const RuleRedactionConfigSchema = v.intersect([v.union([
668
+ v.object({ redaction_type: v.optional(v.picklist(["mask", "detect_only"])) }),
669
+ v.object({ redaction_type: v.optional(v.literal("replacement")) }),
670
+ v.object({ redaction_type: v.optional(v.literal("partial_masking")) }),
671
+ v.object({ redaction_type: v.optional(v.literal("hash")) }),
672
+ v.object({ redaction_type: v.optional(v.literal("fpe")) })
673
+ ]), v.strictObject({
674
+ redaction_type: v.picklist([
675
+ "mask",
676
+ "partial_masking",
677
+ "replacement",
678
+ "hash",
679
+ "detect_only",
680
+ "fpe"
681
+ ]),
682
+ redaction_value: v.optional(v.string()),
683
+ partial_masking: v.optional(v.object({
684
+ masking_type: v.optional(v.picklist(["unmask", "mask"])),
685
+ unmasked_from_left: v.optional(v.pipe(v.number(), v.integer(), v.minValue(0))),
686
+ unmasked_from_right: v.optional(v.pipe(v.number(), v.integer(), v.minValue(0))),
687
+ masked_from_left: v.optional(v.pipe(v.number(), v.integer(), v.minValue(0))),
688
+ masked_from_right: v.optional(v.pipe(v.number(), v.integer(), v.minValue(0))),
689
+ chars_to_ignore: v.optional(v.array(v.pipe(v.string(), v.length(1)))),
690
+ masking_char: v.optional(v.pipe(v.string(), v.length(1)), "*")
691
+ })),
692
+ hash: v.optional(v.union([v.object({ hash_type: v.picklist(["md5", "sha256"]) }), v.null()])),
693
+ fpe_alphabet: v.optional(v.union([
694
+ v.literal("numeric"),
695
+ v.literal("alphalower"),
696
+ v.literal("alphaupper"),
697
+ v.literal("alpha"),
698
+ v.literal("alphanumericlower"),
699
+ v.literal("alphanumericupper"),
700
+ v.literal("alphanumeric"),
701
+ v.null()
702
+ ]))
703
+ })]);
704
+ /**
705
+ * Configuration for individual detectors used in an AI Guard recipe. Each entry specifies the detector to use, its enabled state, detector-specific settings, and the [action](https://pangea.cloud/docs/ai-guard/recipes#actions) to apply when detections occur.
706
+ */
707
+ const DetectorSettingsSchema = v.array(v.strictObject({
708
+ detector_name: v.string(),
709
+ state: v.picklist(["disabled", "enabled"]),
710
+ settings: v.object({ rules: v.optional(v.array(v.strictObject({
711
+ redact_rule_id: v.string(),
712
+ redaction: RuleRedactionConfigSchema,
713
+ block: v.optional(v.boolean()),
714
+ disabled: v.optional(v.boolean()),
715
+ reputation_check: v.optional(v.boolean()),
716
+ transform_if_malicious: v.optional(v.boolean())
717
+ }))) })
718
+ }));
719
+ /**
720
+ * Configuration for an individual access rule used in an AI Guard recipe. Each rule defines its matching logic and the action to apply when the logic evaluates to true.
721
+ */
722
+ const AccessRuleSettingsSchema = v.strictObject({
723
+ rule_key: v.pipe(v.string(), v.regex(/^([a-zA-Z0-9_][a-zA-Z0-9/|_]*)$/)),
724
+ name: v.string(),
725
+ state: v.picklist(["block", "report"]),
726
+ logic: v.record(v.string(), v.unknown())
727
+ });
728
+ const AidrPolicySchema = v.strictObject({
729
+ key: v.string(),
730
+ name: v.string(),
731
+ description: v.optional(v.string()),
732
+ schema_version: v.picklist(["v1.1"]),
733
+ detector_settings: v.optional(DetectorSettingsSchema),
734
+ access_rules: v.optional(v.array(AccessRuleSettingsSchema)),
735
+ connector_settings: v.optional(v.object({ redact: v.optional(v.object({ fpe_tweak_vault_secret_id: v.optional(v.string()) })) }))
736
+ });
737
+ const AidrPolicyResultSchema = v.strictObject({
738
+ id: PolicyIdSchema,
739
+ key: v.string(),
740
+ name: v.string(),
741
+ description: v.optional(v.string()),
742
+ schema_version: v.picklist(["v1.1"]),
743
+ revision: v.number(),
744
+ detector_settings: v.optional(DetectorSettingsSchema),
745
+ access_rules: v.optional(v.array(AccessRuleSettingsSchema)),
746
+ connector_settings: v.optional(v.object({ redact: v.optional(v.object({ fpe_tweak_vault_secret_id: v.optional(v.string()) })) })),
747
+ created_at: v.optional(v.pipe(v.string(), v.isoTimestamp())),
748
+ updated_at: v.optional(v.pipe(v.string(), v.isoTimestamp()))
749
+ });
750
+ const AidrPolicySearchResultSchema = v.object({
751
+ count: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
752
+ last: v.optional(v.string()),
753
+ policies: v.optional(v.array(AidrPolicyResultSchema))
754
+ });
755
+ /**
756
+ * Defines an AI Guard recipe - a named configuration of detectors and redaction settings used to analyze and protect data flows in AI-powered applications.
757
+ *
758
+ * Recipes specify which detectors are active, how they behave, and may include reusable settings such as FPE tweaks.
759
+ *
760
+ * For details, see the [AI Guard Recipes](https://pangea.cloud/docs/ai-guard/recipes) documentation.
761
+ */
762
+ const RecipeConfigSchema = v.strictObject({
763
+ name: v.string(),
764
+ description: v.string(),
765
+ version: v.optional(v.string(), "v1"),
766
+ detectors: v.optional(DetectorSettingsSchema),
767
+ access_rules: v.optional(v.array(AccessRuleSettingsSchema)),
768
+ connector_settings: v.optional(v.object({ redact: v.optional(v.object({ fpe_tweak_vault_secret_id: v.optional(v.string()) })) }))
769
+ });
770
+ const AidrPolicyDefaultsSchema = v.object({ default_policies: v.record(v.string(), v.unknown()) });
771
+ const LanguageResultSchema = v.object({
772
+ action: v.optional(v.string()),
773
+ language: v.optional(v.string())
774
+ });
775
+ const RedactEntityResultSchema = v.object({ entities: v.optional(v.array(v.object({
776
+ action: v.string(),
777
+ type: v.string(),
778
+ value: v.string(),
779
+ redacted: v.boolean(),
780
+ start_pos: v.optional(v.pipe(v.number(), v.integer(), v.minValue(0)))
781
+ }))) });
782
+ const MaliciousEntityActionSchema = v.picklist([
783
+ "report",
784
+ "defang",
785
+ "disabled",
786
+ "block"
787
+ ]);
788
+ const PiiEntityActionSchema = v.picklist([
789
+ "disabled",
790
+ "report",
791
+ "block",
792
+ "mask",
793
+ "partial_masking",
794
+ "replacement",
795
+ "hash",
796
+ "fpe"
797
+ ]);
798
+ const AidrOtelResourceLogsSchema = v.objectWithRest({
799
+ resource: v.optional(v.lazy(() => AidrOtelResourceSchema)),
800
+ scopeLogs: v.array(v.lazy(() => AidrOtelScopeLogsSchema))
801
+ }, v.unknown());
802
+ const AidrOtelResourceSchema = v.objectWithRest({ attributes: v.optional(v.array(v.lazy(() => AidrOtelKeyValueSchema))) }, v.unknown());
803
+ const AidrOtelScopeLogsSchema = v.objectWithRest({
804
+ scope: v.optional(AidrOtelInstrumentationScopeSchema),
805
+ logRecords: v.array(v.lazy(() => AidrOtelLogRecordSchema))
806
+ }, v.unknown());
807
+ const AidrOtelLogRecordSchema = v.objectWithRest({
808
+ timeUnixNano: v.optional(v.pipe(v.string(), v.regex(/^[0-9]+$/))),
809
+ observedTimeUnixNano: v.optional(v.pipe(v.string(), v.regex(/^[0-9]+$/))),
810
+ severityNumber: v.optional(v.pipe(v.number(), v.integer())),
811
+ severityText: v.optional(v.string()),
812
+ name: v.optional(v.string()),
813
+ body: v.lazy(() => AidrOtelAnyValueSchema),
814
+ attributes: v.optional(v.array(v.lazy(() => AidrOtelKeyValueSchema))),
815
+ flags: v.optional(v.pipe(v.number(), v.integer())),
816
+ traceId: v.optional(v.string()),
817
+ spanId: v.optional(v.string()),
818
+ traceFlags: v.optional(v.string())
819
+ }, v.unknown());
820
+ const AidrOtelKeyValueSchema = v.objectWithRest({
821
+ key: v.string(),
822
+ value: v.lazy(() => AidrOtelAnyValueSchema)
823
+ }, v.unknown());
824
+ const AidrOtelAnyValueSchema = v.union([
825
+ v.object({ stringValue: v.string() }),
826
+ v.object({ boolValue: v.union([
827
+ v.boolean(),
828
+ v.literal("true"),
829
+ v.literal("false"),
830
+ v.literal("True"),
831
+ v.literal("False")
832
+ ]) }),
833
+ v.object({ intValue: v.union([v.pipe(v.number(), v.integer()), v.pipe(v.string(), v.regex(/^-?\d+$/))]) }),
834
+ v.object({ doubleValue: v.union([v.number(), v.pipe(v.string(), v.regex(/^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$/))]) }),
835
+ v.object({ arrayValue: v.lazy(() => AidrOtelArrayValueSchema) }),
836
+ v.object({ kvlistValue: v.lazy(() => AidrOtelKeyValueListSchema) }),
837
+ v.object({ bytesValue: v.string() })
838
+ ]);
839
+ const AidrOtelArrayValueSchema = v.objectWithRest({ values: v.array(AidrOtelAnyValueSchema) }, v.unknown());
840
+ const AidrOtelKeyValueListSchema = v.objectWithRest({ values: v.array(AidrOtelKeyValueSchema) }, v.unknown());
841
+ const AidrPostV1GuardChatCompletionsRequestSchema = v.object({
842
+ body: v.optional(ChatCompletionsGuardSchema),
843
+ path: v.optional(v.never()),
844
+ query: v.optional(v.never())
845
+ });
846
+ /**
847
+ * No description provided
848
+ */
849
+ const AidrPostV1GuardChatCompletionsResponseSchema = v.intersect([PangeaResponseSchema, v.object({ result: v.optional(v.object({
850
+ guard_output: v.optional(v.record(v.string(), v.unknown())),
851
+ blocked: v.optional(v.boolean()),
852
+ transformed: v.optional(v.boolean()),
853
+ policy: v.optional(v.string()),
854
+ detectors: v.object({
855
+ malicious_prompt: v.optional(v.object({
856
+ detected: v.optional(v.boolean()),
857
+ data: v.optional(AidrPromptInjectionResultSchema)
858
+ })),
859
+ confidential_and_pii_entity: v.optional(v.object({
860
+ detected: v.optional(v.boolean()),
861
+ data: v.optional(AidrRedactEntityResultSchema)
862
+ })),
863
+ malicious_entity: v.optional(v.object({
864
+ detected: v.optional(v.boolean()),
865
+ data: v.optional(AidrMaliciousEntityResultSchema)
866
+ })),
867
+ custom_entity: v.optional(v.object({
868
+ detected: v.optional(v.boolean()),
869
+ data: v.optional(AidrRedactEntityResultSchema)
870
+ })),
871
+ secret_and_key_entity: v.optional(v.object({
872
+ detected: v.optional(v.boolean()),
873
+ data: v.optional(AidrRedactEntityResultSchema)
874
+ })),
875
+ competitors: v.optional(v.object({
876
+ detected: v.optional(v.boolean()),
877
+ data: v.optional(AidrSingleEntityResultSchema)
878
+ })),
879
+ language: v.optional(v.object({
880
+ detected: v.optional(v.boolean()),
881
+ data: v.optional(AidrLanguageResultSchema)
882
+ })),
883
+ topic: v.optional(v.object({
884
+ detected: v.optional(v.boolean()),
885
+ data: v.optional(AidrTopicResultSchema)
886
+ })),
887
+ code: v.optional(v.object({
888
+ detected: v.optional(v.boolean()),
889
+ data: v.optional(AidrLanguageResultSchema)
890
+ }))
891
+ }),
892
+ access_rules: v.optional(AidrAccessRulesResponseSchema),
893
+ fpe_context: v.optional(v.string())
894
+ })) })]);
895
+ const GetAsyncRequestRequestSchema = v.object({
896
+ body: v.optional(v.never()),
897
+ path: v.object({ requestId: v.string() }),
898
+ query: v.optional(v.never())
899
+ });
900
+ const GetAsyncRequestResponseSchema = v.union([PangeaResponseSchema, v.intersect([PangeaResponseSchema, v.object({ result: v.optional(v.object({
901
+ ttl_mins: v.optional(v.pipe(v.number(), v.integer())),
902
+ retry_counter: v.optional(v.pipe(v.number(), v.integer())),
903
+ location: v.optional(v.string())
904
+ })) })])]);
905
+
906
+ //#endregion
907
+ export { AccessRuleResultSchema, AccessRuleSettingsSchema, AidrAccessRulesResponseSchema, AidrAuditDataActivitySchema, AidrCustomlistResultSchema, AidrCustomlistSchema, AidrCustomlistSearchResultSchema, AidrCustomlistSearchSchema, AidrDeviceCheckResultSchema, AidrDeviceIdSchema, AidrDeviceResultSchema, AidrDeviceSchema, AidrDeviceSearchResultSchema, AidrDeviceSearchSchema, AidrDeviceStatusSchema, AidrDeviceTokenInfoSchema, AidrEmptySchema, AidrFieldAliasResultSchema, AidrFieldAliasSchema, AidrFieldAliasSearchResultSchema, AidrFieldAliasSearchSchema, AidrGolangDurationSchema, AidrIpv4OrV6Schema, AidrLanguageResultSchema, AidrLogSchema, AidrLogsSchema, AidrMaliciousEntityResultSchema, AidrMetricAggregateItemSchema, AidrMetricAggregatesResultSchema, AidrMetricAggregatesSearchParamsSchema, AidrMetricItemSchema, AidrMetricOnlyDataSchema, AidrMetricResultDetectorItemSchema, AidrMetricResultSchema, AidrMetricSchema, AidrMetricpoolIdSchema, AidrMetricpoolResourceSchema, AidrOtelAnyValueSchema, AidrOtelArrayValueSchema, AidrOtelInstrumentationScopeSchema, AidrOtelKeyValueListSchema, AidrOtelKeyValueSchema, AidrOtelLogRecordSchema, AidrOtelResourceLogsSchema, AidrOtelResourceSchema, AidrOtelScopeLogsSchema, AidrPolicyDefaultsSchema, AidrPolicyResultSchema, AidrPolicySchema, AidrPolicySearchResultSchema, AidrPolicySearchSchema, AidrPolicycollectionResultSchema, AidrPolicycollectionSearchResultSchema, AidrPolicycollectionSearchSchema, AidrPostV1GuardChatCompletionsRequestSchema, AidrPostV1GuardChatCompletionsResponseSchema, AidrPromptInjectionResultSchema, AidrPromptItemListResultSchema, AidrPromptItemSchema, AidrRedactEntityResultSchema, AidrResourceFieldMappingSchema, AidrSavedFilterResultSchema, AidrSavedFilterSchema, AidrSavedFilterSearchResultSchema, AidrSavedFilterSearchSchema, AidrSensorHealthSchema, AidrSensorInsightsItemSchema, AidrSensorInsightsResultSchema, AidrSensorInsightsSchema, AidrServiceConfigListSchema, AidrServiceConfigResultSchema, AidrServiceConfigSchema, AidrSingleEntityResultSchema, AidrTimestampSchema, AidrTopicResultSchema, AirdTimestampNullableSchema, AuthnTimestampSchema, ChatCompletionsGuardSchema, DetectorSettingsSchema, FilterIdSchema, GetAsyncRequestRequestSchema, GetAsyncRequestResponseSchema, LanguageResultSchema, MaliciousEntityActionSchema, PangeaResponseSchema, PangeaValidationErrorsSchema, PiiEntityActionSchema, PolicyIdSchema, RecipeConfigSchema, RedactEntityResultSchema, RuleRedactionConfigSchema, ServiceConfigIdSchema };