{"type":"api","title":"Start AI Validation","meta":{"id":"/apps/pubhub/media/ai-defense-management-api/eb82fedb4872c3db08ccfda98cff833c0e978762/262737b2-b3c2-32cd-b07b-fdbdcd23918f","info":{"title":"API for Cisco AI Defense platform services","description":"API for Cisco AI Defense platform services","version":"1.3.0","contact":{"name":"API Support","url":"https://www.cisco.com/site/us/en/products/security/ai-defense/index.html"},"license":{"name":"Apache 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"}},"security":[{"ApiKeyAuth":[]}],"tags":[{"name":"Policies","description":"API endpoints for AI Defense policy management"},{"name":"Applications","description":"API endpoints for AI Defense application management"},{"name":"Connections","description":"API endpoints for AI Defense connection management"},{"name":"Events","description":"API endpoints for AI Defense runtime events management"},{"name":"ProfilesServicePublic","description":"API endpoints for managing AI Defense profiles"},{"name":"AiValidationAPI"},{"name":"AwsCredentialsService"},{"name":"RedTeamService"},{"name":"ScanManagerAPI"},{"name":"MCP Registry (Beta)"},{"name":"Resource Connections (Beta)","description":"API endpoints for AI Defense resource connection management"},{"name":"IdpConfigService","description":"IdP configuration for JWT validation against an identity provider"},{"name":"OAuthClientService","description":"Reusable OAuth clients referenced by MCP servers for scanner and gateway authentication"},{"name":"Connectors","description":"API endpoints for AI Defense connector management"}],"x-parser-conf":{"overview":{"markdownPath":"reference/overview.md"}},"swagger":"2.0","host":"api.security.cisco.com","basePath":"/api/ai-defense/v1","schemes":["https"],"securityDefinitions":{"ApiKeyAuth":{"type":"apiKey","description":"API key for tenant authentication","name":"X-Cisco-AI-Defense-Tenant-API-Key","in":"header"}}},"spec":{"summary":"Start AI Validation","description":"Starts an AI validation job for a model or application. This endpoint triggers the validation process and returns a task ID.","operationId":"AiValidationAPI_StartAiValidation","responses":{"200":{"description":"A successful response.","schema":{"type":"object","example":{"task_id":"b0902628-89a5-4c3c-9145-f0e4c1adcd72"},"properties":{"task_id":{"type":"string","title":"task_id is the ai validation job / temporal workflow beeing executed","description":"task_id is the ai validation job / temporal workflow beeing executed"}},"description":"Response for starting an AI validation job. Contains the task ID of the started job.","title":"StartAiValidationResponse","$$ref":"#/definitions/v1StartAiValidationResponse"}},"default":{"description":"An unexpected error response.","schema":{"type":"object","properties":{"code":{"type":"integer","format":"int32","description":"The code integer"},"message":{"type":"string","description":"The message string"},"details":{"type":"array","items":{"type":"object","properties":{"@type":{"type":"string","description":"The @type string"}},"additionalProperties":true,"description":"Contains additional error details specific to the operation","$$ref":"#/definitions/AdditionalErrorDetails"},"description":"The details array"}},"description":"Details about API errors including code, message, and additional details","example":{"code":13,"message":"Internal","details":[]},"$$ref":"#/definitions/ErrorDetails"}}},"parameters":[{"name":"body","description":"Request to start an AI validation job. This request contains all necessary information to trigger a validation run for a model or application.","in":"body","required":true,"schema":{"type":"object","example":{"asset_type":"APPLICATION","application_id":"application_id","ai_asset_name":"application_name","validation_scan_name":"validation_scan_name","model_provider":"model_provider","headers":[{"key":"key","value":"value"}],"model_endpoint_url_model_id":"model_endpoint_url_model_id","model_request_template":"model_request_template","model_response_json_path":"model_response_json_path","description":"description","aws_region":"AWS_REGION_US_EAST_1","max_tokens":100,"temperature":0.5,"top_p":0.5,"additional_config":"additional_config","websocket_response_type_config":"WEBSOCKET_RESPONSE_TYPE_CONFIG_SINGLE_JSON"},"properties":{"asset_type":{"title":"the asset type e.g. Model or Application","type":"string","enum":["UNKNOWN","APPLICATION","MODEL","EXTERNAL"],"default":"UNKNOWN","description":"Enum values not prefixed with ASSET_TYPE_ to preserve backwards compatibility\nwith existing clients, database values, and API contracts.\n\n - UNKNOWN: buf:lint:ignore ENUM_VALUE_PREFIX\nbuf:lint:ignore ENUM_ZERO_VALUE_SUFFIX\n - APPLICATION: buf:lint:ignore ENUM_VALUE_PREFIX\n - MODEL: buf:lint:ignore ENUM_VALUE_PREFIX\n - EXTERNAL: buf:lint:ignore ENUM_VALUE_PREFIX","$$ref":"#/definitions/v1AssetType"},"application_id":{"type":"string","title":"application_id of the ai model validation, is only set for asset_type application","description":"application_id of the ai model validation, is only set for asset_type application"},"ai_asset_name":{"type":"string","title":"the asset_name is only set for asset_type application","description":"the asset_name is only set for asset_type application"},"validation_scan_name":{"type":"string","title":"the name of the ai model validation run","description":"the name of the ai model validation run"},"model_provider":{"type":"string","title":"model_provider is the model provider used e.g. Anthropic Claude","description":"model_provider is the model provider used e.g. Anthropic Claude"},"headers":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","description":"The key string"},"value":{"type":"string","description":"The value string"}},"description":"Schema for ai_validationv1Header","$$ref":"#/definitions/ai_validationv1Header"},"description":"headers are the headers used for the ai model validation when using external / model."},"model_endpoint_url_model_id":{"type":"string","title":"model_endpoint_url_model_id is the endpoint url or the model_id of the model to validate","description":"model_endpoint_url_model_id is the endpoint url or the model_id of the model to validate"},"model_request_template":{"type":"string","title":"model_request_template is the request template for the model","description":"model_request_template is the request template for the model"},"model_response_json_path":{"type":"string","title":"model_response_json_path is the response json path of the model","description":"model_response_json_path is the response json path of the model"},"description":{"type":"string","title":"the description of the test","description":"the description of the test"},"aws_region":{"description":"The region that the bedrock request will be handled from.","type":"string","enum":["AWS_REGION_UNSPECIFIED","AWS_REGION_US_EAST_1","AWS_REGION_US_WEST_2","AWS_REGION_EU_CENTRAL_1","AWS_REGION_AP_NORTHEAST_1"],"default":"AWS_REGION_UNSPECIFIED","$$ref":"#/definitions/generativevalidationAWSRegion"},"max_tokens":{"type":"integer","format":"int32","description":"Inference Parameters(Optional) for bedrock models\ne.g. temperature, max_tokens, top_p, top_k\nmax_tokens is the maximum number of tokens to generate in the response."},"temperature":{"type":"number","format":"float","description":"temperature is a value between 0 and 1 that controls the randomness of the output."},"top_p":{"type":"number","format":"float","description":"top_p is a value between 0 and 1 that controls the diversity of the output."},"stop_sequences":{"type":"array","items":{"type":"string"},"description":"Converse API allows a maximum of 4 stop sequences to be passed in the request."},"additional_config":{"type":"string","title":"additional_config is a string that contains additional configuration for the validation run","description":"additional_config is a string that contains additional configuration for the validation run"},"external_api_provider":{"title":"external api provider contains the provider information for the external validation","type":"string","enum":["EXTERNAL_API_PROVIDER_UNSPECIFIED","EXTERNAL_API_PROVIDER_AZURE_OPENAI","EXTERNAL_API_PROVIDER_OPENAI","EXTERNAL_API_PROVIDER_ANTHROPIC","EXTERNAL_API_PROVIDER_GEMINI","EXTERNAL_API_PROVIDER_MISTRAL","EXTERNAL_API_PROVIDER_CUSTOM","EXTERNAL_API_PROVIDER_LANGGRAPH"],"default":"EXTERNAL_API_PROVIDER_UNSPECIFIED","description":"ExternalApiProvider specifies the external API provider to use for the model connection\nspec.","$$ref":"#/definitions/generativevalidationExternalApiProvider"},"multi_turn_enabled":{"type":"boolean","description":"If set to true, run multi-turn attack prompts against the asset type."},"connector_id":{"type":"string","description":"Connector ID associated with the on-prem connection. Defaults to the Saas connection."},"oauth_client_id":{"type":"string","description":"Oauth2 client integration\nClientID is defined by the OAuth provider when AI Validation is registered as an application."},"oauth_client_secret":{"type":"string","description":"ClientSecret is defined by the OAuth provider when AI Validation is registered as an application."},"oauth_token_url":{"type":"string","description":"TokenURL is the Oauth service's endpoint to acquire and refresh access tokens."},"oauth_scopes":{"type":"array","items":{"type":"string"},"description":"Scopes are the permissions AI Validation needs to query the external API. The values are specific to the API\nprovider and OAuth service being used."},"language":{"description":"Language specifies the language in which users evaluate their AI application.","type":"string","enum":["LANGUAGE_EN","LANGUAGE_JA","LANGUAGE_FR","LANGUAGE_DE","LANGUAGE_ES","LANGUAGE_IT","LANGUAGE_AR","LANGUAGE_CS","LANGUAGE_PT","LANGUAGE_NL"],"default":"LANGUAGE_EN","$$ref":"#/definitions/generativevalidationLanguage"},"prompt_bank":{"title":"The prompt bank size","type":"string","enum":["PROMPT_BANK_UNSPECIFIED","PROMPT_BANK_DEFAULT","PROMPT_BANK_QUICK_SCAN","PROMPT_BANK_DEMO_SCAN","PROMPT_BANK_MAX","PROMPT_BANK_DEFAULT_V2","PROMPT_BANK_QUICK_SCAN_V2"],"default":"PROMPT_BANK_UNSPECIFIED","description":" - PROMPT_BANK_DEFAULT: v1 prompt banks are deprecated. Use the v2 prompt banks instead.","$$ref":"#/definitions/generativevalidationPromptBank"},"websocket_response_type_config":{"description":"Specifies how the websocket server sends responses.\nOptional - if unspecified, the client reads a single message.","type":"string","enum":["WEBSOCKET_RESPONSE_TYPE_CONFIG_UNSPECIFIED","WEBSOCKET_RESPONSE_TYPE_CONFIG_SINGLE_JSON"],"default":"WEBSOCKET_RESPONSE_TYPE_CONFIG_UNSPECIFIED","title":"WebsocketResponseTypeConfig specifies how the websocket server sends responses.\nThis is optional - if unspecified, behavior depends on response_json_path:\n- If response_json_path is empty: streaming text mode (accumulate all messages)\n- If response_json_path is set: single message mode (read and parse one message)","$$ref":"#/definitions/generativevalidationWebsocketResponseTypeConfig"},"use_custom_goals":{"type":"boolean","description":"If set to true, run validation using custom goals."},"connector_environment":{"description":"Connector environment type, reuses HybridEnvironment from the deployment controller.\nUsed to determine if proxy relay should be enabled for PRIVATE connectors.","type":"string","enum":["NONE_HYBRID_ENVIRONMENT","AWS_EKS","REDHAT_OPEN_SHIFT","AZURE_KUBERNETES_SERVICE","GOOGLE_KUBERNETES_ENGINE","PRIVATE"],"default":"NONE_HYBRID_ENVIRONMENT","$$ref":"#/definitions/v1HybridEnvironment"}},"description":"Request to start an AI validation job. This request contains all necessary information to trigger a validation run for a model or application.","title":"StartAiValidationRequest","$$ref":"#/definitions/v1StartAiValidationRequest"}}],"tags":["AiValidationAPI"],"__originalOperationId":"AiValidationAPI_StartAiValidation","consumes":["application/json"],"produces":["application/json"],"security":[{"ApiKeyAuth":[]}],"method":"post","path":"/ai-validation/start"}}