feat:Add Claroty suggest vendor model POST endpoint#259
Conversation
WalkthroughA new POST endpoint Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~8 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@src/libs/AI21/openapi.yaml`:
- Around line 3014-3019: The endpoint response currently uses an empty schema
causing generated clients to return raw strings; replace the empty schema with a
concrete component reference (e.g., $ref:
'#/components/schemas/ClarotySuggestVendorModelResponse') and then add a
matching components.schemas.ClarotySuggestVendorModelResponse definition that
models the actual JSON payload fields returned by the API so generated methods
return Task<ClarotySuggestVendorModelResponse> instead of string.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 87bc895c-9aaa-4a0d-b162-7d508817ba63
⛔ Files ignored due to path filters (115)
src/libs/AI21/Generated/AI21.Ai21Api.ClarotyProductLookupSolutionsClarotyProductLookupPost.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Ai21Api.ClarotySuggestVendorModelSolutionsClarotySuggestVendorModelPost.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.IAi21Api.ClarotySuggestVendorModelSolutionsClarotySuggestVendorModelPost.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.Assistant.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.AssistantBasicInfo.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.AssistantRoute.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.AssistantsByMcpResponse.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.BodyConvertDocumentFileStudioV1ChatFilesConvertPost.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.BodyParsePdfStudioV1DemosDocumentModifierParsePdfPost.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.BodyProcessRfiDocumentStudioV1DemosRfiProcessRfiPost.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.BodyUploadCheckComplianceStudioV1DemosRegulationsUploadCheckCompliancePost.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.BodyV1LibraryUpload.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ChatCompletion.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ChatCompletionResponseChoice.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ChatCompletionResponseDeltaChoice.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ChatCompletionVllmStreamingMessage.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ChatRequest.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ChatStreamingContentDelta.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ChatStreamingFirstDelta.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ChatStreamingToolCallsDelta.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ChatStreamingToolCallsFirstDelta.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ClarotySuggestVendorModelSolutionsClarotySuggestVendorModelPostResponse.Json.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ClarotySuggestVendorModelSolutionsClarotySuggestVendorModelPostResponse.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.CompareTextRequest.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ConnectorConnectionStatus.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ConnectorsDataSources.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ConnectorsStatus.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ConnectorsSyncParams.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ConnectorsToken.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.CreateAssistantRequest.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.CreateMCPStorageRequest.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.CreateMaestroRunsPayload.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.CreateOrganizationSchemaRequest.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.CreatePlanPayload.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.CreateRoutePayload.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.CreateSecretPayload.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.DataSourceMetadata.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.DeleteAssistantResponse.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.DeleteMCPStorageResponse.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.Demo.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.DemoCreate.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.DetectSchemaRequest.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.DetectSchemaResponse.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.DocumentReference.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.DocumentSchema.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.DownloadModifiedDocumentRequest.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.FileResponse.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.FunctionToolDefinition.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.GenerateAssistantRequest.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.GenerateAssistantResponse.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.HTTPToolEndpoint.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.HTTPToolFunction.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.HTTPToolFunctionParamProperties.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.HTTPToolFunctionParameters.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.HTTPToolResource.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.IgnestionBatchStatusCount.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.IngestionBatchStatusResponse.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.JambaExecuteRequest.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.LanguageStudioApiServerDataTypesChatToolDefinition.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.LanguageStudioApiServerDataTypesExecutionEngineRequirement.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.LibrarySearchRequest.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ListAssistantsResponse.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ListMCPsStorageResponse.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ListPlansResponse.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ListRoutesResponse.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.Logprobs.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.LogprobsData.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.MCPDefinition.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.MCPDiscoveryResponse.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.MCPStorageResponse.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.MCPTool.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.MaestroRunError.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.MaestroRunResult.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.MarkdownRequest.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.Message.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ModelInfo.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ModelPricing.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ModelsInfoResponse.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.OrgSchema.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.OrgSchemas.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.Plan.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.RFIResponseSection.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.RequirementItem.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.RequirementsGenerationRequest.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.RequirementsGenerationResponse.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ResponseFormat.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.RunAssistantRequest.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.SecretResponse.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.StarterQuestion.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.SystemMessage.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ThreadNameGenerationRequest.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ThreadNameGenerationResponse.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ToolCall.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ToolCallDelta.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ToolCallDeltaStart.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ToolFunction.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ToolFunctionDelta.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ToolFunctionDeltaStart.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ToolMessage.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ToolParameters.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.TopLogprobsData.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.UpdateMCPStorageRequest.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.UpdateRoutePayload.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.UsageInfo.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.UserMessage.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ValidationError.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.ValidationResult.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.WebsiteConnectorCreateConfigPayload.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.WebsiteConnectorIngestUrlPayload.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.WebsiteConnectorIngestWebsitePayload.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.WebsiteConnectorPayload.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.WebsiteConnectorRetryIngestWebsitePayload.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.WorkflowConfig.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.WorkspaceModelResponse.g.csis excluded by!**/generated/**src/libs/AI21/Generated/AI21.Models.WorkspaceModelsResponse.g.csis excluded by!**/generated/**
📒 Files selected for processing (1)
src/libs/AI21/openapi.yaml
| responses: | ||
| '200': | ||
| description: Successful Response | ||
| content: | ||
| application/json: | ||
| schema: { } |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
rg -n -C2 'ClarotySuggestVendorModelSolutionsClarotySuggestVendorModelPostAsync|Task<string>|ClarotySuggestVendorModelSolutionsClarotySuggestVendorModelPostResponse' src/libs/AI21/GeneratedRepository: tryAGI/AI21
Length of output: 50368
🏁 Script executed:
fd -t f "Claroty" src/libs/AI21/Generated/Repository: tryAGI/AI21
Length of output: 902
🏁 Script executed:
sed -n '3010,3020p' src/libs/AI21/openapi.yamlRepository: tryAGI/AI21
Length of output: 405
🏁 Script executed:
head -100 src/libs/AI21/Generated/AI21.Ai21Api.ClarotySuggestVendorModelSolutionsClarotySuggestVendorModelPost.g.csRepository: tryAGI/AI21
Length of output: 4691
🏁 Script executed:
cat src/libs/AI21/Generated/AI21.Models.ClarotySuggestVendorModelSolutionsClarotySuggestVendorModelPostResponse.g.csRepository: tryAGI/AI21
Length of output: 631
Define a concrete response schema for this endpoint.
The empty schema: { } under-specifies the contract. The generated method returns Task<string> instead of the typed response model, forcing consumers to work with raw strings. Replace the empty schema with a named component schema that matches the actual JSON payload.
🧩 Suggested direction
responses:
'200':
description: Successful Response
content:
application/json:
- schema: { }
+ schema:
+ $ref: '#/components/schemas/ClarotySuggestVendorModelResponse'Add ClarotySuggestVendorModelResponse under components/schemas with the real response shape.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@src/libs/AI21/openapi.yaml` around lines 3014 - 3019, The endpoint response
currently uses an empty schema causing generated clients to return raw strings;
replace the empty schema with a concrete component reference (e.g., $ref:
'#/components/schemas/ClarotySuggestVendorModelResponse') and then add a
matching components.schemas.ClarotySuggestVendorModelResponse definition that
models the actual JSON payload fields returned by the API so generated methods
return Task<ClarotySuggestVendorModelResponse> instead of string.
Pull request was closed
Summary by CodeRabbit