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