@cdot65/prisma-airs-sdk 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -25,33 +25,115 @@ __export(index_exports, {
25
25
  AI_SEC_API_KEY: () => AI_SEC_API_KEY,
26
26
  AI_SEC_API_TOKEN: () => AI_SEC_API_TOKEN,
27
27
  ASYNC_SCAN_PATH: () => ASYNC_SCAN_PATH,
28
+ Action: () => Action,
28
29
  AgentMetaSchema: () => AgentMetaSchema,
29
30
  AiProfileSchema: () => AiProfileSchema,
31
+ ApiEndpointType: () => ApiEndpointType,
30
32
  AsyncScanObjectSchema: () => AsyncScanObjectSchema,
31
33
  AsyncScanResponseSchema: () => AsyncScanResponseSchema,
34
+ AttackDetailResponseSchema: () => AttackDetailResponseSchema,
35
+ AttackListItemSchema: () => AttackListItemSchema,
36
+ AttackListResponseSchema: () => AttackListResponseSchema,
37
+ AttackMultiTurnDetailResponseSchema: () => AttackMultiTurnDetailResponseSchema,
38
+ AttackMultiTurnOutputSchema: () => AttackMultiTurnOutputSchema,
39
+ AttackOutputSchema: () => AttackOutputSchema,
40
+ AttackStatus: () => AttackStatus,
41
+ AttackType: () => AttackType,
42
+ AuthType: () => AuthType,
32
43
  BEARER: () => BEARER,
44
+ BaseResponseSchema: () => BaseResponseSchema,
45
+ BrandSubCategory: () => BrandSubCategory,
46
+ Category: () => Category,
47
+ CategoryModelSchema: () => CategoryModelSchema,
48
+ CategoryReportSchema: () => CategoryReportSchema,
49
+ ComplianceReportSchema: () => ComplianceReportSchema,
50
+ ComplianceSubCategory: () => ComplianceSubCategory,
51
+ ComplianceTechniqueSchema: () => ComplianceTechniqueSchema,
33
52
  Content: () => Content,
53
+ CountByNameSchema: () => CountByNameSchema,
54
+ CountedQuotaEnum: () => CountedQuotaEnum,
34
55
  CreateCustomTopicRequestSchema: () => CreateCustomTopicRequestSchema,
35
56
  CreateSecurityProfileRequestSchema: () => CreateSecurityProfileRequestSchema,
57
+ CustomAttackOutputSchema: () => CustomAttackOutputSchema,
58
+ CustomAttackReportResponseSchema: () => CustomAttackReportResponseSchema,
59
+ CustomAttacksListResponseSchema: () => CustomAttacksListResponseSchema,
60
+ CustomJobMetadataSchema: () => CustomJobMetadataSchema,
61
+ CustomPromptCreateRequestSchema: () => CustomPromptCreateRequestSchema,
62
+ CustomPromptListItemSchema: () => CustomPromptListItemSchema,
63
+ CustomPromptListSchema: () => CustomPromptListSchema,
64
+ CustomPromptResponseSchema: () => CustomPromptResponseSchema,
65
+ CustomPromptSetArchiveRequestSchema: () => CustomPromptSetArchiveRequestSchema,
66
+ CustomPromptSetCreateRequestSchema: () => CustomPromptSetCreateRequestSchema,
67
+ CustomPromptSetListActiveSchema: () => CustomPromptSetListActiveSchema,
68
+ CustomPromptSetListItemSchema: () => CustomPromptSetListItemSchema,
69
+ CustomPromptSetListSchema: () => CustomPromptSetListSchema,
70
+ CustomPromptSetReferenceSchema: () => CustomPromptSetReferenceSchema,
71
+ CustomPromptSetResponseSchema: () => CustomPromptSetResponseSchema,
72
+ CustomPromptSetUpdateRequestSchema: () => CustomPromptSetUpdateRequestSchema,
73
+ CustomPromptSetVersionInfoSchema: () => CustomPromptSetVersionInfoSchema,
74
+ CustomPromptUpdateRequestSchema: () => CustomPromptUpdateRequestSchema,
36
75
  CustomTopicListResponseSchema: () => CustomTopicListResponseSchema,
37
76
  CustomTopicSchema: () => CustomTopicSchema,
38
77
  DEFAULT_ENDPOINT: () => DEFAULT_ENDPOINT,
39
78
  DEFAULT_MGMT_ENDPOINT: () => DEFAULT_MGMT_ENDPOINT,
79
+ DEFAULT_MODEL_SEC_DATA_ENDPOINT: () => DEFAULT_MODEL_SEC_DATA_ENDPOINT,
80
+ DEFAULT_MODEL_SEC_MGMT_ENDPOINT: () => DEFAULT_MODEL_SEC_MGMT_ENDPOINT,
81
+ DEFAULT_RED_TEAM_DATA_ENDPOINT: () => DEFAULT_RED_TEAM_DATA_ENDPOINT,
82
+ DEFAULT_RED_TEAM_MGMT_ENDPOINT: () => DEFAULT_RED_TEAM_MGMT_ENDPOINT,
40
83
  DEFAULT_TOKEN_ENDPOINT: () => DEFAULT_TOKEN_ENDPOINT,
41
84
  DSDetailResultSchema: () => DSDetailResultSchema,
42
85
  DSResultMetadataSchema: () => DSResultMetadataSchema,
86
+ DashboardOverviewResponseSchema: () => DashboardOverviewResponseSchema,
87
+ DateRangeFilter: () => DateRangeFilter,
43
88
  DeleteProfileConflictSchema: () => DeleteProfileConflictSchema,
44
89
  DeleteProfileResponseSchema: () => DeleteProfileResponseSchema,
45
90
  DeleteTopicConflictSchema: () => DeleteTopicConflictSchema,
46
91
  DeleteTopicResponseSchema: () => DeleteTopicResponseSchema,
47
92
  DetectionServiceResultSchema: () => DetectionServiceResultSchema,
48
93
  DlpReportSchema: () => DlpReportSchema,
94
+ DynamicJobMetadataSchema: () => DynamicJobMetadataSchema,
95
+ DynamicJobReportSchema: () => DynamicJobReportSchema,
96
+ DynamicJobReportStatsSchema: () => DynamicJobReportStatsSchema,
97
+ ErrorCodes: () => ErrorCodes,
98
+ ErrorLogListResponseSchema: () => ErrorLogListResponseSchema,
99
+ ErrorLogSchema: () => ErrorLogSchema,
49
100
  ErrorResponseSchema: () => ErrorResponseSchema,
101
+ ErrorSource: () => ErrorSource,
50
102
  ErrorType: () => ErrorType,
103
+ EvalOutcome: () => EvalOutcome,
104
+ EvalSummarySchema: () => EvalSummarySchema,
105
+ FileFormat: () => FileFormat,
106
+ FileListSchema: () => FileListSchema,
107
+ FileResponseSchema: () => FileResponseSchema,
108
+ FileScanDataSchema: () => FileScanDataSchema,
109
+ FileScanResult: () => FileScanResult,
110
+ FileType: () => FileType,
111
+ GoalListResponseSchema: () => GoalListResponseSchema,
112
+ GoalSchema: () => GoalSchema,
113
+ GoalType: () => GoalType,
114
+ GoalTypeQueryParam: () => GoalTypeQueryParam,
115
+ GuardrailAction: () => GuardrailAction,
51
116
  HEADER_API_KEY: () => HEADER_API_KEY,
52
117
  HEADER_AUTH_TOKEN: () => HEADER_AUTH_TOKEN,
118
+ HTTPValidationErrorSchema: () => HTTPValidationErrorSchema,
53
119
  HTTP_FORCE_RETRY_STATUS_CODES: () => HTTP_FORCE_RETRY_STATUS_CODES,
54
120
  IODetectedSchema: () => IODetectedSchema,
121
+ JobAbortResponseSchema: () => JobAbortResponseSchema,
122
+ JobCreateRequestSchema: () => JobCreateRequestSchema,
123
+ JobListResponseSchema: () => JobListResponseSchema,
124
+ JobResponseSchema: () => JobResponseSchema,
125
+ JobStatus: () => JobStatus,
126
+ JobStatusFilter: () => JobStatusFilter,
127
+ JobTimeRecordSchema: () => JobTimeRecordSchema,
128
+ JobType: () => JobType,
129
+ LabelKeyListSchema: () => LabelKeyListSchema,
130
+ LabelSchema: () => LabelSchema,
131
+ LabelValueListSchema: () => LabelValueListSchema,
132
+ LabelsCreateRequestSchema: () => LabelsCreateRequestSchema,
133
+ LabelsResponseSchema: () => LabelsResponseSchema,
134
+ ListModelSecurityGroupsResponseSchema: () => ListModelSecurityGroupsResponseSchema,
135
+ ListModelSecurityRuleInstancesResponseSchema: () => ListModelSecurityRuleInstancesResponseSchema,
136
+ ListModelSecurityRulesResponseSchema: () => ListModelSecurityRulesResponseSchema,
55
137
  MAX_AI_PROFILE_NAME_LENGTH: () => MAX_AI_PROFILE_NAME_LENGTH,
56
138
  MAX_API_KEY_LENGTH: () => MAX_API_KEY_LENGTH,
57
139
  MAX_CONNECTION_POOL_SIZE: () => MAX_CONNECTION_POOL_SIZE,
@@ -77,28 +159,167 @@ __export(index_exports, {
77
159
  MGMT_TOPIC_FORCE_PATH: () => MGMT_TOPIC_FORCE_PATH,
78
160
  MGMT_TOPIC_PATH: () => MGMT_TOPIC_PATH,
79
161
  MGMT_TSG_ID: () => MGMT_TSG_ID,
162
+ MODEL_SEC_CLIENT_ID: () => MODEL_SEC_CLIENT_ID,
163
+ MODEL_SEC_CLIENT_SECRET: () => MODEL_SEC_CLIENT_SECRET,
164
+ MODEL_SEC_DATA_ENDPOINT: () => MODEL_SEC_DATA_ENDPOINT,
165
+ MODEL_SEC_EVALUATIONS_PATH: () => MODEL_SEC_EVALUATIONS_PATH,
166
+ MODEL_SEC_MGMT_ENDPOINT: () => MODEL_SEC_MGMT_ENDPOINT,
167
+ MODEL_SEC_PYPI_AUTH_PATH: () => MODEL_SEC_PYPI_AUTH_PATH,
168
+ MODEL_SEC_SCANS_PATH: () => MODEL_SEC_SCANS_PATH,
169
+ MODEL_SEC_SECURITY_GROUPS_PATH: () => MODEL_SEC_SECURITY_GROUPS_PATH,
170
+ MODEL_SEC_SECURITY_RULES_PATH: () => MODEL_SEC_SECURITY_RULES_PATH,
171
+ MODEL_SEC_TOKEN_ENDPOINT: () => MODEL_SEC_TOKEN_ENDPOINT,
172
+ MODEL_SEC_TSG_ID: () => MODEL_SEC_TSG_ID,
173
+ MODEL_SEC_VIOLATIONS_PATH: () => MODEL_SEC_VIOLATIONS_PATH,
80
174
  ManagementClient: () => ManagementClient,
81
175
  MaskedDataSchema: () => MaskedDataSchema,
82
176
  MetadataSchema: () => MetadataSchema,
177
+ ModelScanIssueSchema: () => ModelScanIssueSchema,
178
+ ModelScanStatus: () => ModelScanStatus,
179
+ ModelSecurityClient: () => ModelSecurityClient,
180
+ ModelSecurityGroupCreateRequestSchema: () => ModelSecurityGroupCreateRequestSchema,
181
+ ModelSecurityGroupResponseSchema: () => ModelSecurityGroupResponseSchema,
182
+ ModelSecurityGroupState: () => ModelSecurityGroupState,
183
+ ModelSecurityGroupUpdateRequestSchema: () => ModelSecurityGroupUpdateRequestSchema,
184
+ ModelSecurityGroupsClient: () => ModelSecurityGroupsClient,
185
+ ModelSecurityPaginationSchema: () => ModelSecurityPaginationSchema,
186
+ ModelSecurityRuleInstanceResponseSchema: () => ModelSecurityRuleInstanceResponseSchema,
187
+ ModelSecurityRuleInstanceUpdateRequestSchema: () => ModelSecurityRuleInstanceUpdateRequestSchema,
188
+ ModelSecurityRuleResponseSchema: () => ModelSecurityRuleResponseSchema,
189
+ ModelSecurityRulesClient: () => ModelSecurityRulesClient,
190
+ ModelSecurityScansClient: () => ModelSecurityScansClient,
83
191
  PAYLOAD_HASH: () => PAYLOAD_HASH,
84
192
  PolicySchema: () => PolicySchema,
193
+ PolicyType: () => PolicyType,
194
+ PrerequisiteModelSchema: () => PrerequisiteModelSchema,
85
195
  ProfilesClient: () => ProfilesClient,
196
+ ProfilingStatus: () => ProfilingStatus,
197
+ PromptDetailResponseSchema: () => PromptDetailResponseSchema,
86
198
  PromptDetectedSchema: () => PromptDetectedSchema,
87
199
  PromptDetectionDetailsSchema: () => PromptDetectionDetailsSchema,
200
+ PromptSetStatsSchema: () => PromptSetStatsSchema,
201
+ PromptSetSummarySchema: () => PromptSetSummarySchema,
202
+ PromptSetsReportResponseSchema: () => PromptSetsReportResponseSchema,
203
+ PropertyAssignmentSchema: () => PropertyAssignmentSchema,
204
+ PropertyDefinitionSchema: () => PropertyDefinitionSchema,
205
+ PropertyNameCreateRequestSchema: () => PropertyNameCreateRequestSchema,
206
+ PropertyNamesListResponseSchema: () => PropertyNamesListResponseSchema,
207
+ PropertyStatisticSchema: () => PropertyStatisticSchema,
208
+ PropertyValueCreateRequestSchema: () => PropertyValueCreateRequestSchema,
209
+ PropertyValueStatisticSchema: () => PropertyValueStatisticSchema,
210
+ PropertyValuesMultipleResponseSchema: () => PropertyValuesMultipleResponseSchema,
211
+ PropertyValuesResponseSchema: () => PropertyValuesResponseSchema,
212
+ PyPIAuthResponseSchema: () => PyPIAuthResponseSchema,
213
+ QuotaDetailsSchema: () => QuotaDetailsSchema,
214
+ QuotaSummarySchema: () => QuotaSummarySchema,
215
+ RED_TEAM_CATEGORIES_PATH: () => RED_TEAM_CATEGORIES_PATH,
216
+ RED_TEAM_CLIENT_ID: () => RED_TEAM_CLIENT_ID,
217
+ RED_TEAM_CLIENT_SECRET: () => RED_TEAM_CLIENT_SECRET,
218
+ RED_TEAM_CUSTOM_ATTACKS_REPORT_PATH: () => RED_TEAM_CUSTOM_ATTACKS_REPORT_PATH,
219
+ RED_TEAM_CUSTOM_ATTACK_PATH: () => RED_TEAM_CUSTOM_ATTACK_PATH,
220
+ RED_TEAM_DASHBOARD_PATH: () => RED_TEAM_DASHBOARD_PATH,
221
+ RED_TEAM_DATA_ENDPOINT: () => RED_TEAM_DATA_ENDPOINT,
222
+ RED_TEAM_ERROR_LOG_PATH: () => RED_TEAM_ERROR_LOG_PATH,
223
+ RED_TEAM_MGMT_DASHBOARD_PATH: () => RED_TEAM_MGMT_DASHBOARD_PATH,
224
+ RED_TEAM_MGMT_ENDPOINT: () => RED_TEAM_MGMT_ENDPOINT,
225
+ RED_TEAM_QUOTA_PATH: () => RED_TEAM_QUOTA_PATH,
226
+ RED_TEAM_REPORT_DYNAMIC_PATH: () => RED_TEAM_REPORT_DYNAMIC_PATH,
227
+ RED_TEAM_REPORT_PATH: () => RED_TEAM_REPORT_PATH,
228
+ RED_TEAM_REPORT_STATIC_PATH: () => RED_TEAM_REPORT_STATIC_PATH,
229
+ RED_TEAM_SCAN_PATH: () => RED_TEAM_SCAN_PATH,
230
+ RED_TEAM_SENTIMENT_PATH: () => RED_TEAM_SENTIMENT_PATH,
231
+ RED_TEAM_TARGET_PATH: () => RED_TEAM_TARGET_PATH,
232
+ RED_TEAM_TOKEN_ENDPOINT: () => RED_TEAM_TOKEN_ENDPOINT,
233
+ RED_TEAM_TSG_ID: () => RED_TEAM_TSG_ID,
234
+ RedTeamCategory: () => RedTeamCategory,
235
+ RedTeamClient: () => RedTeamClient,
236
+ RedTeamCustomAttackReportsClient: () => RedTeamCustomAttackReportsClient,
237
+ RedTeamCustomAttacksClient: () => RedTeamCustomAttacksClient,
238
+ RedTeamErrorType: () => RedTeamErrorType,
239
+ RedTeamPaginationSchema: () => RedTeamPaginationSchema,
240
+ RedTeamReportsClient: () => RedTeamReportsClient,
241
+ RedTeamScansClient: () => RedTeamScansClient,
242
+ RedTeamTargetsClient: () => RedTeamTargetsClient,
243
+ RemediationDetailSchema: () => RemediationDetailSchema,
244
+ RemediationResponseSchema: () => RemediationResponseSchema,
88
245
  ResponseDetectedSchema: () => ResponseDetectedSchema,
89
246
  ResponseDetectionDetailsSchema: () => ResponseDetectionDetailsSchema,
247
+ ResponseMode: () => ResponseMode,
248
+ RiskLevelSchema: () => RiskLevelSchema,
249
+ RiskRating: () => RiskRating,
250
+ RuleConfigurationSchema: () => RuleConfigurationSchema,
251
+ RuleEditableFieldDropdownSchema: () => RuleEditableFieldDropdownSchema,
252
+ RuleEditableFieldSchema: () => RuleEditableFieldSchema,
253
+ RuleEditableFieldType: () => RuleEditableFieldType,
254
+ RuleEvaluationListSchema: () => RuleEvaluationListSchema,
255
+ RuleEvaluationResponseSchema: () => RuleEvaluationResponseSchema,
256
+ RuleEvaluationResult: () => RuleEvaluationResult,
257
+ RuleFieldValueKey: () => RuleFieldValueKey,
258
+ RuleRemediationSchema: () => RuleRemediationSchema,
259
+ RuleState: () => RuleState,
260
+ RuleType: () => RuleType,
261
+ RuntimeSecurityPolicySchema: () => RuntimeSecurityPolicySchema,
262
+ RuntimeSecurityProfileResponseSchema: () => RuntimeSecurityProfileResponseSchema,
90
263
  SCAN_REPORTS_PATH: () => SCAN_REPORTS_PATH,
91
264
  SCAN_RESULTS_PATH: () => SCAN_RESULTS_PATH,
92
265
  SDK_VERSION: () => SDK_VERSION,
93
266
  SYNC_SCAN_PATH: () => SYNC_SCAN_PATH,
267
+ SafetySubCategory: () => SafetySubCategory,
268
+ ScanBaseResponseSchema: () => ScanBaseResponseSchema,
269
+ ScanCreateRequestSchema: () => ScanCreateRequestSchema,
270
+ ScanDetailsSchema: () => ScanDetailsSchema,
94
271
  ScanIdResultSchema: () => ScanIdResultSchema,
272
+ ScanListSchema: () => ScanListSchema,
273
+ ScanOrigin: () => ScanOrigin,
95
274
  ScanRequestContentsInnerSchema: () => ScanRequestContentsInnerSchema,
96
275
  ScanRequestSchema: () => ScanRequestSchema,
97
276
  ScanResponseSchema: () => ScanResponseSchema,
277
+ ScanStatisticsResponseSchema: () => ScanStatisticsResponseSchema,
98
278
  ScanSummarySchema: () => ScanSummarySchema,
99
279
  Scanner: () => Scanner,
280
+ ScoreTrendResponseSchema: () => ScoreTrendResponseSchema,
281
+ ScoreTrendSeriesSchema: () => ScoreTrendSeriesSchema,
100
282
  SecurityProfileListResponseSchema: () => SecurityProfileListResponseSchema,
101
283
  SecurityProfileSchema: () => SecurityProfileSchema,
284
+ SecuritySubCategory: () => SecuritySubCategory,
285
+ SentimentRequestSchema: () => SentimentRequestSchema,
286
+ SentimentResponseSchema: () => SentimentResponseSchema,
287
+ SeverityFilter: () => SeverityFilter,
288
+ SeverityReportSchema: () => SeverityReportSchema,
289
+ SeverityStatsSchema: () => SeverityStatsSchema,
290
+ SortByDateField: () => SortByDateField,
291
+ SortByFileField: () => SortByFileField,
292
+ SortDirection: () => SortDirection,
293
+ SourceType: () => SourceType,
294
+ StaticJobMetadataSchema: () => StaticJobMetadataSchema,
295
+ StaticJobRemediationRecommendationSchema: () => StaticJobRemediationRecommendationSchema,
296
+ StaticJobRemediationSchema: () => StaticJobRemediationSchema,
297
+ StaticJobReportSchema: () => StaticJobReportSchema,
298
+ StaticJobReportStatsSchema: () => StaticJobReportStatsSchema,
299
+ StatusQueryParam: () => StatusQueryParam,
300
+ StreamDetailResponseSchema: () => StreamDetailResponseSchema,
301
+ StreamIterationDataSchema: () => StreamIterationDataSchema,
302
+ StreamListResponseSchema: () => StreamListResponseSchema,
303
+ StreamType: () => StreamType,
304
+ SubCategoryModelSchema: () => SubCategoryModelSchema,
305
+ SubCategoryStatsSchema: () => SubCategoryStatsSchema,
306
+ TargetAdditionalContextSchema: () => TargetAdditionalContextSchema,
307
+ TargetBackgroundSchema: () => TargetBackgroundSchema,
308
+ TargetConnectionType: () => TargetConnectionType,
309
+ TargetContextUpdateSchema: () => TargetContextUpdateSchema,
310
+ TargetCreateRequestSchema: () => TargetCreateRequestSchema,
311
+ TargetJobRequestSchema: () => TargetJobRequestSchema,
312
+ TargetListItemSchema: () => TargetListItemSchema,
313
+ TargetListSchema: () => TargetListSchema,
314
+ TargetMetadataSchema: () => TargetMetadataSchema,
315
+ TargetProbeRequestSchema: () => TargetProbeRequestSchema,
316
+ TargetProfileResponseSchema: () => TargetProfileResponseSchema,
317
+ TargetReferenceSchema: () => TargetReferenceSchema,
318
+ TargetResponseSchema: () => TargetResponseSchema,
319
+ TargetStatus: () => TargetStatus,
320
+ TargetType: () => TargetType,
321
+ TargetUpdateRequestSchema: () => TargetUpdateRequestSchema,
322
+ ThreatCategory: () => ThreatCategory,
102
323
  ThreatScanReportSchema: () => ThreatScanReportSchema,
103
324
  ToolDetectedSchema: () => ToolDetectedSchema,
104
325
  ToolEventMetadataSchema: () => ToolEventMetadataSchema,
@@ -106,6 +327,10 @@ __export(index_exports, {
106
327
  TopicsClient: () => TopicsClient,
107
328
  USER_AGENT: () => USER_AGENT,
108
329
  UrlfEntrySchema: () => UrlfEntrySchema,
330
+ ValidationErrorSchema: () => ValidationErrorSchema,
331
+ Verdict: () => Verdict,
332
+ ViolationListSchema: () => ViolationListSchema,
333
+ ViolationResponseSchema: () => ViolationResponseSchema,
109
334
  globalConfiguration: () => globalConfiguration,
110
335
  init: () => init
111
336
  });
@@ -136,7 +361,7 @@ var MAX_NUMBER_OF_BATCH_SCAN_OBJECTS = 5;
136
361
  var MAX_CONNECTION_POOL_SIZE = 100;
137
362
  var MAX_NUMBER_OF_RETRIES = 5;
138
363
  var HTTP_FORCE_RETRY_STATUS_CODES = [500, 502, 503, 504];
139
- var SDK_VERSION = "0.1.2";
364
+ var SDK_VERSION = "0.4.0";
140
365
  var USER_AGENT = `PAN-AIRS/${SDK_VERSION}-typescript-sdk`;
141
366
  var DEFAULT_MGMT_ENDPOINT = "https://api.sase.paloaltonetworks.com/aisec";
142
367
  var DEFAULT_TOKEN_ENDPOINT = "https://auth.apps.paloaltonetworks.com/oauth2/access_token";
@@ -154,6 +379,41 @@ var MGMT_PROFILES_TSG_PATH = "/v1/mgmt/profiles/tsg";
154
379
  var MGMT_TOPIC_PATH = "/v1/mgmt/topic";
155
380
  var MGMT_TOPICS_TSG_PATH = "/v1/mgmt/topics/tsg";
156
381
  var MGMT_TOPIC_FORCE_PATH = "/v1/mgmt/topic/force";
382
+ var DEFAULT_MODEL_SEC_DATA_ENDPOINT = "https://api.sase.paloaltonetworks.com/aims/data";
383
+ var DEFAULT_MODEL_SEC_MGMT_ENDPOINT = "https://api.sase.paloaltonetworks.com/aims/mgmt";
384
+ var MODEL_SEC_CLIENT_ID = "PANW_MODEL_SEC_CLIENT_ID";
385
+ var MODEL_SEC_CLIENT_SECRET = "PANW_MODEL_SEC_CLIENT_SECRET";
386
+ var MODEL_SEC_TSG_ID = "PANW_MODEL_SEC_TSG_ID";
387
+ var MODEL_SEC_DATA_ENDPOINT = "PANW_MODEL_SEC_DATA_ENDPOINT";
388
+ var MODEL_SEC_MGMT_ENDPOINT = "PANW_MODEL_SEC_MGMT_ENDPOINT";
389
+ var MODEL_SEC_TOKEN_ENDPOINT = "PANW_MODEL_SEC_TOKEN_ENDPOINT";
390
+ var MODEL_SEC_SCANS_PATH = "/v1/scans";
391
+ var MODEL_SEC_EVALUATIONS_PATH = "/v1/evaluations";
392
+ var MODEL_SEC_VIOLATIONS_PATH = "/v1/violations";
393
+ var MODEL_SEC_SECURITY_GROUPS_PATH = "/v1/security-groups";
394
+ var MODEL_SEC_SECURITY_RULES_PATH = "/v1/security-rules";
395
+ var MODEL_SEC_PYPI_AUTH_PATH = "/v1/pypi/authenticate";
396
+ var DEFAULT_RED_TEAM_DATA_ENDPOINT = "https://api.sase.paloaltonetworks.com/ai-red-teaming/data-plane";
397
+ var DEFAULT_RED_TEAM_MGMT_ENDPOINT = "https://api.sase.paloaltonetworks.com/ai-red-teaming/mgmt-plane";
398
+ var RED_TEAM_CLIENT_ID = "PANW_RED_TEAM_CLIENT_ID";
399
+ var RED_TEAM_CLIENT_SECRET = "PANW_RED_TEAM_CLIENT_SECRET";
400
+ var RED_TEAM_TSG_ID = "PANW_RED_TEAM_TSG_ID";
401
+ var RED_TEAM_DATA_ENDPOINT = "PANW_RED_TEAM_DATA_ENDPOINT";
402
+ var RED_TEAM_MGMT_ENDPOINT = "PANW_RED_TEAM_MGMT_ENDPOINT";
403
+ var RED_TEAM_TOKEN_ENDPOINT = "PANW_RED_TEAM_TOKEN_ENDPOINT";
404
+ var RED_TEAM_SCAN_PATH = "/v1/scan";
405
+ var RED_TEAM_CATEGORIES_PATH = "/v1/categories";
406
+ var RED_TEAM_REPORT_STATIC_PATH = "/v1/report/static";
407
+ var RED_TEAM_REPORT_DYNAMIC_PATH = "/v1/report/dynamic";
408
+ var RED_TEAM_REPORT_PATH = "/v1/report";
409
+ var RED_TEAM_CUSTOM_ATTACKS_REPORT_PATH = "/v1/custom-attacks";
410
+ var RED_TEAM_DASHBOARD_PATH = "/v1/dashboard";
411
+ var RED_TEAM_QUOTA_PATH = "/v1/metering/quota";
412
+ var RED_TEAM_ERROR_LOG_PATH = "/v1/error-log/job";
413
+ var RED_TEAM_SENTIMENT_PATH = "/v1/sentiment";
414
+ var RED_TEAM_TARGET_PATH = "/v1/target";
415
+ var RED_TEAM_CUSTOM_ATTACK_PATH = "/v1/custom-attack";
416
+ var RED_TEAM_MGMT_DASHBOARD_PATH = "/v1/dashboard/overview";
157
417
 
158
418
  // src/errors.ts
159
419
  var ErrorType = /* @__PURE__ */ ((ErrorType2) => {
@@ -167,6 +427,10 @@ var ErrorType = /* @__PURE__ */ ((ErrorType2) => {
167
427
  })(ErrorType || {});
168
428
  var AISecSDKException = class _AISecSDKException extends Error {
169
429
  errorType;
430
+ /**
431
+ * @param message - Human-readable error description.
432
+ * @param errorType - Classification of the error.
433
+ */
170
434
  constructor(message, errorType) {
171
435
  super(errorType ? `${errorType}:${message}` : message);
172
436
  this.name = "AISecSDKException";
@@ -248,6 +512,68 @@ function init(opts = {}) {
248
512
  globalConfiguration.init(opts);
249
513
  }
250
514
 
515
+ // src/http-retry.ts
516
+ function sleep(ms) {
517
+ return new Promise((resolve) => setTimeout(resolve, ms));
518
+ }
519
+ function backoffDelay(attempt) {
520
+ return Math.pow(2, attempt) * 1e3;
521
+ }
522
+ function isRetryableStatus(status) {
523
+ return HTTP_FORCE_RETRY_STATUS_CODES.includes(status);
524
+ }
525
+ function classifyErrorType(status) {
526
+ return status >= 500 ? "AISEC_SERVER_SIDE_ERROR" /* SERVER_SIDE_ERROR */ : "AISEC_CLIENT_SIDE_ERROR" /* CLIENT_SIDE_ERROR */;
527
+ }
528
+ function extractErrorMessage(body, status) {
529
+ try {
530
+ const parsed = JSON.parse(body);
531
+ return parsed.error_message ?? parsed.message ?? parsed.error?.message ?? `API error ${status}`;
532
+ } catch {
533
+ return body ? `API error ${status}: ${body}` : `API error ${status}`;
534
+ }
535
+ }
536
+ async function executeWithRetry(opts) {
537
+ const { maxRetries, execute, onRetryableFailure } = opts;
538
+ let lastError;
539
+ for (let attempt = 0; attempt <= maxRetries; attempt++) {
540
+ let response;
541
+ try {
542
+ response = await execute(attempt);
543
+ } catch (err) {
544
+ if (err instanceof AISecSDKException) throw err;
545
+ lastError = err;
546
+ if (attempt < maxRetries) {
547
+ await sleep(backoffDelay(attempt));
548
+ continue;
549
+ }
550
+ throw new AISecSDKException(
551
+ lastError.message ?? "Network error",
552
+ "AISEC_CLIENT_SIDE_ERROR" /* CLIENT_SIDE_ERROR */
553
+ );
554
+ }
555
+ if (response.ok) return response;
556
+ if (onRetryableFailure) {
557
+ const handled = await onRetryableFailure(response, attempt);
558
+ if (handled) {
559
+ attempt--;
560
+ continue;
561
+ }
562
+ }
563
+ if (isRetryableStatus(response.status) && attempt < maxRetries) {
564
+ await sleep(backoffDelay(attempt));
565
+ continue;
566
+ }
567
+ const errorText = await response.text();
568
+ const errorMessage = extractErrorMessage(errorText, response.status);
569
+ throw new AISecSDKException(errorMessage, classifyErrorType(response.status));
570
+ }
571
+ throw new AISecSDKException(
572
+ lastError?.message ?? "Max retries exceeded",
573
+ "AISEC_CLIENT_SIDE_ERROR" /* CLIENT_SIDE_ERROR */
574
+ );
575
+ }
576
+
251
577
  // src/utils.ts
252
578
  var import_node_crypto = require("crypto");
253
579
  var UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
@@ -273,9 +599,6 @@ function buildHeaders() {
273
599
  }
274
600
  return headers;
275
601
  }
276
- function sleep(ms) {
277
- return new Promise((resolve) => setTimeout(resolve, ms));
278
- }
279
602
  async function httpRequest(opts) {
280
603
  if (!globalConfiguration.initialized) {
281
604
  throw new AISecSDKException(
@@ -298,48 +621,27 @@ async function httpRequest(opts) {
298
621
  headers[PAYLOAD_HASH] = generatePayloadHash(bodyStr, globalConfiguration.apiKey);
299
622
  }
300
623
  }
301
- const maxRetries = globalConfiguration.numRetries;
302
- let lastError;
303
- for (let attempt = 0; attempt <= maxRetries; attempt++) {
304
- try {
305
- const response = await fetch(url.toString(), {
306
- method: opts.method,
307
- headers,
308
- body: bodyStr
309
- });
310
- if (response.ok) {
311
- const data = await response.json();
312
- return { status: response.status, data };
313
- }
314
- if (HTTP_FORCE_RETRY_STATUS_CODES.includes(response.status) && attempt < maxRetries) {
315
- await sleep(Math.pow(2, attempt) * 1e3);
316
- continue;
317
- }
318
- let errorMessage;
319
- try {
320
- const errorBody = await response.json();
321
- errorMessage = errorBody.message ?? errorBody.error?.message ?? `API error ${response.status}`;
322
- } catch {
323
- errorMessage = `API error ${response.status}`;
324
- }
325
- const errorType = response.status >= 500 ? "AISEC_SERVER_SIDE_ERROR" /* SERVER_SIDE_ERROR */ : "AISEC_CLIENT_SIDE_ERROR" /* CLIENT_SIDE_ERROR */;
326
- throw new AISecSDKException(errorMessage, errorType);
327
- } catch (err) {
328
- if (err instanceof AISecSDKException) {
329
- throw err;
330
- }
331
- lastError = err;
332
- if (attempt < maxRetries) {
333
- await sleep(Math.pow(2, attempt) * 1e3);
334
- continue;
335
- }
336
- }
337
- }
338
- throw new AISecSDKException(lastError?.message ?? "Network error", "AISEC_CLIENT_SIDE_ERROR" /* CLIENT_SIDE_ERROR */);
624
+ const response = await executeWithRetry({
625
+ maxRetries: globalConfiguration.numRetries,
626
+ execute: () => fetch(url.toString(), {
627
+ method: opts.method,
628
+ headers,
629
+ body: bodyStr
630
+ })
631
+ });
632
+ const data = await response.json();
633
+ return { status: response.status, data };
339
634
  }
340
635
 
341
636
  // src/scan/scanner.ts
342
637
  var Scanner = class {
638
+ /**
639
+ * Perform a synchronous content scan.
640
+ * @param aiProfile - AI security profile to scan against.
641
+ * @param content - Content to scan.
642
+ * @param opts - Optional transaction/session IDs and metadata.
643
+ * @returns Scan response with verdict, action, and detection details.
644
+ */
343
645
  async syncScan(aiProfile, content, opts = {}) {
344
646
  if (opts.trId && opts.trId.length > MAX_TRANSACTION_ID_STR_LENGTH) {
345
647
  throw new AISecSDKException(
@@ -367,6 +669,11 @@ var Scanner = class {
367
669
  });
368
670
  return res.data;
369
671
  }
672
+ /**
673
+ * Submit content for asynchronous scanning.
674
+ * @param scanObjects - Array of scan objects (1–5 items).
675
+ * @returns Response containing scan IDs for later querying.
676
+ */
370
677
  async asyncScan(scanObjects) {
371
678
  if (scanObjects.length < 1) {
372
679
  throw new AISecSDKException(
@@ -387,6 +694,11 @@ var Scanner = class {
387
694
  });
388
695
  return res.data;
389
696
  }
697
+ /**
698
+ * Query scan results by scan IDs.
699
+ * @param scanIds - Array of scan UUIDs (1–5 items).
700
+ * @returns Array of scan results with status and response data.
701
+ */
390
702
  async queryByScanIds(scanIds) {
391
703
  if (scanIds.length < 1) {
392
704
  throw new AISecSDKException(
@@ -412,6 +724,11 @@ var Scanner = class {
412
724
  });
413
725
  return res.data;
414
726
  }
727
+ /**
728
+ * Query detailed threat reports by report IDs.
729
+ * @param reportIds - Array of report IDs (1–5 items).
730
+ * @returns Array of threat scan reports with detection details.
731
+ */
415
732
  async queryByReportIds(reportIds) {
416
733
  if (reportIds.length < 1) {
417
734
  throw new AISecSDKException(
@@ -523,6 +840,7 @@ var Content = class _Content {
523
840
  set toolEvent(value) {
524
841
  this._toolEvent = value;
525
842
  }
843
+ /** Total byte length of all text content fields. */
526
844
  get length() {
527
845
  let total = 0;
528
846
  if (this._prompt) total += Buffer.byteLength(this._prompt);
@@ -532,6 +850,7 @@ var Content = class _Content {
532
850
  if (this._codeResponse) total += Buffer.byteLength(this._codeResponse);
533
851
  return total;
534
852
  }
853
+ /** Serialize to the API request format. */
535
854
  toJSON() {
536
855
  const obj = {};
537
856
  if (this._prompt !== void 0) obj.prompt = this._prompt;
@@ -542,6 +861,10 @@ var Content = class _Content {
542
861
  if (this._toolEvent !== void 0) obj.tool_event = this._toolEvent;
543
862
  return obj;
544
863
  }
864
+ /**
865
+ * Create a Content instance from an API response object.
866
+ * @param json - Scan request contents inner object.
867
+ */
545
868
  static fromJSON(json) {
546
869
  return new _Content({
547
870
  prompt: json.prompt,
@@ -552,6 +875,10 @@ var Content = class _Content {
552
875
  toolEvent: json.tool_event
553
876
  });
554
877
  }
878
+ /**
879
+ * Load content from a JSON file.
880
+ * @param filePath - Path to JSON file containing scan request contents.
881
+ */
555
882
  static fromJSONFile(filePath) {
556
883
  const raw = (0, import_node_fs.readFileSync)(filePath, "utf-8");
557
884
  const parsed = JSON.parse(raw);
@@ -559,6 +886,23 @@ var Content = class _Content {
559
886
  }
560
887
  };
561
888
 
889
+ // src/models/enums.ts
890
+ var Verdict = {
891
+ BENIGN: "benign",
892
+ MALICIOUS: "malicious",
893
+ UNKNOWN: "unknown"
894
+ };
895
+ var Action = {
896
+ ALLOW: "allow",
897
+ BLOCK: "block",
898
+ ALERT: "alert"
899
+ };
900
+ var Category = {
901
+ BENIGN: "benign",
902
+ MALICIOUS: "malicious",
903
+ UNKNOWN: "unknown"
904
+ };
905
+
562
906
  // src/models/ai-profile.ts
563
907
  var import_zod = require("zod");
564
908
  var AiProfileSchema = import_zod.z.object({
@@ -904,13 +1248,1402 @@ var DeleteTopicConflictSchema = import_zod16.z.object({
904
1248
  )
905
1249
  }).passthrough();
906
1250
 
907
- // src/models/oauth-token.ts
1251
+ // src/models/model-security-enums.ts
1252
+ var ErrorCodes = {
1253
+ UNKNOWN_ERROR: "UNKNOWN_ERROR",
1254
+ SCAN_ERROR: "SCAN_ERROR",
1255
+ INVALID_RESPONSE: "INVALID_RESPONSE",
1256
+ ACCESS_DENIED: "ACCESS_DENIED",
1257
+ MISSING_CREDENTIALS: "MISSING_CREDENTIALS",
1258
+ NO_SUCH_KEY: "NO_SUCH_KEY",
1259
+ NO_SUCH_BUCKET: "NO_SUCH_BUCKET",
1260
+ INVALID_BUCKET_NAME: "INVALID_BUCKET_NAME",
1261
+ INTERNAL_ERROR: "INTERNAL_ERROR",
1262
+ SERVICE_UNAVAILABLE: "SERVICE_UNAVAILABLE",
1263
+ INVALID_OBJECT_STATE: "INVALID_OBJECT_STATE",
1264
+ UNKNOWN_REMOTE_SERVICE_ERROR: "UNKNOWN_REMOTE_SERVICE_ERROR",
1265
+ UNSUPPORTED_REMOTE_STORAGE: "UNSUPPORTED_REMOTE_STORAGE",
1266
+ MISSING_ARTIFACTS: "MISSING_ARTIFACTS",
1267
+ WORKER_ERROR: "WORKER_ERROR",
1268
+ POLICY_EVAL_ERROR: "POLICY_EVAL_ERROR"
1269
+ };
1270
+ var EvalOutcome = {
1271
+ PENDING: "PENDING",
1272
+ ALLOWED: "ALLOWED",
1273
+ BLOCKED: "BLOCKED",
1274
+ ERROR: "ERROR"
1275
+ };
1276
+ var FileScanResult = {
1277
+ SKIPPED: "SKIPPED",
1278
+ SUCCESS: "SUCCESS",
1279
+ ERROR: "ERROR",
1280
+ FAILED: "FAILED"
1281
+ };
1282
+ var FileType = {
1283
+ DIRECTORY: "DIRECTORY",
1284
+ FILE: "FILE"
1285
+ };
1286
+ var ModelScanStatus = {
1287
+ SCANNED: "SCANNED",
1288
+ SKIPPED: "SKIPPED",
1289
+ ERROR: "ERROR"
1290
+ };
1291
+ var RuleEvaluationResult = {
1292
+ PASSED: "PASSED",
1293
+ FAILED: "FAILED",
1294
+ ERROR: "ERROR"
1295
+ };
1296
+ var RuleState = {
1297
+ DISABLED: "DISABLED",
1298
+ ALLOWING: "ALLOWING",
1299
+ BLOCKING: "BLOCKING"
1300
+ };
1301
+ var ScanOrigin = {
1302
+ MODEL_SECURITY_SDK: "MODEL_SECURITY_SDK",
1303
+ HUGGING_FACE: "HUGGING_FACE"
1304
+ };
1305
+ var SortByDateField = {
1306
+ CREATED_AT: "created_at",
1307
+ UPDATED_AT: "updated_at"
1308
+ };
1309
+ var SortByFileField = {
1310
+ PATH: "path",
1311
+ TYPE: "type"
1312
+ };
1313
+ var SortDirection = {
1314
+ ASC: "asc",
1315
+ DESC: "desc"
1316
+ };
1317
+ var SourceType = {
1318
+ LOCAL: "LOCAL",
1319
+ HUGGING_FACE: "HUGGING_FACE",
1320
+ S3: "S3",
1321
+ GCS: "GCS",
1322
+ AZURE: "AZURE",
1323
+ ARTIFACTORY: "ARTIFACTORY",
1324
+ GITLAB: "GITLAB",
1325
+ ALL: "ALL"
1326
+ };
1327
+ var ThreatCategory = {
1328
+ PAIT_ARV_100: "PAIT-ARV-100",
1329
+ PAIT_GGUF_100: "PAIT-GGUF-100",
1330
+ PAIT_GGUF_101: "PAIT-GGUF-101",
1331
+ PAIT_KERAS_100: "PAIT-KERAS-100",
1332
+ PAIT_KERAS_101: "PAIT-KERAS-101",
1333
+ PAIT_KERAS_102: "PAIT-KERAS-102",
1334
+ PAIT_JOBLIB_100: "PAIT-JOBLIB-100",
1335
+ PAIT_JOBLIB_101: "PAIT-JOBLIB-101",
1336
+ PAIT_PKL_100: "PAIT-PKL-100",
1337
+ PAIT_PKL_101: "PAIT-PKL-101",
1338
+ PAIT_PYTCH_100: "PAIT-PYTCH-100",
1339
+ PAIT_PYTCH_101: "PAIT-PYTCH-101",
1340
+ PAIT_EXDIR_100: "PAIT-EXDIR-100",
1341
+ PAIT_EXDIR_101: "PAIT-EXDIR-101",
1342
+ PAIT_ONNX_200: "PAIT-ONNX-200",
1343
+ PAIT_TF_200: "PAIT-TF-200",
1344
+ PAIT_LMAFL_300: "PAIT-LMAFL-300",
1345
+ PAIT_LITERT_300: "PAIT-LITERT-300",
1346
+ PAIT_LITERT_301: "PAIT-LITERT-301",
1347
+ PAIT_LITERT_302: "PAIT-LITERT-302",
1348
+ PAIT_KERAS_300: "PAIT-KERAS-300",
1349
+ PAIT_KERAS_301: "PAIT-KERAS-301",
1350
+ PAIT_TCHST_300: "PAIT-TCHST-300",
1351
+ PAIT_TCHST_301: "PAIT-TCHST-301",
1352
+ PAIT_TF_300: "PAIT-TF-300",
1353
+ PAIT_TF_301: "PAIT-TF-301",
1354
+ PAIT_TF_302: "PAIT-TF-302",
1355
+ PAIT_TMT_300: "PAIT-TMT-300",
1356
+ PAIT_TMT_301: "PAIT-TMT-301",
1357
+ UNAPPROVED_FORMATS: "UNAPPROVED_FORMATS"
1358
+ };
1359
+ var ModelSecurityGroupState = {
1360
+ PENDING: "PENDING",
1361
+ ACTIVE: "ACTIVE"
1362
+ };
1363
+ var RuleType = {
1364
+ METADATA: "METADATA",
1365
+ ARTIFACT: "ARTIFACT"
1366
+ };
1367
+ var RuleEditableFieldType = {
1368
+ SELECT: "SELECT",
1369
+ LIST: "LIST"
1370
+ };
1371
+ var RuleFieldValueKey = {
1372
+ APPROVED_FORMATS: "approved_formats",
1373
+ APPROVED_LOCATIONS: "approved_locations",
1374
+ APPROVED_LICENSES: "approved_licenses",
1375
+ DENY_ORGS: "deny_orgs",
1376
+ DENIED_ORG_MODELS: "denied_org_models",
1377
+ APPROVED_ORG_MODELS: "approved_org_models"
1378
+ };
1379
+
1380
+ // src/models/model-security.ts
908
1381
  var import_zod17 = require("zod");
909
- var OAuthTokenResponseSchema = import_zod17.z.object({
910
- access_token: import_zod17.z.string(),
911
- token_type: import_zod17.z.string().optional(),
912
- expires_in: import_zod17.z.number(),
913
- scope: import_zod17.z.string().optional()
1382
+ var ModelSecurityPaginationSchema = import_zod17.z.object({
1383
+ total_items: import_zod17.z.number().int().nullable().optional()
1384
+ }).passthrough();
1385
+ var LabelSchema = import_zod17.z.object({
1386
+ key: import_zod17.z.string(),
1387
+ value: import_zod17.z.string()
1388
+ });
1389
+ var LabelsCreateRequestSchema = import_zod17.z.object({
1390
+ labels: import_zod17.z.array(LabelSchema)
1391
+ });
1392
+ var LabelsResponseSchema = import_zod17.z.object({}).passthrough();
1393
+ var LabelKeyListSchema = import_zod17.z.object({
1394
+ pagination: ModelSecurityPaginationSchema,
1395
+ keys: import_zod17.z.array(import_zod17.z.string())
1396
+ }).passthrough();
1397
+ var LabelValueListSchema = import_zod17.z.object({
1398
+ pagination: ModelSecurityPaginationSchema,
1399
+ values: import_zod17.z.array(import_zod17.z.string())
1400
+ }).passthrough();
1401
+ var EvalSummarySchema = import_zod17.z.object({
1402
+ rules_failed: import_zod17.z.number().int().optional().default(0),
1403
+ rules_passed: import_zod17.z.number().int().optional().default(0),
1404
+ total_rules: import_zod17.z.number().int().optional().default(0)
1405
+ }).passthrough();
1406
+ var ModelScanIssueSchema = import_zod17.z.object({
1407
+ description: import_zod17.z.string(),
1408
+ source: import_zod17.z.string(),
1409
+ threat: import_zod17.z.string().nullable().optional(),
1410
+ module: import_zod17.z.string().nullable().optional(),
1411
+ operator: import_zod17.z.string().nullable().optional()
1412
+ }).passthrough();
1413
+ var FileScanDataSchema = import_zod17.z.object({
1414
+ file_path: import_zod17.z.string(),
1415
+ modelscan_status: import_zod17.z.string(),
1416
+ blob_id: import_zod17.z.string(),
1417
+ error_message: import_zod17.z.string().nullable().optional(),
1418
+ formats: import_zod17.z.array(import_zod17.z.string()).nullable().optional(),
1419
+ issues_detected: import_zod17.z.array(ModelScanIssueSchema).nullable().optional()
1420
+ }).passthrough();
1421
+ var ScanDetailsSchema = import_zod17.z.object({
1422
+ scanner_version: import_zod17.z.string(),
1423
+ time_started: import_zod17.z.string(),
1424
+ files: import_zod17.z.array(FileScanDataSchema),
1425
+ total_files_scanned: import_zod17.z.number().int(),
1426
+ total_files_skipped: import_zod17.z.number().int(),
1427
+ model_formats: import_zod17.z.array(import_zod17.z.string()),
1428
+ model_size_bytes: import_zod17.z.number().int(),
1429
+ scan_duration_ms: import_zod17.z.number().int(),
1430
+ error_code: import_zod17.z.string().nullable().optional(),
1431
+ error_message: import_zod17.z.string().nullable().optional()
1432
+ });
1433
+ var ScanCreateRequestSchema = import_zod17.z.object({
1434
+ model_uri: import_zod17.z.string(),
1435
+ security_group_uuid: import_zod17.z.string(),
1436
+ scan_origin: import_zod17.z.string(),
1437
+ allow_patterns: import_zod17.z.array(import_zod17.z.string()).nullable().optional(),
1438
+ ignore_patterns: import_zod17.z.array(import_zod17.z.string()).nullable().optional(),
1439
+ labels: import_zod17.z.array(LabelSchema).nullable().optional(),
1440
+ model_author: import_zod17.z.string().nullable().optional(),
1441
+ model_name: import_zod17.z.string().nullable().optional(),
1442
+ model_version: import_zod17.z.string().nullable().optional(),
1443
+ scan_details: ScanDetailsSchema.nullable().optional()
1444
+ });
1445
+ var ScanBaseResponseSchema = import_zod17.z.object({
1446
+ uuid: import_zod17.z.string(),
1447
+ tsg_id: import_zod17.z.string(),
1448
+ created_at: import_zod17.z.string(),
1449
+ updated_at: import_zod17.z.string(),
1450
+ model_uri: import_zod17.z.string(),
1451
+ owner: import_zod17.z.string(),
1452
+ scan_origin: import_zod17.z.string(),
1453
+ security_group_uuid: import_zod17.z.string(),
1454
+ security_group_name: import_zod17.z.string(),
1455
+ model_version_uuid: import_zod17.z.string(),
1456
+ eval_outcome: import_zod17.z.string(),
1457
+ source_type: import_zod17.z.string(),
1458
+ created_by: import_zod17.z.string().nullable().optional(),
1459
+ enabled_rule_count_snapshot: import_zod17.z.number().int().nullable().optional(),
1460
+ error_code: import_zod17.z.string().nullable().optional(),
1461
+ error_message: import_zod17.z.string().nullable().optional(),
1462
+ eval_summary: EvalSummarySchema.nullable().optional(),
1463
+ labels: import_zod17.z.array(LabelSchema).optional(),
1464
+ model_formats: import_zod17.z.array(import_zod17.z.string()).nullable().optional(),
1465
+ scanner_version: import_zod17.z.string().nullable().optional(),
1466
+ time_started: import_zod17.z.string().nullable().optional(),
1467
+ total_files_scanned: import_zod17.z.number().int().nullable().optional(),
1468
+ total_files_skipped: import_zod17.z.number().int().nullable().optional()
1469
+ }).passthrough();
1470
+ var ScanListSchema = import_zod17.z.object({
1471
+ pagination: ModelSecurityPaginationSchema,
1472
+ scans: import_zod17.z.array(ScanBaseResponseSchema)
1473
+ }).passthrough();
1474
+ var FileResponseSchema = import_zod17.z.object({
1475
+ uuid: import_zod17.z.string(),
1476
+ tsg_id: import_zod17.z.string(),
1477
+ created_at: import_zod17.z.string(),
1478
+ updated_at: import_zod17.z.string(),
1479
+ path: import_zod17.z.string(),
1480
+ parent_path: import_zod17.z.string(),
1481
+ type: import_zod17.z.string(),
1482
+ result: import_zod17.z.string(),
1483
+ model_version_uuid: import_zod17.z.string(),
1484
+ blob_id: import_zod17.z.string().nullable().optional(),
1485
+ formats: import_zod17.z.array(import_zod17.z.string()).nullable().optional(),
1486
+ scan_uuid: import_zod17.z.string().nullable().optional()
1487
+ }).passthrough();
1488
+ var FileListSchema = import_zod17.z.object({
1489
+ pagination: ModelSecurityPaginationSchema,
1490
+ files: import_zod17.z.array(FileResponseSchema)
1491
+ }).passthrough();
1492
+ var RuleEvaluationResponseSchema = import_zod17.z.object({
1493
+ uuid: import_zod17.z.string(),
1494
+ tsg_id: import_zod17.z.string(),
1495
+ created_at: import_zod17.z.string(),
1496
+ updated_at: import_zod17.z.string(),
1497
+ result: import_zod17.z.string(),
1498
+ violation_count: import_zod17.z.number().int(),
1499
+ rule_instance_uuid: import_zod17.z.string(),
1500
+ scan_uuid: import_zod17.z.string(),
1501
+ rule_name: import_zod17.z.string(),
1502
+ rule_description: import_zod17.z.string(),
1503
+ rule_instance_state: import_zod17.z.string()
1504
+ }).passthrough();
1505
+ var RuleEvaluationListSchema = import_zod17.z.object({
1506
+ pagination: ModelSecurityPaginationSchema,
1507
+ evaluations: import_zod17.z.array(RuleEvaluationResponseSchema)
1508
+ }).passthrough();
1509
+ var ViolationResponseSchema = import_zod17.z.object({
1510
+ uuid: import_zod17.z.string(),
1511
+ tsg_id: import_zod17.z.string(),
1512
+ created_at: import_zod17.z.string(),
1513
+ updated_at: import_zod17.z.string(),
1514
+ description: import_zod17.z.string(),
1515
+ rule_instance_uuid: import_zod17.z.string(),
1516
+ rule_name: import_zod17.z.string(),
1517
+ rule_description: import_zod17.z.string(),
1518
+ rule_instance_state: import_zod17.z.string(),
1519
+ file: import_zod17.z.string().nullable().optional(),
1520
+ hash: import_zod17.z.string().nullable().optional(),
1521
+ module: import_zod17.z.string().nullable().optional(),
1522
+ operator: import_zod17.z.string().nullable().optional(),
1523
+ threat: import_zod17.z.string().nullable().optional(),
1524
+ threat_description: import_zod17.z.string().nullable().optional()
1525
+ }).passthrough();
1526
+ var ViolationListSchema = import_zod17.z.object({
1527
+ pagination: ModelSecurityPaginationSchema,
1528
+ violations: import_zod17.z.array(ViolationResponseSchema)
1529
+ }).passthrough();
1530
+ var RuleEditableFieldDropdownSchema = import_zod17.z.object({
1531
+ value: import_zod17.z.string(),
1532
+ label: import_zod17.z.string()
1533
+ }).passthrough();
1534
+ var RuleEditableFieldSchema = import_zod17.z.object({
1535
+ attribute_name: import_zod17.z.string(),
1536
+ type: import_zod17.z.string(),
1537
+ display_name: import_zod17.z.string(),
1538
+ display_type: import_zod17.z.string(),
1539
+ description: import_zod17.z.string().nullable().optional(),
1540
+ dropdown_values: import_zod17.z.array(RuleEditableFieldDropdownSchema).nullable().optional()
1541
+ }).passthrough();
1542
+ var RuleRemediationSchema = import_zod17.z.object({
1543
+ description: import_zod17.z.string(),
1544
+ steps: import_zod17.z.array(import_zod17.z.string()),
1545
+ url: import_zod17.z.string()
1546
+ }).passthrough();
1547
+ var RuleConfigurationSchema = import_zod17.z.object({
1548
+ field_values: import_zod17.z.record(import_zod17.z.unknown()).optional(),
1549
+ state: import_zod17.z.string().nullable().optional()
1550
+ }).passthrough();
1551
+ var ModelSecurityRuleResponseSchema = import_zod17.z.object({
1552
+ uuid: import_zod17.z.string(),
1553
+ name: import_zod17.z.string(),
1554
+ description: import_zod17.z.string(),
1555
+ rule_type: import_zod17.z.string(),
1556
+ compatible_sources: import_zod17.z.array(import_zod17.z.string()),
1557
+ default_state: import_zod17.z.string(),
1558
+ remediation: RuleRemediationSchema,
1559
+ editable_fields: import_zod17.z.array(RuleEditableFieldSchema),
1560
+ constant_values: import_zod17.z.record(import_zod17.z.unknown()),
1561
+ default_values: import_zod17.z.record(import_zod17.z.unknown())
1562
+ }).passthrough();
1563
+ var ListModelSecurityRulesResponseSchema = import_zod17.z.object({
1564
+ pagination: ModelSecurityPaginationSchema,
1565
+ rules: import_zod17.z.array(ModelSecurityRuleResponseSchema)
1566
+ }).passthrough();
1567
+ var ModelSecurityRuleInstanceResponseSchema = import_zod17.z.object({
1568
+ uuid: import_zod17.z.string(),
1569
+ tsg_id: import_zod17.z.string(),
1570
+ created_at: import_zod17.z.string(),
1571
+ updated_at: import_zod17.z.string(),
1572
+ security_group_uuid: import_zod17.z.string(),
1573
+ security_rule_uuid: import_zod17.z.string(),
1574
+ state: import_zod17.z.string(),
1575
+ rule: ModelSecurityRuleResponseSchema,
1576
+ field_values: import_zod17.z.record(import_zod17.z.unknown()).optional()
1577
+ }).passthrough();
1578
+ var ModelSecurityRuleInstanceUpdateRequestSchema = import_zod17.z.object({
1579
+ security_group_uuid: import_zod17.z.string(),
1580
+ state: import_zod17.z.string().nullable().optional(),
1581
+ field_values: import_zod17.z.record(import_zod17.z.unknown()).nullable().optional()
1582
+ });
1583
+ var ListModelSecurityRuleInstancesResponseSchema = import_zod17.z.object({
1584
+ pagination: ModelSecurityPaginationSchema,
1585
+ rule_instances: import_zod17.z.array(ModelSecurityRuleInstanceResponseSchema)
1586
+ }).passthrough();
1587
+ var ModelSecurityGroupCreateRequestSchema = import_zod17.z.object({
1588
+ name: import_zod17.z.string(),
1589
+ source_type: import_zod17.z.string(),
1590
+ description: import_zod17.z.string().optional().default(""),
1591
+ rule_configurations: import_zod17.z.record(RuleConfigurationSchema).optional()
1592
+ });
1593
+ var ModelSecurityGroupResponseSchema = import_zod17.z.object({
1594
+ uuid: import_zod17.z.string(),
1595
+ tsg_id: import_zod17.z.string(),
1596
+ created_at: import_zod17.z.string(),
1597
+ updated_at: import_zod17.z.string(),
1598
+ name: import_zod17.z.string(),
1599
+ description: import_zod17.z.string(),
1600
+ source_type: import_zod17.z.string(),
1601
+ state: import_zod17.z.string(),
1602
+ is_tombstone: import_zod17.z.boolean()
1603
+ }).passthrough();
1604
+ var ModelSecurityGroupUpdateRequestSchema = import_zod17.z.object({
1605
+ name: import_zod17.z.string().nullable().optional(),
1606
+ description: import_zod17.z.string().nullable().optional()
1607
+ });
1608
+ var ListModelSecurityGroupsResponseSchema = import_zod17.z.object({
1609
+ pagination: ModelSecurityPaginationSchema,
1610
+ security_groups: import_zod17.z.array(ModelSecurityGroupResponseSchema)
1611
+ }).passthrough();
1612
+ var PyPIAuthResponseSchema = import_zod17.z.object({
1613
+ url: import_zod17.z.string(),
1614
+ expires_at: import_zod17.z.string()
1615
+ }).passthrough();
1616
+
1617
+ // src/models/red-team-enums.ts
1618
+ var ApiEndpointType = {
1619
+ PUBLIC: "PUBLIC",
1620
+ PRIVATE: "PRIVATE",
1621
+ NETWORK_BROKER: "NETWORK_BROKER"
1622
+ };
1623
+ var AttackStatus = {
1624
+ INIT: "INIT",
1625
+ ATTACK: "ATTACK",
1626
+ DETECTION: "DETECTION",
1627
+ REPORT: "REPORT",
1628
+ COMPLETED: "COMPLETED",
1629
+ FAILED: "FAILED"
1630
+ };
1631
+ var AttackType = {
1632
+ NORMAL: "NORMAL",
1633
+ CUSTOM: "CUSTOM"
1634
+ };
1635
+ var AuthType = {
1636
+ OAUTH: "OAUTH",
1637
+ ACCESS_TOKEN: "ACCESS_TOKEN"
1638
+ };
1639
+ var BrandSubCategory = {
1640
+ COMPETITOR_ENDORSEMENTS: "COMPETITOR_ENDORSEMENTS",
1641
+ BRAND_TARNISHING_SELF_CRITICISM: "BRAND_TARNISHING_SELF_CRITICISM",
1642
+ DISCRIMINATING_CLAIMS: "DISCRIMINATING_CLAIMS",
1643
+ POLITICAL_ENDORSEMENTS: "POLITICAL_ENDORSEMENTS"
1644
+ };
1645
+ var ComplianceSubCategory = {
1646
+ OWASP: "OWASP",
1647
+ MITRE_ATLAS: "MITRE_ATLAS",
1648
+ NIST: "NIST",
1649
+ DASF_V2: "DASF_V2"
1650
+ };
1651
+ var CountedQuotaEnum = {
1652
+ HELD: "HELD",
1653
+ COUNTED: "COUNTED",
1654
+ NOT_COUNTED: "NOT_COUNTED"
1655
+ };
1656
+ var DateRangeFilter = {
1657
+ LAST_7_DAYS: "LAST_7_DAYS",
1658
+ LAST_15_DAYS: "LAST_15_DAYS",
1659
+ LAST_30_DAYS: "LAST_30_DAYS",
1660
+ ALL: "ALL"
1661
+ };
1662
+ var ErrorSource = {
1663
+ TARGET: "TARGET",
1664
+ JOB: "JOB",
1665
+ SYSTEM: "SYSTEM",
1666
+ VALIDATION: "VALIDATION",
1667
+ TARGET_PROFILING: "TARGET_PROFILING"
1668
+ };
1669
+ var RedTeamErrorType = {
1670
+ CONTENT_FILTER: "CONTENT_FILTER",
1671
+ RATE_LIMIT: "RATE_LIMIT",
1672
+ AUTHENTICATION: "AUTHENTICATION",
1673
+ NETWORK: "NETWORK",
1674
+ VALIDATION: "VALIDATION",
1675
+ NETWORK_CHANNEL: "NETWORK_CHANNEL",
1676
+ UNKNOWN: "UNKNOWN"
1677
+ };
1678
+ var FileFormat = {
1679
+ CSV: "CSV",
1680
+ JSON: "JSON",
1681
+ ALL: "ALL"
1682
+ };
1683
+ var GoalType = {
1684
+ BASE: "BASE",
1685
+ TOOL_MISUSE: "TOOL_MISUSE",
1686
+ GOAL_MANIPULATION: "GOAL_MANIPULATION"
1687
+ };
1688
+ var GoalTypeQueryParam = {
1689
+ AGENT: "AGENT",
1690
+ HUMAN_AUGMENTED: "HUMAN_AUGMENTED"
1691
+ };
1692
+ var GuardrailAction = {
1693
+ ALLOW: "ALLOW",
1694
+ BLOCK: "BLOCK"
1695
+ };
1696
+ var JobStatus = {
1697
+ INIT: "INIT",
1698
+ QUEUED: "QUEUED",
1699
+ RUNNING: "RUNNING",
1700
+ COMPLETED: "COMPLETED",
1701
+ PARTIALLY_COMPLETE: "PARTIALLY_COMPLETE",
1702
+ FAILED: "FAILED",
1703
+ ABORTED: "ABORTED"
1704
+ };
1705
+ var JobStatusFilter = {
1706
+ QUEUED: "QUEUED",
1707
+ RUNNING: "RUNNING",
1708
+ COMPLETED: "COMPLETED",
1709
+ PARTIALLY_COMPLETE: "PARTIALLY_COMPLETE",
1710
+ FAILED: "FAILED",
1711
+ ABORTED: "ABORTED"
1712
+ };
1713
+ var JobType = {
1714
+ STATIC: "STATIC",
1715
+ DYNAMIC: "DYNAMIC",
1716
+ CUSTOM: "CUSTOM"
1717
+ };
1718
+ var PolicyType = {
1719
+ PROMPT_INJECTION: "PROMPT_INJECTION",
1720
+ TOXIC_CONTENT: "TOXIC_CONTENT",
1721
+ CUSTOM_TOPIC_GUARDRAILS: "CUSTOM_TOPIC_GUARDRAILS",
1722
+ MALICIOUS_CODE_DETECTION: "MALICIOUS_CODE_DETECTION",
1723
+ MALICIOUS_URL_DETECTION: "MALICIOUS_URL_DETECTION",
1724
+ SENSITIVE_DATA_PROTECTION: "SENSITIVE_DATA_PROTECTION"
1725
+ };
1726
+ var ProfilingStatus = {
1727
+ INIT: "INIT",
1728
+ QUEUED: "QUEUED",
1729
+ IN_PROGRESS: "IN_PROGRESS",
1730
+ COMPLETED: "COMPLETED",
1731
+ FAILED: "FAILED"
1732
+ };
1733
+ var RedTeamCategory = {
1734
+ SECURITY: "SECURITY",
1735
+ SAFETY: "SAFETY",
1736
+ COMPLIANCE: "COMPLIANCE",
1737
+ BRAND: "BRAND"
1738
+ };
1739
+ var ResponseMode = {
1740
+ REST: "REST",
1741
+ STREAMING: "STREAMING"
1742
+ };
1743
+ var RiskRating = {
1744
+ LOW: "LOW",
1745
+ MEDIUM: "MEDIUM",
1746
+ HIGH: "HIGH",
1747
+ CRITICAL: "CRITICAL"
1748
+ };
1749
+ var SafetySubCategory = {
1750
+ BIAS: "BIAS",
1751
+ CBRN: "CBRN",
1752
+ CYBERCRIME: "CYBERCRIME",
1753
+ DRUGS: "DRUGS",
1754
+ HATE_TOXIC_ABUSE: "HATE_TOXIC_ABUSE",
1755
+ NON_VIOLENT_CRIMES: "NON_VIOLENT_CRIMES",
1756
+ POLITICAL: "POLITICAL",
1757
+ SELF_HARM: "SELF_HARM",
1758
+ SEXUAL: "SEXUAL",
1759
+ VIOLENT_CRIMES_WEAPONS: "VIOLENT_CRIMES_WEAPONS"
1760
+ };
1761
+ var SecuritySubCategory = {
1762
+ ADVERSARIAL_SUFFIX: "ADVERSARIAL_SUFFIX",
1763
+ EVASION: "EVASION",
1764
+ INDIRECT_PROMPT_INJECTION: "INDIRECT_PROMPT_INJECTION",
1765
+ JAILBREAK: "JAILBREAK",
1766
+ MULTI_TURN: "MULTI_TURN",
1767
+ PROMPT_INJECTION: "PROMPT_INJECTION",
1768
+ REMOTE_CODE_EXECUTION: "REMOTE_CODE_EXECUTION",
1769
+ SYSTEM_PROMPT_LEAK: "SYSTEM_PROMPT_LEAK",
1770
+ TOOL_LEAK: "TOOL_LEAK",
1771
+ MALWARE_GENERATION: "MALWARE_GENERATION"
1772
+ };
1773
+ var SeverityFilter = {
1774
+ LOW: "LOW",
1775
+ MEDIUM: "MEDIUM",
1776
+ HIGH: "HIGH",
1777
+ CRITICAL: "CRITICAL"
1778
+ };
1779
+ var StatusQueryParam = {
1780
+ SUCCESSFUL: "SUCCESSFUL",
1781
+ FAILED: "FAILED"
1782
+ };
1783
+ var StreamType = {
1784
+ NORMAL: "NORMAL",
1785
+ ADVERSARIAL: "ADVERSARIAL"
1786
+ };
1787
+ var TargetConnectionType = {
1788
+ DATABRICKS: "DATABRICKS",
1789
+ BEDROCK: "BEDROCK",
1790
+ OPENAI: "OPENAI",
1791
+ HUGGING_FACE: "HUGGING_FACE",
1792
+ CUSTOM: "CUSTOM",
1793
+ REST: "REST",
1794
+ STREAMING: "STREAMING"
1795
+ };
1796
+ var TargetStatus = {
1797
+ DRAFT: "DRAFT",
1798
+ VALIDATING: "VALIDATING",
1799
+ VALIDATED: "VALIDATED",
1800
+ ACTIVE: "ACTIVE",
1801
+ INACTIVE: "INACTIVE",
1802
+ FAILED: "FAILED",
1803
+ PENDING_AUTH: "PENDING_AUTH"
1804
+ };
1805
+ var TargetType = {
1806
+ APPLICATION: "APPLICATION",
1807
+ AGENT: "AGENT",
1808
+ MODEL: "MODEL"
1809
+ };
1810
+
1811
+ // src/models/red-team.ts
1812
+ var import_zod18 = require("zod");
1813
+ var RedTeamPaginationSchema = import_zod18.z.object({ total_items: import_zod18.z.number().int().nullable().optional() }).passthrough();
1814
+ var CountByNameSchema = import_zod18.z.object({ name: import_zod18.z.string(), count: import_zod18.z.number().int() });
1815
+ var ValidationErrorSchema = import_zod18.z.object({
1816
+ loc: import_zod18.z.array(import_zod18.z.union([import_zod18.z.string(), import_zod18.z.number()])),
1817
+ msg: import_zod18.z.string(),
1818
+ type: import_zod18.z.string()
1819
+ });
1820
+ var HTTPValidationErrorSchema = import_zod18.z.object({ detail: import_zod18.z.array(ValidationErrorSchema).optional() }).passthrough();
1821
+ var TargetBackgroundSchema = import_zod18.z.object({
1822
+ industry: import_zod18.z.unknown().optional(),
1823
+ use_case: import_zod18.z.unknown().optional(),
1824
+ competitors: import_zod18.z.unknown().optional()
1825
+ }).passthrough();
1826
+ var TargetAdditionalContextSchema = import_zod18.z.object({
1827
+ base_model: import_zod18.z.unknown().optional(),
1828
+ core_architecture: import_zod18.z.unknown().optional(),
1829
+ system_prompt: import_zod18.z.unknown().optional(),
1830
+ languages_supported: import_zod18.z.unknown().optional(),
1831
+ banned_keywords: import_zod18.z.unknown().optional(),
1832
+ tools_accessible: import_zod18.z.unknown().optional()
1833
+ }).passthrough();
1834
+ var TargetMetadataSchema = import_zod18.z.object({
1835
+ multi_turn: import_zod18.z.boolean().optional(),
1836
+ multi_turn_error_message: import_zod18.z.unknown().optional(),
1837
+ rate_limit: import_zod18.z.unknown().optional(),
1838
+ rate_limit_enabled: import_zod18.z.boolean().optional(),
1839
+ rate_limit_error_code: import_zod18.z.unknown().optional(),
1840
+ rate_limit_error_json: import_zod18.z.unknown().optional(),
1841
+ rate_limit_error_message: import_zod18.z.unknown().optional(),
1842
+ content_filter_enabled: import_zod18.z.boolean().optional(),
1843
+ content_filter_error_code: import_zod18.z.unknown().optional(),
1844
+ content_filter_error_json: import_zod18.z.unknown().optional(),
1845
+ content_filter_error_message: import_zod18.z.unknown().optional(),
1846
+ probe_message: import_zod18.z.string().optional(),
1847
+ request_timeout: import_zod18.z.number().optional()
1848
+ }).passthrough();
1849
+ var TargetJobRequestSchema = import_zod18.z.object({
1850
+ uuid: import_zod18.z.string(),
1851
+ version: import_zod18.z.number().int().nullable().optional()
1852
+ });
1853
+ var JobTimeRecordSchema = import_zod18.z.object({
1854
+ queued_at: import_zod18.z.string().nullable().optional(),
1855
+ started_at: import_zod18.z.string().nullable().optional(),
1856
+ completed_at: import_zod18.z.string().nullable().optional(),
1857
+ time_taken: import_zod18.z.string().nullable().optional()
1858
+ }).passthrough();
1859
+ var StaticJobMetadataSchema = import_zod18.z.object({
1860
+ categories: import_zod18.z.record(import_zod18.z.unknown()),
1861
+ rate_limit_enabled: import_zod18.z.boolean().optional(),
1862
+ rate_limit: import_zod18.z.number().int().nullable().optional(),
1863
+ rate_limit_error_code: import_zod18.z.number().int().nullable().optional(),
1864
+ rate_limit_error_message: import_zod18.z.string().nullable().optional(),
1865
+ rate_limit_error_json: import_zod18.z.unknown().optional(),
1866
+ content_filter_enabled: import_zod18.z.boolean().optional(),
1867
+ content_filter_error_code: import_zod18.z.number().int().nullable().optional(),
1868
+ content_filter_error_message: import_zod18.z.string().nullable().optional(),
1869
+ content_filter_error_json: import_zod18.z.unknown().optional()
1870
+ }).passthrough();
1871
+ var DynamicJobMetadataSchema = import_zod18.z.object({
1872
+ rate_limit_enabled: import_zod18.z.boolean().optional(),
1873
+ rate_limit: import_zod18.z.number().int().nullable().optional(),
1874
+ rate_limit_error_code: import_zod18.z.number().int().nullable().optional(),
1875
+ rate_limit_error_message: import_zod18.z.string().nullable().optional(),
1876
+ rate_limit_error_json: import_zod18.z.unknown().optional(),
1877
+ content_filter_enabled: import_zod18.z.boolean().optional(),
1878
+ content_filter_error_code: import_zod18.z.number().int().nullable().optional(),
1879
+ content_filter_error_message: import_zod18.z.string().nullable().optional(),
1880
+ content_filter_error_json: import_zod18.z.unknown().optional(),
1881
+ stream_breadth: import_zod18.z.number().int().optional(),
1882
+ stream_depth: import_zod18.z.number().int().optional(),
1883
+ max_tokens: import_zod18.z.number().int().optional(),
1884
+ context_size: import_zod18.z.number().int().optional(),
1885
+ attack_goals: import_zod18.z.array(import_zod18.z.unknown()).optional(),
1886
+ base_model: import_zod18.z.string().nullable().optional(),
1887
+ use_case: import_zod18.z.string().nullable().optional(),
1888
+ system_prompt: import_zod18.z.string().nullable().optional()
1889
+ }).passthrough();
1890
+ var CustomJobMetadataSchema = import_zod18.z.object({
1891
+ custom_prompt_sets: import_zod18.z.array(import_zod18.z.unknown()),
1892
+ rate_limit_enabled: import_zod18.z.boolean().optional(),
1893
+ rate_limit: import_zod18.z.number().int().nullable().optional(),
1894
+ rate_limit_error_code: import_zod18.z.number().int().nullable().optional(),
1895
+ rate_limit_error_message: import_zod18.z.string().nullable().optional(),
1896
+ rate_limit_error_json: import_zod18.z.unknown().optional(),
1897
+ content_filter_enabled: import_zod18.z.boolean().optional(),
1898
+ content_filter_error_code: import_zod18.z.number().int().nullable().optional(),
1899
+ content_filter_error_message: import_zod18.z.string().nullable().optional(),
1900
+ content_filter_error_json: import_zod18.z.unknown().optional()
1901
+ }).passthrough();
1902
+ var JobCreateRequestSchema = import_zod18.z.object({
1903
+ name: import_zod18.z.string(),
1904
+ target: TargetJobRequestSchema,
1905
+ job_type: import_zod18.z.string(),
1906
+ job_metadata: import_zod18.z.union([
1907
+ StaticJobMetadataSchema,
1908
+ DynamicJobMetadataSchema,
1909
+ CustomJobMetadataSchema
1910
+ ]),
1911
+ version: import_zod18.z.number().int().nullable().optional(),
1912
+ extra_info: import_zod18.z.record(import_zod18.z.unknown()).nullable().optional()
1913
+ });
1914
+ var StaticJobReportStatsSchema = import_zod18.z.object({
1915
+ output_completion_percentage: import_zod18.z.number(),
1916
+ partial_report_unlocked: import_zod18.z.boolean().optional(),
1917
+ partial_report_unlocked_at: import_zod18.z.string().nullable().optional(),
1918
+ report_summary: import_zod18.z.string().nullable().optional()
1919
+ }).passthrough();
1920
+ var DynamicJobReportStatsSchema = import_zod18.z.object({
1921
+ total_goals: import_zod18.z.number().int().optional(),
1922
+ total_streams: import_zod18.z.number().int().optional(),
1923
+ total_threats: import_zod18.z.number().int().optional(),
1924
+ goals_achieved: import_zod18.z.number().int().optional(),
1925
+ report_summary: import_zod18.z.string().nullable().optional()
1926
+ }).passthrough();
1927
+ var TargetReferenceSchema = import_zod18.z.object({
1928
+ uuid: import_zod18.z.string(),
1929
+ tsg_id: import_zod18.z.string(),
1930
+ name: import_zod18.z.string(),
1931
+ description: import_zod18.z.string().nullable().optional(),
1932
+ target_type: import_zod18.z.string().nullable().optional(),
1933
+ connection_type: import_zod18.z.string().nullable().optional(),
1934
+ api_endpoint_type: import_zod18.z.string().nullable().optional(),
1935
+ response_mode: import_zod18.z.string().nullable().optional(),
1936
+ session_supported: import_zod18.z.boolean().optional(),
1937
+ extra_info: import_zod18.z.record(import_zod18.z.unknown()).nullable().optional(),
1938
+ status: import_zod18.z.string(),
1939
+ active: import_zod18.z.boolean(),
1940
+ validated: import_zod18.z.boolean(),
1941
+ version: import_zod18.z.number().int().nullable().optional(),
1942
+ secret_version: import_zod18.z.string().nullable().optional(),
1943
+ created_by_user_id: import_zod18.z.string().nullable().optional(),
1944
+ updated_by_user_id: import_zod18.z.string().nullable().optional(),
1945
+ created_at: import_zod18.z.string(),
1946
+ updated_at: import_zod18.z.string(),
1947
+ target_metadata: TargetMetadataSchema.optional(),
1948
+ target_background: TargetBackgroundSchema.nullable().optional(),
1949
+ profiling_status: import_zod18.z.string().nullable().optional(),
1950
+ additional_context: TargetAdditionalContextSchema.nullable().optional()
1951
+ }).passthrough();
1952
+ var JobResponseSchema = import_zod18.z.object({
1953
+ uuid: import_zod18.z.string(),
1954
+ tsg_id: import_zod18.z.string(),
1955
+ name: import_zod18.z.string(),
1956
+ target: TargetReferenceSchema,
1957
+ job_type: import_zod18.z.string(),
1958
+ job_metadata: import_zod18.z.unknown(),
1959
+ version: import_zod18.z.number().int().nullable().optional(),
1960
+ extra_info: import_zod18.z.record(import_zod18.z.unknown()).nullable().optional(),
1961
+ target_id: import_zod18.z.string(),
1962
+ target_type: import_zod18.z.string(),
1963
+ total: import_zod18.z.number().int().nullable().optional(),
1964
+ completed: import_zod18.z.number().int().nullable().optional(),
1965
+ status: import_zod18.z.string().optional(),
1966
+ score: import_zod18.z.number().nullable().optional(),
1967
+ asr: import_zod18.z.number().nullable().optional(),
1968
+ time_record: JobTimeRecordSchema.nullable().optional(),
1969
+ created_at: import_zod18.z.string().nullable().optional(),
1970
+ updated_at: import_zod18.z.string().nullable().optional(),
1971
+ created_by_user_id: import_zod18.z.string().nullable().optional(),
1972
+ report_stats: import_zod18.z.unknown().optional(),
1973
+ metering_quota_uuid: import_zod18.z.string().nullable().optional(),
1974
+ counted_towards_quota: import_zod18.z.string().optional(),
1975
+ invocation_id: import_zod18.z.string().nullable().optional()
1976
+ }).passthrough();
1977
+ var JobListResponseSchema = import_zod18.z.object({
1978
+ pagination: RedTeamPaginationSchema,
1979
+ data: import_zod18.z.array(JobResponseSchema)
1980
+ }).passthrough();
1981
+ var JobAbortResponseSchema = import_zod18.z.object({
1982
+ job_id: import_zod18.z.string(),
1983
+ message: import_zod18.z.string()
1984
+ });
1985
+ var PrerequisiteModelSchema = import_zod18.z.object({
1986
+ id: import_zod18.z.string(),
1987
+ display_name: import_zod18.z.string(),
1988
+ description: import_zod18.z.string()
1989
+ });
1990
+ var SubCategoryModelSchema = import_zod18.z.object({
1991
+ id: import_zod18.z.string(),
1992
+ display_name: import_zod18.z.string(),
1993
+ description: import_zod18.z.string(),
1994
+ preselect: import_zod18.z.boolean().optional(),
1995
+ prerequisites: import_zod18.z.array(PrerequisiteModelSchema).nullable().optional(),
1996
+ active: import_zod18.z.boolean().optional()
1997
+ }).passthrough();
1998
+ var CategoryModelSchema = import_zod18.z.object({
1999
+ id: import_zod18.z.string(),
2000
+ display_name: import_zod18.z.string(),
2001
+ description: import_zod18.z.string(),
2002
+ preselect: import_zod18.z.boolean().optional(),
2003
+ sub_categories: import_zod18.z.array(SubCategoryModelSchema)
2004
+ }).passthrough();
2005
+ var AttackOutputSchema = import_zod18.z.object({
2006
+ uuid: import_zod18.z.string(),
2007
+ tsg_id: import_zod18.z.string(),
2008
+ attack_id: import_zod18.z.string(),
2009
+ job_id: import_zod18.z.string(),
2010
+ target_id: import_zod18.z.string(),
2011
+ output: import_zod18.z.string(),
2012
+ threat: import_zod18.z.boolean().nullable().optional(),
2013
+ marked_safe: import_zod18.z.boolean().nullable().optional()
2014
+ }).passthrough();
2015
+ var AttackMultiTurnOutputSchema = import_zod18.z.object({
2016
+ uuid: import_zod18.z.string(),
2017
+ tsg_id: import_zod18.z.string(),
2018
+ attack_id: import_zod18.z.string(),
2019
+ job_id: import_zod18.z.string(),
2020
+ target_id: import_zod18.z.string(),
2021
+ output: import_zod18.z.string(),
2022
+ prompt: import_zod18.z.string(),
2023
+ turn: import_zod18.z.number().int(),
2024
+ threat: import_zod18.z.boolean().nullable().optional(),
2025
+ marked_safe: import_zod18.z.boolean().nullable().optional(),
2026
+ generation: import_zod18.z.number().int().optional(),
2027
+ multi_turn: import_zod18.z.boolean().optional()
2028
+ }).passthrough();
2029
+ var AttackListItemSchema = import_zod18.z.object({
2030
+ uuid: import_zod18.z.string(),
2031
+ tsg_id: import_zod18.z.string(),
2032
+ job_id: import_zod18.z.string(),
2033
+ target_id: import_zod18.z.string(),
2034
+ prompt: import_zod18.z.string(),
2035
+ prompt_mapping_id: import_zod18.z.string(),
2036
+ prompt_id: import_zod18.z.string(),
2037
+ category: import_zod18.z.string(),
2038
+ sub_category: import_zod18.z.string(),
2039
+ category_display_name: import_zod18.z.string(),
2040
+ sub_category_display_name: import_zod18.z.string(),
2041
+ status: import_zod18.z.string().optional(),
2042
+ marked_safe: import_zod18.z.boolean().nullable().optional(),
2043
+ extra_info: import_zod18.z.record(import_zod18.z.unknown()).optional(),
2044
+ threat: import_zod18.z.boolean().nullable().optional(),
2045
+ attack_type: import_zod18.z.string().optional(),
2046
+ multi_turn: import_zod18.z.boolean().optional(),
2047
+ asr: import_zod18.z.number().nullable().optional(),
2048
+ version: import_zod18.z.number().int().nullable().optional(),
2049
+ severity: import_zod18.z.string().optional()
2050
+ }).passthrough();
2051
+ var AttackListResponseSchema = import_zod18.z.object({
2052
+ pagination: RedTeamPaginationSchema,
2053
+ data: import_zod18.z.array(AttackListItemSchema)
2054
+ }).passthrough();
2055
+ var AttackDetailResponseSchema = import_zod18.z.object({
2056
+ uuid: import_zod18.z.string(),
2057
+ tsg_id: import_zod18.z.string(),
2058
+ job_id: import_zod18.z.string(),
2059
+ target_id: import_zod18.z.string(),
2060
+ prompt: import_zod18.z.string(),
2061
+ prompt_mapping_id: import_zod18.z.string(),
2062
+ prompt_id: import_zod18.z.string(),
2063
+ category: import_zod18.z.string(),
2064
+ sub_category: import_zod18.z.string(),
2065
+ category_display_name: import_zod18.z.string(),
2066
+ sub_category_display_name: import_zod18.z.string(),
2067
+ compliance_frameworks: import_zod18.z.array(import_zod18.z.unknown()),
2068
+ goal: import_zod18.z.string().nullable(),
2069
+ status: import_zod18.z.string().optional(),
2070
+ marked_safe: import_zod18.z.boolean().nullable().optional(),
2071
+ extra_info: import_zod18.z.record(import_zod18.z.unknown()).optional(),
2072
+ threat: import_zod18.z.boolean().nullable().optional(),
2073
+ attack_type: import_zod18.z.string().optional(),
2074
+ multi_turn: import_zod18.z.boolean().optional(),
2075
+ asr: import_zod18.z.number().nullable().optional(),
2076
+ version: import_zod18.z.number().int().nullable().optional(),
2077
+ severity: import_zod18.z.string().optional(),
2078
+ outputs: import_zod18.z.array(AttackOutputSchema).optional()
2079
+ }).passthrough();
2080
+ var AttackMultiTurnDetailResponseSchema = import_zod18.z.object({
2081
+ uuid: import_zod18.z.string(),
2082
+ tsg_id: import_zod18.z.string(),
2083
+ job_id: import_zod18.z.string(),
2084
+ target_id: import_zod18.z.string(),
2085
+ prompt: import_zod18.z.string(),
2086
+ prompt_mapping_id: import_zod18.z.string(),
2087
+ prompt_id: import_zod18.z.string(),
2088
+ category: import_zod18.z.string(),
2089
+ sub_category: import_zod18.z.string(),
2090
+ category_display_name: import_zod18.z.string(),
2091
+ sub_category_display_name: import_zod18.z.string(),
2092
+ compliance_frameworks: import_zod18.z.array(import_zod18.z.unknown()),
2093
+ goal: import_zod18.z.string().nullable(),
2094
+ status: import_zod18.z.string().optional(),
2095
+ marked_safe: import_zod18.z.boolean().nullable().optional(),
2096
+ extra_info: import_zod18.z.record(import_zod18.z.unknown()).optional(),
2097
+ threat: import_zod18.z.boolean().nullable().optional(),
2098
+ attack_type: import_zod18.z.string().optional(),
2099
+ multi_turn: import_zod18.z.boolean().optional(),
2100
+ asr: import_zod18.z.number().nullable().optional(),
2101
+ version: import_zod18.z.number().int().nullable().optional(),
2102
+ severity: import_zod18.z.string().optional(),
2103
+ outputs: import_zod18.z.array(AttackMultiTurnOutputSchema).optional()
2104
+ }).passthrough();
2105
+ var SubCategoryStatsSchema = import_zod18.z.object({
2106
+ id: import_zod18.z.string(),
2107
+ display_name: import_zod18.z.string(),
2108
+ description: import_zod18.z.string(),
2109
+ preselect: import_zod18.z.boolean().optional(),
2110
+ prerequisites: import_zod18.z.array(PrerequisiteModelSchema).nullable().optional(),
2111
+ active: import_zod18.z.boolean().optional(),
2112
+ successful: import_zod18.z.number().int(),
2113
+ failed: import_zod18.z.number().int(),
2114
+ total: import_zod18.z.number().int().optional()
2115
+ }).passthrough();
2116
+ var CategoryReportSchema = import_zod18.z.object({
2117
+ id: import_zod18.z.string(),
2118
+ display_name: import_zod18.z.string(),
2119
+ description: import_zod18.z.string(),
2120
+ preselect: import_zod18.z.boolean().optional(),
2121
+ sub_categories: import_zod18.z.array(SubCategoryStatsSchema),
2122
+ asr: import_zod18.z.number(),
2123
+ total_prompts: import_zod18.z.number().int(),
2124
+ total_attacks: import_zod18.z.number().int(),
2125
+ successful: import_zod18.z.number().int(),
2126
+ failed: import_zod18.z.number().int()
2127
+ }).passthrough();
2128
+ var SeverityStatsSchema = import_zod18.z.object({
2129
+ severity: import_zod18.z.string(),
2130
+ successful: import_zod18.z.number().int().optional(),
2131
+ failed: import_zod18.z.number().int().optional()
2132
+ }).passthrough();
2133
+ var SeverityReportSchema = import_zod18.z.object({
2134
+ stats: import_zod18.z.array(SeverityStatsSchema),
2135
+ successful: import_zod18.z.number().int().optional(),
2136
+ failed: import_zod18.z.number().int().optional(),
2137
+ total_attacks: import_zod18.z.number().int().optional()
2138
+ }).passthrough();
2139
+ var ComplianceTechniqueSchema = import_zod18.z.object({
2140
+ id: import_zod18.z.string(),
2141
+ display_name: import_zod18.z.string(),
2142
+ compliance_id: import_zod18.z.string(),
2143
+ description: import_zod18.z.string(),
2144
+ link: import_zod18.z.string(),
2145
+ version: import_zod18.z.string(),
2146
+ active: import_zod18.z.boolean(),
2147
+ successful: import_zod18.z.number().int().optional(),
2148
+ failed: import_zod18.z.number().int().optional(),
2149
+ total: import_zod18.z.number().int().optional()
2150
+ }).passthrough();
2151
+ var ComplianceReportSchema = import_zod18.z.object({
2152
+ id: import_zod18.z.string(),
2153
+ display_name: import_zod18.z.string(),
2154
+ description: import_zod18.z.string(),
2155
+ active: import_zod18.z.boolean(),
2156
+ version: import_zod18.z.string(),
2157
+ link: import_zod18.z.string(),
2158
+ techniques: import_zod18.z.array(ComplianceTechniqueSchema),
2159
+ score: import_zod18.z.number().int().optional()
2160
+ }).passthrough();
2161
+ var RuntimeSecurityPolicySchema = import_zod18.z.object({
2162
+ policy_id: import_zod18.z.string(),
2163
+ display_name: import_zod18.z.string(),
2164
+ config: import_zod18.z.record(import_zod18.z.unknown())
2165
+ }).passthrough();
2166
+ var StaticJobRemediationSchema = import_zod18.z.object({
2167
+ remediation: import_zod18.z.string(),
2168
+ description: import_zod18.z.string(),
2169
+ mapping_remediation_id: import_zod18.z.string().nullable().optional(),
2170
+ subcategories: import_zod18.z.array(import_zod18.z.string()).nullable().optional(),
2171
+ effectiveness: import_zod18.z.number().int().optional(),
2172
+ ease_of_implementation: import_zod18.z.number().int().optional(),
2173
+ priority: import_zod18.z.number().int().optional(),
2174
+ resource_links: import_zod18.z.array(import_zod18.z.string()).optional(),
2175
+ categories: import_zod18.z.array(import_zod18.z.string()).nullable().optional()
2176
+ }).passthrough();
2177
+ var StaticJobRemediationRecommendationSchema = import_zod18.z.object({
2178
+ runtime_security_policy_configuration: import_zod18.z.array(RuntimeSecurityPolicySchema).nullable().optional(),
2179
+ other_measures: import_zod18.z.array(StaticJobRemediationSchema).optional()
2180
+ }).passthrough();
2181
+ var StaticJobReportSchema = import_zod18.z.object({
2182
+ severity_report: SeverityReportSchema,
2183
+ asr: import_zod18.z.number().nullable().optional(),
2184
+ score: import_zod18.z.number().nullable().optional(),
2185
+ security_report: CategoryReportSchema.nullable().optional(),
2186
+ safety_report: CategoryReportSchema.nullable().optional(),
2187
+ brand_report: CategoryReportSchema.nullable().optional(),
2188
+ compliance_report: import_zod18.z.array(ComplianceReportSchema).nullable().optional(),
2189
+ report_summary: import_zod18.z.string().nullable().optional(),
2190
+ recommendations: StaticJobRemediationRecommendationSchema.nullable().optional()
2191
+ }).passthrough();
2192
+ var DynamicJobReportSchema = import_zod18.z.object({
2193
+ total_goals: import_zod18.z.number().int().optional(),
2194
+ total_streams: import_zod18.z.number().int().optional(),
2195
+ total_threats: import_zod18.z.number().int().optional(),
2196
+ goals_achieved: import_zod18.z.number().int().optional(),
2197
+ report_summary: import_zod18.z.string().nullable().optional(),
2198
+ score: import_zod18.z.number().optional(),
2199
+ asr: import_zod18.z.number().optional()
2200
+ }).passthrough();
2201
+ var RemediationDetailSchema = import_zod18.z.object({
2202
+ remediation: import_zod18.z.string(),
2203
+ description: import_zod18.z.string(),
2204
+ resource_links: import_zod18.z.array(import_zod18.z.string()).optional(),
2205
+ priority_level: import_zod18.z.string().optional(),
2206
+ ease_of_implementation_level: import_zod18.z.string().optional(),
2207
+ effectiveness_level: import_zod18.z.string().optional()
2208
+ }).passthrough();
2209
+ var RemediationResponseSchema = import_zod18.z.object({ remediations: import_zod18.z.array(RemediationDetailSchema).optional() }).passthrough();
2210
+ var RuntimeSecurityProfileResponseSchema = import_zod18.z.object({
2211
+ runtime_security_profile: import_zod18.z.array(RuntimeSecurityPolicySchema).nullable().optional()
2212
+ }).passthrough();
2213
+ var GoalSchema = import_zod18.z.object({
2214
+ goal: import_zod18.z.string(),
2215
+ safe_response: import_zod18.z.string(),
2216
+ jailbroken_response: import_zod18.z.string(),
2217
+ goal_metadata: import_zod18.z.record(import_zod18.z.unknown()).optional(),
2218
+ custom_goal: import_zod18.z.boolean().optional(),
2219
+ goal_type: import_zod18.z.string().optional(),
2220
+ uuid: import_zod18.z.string(),
2221
+ tsg_id: import_zod18.z.string(),
2222
+ job_id: import_zod18.z.string(),
2223
+ goal_to_show: import_zod18.z.string().nullable().optional(),
2224
+ threat: import_zod18.z.boolean().optional(),
2225
+ version: import_zod18.z.number().int().nullable().optional(),
2226
+ extra_info: import_zod18.z.record(import_zod18.z.unknown()).nullable().optional()
2227
+ }).passthrough();
2228
+ var GoalListResponseSchema = import_zod18.z.object({ pagination: RedTeamPaginationSchema, data: import_zod18.z.array(GoalSchema) }).passthrough();
2229
+ var StreamIterationDataSchema = import_zod18.z.object({
2230
+ uuid: import_zod18.z.string(),
2231
+ tsg_id: import_zod18.z.string(),
2232
+ job_id: import_zod18.z.string(),
2233
+ stream_id: import_zod18.z.string(),
2234
+ goal_id: import_zod18.z.string(),
2235
+ iteration: import_zod18.z.number().int(),
2236
+ prompt: import_zod18.z.string(),
2237
+ techniques: import_zod18.z.string(),
2238
+ improvement: import_zod18.z.string(),
2239
+ prompts_objective: import_zod18.z.string(),
2240
+ summary: import_zod18.z.string(),
2241
+ output: import_zod18.z.string().nullable().optional(),
2242
+ score: import_zod18.z.number().int().nullable().optional(),
2243
+ judge_reasoning: import_zod18.z.string().nullable().optional(),
2244
+ threat: import_zod18.z.boolean().optional(),
2245
+ created_at: import_zod18.z.string().nullable().optional(),
2246
+ updated_at: import_zod18.z.string().nullable().optional(),
2247
+ extra_info: import_zod18.z.record(import_zod18.z.unknown()).nullable().optional(),
2248
+ version: import_zod18.z.number().int().nullable().optional()
2249
+ }).passthrough();
2250
+ var StreamDetailResponseSchema = import_zod18.z.object({
2251
+ uuid: import_zod18.z.string(),
2252
+ tsg_id: import_zod18.z.string(),
2253
+ job_id: import_zod18.z.string(),
2254
+ target_id: import_zod18.z.string(),
2255
+ goal_id: import_zod18.z.string(),
2256
+ stream_idx: import_zod18.z.number().int().optional(),
2257
+ iteration: import_zod18.z.number().int().optional(),
2258
+ goal: import_zod18.z.unknown().optional(),
2259
+ marked_safe: import_zod18.z.boolean().optional(),
2260
+ stream_type: import_zod18.z.string().nullable().optional(),
2261
+ threat: import_zod18.z.boolean().optional(),
2262
+ first_threat_iteration: StreamIterationDataSchema.nullable().optional(),
2263
+ created_at: import_zod18.z.string().nullable().optional(),
2264
+ updated_at: import_zod18.z.string().nullable().optional(),
2265
+ extra_info: import_zod18.z.record(import_zod18.z.unknown()).optional(),
2266
+ version: import_zod18.z.number().int().nullable().optional(),
2267
+ iterations: import_zod18.z.array(StreamIterationDataSchema).optional()
2268
+ }).passthrough();
2269
+ var StreamListResponseSchema = import_zod18.z.object({ pagination: RedTeamPaginationSchema, data: import_zod18.z.array(StreamDetailResponseSchema) }).passthrough();
2270
+ var CustomAttackOutputSchema = import_zod18.z.object({
2271
+ uuid: import_zod18.z.string(),
2272
+ tsg_id: import_zod18.z.string(),
2273
+ custom_attack_id: import_zod18.z.string(),
2274
+ job_id: import_zod18.z.string(),
2275
+ target_id: import_zod18.z.string(),
2276
+ output: import_zod18.z.string(),
2277
+ threat: import_zod18.z.boolean().nullable().optional(),
2278
+ marked_safe: import_zod18.z.boolean().nullable().optional()
2279
+ }).passthrough();
2280
+ var PropertyAssignmentSchema = import_zod18.z.object({
2281
+ name: import_zod18.z.string(),
2282
+ value: import_zod18.z.string()
2283
+ });
2284
+ var PropertyValueStatisticSchema = import_zod18.z.object({
2285
+ value: import_zod18.z.string(),
2286
+ successful_attack_count: import_zod18.z.number().int(),
2287
+ total_attack_count: import_zod18.z.number().int(),
2288
+ success_rate: import_zod18.z.number()
2289
+ });
2290
+ var PropertyStatisticSchema = import_zod18.z.object({
2291
+ property_name: import_zod18.z.string(),
2292
+ values: import_zod18.z.array(PropertyValueStatisticSchema)
2293
+ });
2294
+ var PromptSetSummarySchema = import_zod18.z.object({
2295
+ prompt_set_id: import_zod18.z.string(),
2296
+ prompt_set_name: import_zod18.z.string(),
2297
+ total_prompts: import_zod18.z.number().int(),
2298
+ total_attacks: import_zod18.z.number().int(),
2299
+ total_threats: import_zod18.z.number().int(),
2300
+ failed_attacks: import_zod18.z.number().int(),
2301
+ threat_rate: import_zod18.z.number(),
2302
+ property_names: import_zod18.z.array(import_zod18.z.string()).optional(),
2303
+ property_statistics: import_zod18.z.array(PropertyStatisticSchema).optional()
2304
+ }).passthrough();
2305
+ var CustomAttackReportResponseSchema = import_zod18.z.object({
2306
+ total_prompts: import_zod18.z.number().int(),
2307
+ total_attacks: import_zod18.z.number().int(),
2308
+ total_threats: import_zod18.z.number().int(),
2309
+ failed_attacks: import_zod18.z.number().int(),
2310
+ score: import_zod18.z.number(),
2311
+ asr: import_zod18.z.number(),
2312
+ custom_attack_reports: import_zod18.z.array(PromptSetSummarySchema).optional(),
2313
+ property_statistics: import_zod18.z.array(PropertyStatisticSchema).optional()
2314
+ }).passthrough();
2315
+ var PromptSetsReportResponseSchema = import_zod18.z.object({
2316
+ prompt_sets: import_zod18.z.array(PromptSetSummarySchema),
2317
+ total_prompt_sets: import_zod18.z.number().int(),
2318
+ applied_filters: import_zod18.z.record(import_zod18.z.unknown()).optional()
2319
+ }).passthrough();
2320
+ var PromptDetailResponseSchema = import_zod18.z.object({
2321
+ prompt_id: import_zod18.z.string(),
2322
+ prompt_text: import_zod18.z.string(),
2323
+ goal: import_zod18.z.string().nullable().optional(),
2324
+ user_defined_goal: import_zod18.z.boolean().optional(),
2325
+ properties: import_zod18.z.array(PropertyAssignmentSchema).optional(),
2326
+ attack_id: import_zod18.z.string().nullable().optional(),
2327
+ threat: import_zod18.z.boolean().nullable().optional(),
2328
+ attack_outputs: import_zod18.z.array(CustomAttackOutputSchema).optional(),
2329
+ asr: import_zod18.z.number().nullable().optional(),
2330
+ prompt_set_id: import_zod18.z.string().nullable().optional(),
2331
+ prompt_set_name: import_zod18.z.string().nullable().optional()
2332
+ }).passthrough();
2333
+ var CustomAttacksListResponseSchema = import_zod18.z.object({
2334
+ pagination: RedTeamPaginationSchema,
2335
+ data: import_zod18.z.array(import_zod18.z.unknown()),
2336
+ total_attacks: import_zod18.z.number().int(),
2337
+ total_threats: import_zod18.z.number().int()
2338
+ }).passthrough();
2339
+ var RiskLevelSchema = import_zod18.z.object({
2340
+ risk_rating: import_zod18.z.string(),
2341
+ total: import_zod18.z.number().int(),
2342
+ targets_by_type: import_zod18.z.array(CountByNameSchema).optional()
2343
+ }).passthrough();
2344
+ var ScanStatisticsResponseSchema = import_zod18.z.object({
2345
+ total_scans: import_zod18.z.number().int(),
2346
+ targets_scanned: import_zod18.z.number().int(),
2347
+ targets_scanned_by_type: import_zod18.z.array(CountByNameSchema).optional(),
2348
+ scan_status: import_zod18.z.array(CountByNameSchema).optional(),
2349
+ risk_profile: import_zod18.z.array(RiskLevelSchema).optional()
2350
+ }).passthrough();
2351
+ var ScoreTrendSeriesSchema = import_zod18.z.object({
2352
+ label: import_zod18.z.string(),
2353
+ data: import_zod18.z.array(import_zod18.z.number().nullable())
2354
+ });
2355
+ var ScoreTrendResponseSchema = import_zod18.z.object({
2356
+ labels: import_zod18.z.array(import_zod18.z.string()),
2357
+ series: import_zod18.z.array(ScoreTrendSeriesSchema)
2358
+ });
2359
+ var SentimentRequestSchema = import_zod18.z.object({
2360
+ job_id: import_zod18.z.string(),
2361
+ up_vote: import_zod18.z.boolean().optional(),
2362
+ down_vote: import_zod18.z.boolean().optional()
2363
+ });
2364
+ var SentimentResponseSchema = import_zod18.z.object({
2365
+ job_id: import_zod18.z.string(),
2366
+ up_vote: import_zod18.z.boolean().optional(),
2367
+ down_vote: import_zod18.z.boolean().optional()
2368
+ }).passthrough();
2369
+ var QuotaDetailsSchema = import_zod18.z.object({
2370
+ allocated: import_zod18.z.number().int(),
2371
+ unlimited: import_zod18.z.boolean(),
2372
+ consumed: import_zod18.z.number().int()
2373
+ });
2374
+ var QuotaSummarySchema = import_zod18.z.object({
2375
+ static: QuotaDetailsSchema,
2376
+ dynamic: QuotaDetailsSchema,
2377
+ custom: QuotaDetailsSchema
2378
+ });
2379
+ var ErrorLogSchema = import_zod18.z.object({
2380
+ created_at: import_zod18.z.string(),
2381
+ updated_at: import_zod18.z.string(),
2382
+ job_id: import_zod18.z.string().nullable().optional(),
2383
+ target_id: import_zod18.z.string().nullable().optional(),
2384
+ target_version: import_zod18.z.number().int().nullable().optional(),
2385
+ attack_id: import_zod18.z.string().nullable().optional(),
2386
+ error_type: import_zod18.z.string().nullable().optional(),
2387
+ error_source: import_zod18.z.string().nullable().optional(),
2388
+ error_message: import_zod18.z.string().nullable().optional(),
2389
+ target_object: import_zod18.z.record(import_zod18.z.unknown()).nullable().optional(),
2390
+ extra_info: import_zod18.z.record(import_zod18.z.unknown()).nullable().optional(),
2391
+ version: import_zod18.z.number().int().optional()
2392
+ }).passthrough();
2393
+ var ErrorLogListResponseSchema = import_zod18.z.object({ pagination: RedTeamPaginationSchema, data: import_zod18.z.array(ErrorLogSchema) }).passthrough();
2394
+ var TargetCreateRequestSchema = import_zod18.z.object({
2395
+ name: import_zod18.z.string(),
2396
+ description: import_zod18.z.unknown().optional(),
2397
+ target_type: import_zod18.z.unknown().optional(),
2398
+ connection_type: import_zod18.z.unknown().optional(),
2399
+ api_endpoint_type: import_zod18.z.unknown().optional(),
2400
+ response_mode: import_zod18.z.unknown().optional(),
2401
+ connection_params: import_zod18.z.unknown().optional(),
2402
+ session_supported: import_zod18.z.boolean().optional(),
2403
+ target_metadata: import_zod18.z.unknown().optional(),
2404
+ target_background: import_zod18.z.unknown().optional(),
2405
+ additional_context: import_zod18.z.unknown().optional(),
2406
+ extra_info: import_zod18.z.unknown().optional(),
2407
+ network_broker_channel_uuid: import_zod18.z.unknown().optional()
2408
+ }).passthrough();
2409
+ var TargetUpdateRequestSchema = import_zod18.z.object({
2410
+ name: import_zod18.z.string(),
2411
+ description: import_zod18.z.unknown().optional(),
2412
+ target_type: import_zod18.z.unknown().optional(),
2413
+ connection_type: import_zod18.z.unknown().optional(),
2414
+ api_endpoint_type: import_zod18.z.unknown().optional(),
2415
+ response_mode: import_zod18.z.unknown().optional(),
2416
+ connection_params: import_zod18.z.unknown().optional(),
2417
+ session_supported: import_zod18.z.boolean().optional(),
2418
+ target_metadata: import_zod18.z.unknown().optional(),
2419
+ target_background: import_zod18.z.unknown().optional(),
2420
+ additional_context: import_zod18.z.unknown().optional(),
2421
+ extra_info: import_zod18.z.unknown().optional(),
2422
+ network_broker_channel_uuid: import_zod18.z.unknown().optional()
2423
+ }).passthrough();
2424
+ var TargetContextUpdateSchema = import_zod18.z.object({
2425
+ target_background: import_zod18.z.unknown().optional(),
2426
+ additional_context: import_zod18.z.unknown().optional()
2427
+ }).passthrough();
2428
+ var TargetResponseSchema = import_zod18.z.object({
2429
+ uuid: import_zod18.z.string(),
2430
+ tsg_id: import_zod18.z.string(),
2431
+ name: import_zod18.z.string(),
2432
+ status: import_zod18.z.unknown(),
2433
+ active: import_zod18.z.boolean(),
2434
+ validated: import_zod18.z.boolean(),
2435
+ created_at: import_zod18.z.string(),
2436
+ updated_at: import_zod18.z.string(),
2437
+ description: import_zod18.z.unknown().optional(),
2438
+ target_type: import_zod18.z.unknown().optional(),
2439
+ connection_type: import_zod18.z.unknown().optional(),
2440
+ api_endpoint_type: import_zod18.z.unknown().optional(),
2441
+ response_mode: import_zod18.z.unknown().optional(),
2442
+ session_supported: import_zod18.z.boolean().optional(),
2443
+ extra_info: import_zod18.z.unknown().optional(),
2444
+ version: import_zod18.z.unknown().optional(),
2445
+ secret_version: import_zod18.z.unknown().optional(),
2446
+ created_by_user_id: import_zod18.z.unknown().optional(),
2447
+ updated_by_user_id: import_zod18.z.unknown().optional(),
2448
+ target_metadata: import_zod18.z.unknown().optional(),
2449
+ target_background: import_zod18.z.unknown().optional(),
2450
+ profiling_status: import_zod18.z.unknown().optional(),
2451
+ additional_context: import_zod18.z.unknown().optional()
2452
+ }).passthrough();
2453
+ var TargetListItemSchema = import_zod18.z.object({
2454
+ uuid: import_zod18.z.string(),
2455
+ tsg_id: import_zod18.z.string(),
2456
+ name: import_zod18.z.string(),
2457
+ status: import_zod18.z.unknown(),
2458
+ active: import_zod18.z.boolean(),
2459
+ validated: import_zod18.z.boolean(),
2460
+ created_at: import_zod18.z.string(),
2461
+ updated_at: import_zod18.z.string(),
2462
+ description: import_zod18.z.unknown().optional(),
2463
+ target_type: import_zod18.z.unknown().optional(),
2464
+ connection_type: import_zod18.z.unknown().optional(),
2465
+ api_endpoint_type: import_zod18.z.unknown().optional(),
2466
+ response_mode: import_zod18.z.unknown().optional(),
2467
+ session_supported: import_zod18.z.boolean().optional(),
2468
+ extra_info: import_zod18.z.unknown().optional(),
2469
+ version: import_zod18.z.unknown().optional(),
2470
+ secret_version: import_zod18.z.unknown().optional(),
2471
+ created_by_user_id: import_zod18.z.unknown().optional(),
2472
+ updated_by_user_id: import_zod18.z.unknown().optional()
2473
+ }).passthrough();
2474
+ var TargetListSchema = import_zod18.z.object({ pagination: RedTeamPaginationSchema, data: import_zod18.z.array(TargetListItemSchema).optional() }).passthrough();
2475
+ var TargetProbeRequestSchema = import_zod18.z.object({
2476
+ name: import_zod18.z.string(),
2477
+ uuid: import_zod18.z.unknown().optional(),
2478
+ description: import_zod18.z.unknown().optional(),
2479
+ target_type: import_zod18.z.unknown().optional(),
2480
+ connection_type: import_zod18.z.unknown().optional(),
2481
+ api_endpoint_type: import_zod18.z.unknown().optional(),
2482
+ response_mode: import_zod18.z.unknown().optional(),
2483
+ connection_params: import_zod18.z.unknown().optional(),
2484
+ session_supported: import_zod18.z.boolean().optional(),
2485
+ target_metadata: import_zod18.z.unknown().optional(),
2486
+ target_background: import_zod18.z.unknown().optional(),
2487
+ additional_context: import_zod18.z.unknown().optional(),
2488
+ extra_info: import_zod18.z.unknown().optional(),
2489
+ network_broker_channel_uuid: import_zod18.z.unknown().optional(),
2490
+ probe_fields: import_zod18.z.unknown().optional()
2491
+ }).passthrough();
2492
+ var TargetProfileResponseSchema = import_zod18.z.object({
2493
+ target_id: import_zod18.z.string(),
2494
+ target_version: import_zod18.z.number().int(),
2495
+ status: import_zod18.z.string(),
2496
+ profiling_status: import_zod18.z.unknown().optional(),
2497
+ target_background: import_zod18.z.unknown().optional(),
2498
+ additional_context: import_zod18.z.unknown().optional(),
2499
+ ai_generated_fields: import_zod18.z.unknown().optional(),
2500
+ other_details: import_zod18.z.unknown().optional()
2501
+ }).passthrough();
2502
+ var BaseResponseSchema = import_zod18.z.object({
2503
+ message: import_zod18.z.string(),
2504
+ status: import_zod18.z.number().int()
2505
+ });
2506
+ var PromptSetStatsSchema = import_zod18.z.object({
2507
+ total_prompts: import_zod18.z.number().int(),
2508
+ active_prompts: import_zod18.z.number().int(),
2509
+ inactive_prompts: import_zod18.z.number().int(),
2510
+ failed_prompts: import_zod18.z.number().int().optional(),
2511
+ validation_prompts: import_zod18.z.number().int().optional()
2512
+ }).passthrough();
2513
+ var CustomPromptSetCreateRequestSchema = import_zod18.z.object({
2514
+ name: import_zod18.z.string(),
2515
+ description: import_zod18.z.unknown().optional(),
2516
+ property_names: import_zod18.z.array(import_zod18.z.string()).optional()
2517
+ });
2518
+ var CustomPromptSetUpdateRequestSchema = import_zod18.z.object({
2519
+ name: import_zod18.z.unknown().optional(),
2520
+ description: import_zod18.z.unknown().optional(),
2521
+ archive: import_zod18.z.unknown().optional(),
2522
+ property_names: import_zod18.z.unknown().optional()
2523
+ }).passthrough();
2524
+ var CustomPromptSetArchiveRequestSchema = import_zod18.z.object({ archive: import_zod18.z.boolean() });
2525
+ var CustomPromptSetResponseSchema = import_zod18.z.object({
2526
+ uuid: import_zod18.z.string(),
2527
+ name: import_zod18.z.string(),
2528
+ active: import_zod18.z.boolean(),
2529
+ archive: import_zod18.z.boolean(),
2530
+ status: import_zod18.z.string(),
2531
+ created_at: import_zod18.z.string(),
2532
+ updated_at: import_zod18.z.string(),
2533
+ description: import_zod18.z.unknown().optional(),
2534
+ property_names: import_zod18.z.array(import_zod18.z.string()).optional(),
2535
+ properties: import_zod18.z.array(import_zod18.z.unknown()).optional(),
2536
+ stats: import_zod18.z.unknown().optional(),
2537
+ extra_info: import_zod18.z.unknown().optional(),
2538
+ version: import_zod18.z.unknown().optional(),
2539
+ created_by_user_id: import_zod18.z.unknown().optional(),
2540
+ updated_by_user_id: import_zod18.z.unknown().optional()
2541
+ }).passthrough();
2542
+ var CustomPromptSetListItemSchema = import_zod18.z.object({
2543
+ uuid: import_zod18.z.string(),
2544
+ name: import_zod18.z.string(),
2545
+ active: import_zod18.z.boolean(),
2546
+ archive: import_zod18.z.boolean(),
2547
+ status: import_zod18.z.string(),
2548
+ created_at: import_zod18.z.string(),
2549
+ updated_at: import_zod18.z.string(),
2550
+ description: import_zod18.z.unknown().optional(),
2551
+ property_names: import_zod18.z.array(import_zod18.z.string()).optional(),
2552
+ stats: import_zod18.z.unknown().optional(),
2553
+ created_by_user_id: import_zod18.z.unknown().optional()
2554
+ }).passthrough();
2555
+ var CustomPromptSetListSchema = import_zod18.z.object({
2556
+ pagination: RedTeamPaginationSchema,
2557
+ data: import_zod18.z.array(CustomPromptSetListItemSchema).optional()
2558
+ }).passthrough();
2559
+ var CustomPromptSetListActiveSchema = import_zod18.z.object({ data: import_zod18.z.array(CustomPromptSetListItemSchema).optional() }).passthrough();
2560
+ var CustomPromptSetReferenceSchema = import_zod18.z.object({
2561
+ uuid: import_zod18.z.string(),
2562
+ name: import_zod18.z.string(),
2563
+ status: import_zod18.z.string(),
2564
+ active: import_zod18.z.boolean(),
2565
+ tsg_id: import_zod18.z.string(),
2566
+ created_at: import_zod18.z.string(),
2567
+ updated_at: import_zod18.z.string(),
2568
+ version: import_zod18.z.unknown().optional()
2569
+ }).passthrough();
2570
+ var CustomPromptSetVersionInfoSchema = import_zod18.z.object({
2571
+ uuid: import_zod18.z.string(),
2572
+ status: import_zod18.z.string(),
2573
+ is_latest: import_zod18.z.boolean(),
2574
+ version: import_zod18.z.unknown().optional(),
2575
+ stats: import_zod18.z.unknown().optional(),
2576
+ snapshot_created_at: import_zod18.z.unknown().optional()
2577
+ }).passthrough();
2578
+ var CustomPromptCreateRequestSchema = import_zod18.z.object({
2579
+ prompt: import_zod18.z.string(),
2580
+ prompt_set_id: import_zod18.z.string(),
2581
+ goal: import_zod18.z.unknown().optional(),
2582
+ properties: import_zod18.z.unknown().optional()
2583
+ });
2584
+ var CustomPromptUpdateRequestSchema = import_zod18.z.object({
2585
+ prompt: import_zod18.z.unknown().optional(),
2586
+ goal: import_zod18.z.unknown().optional(),
2587
+ properties: import_zod18.z.unknown().optional()
2588
+ }).passthrough();
2589
+ var CustomPromptResponseSchema = import_zod18.z.object({
2590
+ uuid: import_zod18.z.string(),
2591
+ prompt: import_zod18.z.string(),
2592
+ user_defined_goal: import_zod18.z.boolean(),
2593
+ status: import_zod18.z.string(),
2594
+ active: import_zod18.z.boolean(),
2595
+ prompt_set_id: import_zod18.z.string(),
2596
+ created_at: import_zod18.z.string(),
2597
+ updated_at: import_zod18.z.string(),
2598
+ goal: import_zod18.z.unknown().optional(),
2599
+ properties: import_zod18.z.unknown().optional(),
2600
+ property_assignments: import_zod18.z.array(import_zod18.z.unknown()).optional(),
2601
+ detector_category: import_zod18.z.unknown().optional(),
2602
+ severity: import_zod18.z.unknown().optional(),
2603
+ extra_info: import_zod18.z.unknown().optional()
2604
+ }).passthrough();
2605
+ var CustomPromptListItemSchema = import_zod18.z.object({
2606
+ uuid: import_zod18.z.string(),
2607
+ prompt: import_zod18.z.string(),
2608
+ user_defined_goal: import_zod18.z.boolean(),
2609
+ status: import_zod18.z.string(),
2610
+ active: import_zod18.z.boolean(),
2611
+ created_at: import_zod18.z.string(),
2612
+ updated_at: import_zod18.z.string(),
2613
+ goal: import_zod18.z.unknown().optional(),
2614
+ properties: import_zod18.z.unknown().optional()
2615
+ }).passthrough();
2616
+ var CustomPromptListSchema = import_zod18.z.object({
2617
+ pagination: RedTeamPaginationSchema,
2618
+ data: import_zod18.z.array(CustomPromptListItemSchema).optional()
2619
+ }).passthrough();
2620
+ var PropertyNameCreateRequestSchema = import_zod18.z.object({ name: import_zod18.z.string() });
2621
+ var PropertyValueCreateRequestSchema = import_zod18.z.object({
2622
+ property_name: import_zod18.z.string(),
2623
+ property_value: import_zod18.z.string()
2624
+ });
2625
+ var PropertyDefinitionSchema = import_zod18.z.object({
2626
+ property_name: import_zod18.z.string(),
2627
+ created_at: import_zod18.z.string()
2628
+ });
2629
+ var PropertyNamesListResponseSchema = import_zod18.z.object({ data: import_zod18.z.array(PropertyDefinitionSchema).optional() }).passthrough();
2630
+ var PropertyValuesResponseSchema = import_zod18.z.object({
2631
+ name: import_zod18.z.string(),
2632
+ values: import_zod18.z.array(import_zod18.z.string()).optional()
2633
+ }).passthrough();
2634
+ var PropertyValuesMultipleResponseSchema = import_zod18.z.object({ data: import_zod18.z.record(import_zod18.z.array(import_zod18.z.string())).optional() }).passthrough();
2635
+ var DashboardOverviewResponseSchema = import_zod18.z.object({
2636
+ total_targets: import_zod18.z.number().int(),
2637
+ targets_by_type: import_zod18.z.array(CountByNameSchema).optional()
2638
+ }).passthrough();
2639
+
2640
+ // src/models/oauth-token.ts
2641
+ var import_zod19 = require("zod");
2642
+ var OAuthTokenResponseSchema = import_zod19.z.object({
2643
+ access_token: import_zod19.z.string(),
2644
+ token_type: import_zod19.z.string().optional(),
2645
+ expires_in: import_zod19.z.number(),
2646
+ scope: import_zod19.z.string().optional()
914
2647
  });
915
2648
 
916
2649
  // src/management/oauth-client.ts
@@ -929,6 +2662,10 @@ var OAuthClient = class {
929
2662
  this.tsgId = opts.tsgId;
930
2663
  this.tokenEndpoint = opts.tokenEndpoint ?? DEFAULT_TOKEN_ENDPOINT;
931
2664
  }
2665
+ /**
2666
+ * Get a valid access token, refreshing if needed.
2667
+ * @returns Bearer access token string.
2668
+ */
932
2669
  async getToken() {
933
2670
  if (this.accessToken && Date.now() < this.expiresAt - TOKEN_BUFFER_MS) {
934
2671
  return this.accessToken;
@@ -941,6 +2678,7 @@ var OAuthClient = class {
941
2678
  });
942
2679
  return this.pendingFetch;
943
2680
  }
2681
+ /** Clear the cached token, forcing a fresh fetch on next call. */
944
2682
  clearToken() {
945
2683
  this.accessToken = null;
946
2684
  this.expiresAt = 0;
@@ -985,76 +2723,43 @@ var OAuthClient = class {
985
2723
  };
986
2724
 
987
2725
  // src/management/management-http-client.ts
988
- function sleep2(ms) {
989
- return new Promise((resolve) => setTimeout(resolve, ms));
990
- }
991
- function extractError(body, status) {
992
- try {
993
- const parsed = JSON.parse(body);
994
- return parsed.error_message ?? parsed.message ?? `API error ${status}: ${body}`;
995
- } catch {
996
- return body ? `API error ${status}: ${body}` : `API error ${status}`;
997
- }
998
- }
999
2726
  async function managementHttpRequest(opts) {
1000
2727
  const { method, baseUrl, path, body, params, oauthClient, numRetries } = opts;
1001
2728
  let hadTokenRefresh = false;
1002
- for (let attempt = 0; attempt <= numRetries; attempt++) {
1003
- const token = await oauthClient.getToken();
1004
- const stripped = baseUrl.replace(/\/+$/, "");
1005
- const url = new URL(`${stripped}${path}`);
1006
- if (params) {
1007
- for (const [key, value] of Object.entries(params)) {
1008
- url.searchParams.set(key, value);
2729
+ const response = await executeWithRetry({
2730
+ maxRetries: numRetries,
2731
+ execute: async () => {
2732
+ const token = await oauthClient.getToken();
2733
+ const stripped = baseUrl.replace(/\/+$/, "");
2734
+ const url = new URL(`${stripped}${path}`);
2735
+ if (params) {
2736
+ for (const [key, value] of Object.entries(params)) {
2737
+ url.searchParams.set(key, value);
2738
+ }
1009
2739
  }
1010
- }
1011
- const headers = {
1012
- Authorization: `Bearer ${token}`,
1013
- "User-Agent": USER_AGENT
1014
- };
1015
- let bodyStr;
1016
- if (body !== void 0) {
1017
- headers["Content-Type"] = "application/json";
1018
- bodyStr = JSON.stringify(body);
1019
- }
1020
- let response;
1021
- try {
1022
- response = await fetch(url.toString(), {
1023
- method,
1024
- headers,
1025
- body: bodyStr
1026
- });
1027
- } catch (err) {
1028
- if (attempt < numRetries) {
1029
- await sleep2(Math.pow(2, attempt) * 1e3);
1030
- continue;
2740
+ const headers = {
2741
+ Authorization: `Bearer ${token}`,
2742
+ "User-Agent": USER_AGENT
2743
+ };
2744
+ let bodyStr;
2745
+ if (body !== void 0) {
2746
+ headers["Content-Type"] = "application/json";
2747
+ bodyStr = JSON.stringify(body);
1031
2748
  }
1032
- throw new AISecSDKException(
1033
- err.message ?? "Network error",
1034
- "AISEC_CLIENT_SIDE_ERROR" /* CLIENT_SIDE_ERROR */
1035
- );
1036
- }
1037
- if (response.ok) {
1038
- const text = await response.text();
1039
- const data = text ? JSON.parse(text) : {};
1040
- return { status: response.status, data };
1041
- }
1042
- if (response.status === 401 && !hadTokenRefresh) {
1043
- hadTokenRefresh = true;
1044
- oauthClient.clearToken();
1045
- attempt--;
1046
- continue;
1047
- }
1048
- if (HTTP_FORCE_RETRY_STATUS_CODES.includes(response.status) && attempt < numRetries) {
1049
- await sleep2(Math.pow(2, attempt) * 1e3);
1050
- continue;
2749
+ return fetch(url.toString(), { method, headers, body: bodyStr });
2750
+ },
2751
+ onRetryableFailure: async (response2) => {
2752
+ if (response2.status === 401 && !hadTokenRefresh) {
2753
+ hadTokenRefresh = true;
2754
+ oauthClient.clearToken();
2755
+ return true;
2756
+ }
2757
+ return false;
1051
2758
  }
1052
- const errorText = await response.text();
1053
- const errorMessage = extractError(errorText, response.status);
1054
- const errorType = response.status >= 500 ? "AISEC_SERVER_SIDE_ERROR" /* SERVER_SIDE_ERROR */ : "AISEC_CLIENT_SIDE_ERROR" /* CLIENT_SIDE_ERROR */;
1055
- throw new AISecSDKException(errorMessage, errorType);
1056
- }
1057
- throw new AISecSDKException("Max retries exceeded", "AISEC_CLIENT_SIDE_ERROR" /* CLIENT_SIDE_ERROR */);
2759
+ });
2760
+ const text = await response.text();
2761
+ const data = text ? JSON.parse(text) : {};
2762
+ return { status: response.status, data };
1058
2763
  }
1059
2764
 
1060
2765
  // src/management/profiles.ts
@@ -1069,6 +2774,11 @@ var ProfilesClient = class {
1069
2774
  this.tsgId = opts.tsgId;
1070
2775
  this.numRetries = opts.numRetries;
1071
2776
  }
2777
+ /**
2778
+ * Create a new security profile.
2779
+ * @param request - Profile configuration.
2780
+ * @returns The created security profile.
2781
+ */
1072
2782
  async create(request) {
1073
2783
  const res = await managementHttpRequest({
1074
2784
  method: "POST",
@@ -1080,6 +2790,11 @@ var ProfilesClient = class {
1080
2790
  });
1081
2791
  return res.data;
1082
2792
  }
2793
+ /**
2794
+ * List security profiles for the TSG.
2795
+ * @param opts - Pagination options.
2796
+ * @returns Paginated list of security profiles.
2797
+ */
1083
2798
  async list(opts) {
1084
2799
  const params = {
1085
2800
  offset: String(opts?.offset ?? 0),
@@ -1095,6 +2810,12 @@ var ProfilesClient = class {
1095
2810
  });
1096
2811
  return res.data;
1097
2812
  }
2813
+ /**
2814
+ * Update an existing security profile.
2815
+ * @param profileId - UUID of the profile to update.
2816
+ * @param request - Updated profile configuration.
2817
+ * @returns The updated security profile.
2818
+ */
1098
2819
  async update(profileId, request) {
1099
2820
  if (!isValidUuid(profileId)) {
1100
2821
  throw new AISecSDKException(
@@ -1112,6 +2833,11 @@ var ProfilesClient = class {
1112
2833
  });
1113
2834
  return res.data;
1114
2835
  }
2836
+ /**
2837
+ * Delete a security profile.
2838
+ * @param profileId - UUID of the profile to delete.
2839
+ * @returns Deletion confirmation message.
2840
+ */
1115
2841
  async delete(profileId) {
1116
2842
  if (!isValidUuid(profileId)) {
1117
2843
  throw new AISecSDKException(
@@ -1142,6 +2868,11 @@ var TopicsClient = class {
1142
2868
  this.tsgId = opts.tsgId;
1143
2869
  this.numRetries = opts.numRetries;
1144
2870
  }
2871
+ /**
2872
+ * Create a new custom topic.
2873
+ * @param request - Topic definition with name, description, and examples.
2874
+ * @returns The created custom topic.
2875
+ */
1145
2876
  async create(request) {
1146
2877
  const res = await managementHttpRequest({
1147
2878
  method: "POST",
@@ -1153,6 +2884,11 @@ var TopicsClient = class {
1153
2884
  });
1154
2885
  return res.data;
1155
2886
  }
2887
+ /**
2888
+ * List custom topics for the TSG.
2889
+ * @param opts - Pagination options.
2890
+ * @returns Paginated list of custom topics.
2891
+ */
1156
2892
  async list(opts) {
1157
2893
  const params = {
1158
2894
  offset: String(opts?.offset ?? 0),
@@ -1168,6 +2904,12 @@ var TopicsClient = class {
1168
2904
  });
1169
2905
  return res.data;
1170
2906
  }
2907
+ /**
2908
+ * Update an existing custom topic.
2909
+ * @param topicId - UUID of the topic to update.
2910
+ * @param request - Updated topic definition.
2911
+ * @returns The updated custom topic.
2912
+ */
1171
2913
  async update(topicId, request) {
1172
2914
  if (!isValidUuid(topicId)) {
1173
2915
  throw new AISecSDKException(
@@ -1185,6 +2927,11 @@ var TopicsClient = class {
1185
2927
  });
1186
2928
  return res.data;
1187
2929
  }
2930
+ /**
2931
+ * Delete a custom topic. Fails if topic is referenced by a profile.
2932
+ * @param topicId - UUID of the topic to delete.
2933
+ * @returns Deletion confirmation message.
2934
+ */
1188
2935
  async delete(topicId) {
1189
2936
  if (!isValidUuid(topicId)) {
1190
2937
  throw new AISecSDKException(
@@ -1201,6 +2948,11 @@ var TopicsClient = class {
1201
2948
  });
1202
2949
  return res.data;
1203
2950
  }
2951
+ /**
2952
+ * Force-delete a custom topic, removing it from any referencing profiles.
2953
+ * @param topicId - UUID of the topic to force-delete.
2954
+ * @returns Deletion confirmation message.
2955
+ */
1204
2956
  async forceDelete(topicId) {
1205
2957
  if (!isValidUuid(topicId)) {
1206
2958
  throw new AISecSDKException(
@@ -1271,6 +3023,1708 @@ var ManagementClient = class {
1271
3023
  });
1272
3024
  }
1273
3025
  };
3026
+
3027
+ // src/model-security/scans-client.ts
3028
+ function buildListParams(opts) {
3029
+ const params = {};
3030
+ if (opts?.skip !== void 0) params.skip = String(opts.skip);
3031
+ if (opts?.limit !== void 0) params.limit = String(opts.limit);
3032
+ if (opts?.sort_by !== void 0) params.sort_by = opts.sort_by;
3033
+ if (opts?.sort_direction !== void 0) params.sort_direction = opts.sort_direction;
3034
+ if (opts?.search !== void 0) params.search = opts.search;
3035
+ return params;
3036
+ }
3037
+ var ModelSecurityScansClient = class {
3038
+ baseUrl;
3039
+ oauthClient;
3040
+ numRetries;
3041
+ constructor(opts) {
3042
+ this.baseUrl = opts.baseUrl;
3043
+ this.oauthClient = opts.oauthClient;
3044
+ this.numRetries = opts.numRetries;
3045
+ }
3046
+ /**
3047
+ * Create a new model security scan.
3048
+ * @param request - Scan creation request body.
3049
+ * @returns The created scan response.
3050
+ */
3051
+ async create(request) {
3052
+ const res = await managementHttpRequest({
3053
+ method: "POST",
3054
+ baseUrl: this.baseUrl,
3055
+ path: MODEL_SEC_SCANS_PATH,
3056
+ body: request,
3057
+ oauthClient: this.oauthClient,
3058
+ numRetries: this.numRetries
3059
+ });
3060
+ return res.data;
3061
+ }
3062
+ /**
3063
+ * List model security scans with optional filters.
3064
+ * @param opts - Pagination and filter options.
3065
+ * @returns Paginated list of scans.
3066
+ */
3067
+ async list(opts) {
3068
+ const params = buildListParams(opts);
3069
+ if (opts?.eval_outcome !== void 0) params.eval_outcome = opts.eval_outcome;
3070
+ if (opts?.source_type !== void 0) params.source_type = opts.source_type;
3071
+ if (opts?.scan_origin !== void 0) params.scan_origin = opts.scan_origin;
3072
+ const res = await managementHttpRequest({
3073
+ method: "GET",
3074
+ baseUrl: this.baseUrl,
3075
+ path: MODEL_SEC_SCANS_PATH,
3076
+ params,
3077
+ oauthClient: this.oauthClient,
3078
+ numRetries: this.numRetries
3079
+ });
3080
+ return res.data;
3081
+ }
3082
+ /**
3083
+ * Get a single scan by UUID.
3084
+ * @param uuid - Scan UUID.
3085
+ * @returns The scan response.
3086
+ */
3087
+ async get(uuid) {
3088
+ if (!isValidUuid(uuid)) {
3089
+ throw new AISecSDKException(
3090
+ `Invalid scan uuid: ${uuid}`,
3091
+ "AISEC_USER_REQUEST_PAYLOAD_ERROR" /* USER_REQUEST_PAYLOAD_ERROR */
3092
+ );
3093
+ }
3094
+ const res = await managementHttpRequest({
3095
+ method: "GET",
3096
+ baseUrl: this.baseUrl,
3097
+ path: `${MODEL_SEC_SCANS_PATH}/${uuid}`,
3098
+ oauthClient: this.oauthClient,
3099
+ numRetries: this.numRetries
3100
+ });
3101
+ return res.data;
3102
+ }
3103
+ /**
3104
+ * Get rule evaluations for a scan.
3105
+ * @param scanUuid - Scan UUID.
3106
+ * @param opts - Pagination options.
3107
+ * @returns Paginated list of rule evaluations.
3108
+ */
3109
+ async getEvaluations(scanUuid, opts) {
3110
+ if (!isValidUuid(scanUuid)) {
3111
+ throw new AISecSDKException(
3112
+ `Invalid scan uuid: ${scanUuid}`,
3113
+ "AISEC_USER_REQUEST_PAYLOAD_ERROR" /* USER_REQUEST_PAYLOAD_ERROR */
3114
+ );
3115
+ }
3116
+ const res = await managementHttpRequest({
3117
+ method: "GET",
3118
+ baseUrl: this.baseUrl,
3119
+ path: `${MODEL_SEC_SCANS_PATH}/${scanUuid}/evaluations`,
3120
+ params: buildListParams(opts),
3121
+ oauthClient: this.oauthClient,
3122
+ numRetries: this.numRetries
3123
+ });
3124
+ return res.data;
3125
+ }
3126
+ /**
3127
+ * Get files for a scan.
3128
+ * @param scanUuid - Scan UUID.
3129
+ * @param opts - Pagination and file filter options.
3130
+ * @returns Paginated list of files.
3131
+ */
3132
+ async getFiles(scanUuid, opts) {
3133
+ if (!isValidUuid(scanUuid)) {
3134
+ throw new AISecSDKException(
3135
+ `Invalid scan uuid: ${scanUuid}`,
3136
+ "AISEC_USER_REQUEST_PAYLOAD_ERROR" /* USER_REQUEST_PAYLOAD_ERROR */
3137
+ );
3138
+ }
3139
+ const params = buildListParams(opts);
3140
+ if (opts?.type !== void 0) params.type = opts.type;
3141
+ if (opts?.result !== void 0) params.result = opts.result;
3142
+ const res = await managementHttpRequest({
3143
+ method: "GET",
3144
+ baseUrl: this.baseUrl,
3145
+ path: `${MODEL_SEC_SCANS_PATH}/${scanUuid}/files`,
3146
+ params,
3147
+ oauthClient: this.oauthClient,
3148
+ numRetries: this.numRetries
3149
+ });
3150
+ return res.data;
3151
+ }
3152
+ /**
3153
+ * Add labels to a scan (merge with existing).
3154
+ * @param scanUuid - Scan UUID.
3155
+ * @param request - Labels to add.
3156
+ * @returns Labels response.
3157
+ */
3158
+ async addLabels(scanUuid, request) {
3159
+ if (!isValidUuid(scanUuid)) {
3160
+ throw new AISecSDKException(
3161
+ `Invalid scan uuid: ${scanUuid}`,
3162
+ "AISEC_USER_REQUEST_PAYLOAD_ERROR" /* USER_REQUEST_PAYLOAD_ERROR */
3163
+ );
3164
+ }
3165
+ const res = await managementHttpRequest({
3166
+ method: "POST",
3167
+ baseUrl: this.baseUrl,
3168
+ path: `${MODEL_SEC_SCANS_PATH}/${scanUuid}/labels`,
3169
+ body: request,
3170
+ oauthClient: this.oauthClient,
3171
+ numRetries: this.numRetries
3172
+ });
3173
+ return res.data;
3174
+ }
3175
+ /**
3176
+ * Set labels on a scan (replace all existing).
3177
+ * @param scanUuid - Scan UUID.
3178
+ * @param request - Labels to set.
3179
+ * @returns Labels response.
3180
+ */
3181
+ async setLabels(scanUuid, request) {
3182
+ if (!isValidUuid(scanUuid)) {
3183
+ throw new AISecSDKException(
3184
+ `Invalid scan uuid: ${scanUuid}`,
3185
+ "AISEC_USER_REQUEST_PAYLOAD_ERROR" /* USER_REQUEST_PAYLOAD_ERROR */
3186
+ );
3187
+ }
3188
+ const res = await managementHttpRequest({
3189
+ method: "PUT",
3190
+ baseUrl: this.baseUrl,
3191
+ path: `${MODEL_SEC_SCANS_PATH}/${scanUuid}/labels`,
3192
+ body: request,
3193
+ oauthClient: this.oauthClient,
3194
+ numRetries: this.numRetries
3195
+ });
3196
+ return res.data;
3197
+ }
3198
+ /**
3199
+ * Delete labels from a scan by key.
3200
+ * @param scanUuid - Scan UUID.
3201
+ * @param keys - Label keys to delete.
3202
+ */
3203
+ async deleteLabels(scanUuid, keys) {
3204
+ if (!isValidUuid(scanUuid)) {
3205
+ throw new AISecSDKException(
3206
+ `Invalid scan uuid: ${scanUuid}`,
3207
+ "AISEC_USER_REQUEST_PAYLOAD_ERROR" /* USER_REQUEST_PAYLOAD_ERROR */
3208
+ );
3209
+ }
3210
+ const url = new URL(`https://placeholder${MODEL_SEC_SCANS_PATH}/${scanUuid}/labels`);
3211
+ for (const key of keys) {
3212
+ url.searchParams.append("keys", key);
3213
+ }
3214
+ const queryString = url.searchParams.toString();
3215
+ const pathWithQuery = `${MODEL_SEC_SCANS_PATH}/${scanUuid}/labels${queryString ? `?${queryString}` : ""}`;
3216
+ await managementHttpRequest({
3217
+ method: "DELETE",
3218
+ baseUrl: this.baseUrl,
3219
+ path: pathWithQuery,
3220
+ oauthClient: this.oauthClient,
3221
+ numRetries: this.numRetries
3222
+ });
3223
+ }
3224
+ /**
3225
+ * Get rule violations for a scan.
3226
+ * @param scanUuid - Scan UUID.
3227
+ * @param opts - Pagination options.
3228
+ * @returns Paginated list of violations.
3229
+ */
3230
+ async getViolations(scanUuid, opts) {
3231
+ if (!isValidUuid(scanUuid)) {
3232
+ throw new AISecSDKException(
3233
+ `Invalid scan uuid: ${scanUuid}`,
3234
+ "AISEC_USER_REQUEST_PAYLOAD_ERROR" /* USER_REQUEST_PAYLOAD_ERROR */
3235
+ );
3236
+ }
3237
+ const res = await managementHttpRequest({
3238
+ method: "GET",
3239
+ baseUrl: this.baseUrl,
3240
+ path: `${MODEL_SEC_SCANS_PATH}/${scanUuid}/rule-violations`,
3241
+ params: buildListParams(opts),
3242
+ oauthClient: this.oauthClient,
3243
+ numRetries: this.numRetries
3244
+ });
3245
+ return res.data;
3246
+ }
3247
+ /**
3248
+ * Get distinct label keys across all scans.
3249
+ * @param opts - Pagination options.
3250
+ * @returns Paginated list of label keys.
3251
+ */
3252
+ async getLabelKeys(opts) {
3253
+ const res = await managementHttpRequest({
3254
+ method: "GET",
3255
+ baseUrl: this.baseUrl,
3256
+ path: `${MODEL_SEC_SCANS_PATH}/label-keys`,
3257
+ params: buildListParams(opts),
3258
+ oauthClient: this.oauthClient,
3259
+ numRetries: this.numRetries
3260
+ });
3261
+ return res.data;
3262
+ }
3263
+ /**
3264
+ * Get distinct values for a label key.
3265
+ * @param key - Label key to get values for.
3266
+ * @param opts - Pagination options.
3267
+ * @returns Paginated list of label values.
3268
+ */
3269
+ async getLabelValues(key, opts) {
3270
+ const res = await managementHttpRequest({
3271
+ method: "GET",
3272
+ baseUrl: this.baseUrl,
3273
+ path: `${MODEL_SEC_SCANS_PATH}/label-keys/${encodeURIComponent(key)}/values`,
3274
+ params: buildListParams(opts),
3275
+ oauthClient: this.oauthClient,
3276
+ numRetries: this.numRetries
3277
+ });
3278
+ return res.data;
3279
+ }
3280
+ /**
3281
+ * Get a single rule evaluation by UUID.
3282
+ * @param uuid - Evaluation UUID.
3283
+ * @returns The rule evaluation response.
3284
+ */
3285
+ async getEvaluation(uuid) {
3286
+ if (!isValidUuid(uuid)) {
3287
+ throw new AISecSDKException(
3288
+ `Invalid evaluation uuid: ${uuid}`,
3289
+ "AISEC_USER_REQUEST_PAYLOAD_ERROR" /* USER_REQUEST_PAYLOAD_ERROR */
3290
+ );
3291
+ }
3292
+ const res = await managementHttpRequest({
3293
+ method: "GET",
3294
+ baseUrl: this.baseUrl,
3295
+ path: `${MODEL_SEC_EVALUATIONS_PATH}/${uuid}`,
3296
+ oauthClient: this.oauthClient,
3297
+ numRetries: this.numRetries
3298
+ });
3299
+ return res.data;
3300
+ }
3301
+ /**
3302
+ * Get a single violation by UUID.
3303
+ * @param uuid - Violation UUID.
3304
+ * @returns The violation response.
3305
+ */
3306
+ async getViolation(uuid) {
3307
+ if (!isValidUuid(uuid)) {
3308
+ throw new AISecSDKException(
3309
+ `Invalid violation uuid: ${uuid}`,
3310
+ "AISEC_USER_REQUEST_PAYLOAD_ERROR" /* USER_REQUEST_PAYLOAD_ERROR */
3311
+ );
3312
+ }
3313
+ const res = await managementHttpRequest({
3314
+ method: "GET",
3315
+ baseUrl: this.baseUrl,
3316
+ path: `${MODEL_SEC_VIOLATIONS_PATH}/${uuid}`,
3317
+ oauthClient: this.oauthClient,
3318
+ numRetries: this.numRetries
3319
+ });
3320
+ return res.data;
3321
+ }
3322
+ };
3323
+
3324
+ // src/model-security/security-groups-client.ts
3325
+ function buildListParams2(opts) {
3326
+ const params = {};
3327
+ if (opts?.skip !== void 0) params.skip = String(opts.skip);
3328
+ if (opts?.limit !== void 0) params.limit = String(opts.limit);
3329
+ if (opts?.sort_by !== void 0) params.sort_by = opts.sort_by;
3330
+ if (opts?.sort_direction !== void 0) params.sort_direction = opts.sort_direction;
3331
+ if (opts?.search !== void 0) params.search = opts.search;
3332
+ return params;
3333
+ }
3334
+ var ModelSecurityGroupsClient = class {
3335
+ baseUrl;
3336
+ oauthClient;
3337
+ numRetries;
3338
+ constructor(opts) {
3339
+ this.baseUrl = opts.baseUrl;
3340
+ this.oauthClient = opts.oauthClient;
3341
+ this.numRetries = opts.numRetries;
3342
+ }
3343
+ /**
3344
+ * Create a new security group.
3345
+ * @param request - Security group creation request.
3346
+ * @returns The created security group.
3347
+ */
3348
+ async create(request) {
3349
+ const res = await managementHttpRequest({
3350
+ method: "POST",
3351
+ baseUrl: this.baseUrl,
3352
+ path: MODEL_SEC_SECURITY_GROUPS_PATH,
3353
+ body: request,
3354
+ oauthClient: this.oauthClient,
3355
+ numRetries: this.numRetries
3356
+ });
3357
+ return res.data;
3358
+ }
3359
+ /**
3360
+ * List security groups with optional filters.
3361
+ * @param opts - Pagination and filter options.
3362
+ * @returns Paginated list of security groups.
3363
+ */
3364
+ async list(opts) {
3365
+ const res = await managementHttpRequest({
3366
+ method: "GET",
3367
+ baseUrl: this.baseUrl,
3368
+ path: MODEL_SEC_SECURITY_GROUPS_PATH,
3369
+ params: buildListParams2(opts),
3370
+ oauthClient: this.oauthClient,
3371
+ numRetries: this.numRetries
3372
+ });
3373
+ return res.data;
3374
+ }
3375
+ /**
3376
+ * Get a single security group by UUID.
3377
+ * @param uuid - Security group UUID.
3378
+ * @returns The security group.
3379
+ */
3380
+ async get(uuid) {
3381
+ if (!isValidUuid(uuid)) {
3382
+ throw new AISecSDKException(
3383
+ `Invalid security group uuid: ${uuid}`,
3384
+ "AISEC_USER_REQUEST_PAYLOAD_ERROR" /* USER_REQUEST_PAYLOAD_ERROR */
3385
+ );
3386
+ }
3387
+ const res = await managementHttpRequest({
3388
+ method: "GET",
3389
+ baseUrl: this.baseUrl,
3390
+ path: `${MODEL_SEC_SECURITY_GROUPS_PATH}/${uuid}`,
3391
+ oauthClient: this.oauthClient,
3392
+ numRetries: this.numRetries
3393
+ });
3394
+ return res.data;
3395
+ }
3396
+ /**
3397
+ * Update an existing security group.
3398
+ * @param uuid - Security group UUID.
3399
+ * @param request - Updated security group fields.
3400
+ * @returns The updated security group.
3401
+ */
3402
+ async update(uuid, request) {
3403
+ if (!isValidUuid(uuid)) {
3404
+ throw new AISecSDKException(
3405
+ `Invalid security group uuid: ${uuid}`,
3406
+ "AISEC_USER_REQUEST_PAYLOAD_ERROR" /* USER_REQUEST_PAYLOAD_ERROR */
3407
+ );
3408
+ }
3409
+ const res = await managementHttpRequest({
3410
+ method: "PUT",
3411
+ baseUrl: this.baseUrl,
3412
+ path: `${MODEL_SEC_SECURITY_GROUPS_PATH}/${uuid}`,
3413
+ body: request,
3414
+ oauthClient: this.oauthClient,
3415
+ numRetries: this.numRetries
3416
+ });
3417
+ return res.data;
3418
+ }
3419
+ /**
3420
+ * Delete a security group.
3421
+ * @param uuid - Security group UUID.
3422
+ */
3423
+ async delete(uuid) {
3424
+ if (!isValidUuid(uuid)) {
3425
+ throw new AISecSDKException(
3426
+ `Invalid security group uuid: ${uuid}`,
3427
+ "AISEC_USER_REQUEST_PAYLOAD_ERROR" /* USER_REQUEST_PAYLOAD_ERROR */
3428
+ );
3429
+ }
3430
+ await managementHttpRequest({
3431
+ method: "DELETE",
3432
+ baseUrl: this.baseUrl,
3433
+ path: `${MODEL_SEC_SECURITY_GROUPS_PATH}/${uuid}`,
3434
+ oauthClient: this.oauthClient,
3435
+ numRetries: this.numRetries
3436
+ });
3437
+ }
3438
+ /**
3439
+ * List rule instances for a security group.
3440
+ * @param securityGroupUuid - Security group UUID.
3441
+ * @param opts - Pagination options.
3442
+ * @returns Paginated list of rule instances.
3443
+ */
3444
+ async listRuleInstances(securityGroupUuid, opts) {
3445
+ if (!isValidUuid(securityGroupUuid)) {
3446
+ throw new AISecSDKException(
3447
+ `Invalid security group uuid: ${securityGroupUuid}`,
3448
+ "AISEC_USER_REQUEST_PAYLOAD_ERROR" /* USER_REQUEST_PAYLOAD_ERROR */
3449
+ );
3450
+ }
3451
+ const res = await managementHttpRequest({
3452
+ method: "GET",
3453
+ baseUrl: this.baseUrl,
3454
+ path: `${MODEL_SEC_SECURITY_GROUPS_PATH}/${securityGroupUuid}/rule-instances`,
3455
+ params: buildListParams2(opts),
3456
+ oauthClient: this.oauthClient,
3457
+ numRetries: this.numRetries
3458
+ });
3459
+ return res.data;
3460
+ }
3461
+ /**
3462
+ * Get a single rule instance within a security group.
3463
+ * @param securityGroupUuid - Security group UUID.
3464
+ * @param ruleInstanceUuid - Rule instance UUID.
3465
+ * @returns The rule instance.
3466
+ */
3467
+ async getRuleInstance(securityGroupUuid, ruleInstanceUuid) {
3468
+ if (!isValidUuid(securityGroupUuid)) {
3469
+ throw new AISecSDKException(
3470
+ `Invalid security group uuid: ${securityGroupUuid}`,
3471
+ "AISEC_USER_REQUEST_PAYLOAD_ERROR" /* USER_REQUEST_PAYLOAD_ERROR */
3472
+ );
3473
+ }
3474
+ if (!isValidUuid(ruleInstanceUuid)) {
3475
+ throw new AISecSDKException(
3476
+ `Invalid rule instance uuid: ${ruleInstanceUuid}`,
3477
+ "AISEC_USER_REQUEST_PAYLOAD_ERROR" /* USER_REQUEST_PAYLOAD_ERROR */
3478
+ );
3479
+ }
3480
+ const res = await managementHttpRequest({
3481
+ method: "GET",
3482
+ baseUrl: this.baseUrl,
3483
+ path: `${MODEL_SEC_SECURITY_GROUPS_PATH}/${securityGroupUuid}/rule-instances/${ruleInstanceUuid}`,
3484
+ oauthClient: this.oauthClient,
3485
+ numRetries: this.numRetries
3486
+ });
3487
+ return res.data;
3488
+ }
3489
+ /**
3490
+ * Update a rule instance within a security group.
3491
+ * @param securityGroupUuid - Security group UUID.
3492
+ * @param ruleInstanceUuid - Rule instance UUID.
3493
+ * @param request - Updated rule instance fields.
3494
+ * @returns The updated rule instance.
3495
+ */
3496
+ async updateRuleInstance(securityGroupUuid, ruleInstanceUuid, request) {
3497
+ if (!isValidUuid(securityGroupUuid)) {
3498
+ throw new AISecSDKException(
3499
+ `Invalid security group uuid: ${securityGroupUuid}`,
3500
+ "AISEC_USER_REQUEST_PAYLOAD_ERROR" /* USER_REQUEST_PAYLOAD_ERROR */
3501
+ );
3502
+ }
3503
+ if (!isValidUuid(ruleInstanceUuid)) {
3504
+ throw new AISecSDKException(
3505
+ `Invalid rule instance uuid: ${ruleInstanceUuid}`,
3506
+ "AISEC_USER_REQUEST_PAYLOAD_ERROR" /* USER_REQUEST_PAYLOAD_ERROR */
3507
+ );
3508
+ }
3509
+ const res = await managementHttpRequest({
3510
+ method: "PUT",
3511
+ baseUrl: this.baseUrl,
3512
+ path: `${MODEL_SEC_SECURITY_GROUPS_PATH}/${securityGroupUuid}/rule-instances/${ruleInstanceUuid}`,
3513
+ body: request,
3514
+ oauthClient: this.oauthClient,
3515
+ numRetries: this.numRetries
3516
+ });
3517
+ return res.data;
3518
+ }
3519
+ };
3520
+
3521
+ // src/model-security/security-rules-client.ts
3522
+ function buildListParams3(opts) {
3523
+ const params = {};
3524
+ if (opts?.skip !== void 0) params.skip = String(opts.skip);
3525
+ if (opts?.limit !== void 0) params.limit = String(opts.limit);
3526
+ if (opts?.sort_by !== void 0) params.sort_by = opts.sort_by;
3527
+ if (opts?.sort_direction !== void 0) params.sort_direction = opts.sort_direction;
3528
+ if (opts?.search !== void 0) params.search = opts.search;
3529
+ return params;
3530
+ }
3531
+ var ModelSecurityRulesClient = class {
3532
+ baseUrl;
3533
+ oauthClient;
3534
+ numRetries;
3535
+ constructor(opts) {
3536
+ this.baseUrl = opts.baseUrl;
3537
+ this.oauthClient = opts.oauthClient;
3538
+ this.numRetries = opts.numRetries;
3539
+ }
3540
+ /**
3541
+ * List available security rules.
3542
+ * @param opts - Pagination options.
3543
+ * @returns Paginated list of security rules.
3544
+ */
3545
+ async list(opts) {
3546
+ const res = await managementHttpRequest({
3547
+ method: "GET",
3548
+ baseUrl: this.baseUrl,
3549
+ path: MODEL_SEC_SECURITY_RULES_PATH,
3550
+ params: buildListParams3(opts),
3551
+ oauthClient: this.oauthClient,
3552
+ numRetries: this.numRetries
3553
+ });
3554
+ return res.data;
3555
+ }
3556
+ /**
3557
+ * Get a single security rule by UUID.
3558
+ * @param uuid - Security rule UUID.
3559
+ * @returns The security rule.
3560
+ */
3561
+ async get(uuid) {
3562
+ if (!isValidUuid(uuid)) {
3563
+ throw new AISecSDKException(
3564
+ `Invalid security rule uuid: ${uuid}`,
3565
+ "AISEC_USER_REQUEST_PAYLOAD_ERROR" /* USER_REQUEST_PAYLOAD_ERROR */
3566
+ );
3567
+ }
3568
+ const res = await managementHttpRequest({
3569
+ method: "GET",
3570
+ baseUrl: this.baseUrl,
3571
+ path: `${MODEL_SEC_SECURITY_RULES_PATH}/${uuid}`,
3572
+ oauthClient: this.oauthClient,
3573
+ numRetries: this.numRetries
3574
+ });
3575
+ return res.data;
3576
+ }
3577
+ };
3578
+
3579
+ // src/model-security/client.ts
3580
+ var ModelSecurityClient = class {
3581
+ /** Data plane scan operations. */
3582
+ scans;
3583
+ /** Management plane security group operations. */
3584
+ securityGroups;
3585
+ /** Management plane security rule operations (read-only). */
3586
+ securityRules;
3587
+ mgmtEndpoint;
3588
+ oauthClient;
3589
+ numRetries;
3590
+ constructor(opts = {}) {
3591
+ const clientId = opts.clientId ?? process.env[MODEL_SEC_CLIENT_ID] ?? process.env[MGMT_CLIENT_ID];
3592
+ const clientSecret = opts.clientSecret ?? process.env[MODEL_SEC_CLIENT_SECRET] ?? process.env[MGMT_CLIENT_SECRET];
3593
+ const tsgId = opts.tsgId ?? process.env[MODEL_SEC_TSG_ID] ?? process.env[MGMT_TSG_ID];
3594
+ const dataEndpoint = opts.dataEndpoint ?? process.env[MODEL_SEC_DATA_ENDPOINT] ?? DEFAULT_MODEL_SEC_DATA_ENDPOINT;
3595
+ const mgmtEndpoint = opts.mgmtEndpoint ?? process.env[MODEL_SEC_MGMT_ENDPOINT] ?? DEFAULT_MODEL_SEC_MGMT_ENDPOINT;
3596
+ const tokenEndpoint = opts.tokenEndpoint ?? process.env[MODEL_SEC_TOKEN_ENDPOINT] ?? process.env[MGMT_TOKEN_ENDPOINT];
3597
+ const numRetries = Math.min(
3598
+ Math.max(opts.numRetries ?? MAX_NUMBER_OF_RETRIES, 0),
3599
+ MAX_NUMBER_OF_RETRIES
3600
+ );
3601
+ if (!clientId) {
3602
+ throw new AISecSDKException(
3603
+ "clientId is required (option or PANW_MODEL_SEC_CLIENT_ID / PANW_MGMT_CLIENT_ID env var)",
3604
+ "AISEC_MISSING_VARIABLE" /* MISSING_VARIABLE */
3605
+ );
3606
+ }
3607
+ if (!clientSecret) {
3608
+ throw new AISecSDKException(
3609
+ "clientSecret is required (option or PANW_MODEL_SEC_CLIENT_SECRET / PANW_MGMT_CLIENT_SECRET env var)",
3610
+ "AISEC_MISSING_VARIABLE" /* MISSING_VARIABLE */
3611
+ );
3612
+ }
3613
+ if (!tsgId) {
3614
+ throw new AISecSDKException(
3615
+ "tsgId is required (option or PANW_MODEL_SEC_TSG_ID / PANW_MGMT_TSG_ID env var)",
3616
+ "AISEC_MISSING_VARIABLE" /* MISSING_VARIABLE */
3617
+ );
3618
+ }
3619
+ this.oauthClient = new OAuthClient({
3620
+ clientId,
3621
+ clientSecret,
3622
+ tsgId,
3623
+ tokenEndpoint
3624
+ });
3625
+ this.mgmtEndpoint = mgmtEndpoint;
3626
+ this.numRetries = numRetries;
3627
+ this.scans = new ModelSecurityScansClient({
3628
+ baseUrl: dataEndpoint,
3629
+ oauthClient: this.oauthClient,
3630
+ numRetries
3631
+ });
3632
+ this.securityGroups = new ModelSecurityGroupsClient({
3633
+ baseUrl: mgmtEndpoint,
3634
+ oauthClient: this.oauthClient,
3635
+ numRetries
3636
+ });
3637
+ this.securityRules = new ModelSecurityRulesClient({
3638
+ baseUrl: mgmtEndpoint,
3639
+ oauthClient: this.oauthClient,
3640
+ numRetries
3641
+ });
3642
+ }
3643
+ /**
3644
+ * Get PyPI authentication credentials for Google Artifact Registry.
3645
+ * @returns PyPI auth response with URL and expiration.
3646
+ */
3647
+ async getPyPIAuth() {
3648
+ const res = await managementHttpRequest({
3649
+ method: "GET",
3650
+ baseUrl: this.mgmtEndpoint,
3651
+ path: MODEL_SEC_PYPI_AUTH_PATH,
3652
+ oauthClient: this.oauthClient,
3653
+ numRetries: this.numRetries
3654
+ });
3655
+ return res.data;
3656
+ }
3657
+ };
3658
+
3659
+ // src/red-team/scans-client.ts
3660
+ function buildListParams4(opts) {
3661
+ const params = {};
3662
+ if (opts?.skip !== void 0) params.skip = String(opts.skip);
3663
+ if (opts?.limit !== void 0) params.limit = String(opts.limit);
3664
+ if (opts?.sort_by !== void 0) params.sort_by = opts.sort_by;
3665
+ if (opts?.sort_direction !== void 0) params.sort_direction = opts.sort_direction;
3666
+ if (opts?.search !== void 0) params.search = opts.search;
3667
+ return params;
3668
+ }
3669
+ var RedTeamScansClient = class {
3670
+ baseUrl;
3671
+ oauthClient;
3672
+ numRetries;
3673
+ constructor(opts) {
3674
+ this.baseUrl = opts.baseUrl;
3675
+ this.oauthClient = opts.oauthClient;
3676
+ this.numRetries = opts.numRetries;
3677
+ }
3678
+ /** Create a new red team scan job. */
3679
+ async create(request) {
3680
+ const res = await managementHttpRequest({
3681
+ method: "POST",
3682
+ baseUrl: this.baseUrl,
3683
+ path: RED_TEAM_SCAN_PATH,
3684
+ body: request,
3685
+ oauthClient: this.oauthClient,
3686
+ numRetries: this.numRetries
3687
+ });
3688
+ return res.data;
3689
+ }
3690
+ /** List red team scan jobs with optional filters. */
3691
+ async list(opts) {
3692
+ const params = buildListParams4(opts);
3693
+ if (opts?.status !== void 0) params.status = opts.status;
3694
+ if (opts?.job_type !== void 0) params.job_type = opts.job_type;
3695
+ if (opts?.target_id !== void 0) params.target_id = opts.target_id;
3696
+ const res = await managementHttpRequest({
3697
+ method: "GET",
3698
+ baseUrl: this.baseUrl,
3699
+ path: RED_TEAM_SCAN_PATH,
3700
+ params,
3701
+ oauthClient: this.oauthClient,
3702
+ numRetries: this.numRetries
3703
+ });
3704
+ return res.data;
3705
+ }
3706
+ /** Get a single scan job by ID. */
3707
+ async get(jobId) {
3708
+ if (!isValidUuid(jobId)) {
3709
+ throw new AISecSDKException(`Invalid job id: ${jobId}`, "AISEC_USER_REQUEST_PAYLOAD_ERROR" /* USER_REQUEST_PAYLOAD_ERROR */);
3710
+ }
3711
+ const res = await managementHttpRequest({
3712
+ method: "GET",
3713
+ baseUrl: this.baseUrl,
3714
+ path: `${RED_TEAM_SCAN_PATH}/${jobId}`,
3715
+ oauthClient: this.oauthClient,
3716
+ numRetries: this.numRetries
3717
+ });
3718
+ return res.data;
3719
+ }
3720
+ /** Abort a running scan job. */
3721
+ async abort(jobId) {
3722
+ if (!isValidUuid(jobId)) {
3723
+ throw new AISecSDKException(`Invalid job id: ${jobId}`, "AISEC_USER_REQUEST_PAYLOAD_ERROR" /* USER_REQUEST_PAYLOAD_ERROR */);
3724
+ }
3725
+ const res = await managementHttpRequest({
3726
+ method: "POST",
3727
+ baseUrl: this.baseUrl,
3728
+ path: `${RED_TEAM_SCAN_PATH}/${jobId}/abort`,
3729
+ oauthClient: this.oauthClient,
3730
+ numRetries: this.numRetries
3731
+ });
3732
+ return res.data;
3733
+ }
3734
+ /** Get all categories with subcategories. */
3735
+ async getCategories() {
3736
+ const res = await managementHttpRequest({
3737
+ method: "GET",
3738
+ baseUrl: this.baseUrl,
3739
+ path: RED_TEAM_CATEGORIES_PATH,
3740
+ oauthClient: this.oauthClient,
3741
+ numRetries: this.numRetries
3742
+ });
3743
+ return res.data;
3744
+ }
3745
+ };
3746
+
3747
+ // src/red-team/reports-client.ts
3748
+ function buildListParams5(opts) {
3749
+ const params = {};
3750
+ if (opts?.skip !== void 0) params.skip = String(opts.skip);
3751
+ if (opts?.limit !== void 0) params.limit = String(opts.limit);
3752
+ if (opts?.sort_by !== void 0) params.sort_by = opts.sort_by;
3753
+ if (opts?.sort_direction !== void 0) params.sort_direction = opts.sort_direction;
3754
+ if (opts?.search !== void 0) params.search = opts.search;
3755
+ return params;
3756
+ }
3757
+ function validateJobId(jobId) {
3758
+ if (!isValidUuid(jobId)) {
3759
+ throw new AISecSDKException(`Invalid job id: ${jobId}`, "AISEC_USER_REQUEST_PAYLOAD_ERROR" /* USER_REQUEST_PAYLOAD_ERROR */);
3760
+ }
3761
+ }
3762
+ var RedTeamReportsClient = class {
3763
+ baseUrl;
3764
+ oauthClient;
3765
+ numRetries;
3766
+ constructor(opts) {
3767
+ this.baseUrl = opts.baseUrl;
3768
+ this.oauthClient = opts.oauthClient;
3769
+ this.numRetries = opts.numRetries;
3770
+ }
3771
+ // -----------------------------------------------------------------------
3772
+ // Static (attack library) report endpoints
3773
+ // -----------------------------------------------------------------------
3774
+ /** List attacks for a static scan. */
3775
+ async listAttacks(jobId, opts) {
3776
+ validateJobId(jobId);
3777
+ const params = buildListParams5(opts);
3778
+ if (opts?.status !== void 0) params.status = opts.status;
3779
+ if (opts?.severity !== void 0) params.severity = opts.severity;
3780
+ if (opts?.category !== void 0) params.category = opts.category;
3781
+ if (opts?.sub_category !== void 0) params.sub_category = opts.sub_category;
3782
+ const res = await managementHttpRequest({
3783
+ method: "GET",
3784
+ baseUrl: this.baseUrl,
3785
+ path: `${RED_TEAM_REPORT_STATIC_PATH}/${jobId}/list-attacks`,
3786
+ params,
3787
+ oauthClient: this.oauthClient,
3788
+ numRetries: this.numRetries
3789
+ });
3790
+ return res.data;
3791
+ }
3792
+ /** Get attack details for a static scan. */
3793
+ async getAttackDetail(jobId, attackId) {
3794
+ validateJobId(jobId);
3795
+ if (!isValidUuid(attackId)) {
3796
+ throw new AISecSDKException(
3797
+ `Invalid attack id: ${attackId}`,
3798
+ "AISEC_USER_REQUEST_PAYLOAD_ERROR" /* USER_REQUEST_PAYLOAD_ERROR */
3799
+ );
3800
+ }
3801
+ const res = await managementHttpRequest({
3802
+ method: "GET",
3803
+ baseUrl: this.baseUrl,
3804
+ path: `${RED_TEAM_REPORT_STATIC_PATH}/${jobId}/attack/${attackId}`,
3805
+ oauthClient: this.oauthClient,
3806
+ numRetries: this.numRetries
3807
+ });
3808
+ return res.data;
3809
+ }
3810
+ /** Get multi-turn attack details for a static scan. */
3811
+ async getMultiTurnAttackDetail(jobId, attackId) {
3812
+ validateJobId(jobId);
3813
+ if (!isValidUuid(attackId)) {
3814
+ throw new AISecSDKException(
3815
+ `Invalid attack id: ${attackId}`,
3816
+ "AISEC_USER_REQUEST_PAYLOAD_ERROR" /* USER_REQUEST_PAYLOAD_ERROR */
3817
+ );
3818
+ }
3819
+ const res = await managementHttpRequest({
3820
+ method: "GET",
3821
+ baseUrl: this.baseUrl,
3822
+ path: `${RED_TEAM_REPORT_STATIC_PATH}/${jobId}/attack-multi-turn/${attackId}`,
3823
+ oauthClient: this.oauthClient,
3824
+ numRetries: this.numRetries
3825
+ });
3826
+ return res.data;
3827
+ }
3828
+ /** Get the attack library report for a static scan. */
3829
+ async getStaticReport(jobId) {
3830
+ validateJobId(jobId);
3831
+ const res = await managementHttpRequest({
3832
+ method: "GET",
3833
+ baseUrl: this.baseUrl,
3834
+ path: `${RED_TEAM_REPORT_STATIC_PATH}/${jobId}/report`,
3835
+ oauthClient: this.oauthClient,
3836
+ numRetries: this.numRetries
3837
+ });
3838
+ return res.data;
3839
+ }
3840
+ /** Get remediation recommendations for a static scan. */
3841
+ async getStaticRemediation(jobId) {
3842
+ validateJobId(jobId);
3843
+ const res = await managementHttpRequest({
3844
+ method: "GET",
3845
+ baseUrl: this.baseUrl,
3846
+ path: `${RED_TEAM_REPORT_STATIC_PATH}/${jobId}/remediation`,
3847
+ oauthClient: this.oauthClient,
3848
+ numRetries: this.numRetries
3849
+ });
3850
+ return res.data;
3851
+ }
3852
+ /** Get runtime security profile config for a static scan. */
3853
+ async getStaticRuntimePolicy(jobId) {
3854
+ validateJobId(jobId);
3855
+ const res = await managementHttpRequest({
3856
+ method: "GET",
3857
+ baseUrl: this.baseUrl,
3858
+ path: `${RED_TEAM_REPORT_STATIC_PATH}/${jobId}/runtime-policy-config`,
3859
+ oauthClient: this.oauthClient,
3860
+ numRetries: this.numRetries
3861
+ });
3862
+ return res.data;
3863
+ }
3864
+ // -----------------------------------------------------------------------
3865
+ // Dynamic (agent) report endpoints
3866
+ // -----------------------------------------------------------------------
3867
+ /** Get the agent scan report for a dynamic scan. */
3868
+ async getDynamicReport(jobId) {
3869
+ validateJobId(jobId);
3870
+ const res = await managementHttpRequest({
3871
+ method: "GET",
3872
+ baseUrl: this.baseUrl,
3873
+ path: `${RED_TEAM_REPORT_DYNAMIC_PATH}/${jobId}/report`,
3874
+ oauthClient: this.oauthClient,
3875
+ numRetries: this.numRetries
3876
+ });
3877
+ return res.data;
3878
+ }
3879
+ /** Get remediation recommendations for a dynamic scan. */
3880
+ async getDynamicRemediation(jobId) {
3881
+ validateJobId(jobId);
3882
+ const res = await managementHttpRequest({
3883
+ method: "GET",
3884
+ baseUrl: this.baseUrl,
3885
+ path: `${RED_TEAM_REPORT_DYNAMIC_PATH}/${jobId}/remediation`,
3886
+ oauthClient: this.oauthClient,
3887
+ numRetries: this.numRetries
3888
+ });
3889
+ return res.data;
3890
+ }
3891
+ /** Get runtime security profile config for a dynamic scan. */
3892
+ async getDynamicRuntimePolicy(jobId) {
3893
+ validateJobId(jobId);
3894
+ const res = await managementHttpRequest({
3895
+ method: "GET",
3896
+ baseUrl: this.baseUrl,
3897
+ path: `${RED_TEAM_REPORT_DYNAMIC_PATH}/${jobId}/runtime-policy-config`,
3898
+ oauthClient: this.oauthClient,
3899
+ numRetries: this.numRetries
3900
+ });
3901
+ return res.data;
3902
+ }
3903
+ /** List goals for a dynamic scan. */
3904
+ async listGoals(jobId, opts) {
3905
+ validateJobId(jobId);
3906
+ const params = buildListParams5(opts);
3907
+ if (opts?.goal_type !== void 0) params.goal_type = opts.goal_type;
3908
+ const res = await managementHttpRequest({
3909
+ method: "GET",
3910
+ baseUrl: this.baseUrl,
3911
+ path: `${RED_TEAM_REPORT_DYNAMIC_PATH}/${jobId}/list-goals`,
3912
+ params,
3913
+ oauthClient: this.oauthClient,
3914
+ numRetries: this.numRetries
3915
+ });
3916
+ return res.data;
3917
+ }
3918
+ /** List streams for a goal in a dynamic scan. */
3919
+ async listGoalStreams(jobId, goalId, opts) {
3920
+ validateJobId(jobId);
3921
+ if (!isValidUuid(goalId)) {
3922
+ throw new AISecSDKException(
3923
+ `Invalid goal id: ${goalId}`,
3924
+ "AISEC_USER_REQUEST_PAYLOAD_ERROR" /* USER_REQUEST_PAYLOAD_ERROR */
3925
+ );
3926
+ }
3927
+ const res = await managementHttpRequest({
3928
+ method: "GET",
3929
+ baseUrl: this.baseUrl,
3930
+ path: `${RED_TEAM_REPORT_DYNAMIC_PATH}/${jobId}/goal/${goalId}/list-streams`,
3931
+ params: buildListParams5(opts),
3932
+ oauthClient: this.oauthClient,
3933
+ numRetries: this.numRetries
3934
+ });
3935
+ return res.data;
3936
+ }
3937
+ // -----------------------------------------------------------------------
3938
+ // Common report endpoints
3939
+ // -----------------------------------------------------------------------
3940
+ /** Get stream details by stream ID. */
3941
+ async getStreamDetail(streamId) {
3942
+ if (!isValidUuid(streamId)) {
3943
+ throw new AISecSDKException(
3944
+ `Invalid stream id: ${streamId}`,
3945
+ "AISEC_USER_REQUEST_PAYLOAD_ERROR" /* USER_REQUEST_PAYLOAD_ERROR */
3946
+ );
3947
+ }
3948
+ const res = await managementHttpRequest({
3949
+ method: "GET",
3950
+ baseUrl: this.baseUrl,
3951
+ path: `${RED_TEAM_REPORT_DYNAMIC_PATH}/stream/${streamId}`,
3952
+ oauthClient: this.oauthClient,
3953
+ numRetries: this.numRetries
3954
+ });
3955
+ return res.data;
3956
+ }
3957
+ /** Download a report in the specified format. */
3958
+ async downloadReport(jobId, format) {
3959
+ validateJobId(jobId);
3960
+ const params = {};
3961
+ if (format !== void 0) params.file_format = format;
3962
+ const res = await managementHttpRequest({
3963
+ method: "GET",
3964
+ baseUrl: this.baseUrl,
3965
+ path: `${RED_TEAM_REPORT_PATH}/${jobId}/download`,
3966
+ params,
3967
+ oauthClient: this.oauthClient,
3968
+ numRetries: this.numRetries
3969
+ });
3970
+ return res.data;
3971
+ }
3972
+ /** Generate a partial report for a running scan. */
3973
+ async generatePartialReport(jobId) {
3974
+ validateJobId(jobId);
3975
+ const res = await managementHttpRequest({
3976
+ method: "POST",
3977
+ baseUrl: this.baseUrl,
3978
+ path: `${RED_TEAM_REPORT_PATH}/${jobId}/generate-partial-report`,
3979
+ oauthClient: this.oauthClient,
3980
+ numRetries: this.numRetries
3981
+ });
3982
+ return res.data;
3983
+ }
3984
+ };
3985
+
3986
+ // src/red-team/custom-attack-reports-client.ts
3987
+ function buildListParams6(opts) {
3988
+ const params = {};
3989
+ if (opts?.skip !== void 0) params.skip = String(opts.skip);
3990
+ if (opts?.limit !== void 0) params.limit = String(opts.limit);
3991
+ if (opts?.sort_by !== void 0) params.sort_by = opts.sort_by;
3992
+ if (opts?.sort_direction !== void 0) params.sort_direction = opts.sort_direction;
3993
+ if (opts?.search !== void 0) params.search = opts.search;
3994
+ return params;
3995
+ }
3996
+ function validateJobId2(jobId) {
3997
+ if (!isValidUuid(jobId)) {
3998
+ throw new AISecSDKException(`Invalid job id: ${jobId}`, "AISEC_USER_REQUEST_PAYLOAD_ERROR" /* USER_REQUEST_PAYLOAD_ERROR */);
3999
+ }
4000
+ }
4001
+ var RedTeamCustomAttackReportsClient = class {
4002
+ baseUrl;
4003
+ oauthClient;
4004
+ numRetries;
4005
+ constructor(opts) {
4006
+ this.baseUrl = opts.baseUrl;
4007
+ this.oauthClient = opts.oauthClient;
4008
+ this.numRetries = opts.numRetries;
4009
+ }
4010
+ /** Get custom attack report for a scan. */
4011
+ async getReport(jobId) {
4012
+ validateJobId2(jobId);
4013
+ const res = await managementHttpRequest({
4014
+ method: "GET",
4015
+ baseUrl: this.baseUrl,
4016
+ path: `${RED_TEAM_CUSTOM_ATTACKS_REPORT_PATH}/report/${jobId}`,
4017
+ oauthClient: this.oauthClient,
4018
+ numRetries: this.numRetries
4019
+ });
4020
+ return res.data;
4021
+ }
4022
+ /** Get prompt sets for a custom attack scan. */
4023
+ async getPromptSets(jobId) {
4024
+ validateJobId2(jobId);
4025
+ const res = await managementHttpRequest({
4026
+ method: "GET",
4027
+ baseUrl: this.baseUrl,
4028
+ path: `${RED_TEAM_CUSTOM_ATTACKS_REPORT_PATH}/report/${jobId}/prompt-sets`,
4029
+ oauthClient: this.oauthClient,
4030
+ numRetries: this.numRetries
4031
+ });
4032
+ return res.data;
4033
+ }
4034
+ /** Get prompts for a specific prompt set in a scan. */
4035
+ async getPromptsBySet(jobId, promptSetId, opts) {
4036
+ validateJobId2(jobId);
4037
+ if (!isValidUuid(promptSetId)) {
4038
+ throw new AISecSDKException(
4039
+ `Invalid prompt set id: ${promptSetId}`,
4040
+ "AISEC_USER_REQUEST_PAYLOAD_ERROR" /* USER_REQUEST_PAYLOAD_ERROR */
4041
+ );
4042
+ }
4043
+ const res = await managementHttpRequest({
4044
+ method: "GET",
4045
+ baseUrl: this.baseUrl,
4046
+ path: `${RED_TEAM_CUSTOM_ATTACKS_REPORT_PATH}/report/${jobId}/prompt-set/${promptSetId}/prompts`,
4047
+ params: buildListParams6(opts),
4048
+ oauthClient: this.oauthClient,
4049
+ numRetries: this.numRetries
4050
+ });
4051
+ return res.data;
4052
+ }
4053
+ /** Get details for a specific prompt. */
4054
+ async getPromptDetail(jobId, promptId) {
4055
+ validateJobId2(jobId);
4056
+ if (!isValidUuid(promptId)) {
4057
+ throw new AISecSDKException(
4058
+ `Invalid prompt id: ${promptId}`,
4059
+ "AISEC_USER_REQUEST_PAYLOAD_ERROR" /* USER_REQUEST_PAYLOAD_ERROR */
4060
+ );
4061
+ }
4062
+ const res = await managementHttpRequest({
4063
+ method: "GET",
4064
+ baseUrl: this.baseUrl,
4065
+ path: `${RED_TEAM_CUSTOM_ATTACKS_REPORT_PATH}/report/${jobId}/prompt/${promptId}`,
4066
+ oauthClient: this.oauthClient,
4067
+ numRetries: this.numRetries
4068
+ });
4069
+ return res.data;
4070
+ }
4071
+ /** List custom attacks for a scan. */
4072
+ async listCustomAttacks(jobId, opts) {
4073
+ validateJobId2(jobId);
4074
+ const res = await managementHttpRequest({
4075
+ method: "GET",
4076
+ baseUrl: this.baseUrl,
4077
+ path: `${RED_TEAM_CUSTOM_ATTACKS_REPORT_PATH}/job/${jobId}/list-custom-attacks`,
4078
+ params: buildListParams6(opts),
4079
+ oauthClient: this.oauthClient,
4080
+ numRetries: this.numRetries
4081
+ });
4082
+ return res.data;
4083
+ }
4084
+ /** Get attack outputs for a custom attack. */
4085
+ async getAttackOutputs(jobId, attackId) {
4086
+ validateJobId2(jobId);
4087
+ if (!isValidUuid(attackId)) {
4088
+ throw new AISecSDKException(
4089
+ `Invalid attack id: ${attackId}`,
4090
+ "AISEC_USER_REQUEST_PAYLOAD_ERROR" /* USER_REQUEST_PAYLOAD_ERROR */
4091
+ );
4092
+ }
4093
+ const res = await managementHttpRequest({
4094
+ method: "GET",
4095
+ baseUrl: this.baseUrl,
4096
+ path: `${RED_TEAM_CUSTOM_ATTACKS_REPORT_PATH}/job/${jobId}/attack/${attackId}/list-outputs`,
4097
+ oauthClient: this.oauthClient,
4098
+ numRetries: this.numRetries
4099
+ });
4100
+ return res.data;
4101
+ }
4102
+ /** Get property statistics for a custom attack scan. */
4103
+ async getPropertyStats(jobId) {
4104
+ validateJobId2(jobId);
4105
+ const res = await managementHttpRequest({
4106
+ method: "GET",
4107
+ baseUrl: this.baseUrl,
4108
+ path: `${RED_TEAM_CUSTOM_ATTACKS_REPORT_PATH}/job/${jobId}/property-stats`,
4109
+ oauthClient: this.oauthClient,
4110
+ numRetries: this.numRetries
4111
+ });
4112
+ return res.data;
4113
+ }
4114
+ };
4115
+
4116
+ // src/red-team/targets-client.ts
4117
+ function buildListParams7(opts) {
4118
+ const params = {};
4119
+ if (opts?.skip !== void 0) params.skip = String(opts.skip);
4120
+ if (opts?.limit !== void 0) params.limit = String(opts.limit);
4121
+ if (opts?.sort_by !== void 0) params.sort_by = opts.sort_by;
4122
+ if (opts?.sort_direction !== void 0) params.sort_direction = opts.sort_direction;
4123
+ if (opts?.search !== void 0) params.search = opts.search;
4124
+ return params;
4125
+ }
4126
+ var RedTeamTargetsClient = class {
4127
+ baseUrl;
4128
+ oauthClient;
4129
+ numRetries;
4130
+ constructor(opts) {
4131
+ this.baseUrl = opts.baseUrl;
4132
+ this.oauthClient = opts.oauthClient;
4133
+ this.numRetries = opts.numRetries;
4134
+ }
4135
+ /** Create a new target. */
4136
+ async create(request) {
4137
+ const res = await managementHttpRequest({
4138
+ method: "POST",
4139
+ baseUrl: this.baseUrl,
4140
+ path: RED_TEAM_TARGET_PATH,
4141
+ body: request,
4142
+ oauthClient: this.oauthClient,
4143
+ numRetries: this.numRetries
4144
+ });
4145
+ return res.data;
4146
+ }
4147
+ /** List targets with optional filters. */
4148
+ async list(opts) {
4149
+ const params = buildListParams7(opts);
4150
+ if (opts?.target_type !== void 0) params.target_type = opts.target_type;
4151
+ if (opts?.status !== void 0) params.status = opts.status;
4152
+ if (opts?.active !== void 0) params.active = String(opts.active);
4153
+ const res = await managementHttpRequest({
4154
+ method: "GET",
4155
+ baseUrl: this.baseUrl,
4156
+ path: RED_TEAM_TARGET_PATH,
4157
+ params,
4158
+ oauthClient: this.oauthClient,
4159
+ numRetries: this.numRetries
4160
+ });
4161
+ return res.data;
4162
+ }
4163
+ /** Get a target by UUID. */
4164
+ async get(uuid) {
4165
+ if (!isValidUuid(uuid)) {
4166
+ throw new AISecSDKException(
4167
+ `Invalid target uuid: ${uuid}`,
4168
+ "AISEC_USER_REQUEST_PAYLOAD_ERROR" /* USER_REQUEST_PAYLOAD_ERROR */
4169
+ );
4170
+ }
4171
+ const res = await managementHttpRequest({
4172
+ method: "GET",
4173
+ baseUrl: this.baseUrl,
4174
+ path: `${RED_TEAM_TARGET_PATH}/${uuid}`,
4175
+ oauthClient: this.oauthClient,
4176
+ numRetries: this.numRetries
4177
+ });
4178
+ return res.data;
4179
+ }
4180
+ /** Update a target. */
4181
+ async update(uuid, request) {
4182
+ if (!isValidUuid(uuid)) {
4183
+ throw new AISecSDKException(
4184
+ `Invalid target uuid: ${uuid}`,
4185
+ "AISEC_USER_REQUEST_PAYLOAD_ERROR" /* USER_REQUEST_PAYLOAD_ERROR */
4186
+ );
4187
+ }
4188
+ const res = await managementHttpRequest({
4189
+ method: "PUT",
4190
+ baseUrl: this.baseUrl,
4191
+ path: `${RED_TEAM_TARGET_PATH}/${uuid}`,
4192
+ body: request,
4193
+ oauthClient: this.oauthClient,
4194
+ numRetries: this.numRetries
4195
+ });
4196
+ return res.data;
4197
+ }
4198
+ /** Delete a target. */
4199
+ async delete(uuid) {
4200
+ if (!isValidUuid(uuid)) {
4201
+ throw new AISecSDKException(
4202
+ `Invalid target uuid: ${uuid}`,
4203
+ "AISEC_USER_REQUEST_PAYLOAD_ERROR" /* USER_REQUEST_PAYLOAD_ERROR */
4204
+ );
4205
+ }
4206
+ const res = await managementHttpRequest({
4207
+ method: "DELETE",
4208
+ baseUrl: this.baseUrl,
4209
+ path: `${RED_TEAM_TARGET_PATH}/${uuid}`,
4210
+ oauthClient: this.oauthClient,
4211
+ numRetries: this.numRetries
4212
+ });
4213
+ return res.data;
4214
+ }
4215
+ /** Run profiling probes on a target. */
4216
+ async probe(request) {
4217
+ const res = await managementHttpRequest({
4218
+ method: "POST",
4219
+ baseUrl: this.baseUrl,
4220
+ path: `${RED_TEAM_TARGET_PATH}/probe`,
4221
+ body: request,
4222
+ oauthClient: this.oauthClient,
4223
+ numRetries: this.numRetries
4224
+ });
4225
+ return res.data;
4226
+ }
4227
+ /** Get profiling results for a target. */
4228
+ async getProfile(uuid) {
4229
+ if (!isValidUuid(uuid)) {
4230
+ throw new AISecSDKException(
4231
+ `Invalid target uuid: ${uuid}`,
4232
+ "AISEC_USER_REQUEST_PAYLOAD_ERROR" /* USER_REQUEST_PAYLOAD_ERROR */
4233
+ );
4234
+ }
4235
+ const res = await managementHttpRequest({
4236
+ method: "GET",
4237
+ baseUrl: this.baseUrl,
4238
+ path: `${RED_TEAM_TARGET_PATH}/${uuid}/profile`,
4239
+ oauthClient: this.oauthClient,
4240
+ numRetries: this.numRetries
4241
+ });
4242
+ return res.data;
4243
+ }
4244
+ /** Update a target profile (background + additional context). */
4245
+ async updateProfile(uuid, request) {
4246
+ if (!isValidUuid(uuid)) {
4247
+ throw new AISecSDKException(
4248
+ `Invalid target uuid: ${uuid}`,
4249
+ "AISEC_USER_REQUEST_PAYLOAD_ERROR" /* USER_REQUEST_PAYLOAD_ERROR */
4250
+ );
4251
+ }
4252
+ const res = await managementHttpRequest({
4253
+ method: "PUT",
4254
+ baseUrl: this.baseUrl,
4255
+ path: `${RED_TEAM_TARGET_PATH}/${uuid}/profile`,
4256
+ body: request,
4257
+ oauthClient: this.oauthClient,
4258
+ numRetries: this.numRetries
4259
+ });
4260
+ return res.data;
4261
+ }
4262
+ };
4263
+
4264
+ // src/red-team/custom-attacks-client.ts
4265
+ function buildListParams8(opts) {
4266
+ const params = {};
4267
+ if (opts?.skip !== void 0) params.skip = String(opts.skip);
4268
+ if (opts?.limit !== void 0) params.limit = String(opts.limit);
4269
+ if (opts?.sort_by !== void 0) params.sort_by = opts.sort_by;
4270
+ if (opts?.sort_direction !== void 0) params.sort_direction = opts.sort_direction;
4271
+ if (opts?.search !== void 0) params.search = opts.search;
4272
+ return params;
4273
+ }
4274
+ function validateUuid(uuid, label) {
4275
+ if (!isValidUuid(uuid)) {
4276
+ throw new AISecSDKException(`Invalid ${label}: ${uuid}`, "AISEC_USER_REQUEST_PAYLOAD_ERROR" /* USER_REQUEST_PAYLOAD_ERROR */);
4277
+ }
4278
+ }
4279
+ var RedTeamCustomAttacksClient = class {
4280
+ baseUrl;
4281
+ oauthClient;
4282
+ numRetries;
4283
+ constructor(opts) {
4284
+ this.baseUrl = opts.baseUrl;
4285
+ this.oauthClient = opts.oauthClient;
4286
+ this.numRetries = opts.numRetries;
4287
+ }
4288
+ // -----------------------------------------------------------------------
4289
+ // Prompt Set operations
4290
+ // -----------------------------------------------------------------------
4291
+ /** Create a new custom prompt set. */
4292
+ async createPromptSet(request) {
4293
+ const res = await managementHttpRequest({
4294
+ method: "POST",
4295
+ baseUrl: this.baseUrl,
4296
+ path: `${RED_TEAM_CUSTOM_ATTACK_PATH}/custom-prompt-set`,
4297
+ body: request,
4298
+ oauthClient: this.oauthClient,
4299
+ numRetries: this.numRetries
4300
+ });
4301
+ return res.data;
4302
+ }
4303
+ /** List custom prompt sets. */
4304
+ async listPromptSets(opts) {
4305
+ const params = buildListParams8(opts);
4306
+ if (opts?.active !== void 0) params.active = String(opts.active);
4307
+ if (opts?.archive !== void 0) params.archive = String(opts.archive);
4308
+ const res = await managementHttpRequest({
4309
+ method: "GET",
4310
+ baseUrl: this.baseUrl,
4311
+ path: `${RED_TEAM_CUSTOM_ATTACK_PATH}/list-custom-prompt-sets`,
4312
+ params,
4313
+ oauthClient: this.oauthClient,
4314
+ numRetries: this.numRetries
4315
+ });
4316
+ return res.data;
4317
+ }
4318
+ /** Get a prompt set by UUID. */
4319
+ async getPromptSet(uuid) {
4320
+ validateUuid(uuid, "prompt set uuid");
4321
+ const res = await managementHttpRequest({
4322
+ method: "GET",
4323
+ baseUrl: this.baseUrl,
4324
+ path: `${RED_TEAM_CUSTOM_ATTACK_PATH}/custom-prompt-set/${uuid}`,
4325
+ oauthClient: this.oauthClient,
4326
+ numRetries: this.numRetries
4327
+ });
4328
+ return res.data;
4329
+ }
4330
+ /** Update a prompt set. */
4331
+ async updatePromptSet(uuid, request) {
4332
+ validateUuid(uuid, "prompt set uuid");
4333
+ const res = await managementHttpRequest({
4334
+ method: "PUT",
4335
+ baseUrl: this.baseUrl,
4336
+ path: `${RED_TEAM_CUSTOM_ATTACK_PATH}/custom-prompt-set/${uuid}`,
4337
+ body: request,
4338
+ oauthClient: this.oauthClient,
4339
+ numRetries: this.numRetries
4340
+ });
4341
+ return res.data;
4342
+ }
4343
+ /** Archive or unarchive a prompt set. */
4344
+ async archivePromptSet(uuid, request) {
4345
+ validateUuid(uuid, "prompt set uuid");
4346
+ const res = await managementHttpRequest({
4347
+ method: "PUT",
4348
+ baseUrl: this.baseUrl,
4349
+ path: `${RED_TEAM_CUSTOM_ATTACK_PATH}/custom-prompt-set/${uuid}/archive`,
4350
+ body: request,
4351
+ oauthClient: this.oauthClient,
4352
+ numRetries: this.numRetries
4353
+ });
4354
+ return res.data;
4355
+ }
4356
+ /** Resolve a prompt set reference for data plane consumption. */
4357
+ async getPromptSetReference(uuid) {
4358
+ validateUuid(uuid, "prompt set uuid");
4359
+ const res = await managementHttpRequest({
4360
+ method: "GET",
4361
+ baseUrl: this.baseUrl,
4362
+ path: `${RED_TEAM_CUSTOM_ATTACK_PATH}/custom-prompt-set/${uuid}/reference`,
4363
+ oauthClient: this.oauthClient,
4364
+ numRetries: this.numRetries
4365
+ });
4366
+ return res.data;
4367
+ }
4368
+ /** Get version information for a prompt set. */
4369
+ async getPromptSetVersionInfo(uuid) {
4370
+ validateUuid(uuid, "prompt set uuid");
4371
+ const res = await managementHttpRequest({
4372
+ method: "GET",
4373
+ baseUrl: this.baseUrl,
4374
+ path: `${RED_TEAM_CUSTOM_ATTACK_PATH}/custom-prompt-set/${uuid}/version-info`,
4375
+ oauthClient: this.oauthClient,
4376
+ numRetries: this.numRetries
4377
+ });
4378
+ return res.data;
4379
+ }
4380
+ /** List active prompt sets (for data plane). */
4381
+ async listActivePromptSets() {
4382
+ const res = await managementHttpRequest({
4383
+ method: "GET",
4384
+ baseUrl: this.baseUrl,
4385
+ path: `${RED_TEAM_CUSTOM_ATTACK_PATH}/active-custom-prompt-sets`,
4386
+ oauthClient: this.oauthClient,
4387
+ numRetries: this.numRetries
4388
+ });
4389
+ return res.data;
4390
+ }
4391
+ /** Download CSV template for a prompt set. */
4392
+ async downloadTemplate(uuid) {
4393
+ validateUuid(uuid, "prompt set uuid");
4394
+ const res = await managementHttpRequest({
4395
+ method: "GET",
4396
+ baseUrl: this.baseUrl,
4397
+ path: `${RED_TEAM_CUSTOM_ATTACK_PATH}/download-template/${uuid}`,
4398
+ oauthClient: this.oauthClient,
4399
+ numRetries: this.numRetries
4400
+ });
4401
+ return res.data;
4402
+ }
4403
+ // -----------------------------------------------------------------------
4404
+ // Prompt operations
4405
+ // -----------------------------------------------------------------------
4406
+ /** Create a new custom prompt. */
4407
+ async createPrompt(request) {
4408
+ const res = await managementHttpRequest({
4409
+ method: "POST",
4410
+ baseUrl: this.baseUrl,
4411
+ path: `${RED_TEAM_CUSTOM_ATTACK_PATH}/custom-prompt-set/custom-prompt`,
4412
+ body: request,
4413
+ oauthClient: this.oauthClient,
4414
+ numRetries: this.numRetries
4415
+ });
4416
+ return res.data;
4417
+ }
4418
+ /** List prompts in a prompt set. */
4419
+ async listPrompts(promptSetUuid, opts) {
4420
+ validateUuid(promptSetUuid, "prompt set uuid");
4421
+ const params = buildListParams8(opts);
4422
+ if (opts?.active !== void 0) params.active = String(opts.active);
4423
+ const res = await managementHttpRequest({
4424
+ method: "GET",
4425
+ baseUrl: this.baseUrl,
4426
+ path: `${RED_TEAM_CUSTOM_ATTACK_PATH}/custom-prompt-set/${promptSetUuid}/list-custom-prompts`,
4427
+ params,
4428
+ oauthClient: this.oauthClient,
4429
+ numRetries: this.numRetries
4430
+ });
4431
+ return res.data;
4432
+ }
4433
+ /** Get a prompt by UUID. */
4434
+ async getPrompt(promptSetUuid, promptUuid) {
4435
+ validateUuid(promptSetUuid, "prompt set uuid");
4436
+ validateUuid(promptUuid, "prompt uuid");
4437
+ const res = await managementHttpRequest({
4438
+ method: "GET",
4439
+ baseUrl: this.baseUrl,
4440
+ path: `${RED_TEAM_CUSTOM_ATTACK_PATH}/custom-prompt-set/${promptSetUuid}/custom-prompt/${promptUuid}`,
4441
+ oauthClient: this.oauthClient,
4442
+ numRetries: this.numRetries
4443
+ });
4444
+ return res.data;
4445
+ }
4446
+ /** Update a prompt. */
4447
+ async updatePrompt(promptSetUuid, promptUuid, request) {
4448
+ validateUuid(promptSetUuid, "prompt set uuid");
4449
+ validateUuid(promptUuid, "prompt uuid");
4450
+ const res = await managementHttpRequest({
4451
+ method: "PUT",
4452
+ baseUrl: this.baseUrl,
4453
+ path: `${RED_TEAM_CUSTOM_ATTACK_PATH}/custom-prompt-set/${promptSetUuid}/custom-prompt/${promptUuid}`,
4454
+ body: request,
4455
+ oauthClient: this.oauthClient,
4456
+ numRetries: this.numRetries
4457
+ });
4458
+ return res.data;
4459
+ }
4460
+ /** Delete a prompt. */
4461
+ async deletePrompt(promptSetUuid, promptUuid) {
4462
+ validateUuid(promptSetUuid, "prompt set uuid");
4463
+ validateUuid(promptUuid, "prompt uuid");
4464
+ const res = await managementHttpRequest({
4465
+ method: "DELETE",
4466
+ baseUrl: this.baseUrl,
4467
+ path: `${RED_TEAM_CUSTOM_ATTACK_PATH}/custom-prompt-set/${promptSetUuid}/custom-prompt/${promptUuid}`,
4468
+ oauthClient: this.oauthClient,
4469
+ numRetries: this.numRetries
4470
+ });
4471
+ return res.data;
4472
+ }
4473
+ // -----------------------------------------------------------------------
4474
+ // Property operations
4475
+ // -----------------------------------------------------------------------
4476
+ /** Get all property names. */
4477
+ async getPropertyNames() {
4478
+ const res = await managementHttpRequest({
4479
+ method: "GET",
4480
+ baseUrl: this.baseUrl,
4481
+ path: `${RED_TEAM_CUSTOM_ATTACK_PATH}/property-names`,
4482
+ oauthClient: this.oauthClient,
4483
+ numRetries: this.numRetries
4484
+ });
4485
+ return res.data;
4486
+ }
4487
+ /** Create a new property name. */
4488
+ async createPropertyName(request) {
4489
+ const res = await managementHttpRequest({
4490
+ method: "POST",
4491
+ baseUrl: this.baseUrl,
4492
+ path: `${RED_TEAM_CUSTOM_ATTACK_PATH}/property-names`,
4493
+ body: request,
4494
+ oauthClient: this.oauthClient,
4495
+ numRetries: this.numRetries
4496
+ });
4497
+ return res.data;
4498
+ }
4499
+ /** Get values for a property name. */
4500
+ async getPropertyValues(propertyName) {
4501
+ const res = await managementHttpRequest({
4502
+ method: "GET",
4503
+ baseUrl: this.baseUrl,
4504
+ path: `${RED_TEAM_CUSTOM_ATTACK_PATH}/property-values/${encodeURIComponent(propertyName)}`,
4505
+ oauthClient: this.oauthClient,
4506
+ numRetries: this.numRetries
4507
+ });
4508
+ return res.data;
4509
+ }
4510
+ /** Get values for multiple property names. */
4511
+ async getPropertyValuesMultiple(propertyNames) {
4512
+ const url = new URL(`https://placeholder${RED_TEAM_CUSTOM_ATTACK_PATH}/property-values`);
4513
+ for (const name of propertyNames) {
4514
+ url.searchParams.append("property_names", name);
4515
+ }
4516
+ const queryString = url.searchParams.toString();
4517
+ const pathWithQuery = `${RED_TEAM_CUSTOM_ATTACK_PATH}/property-values${queryString ? `?${queryString}` : ""}`;
4518
+ const res = await managementHttpRequest({
4519
+ method: "GET",
4520
+ baseUrl: this.baseUrl,
4521
+ path: pathWithQuery,
4522
+ oauthClient: this.oauthClient,
4523
+ numRetries: this.numRetries
4524
+ });
4525
+ return res.data;
4526
+ }
4527
+ /** Create a property value. */
4528
+ async createPropertyValue(request) {
4529
+ const res = await managementHttpRequest({
4530
+ method: "POST",
4531
+ baseUrl: this.baseUrl,
4532
+ path: `${RED_TEAM_CUSTOM_ATTACK_PATH}/property-values`,
4533
+ body: request,
4534
+ oauthClient: this.oauthClient,
4535
+ numRetries: this.numRetries
4536
+ });
4537
+ return res.data;
4538
+ }
4539
+ };
4540
+
4541
+ // src/red-team/client.ts
4542
+ function buildListParams9(opts) {
4543
+ const params = {};
4544
+ if (opts?.skip !== void 0) params.skip = String(opts.skip);
4545
+ if (opts?.limit !== void 0) params.limit = String(opts.limit);
4546
+ if (opts?.sort_by !== void 0) params.sort_by = opts.sort_by;
4547
+ if (opts?.sort_direction !== void 0) params.sort_direction = opts.sort_direction;
4548
+ if (opts?.search !== void 0) params.search = opts.search;
4549
+ return params;
4550
+ }
4551
+ var RedTeamClient = class {
4552
+ /** Data plane scan operations. */
4553
+ scans;
4554
+ /** Data plane report operations. */
4555
+ reports;
4556
+ /** Data plane custom attack report operations. */
4557
+ customAttackReports;
4558
+ /** Management plane target operations. */
4559
+ targets;
4560
+ /** Management plane custom attack/prompt set operations. */
4561
+ customAttacks;
4562
+ dataEndpoint;
4563
+ mgmtEndpoint;
4564
+ oauthClient;
4565
+ numRetries;
4566
+ constructor(opts = {}) {
4567
+ const clientId = opts.clientId ?? process.env[RED_TEAM_CLIENT_ID] ?? process.env[MGMT_CLIENT_ID];
4568
+ const clientSecret = opts.clientSecret ?? process.env[RED_TEAM_CLIENT_SECRET] ?? process.env[MGMT_CLIENT_SECRET];
4569
+ const tsgId = opts.tsgId ?? process.env[RED_TEAM_TSG_ID] ?? process.env[MGMT_TSG_ID];
4570
+ const dataEndpoint = opts.dataEndpoint ?? process.env[RED_TEAM_DATA_ENDPOINT] ?? DEFAULT_RED_TEAM_DATA_ENDPOINT;
4571
+ const mgmtEndpoint = opts.mgmtEndpoint ?? process.env[RED_TEAM_MGMT_ENDPOINT] ?? DEFAULT_RED_TEAM_MGMT_ENDPOINT;
4572
+ const tokenEndpoint = opts.tokenEndpoint ?? process.env[RED_TEAM_TOKEN_ENDPOINT] ?? process.env[MGMT_TOKEN_ENDPOINT];
4573
+ const numRetries = Math.min(
4574
+ Math.max(opts.numRetries ?? MAX_NUMBER_OF_RETRIES, 0),
4575
+ MAX_NUMBER_OF_RETRIES
4576
+ );
4577
+ if (!clientId) {
4578
+ throw new AISecSDKException(
4579
+ "clientId is required (option or PANW_RED_TEAM_CLIENT_ID / PANW_MGMT_CLIENT_ID env var)",
4580
+ "AISEC_MISSING_VARIABLE" /* MISSING_VARIABLE */
4581
+ );
4582
+ }
4583
+ if (!clientSecret) {
4584
+ throw new AISecSDKException(
4585
+ "clientSecret is required (option or PANW_RED_TEAM_CLIENT_SECRET / PANW_MGMT_CLIENT_SECRET env var)",
4586
+ "AISEC_MISSING_VARIABLE" /* MISSING_VARIABLE */
4587
+ );
4588
+ }
4589
+ if (!tsgId) {
4590
+ throw new AISecSDKException(
4591
+ "tsgId is required (option or PANW_RED_TEAM_TSG_ID / PANW_MGMT_TSG_ID env var)",
4592
+ "AISEC_MISSING_VARIABLE" /* MISSING_VARIABLE */
4593
+ );
4594
+ }
4595
+ this.oauthClient = new OAuthClient({ clientId, clientSecret, tsgId, tokenEndpoint });
4596
+ this.dataEndpoint = dataEndpoint;
4597
+ this.mgmtEndpoint = mgmtEndpoint;
4598
+ this.numRetries = numRetries;
4599
+ this.scans = new RedTeamScansClient({
4600
+ baseUrl: dataEndpoint,
4601
+ oauthClient: this.oauthClient,
4602
+ numRetries
4603
+ });
4604
+ this.reports = new RedTeamReportsClient({
4605
+ baseUrl: dataEndpoint,
4606
+ oauthClient: this.oauthClient,
4607
+ numRetries
4608
+ });
4609
+ this.customAttackReports = new RedTeamCustomAttackReportsClient({
4610
+ baseUrl: dataEndpoint,
4611
+ oauthClient: this.oauthClient,
4612
+ numRetries
4613
+ });
4614
+ this.targets = new RedTeamTargetsClient({
4615
+ baseUrl: mgmtEndpoint,
4616
+ oauthClient: this.oauthClient,
4617
+ numRetries
4618
+ });
4619
+ this.customAttacks = new RedTeamCustomAttacksClient({
4620
+ baseUrl: mgmtEndpoint,
4621
+ oauthClient: this.oauthClient,
4622
+ numRetries
4623
+ });
4624
+ }
4625
+ // -----------------------------------------------------------------------
4626
+ // Data plane convenience methods
4627
+ // -----------------------------------------------------------------------
4628
+ /** Get scan statistics and risk profile (data plane dashboard). */
4629
+ async getScanStatistics(params) {
4630
+ const p = {};
4631
+ if (params?.date_range !== void 0) p.date_range = params.date_range;
4632
+ if (params?.target_id !== void 0) p.target_id = params.target_id;
4633
+ const res = await managementHttpRequest({
4634
+ method: "GET",
4635
+ baseUrl: this.dataEndpoint,
4636
+ path: `${RED_TEAM_DASHBOARD_PATH}/scan-statistics`,
4637
+ params: p,
4638
+ oauthClient: this.oauthClient,
4639
+ numRetries: this.numRetries
4640
+ });
4641
+ return res.data;
4642
+ }
4643
+ /** Get score trend for a target (data plane dashboard). */
4644
+ async getScoreTrend(targetId) {
4645
+ if (!isValidUuid(targetId)) {
4646
+ throw new AISecSDKException(
4647
+ `Invalid target id: ${targetId}`,
4648
+ "AISEC_USER_REQUEST_PAYLOAD_ERROR" /* USER_REQUEST_PAYLOAD_ERROR */
4649
+ );
4650
+ }
4651
+ const res = await managementHttpRequest({
4652
+ method: "GET",
4653
+ baseUrl: this.dataEndpoint,
4654
+ path: `${RED_TEAM_DASHBOARD_PATH}/score-trend`,
4655
+ params: { target_id: targetId },
4656
+ oauthClient: this.oauthClient,
4657
+ numRetries: this.numRetries
4658
+ });
4659
+ return res.data;
4660
+ }
4661
+ /** Get quota summary. */
4662
+ async getQuota() {
4663
+ const res = await managementHttpRequest({
4664
+ method: "POST",
4665
+ baseUrl: this.dataEndpoint,
4666
+ path: RED_TEAM_QUOTA_PATH,
4667
+ oauthClient: this.oauthClient,
4668
+ numRetries: this.numRetries
4669
+ });
4670
+ return res.data;
4671
+ }
4672
+ /** List error logs for a scan job. */
4673
+ async getErrorLogs(jobId, opts) {
4674
+ if (!isValidUuid(jobId)) {
4675
+ throw new AISecSDKException(`Invalid job id: ${jobId}`, "AISEC_USER_REQUEST_PAYLOAD_ERROR" /* USER_REQUEST_PAYLOAD_ERROR */);
4676
+ }
4677
+ const res = await managementHttpRequest({
4678
+ method: "GET",
4679
+ baseUrl: this.dataEndpoint,
4680
+ path: `${RED_TEAM_ERROR_LOG_PATH}/${jobId}`,
4681
+ params: buildListParams9(opts),
4682
+ oauthClient: this.oauthClient,
4683
+ numRetries: this.numRetries
4684
+ });
4685
+ return res.data;
4686
+ }
4687
+ /** Update sentiment for a scan report. */
4688
+ async updateSentiment(request) {
4689
+ const res = await managementHttpRequest({
4690
+ method: "POST",
4691
+ baseUrl: this.dataEndpoint,
4692
+ path: RED_TEAM_SENTIMENT_PATH,
4693
+ body: request,
4694
+ oauthClient: this.oauthClient,
4695
+ numRetries: this.numRetries
4696
+ });
4697
+ return res.data;
4698
+ }
4699
+ /** Get sentiment for a scan report. */
4700
+ async getSentiment(jobId) {
4701
+ if (!isValidUuid(jobId)) {
4702
+ throw new AISecSDKException(`Invalid job id: ${jobId}`, "AISEC_USER_REQUEST_PAYLOAD_ERROR" /* USER_REQUEST_PAYLOAD_ERROR */);
4703
+ }
4704
+ const res = await managementHttpRequest({
4705
+ method: "GET",
4706
+ baseUrl: this.dataEndpoint,
4707
+ path: `${RED_TEAM_SENTIMENT_PATH}/${jobId}`,
4708
+ oauthClient: this.oauthClient,
4709
+ numRetries: this.numRetries
4710
+ });
4711
+ return res.data;
4712
+ }
4713
+ // -----------------------------------------------------------------------
4714
+ // Management plane convenience methods
4715
+ // -----------------------------------------------------------------------
4716
+ /** Get management dashboard overview. */
4717
+ async getDashboardOverview() {
4718
+ const res = await managementHttpRequest({
4719
+ method: "GET",
4720
+ baseUrl: this.mgmtEndpoint,
4721
+ path: RED_TEAM_MGMT_DASHBOARD_PATH,
4722
+ oauthClient: this.oauthClient,
4723
+ numRetries: this.numRetries
4724
+ });
4725
+ return res.data;
4726
+ }
4727
+ };
1274
4728
  // Annotate the CommonJS export names for ESM import in node:
1275
4729
  0 && (module.exports = {
1276
4730
  AISecSDKException,
@@ -1278,33 +4732,115 @@ var ManagementClient = class {
1278
4732
  AI_SEC_API_KEY,
1279
4733
  AI_SEC_API_TOKEN,
1280
4734
  ASYNC_SCAN_PATH,
4735
+ Action,
1281
4736
  AgentMetaSchema,
1282
4737
  AiProfileSchema,
4738
+ ApiEndpointType,
1283
4739
  AsyncScanObjectSchema,
1284
4740
  AsyncScanResponseSchema,
4741
+ AttackDetailResponseSchema,
4742
+ AttackListItemSchema,
4743
+ AttackListResponseSchema,
4744
+ AttackMultiTurnDetailResponseSchema,
4745
+ AttackMultiTurnOutputSchema,
4746
+ AttackOutputSchema,
4747
+ AttackStatus,
4748
+ AttackType,
4749
+ AuthType,
1285
4750
  BEARER,
4751
+ BaseResponseSchema,
4752
+ BrandSubCategory,
4753
+ Category,
4754
+ CategoryModelSchema,
4755
+ CategoryReportSchema,
4756
+ ComplianceReportSchema,
4757
+ ComplianceSubCategory,
4758
+ ComplianceTechniqueSchema,
1286
4759
  Content,
4760
+ CountByNameSchema,
4761
+ CountedQuotaEnum,
1287
4762
  CreateCustomTopicRequestSchema,
1288
4763
  CreateSecurityProfileRequestSchema,
4764
+ CustomAttackOutputSchema,
4765
+ CustomAttackReportResponseSchema,
4766
+ CustomAttacksListResponseSchema,
4767
+ CustomJobMetadataSchema,
4768
+ CustomPromptCreateRequestSchema,
4769
+ CustomPromptListItemSchema,
4770
+ CustomPromptListSchema,
4771
+ CustomPromptResponseSchema,
4772
+ CustomPromptSetArchiveRequestSchema,
4773
+ CustomPromptSetCreateRequestSchema,
4774
+ CustomPromptSetListActiveSchema,
4775
+ CustomPromptSetListItemSchema,
4776
+ CustomPromptSetListSchema,
4777
+ CustomPromptSetReferenceSchema,
4778
+ CustomPromptSetResponseSchema,
4779
+ CustomPromptSetUpdateRequestSchema,
4780
+ CustomPromptSetVersionInfoSchema,
4781
+ CustomPromptUpdateRequestSchema,
1289
4782
  CustomTopicListResponseSchema,
1290
4783
  CustomTopicSchema,
1291
4784
  DEFAULT_ENDPOINT,
1292
4785
  DEFAULT_MGMT_ENDPOINT,
4786
+ DEFAULT_MODEL_SEC_DATA_ENDPOINT,
4787
+ DEFAULT_MODEL_SEC_MGMT_ENDPOINT,
4788
+ DEFAULT_RED_TEAM_DATA_ENDPOINT,
4789
+ DEFAULT_RED_TEAM_MGMT_ENDPOINT,
1293
4790
  DEFAULT_TOKEN_ENDPOINT,
1294
4791
  DSDetailResultSchema,
1295
4792
  DSResultMetadataSchema,
4793
+ DashboardOverviewResponseSchema,
4794
+ DateRangeFilter,
1296
4795
  DeleteProfileConflictSchema,
1297
4796
  DeleteProfileResponseSchema,
1298
4797
  DeleteTopicConflictSchema,
1299
4798
  DeleteTopicResponseSchema,
1300
4799
  DetectionServiceResultSchema,
1301
4800
  DlpReportSchema,
4801
+ DynamicJobMetadataSchema,
4802
+ DynamicJobReportSchema,
4803
+ DynamicJobReportStatsSchema,
4804
+ ErrorCodes,
4805
+ ErrorLogListResponseSchema,
4806
+ ErrorLogSchema,
1302
4807
  ErrorResponseSchema,
4808
+ ErrorSource,
1303
4809
  ErrorType,
4810
+ EvalOutcome,
4811
+ EvalSummarySchema,
4812
+ FileFormat,
4813
+ FileListSchema,
4814
+ FileResponseSchema,
4815
+ FileScanDataSchema,
4816
+ FileScanResult,
4817
+ FileType,
4818
+ GoalListResponseSchema,
4819
+ GoalSchema,
4820
+ GoalType,
4821
+ GoalTypeQueryParam,
4822
+ GuardrailAction,
1304
4823
  HEADER_API_KEY,
1305
4824
  HEADER_AUTH_TOKEN,
4825
+ HTTPValidationErrorSchema,
1306
4826
  HTTP_FORCE_RETRY_STATUS_CODES,
1307
4827
  IODetectedSchema,
4828
+ JobAbortResponseSchema,
4829
+ JobCreateRequestSchema,
4830
+ JobListResponseSchema,
4831
+ JobResponseSchema,
4832
+ JobStatus,
4833
+ JobStatusFilter,
4834
+ JobTimeRecordSchema,
4835
+ JobType,
4836
+ LabelKeyListSchema,
4837
+ LabelSchema,
4838
+ LabelValueListSchema,
4839
+ LabelsCreateRequestSchema,
4840
+ LabelsResponseSchema,
4841
+ ListModelSecurityGroupsResponseSchema,
4842
+ ListModelSecurityRuleInstancesResponseSchema,
4843
+ ListModelSecurityRulesResponseSchema,
1308
4844
  MAX_AI_PROFILE_NAME_LENGTH,
1309
4845
  MAX_API_KEY_LENGTH,
1310
4846
  MAX_CONNECTION_POOL_SIZE,
@@ -1330,28 +4866,167 @@ var ManagementClient = class {
1330
4866
  MGMT_TOPIC_FORCE_PATH,
1331
4867
  MGMT_TOPIC_PATH,
1332
4868
  MGMT_TSG_ID,
4869
+ MODEL_SEC_CLIENT_ID,
4870
+ MODEL_SEC_CLIENT_SECRET,
4871
+ MODEL_SEC_DATA_ENDPOINT,
4872
+ MODEL_SEC_EVALUATIONS_PATH,
4873
+ MODEL_SEC_MGMT_ENDPOINT,
4874
+ MODEL_SEC_PYPI_AUTH_PATH,
4875
+ MODEL_SEC_SCANS_PATH,
4876
+ MODEL_SEC_SECURITY_GROUPS_PATH,
4877
+ MODEL_SEC_SECURITY_RULES_PATH,
4878
+ MODEL_SEC_TOKEN_ENDPOINT,
4879
+ MODEL_SEC_TSG_ID,
4880
+ MODEL_SEC_VIOLATIONS_PATH,
1333
4881
  ManagementClient,
1334
4882
  MaskedDataSchema,
1335
4883
  MetadataSchema,
4884
+ ModelScanIssueSchema,
4885
+ ModelScanStatus,
4886
+ ModelSecurityClient,
4887
+ ModelSecurityGroupCreateRequestSchema,
4888
+ ModelSecurityGroupResponseSchema,
4889
+ ModelSecurityGroupState,
4890
+ ModelSecurityGroupUpdateRequestSchema,
4891
+ ModelSecurityGroupsClient,
4892
+ ModelSecurityPaginationSchema,
4893
+ ModelSecurityRuleInstanceResponseSchema,
4894
+ ModelSecurityRuleInstanceUpdateRequestSchema,
4895
+ ModelSecurityRuleResponseSchema,
4896
+ ModelSecurityRulesClient,
4897
+ ModelSecurityScansClient,
1336
4898
  PAYLOAD_HASH,
1337
4899
  PolicySchema,
4900
+ PolicyType,
4901
+ PrerequisiteModelSchema,
1338
4902
  ProfilesClient,
4903
+ ProfilingStatus,
4904
+ PromptDetailResponseSchema,
1339
4905
  PromptDetectedSchema,
1340
4906
  PromptDetectionDetailsSchema,
4907
+ PromptSetStatsSchema,
4908
+ PromptSetSummarySchema,
4909
+ PromptSetsReportResponseSchema,
4910
+ PropertyAssignmentSchema,
4911
+ PropertyDefinitionSchema,
4912
+ PropertyNameCreateRequestSchema,
4913
+ PropertyNamesListResponseSchema,
4914
+ PropertyStatisticSchema,
4915
+ PropertyValueCreateRequestSchema,
4916
+ PropertyValueStatisticSchema,
4917
+ PropertyValuesMultipleResponseSchema,
4918
+ PropertyValuesResponseSchema,
4919
+ PyPIAuthResponseSchema,
4920
+ QuotaDetailsSchema,
4921
+ QuotaSummarySchema,
4922
+ RED_TEAM_CATEGORIES_PATH,
4923
+ RED_TEAM_CLIENT_ID,
4924
+ RED_TEAM_CLIENT_SECRET,
4925
+ RED_TEAM_CUSTOM_ATTACKS_REPORT_PATH,
4926
+ RED_TEAM_CUSTOM_ATTACK_PATH,
4927
+ RED_TEAM_DASHBOARD_PATH,
4928
+ RED_TEAM_DATA_ENDPOINT,
4929
+ RED_TEAM_ERROR_LOG_PATH,
4930
+ RED_TEAM_MGMT_DASHBOARD_PATH,
4931
+ RED_TEAM_MGMT_ENDPOINT,
4932
+ RED_TEAM_QUOTA_PATH,
4933
+ RED_TEAM_REPORT_DYNAMIC_PATH,
4934
+ RED_TEAM_REPORT_PATH,
4935
+ RED_TEAM_REPORT_STATIC_PATH,
4936
+ RED_TEAM_SCAN_PATH,
4937
+ RED_TEAM_SENTIMENT_PATH,
4938
+ RED_TEAM_TARGET_PATH,
4939
+ RED_TEAM_TOKEN_ENDPOINT,
4940
+ RED_TEAM_TSG_ID,
4941
+ RedTeamCategory,
4942
+ RedTeamClient,
4943
+ RedTeamCustomAttackReportsClient,
4944
+ RedTeamCustomAttacksClient,
4945
+ RedTeamErrorType,
4946
+ RedTeamPaginationSchema,
4947
+ RedTeamReportsClient,
4948
+ RedTeamScansClient,
4949
+ RedTeamTargetsClient,
4950
+ RemediationDetailSchema,
4951
+ RemediationResponseSchema,
1341
4952
  ResponseDetectedSchema,
1342
4953
  ResponseDetectionDetailsSchema,
4954
+ ResponseMode,
4955
+ RiskLevelSchema,
4956
+ RiskRating,
4957
+ RuleConfigurationSchema,
4958
+ RuleEditableFieldDropdownSchema,
4959
+ RuleEditableFieldSchema,
4960
+ RuleEditableFieldType,
4961
+ RuleEvaluationListSchema,
4962
+ RuleEvaluationResponseSchema,
4963
+ RuleEvaluationResult,
4964
+ RuleFieldValueKey,
4965
+ RuleRemediationSchema,
4966
+ RuleState,
4967
+ RuleType,
4968
+ RuntimeSecurityPolicySchema,
4969
+ RuntimeSecurityProfileResponseSchema,
1343
4970
  SCAN_REPORTS_PATH,
1344
4971
  SCAN_RESULTS_PATH,
1345
4972
  SDK_VERSION,
1346
4973
  SYNC_SCAN_PATH,
4974
+ SafetySubCategory,
4975
+ ScanBaseResponseSchema,
4976
+ ScanCreateRequestSchema,
4977
+ ScanDetailsSchema,
1347
4978
  ScanIdResultSchema,
4979
+ ScanListSchema,
4980
+ ScanOrigin,
1348
4981
  ScanRequestContentsInnerSchema,
1349
4982
  ScanRequestSchema,
1350
4983
  ScanResponseSchema,
4984
+ ScanStatisticsResponseSchema,
1351
4985
  ScanSummarySchema,
1352
4986
  Scanner,
4987
+ ScoreTrendResponseSchema,
4988
+ ScoreTrendSeriesSchema,
1353
4989
  SecurityProfileListResponseSchema,
1354
4990
  SecurityProfileSchema,
4991
+ SecuritySubCategory,
4992
+ SentimentRequestSchema,
4993
+ SentimentResponseSchema,
4994
+ SeverityFilter,
4995
+ SeverityReportSchema,
4996
+ SeverityStatsSchema,
4997
+ SortByDateField,
4998
+ SortByFileField,
4999
+ SortDirection,
5000
+ SourceType,
5001
+ StaticJobMetadataSchema,
5002
+ StaticJobRemediationRecommendationSchema,
5003
+ StaticJobRemediationSchema,
5004
+ StaticJobReportSchema,
5005
+ StaticJobReportStatsSchema,
5006
+ StatusQueryParam,
5007
+ StreamDetailResponseSchema,
5008
+ StreamIterationDataSchema,
5009
+ StreamListResponseSchema,
5010
+ StreamType,
5011
+ SubCategoryModelSchema,
5012
+ SubCategoryStatsSchema,
5013
+ TargetAdditionalContextSchema,
5014
+ TargetBackgroundSchema,
5015
+ TargetConnectionType,
5016
+ TargetContextUpdateSchema,
5017
+ TargetCreateRequestSchema,
5018
+ TargetJobRequestSchema,
5019
+ TargetListItemSchema,
5020
+ TargetListSchema,
5021
+ TargetMetadataSchema,
5022
+ TargetProbeRequestSchema,
5023
+ TargetProfileResponseSchema,
5024
+ TargetReferenceSchema,
5025
+ TargetResponseSchema,
5026
+ TargetStatus,
5027
+ TargetType,
5028
+ TargetUpdateRequestSchema,
5029
+ ThreatCategory,
1355
5030
  ThreatScanReportSchema,
1356
5031
  ToolDetectedSchema,
1357
5032
  ToolEventMetadataSchema,
@@ -1359,6 +5034,10 @@ var ManagementClient = class {
1359
5034
  TopicsClient,
1360
5035
  USER_AGENT,
1361
5036
  UrlfEntrySchema,
5037
+ ValidationErrorSchema,
5038
+ Verdict,
5039
+ ViolationListSchema,
5040
+ ViolationResponseSchema,
1362
5041
  globalConfiguration,
1363
5042
  init
1364
5043
  });