feat:Add POST endpoint for Claroty vendor model suggestions#253
feat:Add POST endpoint for Claroty vendor model suggestions#253
Conversation
WalkthroughA new API endpoint Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 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: Replace the anonymous empty 200 response schema in
src/libs/AI21/openapi.yaml for the ClarotySuggestVendorModel endpoint with a
named response contract: add a new components.schemas entry (e.g.,
ClarotySuggestVendorModelResponse) that defines the actual JSON fields returned
by the endpoint, then change the responses.'200'.content.application/json.schema
to a $ref: '#/components/schemas/ClarotySuggestVendorModelResponse'; this will
ensure the generated method
(AI21.IAi21Api.ClarotySuggestVendorModelSolutionsClarotySuggestVendorModelPost)
stops returning Task<string> and instead uses the typed response model.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 78d834a4-d158-46c6-9710-e805e2050e47
⛔ 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.
Replace the anonymous 200 schema with a named response contract.
Line 3019 leaves the JSON payload as schema: { }, and that is already surfacing in the generated SDK as an untyped Task<string> method in src/libs/AI21/Generated/AI21.IAi21Api.ClarotySuggestVendorModelSolutionsClarotySuggestVendorModelPost.g.cs:1-14. If this endpoint returns JSON, consumers lose the response shape and have to parse it themselves.
🛠️ Suggested spec change
/solutions/claroty/suggest-vendor-model:
post:
summary: Claroty Suggest Vendor Model
operationId: claroty_suggest_vendor_model_solutions_claroty_suggest_vendor_model_post
responses:
'200':
description: Successful Response
content:
application/json:
- schema: { }
+ schema:
+ $ref: '#/components/schemas/ClarotySuggestVendorModelResponse'Add ClarotySuggestVendorModelResponse under components.schemas with the actual response fields returned by the endpoint.
As per coding guidelines, "Maintain the OpenAPI specification at src/libs/AI21/openapi.yaml as the source of truth for the SDK API".
🤖 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, Replace the anonymous
empty 200 response schema in src/libs/AI21/openapi.yaml for the
ClarotySuggestVendorModel endpoint with a named response contract: add a new
components.schemas entry (e.g., ClarotySuggestVendorModelResponse) that defines
the actual JSON fields returned by the endpoint, then change the
responses.'200'.content.application/json.schema to a $ref:
'#/components/schemas/ClarotySuggestVendorModelResponse'; this will ensure the
generated method
(AI21.IAi21Api.ClarotySuggestVendorModelSolutionsClarotySuggestVendorModelPost)
stops returning Task<string> and instead uses the typed response model.
Pull request was closed
Summary by CodeRabbit