Skip to content

feat:Add POST endpoint for Claroty vendor model suggestions#253

Closed
HavenDV wants to merge 1 commit intomainfrom
bot/update-openapi_202603092140
Closed

feat:Add POST endpoint for Claroty vendor model suggestions#253
HavenDV wants to merge 1 commit intomainfrom
bot/update-openapi_202603092140

Conversation

@HavenDV
Copy link
Contributor

@HavenDV HavenDV commented Mar 9, 2026

Summary by CodeRabbit

  • New Features
    • Added a new endpoint to support vendor model suggestions within Claroty solutions, enabling enhanced functionality for vendor selection workflows.

@github-actions github-actions bot enabled auto-merge March 9, 2026 21:41
@coderabbitai
Copy link

coderabbitai bot commented Mar 9, 2026

Walkthrough

A new API endpoint /solutions/claroty/suggest-vendor-model with POST operation has been added to the OpenAPI specification. The endpoint includes an operationId, summary, and a 200 response with application/json schema definition.

Changes

Cohort / File(s) Summary
AI21 OpenAPI Specification
src/libs/AI21/openapi.yaml
Added new POST endpoint /solutions/claroty/suggest-vendor-model with operationId claroty_suggest_vendor_model_solutions_claroty_suggest_vendor_model_post, summary "Claroty Suggest Vendor Model", and 200 response schema.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Poem

🐰 Hop hop, a path appears so new,
Vendor models, Claroty true,
JSON whispers through the schema,
Simple endpoints bloom like fresh cinema!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main change: adding a POST endpoint for Claroty vendor model suggestions, which is directly reflected in the openapi.yaml changes.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch bot/update-openapi_202603092140

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai bot changed the title feat:@coderabbitai feat:Add POST endpoint for Claroty vendor model suggestions Mar 9, 2026
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

📥 Commits

Reviewing files that changed from the base of the PR and between bd8c9a6 and d046dab.

⛔ Files ignored due to path filters (115)
  • src/libs/AI21/Generated/AI21.Ai21Api.ClarotyProductLookupSolutionsClarotyProductLookupPost.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Ai21Api.ClarotySuggestVendorModelSolutionsClarotySuggestVendorModelPost.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.IAi21Api.ClarotySuggestVendorModelSolutionsClarotySuggestVendorModelPost.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.Assistant.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.AssistantBasicInfo.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.AssistantRoute.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.AssistantsByMcpResponse.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.BodyConvertDocumentFileStudioV1ChatFilesConvertPost.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.BodyParsePdfStudioV1DemosDocumentModifierParsePdfPost.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.BodyProcessRfiDocumentStudioV1DemosRfiProcessRfiPost.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.BodyUploadCheckComplianceStudioV1DemosRegulationsUploadCheckCompliancePost.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.BodyV1LibraryUpload.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ChatCompletion.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ChatCompletionResponseChoice.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ChatCompletionResponseDeltaChoice.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ChatCompletionVllmStreamingMessage.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ChatRequest.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ChatStreamingContentDelta.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ChatStreamingFirstDelta.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ChatStreamingToolCallsDelta.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ChatStreamingToolCallsFirstDelta.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ClarotySuggestVendorModelSolutionsClarotySuggestVendorModelPostResponse.Json.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ClarotySuggestVendorModelSolutionsClarotySuggestVendorModelPostResponse.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.CompareTextRequest.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ConnectorConnectionStatus.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ConnectorsDataSources.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ConnectorsStatus.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ConnectorsSyncParams.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ConnectorsToken.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.CreateAssistantRequest.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.CreateMCPStorageRequest.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.CreateMaestroRunsPayload.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.CreateOrganizationSchemaRequest.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.CreatePlanPayload.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.CreateRoutePayload.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.CreateSecretPayload.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.DataSourceMetadata.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.DeleteAssistantResponse.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.DeleteMCPStorageResponse.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.Demo.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.DemoCreate.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.DetectSchemaRequest.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.DetectSchemaResponse.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.DocumentReference.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.DocumentSchema.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.DownloadModifiedDocumentRequest.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.FileResponse.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.FunctionToolDefinition.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.GenerateAssistantRequest.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.GenerateAssistantResponse.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.HTTPToolEndpoint.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.HTTPToolFunction.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.HTTPToolFunctionParamProperties.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.HTTPToolFunctionParameters.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.HTTPToolResource.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.IgnestionBatchStatusCount.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.IngestionBatchStatusResponse.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.JambaExecuteRequest.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.LanguageStudioApiServerDataTypesChatToolDefinition.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.LanguageStudioApiServerDataTypesExecutionEngineRequirement.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.LibrarySearchRequest.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ListAssistantsResponse.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ListMCPsStorageResponse.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ListPlansResponse.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ListRoutesResponse.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.Logprobs.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.LogprobsData.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.MCPDefinition.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.MCPDiscoveryResponse.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.MCPStorageResponse.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.MCPTool.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.MaestroRunError.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.MaestroRunResult.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.MarkdownRequest.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.Message.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ModelInfo.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ModelPricing.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ModelsInfoResponse.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.OrgSchema.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.OrgSchemas.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.Plan.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.RFIResponseSection.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.RequirementItem.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.RequirementsGenerationRequest.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.RequirementsGenerationResponse.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ResponseFormat.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.RunAssistantRequest.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.SecretResponse.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.StarterQuestion.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.SystemMessage.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ThreadNameGenerationRequest.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ThreadNameGenerationResponse.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ToolCall.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ToolCallDelta.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ToolCallDeltaStart.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ToolFunction.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ToolFunctionDelta.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ToolFunctionDeltaStart.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ToolMessage.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ToolParameters.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.TopLogprobsData.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.UpdateMCPStorageRequest.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.UpdateRoutePayload.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.UsageInfo.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.UserMessage.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ValidationError.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.ValidationResult.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.WebsiteConnectorCreateConfigPayload.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.WebsiteConnectorIngestUrlPayload.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.WebsiteConnectorIngestWebsitePayload.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.WebsiteConnectorPayload.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.WebsiteConnectorRetryIngestWebsitePayload.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.WorkflowConfig.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.WorkspaceModelResponse.g.cs is excluded by !**/generated/**
  • src/libs/AI21/Generated/AI21.Models.WorkspaceModelsResponse.g.cs is excluded by !**/generated/**
📒 Files selected for processing (1)
  • src/libs/AI21/openapi.yaml

Comment on lines +3014 to +3019
responses:
'200':
description: Successful Response
content:
application/json:
schema: { }
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

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.

@HavenDV HavenDV closed this Mar 10, 2026
auto-merge was automatically disabled March 10, 2026 22:15

Pull request was closed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant