# Generated with openapi
# https://github.com/semgrep/protobuf-tools

openapi: 3.0.3
info:
    title: Semgrep API
    description: "The API v2 is currently a work in progress as we expand and improve our platform capabilities. There are no current plans to deprecate the [v1 API](/api/v1/docs) – we remain committed to supporting existing integrations and will ensure that all v1 use cases are fully supported in v2 before any deprecation occurs.\n## API Maturity Levels\n\nEach endpoint in the v2 API is marked with a maturity badge to help you understand its current state:\n\n\U0001F6A7 **Experimental** - Use at your own risk. This endpoint was not originally designed for third-party use or is under active development. Expect significant breaking changes.\n\n⚠️ **Beta** - This endpoint is being refined. We will communicate breaking changes to Beta partners as we tweak the implementation.\n\n✅ **Stable** - No breaking changes will be made to this API. You can confidently build production integrations against these endpoints.\n\nWe recommend using Stable endpoints for production applications and treating Experimental/Beta endpoints as previews of upcoming functionality. This API is documented in the **OpenAPI format**.\n\n# Authentication\n\nThe API supports authentication with an API token with the \"Web API\" permission, without limited scopes of access.\n\nYou can provision an API token [from the Settings page](https://semgrep.dev/orgs/-/settings/tokens).\n\n# Terms of Use\n\nPlease note, the materials made available herein are subject to the [Semgrep Terms of Use](https://semgrep.dev/resources/website-terms/), and your access or use of any of the same is your acknowledgment and acceptance of the such terms.\n\n<br>\n\n___"
    contact:
        email: support@semgrep.com
    version: v2.0.0.alpha
    x-logo:
        url: "https://semgrep.dev/images/SemgrepLogoWithTextWithMargin.svg"
        backgroundColor: "#fafafa"
        altText: "Semgrep logo"
paths:
    /api/agent/deployment:
        get:
            tags:
                - DeploymentService
            summary: Get Deployments
            description: Get all deployments for a token
            operationId: DeploymentService_GetDeploymentByToken
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.deployment.v1.GetDeploymentByTokenResponse'
            security:
                - SemgrepWebToken: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments:
        post:
            tags:
                - DeploymentService
            summary: Create Deployment
            description: Create adeployment
            operationId: DeploymentService_CreateDeployment
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.deployment.v1.CreateDeploymentRequest'
                required: true
            responses:
                "201":
                    description: Created
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.deployment.v1.CreateDeploymentResponse'
            security:
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}:
        get:
            tags:
                - DeploymentService
            summary: Get Deployment
            description: Get a deployment
            operationId: DeploymentService_GetDeployment
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: integer
                    format: int64
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.deployment.v1.GetDeploymentResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
        patch:
            tags:
                - DeploymentService
            summary: Update Deployment
            description: Update a deployment
            operationId: DeploymentService_UpdateDeployment
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.deployment.v1.UpdateDeploymentRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.deployment.v1.UpdateDeploymentResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/actions:
        post:
            tags:
                - NotificationRulesService
            summary: Create Notification Rule
            description: Create a notification rule
            operationId: NotificationRulesService_CreateNotificationRule
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: integer
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.notification_rules.v1.CreateNotificationRuleRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.notification_rules.v1.CreateNotificationRuleResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/actions/list:
        post:
            tags:
                - NotificationRulesService
            summary: List Notification Rules
            description: List notification rules
            operationId: NotificationRulesService_ListNotificationRules
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: integer
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.notification_rules.v1.ListNotificationRulesRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.notification_rules.v1.ListNotificationRulesResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/actions/{notificationRuleId}:
        put:
            tags:
                - NotificationRulesService
            summary: Replace Notification Rule
            description: Replace a notification rule
            operationId: NotificationRulesService_ReplaceNotificationRule
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: integer
                    format: int64
                - name: notificationRuleId
                  in: path
                  required: true
                  schema:
                    type: integer
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.notification_rules.v1.ReplaceNotificationRuleRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.notification_rules.v1.ReplaceNotificationRuleResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
        delete:
            tags:
                - NotificationRulesService
            summary: Delete Notification Rule
            description: Delete a notification rule
            operationId: NotificationRulesService_DeleteNotificationRule
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: integer
                    format: int64
                - name: notificationRuleId
                  in: path
                  required: true
                  schema:
                    type: integer
                    format: int64
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.notification_rules.v1.DeleteNotificationRuleResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/actions/{notificationRuleId}/test:
        post:
            tags:
                - NotificationRulesService
            summary: Test Notification Rule
            description: Test a notification rule
            operationId: NotificationRulesService_TestNotificationRule
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: integer
                    format: int64
                - name: notificationRuleId
                  in: path
                  required: true
                  schema:
                    type: integer
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.notification_rules.v1.TestNotificationRuleRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.notification_rules.v1.TestNotificationRuleResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/authorized_actions:
        get:
            tags:
                - DeploymentService
            summary: Get Deployment Authorized Actions
            description: Get list of actions the user is authorized to take on the deployment
            operationId: DeploymentService_GetDeploymentAuthorizedActions
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.deployment.v1.GetDeploymentAuthorizedActionsResponse'
            security:
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/default_user_role:
        get:
            tags:
                - DeploymentService
            summary: Get deployment default user role
            description: Get the default user role for a deployment
            operationId: DeploymentService_GetDeploymentDefaultUserRole
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.deployment.v1.GetDeploymentDefaultUserRoleResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/findings/v2:
        patch:
            tags:
                - IssuesService
            summary: Bulk Update Issues
            description: Bulk triage issues that match specified filters
            operationId: IssuesService_BulkUpdateIssues
            parameters:
                - name: deploymentId
                  in: path
                  description: Specifies the deployment to which the findings belong.
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.issues.v1.UpdateFindingsRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.issues.v1.UpdateFindingsResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/github_app_status:
        get:
            tags:
                - DeploymentService
            summary: Get Deployment GitHub App Status
            description: Check if the Semgrep GitHub app is installed for the deployment
            operationId: DeploymentService_GetDeploymentGitHubAppStatus
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: withCodeAccess
                  in: query
                  schema:
                    type: boolean
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.deployment.v1.GetDeploymentGitHubAppStatusResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/has_deepsemgrep:
        post:
            tags:
                - DeploymentService
            operationId: DeploymentService_UpdateDeploymentHasDeepsemgrep
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.deployment.v1.UpdateDeploymentHasDeepsemgrepRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.deployment.v1.UpdateDeploymentHasDeepsemgrepResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
    /api/agent/deployments/{deploymentId}/has_dependency_query:
        post:
            tags:
                - DeploymentService
            operationId: DeploymentService_UpdateDeploymentHasDependencyQuery
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.deployment.v1.UpdateDeploymentHasDependencyQueryRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.deployment.v1.UpdateDeploymentHasDependencyQueryResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
    /api/agent/deployments/{deploymentId}/has_triage_via_comment:
        post:
            tags:
                - DeploymentService
            operationId: DeploymentService_UpdateDeploymentHasTriageViaComment
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.deployment.v1.UpdateDeploymentHasTriageViaCommentRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.deployment.v1.UpdateDeploymentHasTriageViaCommentResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
    /api/agent/deployments/{deploymentId}/ignores:
        get:
            tags:
                - IgnoresService
            operationId: IgnoresService_GetDeploymentProductIgnores
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.ignores.v1.GetDeploymentProductIgnoresResponse'
            security:
                - SemgrepJWT: []
        post:
            tags:
                - IgnoresService
            operationId: IgnoresService_CreateDeploymentProductIgnores
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.ignores.v1.CreateDeploymentProductIgnoresRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.ignores.v1.CreateDeploymentProductIgnoresResponse'
            security:
                - SemgrepJWT: []
        delete:
            tags:
                - IgnoresService
            operationId: IgnoresService_DeleteDeploymentProductIgnores
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: product
                  in: query
                  schema:
                    enum:
                        - PRODUCT_UNSPECIFIED
                        - PRODUCT_SAST
                        - PRODUCT_SCA
                        - PRODUCT_SECRETS
                        - PRODUCT_AI_SAST
                    type: string
                    format: enum
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.ignores.v1.DeleteDeploymentProductIgnoresResponse'
            security:
                - SemgrepJWT: []
        patch:
            tags:
                - IgnoresService
            operationId: IgnoresService_UpdateDeploymentProductIgnores
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.ignores.v1.UpdateDeploymentProductIgnoresRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.ignores.v1.UpdateDeploymentProductIgnoresResponse'
            security:
                - SemgrepJWT: []
    /api/agent/deployments/{deploymentId}/issue_counts:
        post:
            tags:
                - IssuesService
            summary: Get Issue Counts
            description: Get counts of issues by status with filtering
            operationId: IssuesService_GetIssueCounts
            parameters:
                - name: deploymentId
                  in: path
                  description: Specifies the deployment to which the issues belong.
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.issues.v1.GetIssueCountsRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.issues.v1.GetIssueCountsResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/issue_filters:
        post:
            tags:
                - IssuesService
            summary: Get Issue Filters
            description: Get available filter options for issues
            operationId: IssuesService_GetIssueFilters
            parameters:
                - name: deploymentId
                  in: path
                  description: Specifies the deployment to which the issues belong.
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.issues.v1.GetIssueFiltersRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.issues.v1.GetIssueFiltersResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/issues:
        post:
            tags:
                - IssuesService
            summary: List Issues
            description: List an organization's recent issues with filtering, sorting, and pagination
            operationId: IssuesService_ListIssues
            parameters:
                - name: deploymentId
                  in: path
                  description: Specifies the deployment to which the issues belong.
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.issues.v1.ListIssuesRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.issues.v1.ListIssuesResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/issues/export:
        post:
            tags:
                - IssuesService
            summary: Export Issues
            description: Asynchronously export issues matching filters to a file
            operationId: IssuesService_ExportIssues
            parameters:
                - name: deploymentId
                  in: path
                  description: Specifies the deployment to which the issues belong.
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.issues.v1.ListIssuesRequest'
                required: true
            responses:
                "202":
                    description: Accepted
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.issues.v1.ExportIssuesResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/issues/search:
        post:
            tags:
                - IssuesService
            summary: List Issue Groups
            description: Search and group issues by rule with filtering and pagination
            operationId: IssuesService_ListIssueGroups
            parameters:
                - name: deploymentId
                  in: path
                  description: Specifies the deployment to which the issues belong.
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.issues.v1.ListIssueGroupsRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.issues.v1.ListIssueGroupsResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/issues/v2/{issueId}:
        get:
            tags:
                - IssuesService
            summary: Get Issue
            description: Get a single issue by ID with details
            operationId: IssuesService_GetIssue
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: issueId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: includeCodeSnippet
                  in: query
                  description: |-
                    When true, include code snippets in the response. Defaults to true for non-secrets when unset.
                     Does not apply to secrets: this option has no effect for secret issues—snippets are never
                     returned for secrets (security; no masking yet).
                  schema:
                    type: boolean
                - name: includeIsArchived
                  in: query
                  description: When true, populate the is_archived field on the response. Defaults to false.
                  schema:
                    type: boolean
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.issues.v1.Issue'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/issues/v2/{issueId}/code-snippets:
        get:
            tags:
                - IssuesService
            summary: Get Issue Code Snippets
            description: Get code snippets for an issue.
            operationId: IssuesService_GetIssueCodeSnippets
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: issueId
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.issues.v1.GetIssueCodeSnippetsResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/issues/{issueId}/fix_jobs:
        post:
            tags:
                - AiFixJobsService
            summary: Create Fix Job
            description: |-
                This feature is currently in Public Beta.

                Create an automated SAST fix job for the given issue. This triggers an AI-powered workflow that analyzes the vulnerability, generates a fix, and opens a pull request in the repository.
            operationId: AiFixJobsService_CreateFixJob
            parameters:
                - name: deploymentId
                  in: path
                  description: Deployment ID
                  required: true
                  schema:
                    example: 1234
                    title: Deployment ID
                    type: integer
                    description: The unique numerical identifier of the deployment. Can be found via the [Deployments Service](#tag/DeploymentsService) or in your Settings in the web UI.
                    format: int32
                - name: issueId
                  in: path
                  description: Issue ID to fix
                  required: true
                  schema:
                    example: 56789
                    title: Issue ID
                    type: integer
                    description: The unique numerical identifier of the issue to generate a fix for.
                    format: int32
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.ai.v1.CreateFixJobRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.ai.v1.CreateFixJobResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/managed_scan_settings:
        get:
            tags:
                - ManagedScanSettingsService
            operationId: ManagedScanSettingsService_GetManagedScanSettings
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: integer
                    format: int64
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.managed_scan_settings.v2.GetManagedScanSettingsResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
        post:
            tags:
                - ManagedScanSettingsService
            operationId: ManagedScanSettingsService_CreateManagedScanSettings
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: integer
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.managed_scan_settings.v2.CreateManagedScanSettingsRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.managed_scan_settings.v2.CreateManagedScanSettingsResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
    /api/agent/deployments/{deploymentId}/managed_scan_settings/{managedScanSettingsId}:
        put:
            tags:
                - ManagedScanSettingsService
            operationId: ManagedScanSettingsService_UpdateManagedScanSettings
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: integer
                    format: int64
                - name: managedScanSettingsId
                  in: path
                  required: true
                  schema:
                    type: integer
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.managed_scan_settings.v2.UpdateManagedScanSettingsRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.managed_scan_settings.v2.UpdateManagedScanSettingsResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
        delete:
            tags:
                - ManagedScanSettingsService
            operationId: ManagedScanSettingsService_DeleteManagedScanSettings
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: integer
                    format: int64
                - name: managedScanSettingsId
                  in: path
                  required: true
                  schema:
                    type: integer
                    format: int64
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.managed_scan_settings.v2.DeleteManagedScanSettingsResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
    /api/agent/deployments/{deploymentId}/packagemanagerauthconfigs:
        get:
            tags:
                - SmsPackageManagerConfigService
            summary: List Package Manager Auth Configs
            description: Retrieve all package manager authentication configurations for a deployment.
            operationId: SmsPackageManagerConfigService_GetPackageManagerAuthConfigs
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: integer
                    description: The unique identifier for the deployment.
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.sms.v2.GetPackageManagerAuthConfigsResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
        post:
            tags:
                - SmsPackageManagerConfigService
            summary: Create Package Manager Auth Config
            description: Create a new package manager authentication configuration for a deployment.
            operationId: SmsPackageManagerConfigService_PostPackageManagerAuthCredentials
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: integer
                    description: The unique identifier for the deployment.
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.sms.v2.PostPackageManagerAuthCredentialsRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.sms.v2.PostPackageManagerAuthCredentialsResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/packagemanagerauthconfigs/{packageManagerConfigId}:
        delete:
            tags:
                - SmsPackageManagerConfigService
            summary: Delete Package Manager Auth Config
            description: Delete a package manager authentication configuration.
            operationId: SmsPackageManagerConfigService_DeletePackageManagerAuthConfigs
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: integer
                    description: The unique identifier for the deployment.
                - name: packageManagerConfigId
                  in: path
                  required: true
                  schema:
                    example: 123
                    type: integer
                    description: The unique identifier for the package manager configuration to delete.
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.sms.v2.DeletePackageManagerAuthConfigsResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
        patch:
            tags:
                - SmsPackageManagerConfigService
            summary: Update Package Manager Auth Config
            description: Update an existing package manager authentication configuration.
            operationId: SmsPackageManagerConfigService_UpdatePackageManagerAuthCredentials
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: integer
                    description: The unique identifier for the deployment.
                - name: packageManagerConfigId
                  in: path
                  required: true
                  schema:
                    example: 123
                    type: integer
                    description: The unique identifier for the package manager configuration to update.
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.sms.v2.UpdatePackageManagerAuthCredentialsRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.sms.v2.UpdatePackageManagerAuthCredentialsResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/products:
        get:
            tags:
                - DeploymentProductsService
            summary: Get deployment product config
            description: Get the product configuration for a deployment
            operationId: DeploymentProductsService_GetDeploymentProductConfig
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: integer
                    format: int64
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.deployment.v1.GetDeploymentProductConfigResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
        put:
            tags:
                - DeploymentProductsService
            summary: Upsert deployment product config
            description: Create or update the product configuration for a deployment
            operationId: DeploymentProductsService_PutDeploymentProductConfig
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: integer
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.deployment.v1.PutDeploymentProductConfigRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.deployment.v1.PutDeploymentProductConfigResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/products/admin:
        get:
            tags:
                - DeploymentProductsService
            summary: Get deployment admin product config
            description: Get the admin product configuration for a deployment
            operationId: DeploymentProductsService_GetDeploymentAdminProductConfig
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: integer
                    format: int64
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.deployment.v1.GetDeploymentAdminProductConfigResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/products/feedback:
        post:
            tags:
                - DeploymentService
            operationId: DeploymentService_SendDeploymentToggleFeedback
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.deployment.v1.SendDeploymentToggleFeedbackRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.deployment.v1.SendDeploymentToggleFeedbackResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
    /api/agent/deployments/{deploymentId}/projects/{projectId}/resolution_configs:
        get:
            tags:
                - SmsScaResolutionConfigService
            summary: Get SCA Resolution Configs
            description: Retrieve custom dependency resolution configurations for a given deployment and repository.
            operationId: SmsScaResolutionConfigService_GetScaResolutionConfigs
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: integer
                    description: The unique identifier for the deployment.
                - name: projectId
                  in: path
                  required: true
                  schema:
                    type: integer
                    description: The unique identifier for the project.
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.sms.v2.GetScaResolutionConfigsResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/repos:
        patch:
            tags:
                - ProjectsService
            summary: Bulk Edit Projects
            description: Applies changes to multiple specified projects at once.
            operationId: ProjectsService_BulkEditRepos
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: 123
                    type: string
                    description: The unique numerical identifier for the deployment.
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.projects.v1.BulkEditReposRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.projects.v1.BulkEditReposResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/repos/_provision:
        post:
            tags:
                - ProjectsService
            summary: Provision Semgrep CI GitHub Actions
            description: Adds a "semgrep-ci" GitHub Action to the GitHub Repositories that are associated with any Semgrep Projects that match the given filters.
            operationId: ProjectsService_BulkProvisionRepos
            parameters:
                - name: deploymentId
                  in: path
                  description: id of the deployment
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.projects.v1.BulkProvisionReposRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.projects.v1.BulkProvisionReposResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/repos/_refresh_async:
        post:
            tags:
                - ProjectsService
            summary: Sync All Projects to SCM
            description: Schedules a job to sync all projects in a deployment to their SCM.
            operationId: ProjectsService_RefreshProjectsAsync
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: integer
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.projects.v1.RefreshProjectsAsyncRequest'
                required: true
            responses:
                "202":
                    description: Accepted
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.projects.v1.RefreshProjectsAsyncResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/repos/_secret:
        post:
            tags:
                - ProjectsService
            summary: Add Semgrep CI Secrets to GitHub Repositories
            description: Generates and adds a secret for the "semgrep-ci" GitHub Action to the GitHub Repositories that are associated with any Semgrep Projects that match the given filters.
            operationId: ProjectsService_BulkAddRepoSecret
            parameters:
                - name: deploymentId
                  in: path
                  description: id of the deployment
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.projects.v1.BulkAddRepoSecretRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.projects.v1.BulkAddRepoSecretResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/repos/by-tag:
        get:
            tags:
                - ProjectsService
            summary: Get All Projects IDs by Tag
            description: Gets a mapping from tag ID to related project IDs.
            operationId: ProjectsService_GetReposByTag
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.projects.v1.GetReposByTagResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/repos/count:
        post:
            tags:
                - ProjectsService
            summary: Get Project Count
            description: Get the number of projects in a deployment.
            operationId: ProjectsService_GetReposCount
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.projects.v1.GetReposCountRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.projects.v1.GetReposCountResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/repos/filtered:
        patch:
            tags:
                - ProjectsService
            summary: Bulk Apply Project Update
            description: Applies a change to many projects that match the given filters.
            operationId: ProjectsService_BulkApplyRepoUpdate
            parameters:
                - name: deploymentId
                  in: path
                  description: id of the deployment
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.projects.v1.BulkApplyRepoUpdateRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.projects.v1.BulkApplyRepoUpdateResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/repos/{idOrName}:
        patch:
            tags:
                - ProjectsService
            summary: Patch Project
            description: Use a "Merge Patch" to update a project's name or SMS settings.
            operationId: ProjectsService_EditRepo
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: 123
                    type: string
                    description: The unique numerical identifier for the deployment.
                    format: int64
                - name: idOrName
                  in: path
                  required: true
                  schema:
                    example: 456
                    type: string
                    description: A unique identifier for the project to modify. For example, `456` for uint64 ID or `"my-org/my-repo"` for name-slug.
                    format: int64 | name-slug
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.projects.v1.EditRepoRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.projects.v1.EditRepoResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/repos/{repoId}/_sync:
        post:
            tags:
                - ProjectsService
            summary: Sync Project to SCM
            description: Schedules a job to sync a project with its SCM.
            operationId: ProjectsService_SyncRepo
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: repoId
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.projects.v1.SyncRepoRequest'
                required: true
            responses:
                "202":
                    description: Accepted
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.projects.v1.SyncRepoResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/ruleboards:
        get:
            tags:
                - RuleboardService
            summary: List ruleboards
            operationId: RuleboardService_ListRuleboards
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: type
                  in: query
                  schema:
                    enum:
                        - RULEBOARD_TYPE_UNSPECIFIED
                        - RULEBOARD_TYPE_SAST
                        - RULEBOARD_TYPE_SECRETS
                    type: string
                    format: enum
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.ruleboard.v1.ListRuleboardsResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
        post:
            tags:
                - RuleboardService
            summary: Create ruleboard
            description: Create a new ruleboard for the deployment.
            operationId: RuleboardService_CreateRuleboard
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: 1234
                    title: Deployment ID
                    type: string
                    description: The unique numerical identifier of your deployment. Can be found via the [Deployments Service](#tag/DeploymentsService) or in your Settings in the web UI.
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.ruleboard.v1.CreateRuleboardRequest'
                required: true
            responses:
                "201":
                    description: Created
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.ruleboard.v1.RuleboardOverview'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/ruleboards/{ruleboardSlug}:
        get:
            tags:
                - RuleboardService
            summary: Get ruleboard
            operationId: RuleboardService_GetRuleboard
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: ruleboardSlug
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.ruleboard.v1.GetRuleboardResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
        put:
            tags:
                - RuleboardService
            summary: Update ruleboard
            operationId: RuleboardService_UpdateRuleboard
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: 1234
                    title: Deployment ID
                    type: string
                    description: The unique numerical identifier of your deployment. Can be found via the [Deployments Service](#tag/DeploymentsService) or in your Settings in the web UI.
                    format: int64
                - name: ruleboardSlug
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.ruleboard.v1.UpdateRuleboardRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.ruleboard.v1.UpdateRuleboardResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
        delete:
            tags:
                - RuleboardService
            summary: Delete ruleboard
            description: Delete a ruleboard for the deployment.
            operationId: RuleboardService_DeleteRuleboard
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: ruleboardSlug
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "204":
                    description: No Content
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.ruleboard.v1.DeleteRuleboardResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/ruleboards/{ruleboardSlug}/finding_counts:
        get:
            tags:
                - RuleboardService
            summary: Get ruleboard finding counts
            operationId: RuleboardService_GetRuleboardFindingCounts
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: ruleboardSlug
                  in: path
                  required: true
                  schema:
                    type: string
                - name: since
                  in: query
                  description: Filters issues relevant since the specified timestamp. Applies to all issue types.
                  schema:
                    type: string
                    format: date-time
                - name: until
                  in: query
                  description: Filters issues created before the specified timestamp. Applies to all issue types.
                  schema:
                    type: string
                    format: date-time
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.ruleboard.v1.GetRuleboardFindingCountsResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/ruleboards/{ruleboardSlug}/overview:
        get:
            tags:
                - RuleboardService
            summary: Get ruleboard overview
            operationId: RuleboardService_GetRuleboardOverview
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: ruleboardSlug
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.ruleboard.v1.GetRuleboardOverviewResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
        put:
            tags:
                - RuleboardService
            summary: Update ruleboard overview
            description: |-
                buf:lint:ignore RPC_REQUEST_RESPONSE_UNIQUE
                 buf:lint:ignore RPC_RESPONSE_STANDARD_NAME
            operationId: RuleboardService_UpdateRuleboardOverview
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: 1234
                    title: Deployment ID
                    type: string
                    description: The unique numerical identifier of your deployment. Can be found via the [Deployments Service](#tag/DeploymentsService) or in your Settings in the web UI.
                    format: int64
                - name: ruleboardSlug
                  in: path
                  required: true
                  schema:
                    type: string
                    description: Slug of the ruleboard as it appears in the URL.
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.ruleboard.v1.UpdateRuleboardOverviewRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.ruleboard.v1.RuleboardOverview'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/slack/channel_mappings:
        get:
            tags:
                - SlackService
            summary: Get Slack Channel Mappings
            description: Retrieves channel mappings for Slack channels
            operationId: SlackService_GetSlackChannelMappings
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: integer
                    format: int32
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.slack.v1.GetSlackChannelMappingsResponse'
            security:
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/slack/channels:
        get:
            tags:
                - SlackService
            summary: Get Slack Notification Mappings
            description: Retrieves notification mappings for Slack channels
            operationId: SlackService_GetSlackNotificationMappings
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: integer
                    format: int32
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.slack.v1.GetSlackNotificationMappingsResponse'
            security:
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/slack/install:
        get:
            tags:
                - SlackService
            summary: Get Slack App Installation URL
            description: Generates the OAuth URL that initiates the Slack app installation flow
            operationId: SlackService_InstallSlackApp
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: integer
                    format: int32
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.slack.v1.InstallSlackAppResponse'
            security:
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/slack/installations:
        get:
            tags:
                - SlackService
            summary: Get Slack Installation Details
            description: Retrieves Slack app installation details for a deployment
            operationId: SlackService_GetSlackInstallation
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: integer
                    format: int32
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.slack.v1.GetSlackInstallationResponse'
            security:
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
        delete:
            tags:
                - SlackService
            summary: Delete Slack Installation
            description: Deletes Slack app installation and revokes access token
            operationId: SlackService_DeleteSlackInstallation
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: integer
                    format: int32
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.slack.v1.DeleteSlackInstallationResponse'
            security:
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/slack/oauth/callback:
        post:
            tags:
                - SlackService
            summary: Handle Slack OAuth Callback
            description: Processes OAuth callback, exchanges code for access token, and stores installation data
            operationId: SlackService_HandleSlackCallback
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: integer
                    format: int32
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.slack.v1.HandleSlackCallbackRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.slack.v1.HandleSlackCallbackResponse'
            security:
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/tags:
        get:
            tags:
                - DeploymentTagService
            summary: List deployment tags
            description: List deployment tags
            operationId: DeploymentTagService_ListDeploymentTags
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: integer
                    format: int64
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.deployment.v1.ListDeploymentTagsResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/tags/find:
        post:
            tags:
                - DeploymentTagService
            summary: Find deployment tags with project counts
            description: Find deployment tags with project counts
            operationId: DeploymentTagService_FindDeploymentTags
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: integer
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.deployment.v1.FindDeploymentTagsRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.deployment.v1.FindDeploymentTagsResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/tags/{repositoryTag}:
        get:
            tags:
                - DeploymentTagService
            summary: Get a deployment tag
            description: Get a deployment tag
            operationId: DeploymentTagService_GetDeploymentTag
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: integer
                    format: int64
                - name: repositoryTag
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.deployment.v1.GetDeploymentTagResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
        put:
            tags:
                - DeploymentTagService
            summary: Create or update a deployment tag
            description: Create or update a deployment tag
            operationId: DeploymentTagService_UpdateDeploymentTag
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: integer
                    format: int64
                - name: repositoryTag
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.deployment.v1.UpdateDeploymentTagRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.deployment.v1.UpdateDeploymentTagResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
        delete:
            tags:
                - DeploymentTagService
            summary: Delete a deployment tag
            description: Delete a deployment tag
            operationId: DeploymentTagService_DeleteDeploymentTag
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: integer
                    format: int64
                - name: repositoryTag
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.deployment.v1.DeleteDeploymentTagResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/users:
        get:
            tags:
                - DeploymentService
            summary: Get Deployment Users
            description: Get deployment users
            operationId: DeploymentService_GetDeploymentUsers
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: pruneGithub
                  in: query
                  schema:
                    type: boolean
                - name: showActive
                  in: query
                  schema:
                    type: boolean
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.deployment.v1.GetDeploymentUsersResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
        post:
            tags:
                - DeploymentService
            summary: Add Deployment User
            description: Add a user to the deployment
            operationId: DeploymentService_AddDeploymentUser
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.deployment.v1.AddDeploymentUserRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.deployment.v1.AddDeploymentUserResponse'
            security:
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/users/list:
        post:
            tags:
                - DeploymentService
            summary: List Deployment Users
            description: List deployment users (paginated)
            operationId: DeploymentService_ListDeploymentUsers
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.deployment.v1.ListDeploymentUsersRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.deployment.v1.ListDeploymentUsersResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/users/{userId}:
        delete:
            tags:
                - DeploymentService
            summary: Remove Deployment User
            description: Remove a user from the deployment
            operationId: DeploymentService_RemoveDeploymentUser
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: userId
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.deployment.v1.RemoveDeploymentUserResponse'
            security:
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/deployments/{deploymentId}/users/{userId}/roles:
        patch:
            tags:
                - DeploymentService
            operationId: DeploymentService_PatchDeploymentUser
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: userId
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.deployment.v1.PatchDeploymentUserRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.deployment.v1.PatchDeploymentUserResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
    /api/agent/features:
        get:
            tags:
                - FeatureRolloutsService
            summary: List Available Feature Rollouts
            description: List all available feature rollouts
            operationId: FeatureRolloutsService_ListAvailableFeatureRollouts
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.feature_rollout.v1.ListAvailableFeatureRolloutsResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/identity:
        get:
            tags:
                - MiscService
            summary: Get Identity
            description: Returns the agent's bearer identity
            operationId: MiscService_GetIdentity
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.misc.v1.GetIdentityResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/ip:
        get:
            tags:
                - MiscService
            summary: Get IP
            description: Returns the current IP address
            operationId: MiscService_GetIp
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.misc.v1.GetIpResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/ping:
        get:
            tags:
                - MiscService
            summary: Ping
            description: Responds with pong
            operationId: MiscService_GetPing
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.misc.v1.GetPingResponse'
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/tenant:
        get:
            tags:
                - MiscService
            summary: Get Tenant
            description: Returns the current tenant name for the server (e.g. default)
            operationId: MiscService_GetTenant
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.misc.v1.GetTenantResponse'
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/agent/versions/{deploymentId}/project-info/{product}:
        get:
            tags:
                - VersionsService
            summary: Get Project Version Info
            description: Get Semgrep version information for recent scans
            operationId: VersionsService_GetProjectVersionInfo
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: product
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.versions.v1.GetProjectVersionInfoResponse'
            security:
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/ai/deployments/{deploymentId}/autotriage_feedback:
        post:
            tags:
                - AutotriageFeedbackService
            summary: Post autotriage feedback
            description: Post autotriage feedback
            operationId: AutotriageFeedbackService_PostAutotriageFeedback
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.ai.v1.PostAutotriageFeedbackRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.ai.v1.PostAutotriageFeedbackResponse'
            security:
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/ai/deployments/{deploymentId}/memories:
        post:
            tags:
                - MemoriesService
            summary: Create Memory
            description: Create a new memory.
            operationId: MemoriesService_CreateMemory
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.ai.v1.CreateMemoryRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.ai.v1.CreateMemoryResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/ai/deployments/{deploymentId}/memories/ids:
        post:
            tags:
                - MemoriesService
            summary: Get memories by ids
            description: Get memories by ids.
            operationId: MemoriesService_GetMemoriesByIds
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.ai.v1.GetMemoriesByIdsRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.ai.v1.GetMemoriesByIdsResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/ai/deployments/{deploymentId}/memories/list:
        post:
            tags:
                - MemoriesService
            summary: List Memories
            description: List memories, optionally scoped to a single repository.
            operationId: MemoriesService_ListMemories
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.ai.v1.ListMemoriesRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.ai.v1.ListMemoriesResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/ai/deployments/{deploymentId}/memories/stats:
        get:
            tags:
                - MemoriesService
            summary: Get memories stats
            description: Get statistics about a deployment's memories performance
            operationId: MemoriesService_GetMemoriesStats
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.ai.v1.GetMemoriesStatsResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/ai/deployments/{deploymentId}/memories/suggested:
        get:
            tags:
                - MemoriesService
            summary: List Suggested Memories
            description: List all suggested memories.
            operationId: MemoriesService_ListSuggestedMemories
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.ai.v1.ListSuggestedMemoriesResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/ai/deployments/{deploymentId}/memories/triage:
        post:
            tags:
                - MemoriesService
            summary: Create Memory from Triage
            description: Create a new memory from a triage event.
            operationId: MemoriesService_CreateMemoryFromTriage
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.ai.v1.CreateMemoryFromTriageRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.ai.v1.CreateMemoryFromTriageResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/ai/deployments/{deploymentId}/memories/{memoryId}:
        put:
            tags:
                - MemoriesService
            summary: Update Memory
            description: Update a memory by replacement.
            operationId: MemoriesService_UpdateMemory
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: memoryId
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.ai.v1.UpdateMemoryRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.ai.v1.UpdateMemoryResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
        delete:
            tags:
                - MemoriesService
            summary: Delete Memory
            description: Delete a memory by its ID.
            operationId: MemoriesService_DeleteMemory
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: memoryId
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.ai.v1.DeleteMemoryResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/ai/deployments/{deploymentId}/relevant_issues:
        post:
            tags:
                - MemoriesService
            summary: Find Relevant Issues
            description: Find relevant issues for a given rule and repository.
            operationId: MemoriesService_FindRelevantIssues
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.ai.v1.FindRelevantIssuesRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.ai.v1.FindRelevantIssuesResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/ai/pattern_fix:
        post:
            tags:
                - AiTasksService
            summary: Create Pattern Fix Task
            description: Create a pattern fixing task for a given pattern and language. This is used in the structure mode of the editor
            operationId: AiTasksService_CreatePatternFixTask
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.ai.v1.CreatePatternFixTaskRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.ai.v1.CreatePatternFixTaskResponse'
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/ai/{deploymentId}/combined_task:
        post:
            tags:
                - AiTasksService
            summary: Create Combined Task
            description: Create a combined task for a deployment
            operationId: AiTasksService_CreateCombinedTask
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.ai.v1.CreateCombinedTaskRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.ai.v1.CreateCombinedTaskResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/ai/{deploymentId}/info:
        get:
            tags:
                - AiTasksService
            summary: Get Task Info
            description: Get the task info for a deployment
            operationId: AiTasksService_GetTaskInfo
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.ai.v1.GetTaskInfoResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/auth/authorized_resources:
        get:
            tags:
                - UsersService
            summary: List authorized resources
            description: List all orgnizations/deployments that are available to a user
            operationId: UsersService_ListUserAuthorizedResources
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.auth.v1.ListUserAuthorizedResourcesResponse'
            security:
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/auth/sso/deployments/{deploymentId}/providers:
        get:
            tags:
                - DeploymentSsoProvidersService
            summary: List Deployment SSO Providers
            description: List all SSO providers for a deployment
            operationId: DeploymentSsoProvidersService_ListDeploymentSsoProviders
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.auth.v1.ListDeploymentSsoProvidersResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/auth/users/current:
        get:
            tags:
                - UsersService
            summary: Get User
            description: Get basic information about a User, like role, email, and auth details
            operationId: UsersService_GetUser
            parameters:
                - name: userId
                  in: query
                  description: |-
                    The user ID to fetch settings for.
                     NOTE: As of June 2025, it must be equal to the requester's ID.
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.auth.v1.GetUserResponse'
            security:
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/auth/users/current/deployments:
        get:
            tags:
                - UsersService
            summary: List User Organizations
            description: List all organizations/deployments that a user is a member of
            operationId: UsersService_ListUserOrgs
            parameters:
                - name: userId
                  in: query
                  description: |-
                    The user ID to list organizations for.
                     NOTE: As of June 2025, it must be equal to the requester's ID.
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.auth.v1.ListUserOrgsResponse'
            security:
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/auth/users/current/deployments/joinable:
        get:
            tags:
                - UsersService
            summary: List Joinable Organizations
            description: List all organizations/deployments that a user can join
            operationId: UsersService_ListUserJoinableOrgs
            parameters:
                - name: userId
                  in: query
                  description: |-
                    The user ID to list organizations for.
                     NOTE: As of June 2025, it must be equal to the requester's ID.
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.auth.v1.ListUserJoinableOrgsResponse'
            security:
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/auth/users/current/settings:
        get:
            tags:
                - UsersService
            summary: Get User Settings
            description: Get basic settings & onboarding info for a user, like contact preferences and product tour state.
            operationId: UsersService_GetUserSettings
            parameters:
                - name: userId
                  in: query
                  description: |-
                    The user ID to fetch settings for.
                     NOTE: As of June 2025, it must be equal to the requester's ID.
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.auth.v1.GetUserSettingsResponse'
            security:
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
        patch:
            tags:
                - UsersService
            summary: Update User Settings
            description: Update user settings and preferences for the current user
            operationId: UsersService_PatchUserSettings
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.auth.v1.PatchUserSettingsRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.auth.v1.PatchUserSettingsResponse'
            security:
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/deployments/{deploymentId}/scm_comment_product_content:
        get:
            tags:
                - ReviewCommentProductContentService
            summary: List Review Comment Product Content
            description: List all review comment product contents
            operationId: ReviewCommentProductContentService_ListReviewCommentProductContent
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.review_comment_content.v1.ListReviewCommentProductContentResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
        post:
            tags:
                - ReviewCommentProductContentService
            summary: Create Review Comment Product Content
            description: Create a new review comment product content
            operationId: ReviewCommentProductContentService_CreateReviewCommentProductContent
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.review_comment_content.v1.CreateReviewCommentProductContentRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.review_comment_content.v1.CreateReviewCommentProductContentResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/deployments/{deploymentId}/scm_comment_product_content/{reviewCommentProductContentId}:
        put:
            tags:
                - ReviewCommentProductContentService
            summary: Update Review Comment Product Content
            description: Update an existing review comment product content
            operationId: ReviewCommentProductContentService_UpdateReviewCommentProductContent
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: reviewCommentProductContentId
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.review_comment_content.v1.UpdateReviewCommentProductContentRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.review_comment_content.v1.UpdateReviewCommentProductContentResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
        delete:
            tags:
                - ReviewCommentProductContentService
            summary: Delete Review Comment Product Content
            description: Delete a review product content by its ID.
            operationId: ReviewCommentProductContentService_DeleteReviewCommentProductContent
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: reviewCommentProductContentId
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.review_comment_content.v1.DeleteReviewCommentProductContentResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/health-check:
        get:
            tags:
                - MiscService
            summary: Check container health
            description: Check if container is healthy
            operationId: MiscService_HealthCheck
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.misc.v1.HealthCheckResponse'
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/infra-config/bootstrap-sms-vpc:
        get:
            tags:
                - InfrastructureConfigurationsService
            summary: Get SMS VPC Bootstrap CloudFormation Template
            description: |-
                VPC support for Managed Scans is in private beta.

                Returns the Managed Scans VPC Bootstrap CloudFormation template in JSON format for setting up cross-account infrastructure.

                This template creates IAM roles and policies needed for Semgrep Managed Scanning (SMS) VPC infrastructure automation,
                including the semgrep-sms-vpc-automation role and EC2 Image Builder distribution roles for gVisor container runtime.

                See the original AWS cloudformation template format at https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-formats.html
            operationId: InfrastructureConfigurationsService_GetBootstrapSmsVpc
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.infra_config.v1.GetBootstrapSmsVpcResponse'
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/notification_webhooks/deployments/{deploymentId}/webhooks:
        get:
            tags:
                - NotificationWebhooksService
            summary: List Notification Webhooks
            description: List all notification webhooks for a deployment.
            operationId: NotificationWebhooksService_ListNotificationWebhooks
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.notification_webhooks.v1.ListNotificationWebhooksResponse'
            security:
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
        post:
            tags:
                - NotificationWebhooksService
            summary: Create Notification Webhook
            description: Create a new webhook endpoint.
            operationId: NotificationWebhooksService_CreateNotificationWebhook
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.notification_webhooks.v1.CreateNotificationWebhookRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.notification_webhooks.v1.CreateNotificationWebhookResponse'
            security:
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/notification_webhooks/deployments/{deploymentId}/webhooks/{webhookId}:
        get:
            tags:
                - NotificationWebhooksService
            summary: Get Notification Webhook
            description: Get a specific notification webhook by ID.
            operationId: NotificationWebhooksService_GetNotificationWebhook
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: webhookId
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.notification_webhooks.v1.GetNotificationWebhookResponse'
            security:
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
        put:
            tags:
                - NotificationWebhooksService
            summary: Update Notification Webhook
            description: Update a notification webhook by replacement.
            operationId: NotificationWebhooksService_UpdateNotificationWebhook
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: webhookId
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.notification_webhooks.v1.UpdateNotificationWebhookRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.notification_webhooks.v1.UpdateNotificationWebhookResponse'
            security:
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
        delete:
            tags:
                - NotificationWebhooksService
            summary: Delete Notification Webhook
            description: Delete a notification webhook by its ID.
            operationId: NotificationWebhooksService_DeleteNotificationWebhook
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: webhookId
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "204":
                    description: No Content
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.notification_webhooks.v1.DeleteNotificationWebhookResponse'
            security:
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/notification_webhooks/deployments/{deploymentId}/webhooks/{webhookId}/test:
        post:
            tags:
                - NotificationWebhooksService
            summary: Test Notification Webhook
            description: Send a test payload to the webhook endpoint.
            operationId: NotificationWebhooksService_TestNotificationWebhook
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: webhookId
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.notification_webhooks.v1.TestNotificationWebhookRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.notification_webhooks.v1.TestNotificationWebhookResponse'
            security:
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/notifications/deployments/{deploymentId}/automations:
        get:
            tags:
                - AutomationsService
            summary: List Automations
            description: List all automations.
            operationId: AutomationsService_ListAutomations
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.automations.v1.ListAutomationsResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
        post:
            tags:
                - AutomationsService
            summary: Create Automation
            description: Create a new automation.
            operationId: AutomationsService_CreateAutomation
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.automations.v1.CreateAutomationRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.automations.v1.CreateAutomationResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/notifications/deployments/{deploymentId}/automations/{automationId}:
        put:
            tags:
                - AutomationsService
            summary: Update Automation
            description: Update an existing automation.
            operationId: AutomationsService_UpdateAutomation
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: automationId
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.automations.v1.UpdateAutomationRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.automations.v1.UpdateAutomationResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
        delete:
            tags:
                - AutomationsService
            summary: Delete Automation
            description: Delete an automation by its ID.
            operationId: AutomationsService_DeleteAutomation
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: automationId
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.automations.v1.DeleteAutomationResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/notifications/deployments/{deploymentId}/ticketing/v2:
        get:
            tags:
                - ExternalTicketingService
            summary: Get External Ticketing Instances
            description: Gets the issue tracking systems linked to a deployment. E.g. Jira.
            operationId: ExternalTicketingService_GetNangoTicketingInstances
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: 1234
                    title: Deployment ID
                    type: integer
                    description: The unique numerical identifier of the deployment associated with the finding. Can be found via the [Deployments Service](#tag/DeploymentsService) or in your Settings in the web UI.
                    format: int64
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.ticketing.v2.GetNangoTicketingInstancesResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/notifications/deployments/{deploymentId}/ticketing/v2/{ticketingInstanceId}/create_tickets:
        post:
            tags:
                - ExternalTicketingService
            summary: Create External Tickets
            description: Create tickets in your issue tracking system for Semgrep findings.
            operationId: ExternalTicketingService_NangoCreateTickets
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: 1234
                    title: Deployment ID
                    type: integer
                    description: The unique numerical identifier of the deployment associated with the finding. Can be found via the [Deployments Service](#tag/DeploymentsService) or in your Settings in the web UI.
                    format: int64
                - name: ticketingInstanceId
                  in: path
                  required: true
                  schema:
                    example: 5678
                    title: Ticketing Instance ID
                    type: integer
                    description: The unique numerical identifier of the ticketing instance. Can be found via the [Get External Ticketing Instances](#tag/ExternalTicketingService/operation/ExternalTicketingService_GetNangoTicketingInstances) endpoint.
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.ticketing.v2.NangoCreateTicketsRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.ticketing.v2.NangoCreateTicketsResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/notifications/deployments/{deploymentId}/ticketing/v2/{ticketingInstanceId}/tickets/link:
        post:
            tags:
                - ExternalTicketingService
            summary: Link an Existing Ticket to Findings
            description: Link an existing external ticket (e.g. Jira) to one or more Semgrep findings by providing the ticket URL and a list of finding IDs. This does not create a ticket in your issue tracker — it only records the association in Semgrep. If a finding is already linked to a different ticket, the existing link is replaced.
            operationId: ExternalTicketingService_LinkTicket
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: 1234
                    title: Deployment ID
                    type: integer
                    description: The unique numerical identifier of the deployment associated with the finding. Can be found via the [Deployments Service](#tag/DeploymentsService) or in your Settings in the web UI.
                    format: int64
                - name: ticketingInstanceId
                  in: path
                  required: true
                  schema:
                    example: 5678
                    title: Ticketing Instance ID
                    type: integer
                    description: The unique numerical identifier of the ticketing instance. Can be found via the [Get External Ticketing Instances](#tag/ExternalTicketingService/operation/ExternalTicketingService_GetNangoTicketingInstances) endpoint.
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.ticketing.v2.LinkTicketRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.ticketing.v2.LinkTicketResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/notifications/deployments/{deploymentId}/ticketing/v2/{ticketingInstanceId}/tickets/unlink:
        post:
            tags:
                - ExternalTicketingService
            summary: Unlink a Ticket from Findings
            description: Remove the ticket association from one or more Semgrep findings by providing a list of finding IDs. This does not delete the ticket in your issue tracker — it only removes the association in Semgrep.
            operationId: ExternalTicketingService_UnlinkTicket
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: 1234
                    title: Deployment ID
                    type: integer
                    description: The unique numerical identifier of the deployment associated with the finding. Can be found via the [Deployments Service](#tag/DeploymentsService) or in your Settings in the web UI.
                    format: int64
                - name: ticketingInstanceId
                  in: path
                  required: true
                  schema:
                    example: 5678
                    title: Ticketing Instance ID
                    type: integer
                    description: The unique numerical identifier of the ticketing instance. Can be found via the [Get External Ticketing Instances](#tag/ExternalTicketingService/operation/ExternalTicketingService_GetNangoTicketingInstances) endpoint.
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.ticketing.v2.UnlinkTicketRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.ticketing.v2.UnlinkTicketResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/notifications/deployments/{deploymentId}/ticketing/v2/{ticketingInstanceId}/tickets/{nangoExternalTicketId}:
        delete:
            tags:
                - ExternalTicketingService
            summary: Delete External Ticket
            description: Delete a ticket and unlink it from Semgrep findings.
            operationId: ExternalTicketingService_DeleteNangoTicket
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: 1234
                    title: Deployment ID
                    type: integer
                    description: The unique numerical identifier of the deployment associated with the finding. Can be found via the [Deployments Service](#tag/DeploymentsService) or in your Settings in the web UI.
                    format: int64
                - name: ticketingInstanceId
                  in: path
                  required: true
                  schema:
                    example: 5678
                    title: Ticketing Instance ID
                    type: integer
                    description: The unique numerical identifier of the ticketing instance. Can be found via the [Get External Ticketing Instances](#tag/ExternalTicketingService/operation/ExternalTicketingService_GetNangoTicketingInstances) endpoint.
                    format: int64
                - name: nangoExternalTicketId
                  in: path
                  required: true
                  schema:
                    type: integer
                    description: |-
                        The unique numerical identifier for an external ticket.

                        To find the ticket ID associated with a Semgrep Finding, use "Get Issue" in the Issues Service. You will see the ticket ID (if present) in `json.externalTicket.id`.
                    format: int64
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.ticketing.v2.DeleteNangoTicketResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/notifications/deployments/{deploymentId}/wiz:
        get:
            tags:
                - WizCredentialService
            operationId: WizCredentialService_ListWizCredentials
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: integer
                    format: int64
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.notifications.v1.ListWizCredentialsResponse'
            security:
                - SemgrepJWT: []
        post:
            tags:
                - WizCredentialService
            operationId: WizCredentialService_CreateWizCredential
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: integer
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.notifications.v1.CreateWizCredentialRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.notifications.v1.CreateWizCredentialResponse'
            security:
                - SemgrepJWT: []
    /api/notifications/deployments/{deploymentId}/wiz/validate:
        post:
            tags:
                - WizCredentialService
            operationId: WizCredentialService_ValidateWizCredential
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: integer
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.notifications.v1.ValidateWizCredentialRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.notifications.v1.ValidateWizCredentialResponse'
            security:
                - SemgrepJWT: []
    /api/notifications/deployments/{deploymentId}/wiz/{id}:
        get:
            tags:
                - WizCredentialService
            operationId: WizCredentialService_GetWizCredential
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: integer
                    format: int64
                - name: id
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.notifications.v1.GetWizCredentialResponse'
            security:
                - SemgrepJWT: []
        put:
            tags:
                - WizCredentialService
            operationId: WizCredentialService_UpdateWizCredential
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: integer
                    format: int64
                - name: id
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.notifications.v1.UpdateWizCredentialRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.notifications.v1.UpdateWizCredentialResponse'
            security:
                - SemgrepJWT: []
        delete:
            tags:
                - WizCredentialService
            operationId: WizCredentialService_DeleteWizCredential
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: integer
                    format: int64
                - name: id
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.notifications.v1.DeleteWizCredentialResponse'
            security:
                - SemgrepJWT: []
    /api/notifications/in-app/deployments/{deploymentId}:
        get:
            tags:
                - NotificationsService
            summary: List Unread Notifications
            description: Returns a paginated list of unread notifications for a particular viewer
            operationId: NotificationsService_GetNotifications
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: cursor
                  in: query
                  description: 'NOTE: TBD on the specifications of cursors & `optional` in Request protos.'
                  schema:
                    type: string
                - name: limit
                  in: query
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.notifications.v1.GetNotificationsResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/notifications/in-app/deployments/{deploymentId}/mark_as_seen:
        put:
            tags:
                - NotificationsService
            summary: Mark Notifications as Seen
            description: Marks a list of notifications as seen
            operationId: NotificationsService_MarkNotificationsAsSeen
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.notifications.v1.MarkNotificationsAsSeenRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.notifications.v1.MarkNotificationsAsSeenResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/onboarding/deployments/{deploymentId}/checklist:
        get:
            tags:
                - ChecklistService
            operationId: ChecklistService_GetChecklistStatus
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.onboarding.v1.GetChecklistStatusResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
        patch:
            tags:
                - ChecklistService
            operationId: ChecklistService_PatchChecklist
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.onboarding.v1.PatchChecklistRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.onboarding.v1.PatchChecklistResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/onboarding/deployments/{deploymentId}/invite_members:
        post:
            tags:
                - ChecklistService
            operationId: ChecklistService_InviteMembers
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.onboarding.v1.InviteMembersRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.onboarding.v1.InviteMembersResponse'
            security:
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/permissions/v2/deployments/{deploymentId}/status:
        get:
            tags:
                - TeamsService
            summary: Check RBAC status
            description: Indicates if deployment has Role-Based Access Control enabled
            operationId: TeamsService_CheckRbacStatus
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: 1111
                    title: Deployment ID
                    type: integer
                    description: The unique numerical identifier for the deployment.
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.permissions.v2.CheckRbacStatusResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Beta", "position": "after", "color": "blue"}]
    /api/permissions/v2/deployments/{deploymentId}/teams:
        post:
            tags:
                - TeamsService
            summary: Create a deployment RBAC team
            description: Create a new Role-Based Access Control team for a deployment
            operationId: TeamsService_CreateDeploymentTeam
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: 1111
                    title: Deployment ID
                    type: integer
                    description: The unique numerical identifier for the deployment.
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.permissions.v2.CreateDeploymentTeamRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.permissions.v2.CreateDeploymentTeamResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Beta", "position": "after", "color": "blue"}]
    /api/permissions/v2/deployments/{deploymentId}/teams/list:
        post:
            tags:
                - TeamsService
            summary: List deployment teams
            description: List a deployment's Role-Based Access Control teams
            operationId: TeamsService_ListDeploymentTeams
            parameters:
                - name: deploymentId
                  in: path
                  description: Deployment ID for which to list teams
                  required: true
                  schema:
                    example: 1111
                    title: Deployment ID
                    type: integer
                    description: The unique numerical identifier for the deployment.
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.permissions.v2.ListDeploymentTeamsRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.permissions.v2.ListDeploymentTeamsResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Beta", "position": "after", "color": "blue"}]
    /api/permissions/v2/deployments/{deploymentId}/teams/{teamId}:
        get:
            tags:
                - TeamsService
            summary: Get a deployment RBAC team
            description: Get a deployment's Role-Based Access Control team
            operationId: TeamsService_GetDeploymentTeam
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: 1111
                    title: Deployment ID
                    type: integer
                    description: The unique numerical identifier for the deployment.
                - name: teamId
                  in: path
                  required: true
                  schema:
                    example: 1234
                    title: Team ID
                    type: integer
                    description: The unique numerical identifier for the team.
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.permissions.v2.GetDeploymentTeamResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Beta", "position": "after", "color": "blue"}]
        delete:
            tags:
                - TeamsService
            summary: Delete a deployment RBAC team
            description: Delete a deployment's Role-Based Access Control team
            operationId: TeamsService_DeleteDeploymentTeam
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: 1111
                    title: Deployment ID
                    type: integer
                    description: The unique numerical identifier for the deployment.
                - name: teamId
                  in: path
                  required: true
                  schema:
                    example: 1111
                    title: Team ID
                    type: integer
                    description: The unique numerical identifier for the team.
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.permissions.v2.DeleteDeploymentTeamResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Beta", "position": "after", "color": "blue"}]
        patch:
            tags:
                - TeamsService
            summary: Update a deployment RBAC team
            description: Update a deployment team's name, users, and repositories
            operationId: TeamsService_UpdateDeploymentTeam
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: 1111
                    title: Deployment ID
                    type: integer
                    description: The unique numerical identifier for the deployment.
                - name: teamId
                  in: path
                  required: true
                  schema:
                    example: 1234
                    title: Team ID
                    type: integer
                    description: The unique numerical identifier for the team.
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.permissions.v2.UpdateDeploymentTeamRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.permissions.v2.UpdateDeploymentTeamResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Beta", "position": "after", "color": "blue"}]
    /api/permissions/v2/deployments/{deploymentId}/teams/{teamId}/members:
        get:
            tags:
                - TeamsService
            summary: List an RBAC team's users
            description: List the users assigned to a Role-Based Access Control team
            operationId: TeamsService_ListTeamUsers
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: 1111
                    title: Deployment ID
                    type: integer
                    description: The unique numerical identifier for the deployment.
                - name: teamId
                  in: path
                  required: true
                  schema:
                    example: 1234
                    title: Team ID
                    type: integer
                    description: The unique numerical identifier for the team.
                - name: limit
                  in: query
                  schema:
                    example: 100
                    type: integer
                    default: !!float 100
                    description: Maximum number of items to return in a single page.
                - name: cursor
                  in: query
                  schema:
                    type: string
                    default: ""
                    description: Opaque cursor used for pagination. If not provided the first page will be returned.
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.permissions.v2.ListTeamUsersResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Beta", "position": "after", "color": "blue"}]
    /api/permissions/v2/deployments/{deploymentId}/teams/{teamId}/repos:
        get:
            tags:
                - TeamsService
            summary: List an RBAC team's repositories
            description: List the repositories assigned to a Role-Based Access Control team
            operationId: TeamsService_ListTeamRepos
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: 1111
                    title: Deployment ID
                    type: integer
                    description: The unique numerical identifier for the deployment.
                - name: teamId
                  in: path
                  required: true
                  schema:
                    example: 1234
                    title: Team ID
                    type: integer
                    description: The unique numerical identifier for the team.
                - name: limit
                  in: query
                  schema:
                    example: 100
                    type: integer
                    default: !!float 100
                    description: Maximum number of items to return in a single page.
                - name: cursor
                  in: query
                  schema:
                    type: string
                    default: ""
                    description: Opaque cursor used for pagination. If not provided the first page will be returned.
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.permissions.v2.ListTeamReposResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Beta", "position": "after", "color": "blue"}]
    /api/permissions/v2/deployments/{deploymentId}/teams/{teamId}/teams:
        get:
            tags:
                - TeamsService
            summary: List an RBAC team's child teams
            description: List the child teams assigned to a Role-Based Access Control team
            operationId: TeamsService_ListTeamChildTeams
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: 1111
                    title: Deployment ID
                    type: integer
                    description: The unique numerical identifier for the deployment.
                - name: teamId
                  in: path
                  required: true
                  schema:
                    example: 1234
                    title: Team ID
                    type: integer
                    description: The unique numerical identifier for the team.
                - name: limit
                  in: query
                  schema:
                    example: 100
                    type: integer
                    default: !!float 100
                    description: Maximum number of items to return in a single page.
                - name: cursor
                  in: query
                  schema:
                    type: string
                    default: ""
                    description: Opaque cursor used for pagination. If not provided the first page will be returned.
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.permissions.v2.ListTeamChildTeamsResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/policies/v1/deployments/{deploymentId}:
        get:
            tags:
                - PoliciesService
            summary: List Policies
            description: List all policies for a given deployment.
            operationId: PoliciesService_ListPolicies
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: 123
                    type: string
                    description: The unique numerical identifier for the deployment.
                    format: int64
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.policies.v1.ListPoliciesResponse'
            deprecated: true
            security:
                - SemgrepWebToken: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/policies/v1/deployments/{deploymentId}/{policyId}/rules:
        get:
            tags:
                - PoliciesService
            summary: List Policy Rules
            description: List the rules for a given policy.
            operationId: PoliciesService_ListPolicyRules
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: 123
                    type: string
                    description: The unique numerical identifier for the deployment.
                    format: int64
                - name: policyId
                  in: path
                  required: true
                  schema:
                    example: 456
                    type: string
                    description: The unique numerical identifier for the policy. Find your policy's ID via the [List Policies](/api/v2/docs/#tag/PoliciesService/operation/PoliciesService_ListPolicies) endpoint.
                    format: int64
                - name: cursor
                  in: query
                  schema:
                    type: string
                    description: Cursor to paginate through the rules. Provide a cursor value from the response to retrieve the next page.
                - name: limit
                  in: query
                  schema:
                    type: integer
                    description: Page size to paginate through the rules. The default page size is `500` and the maximum allowed page size is `2000`.
                    format: int64
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.policies.v1.ListPolicyRulesResponse'
            deprecated: true
            security:
                - SemgrepWebToken: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/policies/v1/deployments/{deploymentId}/{policyId}/rules/{rulePath}:
        put:
            tags:
                - PoliciesService
            summary: Update Policy Rule
            description: Update a specific rule within a policy.
            operationId: PoliciesService_UpdatePolicyRule
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: 123
                    title: Deployment ID
                    type: string
                    description: The unique numerical identifier of your deployment. Can be found via the [Deployments Service](#tag/DeploymentsService) or in your Settings in the web UI.
                    format: int64
                - name: policyId
                  in: path
                  required: true
                  schema:
                    example: 456
                    title: Policy ID
                    type: string
                    description: The unique numerical identifier for the policy. Find your policy's ID via the [List Policies](/api/v2/docs/#tag/PoliciesService/operation/PoliciesService_ListPolicies) endpoint.
                    format: int64
                - name: rulePath
                  in: path
                  required: true
                  schema:
                    example: python.rule.1
                    title: Rule Path
                    type: string
                    description: Uniquely identify the Rule using its full path. Find the Rule's path via the [List Policy Rules](/api/v2/docs/#tag/PoliciesService/operation/PoliciesService_ListPolicyRules) endpoint or via the [Semgrep Registry](/docs/semgrep-code/glossary#registry-semgrep-registry).
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.policies.v1.UpdatePolicyRuleRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.policies.v1.UpdatePolicyRuleResponse'
            deprecated: true
            security:
                - SemgrepWebToken: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/policies/v2/deployments/{deploymentId}/detection-policy:
        get:
            tags:
                - PoliciesV2Service
            summary: Get the detection policy summary
            description: Returns the detection policy bundles and state_versions for every enabled product in one read-only call. Writes always go through the per-product endpoints.
            operationId: PoliciesV2Service_GetDetectionPolicySummary
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: 1234
                    title: Deployment ID
                    type: integer
                    description: The unique numerical identifier for the deployment.
                    format: int64
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.policies.v2.GetDetectionPolicySummaryResponse'
            security:
                - SemgrepWebToken: []
            x-badges: [{"name": "Beta", "position": "after", "color": "blue"}]
    /api/policies/v2/deployments/{deploymentId}/detection-policy/{product}:
        get:
            tags:
                - PoliciesV2Service
            summary: Get a detection policy
            description: Returns the detection policy bundle for one product (`code` or `secrets`), including its exceptions, plus the state_version required to apply changes. Returns 404 with code PRODUCT_NOT_ENABLED when the requested product is not enabled for the deployment.
            operationId: PoliciesV2Service_GetDetectionPolicy
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: 1234
                    title: Deployment ID
                    type: integer
                    description: The unique numerical identifier for the deployment.
                    format: int64
                - name: product
                  in: path
                  required: true
                  schema:
                    example: code
                    type: string
                    description: 'The product to read the detection policy for. One of: `code`, `secrets`.'
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.policies.v2.GetDetectionPolicyResponse'
            security:
                - SemgrepWebToken: []
            x-badges: [{"name": "Beta", "position": "after", "color": "blue"}]
        put:
            tags:
                - PoliciesV2Service
            summary: Apply a detection policy
            description: 'Strictly applies a candidate detection policy bundle for one product: the submitted bundle replaces the current state, and exceptions absent from it are deleted. Requires the current state_version in the If-Match header; responds 428 when the header is missing and 409 with the current state_version when it is stale. The apply is atomic for the product''s bundle.'
            operationId: PoliciesV2Service_ApplyDetectionPolicy
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: 1234
                    title: Deployment ID
                    type: integer
                    description: The unique numerical identifier for the deployment.
                    format: int64
                - name: product
                  in: path
                  required: true
                  schema:
                    example: code
                    type: string
                    description: 'The product the bundle applies to. One of: `code`, `secrets`.'
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.policies.v2.ApplyDetectionPolicyRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.policies.v2.ApplyDetectionPolicyResponse'
            security:
                - SemgrepWebToken: []
            x-badges: [{"name": "Beta", "position": "after", "color": "blue"}]
    /api/policies/v2/deployments/{deploymentId}/detection-policy/{product}:dryRun:
        post:
            tags:
                - PoliciesV2Service
            summary: Preview a detection policy apply
            description: Validates a candidate detection policy bundle and returns the diff a strict apply would produce, without changing anything. The response includes the state_version the diff was computed against; send that exact value as If-Match on the follow-up PUT to guarantee you apply the diff you previewed.
            operationId: PoliciesV2Service_DryRunDetectionPolicy
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: 1234
                    title: Deployment ID
                    type: integer
                    description: The unique numerical identifier for the deployment.
                    format: int64
                - name: product
                  in: path
                  required: true
                  schema:
                    example: code
                    type: string
                    description: 'The product the candidate bundle applies to. One of: `code`, `secrets`.'
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.policies.v2.DryRunDetectionPolicyRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.policies.v2.DryRunDetectionPolicyResponse'
            security:
                - SemgrepWebToken: []
            x-badges: [{"name": "Beta", "position": "after", "color": "blue"}]
    /api/policies/v2/deployments/{deploymentId}/remediation-policies:
        get:
            tags:
                - PoliciesV2Service
            summary: Get remediation policies
            description: Returns the remediation policies bundle for the deployment plus the state_version required to apply changes. System-managed policies are not included.
            operationId: PoliciesV2Service_GetRemediationPolicies
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: 1234
                    title: Deployment ID
                    type: integer
                    description: The unique numerical identifier for the deployment.
                    format: int64
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.policies.v2.GetRemediationPoliciesResponse'
            security:
                - SemgrepWebToken: []
            x-badges: [{"name": "Beta", "position": "after", "color": "blue"}]
        put:
            tags:
                - PoliciesV2Service
            summary: Apply remediation policies
            description: 'Strictly applies a candidate remediation policies bundle: the submitted list replaces the current state, and policies absent from it are deleted. Requires the current state_version in the If-Match header; responds 428 when the header is missing and 409 with the current state_version when it is stale. The apply is atomic for the bundle. System-managed policies are unaffected; submitting a policy whose slug collides with one responds 409 with code RESERVED_SLUG.'
            operationId: PoliciesV2Service_ApplyRemediationPolicies
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: 1234
                    title: Deployment ID
                    type: integer
                    description: The unique numerical identifier for the deployment.
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.policies.v2.ApplyRemediationPoliciesRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.policies.v2.ApplyRemediationPoliciesResponse'
            security:
                - SemgrepWebToken: []
            x-badges: [{"name": "Beta", "position": "after", "color": "blue"}]
    /api/policies/v2/deployments/{deploymentId}/remediation-policies:dryRun:
        post:
            tags:
                - PoliciesV2Service
            summary: Preview a remediation policies apply
            description: Validates a candidate remediation policies bundle and returns the diff a strict apply would produce, without changing anything. The response includes the state_version the diff was computed against; send that exact value as If-Match on the follow-up PUT to guarantee you apply the diff you previewed.
            operationId: PoliciesV2Service_DryRunRemediationPolicies
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: 1234
                    title: Deployment ID
                    type: integer
                    description: The unique numerical identifier for the deployment.
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.policies.v2.DryRunRemediationPoliciesRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.policies.v2.DryRunRemediationPoliciesResponse'
            security:
                - SemgrepWebToken: []
            x-badges: [{"name": "Beta", "position": "after", "color": "blue"}]
    /api/policies/v2/deployments/{deploymentId}/vocab:
        get:
            tags:
                - PoliciesV2Service
            summary: Get the policy vocabulary
            description: Returns the condition types, action types, and value enums this API accepts, so bundles can be validated client-side (for example in CI) without a round trip. Without the product query parameter, only the product-agnostic vocabulary is returned; pass product to include its value enums and, for `code` and `secrets`, the detection bundle constraints.
            operationId: PoliciesV2Service_GetVocab
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: 1234
                    title: Deployment ID
                    type: integer
                    description: The unique numerical identifier for the deployment.
                    format: int64
                - name: product
                  in: query
                  description: |-
                    The product to return product-specific value enums and constraints for.
                     Without it, only the product-agnostic parts of the vocabulary are
                     returned.
                  schema:
                    example: remediation
                    type: string
                    description: 'The product to return product-specific value enums and constraints for. One of: `code`, `secrets`, `remediation`. Without it, only the product-agnostic parts of the vocabulary are returned.'
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.policies.v2.GetVocabResponse'
            security:
                - SemgrepWebToken: []
            x-badges: [{"name": "Beta", "position": "after", "color": "blue"}]
    /api/readiness-check:
        get:
            tags:
                - MiscService
            summary: Check container readiness
            description: Check if container started up correctly
            operationId: MiscService_ReadinessCheck
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.misc.v1.ReadinessCheckResponse'
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/reporting/{deploymentId}/findings:
        post:
            tags:
                - ReportsService
            summary: Get Report Findings
            description: ' '
            operationId: ReportsService_GetReportFindings
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: "1234"
                    title: Deployment ID
                    type: string
                    description: 'The unique numerical identifier of the deployment associated with the report. '
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.reporting.v1.GetReportFindingsRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.reporting.v1.GetReportFindingsResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Beta", "position": "after", "color": "blue"}]
    /api/reporting/{deploymentId}/reports/activity:
        post:
            tags:
                - ReportsService
            summary: Get Findings Activity Report
            description: ' '
            operationId: ReportsService_GetFindingsActivityReport
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: "1234"
                    title: Deployment ID
                    type: string
                    description: 'The unique numerical identifier of the deployment associated with the report. '
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.reporting.v1.GetReportRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.reporting.v1.GetFindingsActivityReportResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Beta", "position": "after", "color": "blue"}]
    /api/reporting/{deploymentId}/reports/backlog/by-product:
        post:
            tags:
                - ReportsService
            summary: Get Backlog by Product Report
            description: ' '
            operationId: ReportsService_GetBacklogByProductReport
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: "1234"
                    title: Deployment ID
                    type: string
                    description: 'The unique numerical identifier of the deployment associated with the report. '
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.reporting.v1.GetReportRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.reporting.v1.GetBacklogByProductReportResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Beta", "position": "after", "color": "blue"}]
    /api/reporting/{deploymentId}/reports/backlog/by-rule:
        post:
            tags:
                - ReportsService
            summary: Get Backlog by Rule Report
            description: ' '
            operationId: ReportsService_GetBacklogByRuleReport
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: "1234"
                    title: Deployment ID
                    type: string
                    description: 'The unique numerical identifier of the deployment associated with the report. '
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.reporting.v1.GetReportRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.reporting.v1.GetBacklogByRuleReportResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Beta", "position": "after", "color": "blue"}]
    /api/reporting/{deploymentId}/reports/backlog/by-severity:
        post:
            tags:
                - ReportsService
            summary: Get Backlog by Severity Report
            description: ' '
            operationId: ReportsService_GetBacklogBySeverityReport
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: "1234"
                    title: Deployment ID
                    type: string
                    description: 'The unique numerical identifier of the deployment associated with the report. '
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.reporting.v1.GetReportRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.reporting.v1.GetBacklogBySeverityReportResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Beta", "position": "after", "color": "blue"}]
    /api/reporting/{deploymentId}/reports/by-project/by-product:
        post:
            tags:
                - ReportsService
            summary: Get Findings by Project and Product Report
            description: ' '
            operationId: ReportsService_GetFindingsByProjectAndProductReport
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: "1234"
                    title: Deployment ID
                    type: string
                    description: 'The unique numerical identifier of the deployment associated with the report. '
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.reporting.v1.GetReportRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.reporting.v1.GetFindingsByProjectAndProductReportResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Beta", "position": "after", "color": "blue"}]
    /api/reporting/{deploymentId}/reports/by-project/by-severity:
        post:
            tags:
                - ReportsService
            summary: Get Findings by Project and Severity Report
            description: ' '
            operationId: ReportsService_GetFindingsByProjectAndSeverityReport
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: "1234"
                    title: Deployment ID
                    type: string
                    description: 'The unique numerical identifier of the deployment associated with the report. '
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.reporting.v1.GetReportRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.reporting.v1.GetFindingsByProjectAndSeverityReportResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Beta", "position": "after", "color": "blue"}]
    /api/reporting/{deploymentId}/reports/funnel:
        post:
            tags:
                - ReportsService
            summary: Get Findings Funnel Report
            description: ' '
            operationId: ReportsService_GetFindingsFunnelReport
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: "1234"
                    title: Deployment ID
                    type: string
                    description: 'The unique numerical identifier of the deployment associated with the report. '
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.reporting.v1.GetReportRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.reporting.v1.GetFindingsFunnelReportResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Beta", "position": "after", "color": "blue"}]
    /api/reporting/{deploymentId}/reports/guardrails-activity:
        post:
            tags:
                - ReportsService
            summary: Get Guardrails Activity Report
            description: ' '
            operationId: ReportsService_GetGuardrailsActivityReport
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: "1234"
                    title: Deployment ID
                    type: string
                    description: 'The unique numerical identifier of the deployment associated with the report. '
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.reporting.v1.GetReportRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.reporting.v1.GetGuardrailsActivityReportResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Beta", "position": "after", "color": "blue"}]
    /api/reporting/{deploymentId}/reports/guardrails-adoption:
        post:
            tags:
                - ReportsService
            summary: Get Guardrails Adoption Report
            description: ' '
            operationId: ReportsService_GetGuardrailsAdoptionReport
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: "1234"
                    title: Deployment ID
                    type: string
                    description: 'The unique numerical identifier of the deployment associated with the report. '
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.reporting.v1.GetReportRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.reporting.v1.GetGuardrailsAdoptionReportResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Beta", "position": "after", "color": "blue"}]
    /api/reporting/{deploymentId}/reports/malware-firewall/blocked-mal-deps/by-advisory:
        post:
            tags:
                - ReportsService
            summary: Get Malware Firewall Blocked Malicious Dependencies by Advisory Report
            description: ' '
            operationId: ReportsService_GetMalwareFirewallBlockedMalDepsByAdvisoryReport
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: "1234"
                    title: Deployment ID
                    type: string
                    description: 'The unique numerical identifier of the deployment associated with the report. '
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.reporting.v1.GetMalwareFirewallBlockedMalDepsRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.reporting.v1.GetMalwareFirewallBlockedMalDepsByAdvisoryReportResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Beta", "position": "after", "color": "blue"}]
    /api/reporting/{deploymentId}/reports/malware-firewall/blocked-mal-deps/by-dep-version-and-ecosystem:
        post:
            tags:
                - ReportsService
            summary: Get Malware Firewall Blocked Malicious Dependencies by Dependency, Version, and Ecosystem Report
            description: ' '
            operationId: ReportsService_GetMalwareFirewallBlockedMalDepsByDepVersionAndEcosystemReport
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: "1234"
                    title: Deployment ID
                    type: string
                    description: 'The unique numerical identifier of the deployment associated with the report. '
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.reporting.v1.GetMalwareFirewallBlockedMalDepsRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.reporting.v1.GetMalwareFirewallBlockedMalDepsByDepVersionAndEcosystemReportResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Beta", "position": "after", "color": "blue"}]
    /api/reporting/{deploymentId}/reports/malware-firewall/blocked-mal-deps/by-ecosystem:
        post:
            tags:
                - ReportsService
            summary: Get Malware Firewall Blocked Malicious Dependencies by Ecosystem Report
            description: ' '
            operationId: ReportsService_GetMalwareFirewallBlockedMalDepsByEcosystemReport
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: "1234"
                    title: Deployment ID
                    type: string
                    description: 'The unique numerical identifier of the deployment associated with the report. '
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.reporting.v1.GetMalwareFirewallBlockedMalDepsRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.reporting.v1.GetMalwareFirewallBlockedMalDepsByEcosystemReportResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Beta", "position": "after", "color": "blue"}]
    /api/reporting/{deploymentId}/reports/median-open-age/by-product:
        post:
            tags:
                - ReportsService
            summary: Get Median Open Age by Product Report
            description: ' '
            operationId: ReportsService_GetMedianOpenAgeByProductReport
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: "1234"
                    title: Deployment ID
                    type: string
                    description: 'The unique numerical identifier of the deployment associated with the report. '
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.reporting.v1.GetReportRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.reporting.v1.GetMedianOpenAgeByProductReportResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Beta", "position": "after", "color": "blue"}]
    /api/reporting/{deploymentId}/reports/median-open-age/by-severity:
        post:
            tags:
                - ReportsService
            summary: Get Median Open Age by Severity Report
            description: ' '
            operationId: ReportsService_GetMedianOpenAgeBySeverityReport
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: "1234"
                    title: Deployment ID
                    type: string
                    description: 'The unique numerical identifier of the deployment associated with the report. '
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.reporting.v1.GetReportRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.reporting.v1.GetMedianOpenAgeBySeverityReportResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Beta", "position": "after", "color": "blue"}]
    /api/run:
        post:
            tags:
                - EditorService
            summary: Run Pattern
            description: Execute a Semgrep pattern against target code and return the results
            operationId: EditorService_RunPattern
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.editor.v1.RunPatternRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.editor.v1.RunPatternResponse'
            security:
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/sca/deployments/{deploymentId}/advisories/{advisoryId}/findings:
        post:
            tags:
                - SupplyChain2Service
            summary: List findings for advisory
            description: Returns a summary of findings grouped by project and branch for a specific advisory using pagination
            operationId: SupplyChain2Service_ListFindingsForAdvisory
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: 123
                    type: string
                    description: 'Deployment ID (numeric). Example: `123`. Can be found at `/deployments`, or in your Settings in the web UI.'
                    format: int64
                - name: advisoryId
                  in: path
                  required: true
                  schema:
                    example: ssc-abc123
                    type: string
                    description: Advisory identifier to get findings for
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.sca.v1.ListFindingsForAdvisoryRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.sca.v1.ListFindingsForAdvisoryResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/sca/deployments/{deploymentId}/dependencies:
        get:
            tags:
                - SupplyChain2Service
            summary: List dependencies
            description: Returns all (or filtered) dependencies for a deployment using pagination
            operationId: SupplyChain2Service_ListDependencies_GET
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: 123
                    type: string
                    description: 'Deployment ID (numeric). Example: `123`. Can be found at `/deployments`, or in your Settings in the web UI.'
                    format: int64
                - name: dependencyFilter.name
                  in: query
                  description: Deprecated - use package_filters instead. Filter by dependency name (e.g. lodash).
                  schema:
                    type: string
                - name: dependencyFilter.version
                  in: query
                  description: Deprecated - use package_filters instead. Filter by dependency version (e.g. 1.0.1).
                  schema:
                    type: string
                - name: dependencyFilter.repositoryId
                  in: query
                  description: |-
                    Repository IDs (numeric) to filter by. Omit if the endpoint has Repository ID as a path parameter.
                     Use Projects endpoints to retrieve Repository IDs.
                  schema:
                    type: array
                    items:
                        type: integer
                        format: int64
                - name: dependencyFilter.transitivity
                  in: query
                  description: Filter by transitivity.
                  schema:
                    type: array
                    items:
                        enum:
                            - UNKNOWN_TRANSITIVITY
                            - TRANSITIVE
                            - DIRECT
                        type: string
                        format: enum
                - name: dependencyFilter.ecosystem
                  in: query
                  description: Filter by ecosystem (e.g. npm, pypi, etc).
                  schema:
                    type: array
                    items:
                        enum:
                            - no_package_manager
                            - npm
                            - pypi
                            - gomod
                            - cargo
                            - maven
                            - gem
                            - composer
                            - nuget
                            - pub
                            - swiftpm
                            - hex
                            - cocoapods
                            - mix
                            - opam
                        type: string
                        format: enum
                - name: dependencyFilter.lockfilePath
                  in: query
                  description: Filter by path to the lockfile (e.g. `foo/bar/package-lock.json`).
                  schema:
                    type: string
                - name: dependencyFilter.licensePolicySettings
                  in: query
                  description: Filter by license policy setting outcome.
                  schema:
                    type: array
                    items:
                        enum:
                            - LICENSE_POLICY_SETTING_UNSPECIFIED
                            - LICENSE_POLICY_SETTING_ALLOW
                            - LICENSE_POLICY_SETTING_COMMENT
                            - LICENSE_POLICY_SETTING_BLOCK
                        type: string
                        format: enum
                - name: dependencyFilter.license
                  in: query
                  description: Filter by license (e.g. MIT).
                  schema:
                    type: array
                    items:
                        type: string
                - name: cursor
                  in: query
                  schema:
                    type: string
                    description: Cursor to paginate through the dependencies. Provide a cursor value from the response to retrieve the next page.
                    format: int64
                - name: pageSize
                  in: query
                  schema:
                    example: 1000
                    maximum: !!float 10000
                    minimum: !!float 1
                    type: integer
                    default: !!float 1000
                    description: Number of dependencies per page.
                    format: int64
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.sca.v1.ListDependenciesResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
        post:
            tags:
                - SupplyChain2Service
            summary: List dependencies
            description: Returns all (or filtered) dependencies for a deployment using pagination
            operationId: SupplyChain2Service_ListDependencies_POST
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: 123
                    type: string
                    description: 'Deployment ID (numeric). Example: `123`. Can be found at `/deployments`, or in your Settings in the web UI.'
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.sca.v1.ListDependenciesRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.sca.v1.ListDependenciesResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/sca/deployments/{deploymentId}/repositories:
        post:
            tags:
                - SupplyChain2Service
            summary: List repositories with dependencies
            description: Returns any repositories which contain dependencies that match the given filter for a deployment
            operationId: SupplyChain2Service_ListRepositoriesForDependencies
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                    description: 'Deployment ID (numeric). Example: `123`. Can be found at `/deployments`, or in your Settings in the web UI.'
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.sca.v1.ListRepositoriesForDependenciesRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.sca.v1.ListRepositoriesForDependenciesResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/sca/deployments/{deploymentId}/sbom_async:
        post:
            tags:
                - SupplyChain2Service
            summary: Generate a project's SBOM
            description: |-
                Starts a job to asynchronously generate a Software Bill of Materials (SBOM) for a given project. It does not return the SBOM itself, only schedules the job and returns a task JWT.

                The [Tasks Service](#tag/TasksService) can accept the task token to get the status and result of the job.
            operationId: SupplyChain2Service_GenerateSbomAsync
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: 123
                    type: string
                    description: 'Deployment ID (numeric). Example: `123`. Can be found at `/deployments`, or in your Settings in the web UI.'
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.sca.v1.GenerateSbomAsyncRequest'
                required: true
            responses:
                "202":
                    description: Accepted
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.sca.v1.GenerateSbomAsyncResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/sca/deployments/{deploymentId}/{repositoryId}/lockfiles:
        post:
            tags:
                - SupplyChain2Service
            summary: List lockfiles with dependencies in a given repository
            description: Returns all (or filtered) lockfiles that contain dependencies within the specified repository
            operationId: SupplyChain2Service_ListLockfilesForDependencies
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                    description: 'Deployment ID (numeric). Example: `123`. Can be found at `/deployments`, or in your Settings in the web UI.'
                    format: int64
                - name: repositoryId
                  in: path
                  required: true
                  schema:
                    type: string
                    description: Repository ID to filter by. Use Projects endpoints to retrieve repository IDs.
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.sca.v1.ListLockfilesForDependenciesRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.sca.v1.ListLockfilesForDependenciesResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/scm/ado_app:
        post:
            tags:
                - ScmAppsService
            summary: Create Azure DevOps SCM App (Service Principal)
            description: 'Create an ADO ScmApp using Entra ID Service Principal credentials. Generates a key pair server-side and returns the public certificate for the customer to upload to their Entra app registration. CompleteAdoScmAppInstall must be called to finish the install after the certificate is uploaded. '
            operationId: ScmAppsService_CreateAdoScmApp
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.scm.v1.CreateAdoScmAppRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.scm.v1.CreateAdoScmAppResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/scm/ado_app_install:
        put:
            tags:
                - ScmAppsService
            summary: Complete Azure DevOps SCM App install
            description: After the user has uploaded the certificate, verify the Service Principal can authenticate to ADO and create webhook subscriptions required for the integration. Then mark the install as ready.
            operationId: ScmAppsService_CompleteAdoScmAppInstall
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.scm.v1.CompleteAdoScmAppInstallRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.scm.v1.CompleteAdoScmAppInstallResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/scm/app_request:
        post:
            tags:
                - ScmAppsService
            summary: Create SCMAppRequest
            description: Create a new SCM app request.
            operationId: ScmAppsService_CreateScmAppRequest
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.scm.v1.CreateScmAppRequestRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.scm.v1.CreateScmAppRequestResponse'
            security:
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/scm/app_request_complete:
        put:
            tags:
                - ScmAppsService
            summary: Complete SCMAppRequest
            description: Complete an SCM app request.
            operationId: ScmAppsService_CompleteScmAppRequest
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.scm.v1.CompleteScmAppRequestRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.scm.v1.CompleteScmAppRequestResponse'
            security:
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/scm/deployments/{deploymentId}/configs:
        get:
            tags:
                - ScmService
            summary: List SCMConfig
            description: List all SCM configs for a deployment.
            operationId: ScmService_ListScmConfig
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: limit
                  in: query
                  schema:
                    type: string
                - name: cursor
                  in: query
                  schema:
                    type: string
                - name: sortDirection
                  in: query
                  schema:
                    enum:
                        - SORT_DIRECTION_UNSPECIFIED
                        - SORT_DIRECTION_ASC
                        - SORT_DIRECTION_DESC
                    type: string
                    format: enum
                - name: sortBy
                  in: query
                  schema:
                    enum:
                        - SCM_CONFIG_SORT_BY_UNSPECIFIED
                        - SCM_CONFIG_SORT_BY_NAME
                        - SCM_CONFIG_SORT_BY_ID
                        - SCM_CONFIG_SORT_BY_LAST_SUCCESSFUL_SYNC_AT
                    type: string
                    format: enum
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.scm.v1.ListScmConfigResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
        post:
            tags:
                - ScmService
            summary: Create SCMConfig
            description: Create a new SCM config.
            operationId: ScmService_CreateScmConfig
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.scm.v1.CreateScmConfigRequest'
                required: true
            responses:
                "201":
                    description: Created
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.scm.v1.CreateScmConfigResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/scm/deployments/{deploymentId}/configs/search:
        post:
            tags:
                - ScmService
            summary: Search SCMConfig
            description: Search for SCM configs for a deployment.
            operationId: ScmService_SearchScmConfig
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.scm.v1.SearchScmConfigRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.scm.v1.SearchScmConfigResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/scm/deployments/{deploymentId}/configs/{configId}:
        delete:
            tags:
                - ScmService
            summary: Delete SCMConfig
            description: Delete an SCM config by its ID.
            operationId: ScmService_DeleteScmConfig
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: configId
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "204":
                    description: No Content
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.scm.v1.DeleteScmConfigResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
        patch:
            tags:
                - ScmService
            summary: Patch SCMConfig
            description: Update an existing SCM config.
            operationId: ScmService_PatchScmConfig
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: configId
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.scm.v1.PatchScmConfigRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.scm.v1.PatchScmConfigResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/scm/deployments/{deploymentId}/configs/{configId}/_sync:
        post:
            tags:
                - ScmService
            summary: Sync SCMConfig
            description: Sync an SCM config.
            operationId: ScmService_SyncScmConfig
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: configId
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.scm.v1.SyncScmConfigRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.scm.v1.SyncScmConfigResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/scm/deployments/{deploymentId}/configs/{configId}/check:
        get:
            tags:
                - ScmService
            summary: Check SCMConfig
            description: Check the status of an SCM config.
            operationId: ScmService_CheckScmConfig
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: configId
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.scm.v1.CheckScmConfigResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/scm/deployments/{deploymentId}/scm_apps:
        get:
            tags:
                - ScmAppsService
            summary: List SCM Apps
            description: List all SCM apps for a deployment.
            operationId: ScmAppsService_ListScmApps
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.scm.v1.ListScmAppsResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/scm/deployments/{deploymentId}/scm_apps/public_gha:
        get:
            tags:
                - ScmAppsService
            summary: Get Public GitHub App status
            description: Get the status of a public GitHub App.
            operationId: ScmAppsService_GetGitHubAppStatus
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: namespace
                  in: query
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.scm.v1.GetGitHubAppStatusResponse'
            security:
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/scm/deployments/{deploymentId}/scm_apps/{requestId}:
        get:
            tags:
                - ScmAppsService
            summary: Get SCMApp
            description: Get an SCM app by its request ID.
            operationId: ScmAppsService_GetScmApp
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: requestId
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.scm.v1.GetScmAppResponse'
            security:
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/scm/deployments/{deploymentId}/scm_apps/{scmAppId}:
        delete:
            tags:
                - ScmAppsService
            summary: Delete SCMApp
            description: Delete an SCM app by its ID.
            operationId: ScmAppsService_DeleteScmApp
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: scmAppId
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.scm.v1.DeleteScmAppResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/scm/deployments/{deploymentId}/scm_apps/{scmAppId}/add_ado_project:
        post:
            tags:
                - ScmAppsService
            summary: Add Azure DevOps Project
            description: Add a new ADO project to an existing Entra App install. The service principal must already have permissions on the ADO project
            operationId: ScmAppsService_AddAdoScmProject
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: scmAppId
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.scm.v1.AddAdoScmProjectRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.scm.v1.AddAdoScmProjectResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/scm/deployments/{deploymentId}/scm_apps/{scmAppId}/rotate_webhook_secret:
        post:
            tags:
                - ScmAppsService
            summary: Rotate SCM App Webhook Secret
            description: Generate a new webhook secret, update it on the SCM provider, and persist it.
            operationId: ScmAppsService_RotateScmAppWebhookSecret
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: scmAppId
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.scm.v1.RotateScmAppWebhookSecretResponse'
            security:
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/scm/deployments/{deploymentId}/subscriptions/{configId}:
        get:
            tags:
                - ScmSubscriptionsService
            summary: List SCM Webhook Subscriptions
            description: List all SCM webhook subscriptions for a deployment.
            operationId: ScmSubscriptionsService_ListScmWebhookSubscription
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: configId
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.scm.v1.ListScmWebhookSubscriptionResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
        put:
            tags:
                - ScmSubscriptionsService
            summary: Subscribe to SCM Webhook
            description: Subscribe to SCM webhook events.
            operationId: ScmSubscriptionsService_ScmWebhookSubscriptionSubscribe
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: configId
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.scm.v1.ScmWebhookSubscriptionSubscribeResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
        delete:
            tags:
                - ScmSubscriptionsService
            summary: Unsubscribe from SCM Webhook
            description: Unsubscribe from SCM webhook events.
            operationId: ScmSubscriptionsService_ScmWebhookSubscriptionUnsubscribe
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: configId
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.scm.v1.ScmWebhookSubscriptionUnsubscribeResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/scm/deployments/{deploymentId}/subscriptions/{configId}/rotate_secret:
        post:
            tags:
                - ScmSubscriptionsService
            summary: Rotate SCM Webhook Secret
            description: Generate a new webhook secret, update it on the SCM provider, and persist it.
            operationId: ScmSubscriptionsService_RotateScmWebhookSecret
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: configId
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.scm.v1.RotateScmWebhookSecretResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/sms/v2/deployments/{deploymentId}/project_settings:
        post:
            tags:
                - ProjectManagedScanSettingsService
            summary: Bulk get many Projects' Managed Scan Settings
            description: Finds the user-configurable managed scan settings for the specified projects. Projects without managed scanning set up will have empty values.
            operationId: ProjectManagedScanSettingsService_BulkGetProjectManagedScanSettings
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: 123
                    type: string
                    description: 'Deployment ID (numeric). Example: `123`. Can be found at `/deployments`, or in your Settings in the web UI.'
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.project_managed_scan_settings.v2.BulkGetProjectManagedScanSettingsRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.project_managed_scan_settings.v2.BulkGetProjectManagedScanSettingsResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/sms/v2/deployments/{deploymentId}/projects/{projectId}/settings:
        get:
            tags:
                - ProjectManagedScanSettingsService
            summary: Get a Project's Managed Scan Settings
            description: Finds the user-configurable managed scan settings for the specified project. Returns an empty result if the specified project does not have managed scanning set up.
            operationId: ProjectManagedScanSettingsService_GetProjectManagedScanSettings
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: 123
                    type: string
                    description: 'Deployment ID (numeric). Example: `123`. Can be found at `/deployments`, or in your Settings in the web UI.'
                    format: int64
                - name: projectId
                  in: path
                  required: true
                  schema:
                    example: 123
                    type: string
                    description: 'Project ID (numeric). Example: `123`. Can be found at `/deployments/{deployment_id}/projects/list`, or in "Projects" in the web UI.'
                    format: int64
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.project_managed_scan_settings.v2.GetProjectManagedScanSettingsResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/support/cases:
        post:
            tags:
                - SupportService
            operationId: SupportService_CreateSupportCase
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.support.v1.CreateSupportCaseRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.support.v1.CreateSupportCaseResponse'
            security:
                - SemgrepJWT: []
    /api/support/cases/{orgid}:
        get:
            tags:
                - SupportService
            operationId: SupportService_ListSupportCases
            parameters:
                - name: orgid
                  in: path
                  required: true
                  schema:
                    type: integer
                    format: int32
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.support.v1.ListSupportCasesResponse'
            security:
                - SemgrepJWT: []
    /api/survey/name/{surveyName}:
        get:
            tags:
                - SurveysService
            summary: Get a company survey response
            description: Retrieves company survey response by survey name
            operationId: SurveysService_GetSurveyResponse
            parameters:
                - name: surveyName
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.survey.v1.GetSurveyResponseResponse'
            security:
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/survey/submit:
        post:
            tags:
                - SurveysService
            summary: Submit company survey response
            description: Responds to company survey
            operationId: SurveysService_CreateSurveyResponse
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.survey.v1.CreateSurveyResponseRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.survey.v1.CreateSurveyResponseResponse'
            security:
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/tasks/v2/{taskTokenJwt}:
        get:
            tags:
                - TasksService
            summary: Get Task Result
            description: Returns the status of a task or task group, and if completed, the result.
            operationId: TasksService_GetTaskResult
            parameters:
                - name: taskTokenJwt
                  in: path
                  required: true
                  schema:
                    type: string
                    description: The encoded JWT identifying the async task or task group.
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.tasks.v1.GetTaskResultResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/tokens/v1/deployments/{deploymentId}/tokens:
        delete:
            tags:
                - TokenService
            summary: Delete tokens
            description: Delete all tokens matching the given filters
            operationId: TokenService_DeleteTokens
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: 1111
                    title: Deployment ID
                    type: integer
                    description: The unique numerical identifier for the deployment.
                    format: int64
                - name: purpose
                  in: query
                  description: |-
                    Required. Only CLI and API tokens can be bulk-deleted through this RPC, so
                     the value must be TOKEN_PURPOSE_CLI or TOKEN_PURPOSE_API. Other purposes
                     (service tokens, etc.) are intentionally not deletable here.
                  schema:
                    example: TOKEN_PURPOSE_CLI
                    enum:
                        - TOKEN_PURPOSE_UNSPECIFIED
                        - TOKEN_PURPOSE_NONE
                        - TOKEN_PURPOSE_SMS
                        - TOKEN_PURPOSE_SCRAT
                        - TOKEN_PURPOSE_CLICK_TO_FIX
                        - TOKEN_PURPOSE_AI_SCAN
                        - TOKEN_PURPOSE_CLI
                        - TOKEN_PURPOSE_API
                    type: string
                    description: Which tokens to delete. Must be TOKEN_PURPOSE_CLI or TOKEN_PURPOSE_API. Required.
                    format: enum
                - name: roleFilter
                  in: query
                  description: |-
                    Required when purpose is TOKEN_PURPOSE_API (API tokens span multiple roles,
                     so the caller must pick one); must not be set for TOKEN_PURPOSE_CLI, which
                     is role-uniform.
                  schema:
                    example: TOKEN_ROLE_MEMBER
                    enum:
                        - TOKEN_ROLE_UNSPECIFIED
                        - TOKEN_ROLE_AGENT_CLI
                        - TOKEN_ROLE_WEBAPI
                        - TOKEN_ROLE_MEMBER
                    type: string
                    description: Only delete tokens with this role, such as TOKEN_ROLE_MEMBER. Required when purpose is TOKEN_PURPOSE_API; must not be set for TOKEN_PURPOSE_CLI.
                    format: enum
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.token.v1.DeleteTokensResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/v1/deployments/{deploymentId}/issues/{issueId}/autofix:
        post:
            tags:
                - AutofixService
            summary: Create Autofix
            description: |-
                This feature is currently in Public Beta.

                Triggers an Autofix workflow for the given issue. The workflow runs asynchronously; it analyzes the issue, generates a fix, and opens a pull request in the underlying repository. Supports SAST, AI SAST, and SCA issue types — the issue's type is resolved server-side and dispatched to the corresponding Autofix path.

                A `success: true` response means the Autofix job has been **accepted for processing**, not that a pull request has been opened. The PR is created by an asynchronous workflow that runs after this endpoint returns.
            operationId: AutofixService_CreateAutofix
            parameters:
                - name: deploymentId
                  in: path
                  description: Deployment ID
                  required: true
                  schema:
                    example: 1234
                    title: Deployment ID
                    type: integer
                    description: The unique numerical identifier of the deployment. Can be found via the [Deployments Service](#tag/DeploymentsService) or in your Settings in the web UI.
                    format: int32
                - name: issueId
                  in: path
                  description: Issue ID to fix
                  required: true
                  schema:
                    example: 56789
                    title: Issue ID
                    type: integer
                    description: The unique numerical identifier of the issue to generate a fix for.
                    format: int32
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.ai.v1.CreateAutofixRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.ai.v1.CreateAutofixResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/v2/deployments:
        get:
            tags:
                - DeploymentsService
            summary: List Deployments
            description: |-
                Request the deployments your auth can access.

                Currently available auth scope does not extend over more than one deployment. This endpoint returns the single deployment your token can access. The endpoint additionally returns links to related resources available on this API.
            operationId: DeploymentsService_ListDeployments
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.deployment.v2.ListDeploymentsResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/v2/deployments/{deploymentId}/automations:
        get:
            tags:
                - AutomationsService
            summary: List Automations
            description: List all automations with pagination support.
            operationId: AutomationsService_ListAutomations
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: cursor
                  in: query
                  schema:
                    type: string
                - name: limit
                  in: query
                  schema:
                    type: integer
                    format: int64
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.automations.v2.ListAutomationsResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/v2/deployments/{deploymentId}/projects/list:
        post:
            tags:
                - ProjectsService
            summary: List Projects
            description: List all projects based on provided filters.
            operationId: ProjectsService_ListProjects
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                    description: Your deployment ID.
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.projects.v2.ListProjectsRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.projects.v2.ListProjectsResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/v2/deployments/{deploymentId}/projects/{projectId}:
        get:
            tags:
                - ProjectsService
            summary: Get Project
            description: Get a project by its ID.
            operationId: ProjectsService_GetProject
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: integer
                    description: Your deployment ID.
                - name: projectId
                  in: path
                  required: true
                  schema:
                    example: 555
                    type: integer
                    description: The unique identifier for the project.
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.projects.v2.GetProjectResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
        delete:
            tags:
                - ProjectsService
            summary: Delete Project
            description: Delete a project by its ID. This will delete the project and all of its findings. This action cannot be reversed.
            operationId: ProjectsService_DeleteProject
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: string
                    description: Your deployment ID.
                - name: projectId
                  in: path
                  required: true
                  schema:
                    example: 555
                    type: integer
                    description: The unique identifier for the project.
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.projects.v2.DeleteProjectResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/v2/deployments/{deploymentId}/projects/{projectId}/branches/{branchId}:
        get:
            tags:
                - ProjectsService
            summary: Get Branch
            description: Get a branch by its ID.
            operationId: ProjectsService_GetBranch
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    type: integer
                    description: Your deployment ID.
                - name: projectId
                  in: path
                  required: true
                  schema:
                    example: 555
                    type: integer
                    description: The unique identifier for the project.
                - name: branchId
                  in: path
                  required: true
                  schema:
                    example: 51234
                    type: integer
                    description: The branch id
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.projects.v2.GetBranchResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Experimental", "position": "after", "color": "red"}]
    /api/v2/deployments/{deploymentId}/projects/{projectId}/scans/list:
        post:
            tags:
                - ScansService
            summary: List Scans
            description: List the scans associated with a particular project from the past 30 days.
            operationId: ScansService_ListScans
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: "1234"
                    title: Deployment ID
                    type: string
                    description: The unique numerical identifier of your deployment. Can be found via the [Deployments Service](#tag/DeploymentsService) or in your Settings in the web UI.
                    format: int64
                - name: projectId
                  in: path
                  required: true
                  schema:
                    example: "5678"
                    title: Project ID
                    type: string
                    description: The unique numerical identifier for the project that was scanned. Can be found via the [Projects Service](#tag/ProjectsService), or in the Projects panel in the web UI.
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.scan.v2.ListScansRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.scan.v2.ListScansResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Beta", "position": "after", "color": "blue"}]
    /api/v2/deployments/{deploymentId}/scans/retry:
        post:
            tags:
                - ScansService
            summary: Retry Failed SMS Scans
            description: Retry one or more failed Semgrep Managed Scans (SMS). Only scans that are SMS and have failed or never finished can be retried. Send a single scan ID or multiple; returns one task per successful retry and one error per failed retry.
            operationId: ScansService_RetryScans
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: "1234"
                    title: Deployment ID
                    type: string
                    description: The unique numerical identifier of the deployment associated with the scan.
                    format: int64
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/protos.scan.v2.RetryScansRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.scan.v2.RetryScansResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Beta", "position": "after", "color": "blue"}]
    /api/v2/deployments/{deploymentId}/scans/{scanId}:
        get:
            tags:
                - ScansService
            summary: Get Scan
            description: Get a scan by ID.
            operationId: ScansService_GetScan
            parameters:
                - name: deploymentId
                  in: path
                  required: true
                  schema:
                    example: "1234"
                    title: Deployment ID
                    type: string
                    description: The unique numerical identifier of the deployment associated with the scan. Can be found via the [Deployments Service](#tag/DeploymentsService) or in your Settings in the web UI.
                    format: int64
                - name: scanId
                  in: path
                  required: true
                  schema:
                    example: "12345"
                    title: Scan ID
                    type: string
                    description: 'The unique numerical identifier for the scan. '
                    format: int64
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/protos.scan.v2.GetScanResponse'
            security:
                - SemgrepWebToken: []
                - SemgrepJWT: []
            x-badges: [{"name": "Beta", "position": "after", "color": "blue"}]
components:
    schemas:
        protos.ai.v1.AiMemorySource:
            type: object
            properties:
                note:
                    type: string
                    description: The reference note that the memory is associated with
                createdBy:
                    type: string
                    description: The user who created the memory
                createdAt:
                    type: string
                    description: The timestamp when the note was created
                    format: date-time
                sampleIssueId:
                    type: string
                    description: A randomly chosen issue IDs that the note is associated with
                prCommentUrl:
                    type: string
                    description: URL to the PR/MR comment where this triage occurred (constructed dynamically on fetch)
                reviewCommentId:
                    type: string
                    description: The ID of the review comment that originated this memory (used to construct pr_comment_url)
        protos.ai.v1.AiMemorySuggestionSources:
            type: object
            properties:
                sources:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.ai.v1.AiMemorySource'
        protos.ai.v1.AnalysisFailure:
            type: object
            properties:
                issueParentId:
                    type: string
                reason:
                    enum:
                        - ANALYSIS_FAILURE_REASON_LOCAL_SCAN
                        - ANALYSIS_FAILURE_REASON_NO_SCM_CONFIGURED
                        - ANALYSIS_FAILURE_REASON_SCM_NOT_SUPPORTED
                        - ANALYSIS_FAILURE_REASON_NO_CODE_ACCESS
                        - ANALYSIS_FAILURE_REASON_ALREADY_ANALYZED
                        - ANALYSIS_FAILURE_REASON_SCM_DISCONNECTED
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | ANALYSIS_FAILURE_REASON_LOCAL_SCAN |  |
                        | ANALYSIS_FAILURE_REASON_NO_SCM_CONFIGURED |  |
                        | ANALYSIS_FAILURE_REASON_SCM_NOT_SUPPORTED |  |
                        | ANALYSIS_FAILURE_REASON_NO_CODE_ACCESS |  |
                        | ANALYSIS_FAILURE_REASON_ALREADY_ANALYZED |  |
                        | ANALYSIS_FAILURE_REASON_SCM_DISCONNECTED |  |

                    format: enum
                message:
                    type: string
        protos.ai.v1.Autofix:
            type: object
            properties:
                id:
                    type: string
                    description: The database id of the autofix
                fixCode:
                    type: string
                    description: |-
                        The code to fix the issue
                         This is the entire code block that is already fixed
                fixDiff:
                    type: string
                    description: |-
                        The diff to fix the issue
                         This is the diff to apply to the vulnerable code to fix the issue
                explanation:
                    type: string
                    description: |-
                        The explanation of the autofix
                         The model may explain additional context about the autofix that it is unable to
                         Fix inside the limitations of a single diff, e.g. changes in another file or
                         environment variables
                url:
                    type: string
                    description: The url to the autofix pr/mr comment
        protos.ai.v1.AutofixError:
            type: object
            properties:
                errorType:
                    example: AUTOFIX_ERROR_TYPE_NO_WRITE_ACCESS
                    enum:
                        - AUTOFIX_ERROR_TYPE_ISSUE_NOT_FOUND
                        - AUTOFIX_ERROR_TYPE_UNSUPPORTED_ISSUE_TYPE
                        - AUTOFIX_ERROR_TYPE_AUTOFIX_NOT_ENABLED
                        - AUTOFIX_ERROR_TYPE_INVALID_REPOSITORY
                        - AUTOFIX_ERROR_TYPE_NO_WRITE_ACCESS
                        - AUTOFIX_ERROR_TYPE_SCM_CONFIG_NOT_FOUND
                        - AUTOFIX_ERROR_TYPE_SCM_TOKEN_FAILED
                        - AUTOFIX_ERROR_TYPE_CODE_ACCESS_NOT_GRANTED
                        - AUTOFIX_ERROR_TYPE_CREDITS_EXHAUSTED
                        - AUTOFIX_ERROR_TYPE_IN_FLIGHT_FIX_PENDING
                        - AUTOFIX_ERROR_TYPE_NO_RECOMMENDED_UPGRADE
                        - AUTOFIX_ERROR_TYPE_INVALID_ISSUE_STATE
                    type: string
                    description: |+
                        The type of error that occurred during Autofix job creation.

                        | value | description |
                        |-------|---------------|
                        | AUTOFIX_ERROR_TYPE_ISSUE_NOT_FOUND | The issue ID does not exist for this deployment. |
                        | AUTOFIX_ERROR_TYPE_UNSUPPORTED_ISSUE_TYPE | Autofix is not supported for this issue type. Currently SAST, AI SAST, and SCA are supported. |
                        | AUTOFIX_ERROR_TYPE_AUTOFIX_NOT_ENABLED | Autofix is not enabled for this organization, repository, or issue. |
                        | AUTOFIX_ERROR_TYPE_INVALID_REPOSITORY | The repository associated with the issue is invalid, archived, or not found. |
                        | AUTOFIX_ERROR_TYPE_NO_WRITE_ACCESS | The Semgrep app does not have write access to the repository. |
                        | AUTOFIX_ERROR_TYPE_SCM_CONFIG_NOT_FOUND | No source code management configuration was found for the repository. |
                        | AUTOFIX_ERROR_TYPE_SCM_TOKEN_FAILED | Failed to obtain an SCM access token for the repository. |
                        | AUTOFIX_ERROR_TYPE_CODE_ACCESS_NOT_GRANTED | Code access has not been granted for the repository. |
                        | AUTOFIX_ERROR_TYPE_CREDITS_EXHAUSTED | The organization has exhausted its AI credits. |
                        | AUTOFIX_ERROR_TYPE_IN_FLIGHT_FIX_PENDING | An Autofix job is already in progress for this issue. Please wait for it to complete before retrying. |
                        | AUTOFIX_ERROR_TYPE_NO_RECOMMENDED_UPGRADE | No recommended upgrade version is available for this dependency (SCA only). |
                        | AUTOFIX_ERROR_TYPE_INVALID_ISSUE_STATE | The issue is in a state that does not support Autofix (for example, already fixed or ignored). |

                    format: enum
                message:
                    example: Issue not found
                    type: string
                    description: A human-readable description of the error.
            description: Error information for Autofix job creation.
        protos.ai.v1.Autotriage:
            type: object
            properties:
                id:
                    type: string
                issueId:
                    type: string
                verdict:
                    enum:
                        - VERDICT_TRUE_POSITIVE
                        - VERDICT_FALSE_POSITIVE
                        - VERDICT_NO_VERDICT
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | VERDICT_TRUE_POSITIVE |  |
                        | VERDICT_FALSE_POSITIVE |  |
                        | VERDICT_NO_VERDICT |  |

                    format: enum
                reason:
                    type: string
                    description: The reasoning for a false positive verdict, explaining why you might want to ignore the finding. Empty string if verdict is true positive.
                feedback:
                    $ref: '#/components/schemas/protos.ai.v1.AutotriageFeedback'
                matchBasedId:
                    type: string
                memoryIdsReferenced:
                    type: array
                    items:
                        type: string
                memoryIdsRendered:
                    type: array
                    items:
                        type: string
        protos.ai.v1.AutotriageFeedback:
            type: object
            properties:
                autotriageId:
                    type: string
                rating:
                    enum:
                        - RATING_GOOD
                        - RATING_BAD
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | RATING_GOOD | Autotriage rated positively by a user. |
                        | RATING_BAD | Autotriage rated negatively by a user. |

                    format: enum
                note:
                    type: string
        protos.ai.v1.Codeowner:
            type: object
            properties:
                id:
                    type: string
                name:
                    type: string
                isTeam:
                    type: boolean
                members:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.ai.v1.Codeowner'
        protos.ai.v1.CreateAutofixRequest:
            type: object
            properties: {}
            description: Request message for creating a unified Autofix job.
        protos.ai.v1.CreateAutofixResponse:
            type: object
            properties:
                errors:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.ai.v1.AutofixError'
                    description: A list of errors that occurred during Autofix job creation. Empty when the job was accepted for processing.
                success:
                    example: true
                    type: boolean
                    description: 'Indicates whether the Autofix job was accepted for processing. Note: this does NOT mean a pull request has been opened — the PR is created by an asynchronous workflow that runs after this endpoint returns.'
            description: Response message for creating a unified Autofix job.
        protos.ai.v1.CreateCombinedTaskRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                task:
                    $ref: '#/components/schemas/protos.ai.v1.Task'
                filter:
                    $ref: '#/components/schemas/protos.issues.v1.IssuesFilter'
        protos.ai.v1.CreateCombinedTaskResponse:
            type: object
            properties:
                numAnalyzed:
                    type: string
                groupId:
                    type: string
                failures:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.ai.v1.AnalysisFailure'
                usageInfo:
                    allOf:
                        - $ref: '#/components/schemas/protos.ai.v1.UsageInfo'
                    description: Current usage information for the deployment after this request
        protos.ai.v1.CreateFixJobRequest:
            type: object
            properties: {}
            description: Request message for creating a fix job
        protos.ai.v1.CreateFixJobResponse:
            type: object
            properties:
                errors:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.ai.v1.FixJobError'
                    description: A list of errors that occurred during fix job creation. Empty when the job was created successfully.
                success:
                    example: true
                    type: boolean
                    description: Indicates whether the fix job was created successfully.
            description: Response message for creating a fix job
        protos.ai.v1.CreateMemoryFromTriageRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                note:
                    type: string
                filter:
                    allOf:
                        - $ref: '#/components/schemas/protos.issues.v1.IssuesFilter'
                    description: Filter to select issues for memory creation.
                issueType:
                    enum:
                        - ISSUE_TYPE_SAST
                        - ISSUE_TYPE_SCA
                        - ISSUE_TYPE_SECRETS
                        - ISSUE_TYPE_RESEARCH
                        - ISSUE_TYPE_AI_SAST
                    type: string
                    description: |+
                        Issue type to filter by.

                        | value | description |
                        |-------|---------------|
                        | ISSUE_TYPE_SAST | Detected by Code rules |
                        | ISSUE_TYPE_SCA | Detected by Supply Chain rules |
                        | ISSUE_TYPE_SECRETS | Detected by Secrets rules |
                        | ISSUE_TYPE_RESEARCH | Detected by research rules or scanners |
                        | ISSUE_TYPE_AI_SAST | Detected by AI detection code scanning |

                    format: enum
                identifierFilter:
                    allOf:
                        - $ref: '#/components/schemas/protos.ai.v1.NonExclusiveMemoryFilter'
                    description: |-
                        Identifier-based filters to combine with the base filter.
                         If multiple identifiers are specified, they are OR'd before combining with base.
        protos.ai.v1.CreateMemoryFromTriageResponse:
            type: object
            properties:
                memory:
                    $ref: '#/components/schemas/protos.ai.v1.Memory'
        protos.ai.v1.CreateMemoryRequest:
            type: object
            properties:
                memory:
                    $ref: '#/components/schemas/protos.ai.v1.Memory'
                deploymentId:
                    type: string
        protos.ai.v1.CreateMemoryResponse:
            type: object
            properties:
                memory:
                    $ref: '#/components/schemas/protos.ai.v1.Memory'
        protos.ai.v1.CreatePatternFixTaskRequest:
            type: object
            properties:
                pattern:
                    type: string
                    description: The pattern to fix
                language:
                    type: string
                    description: The programming language (optional)
        protos.ai.v1.CreatePatternFixTaskResponse:
            type: object
            properties:
                taskTokenJwt:
                    type: string
                    description: JWT token for tracking the task
        protos.ai.v1.DeleteMemoryResponse:
            type: object
            properties: {}
        protos.ai.v1.ExploitCondition:
            type: object
            properties:
                description:
                    type: string
                    description: Plain english description of the step
                confirmed:
                    type: boolean
                    description: Whether the LLM was able to confirm this condition is met
            description: One step in a list of conditions that must be true to exploit a vulnerability
        protos.ai.v1.FindRelevantIssuesRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                ruleId:
                    type: string
                    description: |-
                        The rule id to find relevant issues for
                         None if we want to find issues for all rules
                repositoryId:
                    type: string
                    description: |-
                        The repository id to find relevant issues for
                         None if we want to find issues for all repositories
        protos.ai.v1.FindRelevantIssuesResponse:
            type: object
            properties:
                issueIds:
                    type: array
                    items:
                        type: string
                    description: List of relevant issue_ids
        protos.ai.v1.FixJobError:
            type: object
            properties:
                errorType:
                    example: FIX_JOB_ERROR_TYPE_NO_WRITE_ACCESS
                    enum:
                        - FIX_JOB_ERROR_TYPE_NO_WRITE_ACCESS
                        - FIX_JOB_ERROR_TYPE_INVALID_REPOSITORY
                        - FIX_JOB_ERROR_TYPE_SCM_CONFIG_NOT_FOUND
                        - FIX_JOB_ERROR_TYPE_CREDITS_EXHAUSTED
                        - FIX_JOB_ERROR_TYPE_SCM_TOKEN_FAILED
                        - FIX_JOB_ERROR_TYPE_CODE_ACCESS_NOT_GRANTED
                    type: string
                    description: |+
                        The type of error that occurred during fix job creation.

                        | value | description |
                        |-------|---------------|
                        | FIX_JOB_ERROR_TYPE_NO_WRITE_ACCESS | The Semgrep GitHub App does not have write access to the repository. |
                        | FIX_JOB_ERROR_TYPE_INVALID_REPOSITORY | The repository associated with the issue is invalid or not found. |
                        | FIX_JOB_ERROR_TYPE_SCM_CONFIG_NOT_FOUND | No source code management configuration was found for the repository. |
                        | FIX_JOB_ERROR_TYPE_CREDITS_EXHAUSTED | The organization has exhausted its AI credits. |
                        | FIX_JOB_ERROR_TYPE_SCM_TOKEN_FAILED | Failed to obtain an SCM access token for the repository. |
                        | FIX_JOB_ERROR_TYPE_CODE_ACCESS_NOT_GRANTED | Code access has not been granted for the repository. |

                    format: enum
                message:
                    example: Repository not found
                    type: string
                    description: A human-readable description of the error.
                githubAppInfo:
                    allOf:
                        - $ref: '#/components/schemas/protos.ai.v1.GitHubAppInfo'
                    description: GitHub App configuration details, included when the error is related to GitHub App permissions or installation.
            description: Error information for fix job creation
        protos.ai.v1.GetMemoriesByIdsRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                memoryIds:
                    type: array
                    items:
                        type: string
        protos.ai.v1.GetMemoriesByIdsResponse:
            type: object
            properties:
                memories:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.ai.v1.Memory'
        protos.ai.v1.GetMemoriesStatsResponse:
            type: object
            properties:
                likelyFalsePositives:
                    type: string
                findingsAnalyzed:
                    type: string
                commentsPrevented:
                    type: string
        protos.ai.v1.GetTaskInfoResponse:
            type: object
            properties:
                waitTime:
                    type: string
                runsRemaining:
                    type: string
        protos.ai.v1.GitHubAppInfo:
            type: object
            properties:
                appId:
                    example: 123456
                    type: integer
                    description: The numeric identifier of the GitHub App.
                appName:
                    example: semgrep-app
                    type: string
                    description: The display name of the GitHub App.
                installationTarget:
                    example: my-org
                    type: string
                    description: The GitHub organization or user where the app is installed.
                configUrl:
                    example: https://github.com/organizations/my-org/settings/installations/123456
                    type: string
                    description: A direct link to the GitHub App configuration page for adjusting permissions.
            description: GitHub app information for linking to configuration
        protos.ai.v1.Guidance:
            type: object
            properties:
                id:
                    type: string
                    description: The database id of the guidance
                summary:
                    type: string
                    description: The summary of the guidance_text
                guidanceText:
                    type: string
                    description: The step by step instructions on how to fix the issue
                memoryIdsUsed:
                    type: array
                    items:
                        type: string
                    description: The IDs of memories that were used to generate this guidance
        protos.ai.v1.ListMemoriesRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                filter:
                    allOf:
                        - $ref: '#/components/schemas/protos.ai.v1.MemoryFilter'
                    description: |-
                        Optional filter. Only honored on the POST binding; the legacy GET binding
                         leaves it unset and returns all memories.
        protos.ai.v1.ListMemoriesResponse:
            type: object
            properties:
                memories:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.ai.v1.Memory'
        protos.ai.v1.ListSuggestedMemoriesResponse:
            type: object
            properties:
                memories:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.ai.v1.Memory'
        protos.ai.v1.Memory:
            type: object
            properties:
                id:
                    type: string
                    description: The memories database id
                content:
                    type: string
                    description: The user-provided plain text memory message
                ruleId:
                    type: string
                    description: The rule id that the memory is associated with
                ruleName:
                    type: string
                    description: The name of the rule that the memory is associated with
                repositoryId:
                    type: string
                    description: The repository id that the memory is associated with
                repositoryName:
                    type: string
                    description: The name of the repository that the memory is associated with
                createdAt:
                    type: string
                    description: The timestamp when the memory was created
                    format: date-time
                createdBy:
                    type: string
                    description: The user who created the memory
                context:
                    type: array
                    items:
                        type: string
                    description: |-
                        Where the memory should apply, e.g. "TRIAGE" or "GUIDANCE"
                         Defined in AiMemoryContext
                stage:
                    enum:
                        - AI_MEMORY_STAGE_LIVE
                        - AI_MEMORY_STAGE_SUGGESTED
                        - AI_MEMORY_STAGE_DELETED
                    type: string
                    description: |+
                        The state of the memory

                        | value | description |
                        |-------|---------------|
                        | AI_MEMORY_STAGE_LIVE |  |
                        | AI_MEMORY_STAGE_SUGGESTED |  |
                        | AI_MEMORY_STAGE_DELETED |  |

                    format: enum
                pathPrefixes:
                    type: array
                    items:
                        type: string
                    description: The path prefixes that the memory should apply to
                suggestionSources:
                    allOf:
                        - $ref: '#/components/schemas/protos.ai.v1.AiMemorySuggestionSources'
                    description: The sources of the memory. Only applies to suggested memories.
                preanalysisCounts:
                    allOf:
                        - $ref: '#/components/schemas/protos.ai.v1.MemoryPreanalysisCounts'
                    description: How issue IDs flipped as a result of the memory, set if the memory is SUGGESTED and has been preanalyzed
                vulnerabilityClass:
                    type: string
                    description: The vulnerability class the memory applies to
                projectTagId:
                    type: integer
                    description: The project tag ID that the memory applies to (mutually exclusive with repository_id)
                    format: int64
        protos.ai.v1.MemoryFilter:
            type: object
            properties:
                repositoryIds:
                    type: array
                    items:
                        type: string
                    description: |-
                        Restrict to memories that apply to any of these repositories (OR across
                         ids). When empty, memories from all repositories are returned.
                exactScope:
                    type: boolean
                    description: |-
                        When false (default), also return memories from broader scopes that apply
                         to the filter: project tags any of the repositories carry, and org-wide
                         memories. When true, return only memories scoped directly to one of the
                         repositories. Ignored when repository_ids is empty.
            description: Filter for ListMemories. Fields combine with AND.
        protos.ai.v1.MemoryPreanalysisCounts:
            type: object
            properties:
                newlyTruePositive:
                    type: string
                newlyFalsePositive:
                    type: string
                remainsTruePositive:
                    type: string
                remainsFalsePositive:
                    type: string
        protos.ai.v1.NonExclusiveMemoryFilter:
            type: object
            properties:
                ids:
                    type: array
                    items:
                        type: string
                issueParentIds:
                    type: array
                    items:
                        type: string
                ruleIds:
                    type: array
                    items:
                        type: string
            description: |-
                Filter that matches issues using OR logic across all specified fields.
                 An issue is included if it matches any field.
        protos.ai.v1.PostAutotriageFeedbackRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                feedback:
                    $ref: '#/components/schemas/protos.ai.v1.AutotriageFeedback'
        protos.ai.v1.PostAutotriageFeedbackResponse:
            type: object
            properties:
                newFeedback:
                    $ref: '#/components/schemas/protos.ai.v1.AutotriageFeedback'
        protos.ai.v1.Remediation:
            type: object
            properties:
                issueId:
                    type: string
                    description: The issue id that the remediation is for
                matchBasedId:
                    type: string
                    description: The match based id of the issue that remediation is for
                autofix:
                    allOf:
                        - $ref: '#/components/schemas/protos.ai.v1.Autofix'
                    description: The autofix to fix the issue
                guidance:
                    allOf:
                        - $ref: '#/components/schemas/protos.ai.v1.Guidance'
                    description: The guidance to fix the issue
        protos.ai.v1.RuleExplanation:
            type: object
            properties:
                id:
                    type: string
                    description: The database id of the rule explanation
                summary:
                    type: string
                    description: A concise summary of the rule explanation
                explanation:
                    type: string
                    description: The full detailed explanation of why this rule flagged the code
            description: RuleExplanation contains AI-generated explanations for why a rule flagged specific code
        protos.ai.v1.SensitivityTags:
            type: object
            properties:
                id:
                    type: string
                    description: The database id of the sensitivity tags
                path:
                    type: string
                    description: The path of the file
                tags:
                    type: string
                    description: |-
                        The tag that is associated with the file
                         The tags are defined in SensitivityTag
                sensitivity:
                    enum:
                        - SENSITIVITY_HIGH_SENSITIVITY
                        - SENSITIVITY_LOW_SENSITIVITY
                        - SENSITIVITY_NEUTRAL_SENSITIVITY
                    type: string
                    description: |+
                        The sensitivity of the given tag
                         Sensitivities are defined in HighSensitivityTag and LowSensitivityTag

                        | value | description |
                        |-------|---------------|
                        | SENSITIVITY_HIGH_SENSITIVITY |  |
                        | SENSITIVITY_LOW_SENSITIVITY |  |
                        | SENSITIVITY_NEUTRAL_SENSITIVITY |  |

                    format: enum
        protos.ai.v1.Task:
            type: object
            properties:
                deploymentId:
                    type: string
                    description: The database id of the deployment queuing the task
                issueIds:
                    type: array
                    items:
                        type: string
                    description: The issue ids to analyze
                chains:
                    enum:
                        - CHAIN_AUTOTRIAGE
                        - CHAIN_AUTOTRIAGE_WITH_GUIDANCE_AND_AUTOFIX
                        - CHAIN_ISSUE_TAGS
                    type: array
                    items:
                        enum:
                            - CHAIN_UNSPECIFIED
                            - CHAIN_AUTOTRIAGE
                            - CHAIN_AUTOTRIAGE_WITH_GUIDANCE_AND_AUTOFIX
                            - CHAIN_ISSUE_TAGS
                        type: string
                        format: enum
                    description: |+
                        The chains to run analysis with

                        | value | description |
                        |-------|---------------|
                        | CHAIN_AUTOTRIAGE |  |
                        | CHAIN_AUTOTRIAGE_WITH_GUIDANCE_AND_AUTOFIX |  |
                        | CHAIN_ISSUE_TAGS |  |

                regenerate:
                    type: boolean
                    description: |-
                        Whether to regenerate the task
                         This will overwrite any existing database entries for the given issue_ids
                memory:
                    allOf:
                        - $ref: '#/components/schemas/protos.ai.v1.Memory'
                    description: |-
                        The memory that is associated with re-analyzing the given issue_ids
                         This is only used if someone creates a new memory and re-analyzes the relevant issues that
                         the memory applies to
        protos.ai.v1.UpdateMemoryRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                memoryId:
                    type: string
                memory:
                    $ref: '#/components/schemas/protos.ai.v1.Memory'
        protos.ai.v1.UpdateMemoryResponse:
            type: object
            properties:
                memory:
                    $ref: '#/components/schemas/protos.ai.v1.Memory'
        protos.ai.v1.UsageInfo:
            type: object
            properties:
                used:
                    type: string
                    description: The number of analyses used in the current period
                maxAllowed:
                    type: string
                    description: The maximum number of analyses allowed in the current period
            description: Simple usage counts returned after queuing analysis tasks
        protos.auth.v1.DeploymentIdentity:
            type: object
            properties:
                sourceId:
                    type: integer
                    format: int32
                name:
                    type: string
                sourceType:
                    enum:
                        - simple
                        - semgrep
                        - sso
                        - github
                        - gitlab
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | simple |  |
                        | semgrep |  |
                        | sso |  |
                        | github |  |
                        | gitlab |  |

                    format: enum
                deploymentId:
                    type: integer
                    format: int64
                scmName:
                    type: string
        protos.auth.v1.DeploymentSsoProvider:
            type: object
            properties:
                id:
                    type: string
                deploymentId:
                    type: string
                provider:
                    $ref: '#/components/schemas/protos.auth.v1.SsoProvider'
                enabled:
                    type: boolean
                sourceId:
                    type: string
                userCount:
                    type: string
        protos.auth.v1.GetUserResponse:
            type: object
            properties:
                user:
                    $ref: '#/components/schemas/protos.auth.v1.User'
        protos.auth.v1.GetUserSettingsResponse:
            type: object
            properties:
                settings:
                    $ref: '#/components/schemas/protos.auth.v1.UserSettings'
        protos.auth.v1.ListDeploymentSsoProvidersResponse:
            type: object
            properties:
                providers:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.auth.v1.DeploymentSsoProvider'
        protos.auth.v1.ListUserAuthorizedResourcesResponse:
            type: object
            properties:
                current:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.auth.v1.DeploymentIdentity'
                joinable:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.auth.v1.DeploymentIdentity'
                scm:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.auth.v1.DeploymentIdentity'
        protos.auth.v1.ListUserJoinableOrgsResponse:
            type: object
            properties:
                userId:
                    type: string
                orgs:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.deployment.v1.Deployment'
        protos.auth.v1.ListUserOrgsResponse:
            type: object
            properties:
                userId:
                    type: string
                orgs:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.deployment.v1.Deployment'
        protos.auth.v1.OpenIdProviderData:
            type: object
            properties:
                clientId:
                    type: string
                clientSecret:
                    type: string
                wellKnownUrl:
                    type: string
                authUri:
                    type: string
                tokenUri:
                    type: string
                userinfoUri:
                    type: string
        protos.auth.v1.PatchUserSettingsRequest:
            type: object
            properties:
                userId:
                    type: string
                    description: |-
                        NOTE: Field number is nonsequential because it was added later. But it's first because it's a path param.
                         The user ID to fetch settings for.
                         NOTE: As of June 2025, it must be equal to the requester's ID.
                primaryEmail:
                    type: string
                    description: the user's currently selected email address
                hasAcceptedToc:
                    type: boolean
                    description: if the user has accepted the terms of service
                subscribe:
                    type: boolean
                    description: if the user is subscribed to emails
                contactAboutExperiments:
                    type: boolean
                    description: if the user would like to be contacted about product experiments
                usedCliLogin:
                    type: boolean
                    description: if the user has used the CLI to login
                hasCompletedFindingsTour:
                    type: boolean
                    description: if the user has completed the findings product tour, deprecated (see findings_tour_state)
                hasCompletedSupplyChainTour:
                    type: boolean
                    description: if the user has completed the supply chain product tour, deprecated (see supply_chain_tour_state)
                findingsTourState:
                    enum:
                        - TOUR_STATE_INCOMPLETE
                        - TOUR_STATE_COMPLETE
                        - TOUR_STATE_SKIPPED
                    type: string
                    description: |+
                        the completion state of the findings product tour

                        | value | description |
                        |-------|---------------|
                        | TOUR_STATE_INCOMPLETE |  |
                        | TOUR_STATE_COMPLETE |  |
                        | TOUR_STATE_SKIPPED |  |

                    format: enum
                supplyChainTourState:
                    enum:
                        - TOUR_STATE_INCOMPLETE
                        - TOUR_STATE_COMPLETE
                        - TOUR_STATE_SKIPPED
                    type: string
                    description: |+
                        the completion state of the supply chain product tour

                        | value | description |
                        |-------|---------------|
                        | TOUR_STATE_INCOMPLETE |  |
                        | TOUR_STATE_COMPLETE |  |
                        | TOUR_STATE_SKIPPED |  |

                    format: enum
                supplyChainFindingsTourState:
                    enum:
                        - TOUR_STATE_INCOMPLETE
                        - TOUR_STATE_COMPLETE
                        - TOUR_STATE_SKIPPED
                    type: string
                    description: |+
                        the completion state of the supply chain product tour

                        | value | description |
                        |-------|---------------|
                        | TOUR_STATE_INCOMPLETE |  |
                        | TOUR_STATE_COMPLETE |  |
                        | TOUR_STATE_SKIPPED |  |

                    format: enum
                eventSource:
                    enum:
                        - Welcome
                        - Findings
                        - ExistingScaUserVulnsTour
                        - NewScaUserVulnsTour
                        - AccountSettingsPanel
                        - Vulns
                        - useOnboardingTaskData
                        - AiScanTour
                        - AutofixIntro
                        - ScaAutofixIntro
                        - MultimodalBanner
                        - CombinedFindings
                    type: string
                    description: |+
                        capture the event source, which may be passed as a query param (e.g. ?event_source=Welcome)

                        | value | description |
                        |-------|---------------|
                        | Welcome |  |
                        | Findings |  |
                        | ExistingScaUserVulnsTour |  |
                        | NewScaUserVulnsTour |  |
                        | AccountSettingsPanel |  |
                        | Vulns |  |
                        | useOnboardingTaskData |  |
                        | AiScanTour |  |
                        | AutofixIntro |  |
                        | ScaAutofixIntro |  |
                        | MultimodalBanner |  |
                        | CombinedFindings |  |

                    format: enum
                tourStates:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.auth.v1.TourStateEntry'
                    description: scalable structure for tour states
        protos.auth.v1.PatchUserSettingsResponse:
            type: object
            properties:
                user:
                    $ref: '#/components/schemas/protos.auth.v1.User'
        protos.auth.v1.Saml2ProviderData:
            type: object
            properties:
                idpIssuer:
                    type: string
                idpSsoUrl:
                    type: string
                x509cert:
                    type: string
                unspecifiedAuthnContext:
                    type: boolean
                spEntityId:
                    type: string
        protos.auth.v1.SimpleProviderData:
            type: object
            properties: {}
        protos.auth.v1.SsoProvider:
            type: object
            properties:
                id:
                    type: string
                name:
                    type: string
                type:
                    enum:
                        - SSO_TYPE_GITHUB
                        - SSO_TYPE_OPENID
                        - SSO_TYPE_SAML2
                        - SSO_TYPE_GITLAB
                        - SSO_TYPE_GOOGLE
                        - SSO_TYPE_SIMPLE
                        - SSO_TYPE_WORKOS
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | SSO_TYPE_GITHUB |  |
                        | SSO_TYPE_OPENID |  |
                        | SSO_TYPE_SAML2 |  |
                        | SSO_TYPE_GITLAB |  |
                        | SSO_TYPE_GOOGLE |  |
                        | SSO_TYPE_SIMPLE |  |
                        | SSO_TYPE_WORKOS |  |

                    format: enum
                displayName:
                    type: string
                emailDomain:
                    type: string
                baseUrl:
                    type: string
                openidData:
                    $ref: '#/components/schemas/protos.auth.v1.OpenIdProviderData'
                saml2Data:
                    $ref: '#/components/schemas/protos.auth.v1.Saml2ProviderData'
                simpleData:
                    $ref: '#/components/schemas/protos.auth.v1.SimpleProviderData'
        protos.auth.v1.TourStateEntry:
            type: object
            properties:
                id:
                    enum:
                        - TOUR_ID_AI_SCAN
                        - TOUR_ID_AUTOFIX_INTRO
                        - TOUR_ID_SCA_AUTOFIX_INTRO
                        - TOUR_ID_MULTIMODAL_BANNER
                        - TOUR_ID_COMBINED_FINDINGS
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | TOUR_ID_AI_SCAN |  |
                        | TOUR_ID_AUTOFIX_INTRO |  |
                        | TOUR_ID_SCA_AUTOFIX_INTRO |  |
                        | TOUR_ID_MULTIMODAL_BANNER |  |
                        | TOUR_ID_COMBINED_FINDINGS |  |

                    format: enum
                state:
                    enum:
                        - TOUR_STATE_INCOMPLETE
                        - TOUR_STATE_COMPLETE
                        - TOUR_STATE_SKIPPED
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | TOUR_STATE_INCOMPLETE |  |
                        | TOUR_STATE_COMPLETE |  |
                        | TOUR_STATE_SKIPPED |  |

                    format: enum
            description: Associates a tour with its completion state
        protos.auth.v1.User:
            type: object
            properties:
                id:
                    type: string
                name:
                    type: string
                email:
                    type: string
                login:
                    type: string
                authDetails:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.auth.v1.UserAuthDetails'
                orgRole:
                    type: string
                deletedAt:
                    type: string
                    format: date-time
        protos.auth.v1.UserAuthDetails:
            type: object
            properties:
                providerId:
                    type: string
                providerType:
                    type: string
                sourceId:
                    type: string
                current:
                    type: boolean
                expiresAt:
                    type: string
                    format: date-time
                authProviderId:
                    type: string
        protos.auth.v1.UserEmail:
            type: object
            properties:
                email:
                    type: string
                primary:
                    type: boolean
                verified:
                    type: boolean
        protos.auth.v1.UserSettings:
            type: object
            properties:
                primaryEmail:
                    type: string
                    description: the user's currently selected email address
                hasAcceptedToc:
                    type: boolean
                    description: if the user has accepted the terms of service
                subscribe:
                    type: boolean
                    description: if the user is subscribed to emails
                contactAboutExperiments:
                    type: boolean
                    description: if the user would like to be contacted about product experiments
                availableEmails:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.auth.v1.UserEmail'
                    description: other emails that the user has
                profilePhotoUrl:
                    type: string
                    description: the user's profile photo url
                hasCompletedFindingsTour:
                    type: boolean
                    description: if the user has completed the findings product tour, deprecated (see findings_tour_state)
                hasCompletedSupplyChainTour:
                    type: boolean
                    description: if the user has completed the supply chain product tour, deprecated (see supply_chain_tour_state)
                findingsTourState:
                    enum:
                        - TOUR_STATE_INCOMPLETE
                        - TOUR_STATE_COMPLETE
                        - TOUR_STATE_SKIPPED
                    type: string
                    description: |+
                        the completion state of the findings product tour

                        | value | description |
                        |-------|---------------|
                        | TOUR_STATE_INCOMPLETE |  |
                        | TOUR_STATE_COMPLETE |  |
                        | TOUR_STATE_SKIPPED |  |

                    format: enum
                supplyChainTourState:
                    enum:
                        - TOUR_STATE_INCOMPLETE
                        - TOUR_STATE_COMPLETE
                        - TOUR_STATE_SKIPPED
                    type: string
                    description: |+
                        the completion state of the supply chain product tour

                        | value | description |
                        |-------|---------------|
                        | TOUR_STATE_INCOMPLETE |  |
                        | TOUR_STATE_COMPLETE |  |
                        | TOUR_STATE_SKIPPED |  |

                    format: enum
                supplyChainFindingsTourState:
                    enum:
                        - TOUR_STATE_INCOMPLETE
                        - TOUR_STATE_COMPLETE
                        - TOUR_STATE_SKIPPED
                    type: string
                    description: |+
                        the completion state of the supply chain product tour (using the new findings UI)

                        | value | description |
                        |-------|---------------|
                        | TOUR_STATE_INCOMPLETE |  |
                        | TOUR_STATE_COMPLETE |  |
                        | TOUR_STATE_SKIPPED |  |

                    format: enum
                tourStates:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.auth.v1.TourStateEntry'
                    description: scalable structure for tour states
        protos.automations.v1.Action:
            type: object
            properties:
                type:
                    enum:
                        - ACTION_TYPE_BLOCK
                        - ACTION_TYPE_PR_COMMENT
                        - ACTION_TYPE_JIRA
                        - ACTION_TYPE_SLACK_APP
                        - ACTION_TYPE_EMAIL
                        - ACTION_TYPE_WEBHOOK
                        - ACTION_TYPE_SLACK_WEBHOOK
                        - ACTION_TYPE_S3
                        - ACTION_TYPE_UNKNOWN
                        - ACTION_TYPE_WIZ
                        - ACTION_TYPE_TRIAGE
                        - ACTION_TYPE_DEVELOPER_EXCEPTION_REQUESTS
                        - ACTION_TYPE_OPEN_AUTOFIX_PR
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | ACTION_TYPE_BLOCK |  |
                        | ACTION_TYPE_PR_COMMENT |  |
                        | ACTION_TYPE_JIRA |  |
                        | ACTION_TYPE_SLACK_APP |  |
                        | ACTION_TYPE_EMAIL |  |
                        | ACTION_TYPE_WEBHOOK |  |
                        | ACTION_TYPE_SLACK_WEBHOOK |  |
                        | ACTION_TYPE_S3 |  |
                        | ACTION_TYPE_UNKNOWN |  |
                        | ACTION_TYPE_WIZ |  |
                        | ACTION_TYPE_TRIAGE |  |
                        | ACTION_TYPE_DEVELOPER_EXCEPTION_REQUESTS |  |
                        | ACTION_TYPE_OPEN_AUTOFIX_PR |  |

                    format: enum
                config:
                    type: object
                    additionalProperties:
                        type: string
        protos.automations.v1.Automation:
            type: object
            properties:
                filters:
                    allOf:
                        - $ref: '#/components/schemas/protos.automations.v1.Filters'
                    description: Filters to apply to the automation
                actions:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.automations.v1.Action'
                    description: Actions to take when the automation is triggered
                active:
                    type: boolean
                    description: Whether the automation is enabled / disabled
                name:
                    type: string
                    description: Name of the automation
                description:
                    type: string
                    description: Description of the automation
                createdBy:
                    type: string
                    description: User who created the automation
                createdAt:
                    type: string
                    description: Timestamp when the automation was created
                    format: date-time
                updatedAt:
                    type: string
                    description: Timestamp when the automation was last updated
                    format: date-time
                id:
                    type: string
                    description: Unique identifier for the automation
                updatedBy:
                    type: string
                    description: User who last updated the automation
                internalOnly:
                    type: boolean
                    description: Whether the automation is internal only (e.g. Wiz action type)
                triggerSource:
                    enum:
                        - TRIGGER_SOURCE_SCAN
                        - TRIGGER_SOURCE_AI_ANALYSIS
                        - TRIGGER_SOURCE_MANUAL
                        - TRIGGER_SOURCE_SUPPLY_CHAIN_INCIDENT
                        - TRIGGER_SOURCE_WORKFLOW
                        - TRIGGER_SOURCE_ISSUE_TRIAGED
                    type: string
                    description: |+
                        Trigger source for the automation — determines when its actions fire.
                         Most automations are scan-based; supply_chain_incident automations fire
                         in response to a declared malware incident rather than a scan completion.

                        | value | description |
                        |-------|---------------|
                        | TRIGGER_SOURCE_SCAN |  |
                        | TRIGGER_SOURCE_AI_ANALYSIS |  |
                        | TRIGGER_SOURCE_MANUAL |  |
                        | TRIGGER_SOURCE_SUPPLY_CHAIN_INCIDENT |  |
                        | TRIGGER_SOURCE_WORKFLOW |  |
                        | TRIGGER_SOURCE_ISSUE_TRIAGED |  |

                    format: enum
        protos.automations.v1.Condition:
            type: object
            properties:
                mode:
                    enum:
                        - MODE_ALL
                        - MODE_ANY
                        - MODE_NONE
                        - MODE_UNKNOWN
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | MODE_ALL |  |
                        | MODE_ANY |  |
                        | MODE_NONE |  |
                        | MODE_UNKNOWN |  |

                    format: enum
                type:
                    enum:
                        - CONDITION_TYPE_REPOSITORY_ID
                        - CONDITION_TYPE_REPOSITORY_TAG_ID
                        - CONDITION_TYPE_PRIMARY_REF
                        - CONDITION_TYPE_PATH
                        - CONDITION_TYPE_REF
                        - CONDITION_TYPE_SEVERITY
                        - CONDITION_TYPE_CONFIDENCE
                        - CONDITION_TYPE_PRODUCT
                        - CONDITION_TYPE_POLICY
                        - CONDITION_TYPE_REACHABILITY
                        - CONDITION_TYPE_TRANSITIVITY
                        - CONDITION_TYPE_UPGRADE_AVAILABILITY
                        - CONDITION_TYPE_EPSS_CATEGORY
                        - CONDITION_TYPE_VALIDATION_STATE
                        - CONDITION_TYPE_CVE
                        - CONDITION_TYPE_REPOSITORY_VISIBILITY
                        - CONDITION_TYPE_SECRET_TYPE
                        - CONDITION_TYPE_AI_VERDICT
                        - CONDITION_TYPE_AI_TAG
                        - CONDITION_TYPE_AGGREGATE_STATE
                        - CONDITION_TYPE_HAS_EXTERNAL_TICKET
                        - CONDITION_TYPE_VULNERABILITY_ID
                        - CONDITION_TYPE_UNKNOWN
                        - CONDITION_TYPE_MALICIOUS_DEPENDENCY
                        - CONDITION_TYPE_RULE_ID
                        - CONDITION_TYPE_RULESET_ID
                        - CONDITION_TYPE_WORKFLOW_ID
                        - CONDITION_TYPE_VULNERABILITY_CLASS
                        - CONDITION_TYPE_TRIAGE_STATE
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | CONDITION_TYPE_REPOSITORY_ID |  |
                        | CONDITION_TYPE_REPOSITORY_TAG_ID |  |
                        | CONDITION_TYPE_PRIMARY_REF |  |
                        | CONDITION_TYPE_PATH |  |
                        | CONDITION_TYPE_REF |  |
                        | CONDITION_TYPE_SEVERITY |  |
                        | CONDITION_TYPE_CONFIDENCE |  |
                        | CONDITION_TYPE_PRODUCT |  |
                        | CONDITION_TYPE_POLICY |  |
                        | CONDITION_TYPE_REACHABILITY |  |
                        | CONDITION_TYPE_TRANSITIVITY |  |
                        | CONDITION_TYPE_UPGRADE_AVAILABILITY |  |
                        | CONDITION_TYPE_EPSS_CATEGORY |  |
                        | CONDITION_TYPE_VALIDATION_STATE |  |
                        | CONDITION_TYPE_CVE |  |
                        | CONDITION_TYPE_REPOSITORY_VISIBILITY |  |
                        | CONDITION_TYPE_SECRET_TYPE |  |
                        | CONDITION_TYPE_AI_VERDICT |  |
                        | CONDITION_TYPE_AI_TAG |  |
                        | CONDITION_TYPE_AGGREGATE_STATE |  |
                        | CONDITION_TYPE_HAS_EXTERNAL_TICKET |  |
                        | CONDITION_TYPE_VULNERABILITY_ID |  |
                        | CONDITION_TYPE_UNKNOWN |  |
                        | CONDITION_TYPE_MALICIOUS_DEPENDENCY |  |
                        | CONDITION_TYPE_RULE_ID |  |
                        | CONDITION_TYPE_RULESET_ID |  |
                        | CONDITION_TYPE_WORKFLOW_ID |  |
                        | CONDITION_TYPE_VULNERABILITY_CLASS |  |
                        | CONDITION_TYPE_TRIAGE_STATE |  |

                    format: enum
                values:
                    type: array
                    items:
                        type: string
        protos.automations.v1.CreateAutomationRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                automation:
                    $ref: '#/components/schemas/protos.automations.v1.Automation'
        protos.automations.v1.CreateAutomationResponse:
            type: object
            properties:
                automation:
                    $ref: '#/components/schemas/protos.automations.v1.Automation'
        protos.automations.v1.DeleteAutomationResponse:
            type: object
            properties: {}
        protos.automations.v1.Filters:
            type: object
            properties:
                mode:
                    enum:
                        - MODE_ALL
                        - MODE_ANY
                        - MODE_NONE
                        - MODE_UNKNOWN
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | MODE_ALL |  |
                        | MODE_ANY |  |
                        | MODE_NONE |  |
                        | MODE_UNKNOWN |  |

                    format: enum
                conditions:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.automations.v1.Condition'
                    description: Conditions to apply to the automation filtering
        protos.automations.v1.ListAutomationsResponse:
            type: object
            properties:
                automations:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.automations.v1.Automation'
        protos.automations.v1.UpdateAutomationRequest:
            type: object
            properties:
                automation:
                    $ref: '#/components/schemas/protos.automations.v1.Automation'
                deploymentId:
                    type: string
                automationId:
                    type: string
        protos.automations.v1.UpdateAutomationResponse:
            type: object
            properties:
                automation:
                    $ref: '#/components/schemas/protos.automations.v1.Automation'
        protos.automations.v2.ListAutomationsResponse:
            type: object
            properties:
                automations:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.automations.v1.Automation'
                cursor:
                    type: string
        protos.cloud_context.v1.CloudContext:
            type: object
            properties:
                id:
                    type: string
                cnappInstallationId:
                    type: string
                cnappInstallationBaseUrl:
                    type: string
                source:
                    enum:
                        - CLOUD_CONTEXT_SOURCE_MANUAL
                        - CLOUD_CONTEXT_SOURCE_PALO_ALTO_NETWORKS
                        - CLOUD_CONTEXT_SOURCE_SYSDIG
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | CLOUD_CONTEXT_SOURCE_MANUAL |  |
                        | CLOUD_CONTEXT_SOURCE_PALO_ALTO_NETWORKS |  |
                        | CLOUD_CONTEXT_SOURCE_SYSDIG |  |

                    format: enum
                isDeployed:
                    type: boolean
                publicExposure:
                    type: boolean
                lastSuccessfulIngestionCompletedAt:
                    type: string
                    format: date-time
        protos.common.v1.BulkEndpointError:
            type: object
            properties:
                code:
                    enum:
                        - UPDATE_ERROR_CODE_BAD_REQUEST
                        - UPDATE_ERROR_CODE_NOT_FOUND
                        - UPDATE_ERROR_CODE_CONFLICT
                        - UPDATE_ERROR_CODE_UNAUTHORIZED
                    type: string
                    description: |+
                        Type of error, generic enough to be used across resources and endpoints

                        | value | description |
                        |-------|---------------|
                        | UPDATE_ERROR_CODE_BAD_REQUEST |  |
                        | UPDATE_ERROR_CODE_NOT_FOUND |  |
                        | UPDATE_ERROR_CODE_CONFLICT |  |
                        | UPDATE_ERROR_CODE_UNAUTHORIZED |  |

                    format: enum
                message:
                    type: string
                    description: More detailed, human-readable message that may be specific to a resource or endpoint
                ids:
                    type: array
                    items:
                        type: string
                    description: Unique identifiers of the objects that triggered the error (e.g. repo_id, issue_id, scan_id, etc.)
        protos.common.v1.Cursor:
            type: object
            properties:
                token:
                    type: string
        protos.common.v1.DeploymentV1:
            type: object
            properties:
                id:
                    type: integer
                    format: int64
                name:
                    type: string
                display_name:
                    type: string
                slug:
                    type: string
                source_type:
                    type: string
                has_autofix:
                    type: boolean
                has_deepsemgrep:
                    type: boolean
                has_triage_via_comment:
                    type: boolean
                has_dependency_query:
                    type: boolean
                default_user_role:
                    type: string
                features:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.common.v1.DeploymentV1_DeploymentFeature'
                organization_id:
                    type: integer
                    format: int64
                scm_name:
                    type: string
            description: Careful, these are used by the CLI
        protos.common.v1.DeploymentV1_DeploymentFeature:
            type: object
            properties:
                name:
                    type: string
                expires_at:
                    type: string
        protos.common.v1.PaginateOptions:
            type: object
            properties:
                optionalLimit:
                    type: integer
                    format: int64
                cursor:
                    $ref: '#/components/schemas/protos.common.v1.Cursor'
        protos.common.v1.PaginationOptions:
            type: object
            properties:
                pageToken:
                    type: string
                pageSize:
                    type: integer
                    format: int64
                sortBy:
                    type: string
        protos.common.v1.Policy:
            title: Policy
            type: object
            properties:
                id:
                    example: "1"
                    type: string
                    description: ID of the Policy.
                    format: int64
                isDefault:
                    example: true
                    type: boolean
                    description: When True, the Policy applies to all repositories.
                name:
                    example: Global Policy
                    type: string
                    description: Name of the Policy.
                productType:
                    example: PRODUCT_TYPE_SAST
                    enum:
                        - PRODUCT_TYPE_SAST
                        - PRODUCT_TYPE_SECRETS
                    type: string
                    description: |+
                        Product type the Policy applies to.

                        | value | description |
                        |-------|---------------|
                        | PRODUCT_TYPE_SAST | The product type for Code rules. |
                        | PRODUCT_TYPE_SECRETS | The product type for Secrets rules. |

                    format: enum
                slug:
                    example: global_policy
                    type: string
                    description: Sanitized machine-readable name of the Policy.
        protos.common.v1.ProductContent:
            type: object
            properties:
                productType:
                    enum:
                        - PRODUCT_SAST
                        - PRODUCT_SCA
                        - PRODUCT_SECRETS
                        - PRODUCT_AI_SAST
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | PRODUCT_SAST |  |
                        | PRODUCT_SCA |  |
                        | PRODUCT_SECRETS |  |
                        | PRODUCT_AI_SAST |  |

                    format: enum
        protos.common.v1.ReviewCommentContent:
            type: object
            properties:
                id:
                    type: string
                contentType:
                    enum:
                        - REVIEW_COMMENT_CONTENT_TYPE_ADDENDUM
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | REVIEW_COMMENT_CONTENT_TYPE_ADDENDUM |  |

                    format: enum
                content:
                    type: string
                productContent:
                    $ref: '#/components/schemas/protos.common.v1.ProductContent'
        protos.common.v1.Rule:
            title: Rule
            type: object
            properties:
                id:
                    type: string
                    description: ID of the Rule.
                    format: int64
                category:
                    example: security
                    type: string
                    description: Category the Rule is associated with.
                confidence:
                    example: CONFIDENCE_HIGH
                    enum:
                        - CONFIDENCE_HIGH
                        - CONFIDENCE_MEDIUM
                        - CONFIDENCE_LOW
                    type: string
                    description: |+
                        Confidence based on the Rule's false-positive rate.

                        | value | description |
                        |-------|---------------|
                        | CONFIDENCE_HIGH |  |
                        | CONFIDENCE_MEDIUM |  |
                        | CONFIDENCE_LOW |  |

                    format: enum
                cweCategories:
                    example: ["CWE-918: Server-Side Request Forgery (SSRF)"]
                    type: array
                    items:
                        type: string
                    description: The CWE associated with the Rule.
                hasValidators:
                    type: boolean
                    description: When True, the secrets rule has validators.
                languages:
                    example: ["python"]
                    type: array
                    items:
                        type: string
                    description: Languages the Rule applies to.
                lastChangeAt:
                    example: 2024-07-29T22:33:37.380293Z
                    type: string
                    description: Timestamp of when the Rule was last changed.
                    format: date-time
                lastChangeBy:
                    type: string
                    description: Username of who last changed the Rule.
                owaspCategories:
                    example: ["A07: Cross-Site Scripting (XSS)"]
                    type: array
                    items:
                        type: string
                    description: Owasp categories the Rule is associated with.
                path:
                    example: python.rule.1
                    type: string
                    description: Full path of the Rule.
                policyMode:
                    example: MODE_BLOCK
                    enum:
                        - MODE_MONITOR
                        - MODE_COMMENT
                        - MODE_BLOCK
                        - MODE_DISABLED
                    type: string
                    description: |+
                        Mode behavior: Monitor / Comment / Block / Disabled

                        | value | description |
                        |-------|---------------|
                        | MODE_MONITOR | Monitor mode, silently report findings |
                        | MODE_COMMENT | Comment mode, leaves PR comments but does not block |
                        | MODE_BLOCK | Block mode, leaves PR comments and blocks PR |
                        | MODE_DISABLED | Disabled mode, not active |

                    format: enum
                registryMaintainer:
                    example: semgrep
                    type: string
                    description: The Registry maintainer associated with the Rule (if applicable).
                rulesets:
                    example: []
                    type: array
                    items:
                        type: string
                    description: Rulesets to which the Rule belongs (if applicable).
                secretType:
                    type: string
                    description: The secret type (if applicable).
                severity:
                    example: SEVERITY_HIGH
                    enum:
                        - SEVERITY_HIGH
                        - SEVERITY_MEDIUM
                        - SEVERITY_LOW
                        - SEVERITY_CRITICAL
                    type: string
                    description: |+
                        Severity level ("seriousness" of the finding)

                        | value | description |
                        |-------|---------------|
                        | SEVERITY_HIGH |  |
                        | SEVERITY_MEDIUM |  |
                        | SEVERITY_LOW |  |
                        | SEVERITY_CRITICAL |  |

                    format: enum
                source:
                    example: SOURCE_COMMUNITY
                    enum:
                        - SOURCE_PRO
                        - SOURCE_COMMUNITY
                        - SOURCE_CUSTOM
                    type: string
                    description: |+
                        Source of the Rule

                        | value | description |
                        |-------|---------------|
                        | SOURCE_PRO | From Pro rules |
                        | SOURCE_COMMUNITY | From Semgrep Community rules |
                        | SOURCE_CUSTOM | From Custom rules |

                    format: enum
                technologies:
                    example: ["django", "flask"]
                    type: array
                    items:
                        type: string
                    description: Technologies the Rule is associated with.
                url:
                    type: string
                    description: The URL of the Rule.
                vulnerabilityClass:
                    example: Improper Authentication
                    type: array
                    items:
                        type: string
                    description: Vulnerability classes the Rule is associated with.
        protos.deployment.v1.AddDeploymentUserRequest:
            type: object
            properties:
                deploymentId:
                    type: string
        protos.deployment.v1.AddDeploymentUserResponse:
            type: object
            properties:
                deployment:
                    $ref: '#/components/schemas/protos.deployment.v1.Deployment'
        protos.deployment.v1.AdminEngineConfig:
            type: object
            properties:
                controlled_rollout_enabled:
                    type: boolean
        protos.deployment.v1.AdminProductConfig:
            type: object
            properties:
                scans_suspended_on:
                    type: number
                    format: float
                scans_suspended_until:
                    type: number
                    format: float
                scans_suspended_by:
                    type: integer
                    format: int64
        protos.deployment.v1.AiAutofixConfig:
            type: object
            properties:
                enabled:
                    type: boolean
                min_confidence:
                    type: number
                    format: float
            description: Controls AI fix suggestions in PR comments ("Suggested fix"), not Autofix PR creation
        protos.deployment.v1.AiAutotriageConfig:
            type: object
            properties:
                enabled:
                    type: boolean
                hide_false_positive_comments:
                    type: boolean
                send_to_scm_comments:
                    type: boolean
                send_to_slack:
                    type: boolean
        protos.deployment.v1.AiProductConfig:
            type: object
            properties:
                legacy_allow_openai_code_sharing:
                    type: boolean
                enabled:
                    type: boolean
                send_patch_emails:
                    type: boolean
                allowed_providers:
                    type: array
                    items:
                        type: string
        protos.deployment.v1.CreateDeploymentRequest:
            type: object
            properties:
                deploymentName:
                    type: string
        protos.deployment.v1.CreateDeploymentResponse:
            type: object
            properties:
                deployment:
                    $ref: '#/components/schemas/protos.deployment.v1.Deployment'
        protos.deployment.v1.DeleteDeploymentTagResponse:
            type: object
            properties: {}
        protos.deployment.v1.Deployment:
            type: object
            properties:
                id:
                    type: string
                name:
                    type: string
                displayName:
                    type: string
                slug:
                    type: string
                sourceType:
                    type: string
                features:
                    $ref: '#/components/schemas/protos.deployment.v1.DeploymentFeatures'
                organizationId:
                    type: string
        protos.deployment.v1.DeploymentAdminProductConfig:
            type: object
            properties:
                sast:
                    $ref: '#/components/schemas/protos.deployment.v1.AdminProductConfig'
                sca:
                    $ref: '#/components/schemas/protos.deployment.v1.AdminProductConfig'
                secrets:
                    $ref: '#/components/schemas/protos.deployment.v1.AdminProductConfig'
                engine:
                    $ref: '#/components/schemas/protos.deployment.v1.AdminEngineConfig'
            description: Admin product configuration types
        protos.deployment.v1.DeploymentFeatures:
            type: object
            properties:
                featureFlags:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.deployment.v1.FeatureFlag'
                hasAutofix:
                    type: boolean
                hasDeepsemgrep:
                    type: boolean
                hasTriageViaComment:
                    type: boolean
                hasDependencyQuery:
                    type: boolean
                defaultUserRole:
                    enum:
                        - ORG_ROLE_ADMIN
                        - ORG_ROLE_MEMBER
                        - ORG_ROLE_IMPERSONATOR
                        - ORG_ROLE_READONLY
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | ORG_ROLE_ADMIN |  |
                        | ORG_ROLE_MEMBER |  |
                        | ORG_ROLE_IMPERSONATOR |  |
                        | ORG_ROLE_READONLY |  |

                    format: enum
                editorSemgrepVersion:
                    type: string
                nosemgrepDisabled:
                    type: boolean
        protos.deployment.v1.DeploymentProductConfig:
            type: object
            properties:
                ai:
                    $ref: '#/components/schemas/protos.deployment.v1.AiProductConfig'
                sast:
                    $ref: '#/components/schemas/protos.deployment.v1.SastProductConfig'
                sca:
                    $ref: '#/components/schemas/protos.deployment.v1.ScaProductConfig'
                secrets:
                    $ref: '#/components/schemas/protos.deployment.v1.SecretsProductConfig'
                approversTag:
                    type: string
                    description: |-
                        optional tag for approvers on responses to PR/MR comments when developers
                         request exceptions
                hasDeveloperTriage:
                    type: boolean
                    description: whether developers can triage findings themselves; defaults to true
            description: Regular product configuration types
        protos.deployment.v1.DeploymentTagInfo:
            type: object
            properties:
                id:
                    type: integer
                    format: int64
                name:
                    type: string
                projectCount:
                    type: integer
                    format: int64
        protos.deployment.v1.DeploymentUser:
            type: object
            properties:
                id:
                    type: string
                orgRole:
                    enum:
                        - ORG_ROLE_ADMIN
                        - ORG_ROLE_MEMBER
                        - ORG_ROLE_IMPERSONATOR
                        - ORG_ROLE_READONLY
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | ORG_ROLE_ADMIN |  |
                        | ORG_ROLE_MEMBER |  |
                        | ORG_ROLE_IMPERSONATOR |  |
                        | ORG_ROLE_READONLY |  |

                    format: enum
                authentication:
                    type: array
                    items:
                        type: string
                since:
                    type: string
                    format: date-time
                lastUpdatedAt:
                    type: string
                    format: date-time
                groups:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.deployment.v1.GroupWithRole'
                name:
                    type: string
                login:
                    type: string
                email:
                    type: string
                avatarUrl:
                    type: string
                active:
                    type: boolean
        protos.deployment.v1.FeatureFlag:
            type: object
            properties:
                name:
                    type: string
                expiresAt:
                    type: string
                    format: date-time
        protos.deployment.v1.FindDeploymentTagsRequest:
            type: object
            properties:
                deploymentId:
                    type: integer
                    format: int64
                includeCounts:
                    type: boolean
        protos.deployment.v1.FindDeploymentTagsResponse:
            type: object
            properties:
                tags:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.deployment.v1.DeploymentTagInfo'
        protos.deployment.v1.GetDeploymentAdminProductConfigResponse:
            type: object
            properties:
                products:
                    $ref: '#/components/schemas/protos.deployment.v1.DeploymentAdminProductConfig'
        protos.deployment.v1.GetDeploymentAuthorizedActionsResponse:
            type: object
            properties:
                authorized_actions:
                    type: array
                    items:
                        type: string
        protos.deployment.v1.GetDeploymentByTokenResponse:
            type: object
            properties:
                deployment:
                    $ref: '#/components/schemas/protos.common.v1.DeploymentV1'
        protos.deployment.v1.GetDeploymentDefaultUserRoleResponse:
            type: object
            properties:
                defaultUserRole:
                    enum:
                        - ORG_ROLE_ADMIN
                        - ORG_ROLE_MEMBER
                        - ORG_ROLE_IMPERSONATOR
                        - ORG_ROLE_READONLY
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | ORG_ROLE_ADMIN |  |
                        | ORG_ROLE_MEMBER |  |
                        | ORG_ROLE_IMPERSONATOR |  |
                        | ORG_ROLE_READONLY |  |

                    format: enum
        protos.deployment.v1.GetDeploymentGitHubAppStatusResponse:
            type: object
            properties:
                github_app_status:
                    type: boolean
        protos.deployment.v1.GetDeploymentProductConfigResponse:
            type: object
            properties:
                products:
                    $ref: '#/components/schemas/protos.deployment.v1.DeploymentProductConfig'
        protos.deployment.v1.GetDeploymentResponse:
            type: object
            properties:
                deployment:
                    allOf:
                        - $ref: '#/components/schemas/protos.common.v1.DeploymentV1'
                    description: 'TODO: Migrate to Deployment proto'
        protos.deployment.v1.GetDeploymentTagResponse:
            type: object
            properties:
                deployment_id:
                    type: integer
                    format: int64
                repository_tag:
                    type: string
        protos.deployment.v1.GetDeploymentUsersResponse:
            type: object
            properties:
                users:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.deployment.v1.DeploymentUser'
        protos.deployment.v1.GroupWithRole:
            type: object
            properties:
                group:
                    $ref: '#/components/schemas/protos.permissions.common.v1.Group'
                role:
                    enum:
                        - ROLE_ADMINISTRATOR
                        - ROLE_MANAGER
                        - ROLE_DEVELOPER
                        - ROLE_READ_ONLY
                        - ROLE_NO_ACCESS
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | ROLE_ADMINISTRATOR |  |
                        | ROLE_MANAGER |  |
                        | ROLE_DEVELOPER |  |
                        | ROLE_READ_ONLY |  |
                        | ROLE_NO_ACCESS |  |

                    format: enum
        protos.deployment.v1.ListDeploymentTagsResponse:
            type: object
            properties:
                deployment_id:
                    type: integer
                    format: int64
                repository_tags:
                    type: array
                    items:
                        type: string
        protos.deployment.v1.ListDeploymentUsersFilter:
            type: object
            properties:
                query:
                    type: string
                pruneGithub:
                    type: boolean
                showActive:
                    type: boolean
                filterMembers:
                    enum:
                        - MEMBER_FILTER_TYPE_ADMIN_ONLY
                        - MEMBER_FILTER_TYPE_NON_ADMIN_ONLY
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | MEMBER_FILTER_TYPE_ADMIN_ONLY |  |
                        | MEMBER_FILTER_TYPE_NON_ADMIN_ONLY |  |

                    format: enum
                memberIds:
                    type: array
                    items:
                        type: string
        protos.deployment.v1.ListDeploymentUsersRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                options:
                    $ref: '#/components/schemas/protos.common.v1.PaginationOptions'
                filters:
                    $ref: '#/components/schemas/protos.deployment.v1.ListDeploymentUsersFilter'
        protos.deployment.v1.ListDeploymentUsersResponse:
            type: object
            properties:
                users:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.deployment.v1.DeploymentUser'
                pageToken:
                    type: string
                    description: buf:lint:ignore FIELD_SAME_CARDINALITY
        protos.deployment.v1.PatchDeploymentUserRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                userId:
                    type: string
                newRole:
                    enum:
                        - ORG_ROLE_ADMIN
                        - ORG_ROLE_MEMBER
                        - ORG_ROLE_IMPERSONATOR
                        - ORG_ROLE_READONLY
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | ORG_ROLE_ADMIN |  |
                        | ORG_ROLE_MEMBER |  |
                        | ORG_ROLE_IMPERSONATOR |  |
                        | ORG_ROLE_READONLY |  |

                    format: enum
        protos.deployment.v1.PatchDeploymentUserResponse:
            type: object
            properties: {}
        protos.deployment.v1.PutDeploymentProductConfigRequest:
            type: object
            properties:
                deploymentId:
                    type: integer
                    format: int64
                ai:
                    $ref: '#/components/schemas/protos.deployment.v1.AiProductConfig'
                sast:
                    $ref: '#/components/schemas/protos.deployment.v1.SastProductConfig'
                sca:
                    $ref: '#/components/schemas/protos.deployment.v1.ScaProductConfig'
                secrets:
                    $ref: '#/components/schemas/protos.deployment.v1.SecretsProductConfig'
                approversTag:
                    type: string
                hasDeveloperTriage:
                    type: boolean
                    description: whether developers can triage findings themselves
        protos.deployment.v1.PutDeploymentProductConfigResponse:
            type: object
            properties:
                products:
                    $ref: '#/components/schemas/protos.deployment.v1.DeploymentProductConfig'
        protos.deployment.v1.RemoveDeploymentUserResponse:
            type: object
            properties:
                deployment:
                    $ref: '#/components/schemas/protos.deployment.v1.Deployment'
        protos.deployment.v1.SastAiDetectionConfig:
            type: object
            properties:
                enabled:
                    type: boolean
        protos.deployment.v1.SastProductConfig:
            type: object
            properties:
                enabled:
                    type: boolean
                human_autofix_enabled:
                    type: boolean
                ai_autofix:
                    $ref: '#/components/schemas/protos.deployment.v1.AiAutofixConfig'
                ai_autotriage:
                    $ref: '#/components/schemas/protos.deployment.v1.AiAutotriageConfig'
                ai_detection:
                    $ref: '#/components/schemas/protos.deployment.v1.SastAiDetectionConfig'
                autofix_pr_enabled:
                    type: boolean
                triagePermission:
                    enum:
                        - TRIAGE_PERMISSION_IGNORE
                        - TRIAGE_PERMISSION_REQUEST
                        - TRIAGE_PERMISSION_NONE
                    type: string
                    description: |+
                        triage permissions for the sast product

                        | value | description |
                        |-------|---------------|
                        | TRIAGE_PERMISSION_IGNORE |  |
                        | TRIAGE_PERMISSION_REQUEST |  |
                        | TRIAGE_PERMISSION_NONE |  |

                    format: enum
        protos.deployment.v1.ScaProductConfig:
            type: object
            properties:
                enabled:
                    type: boolean
                blockPrEnabled:
                    type: boolean
                prCommentsEnabled:
                    type: boolean
                maliciousDependencyAdvisoriesEnabled:
                    type: boolean
                upgradeGuidanceEnabled:
                    type: boolean
                triagePermission:
                    enum:
                        - TRIAGE_PERMISSION_IGNORE
                        - TRIAGE_PERMISSION_REQUEST
                        - TRIAGE_PERMISSION_NONE
                    type: string
                    description: |+
                        triage permissions for the sca product

                        | value | description |
                        |-------|---------------|
                        | TRIAGE_PERMISSION_IGNORE |  |
                        | TRIAGE_PERMISSION_REQUEST |  |
                        | TRIAGE_PERMISSION_NONE |  |

                    format: enum
                malwareFirewallEnabled:
                    type: boolean
        protos.deployment.v1.SecretsGenericSecretsConfig:
            type: object
            properties:
                enabled:
                    type: boolean
        protos.deployment.v1.SecretsHistoricalScanConfig:
            type: object
            properties:
                enabled:
                    type: boolean
        protos.deployment.v1.SecretsProductConfig:
            type: object
            properties:
                enabled:
                    type: boolean
                global_validation_state_policy:
                    $ref: '#/components/schemas/protos.deployment.v1.SecretsValidationStatePolicyConfig'
                historical_scan:
                    $ref: '#/components/schemas/protos.deployment.v1.SecretsHistoricalScanConfig'
                generic_secrets:
                    $ref: '#/components/schemas/protos.deployment.v1.SecretsGenericSecretsConfig'
                triagePermission:
                    enum:
                        - TRIAGE_PERMISSION_IGNORE
                        - TRIAGE_PERMISSION_REQUEST
                        - TRIAGE_PERMISSION_NONE
                    type: string
                    description: |+
                        triage permissions for the secrets product

                        | value | description |
                        |-------|---------------|
                        | TRIAGE_PERMISSION_IGNORE |  |
                        | TRIAGE_PERMISSION_REQUEST |  |
                        | TRIAGE_PERMISSION_NONE |  |

                    format: enum
        protos.deployment.v1.SecretsValidationStatePolicyConfig:
            type: object
            properties:
                error:
                    type: string
                invalid:
                    type: string
        protos.deployment.v1.SendDeploymentToggleFeedbackRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                featureAction:
                    type: string
                feedback:
                    type: string
        protos.deployment.v1.SendDeploymentToggleFeedbackResponse:
            type: object
            properties: {}
        protos.deployment.v1.UpdateDeploymentHasDeepsemgrepRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                has_deepsemgrep:
                    type: boolean
        protos.deployment.v1.UpdateDeploymentHasDeepsemgrepResponse:
            type: object
            properties:
                has_deepsemgrep:
                    type: boolean
        protos.deployment.v1.UpdateDeploymentHasDependencyQueryRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                hasDependencyQuery:
                    type: boolean
        protos.deployment.v1.UpdateDeploymentHasDependencyQueryResponse:
            type: object
            properties:
                hasDependencyQuery:
                    type: boolean
        protos.deployment.v1.UpdateDeploymentHasTriageViaCommentRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                hasTriageViaComment:
                    type: boolean
        protos.deployment.v1.UpdateDeploymentHasTriageViaCommentResponse:
            type: object
            properties:
                hasTriageViaComment:
                    type: boolean
        protos.deployment.v1.UpdateDeploymentRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                displayName:
                    type: string
                defaultUserRole:
                    enum:
                        - ORG_ROLE_ADMIN
                        - ORG_ROLE_MEMBER
                        - ORG_ROLE_IMPERSONATOR
                        - ORG_ROLE_READONLY
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | ORG_ROLE_ADMIN |  |
                        | ORG_ROLE_MEMBER |  |
                        | ORG_ROLE_IMPERSONATOR |  |
                        | ORG_ROLE_READONLY |  |

                    format: enum
        protos.deployment.v1.UpdateDeploymentResponse:
            type: object
            properties:
                deployment:
                    $ref: '#/components/schemas/protos.deployment.v1.Deployment'
        protos.deployment.v1.UpdateDeploymentTagRequest:
            type: object
            properties:
                deploymentId:
                    type: integer
                    format: int64
                repositoryTag:
                    type: string
                name:
                    type: string
        protos.deployment.v1.UpdateDeploymentTagResponse:
            type: object
            properties:
                deployment_id:
                    type: integer
                    format: int64
                repository_tag:
                    type: string
        protos.deployment.v2.Deployment:
            type: object
            properties:
                id:
                    example: 1605
                    title: Deployment ID
                    type: integer
                    description: The unique numerical identifier for the deployment.
                    format: int64
                name:
                    example: My Company Name
                    title: Deployment Name
                    type: string
                    description: Human readable name of the deployment.
        protos.deployment.v2.ListDeploymentsResponse:
            type: object
            properties:
                deployments:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.deployment.v2.Deployment'
        protos.editor.v1.RunPatternRequest:
            type: object
            properties:
                pattern:
                    type: string
                target:
                    type: string
                language:
                    type: string
                isDeep:
                    type: boolean
                isDebug:
                    type: boolean
        protos.editor.v1.RunPatternResponse:
            type: object
            properties:
                semgrep_result:
                    $ref: '#/components/schemas/protos.editor.v1.SemgrepResultData'
                test_result:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.editor.v1.TestCaseData'
                ai_autofixes:
                    type: array
                    items:
                        type: string
        protos.editor.v1.SemgrepResultData:
            type: object
            properties:
                status_code:
                    type: integer
                    format: int32
                output:
                    type: object
                run_error:
                    $ref: '#/components/schemas/protos.editor.v1.SemgrepRunExceptionData'
                run_time:
                    type: number
                    format: double
                environment:
                    type: string
        protos.editor.v1.SemgrepRunExceptionData:
            type: object
            properties:
                message:
                    type: string
                type:
                    type: string
                extra:
                    type: object
                uid:
                    type: string
        protos.editor.v1.TestCaseData:
            type: object
            properties:
                must_match:
                    type: boolean
                line_no:
                    type: integer
                    format: int32
                rule_id:
                    type: string
                status:
                    type: string
                message:
                    type: string
        protos.encryption.v1.EncryptedValueDictMessage:
            type: object
            properties:
                nonce:
                    type: string
                    description: see class EncryptedValueDict in server/semgrep_app/util/encryption.py
                ciphertext:
                    type: string
                tag:
                    type: string
                keyVersion:
                    type: string
        protos.feature_rollout.v1.FeatureRollout:
            type: object
            properties:
                id:
                    type: string
                name:
                    type: string
                rolled_out:
                    type: boolean
                rolled_out_at:
                    type: string
                    format: date-time
        protos.feature_rollout.v1.ListAvailableFeatureRolloutsResponse:
            type: object
            properties:
                features:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.feature_rollout.v1.FeatureRollout'
        protos.ignores.v1.CreateDeploymentProductIgnoresRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                productIgnores:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.ignores.v1.ProductIgnores'
        protos.ignores.v1.CreateDeploymentProductIgnoresResponse:
            type: object
            properties: {}
        protos.ignores.v1.DeleteDeploymentProductIgnoresResponse:
            type: object
            properties: {}
        protos.ignores.v1.GetDeploymentProductIgnoresResponse:
            type: object
            properties:
                productIgnores:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.ignores.v1.ProductIgnores'
        protos.ignores.v1.ProductIgnores:
            type: object
            properties:
                product:
                    enum:
                        - PRODUCT_SAST
                        - PRODUCT_SCA
                        - PRODUCT_SECRETS
                        - PRODUCT_AI_SAST
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | PRODUCT_SAST |  |
                        | PRODUCT_SCA |  |
                        | PRODUCT_SECRETS |  |
                        | PRODUCT_AI_SAST |  |

                    format: enum
                ignores:
                    type: array
                    items:
                        type: string
        protos.ignores.v1.UpdateDeploymentProductIgnoresRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                productIgnores:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.ignores.v1.ProductIgnores'
        protos.ignores.v1.UpdateDeploymentProductIgnoresResponse:
            type: object
            properties: {}
        protos.infra_config.v1.GetBootstrapSmsVpcResponse:
            type: object
            properties:
                AWSTemplateFormatVersion:
                    type: string
                    description: The AWSTemplateFormatVersion that the template conforms to
                Metadata:
                    type: object
                    description: Template metadata including version and last updated date
                Description:
                    type: string
                    description: Template description
                Parameters:
                    type: object
                    description: Template parameters
                Resources:
                    type: object
                    description: Declaration of AWS resources
                Outputs:
                    type: object
                    description: Output values of the stack
        protos.issues.v1.ActivityHistoryEvent_ExceptionRequestDetails:
            type: object
            properties:
                actionSource:
                    enum:
                        - FINDING_EXCEPTION_REQUEST_SOURCE_SCM_COMMENT
                        - FINDING_EXCEPTION_REQUEST_SOURCE_SEMGREP_APPSEC_PLATFORM
                        - FINDING_EXCEPTION_REQUEST_SOURCE_API
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | FINDING_EXCEPTION_REQUEST_SOURCE_SCM_COMMENT |  |
                        | FINDING_EXCEPTION_REQUEST_SOURCE_SEMGREP_APPSEC_PLATFORM |  |
                        | FINDING_EXCEPTION_REQUEST_SOURCE_API |  |

                    format: enum
        protos.issues.v1.DataflowTrace_Location:
            type: object
            properties:
                path:
                    type: string
                start:
                    $ref: '#/components/schemas/protos.issues.v1.DataflowTrace_Position'
                end:
                    $ref: '#/components/schemas/protos.issues.v1.DataflowTrace_Position'
                locationUrl:
                    type: string
        protos.issues.v1.DataflowTrace_Position:
            type: object
            properties:
                line:
                    type: string
                col:
                    type: string
                offset:
                    type: string
        protos.issues.v1.ExportIssuesResponse:
            type: object
            properties:
                taskTokenJwt:
                    type: string
        protos.issues.v1.GetIssueCodeSnippetsResponse:
            type: object
            properties:
                codeSnippets:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.issues.v1.Issue_CodeSnippet'
        protos.issues.v1.GetIssueCountsRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                    description: Specifies the deployment to which the issues belong.
                issueType:
                    enum:
                        - ISSUE_TYPE_SAST
                        - ISSUE_TYPE_SCA
                        - ISSUE_TYPE_SECRETS
                        - ISSUE_TYPE_RESEARCH
                        - ISSUE_TYPE_AI_SAST
                    type: string
                    description: |+
                        Deprecated: use issue_types instead. Filters issues to those with the specified type.

                        | value | description |
                        |-------|---------------|
                        | ISSUE_TYPE_SAST | Detected by Code rules |
                        | ISSUE_TYPE_SCA | Detected by Supply Chain rules |
                        | ISSUE_TYPE_SECRETS | Detected by Secrets rules |
                        | ISSUE_TYPE_RESEARCH | Detected by research rules or scanners |
                        | ISSUE_TYPE_AI_SAST | Detected by AI detection code scanning |

                    format: enum
                filter:
                    allOf:
                        - $ref: '#/components/schemas/protos.issues.v1.IssuesFilter'
                    description: Filters the issues to count.
                issueTypes:
                    enum:
                        - ISSUE_TYPE_SAST
                        - ISSUE_TYPE_SCA
                        - ISSUE_TYPE_SECRETS
                        - ISSUE_TYPE_RESEARCH
                        - ISSUE_TYPE_AI_SAST
                    type: array
                    items:
                        enum:
                            - ISSUE_TYPE_UNSPECIFIED
                            - ISSUE_TYPE_SAST
                            - ISSUE_TYPE_SCA
                            - ISSUE_TYPE_SECRETS
                            - ISSUE_TYPE_RESEARCH
                            - ISSUE_TYPE_AI_SAST
                        type: string
                        format: enum
                    description: |+
                        Filters issues to those with any of the specified types (based on the product which produced these issues).
                         When empty, falls back to the deprecated issue_type field for backward compatibility.

                        | value | description |
                        |-------|---------------|
                        | ISSUE_TYPE_SAST | Detected by Code rules |
                        | ISSUE_TYPE_SCA | Detected by Supply Chain rules |
                        | ISSUE_TYPE_SECRETS | Detected by Secrets rules |
                        | ISSUE_TYPE_RESEARCH | Detected by research rules or scanners |
                        | ISSUE_TYPE_AI_SAST | Detected by AI detection code scanning |

        protos.issues.v1.GetIssueCountsResponse:
            type: object
            properties:
                open:
                    type: string
                ignored:
                    type: string
                ignoredFalsePositive:
                    type: string
                ignoredAcceptableRisk:
                    type: string
                ignoredNoTime:
                    type: string
                ignoredNoTriageReason:
                    type: string
                closed:
                    type: string
                reviewing:
                    type: string
                fixing:
                    type: string
                provisionallyIgnored:
                    type: string
                ignoredDuplicate:
                    type: string
                ignoredCode:
                    type: string
                    description: Count of code-ignored (nosemgrep-muted) findings, regardless of triage reason.
                archived:
                    type: string
        protos.issues.v1.GetIssueFiltersRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                    description: Specifies the deployment to which the issues belong.
                issueType:
                    enum:
                        - ISSUE_TYPE_SAST
                        - ISSUE_TYPE_SCA
                        - ISSUE_TYPE_SECRETS
                        - ISSUE_TYPE_RESEARCH
                        - ISSUE_TYPE_AI_SAST
                    type: string
                    description: |+
                        Deprecated: use issue_types instead. Filters issues to those with the specified type. If set to `ISSUE_TYPE_UNSPECIFIED`, only generic filters will be returned

                        | value | description |
                        |-------|---------------|
                        | ISSUE_TYPE_SAST | Detected by Code rules |
                        | ISSUE_TYPE_SCA | Detected by Supply Chain rules |
                        | ISSUE_TYPE_SECRETS | Detected by Secrets rules |
                        | ISSUE_TYPE_RESEARCH | Detected by research rules or scanners |
                        | ISSUE_TYPE_AI_SAST | Detected by AI detection code scanning |

                    format: enum
                filter:
                    allOf:
                        - $ref: '#/components/schemas/protos.issues.v1.IssuesFilter'
                    description: Filters the issues to process.
                issueTypes:
                    enum:
                        - ISSUE_TYPE_SAST
                        - ISSUE_TYPE_SCA
                        - ISSUE_TYPE_SECRETS
                        - ISSUE_TYPE_RESEARCH
                        - ISSUE_TYPE_AI_SAST
                    type: array
                    items:
                        enum:
                            - ISSUE_TYPE_UNSPECIFIED
                            - ISSUE_TYPE_SAST
                            - ISSUE_TYPE_SCA
                            - ISSUE_TYPE_SECRETS
                            - ISSUE_TYPE_RESEARCH
                            - ISSUE_TYPE_AI_SAST
                        type: string
                        format: enum
                    description: |+
                        Filters issues to those with any of the specified types (based on the product which produced these issues).
                         When empty, falls back to the deprecated issue_type field for backward compatibility.

                        | value | description |
                        |-------|---------------|
                        | ISSUE_TYPE_SAST | Detected by Code rules |
                        | ISSUE_TYPE_SCA | Detected by Supply Chain rules |
                        | ISSUE_TYPE_SECRETS | Detected by Secrets rules |
                        | ISSUE_TYPE_RESEARCH | Detected by research rules or scanners |
                        | ISSUE_TYPE_AI_SAST | Detected by AI detection code scanning |

        protos.issues.v1.GetIssueFiltersResponse:
            type: object
            properties:
                repoNames:
                    type: array
                    items:
                        type: string
                    description: Applies to all issue types. Deprecated, migrate to repos
                repoTags:
                    type: array
                    items:
                        type: string
                    description: Applies to all issue types. Deprecated, migrate to tags
                refs:
                    type: array
                    items:
                        type: string
                    description: Applies to all issue types
                repoRefGroups:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.issues.v1.GetIssueFiltersResponse_RepositoryRefFilterItemGroup'
                    description: Applies to all issue types
                rulesetNames:
                    type: array
                    items:
                        type: string
                    description: Applies to SAST issues only.
                ruleNames:
                    type: array
                    items:
                        type: string
                    description: Applies to SAST issues only. Deprecated, migrate to `rules` instead.
                categories:
                    type: array
                    items:
                        type: string
                    description: Applies to SAST issues only.
                teamNames:
                    type: array
                    items:
                        type: string
                    description: Applies to all issue types
                secretTypes:
                    type: array
                    items:
                        type: string
                    description: Applies to Secrets issues only
                rules:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.issues.v1.RuleFilterItem'
                    description: Applies to all issue types. Corresponds to the rule_id filter, but provides extra information for display.
                repos:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.issues.v1.GetIssueFiltersResponse_AnnotatedRepo'
                tags:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.issues.v1.GetIssueFiltersResponse_AnnotatedRepoTag'
        protos.issues.v1.GetIssueFiltersResponse_AnnotatedRepo:
            type: object
            properties:
                id:
                    type: string
                name:
                    type: string
        protos.issues.v1.GetIssueFiltersResponse_AnnotatedRepoTag:
            type: object
            properties:
                id:
                    type: string
                name:
                    type: string
        protos.issues.v1.GetIssueFiltersResponse_RepositoryRefFilterItemGroup:
            type: object
            properties:
                repoName:
                    type: string
                repoRefs:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.issues.v1.RepositoryRefFilterItemGroup_RepoRef'
                hasPrimaryRef:
                    type: boolean
        protos.issues.v1.Issue:
            type: object
            properties:
                id:
                    type: string
                    description: ID of the finding
                createdAt:
                    type: string
                    description: Creation timestamp
                    format: date-time
                ref:
                    type: string
                    description: Branch where the finding was detected
                syntacticId:
                    type: string
                    description: 'Semi-unique hash of a check consisting of: Line Numbers, File Path, Rule ID, Index of finding in file, and Matched code'
                matchBasedId:
                    type: string
                    description: 'Semi-unique hash of a check consisting of: File Path, Rule ID, Index of finding in file, and Rule Formula with metavariable bindings substituted in'
                ruleId:
                    type: string
                    description: The ID of the associated semgrep rule
                status:
                    enum:
                        - ISSUE_STATUS_FIXED
                        - ISSUE_STATUS_MUTED
                        - ISSUE_STATUS_REMOVED
                        - ISSUE_STATUS_UNRESOLVED
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | ISSUE_STATUS_FIXED |  |
                        | ISSUE_STATUS_MUTED |  |
                        | ISSUE_STATUS_REMOVED |  |
                        | ISSUE_STATUS_UNRESOLVED |  |

                    format: enum
                repository:
                    allOf:
                        - $ref: '#/components/schemas/protos.issues.v1.Issue_Repository'
                    description: The repository in which this issue was found
                firstSeenScan:
                    allOf:
                        - $ref: '#/components/schemas/protos.issues.v1.Issue_Scan'
                    description: The first scan in which this issue was found
                triageState:
                    enum:
                        - FINDING_TRIAGE_STATE_UNTRIAGED
                        - FINDING_TRIAGE_STATE_IGNORED
                        - FINDING_TRIAGE_STATE_REOPENED
                        - FINDING_TRIAGE_STATE_UNKNOWN
                        - FINDING_TRIAGE_STATE_REVIEWING
                        - FINDING_TRIAGE_STATE_FIXING
                        - FINDING_TRIAGE_STATE_PROVISIONALLY_IGNORED
                    type: string
                    description: |+
                        The issue's current triage state.

                        | value | description |
                        |-------|---------------|
                        | FINDING_TRIAGE_STATE_UNTRIAGED |  |
                        | FINDING_TRIAGE_STATE_IGNORED |  |
                        | FINDING_TRIAGE_STATE_REOPENED |  |
                        | FINDING_TRIAGE_STATE_UNKNOWN |  |
                        | FINDING_TRIAGE_STATE_REVIEWING |  |
                        | FINDING_TRIAGE_STATE_FIXING |  |
                        | FINDING_TRIAGE_STATE_PROVISIONALLY_IGNORED |  |

                    format: enum
                triageReason:
                    enum:
                        - FINDING_TRIAGE_REASON_FALSE_POSITIVE
                        - FINDING_TRIAGE_REASON_NO_TIME
                        - FINDING_TRIAGE_REASON_ACCEPTABLE_RISK
                        - FINDING_TRIAGE_REASON_NO_TRIAGE_REASON
                        - FINDING_TRIAGE_REASON_UNKNOWN
                        - FINDING_TRIAGE_REASON_DUPLICATE
                    type: string
                    description: |+
                        The reason the issue was triaged.

                        | value | description |
                        |-------|---------------|
                        | FINDING_TRIAGE_REASON_FALSE_POSITIVE |  |
                        | FINDING_TRIAGE_REASON_NO_TIME |  |
                        | FINDING_TRIAGE_REASON_ACCEPTABLE_RISK |  |
                        | FINDING_TRIAGE_REASON_NO_TRIAGE_REASON |  |
                        | FINDING_TRIAGE_REASON_UNKNOWN |  |
                        | FINDING_TRIAGE_REASON_DUPLICATE |  |

                    format: enum
                relevantSince:
                    type: string
                    description: The timestamp from which this issue was relevant
                    format: date-time
                aggregateState:
                    enum:
                        - AGGREGATE_ISSUE_STATE_OPEN
                        - AGGREGATE_ISSUE_STATE_FIXED
                        - AGGREGATE_ISSUE_STATE_REMOVED
                        - AGGREGATE_ISSUE_STATE_IGNORED_APP
                        - AGGREGATE_ISSUE_STATE_IGNORED_CODE
                        - AGGREGATE_ISSUE_STATE_UNKNOWN
                        - AGGREGATE_ISSUE_STATE_REVIEWING
                        - AGGREGATE_ISSUE_STATE_FIXING
                        - AGGREGATE_ISSUE_STATE_PROVISIONALLY_IGNORED_APP
                    type: string
                    description: |+
                        The overall state of the issue, accounting for status (controlled by scans), triaging, external events like PR closes, etc. TODO: use the `AggregateState` enum instead of raw strings.

                        | value | description |
                        |-------|---------------|
                        | AGGREGATE_ISSUE_STATE_OPEN |  |
                        | AGGREGATE_ISSUE_STATE_FIXED |  |
                        | AGGREGATE_ISSUE_STATE_REMOVED |  |
                        | AGGREGATE_ISSUE_STATE_IGNORED_APP |  |
                        | AGGREGATE_ISSUE_STATE_IGNORED_CODE |  |
                        | AGGREGATE_ISSUE_STATE_UNKNOWN |  |
                        | AGGREGATE_ISSUE_STATE_REVIEWING |  |
                        | AGGREGATE_ISSUE_STATE_FIXING |  |
                        | AGGREGATE_ISSUE_STATE_PROVISIONALLY_IGNORED_APP |  |

                    format: enum
                note:
                    type: string
                    description: Comment left when triaged
                externalTicket:
                    allOf:
                        - $ref: '#/components/schemas/protos.ticketing.v1.ExternalTicket'
                    description: The external ticket reference
                vulnGroupKey:
                    type: string
                    description: The key used to group supply chain vulns (deprecated)
                isBlocking:
                    type: boolean
                    description: True if this issue is a blocking issue.
                autotriage:
                    allOf:
                        - $ref: '#/components/schemas/protos.ai.v1.Autotriage'
                    description: The autotriage info related to this issue.
                aiTags:
                    allOf:
                        - $ref: '#/components/schemas/protos.ai.v1.SensitivityTags'
                    description: The autotriage tags associated with this issue
                lineOfCodeUrl:
                    type: string
                    description: The URL to the specific line of code causing this issue
                codeSnippet:
                    type: string
                    description: The code snippet causing this issue. Only available when fetching a single issue at a time via the GetIssue RPC. Deprecated in favor of `code_snippets` for multi-file support.
                dataflowTrace:
                    allOf:
                        - $ref: '#/components/schemas/protos.issues.v1.Issue_DataflowTrace'
                    description: A call trace order of code locations leading to the site of the issue. Only available when fetching a single issue at a time via the GetIssue RPC.
                commitUrl:
                    type: string
                    description: The URL of the specific commit which introduced this issue. Only available when fetching a single issue at a time via the GetIssue RPC.
                activityHistory:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.issues.v1.Issue_ActivityHistoryEvent'
                    description: A chronologically-ordered list of events related to this issue (status change, ai tags, triage events). Always populated by the GetIssue RPC; populated by ListIssues only when ListIssuesRequest.include_activity_history is true.
                relatedIssues:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.issues.v1.Issue_RelatedIssue'
                    description: A list of related issues (with the same match based ID). Only available when fetching a single issue at a time via the GetIssue RPC.
                remediation:
                    allOf:
                        - $ref: '#/components/schemas/protos.ai.v1.Remediation'
                    description: |-
                        AI remediation info for this issue (guidance and autofix).
                         Available in the GetIssue RPC and in list responses when include_remediation is set to true.
                lastSeenScan:
                    allOf:
                        - $ref: '#/components/schemas/protos.issues.v1.Issue_Scan'
                    description: The last scan in which this issue was found
                filePath:
                    type: string
                    description: The path to the file in which this issue was found.
                line:
                    type: integer
                    description: The first line number in which this issue was found.
                    format: int64
                endLine:
                    type: integer
                    description: The end line number in which this issue was found (if the offending code spans several lines).
                    format: int64
                column:
                    type: integer
                    description: The start column number within the line in which this issue was found.
                    format: int64
                endColumn:
                    type: integer
                    description: The end column number within the last line in which this issue was found (if applicable).
                    format: int64
                severity:
                    enum:
                        - SEVERITY_HIGH
                        - SEVERITY_MEDIUM
                        - SEVERITY_LOW
                        - SEVERITY_CRITICAL
                    type: string
                    description: |+
                        The severity ("seriousness") of the issue.

                        | value | description |
                        |-------|---------------|
                        | SEVERITY_HIGH |  |
                        | SEVERITY_MEDIUM |  |
                        | SEVERITY_LOW |  |
                        | SEVERITY_CRITICAL |  |

                    format: enum
                message:
                    type: string
                    description: An optional message that helps describe the issue in more detail.
                rulePath:
                    type: string
                    description: The full path of the rule used to generate this issue.
                confidence:
                    enum:
                        - CONFIDENCE_HIGH
                        - CONFIDENCE_MEDIUM
                        - CONFIDENCE_LOW
                    type: string
                    description: |+
                        The confidence in false-positive rate of an issue.

                        | value | description |
                        |-------|---------------|
                        | CONFIDENCE_HIGH |  |
                        | CONFIDENCE_MEDIUM |  |
                        | CONFIDENCE_LOW |  |

                    format: enum
                ruleUrl:
                    type: string
                    description: The url of the rule used to generate this issue.
                ruleReferences:
                    type: array
                    items:
                        type: string
                    description: A list of external references (URLs) which help describe or provide context for the rule used to generate this issue.
                ruleOrigin:
                    enum:
                        - RULE_ORIGIN_CUSTOM
                        - RULE_ORIGIN_COMMUNITY
                        - RULE_ORIGIN_PRO_RULES
                    type: string
                    description: |+
                        The origin of the rule (pro rules, semgrep community, or a custom rule)

                        | value | description |
                        |-------|---------------|
                        | RULE_ORIGIN_CUSTOM |  |
                        | RULE_ORIGIN_COMMUNITY |  |
                        | RULE_ORIGIN_PRO_RULES |  |

                    format: enum
                ruleHashId:
                    type: string
                    description: The hash of the associated rule.
                ruleCweNames:
                    type: array
                    items:
                        type: string
                    description: The names of the CWEs associated with this issue's rule.
                ruleOwaspNames:
                    type: array
                    items:
                        type: string
                    description: The names of the OWASP categories associated with this issue's rule.
                ruleset:
                    type: string
                    description: The ruleset to which this issue's rule belongs (if applicable).
                policySlug:
                    type: string
                    description: A slugified version of the associated rule's policy.
                category:
                    type: string
                    description: The issue's category (or "other" if none).
                ruleSupersededBy:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.issues.v1.SupersededRule'
                    description: A list of rules which supersede this issue's rule.
                issueType:
                    enum:
                        - ISSUE_TYPE_SAST
                        - ISSUE_TYPE_SCA
                        - ISSUE_TYPE_SECRETS
                        - ISSUE_TYPE_RESEARCH
                        - ISSUE_TYPE_AI_SAST
                    type: string
                    description: |+
                        The product which owns this issue, e.g. SAST (code), SCA (supply chain), etc.

                        | value | description |
                        |-------|---------------|
                        | ISSUE_TYPE_SAST | Detected by Code rules |
                        | ISSUE_TYPE_SCA | Detected by Supply Chain rules |
                        | ISSUE_TYPE_SECRETS | Detected by Secrets rules |
                        | ISSUE_TYPE_RESEARCH | Detected by research rules or scanners |
                        | ISSUE_TYPE_AI_SAST | Detected by AI detection code scanning |

                    format: enum
                issueParentId:
                    type: string
                    description: Parent ID of the finding. Present for all types.
                ticketAttempts:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.ticketing.v1.TicketAttempt'
                    description: The failed attempts at ticket creation
                sastAttributes:
                    allOf:
                        - $ref: '#/components/schemas/protos.issues.v1.Issue_SastAttributes'
                    description: Only set for code issues (i.e. if issue_type == `SAST`)
                scaAttributes:
                    allOf:
                        - $ref: '#/components/schemas/protos.issues.v1.Issue_ScaAttributes'
                    description: Only set for supply chain issues (i.e. if issue_type == `SCA`)
                secretsAttributes:
                    allOf:
                        - $ref: '#/components/schemas/protos.issues.v1.Issue_SecretsAttributes'
                    description: Only set for secrets issues (i.e. if issue_type == `SECRETS`)
                subcategories:
                    type: array
                    items:
                        type: string
                    description: The issue's subcategories
                refUrl:
                    type: string
                    description: The URL of the specific commit which introduced this issue. Only available when fetching a single issue at a time via the GetIssue RPC.
                codeowners:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.ai.v1.Codeowner'
                codeSnippets:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.issues.v1.Issue_CodeSnippet'
                    description: The content of files involved in this issue. Only available when fetching a single issue at a time via the GetIssue RPC.
                ruleExplanation:
                    allOf:
                        - $ref: '#/components/schemas/protos.ai.v1.RuleExplanation'
                    description: AI-generated explanation for true positive autotriage cases. Only available when fetching a single issue at a time via the GetIssue RPC.
                ruleDisplayName:
                    type: string
                    description: The human-readable display name of the rule (e.g., "Hardcoded secret"). Only available when fetching a single issue at a time via the GetIssue RPC.
                clickToFixPrUrl:
                    type: string
                    description: |-
                        The URL of the Click-to-Fix PR that was opened to fix this issue (if any).
                         Available in the GetIssue RPC and in list responses that opt into it.
                aiImpact:
                    type: string
                    description: 'AI Detection only: LLM-generated description of the vulnerability''s impact. Only available when fetching a single issue at a time via the GetIssue RPC.'
                aiExploitConditions:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.ai.v1.ExploitCondition'
                    description: 'AI Detection only: Conditions that must be true for the vulnerability to be exploitable. Only available when fetching a single issue at a time via the GetIssue RPC.'
                clickToFixCommitMsg:
                    type: string
                    description: The commit message for the Click-to-Fix PR (if any). Only available when fetching a single issue at a time via the GetIssue RPC.
                exceptionRequest:
                    allOf:
                        - $ref: '#/components/schemas/protos.issues.v1.IssueExceptionRequestSummary'
                    description: |-
                        A summary of the exception request for this issue, shaped for the findings
                         list UI. Only returned if include_exception_request_info was true in the request.
                clickToFixPrId:
                    type: string
                    description: |-
                        The SCM-agnostic PR identifier for the Click-to-Fix PR (if any).
                         Available in the GetIssue RPC and in list responses that opt into it.
                         Prefer this over parsing the PR number from click_to_fix_pr_url.
                triagePermission:
                    enum:
                        - TRIAGE_PERMISSION_IGNORE
                        - TRIAGE_PERMISSION_REQUEST
                        - TRIAGE_PERMISSION_NONE
                    type: string
                    description: |+
                        The triage permission for this issue: whether a developer may ignore it
                         themselves, must request an exception, or cannot triage it at all.
                         Only defined when the developer approvals feature is enabled.

                        | value | description |
                        |-------|---------------|
                        | TRIAGE_PERMISSION_IGNORE |  |
                        | TRIAGE_PERMISSION_REQUEST |  |
                        | TRIAGE_PERMISSION_NONE |  |

                    format: enum
                isArchived:
                    type: boolean
                    description: True if this finding's project is archived (Semgrep-initiated via is_semgrep_archived, or SCM-archived).
        protos.issues.v1.IssueExceptionRequestSummary:
            type: object
            properties:
                exceptionState:
                    enum:
                        - FINDING_EXCEPTION_REQUEST_STATE_REQUESTED
                        - FINDING_EXCEPTION_REQUEST_STATE_APPROVED
                        - FINDING_EXCEPTION_REQUEST_STATE_REJECTED
                    type: string
                    description: |+
                        Current state of the exception request.

                        | value | description |
                        |-------|---------------|
                        | FINDING_EXCEPTION_REQUEST_STATE_REQUESTED |  |
                        | FINDING_EXCEPTION_REQUEST_STATE_APPROVED |  |
                        | FINDING_EXCEPTION_REQUEST_STATE_REJECTED |  |

                    format: enum
                requesterLogin:
                    type: string
                    description: Login of the user who submitted the request. Absent if created programmatically.
                requesterNote:
                    type: string
                    description: Note provided by the requester.
                requesterTriageReason:
                    enum:
                        - FINDING_TRIAGE_REASON_FALSE_POSITIVE
                        - FINDING_TRIAGE_REASON_NO_TIME
                        - FINDING_TRIAGE_REASON_ACCEPTABLE_RISK
                        - FINDING_TRIAGE_REASON_NO_TRIAGE_REASON
                        - FINDING_TRIAGE_REASON_UNKNOWN
                        - FINDING_TRIAGE_REASON_DUPLICATE
                    type: string
                    description: |+
                        Triage reason provided by the requester.

                        | value | description |
                        |-------|---------------|
                        | FINDING_TRIAGE_REASON_FALSE_POSITIVE |  |
                        | FINDING_TRIAGE_REASON_NO_TIME |  |
                        | FINDING_TRIAGE_REASON_ACCEPTABLE_RISK |  |
                        | FINDING_TRIAGE_REASON_NO_TRIAGE_REASON |  |
                        | FINDING_TRIAGE_REASON_UNKNOWN |  |
                        | FINDING_TRIAGE_REASON_DUPLICATE |  |

                    format: enum
                requesterActionSource:
                    enum:
                        - FINDING_EXCEPTION_REQUEST_SOURCE_SCM_COMMENT
                        - FINDING_EXCEPTION_REQUEST_SOURCE_SEMGREP_APPSEC_PLATFORM
                        - FINDING_EXCEPTION_REQUEST_SOURCE_API
                    type: string
                    description: |+
                        Source system that originated the request.

                        | value | description |
                        |-------|---------------|
                        | FINDING_EXCEPTION_REQUEST_SOURCE_SCM_COMMENT |  |
                        | FINDING_EXCEPTION_REQUEST_SOURCE_SEMGREP_APPSEC_PLATFORM |  |
                        | FINDING_EXCEPTION_REQUEST_SOURCE_API |  |

                    format: enum
                reviewerLogin:
                    type: string
                    description: Login of the reviewer. Only populated when exception_state is APPROVED or REJECTED.
                requestId:
                    type: string
                    description: Unique identifier for this exception request.
                reviewId:
                    type: string
                    description: Unique identifier for this exception review.
                issueId:
                    type: string
                    description: ID of the issue this exception request applies to.
                createdAt:
                    type: string
                    description: The timestamp when the exception request was created.
                    format: date-time
                reviewedAt:
                    type: string
                    description: When the exception request was last reviewed.
                    format: date-time
            description: |-
                A summary of the exception request state for a finding, shaped for the
                 findings list UI. Only returned when include_exception_request_info is true.
        protos.issues.v1.Issue_ActivityHistoryEvent:
            type: object
            properties:
                date:
                    type: string
                    format: date-time
                title:
                    type: string
                triageReason:
                    type: string
                note:
                    type: string
                actor:
                    type: string
                historyType:
                    enum:
                        - HISTORY_TYPE_STATUS
                        - HISTORY_TYPE_TRIAGE
                        - HISTORY_TYPE_AUTOTRIAGE
                        - HISTORY_TYPE_AUTOTRIAGE_FEEDBACK
                        - HISTORY_TYPE_AI_TAG
                        - HISTORY_TYPE_ANALYSIS_STARTED
                        - HISTORY_TYPE_REVIEW_COMMENT_SILENCED
                        - HISTORY_TYPE_TICKET_CREATED
                        - HISTORY_TYPE_TICKET_ATTEMPTED
                        - HISTORY_TYPE_GUIDANCE_REGENERATION
                        - HISTORY_TYPE_SCM_MENTION
                        - HISTORY_TYPE_CLICK_TO_FIX_PR_REQUESTED
                        - HISTORY_TYPE_CLICK_TO_FIX_PR_OPENED
                        - HISTORY_TYPE_CLICK_TO_FIX_PR_FAILED
                        - HISTORY_TYPE_CLICK_TO_FIX_PR_MERGED
                        - HISTORY_TYPE_EXCEPTION_REQUEST_CREATED
                        - HISTORY_TYPE_EXCEPTION_REQUEST_APPROVED
                        - HISTORY_TYPE_EXCEPTION_REQUEST_REJECTED
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | HISTORY_TYPE_STATUS |  |
                        | HISTORY_TYPE_TRIAGE |  |
                        | HISTORY_TYPE_AUTOTRIAGE |  |
                        | HISTORY_TYPE_AUTOTRIAGE_FEEDBACK |  |
                        | HISTORY_TYPE_AI_TAG |  |
                        | HISTORY_TYPE_ANALYSIS_STARTED |  |
                        | HISTORY_TYPE_REVIEW_COMMENT_SILENCED |  |
                        | HISTORY_TYPE_TICKET_CREATED |  |
                        | HISTORY_TYPE_TICKET_ATTEMPTED |  |
                        | HISTORY_TYPE_GUIDANCE_REGENERATION |  |
                        | HISTORY_TYPE_SCM_MENTION |  |
                        | HISTORY_TYPE_CLICK_TO_FIX_PR_REQUESTED |  |
                        | HISTORY_TYPE_CLICK_TO_FIX_PR_OPENED |  |
                        | HISTORY_TYPE_CLICK_TO_FIX_PR_FAILED |  |
                        | HISTORY_TYPE_CLICK_TO_FIX_PR_MERGED |  |
                        | HISTORY_TYPE_EXCEPTION_REQUEST_CREATED |  |
                        | HISTORY_TYPE_EXCEPTION_REQUEST_APPROVED |  |
                        | HISTORY_TYPE_EXCEPTION_REQUEST_REJECTED |  |

                    format: enum
                exceptionRequestDetails:
                    $ref: '#/components/schemas/protos.issues.v1.ActivityHistoryEvent_ExceptionRequestDetails'
        protos.issues.v1.Issue_CodeSnippet:
            type: object
            properties:
                path:
                    type: string
                content:
                    type: string
        protos.issues.v1.Issue_DataflowTrace:
            type: object
            properties:
                taintSource:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.issues.v1.DataflowTrace_Location'
                intermediateVars:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.issues.v1.DataflowTrace_Location'
                taintSink:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.issues.v1.DataflowTrace_Location'
        protos.issues.v1.Issue_PrimaryRefItem:
            type: object
            properties:
                id:
                    type: string
                ref:
                    type: string
        protos.issues.v1.Issue_RelatedIssue:
            type: object
            properties:
                id:
                    type: string
                ref:
                    type: string
                pullRequestId:
                    type: string
                aggregateState:
                    enum:
                        - AGGREGATE_ISSUE_STATE_OPEN
                        - AGGREGATE_ISSUE_STATE_FIXED
                        - AGGREGATE_ISSUE_STATE_REMOVED
                        - AGGREGATE_ISSUE_STATE_IGNORED_APP
                        - AGGREGATE_ISSUE_STATE_IGNORED_CODE
                        - AGGREGATE_ISSUE_STATE_UNKNOWN
                        - AGGREGATE_ISSUE_STATE_REVIEWING
                        - AGGREGATE_ISSUE_STATE_FIXING
                        - AGGREGATE_ISSUE_STATE_PROVISIONALLY_IGNORED_APP
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | AGGREGATE_ISSUE_STATE_OPEN |  |
                        | AGGREGATE_ISSUE_STATE_FIXED |  |
                        | AGGREGATE_ISSUE_STATE_REMOVED |  |
                        | AGGREGATE_ISSUE_STATE_IGNORED_APP |  |
                        | AGGREGATE_ISSUE_STATE_IGNORED_CODE |  |
                        | AGGREGATE_ISSUE_STATE_UNKNOWN |  |
                        | AGGREGATE_ISSUE_STATE_REVIEWING |  |
                        | AGGREGATE_ISSUE_STATE_FIXING |  |
                        | AGGREGATE_ISSUE_STATE_PROVISIONALLY_IGNORED_APP |  |

                    format: enum
                createdAt:
                    type: string
                    format: date-time
        protos.issues.v1.Issue_Repository:
            type: object
            properties:
                name:
                    type: string
                    description: Repository name
                id:
                    type: string
                type:
                    enum:
                        - SCM_TYPE_GITHUB
                        - SCM_TYPE_GITHUB_ENTERPRISE
                        - SCM_TYPE_GITLAB
                        - SCM_TYPE_GITLAB_SELFMANAGED
                        - SCM_TYPE_BITBUCKET
                        - SCM_TYPE_BITBUCKET_DATACENTER
                        - SCM_TYPE_AZURE_DEVOPS
                        - SCM_TYPE_UNKNOWN
                        - SCM_TYPE_HARNESS
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | SCM_TYPE_GITHUB | GitHub Cloud |
                        | SCM_TYPE_GITHUB_ENTERPRISE | GitHub Enterprise |
                        | SCM_TYPE_GITLAB | GitLab Cloud |
                        | SCM_TYPE_GITLAB_SELFMANAGED | GitLab Self-Managed |
                        | SCM_TYPE_BITBUCKET | Bitbucket Cloud |
                        | SCM_TYPE_BITBUCKET_DATACENTER | Bitbucket Data Center |
                        | SCM_TYPE_AZURE_DEVOPS | Azure DevOps |
                        | SCM_TYPE_UNKNOWN |  |
                        | SCM_TYPE_HARNESS | Harness |

                    format: enum
                primaryRef:
                    $ref: '#/components/schemas/protos.issues.v1.Issue_PrimaryRefItem'
        protos.issues.v1.Issue_SastAttributes:
            type: object
            properties: {}
            description: Groups the fields of Issue that are specific to the SAST product
        protos.issues.v1.Issue_ScaAttributes:
            type: object
            properties:
                severity:
                    enum:
                        - SEVERITY_HIGH
                        - SEVERITY_MEDIUM
                        - SEVERITY_LOW
                        - SEVERITY_CRITICAL
                    type: string
                    description: |+
                        Severity of the SCA issue (TODO: reconcile this with the Issue.severity field, which *should* agree but doesn't necessarily agree yet)

                        | value | description |
                        |-------|---------------|
                        | SEVERITY_HIGH |  |
                        | SEVERITY_MEDIUM |  |
                        | SEVERITY_LOW |  |
                        | SEVERITY_CRITICAL |  |

                    format: enum
                vulnDatabaseIdentifier:
                    type: string
                    description: ID of the CVE or GHSA from upon which this SCA issue's rule is based
                reachability:
                    enum:
                        - REACHABILITY_CONDITIONALLY_REACHABLE
                        - REACHABILITY_ALWAYS_REACHABLE
                        - REACHABILITY_REACHABLE
                        - REACHABILITY_UNREACHABLE
                        - REACHABILITY_UNKNOWN
                    type: string
                    description: |+
                        SCA issue's reachability (whether the issue is reachable from the client's code and, if so, how)

                        | value | description |
                        |-------|---------------|
                        | REACHABILITY_CONDITIONALLY_REACHABLE |  |
                        | REACHABILITY_ALWAYS_REACHABLE |  |
                        | REACHABILITY_REACHABLE |  |
                        | REACHABILITY_UNREACHABLE |  |
                        | REACHABILITY_UNKNOWN |  |

                    format: enum
                reachableCondition:
                    type: string
                    description: For SCA issues which are conditionally reachable, this will store a human-readable description of the condition.
                cwes:
                    type: array
                    items:
                        type: string
                    description: 'Stands for "common weakness enumeration": a taxonomy for identifying the common sources of software flaws (e.g., buffer overflows, failure to check input data)'
                foundDependency:
                    allOf:
                        - $ref: '#/components/schemas/protos.issues.v1.ScaAttributes_FoundDependency'
                    description: The dependency in which this SCA issue was found.
                fixRecommendations:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.issues.v1.ScaAttributes_FixRecommendation'
                    description: A list of Semgrep's dependency upgrade recommendations which would addressing the SCA issue's underlying rule.
                bestFix:
                    allOf:
                        - $ref: '#/components/schemas/protos.issues.v1.ScaAttributes_FixRecommendation'
                    description: One of the `fix_recommendations` that we have identified as best
                epssScore:
                    allOf:
                        - $ref: '#/components/schemas/protos.sca.v1.EpssScore'
                    description: the exploit prediction score associated with the issue's corresponding CVE calculated by https://www.first.org/epss/ (only present if the issue is associated with a CVE)
                rulePublishDate:
                    type: string
                    description: the date the associated rule was published
                    format: date-time
                scaRuleKind:
                    enum:
                        - SCA_RULE_KIND_REACHABLE
                        - SCA_RULE_KIND_UPGRADE_ONLY
                        - SCA_RULE_KIND_MALICIOUS_DEPENDENCY
                        - SCA_RULE_KIND_LEGACY
                    type: string
                    description: |+
                        SCA issue's kind (malicious, reachable, upgrade-only, etc.). Note that this repeats some information that is included in `reachability` and `transitivity`.
                         TODO: consolidate with `reachability` and `transitivity` when we roll out TR for everyone.

                        | value | description |
                        |-------|---------------|
                        | SCA_RULE_KIND_REACHABLE |  |
                        | SCA_RULE_KIND_UPGRADE_ONLY |  |
                        | SCA_RULE_KIND_MALICIOUS_DEPENDENCY |  |
                        | SCA_RULE_KIND_LEGACY |  |

                    format: enum
                scaMatchInfo:
                    allOf:
                        - $ref: '#/components/schemas/protos.issues.v1.ScaAttributes_ScaMatchInfo'
                    description: The new sca_match_kind, used for transitive reachability.
                introducedBy:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.issues.v1.ScaAttributes_IntroducingDependency'
                    description: |-
                        The distinct direct dependencies that introduced this transitive dependency.
                         Empty for direct dependencies (not applicable).
            description: Groups the fields of Issue that are specific to the SCA product
        protos.issues.v1.Issue_Scan:
            type: object
            properties:
                id:
                    type: string
                meta:
                    type: object
        protos.issues.v1.Issue_SecretsAttributes:
            type: object
            properties:
                validationState:
                    enum:
                        - VALIDATION_STATE_CONFIRMED_VALID
                        - VALIDATION_STATE_CONFIRMED_INVALID
                        - VALIDATION_STATE_VALIDATION_ERROR
                        - VALIDATION_STATE_NO_VALIDATOR
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | VALIDATION_STATE_CONFIRMED_VALID |  |
                        | VALIDATION_STATE_CONFIRMED_INVALID |  |
                        | VALIDATION_STATE_VALIDATION_ERROR |  |
                        | VALIDATION_STATE_NO_VALIDATOR |  |

                    format: enum
                secretType:
                    type: string
                historicalInfo:
                    $ref: '#/components/schemas/protos.secrets.v1.HistoricalInfo'
            description: Groups the fields of Issue that are specific to the Secrets product
        protos.issues.v1.IssuesFilter:
            type: object
            properties:
                ids:
                    type: array
                    items:
                        type: string
                    description: Filters issues to those whose ids match any of the specified values. Applies to all issue types.
                since:
                    type: string
                    description: Filters issues relevant since the specified timestamp. Applies to all issue types.
                    format: date-time
                until:
                    type: string
                    description: Filters issues created before the specified timestamp. Applies to all issue types.
                    format: date-time
                repositoryNames:
                    type: array
                    items:
                        type: string
                    description: Filters issues which belong to a repo with one of the specified names. Applies to all issue types.
                repositoryIds:
                    type: array
                    items:
                        type: string
                    description: Filters issues which belong to a repo with one of the specified ids. Applies to all issue types.
                repositoryTags:
                    type: array
                    items:
                        type: string
                    description: Filters issues which belong to a repo with one of the specified tags. Applies to all issue types.
                refs:
                    type: array
                    items:
                        type: string
                    description: Filters issues which were found in a ref with one of the specified names. Applies to all issue types.
                repositoryRefIds:
                    type: array
                    items:
                        type: string
                    description: Filters issues which were found on the repo and ref associated with the repo ref id. Applies to all issue types.
                aiVerdicts:
                    enum:
                        - VERDICT_TRUE_POSITIVE
                        - VERDICT_FALSE_POSITIVE
                        - VERDICT_NO_VERDICT
                    type: array
                    items:
                        enum:
                            - VERDICT_UNSPECIFIED
                            - VERDICT_TRUE_POSITIVE
                            - VERDICT_FALSE_POSITIVE
                            - VERDICT_NO_VERDICT
                        type: string
                        format: enum
                    description: |+
                        Filters issues whose autotriage verdict matches one of the specified values. Applies to all issue types.

                        | value | description |
                        |-------|---------------|
                        | VERDICT_TRUE_POSITIVE |  |
                        | VERDICT_FALSE_POSITIVE |  |
                        | VERDICT_NO_VERDICT |  |

                aiSensitivities:
                    type: array
                    items:
                        type: string
                    description: Filters issues whose autotriage tag matches one of the specified values. Applies to all issue types.
                status:
                    enum:
                        - ISSUE_STATUS_FIXED
                        - ISSUE_STATUS_MUTED
                        - ISSUE_STATUS_REMOVED
                        - ISSUE_STATUS_UNRESOLVED
                    type: array
                    items:
                        enum:
                            - ISSUE_STATUS_UNSPECIFIED
                            - ISSUE_STATUS_FIXED
                            - ISSUE_STATUS_MUTED
                            - ISSUE_STATUS_REMOVED
                            - ISSUE_STATUS_UNRESOLVED
                        type: string
                        format: enum
                    description: |+
                        Filters issues whose status matches one of the specified values. Applies to all issue types.
                         Deprecated in favor of `aggregate_issue_states`, which is the forward-looking state filter.

                        | value | description |
                        |-------|---------------|
                        | ISSUE_STATUS_FIXED |  |
                        | ISSUE_STATUS_MUTED |  |
                        | ISSUE_STATUS_REMOVED |  |
                        | ISSUE_STATUS_UNRESOLVED |  |

                tab:
                    enum:
                        - ISSUE_TAB_OPEN
                        - ISSUE_TAB_IGNORED
                        - ISSUE_TAB_CLOSED
                        - ISSUE_TAB_REVIEWING
                        - ISSUE_TAB_FIXING
                        - ISSUE_TAB_PROVISIONALLY_IGNORED
                    type: string
                    description: |+
                        Filters issues whose general status (open, ignored, fixed) matches one of the specified values. Applies to all issue types.

                        | value | description |
                        |-------|---------------|
                        | ISSUE_TAB_OPEN |  |
                        | ISSUE_TAB_IGNORED |  |
                        | ISSUE_TAB_CLOSED |  |
                        | ISSUE_TAB_REVIEWING |  |
                        | ISSUE_TAB_FIXING |  |
                        | ISSUE_TAB_PROVISIONALLY_IGNORED |  |

                    format: enum
                teamNames:
                    type: array
                    items:
                        type: string
                    description: Filter issues which belong to a repo assigned to one of the specified teams. Applies to all issue types.
                actions:
                    enum:
                        - MODE_MONITOR
                        - MODE_COMMENT
                        - MODE_BLOCK
                        - MODE_DISABLED
                    type: array
                    items:
                        enum:
                            - MODE_UNSPECIFIED
                            - MODE_MONITOR
                            - MODE_COMMENT
                            - MODE_BLOCK
                            - MODE_DISABLED
                        type: string
                        format: enum
                    description: |+
                        Filters SAST issues whose action mode matches one of the specified values. Only applies when the provided issue_type is SAST.
                         Deprecated: action mode is tied to the legacy policy model and has no effect for deployments on unified policies. This filter will be removed in a future release.

                        | value | description |
                        |-------|---------------|
                        | MODE_MONITOR | Monitor mode, silently report findings |
                        | MODE_COMMENT | Comment mode, leaves PR comments but does not block |
                        | MODE_BLOCK | Block mode, leaves PR comments and blocks PR |
                        | MODE_DISABLED | Disabled mode, not active |

                policySlugs:
                    type: array
                    items:
                        type: string
                    description: Filters SAST issues whose policy slug matches one of the specified values. Deprecated in favor of `action`. Only applies when the provided issue_type is SAST.
                rules:
                    type: array
                    items:
                        type: string
                    description: Filters SAST issues whose rule paths match one of the specified values. Only applies when the provided issue_type is SAST.
                ruleIds:
                    type: array
                    items:
                        type: string
                    description: Filters issues whose rule id matches one of the specified values. Applies to all issue types.
                rulesets:
                    type: array
                    items:
                        type: string
                    description: Filters SAST issues whose ruleset name matches one of the specified values. Only applies when the provided issue_type is SAST.
                categories:
                    type: array
                    items:
                        type: string
                    description: Filters SAST issues whose category matches one of the specified values. Only applies when the provided issue_type is SAST.
                confidences:
                    enum:
                        - CONFIDENCE_HIGH
                        - CONFIDENCE_MEDIUM
                        - CONFIDENCE_LOW
                    type: array
                    items:
                        enum:
                            - CONFIDENCE_UNSPECIFIED
                            - CONFIDENCE_HIGH
                            - CONFIDENCE_MEDIUM
                            - CONFIDENCE_LOW
                        type: string
                        format: enum
                    description: |+
                        Filters SAST issues whose confidence rating matches one of the specified values. Only applies when the provided issue_type is SAST.

                        | value | description |
                        |-------|---------------|
                        | CONFIDENCE_HIGH |  |
                        | CONFIDENCE_MEDIUM |  |
                        | CONFIDENCE_LOW |  |

                severities:
                    enum:
                        - SEVERITY_HIGH
                        - SEVERITY_MEDIUM
                        - SEVERITY_LOW
                        - SEVERITY_CRITICAL
                    type: array
                    items:
                        enum:
                            - SEVERITY_UNSPECIFIED
                            - SEVERITY_HIGH
                            - SEVERITY_MEDIUM
                            - SEVERITY_LOW
                            - SEVERITY_CRITICAL
                        type: string
                        format: enum
                    description: |+
                        Filters SAST issues whose severity matches one of the specified values. Only applies when the provided issue_type is SAST.

                        | value | description |
                        |-------|---------------|
                        | SEVERITY_HIGH |  |
                        | SEVERITY_MEDIUM |  |
                        | SEVERITY_LOW |  |
                        | SEVERITY_CRITICAL |  |

                transitivities:
                    enum:
                        - UNKNOWN_TRANSITIVITY
                        - TRANSITIVE
                        - DIRECT
                    type: array
                    items:
                        enum:
                            - UNKNOWN_TRANSITIVITY
                            - TRANSITIVE
                            - DIRECT
                        type: string
                        format: enum
                    description: |+
                        Filters supply chain issues whose transitivity matches one of the specified values. Only applies when the provided issue_type is SCA.

                        | value | description |
                        |-------|---------------|
                        | UNKNOWN_TRANSITIVITY |  |
                        | TRANSITIVE |  |
                        | DIRECT |  |

                exposures:
                    enum:
                        - UNKNOWN_EXPOSURE
                        - UNREACHABLE
                        - REACHABLE
                    type: array
                    items:
                        enum:
                            - UNKNOWN_EXPOSURE
                            - UNREACHABLE
                            - REACHABLE
                        type: string
                        format: enum
                    description: |+
                        Filters supply chain issues whose exposure (a.k.a. "reachability") matches one of the specified values. Only applies when the provided issue_type is SCA.

                        | value | description |
                        |-------|---------------|
                        | UNKNOWN_EXPOSURE |  |
                        | UNREACHABLE |  |
                        | REACHABLE |  |

                dependencies:
                    type: array
                    items:
                        type: string
                    description: Filters supply chain issues found in a dependency whose name matches any of the specified values. Only applies when the provided issue_type is SCA.
                cves:
                    type: array
                    items:
                        type: string
                    description: Filters supply chain issues belonging to a CVE whose name matches the specified value. Only applies when the provided issue_type is SCA.
                source:
                    enum:
                        - SOURCE_PRO
                        - SOURCE_COMMUNITY
                        - SOURCE_CUSTOM
                    type: array
                    items:
                        enum:
                            - SOURCE_UNSPECIFIED
                            - SOURCE_PRO
                            - SOURCE_COMMUNITY
                            - SOURCE_CUSTOM
                        type: string
                        format: enum
                    description: |+
                        Filters issues whose source matches one of the specified values. Applies to SAST now, and maybe Secrets in the future.

                        | value | description |
                        |-------|---------------|
                        | SOURCE_PRO | From Pro rules |
                        | SOURCE_COMMUNITY | From Semgrep Community rules |
                        | SOURCE_CUSTOM | From Custom rules |

                reachabilities:
                    enum:
                        - REACHABILITY_CONDITIONALLY_REACHABLE
                        - REACHABILITY_ALWAYS_REACHABLE
                        - REACHABILITY_REACHABLE
                        - REACHABILITY_UNREACHABLE
                        - REACHABILITY_UNKNOWN
                    type: array
                    items:
                        enum:
                            - REACHABILITY_UNSPECIFIED
                            - REACHABILITY_CONDITIONALLY_REACHABLE
                            - REACHABILITY_ALWAYS_REACHABLE
                            - REACHABILITY_REACHABLE
                            - REACHABILITY_UNREACHABLE
                            - REACHABILITY_UNKNOWN
                        type: string
                        format: enum
                    description: |+
                        Filters supply chain issues whose reachability matches one of the specified values. Only applies when the provided issue_type is SCA.

                        | value | description |
                        |-------|---------------|
                        | REACHABILITY_CONDITIONALLY_REACHABLE |  |
                        | REACHABILITY_ALWAYS_REACHABLE |  |
                        | REACHABILITY_REACHABLE |  |
                        | REACHABILITY_UNREACHABLE |  |
                        | REACHABILITY_UNKNOWN |  |

                issueParentIds:
                    type: array
                    items:
                        type: string
                    description: Filters issues to those whose issue parent ids match any of the specified values. Applies to all types.
                validationStates:
                    enum:
                        - VALIDATION_STATE_CONFIRMED_VALID
                        - VALIDATION_STATE_CONFIRMED_INVALID
                        - VALIDATION_STATE_VALIDATION_ERROR
                        - VALIDATION_STATE_NO_VALIDATOR
                    type: array
                    items:
                        enum:
                            - VALIDATION_STATE_UNSPECIFIED
                            - VALIDATION_STATE_CONFIRMED_VALID
                            - VALIDATION_STATE_CONFIRMED_INVALID
                            - VALIDATION_STATE_VALIDATION_ERROR
                            - VALIDATION_STATE_NO_VALIDATOR
                        type: string
                        format: enum
                    description: |+
                        Filters secrets issues whose validation state matches one of the specified values. Only applies when the provided issue_type is SECRETS.

                        | value | description |
                        |-------|---------------|
                        | VALIDATION_STATE_CONFIRMED_VALID |  |
                        | VALIDATION_STATE_CONFIRMED_INVALID |  |
                        | VALIDATION_STATE_VALIDATION_ERROR |  |
                        | VALIDATION_STATE_NO_VALIDATOR |  |

                secretTypes:
                    type: array
                    items:
                        type: string
                    description: Filters secrets issues whose secret type matches one of the specified values. Only applies when the provided issue_type is SECRETS.
                repoVisibilities:
                    enum:
                        - REPOSITORY_VISIBILITY_PUBLIC
                        - REPOSITORY_VISIBILITY_PRIVATE
                        - REPOSITORY_VISIBILITY_UNKNOWN
                    type: array
                    items:
                        enum:
                            - REPOSITORY_VISIBILITY_UNSPECIFIED
                            - REPOSITORY_VISIBILITY_PUBLIC
                            - REPOSITORY_VISIBILITY_PRIVATE
                            - REPOSITORY_VISIBILITY_UNKNOWN
                        type: string
                        format: enum
                    description: |+
                        Filters secrets issues whose status matches one of the specified values. Only applies when the provided issue_type is SECRETS.

                        | value | description |
                        |-------|---------------|
                        | REPOSITORY_VISIBILITY_PUBLIC |  |
                        | REPOSITORY_VISIBILITY_PRIVATE |  |
                        | REPOSITORY_VISIBILITY_UNKNOWN |  |

                excludeHistorical:
                    type: boolean
                    description: Filters out historical secrets issues if true. Only applies when the provided issue_type is SECRETS.
                onPrimaryBranch:
                    type: boolean
                    description: Filter down to only issues that are - or are not - found on the default branch of their project.
                epssProbabilities:
                    enum:
                        - EPSS_PROBABILITY_LOW
                        - EPSS_PROBABILITY_MEDIUM
                        - EPSS_PROBABILITY_HIGH
                        - EPSS_PROBABILITY_NONE
                    type: array
                    items:
                        enum:
                            - EPSS_PROBABILITY_UNSPECIFIED
                            - EPSS_PROBABILITY_LOW
                            - EPSS_PROBABILITY_MEDIUM
                            - EPSS_PROBABILITY_HIGH
                            - EPSS_PROBABILITY_NONE
                        type: string
                        format: enum
                    description: |+
                        Filters supply chain issues whose corresponding EPSS scores fall in one of the specified buckets. Only applies when the provided issue_type is SCA.

                        | value | description |
                        |-------|---------------|
                        | EPSS_PROBABILITY_LOW |  |
                        | EPSS_PROBABILITY_MEDIUM |  |
                        | EPSS_PROBABILITY_HIGH |  |
                        | EPSS_PROBABILITY_NONE |  |

                triageReasons:
                    enum:
                        - FINDING_TRIAGE_REASON_FALSE_POSITIVE
                        - FINDING_TRIAGE_REASON_NO_TIME
                        - FINDING_TRIAGE_REASON_ACCEPTABLE_RISK
                        - FINDING_TRIAGE_REASON_NO_TRIAGE_REASON
                        - FINDING_TRIAGE_REASON_UNKNOWN
                        - FINDING_TRIAGE_REASON_DUPLICATE
                    type: array
                    items:
                        enum:
                            - FINDING_TRIAGE_REASON_UNSPECIFIED
                            - FINDING_TRIAGE_REASON_FALSE_POSITIVE
                            - FINDING_TRIAGE_REASON_NO_TIME
                            - FINDING_TRIAGE_REASON_ACCEPTABLE_RISK
                            - FINDING_TRIAGE_REASON_NO_TRIAGE_REASON
                            - FINDING_TRIAGE_REASON_UNKNOWN
                            - FINDING_TRIAGE_REASON_DUPLICATE
                        type: string
                        format: enum
                    description: |+
                        Filters issues whose triage reason matches one of the specified values. Applies to all issue types.

                        | value | description |
                        |-------|---------------|
                        | FINDING_TRIAGE_REASON_FALSE_POSITIVE |  |
                        | FINDING_TRIAGE_REASON_NO_TIME |  |
                        | FINDING_TRIAGE_REASON_ACCEPTABLE_RISK |  |
                        | FINDING_TRIAGE_REASON_NO_TRIAGE_REASON |  |
                        | FINDING_TRIAGE_REASON_UNKNOWN |  |
                        | FINDING_TRIAGE_REASON_DUPLICATE |  |

                timeFilter:
                    enum:
                        - TIME_FILTER_RELEVANT_SINCE
                        - TIME_FILTER_TRIAGED_AT
                        - TIME_FILTER_FIXED_AT
                    type: string
                    description: |+
                        Filters issues by date based on different attributes related to status changes or triaging

                        | value | description |
                        |-------|---------------|
                        | TIME_FILTER_RELEVANT_SINCE |  |
                        | TIME_FILTER_TRIAGED_AT |  |
                        | TIME_FILTER_FIXED_AT |  |

                    format: enum
                includeTicketed:
                    type: boolean
                    description: Filters issues based on if they have a nango_external_ticket associated with them
                backlogType:
                    enum:
                        - ISSUE_BACKLOG_TYPE_PROD
                        - ISSUE_BACKLOG_TYPE_PREPROD
                    type: string
                    description: |+
                        Filters issues to either all (prod), or only those with review comments (pre-prod). Only applies when the provided issue_type is SAST.
                         TODO: once experiment is successful, prod should mean only issues in actual production (very similar to on_primary_branch)
                         TODO: verify if review_comment is correct for SCA/SECRETS and enable this filter for those issue types too

                        | value | description |
                        |-------|---------------|
                        | ISSUE_BACKLOG_TYPE_PROD |  |
                        | ISSUE_BACKLOG_TYPE_PREPROD |  |

                    format: enum
                scaRuleKind:
                    enum:
                        - SCA_RULE_KIND_REACHABLE
                        - SCA_RULE_KIND_UPGRADE_ONLY
                        - SCA_RULE_KIND_MALICIOUS_DEPENDENCY
                        - SCA_RULE_KIND_LEGACY
                    type: array
                    items:
                        enum:
                            - SCA_RULE_KIND_UNSPECIFIED
                            - SCA_RULE_KIND_REACHABLE
                            - SCA_RULE_KIND_UPGRADE_ONLY
                            - SCA_RULE_KIND_MALICIOUS_DEPENDENCY
                            - SCA_RULE_KIND_LEGACY
                        type: string
                        format: enum
                    description: |+
                        Filters supply chain issues by its kind (malicious dependency, reachable, upgrade-only, legacy). Only applies when the provided issue_type is SCA.

                        | value | description |
                        |-------|---------------|
                        | SCA_RULE_KIND_REACHABLE |  |
                        | SCA_RULE_KIND_UPGRADE_ONLY |  |
                        | SCA_RULE_KIND_MALICIOUS_DEPENDENCY |  |
                        | SCA_RULE_KIND_LEGACY |  |

                aiMemoryWillFlipVerdict:
                    type: string
                    description: Filters issues where a given memory ID's preanalysi shows the AI verdict would change. Supports only one memory ID at a time.
                aiMemoryReferenced:
                    type: string
                    description: Filters issues to those which have an AI memory referenced. Applies to SAST issues only.
                includeAiMemoryRendered:
                    type: boolean
                    description: Filters for issues based on if they have any AI memory rendered. Applies to SAST issues only.
                aiMemoryRendered:
                    type: string
                    description: Filters issues to those which have a specific AI memory rendered. Applies to SAST issues only.
                memoryIdInScope:
                    type: string
                    description: Filters to issues that are in scope of the given memory. Applies to SAST issues only.
                relativeSince:
                    enum:
                        - RELATIVE_SINCE_ONE_DAY
                        - RELATIVE_SINCE_ONE_WEEK
                        - RELATIVE_SINCE_ONE_MONTH
                        - RELATIVE_SINCE_THREE_MONTHS
                        - RELATIVE_SINCE_SIX_MONTHS
                        - RELATIVE_SINCE_ONE_YEAR
                        - RELATIVE_SINCE_ALL_TIME
                        - RELATIVE_SINCE_ONE_MINUTE
                    type: string
                    description: |+
                        Filters issues relevant since the specified relative time. Applies to all issue types.

                        | value | description |
                        |-------|---------------|
                        | RELATIVE_SINCE_ONE_DAY |  |
                        | RELATIVE_SINCE_ONE_WEEK |  |
                        | RELATIVE_SINCE_ONE_MONTH |  |
                        | RELATIVE_SINCE_THREE_MONTHS |  |
                        | RELATIVE_SINCE_SIX_MONTHS |  |
                        | RELATIVE_SINCE_ONE_YEAR |  |
                        | RELATIVE_SINCE_ALL_TIME |  |
                        | RELATIVE_SINCE_ONE_MINUTE |  |

                    format: enum
                repositoryDeploymentStatuses:
                    enum:
                        - DEPLOYMENT_STATUS_UNKNOWN
                        - DEPLOYMENT_STATUS_DEPLOYED
                        - DEPLOYMENT_STATUS_NOT_DEPLOYED
                    type: array
                    items:
                        enum:
                            - DEPLOYMENT_STATUS_UNSPECIFIED
                            - DEPLOYMENT_STATUS_UNKNOWN
                            - DEPLOYMENT_STATUS_DEPLOYED
                            - DEPLOYMENT_STATUS_NOT_DEPLOYED
                        type: string
                        format: enum
                    description: |+
                        Filters issues to whose projects are deployed in an environment. Applies to all issue types.

                        | value | description |
                        |-------|---------------|
                        | DEPLOYMENT_STATUS_UNKNOWN |  |
                        | DEPLOYMENT_STATUS_DEPLOYED |  |
                        | DEPLOYMENT_STATUS_NOT_DEPLOYED |  |

                upgradeGuidance:
                    enum:
                        - BREAKING_CHANGE_TYPE_PARAMETER_CHANGE
                        - BREAKING_CHANGE_TYPE_FUNCTION_OR_CLASS_REMOVAL
                        - BREAKING_CHANGE_TYPE_FUNCTION_RENAME
                        - BREAKING_CHANGE_TYPE_LOGIC_CHANGE
                        - BREAKING_CHANGE_TYPE_NOT_BREAKING
                    type: array
                    items:
                        enum:
                            - BREAKING_CHANGE_TYPE_UNSPECIFIED
                            - BREAKING_CHANGE_TYPE_PARAMETER_CHANGE
                            - BREAKING_CHANGE_TYPE_FUNCTION_OR_CLASS_REMOVAL
                            - BREAKING_CHANGE_TYPE_FUNCTION_RENAME
                            - BREAKING_CHANGE_TYPE_LOGIC_CHANGE
                            - BREAKING_CHANGE_TYPE_NOT_BREAKING
                        type: string
                        format: enum
                    description: |+
                        Filters supply chain issues whose upgrade guidance matches one of the specified values. Only applies when the provided issue_type is SCA.
                         Deprecated in favor of `upgrade_guidance_filters`.

                        | value | description |
                        |-------|---------------|
                        | BREAKING_CHANGE_TYPE_PARAMETER_CHANGE | The symbol has a breaking change due to a change in the parameters of the function. This includes changes in the number of parameters, their names, their types, etc. |
                        | BREAKING_CHANGE_TYPE_FUNCTION_OR_CLASS_REMOVAL | The symbol has a breaking change due to the removal of a function or class. This means that the function or class is no longer available in the target version. |
                        | BREAKING_CHANGE_TYPE_FUNCTION_RENAME | The symbol has a breaking change due to a change in the name of the function or class. |
                        | BREAKING_CHANGE_TYPE_LOGIC_CHANGE | The symbol has a breaking change due to a change in the logic of the function or class. This means that the function or class still exists, but its behavior has changed in a way that may affect the code that uses it. |
                        | BREAKING_CHANGE_TYPE_NOT_BREAKING | The symbol does not have a breaking change, meaning it can be used in the target version without any issues. |

                repositoryPublicExposures:
                    enum:
                        - PUBLIC_EXPOSURE_UNKNOWN
                        - PUBLIC_EXPOSURE_PUBLIC
                        - PUBLIC_EXPOSURE_NOT_PUBLIC
                    type: array
                    items:
                        enum:
                            - PUBLIC_EXPOSURE_UNSPECIFIED
                            - PUBLIC_EXPOSURE_UNKNOWN
                            - PUBLIC_EXPOSURE_PUBLIC
                            - PUBLIC_EXPOSURE_NOT_PUBLIC
                        type: string
                        format: enum
                    description: |+
                        Filters issues to those whose deployed services are publicly accessible. Applies to all issue types.

                        | value | description |
                        |-------|---------------|
                        | PUBLIC_EXPOSURE_UNKNOWN |  |
                        | PUBLIC_EXPOSURE_PUBLIC |  |
                        | PUBLIC_EXPOSURE_NOT_PUBLIC |  |

                clickToFixPrStates:
                    enum:
                        - CLICK_TO_FIX_PR_STATE_OPEN
                        - CLICK_TO_FIX_PR_STATE_MERGED
                        - CLICK_TO_FIX_PR_STATE_NO_PR
                    type: array
                    items:
                        enum:
                            - CLICK_TO_FIX_PR_STATE_UNSPECIFIED
                            - CLICK_TO_FIX_PR_STATE_OPEN
                            - CLICK_TO_FIX_PR_STATE_MERGED
                            - CLICK_TO_FIX_PR_STATE_NO_PR
                        type: string
                        format: enum
                    description: |+
                        Filters issues by their Click to Fix PR state. Only applies when the provided issue_type is SAST or SCA.

                        | value | description |
                        |-------|---------------|
                        | CLICK_TO_FIX_PR_STATE_OPEN |  |
                        | CLICK_TO_FIX_PR_STATE_MERGED |  |
                        | CLICK_TO_FIX_PR_STATE_NO_PR |  |

                advisoryIds:
                    type: array
                    items:
                        type: string
                    description: Filters supply chain issues by advisory IDs (CVE, GHSA, MAL, etc.). Only applies when the provided issue_type is SCA.
                aggregateIssueStates:
                    enum:
                        - AGGREGATE_ISSUE_STATE_OPEN
                        - AGGREGATE_ISSUE_STATE_FIXED
                        - AGGREGATE_ISSUE_STATE_REMOVED
                        - AGGREGATE_ISSUE_STATE_IGNORED_APP
                        - AGGREGATE_ISSUE_STATE_IGNORED_CODE
                        - AGGREGATE_ISSUE_STATE_UNKNOWN
                        - AGGREGATE_ISSUE_STATE_REVIEWING
                        - AGGREGATE_ISSUE_STATE_FIXING
                        - AGGREGATE_ISSUE_STATE_PROVISIONALLY_IGNORED_APP
                    type: array
                    items:
                        enum:
                            - AGGREGATE_ISSUE_STATE_UNSPECIFIED
                            - AGGREGATE_ISSUE_STATE_OPEN
                            - AGGREGATE_ISSUE_STATE_FIXED
                            - AGGREGATE_ISSUE_STATE_REMOVED
                            - AGGREGATE_ISSUE_STATE_IGNORED_APP
                            - AGGREGATE_ISSUE_STATE_IGNORED_CODE
                            - AGGREGATE_ISSUE_STATE_UNKNOWN
                            - AGGREGATE_ISSUE_STATE_REVIEWING
                            - AGGREGATE_ISSUE_STATE_FIXING
                            - AGGREGATE_ISSUE_STATE_PROVISIONALLY_IGNORED_APP
                        type: string
                        format: enum
                    description: |+
                        Filters issues whose aggregate state matches one of the specified values. Applies to all issue types.
                         Only supported in the Duplo code path.

                        | value | description |
                        |-------|---------------|
                        | AGGREGATE_ISSUE_STATE_OPEN |  |
                        | AGGREGATE_ISSUE_STATE_FIXED |  |
                        | AGGREGATE_ISSUE_STATE_REMOVED |  |
                        | AGGREGATE_ISSUE_STATE_IGNORED_APP |  |
                        | AGGREGATE_ISSUE_STATE_IGNORED_CODE |  |
                        | AGGREGATE_ISSUE_STATE_UNKNOWN |  |
                        | AGGREGATE_ISSUE_STATE_REVIEWING |  |
                        | AGGREGATE_ISSUE_STATE_FIXING |  |
                        | AGGREGATE_ISSUE_STATE_PROVISIONALLY_IGNORED_APP |  |

                upgradeGuidanceFilters:
                    enum:
                        - UPGRADE_GUIDANCE_SELECTION_SAFE
                        - UPGRADE_GUIDANCE_SELECTION_BREAKING
                    type: array
                    items:
                        enum:
                            - UPGRADE_GUIDANCE_SELECTION_UNSPECIFIED
                            - UPGRADE_GUIDANCE_SELECTION_SAFE
                            - UPGRADE_GUIDANCE_SELECTION_BREAKING
                        type: string
                        format: enum
                    description: |+
                        Filters supply chain issues by generic upgrade guidance selections (safe or breaking). Only applies when the provided issue_type is SCA.

                        | value | description |
                        |-------|---------------|
                        | UPGRADE_GUIDANCE_SELECTION_SAFE |  |
                        | UPGRADE_GUIDANCE_SELECTION_BREAKING |  |

                filterIssueTypes:
                    enum:
                        - ISSUE_TYPE_SAST
                        - ISSUE_TYPE_SCA
                        - ISSUE_TYPE_SECRETS
                        - ISSUE_TYPE_RESEARCH
                        - ISSUE_TYPE_AI_SAST
                    type: array
                    items:
                        enum:
                            - ISSUE_TYPE_UNSPECIFIED
                            - ISSUE_TYPE_SAST
                            - ISSUE_TYPE_SCA
                            - ISSUE_TYPE_SECRETS
                            - ISSUE_TYPE_RESEARCH
                            - ISSUE_TYPE_AI_SAST
                        type: string
                        format: enum
                    description: |+
                        Frontend-only: this field is included in IssuesFilter to leverage proto-generated TypeScript
                         types for filter state management and URL serialization. When non-empty, restricts the duplo
                         combined Code view to show only the specified issue types. The backend ignores this field.

                        | value | description |
                        |-------|---------------|
                        | ISSUE_TYPE_SAST | Detected by Code rules |
                        | ISSUE_TYPE_SCA | Detected by Supply Chain rules |
                        | ISSUE_TYPE_SECRETS | Detected by Secrets rules |
                        | ISSUE_TYPE_RESEARCH | Detected by research rules or scanners |
                        | ISSUE_TYPE_AI_SAST | Detected by AI detection code scanning |

                filePaths:
                    type: array
                    items:
                        type: string
                    description: |-
                        Fuzzy file path search. Filters issues whose file path matches one of the specified values using
                         analyzed text search (splits on / . _ - etc. and supports typo tolerance). Only works when
                         Duplo is enabled for the deployment — ignored otherwise. Accepts an array of strings but
                         currently only the first value is used.
                includeArchived:
                    type: boolean
                    description: |-
                        When true, include findings on archived projects in results. By default
                         (unset/false), findings on archived projects are hidden from all product
                         tabs and their counts — but only for deployments that have archived
                         projects (gated by the `appex.has_archived_projects` config). Applies to
                         all issue types. Archival is a separate dimension from aggregate state, so
                         this is an independent toggle rather than an `aggregate_issue_states` value.
        protos.issues.v1.ListIssueGroupsRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                    description: Specifies the deployment to which the issues belong.
                issueType:
                    enum:
                        - ISSUE_TYPE_SAST
                        - ISSUE_TYPE_SCA
                        - ISSUE_TYPE_SECRETS
                        - ISSUE_TYPE_RESEARCH
                        - ISSUE_TYPE_AI_SAST
                    type: string
                    description: |+
                        Deprecated: use issue_types instead. Filters issues to those with the specified type.

                        | value | description |
                        |-------|---------------|
                        | ISSUE_TYPE_SAST | Detected by Code rules |
                        | ISSUE_TYPE_SCA | Detected by Supply Chain rules |
                        | ISSUE_TYPE_SECRETS | Detected by Secrets rules |
                        | ISSUE_TYPE_RESEARCH | Detected by research rules or scanners |
                        | ISSUE_TYPE_AI_SAST | Detected by AI detection code scanning |

                    format: enum
                groupBy:
                    enum:
                        - GROUP_BY_RULE
                    type: string
                    description: |+
                        Specifies how to group the issues in the response.

                        | value | description |
                        |-------|---------------|
                        | GROUP_BY_RULE |  |

                    format: enum
                limit:
                    type: integer
                    description: Sets the page size of the paginated list of issues.
                    format: int64
                cursor:
                    type: string
                    description: Cursor used for pagination -- passing no value or an empty string effectively requests the first page.
                filter:
                    allOf:
                        - $ref: '#/components/schemas/protos.issues.v1.IssuesFilter'
                    description: Filters the issues to search and group.
                sortBy:
                    enum:
                        - SORT_BY_ISSUE_COUNTS
                        - SORT_BY_SEVERITY
                    type: string
                    description: |+
                        Specifies how to sort the issue groups.

                        | value | description |
                        |-------|---------------|
                        | SORT_BY_ISSUE_COUNTS |  |
                        | SORT_BY_SEVERITY |  |

                    format: enum
                sortDirection:
                    enum:
                        - SORT_DIRECTION_ASC
                        - SORT_DIRECTION_DESC
                    type: string
                    description: |+
                        Specifies the direction to sort the results.

                        | value | description |
                        |-------|---------------|
                        | SORT_DIRECTION_ASC |  |
                        | SORT_DIRECTION_DESC |  |

                    format: enum
                issueTypes:
                    enum:
                        - ISSUE_TYPE_SAST
                        - ISSUE_TYPE_SCA
                        - ISSUE_TYPE_SECRETS
                        - ISSUE_TYPE_RESEARCH
                        - ISSUE_TYPE_AI_SAST
                    type: array
                    items:
                        enum:
                            - ISSUE_TYPE_UNSPECIFIED
                            - ISSUE_TYPE_SAST
                            - ISSUE_TYPE_SCA
                            - ISSUE_TYPE_SECRETS
                            - ISSUE_TYPE_RESEARCH
                            - ISSUE_TYPE_AI_SAST
                        type: string
                        format: enum
                    description: |+
                        Filters issues to those with any of the specified types (based on the product which produced these issues).
                         When empty, falls back to the deprecated issue_type field for backward compatibility.

                        | value | description |
                        |-------|---------------|
                        | ISSUE_TYPE_SAST | Detected by Code rules |
                        | ISSUE_TYPE_SCA | Detected by Supply Chain rules |
                        | ISSUE_TYPE_SECRETS | Detected by Secrets rules |
                        | ISSUE_TYPE_RESEARCH | Detected by research rules or scanners |
                        | ISSUE_TYPE_AI_SAST | Detected by AI detection code scanning |

        protos.issues.v1.ListIssueGroupsResponse:
            type: object
            properties:
                groups:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.issues.v1.ListIssueGroupsResponse_RuleGroup'
                cursor:
                    type: string
                total:
                    type: string
                fetched:
                    type: string
        protos.issues.v1.ListIssueGroupsResponse_Rule:
            type: object
            properties:
                ruleId:
                    type: string
                ruleVersionId:
                    type: string
                origin:
                    enum:
                        - RULE_ORIGIN_CUSTOM
                        - RULE_ORIGIN_COMMUNITY
                        - RULE_ORIGIN_PRO_RULES
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | RULE_ORIGIN_CUSTOM |  |
                        | RULE_ORIGIN_COMMUNITY |  |
                        | RULE_ORIGIN_PRO_RULES |  |

                    format: enum
        protos.issues.v1.ListIssueGroupsResponse_RuleGroup:
            type: object
            properties:
                issuesCount:
                    type: string
                ruleId:
                    type: string
                ruleShaSum:
                    type: string
                ruleVisibility:
                    enum:
                        - RULE_VISIBILITY_UNLISTED
                        - RULE_VISIBILITY_PUBLIC
                        - RULE_VISIBILITY_ORG_PRIVATE
                        - RULE_VISIBILITY_LOGGED_IN
                        - RULE_VISIBILITY_TEAM_TIER
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | RULE_VISIBILITY_UNLISTED |  |
                        | RULE_VISIBILITY_PUBLIC |  |
                        | RULE_VISIBILITY_ORG_PRIVATE |  |
                        | RULE_VISIBILITY_LOGGED_IN |  |
                        | RULE_VISIBILITY_TEAM_TIER |  |

                    format: enum
                ruleMeta:
                    $ref: '#/components/schemas/protos.issues.v1.ListIssueGroupsResponse_RuleMeta'
                ruleLastChangeAt:
                    type: string
                    format: date-time
                ruleLastChangeBy:
                    type: string
                rulePath:
                    type: string
                ruleSourceUri:
                    type: string
                ruleTestCases:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.issues.v1.RuleGroup_TestCase'
                ruleDefinition:
                    type: object
                    description: 'TODO: either flesh this out or remove this field to make room for a more concise, readable field (or reference)'
                ruleDeploymentName:
                    type: string
                ruleSupersededBy:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.issues.v1.SupersededRule'
                    description: |-
                        The information for what rules this rule may be "superseded by".
                         See https://www.notion.so/semgrep/Superseded-Rules-7d52c86d82ed466a9a1044d478e058d3?pvs=4
                sastAttributes:
                    allOf:
                        - $ref: '#/components/schemas/protos.issues.v1.RuleGroup_SastAttributes'
                    description: Only set for code issues (i.e. if issue_type == `SAST`)
                scaAttributes:
                    allOf:
                        - $ref: '#/components/schemas/protos.issues.v1.RuleGroup_ScaAttributes'
                    description: Only set for supply chain issues (i.e. if issue_type == `SCA`)
                secretsAttributes:
                    allOf:
                        - $ref: '#/components/schemas/protos.issues.v1.RuleGroup_SecretsAttributes'
                    description: Only set for secrets issues (i.e. if issue_type == `SECRETS`)
        protos.issues.v1.ListIssueGroupsResponse_RuleMeta:
            type: object
            properties:
                author:
                    type: string
                authorPhotoUrl:
                    type: string
                rule:
                    $ref: '#/components/schemas/protos.issues.v1.ListIssueGroupsResponse_Rule'
        protos.issues.v1.ListIssuesRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                    description: Specifies the deployment to which the issues belong.
                issueType:
                    enum:
                        - ISSUE_TYPE_SAST
                        - ISSUE_TYPE_SCA
                        - ISSUE_TYPE_SECRETS
                        - ISSUE_TYPE_RESEARCH
                        - ISSUE_TYPE_AI_SAST
                    type: string
                    description: |+
                        Deprecated: use issue_types instead. Filters issues to those with the specified type.

                        | value | description |
                        |-------|---------------|
                        | ISSUE_TYPE_SAST | Detected by Code rules |
                        | ISSUE_TYPE_SCA | Detected by Supply Chain rules |
                        | ISSUE_TYPE_SECRETS | Detected by Secrets rules |
                        | ISSUE_TYPE_RESEARCH | Detected by research rules or scanners |
                        | ISSUE_TYPE_AI_SAST | Detected by AI detection code scanning |

                    format: enum
                sortBy:
                    enum:
                        - SORT_BY_SEVERITY
                        - SORT_BY_REF
                        - SORT_BY_REPO
                        - SORT_BY_RULE
                        - SORT_BY_RELEVANT_SINCE
                        - SORT_BY_STATE
                    type: string
                    description: |+
                        Specifies the field to sort the results by.

                        | value | description |
                        |-------|---------------|
                        | SORT_BY_SEVERITY |  |
                        | SORT_BY_REF |  |
                        | SORT_BY_REPO |  |
                        | SORT_BY_RULE |  |
                        | SORT_BY_RELEVANT_SINCE |  |
                        | SORT_BY_STATE |  |

                    format: enum
                sortDirection:
                    enum:
                        - SORT_DIRECTION_ASC
                        - SORT_DIRECTION_DESC
                    type: string
                    description: |+
                        Specifies the direction to sort the results.

                        | value | description |
                        |-------|---------------|
                        | SORT_DIRECTION_ASC |  |
                        | SORT_DIRECTION_DESC |  |

                    format: enum
                limit:
                    type: integer
                    description: Sets the page size of the paginated list of issues.
                    format: int64
                cursor:
                    type: string
                    description: Cursor used for pagination -- passing no value or an empty string effectively requests the first page.
                filter:
                    allOf:
                        - $ref: '#/components/schemas/protos.issues.v1.IssuesFilter'
                    description: Filters the issues to list.
                issueTypes:
                    enum:
                        - ISSUE_TYPE_SAST
                        - ISSUE_TYPE_SCA
                        - ISSUE_TYPE_SECRETS
                        - ISSUE_TYPE_RESEARCH
                        - ISSUE_TYPE_AI_SAST
                    type: array
                    items:
                        enum:
                            - ISSUE_TYPE_UNSPECIFIED
                            - ISSUE_TYPE_SAST
                            - ISSUE_TYPE_SCA
                            - ISSUE_TYPE_SECRETS
                            - ISSUE_TYPE_RESEARCH
                            - ISSUE_TYPE_AI_SAST
                        type: string
                        format: enum
                    description: |+
                        Filters issues to those with any of the specified types (based on the product which produced these issues).
                         When empty, falls back to the deprecated issue_type field for backward compatibility.

                        | value | description |
                        |-------|---------------|
                        | ISSUE_TYPE_SAST | Detected by Code rules |
                        | ISSUE_TYPE_SCA | Detected by Supply Chain rules |
                        | ISSUE_TYPE_SECRETS | Detected by Secrets rules |
                        | ISSUE_TYPE_RESEARCH | Detected by research rules or scanners |
                        | ISSUE_TYPE_AI_SAST | Detected by AI detection code scanning |

                includeRemediation:
                    type: boolean
                    description: |-
                        When true, include AI remediation info (autofix and guidance) for each
                         issue in the response. Defaults to false.
                includeActivityHistory:
                    type: boolean
                    description: |-
                        When true, include activity history (status changes, triage events, etc.) for each
                         issue in the response. Defaults to false.
                includeIsArchived:
                    type: boolean
                    description: |-
                        When true, populate the is_archived field on each issue in the response.
                         Defaults to false.
        protos.issues.v1.ListIssuesResponse:
            type: object
            properties:
                issues:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.issues.v1.ListIssuesResponse_IssueSummary'
                cursor:
                    type: string
        protos.issues.v1.ListIssuesResponse_IssueSummary:
            type: object
            properties:
                issue:
                    $ref: '#/components/schemas/protos.issues.v1.Issue'
                reviewCount:
                    type: string
                triageCount:
                    type: string
                allRefs:
                    type: array
                    items:
                        type: string
                aiSilencedCount:
                    type: string
                allReviewThreadIds:
                    type: array
                    items:
                        type: string
                allReviewComments:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.issues.v1.ListIssuesResponse_ReviewComment'
        protos.issues.v1.ListIssuesResponse_ReviewComment:
            type: object
            properties:
                isInline:
                    type: boolean
                threadId:
                    type: string
        protos.issues.v1.RepositoryRefFilterItemGroup_RepoRef:
            type: object
            properties:
                id:
                    type: string
                refName:
                    type: string
                isPrimary:
                    type: boolean
        protos.issues.v1.RuleFilterItem:
            type: object
            properties:
                id:
                    type: string
                    description: the numeric ID of the rule
                name:
                    type: string
                    description: a human-readable name for the rule
                scaCve:
                    type: string
                    description: set when the rule is a SCA rule and it has an associated CVE
                scaGhsa:
                    type: string
                    description: set when the rule is a SCA rule and it has an associated GHSA
        protos.issues.v1.RuleGroup_SastAttributes:
            type: object
            properties: {}
        protos.issues.v1.RuleGroup_ScaAttributes:
            type: object
            properties:
                epssScore:
                    allOf:
                        - $ref: '#/components/schemas/protos.sca.v1.EpssScore'
                    description: the exploit prediction score associated with the issue's corresponding CVE calculated by https://www.first.org/epss/ (only present if the issue is associated with a CVE)
        protos.issues.v1.RuleGroup_SecretsAttributes:
            type: object
            properties: {}
        protos.issues.v1.RuleGroup_TestCase:
            type: object
            properties:
                target:
                    type: string
                language:
                    type: string
        protos.issues.v1.ScaAttributes_FixRecommendation:
            type: object
            properties:
                package:
                    type: string
                version:
                    type: string
        protos.issues.v1.ScaAttributes_FoundDependency:
            type: object
            properties:
                package:
                    type: string
                    description: Name of the dependency's package
                version:
                    type: string
                    description: The Version of the dependency
                transitivity:
                    enum:
                        - UNKNOWN_TRANSITIVITY
                        - TRANSITIVE
                        - DIRECT
                    type: string
                    description: |+
                        The transitivity (whether or not a dependency is directly imported into a project) of the dependency

                        | value | description |
                        |-------|---------------|
                        | UNKNOWN_TRANSITIVITY |  |
                        | TRANSITIVE |  |
                        | DIRECT |  |

                    format: enum
                lockfileLineUrl:
                    type: string
                    description: The URL (on the SCM) to the line in the lockfile at which the dependency is defined (might not exist if the dependency was surfaced in a non SCM context)
                filePath:
                    type: string
                    description: The relative path (from the project root) to the lockfile in which the dependency is defined
                ecosystem:
                    enum:
                        - no_package_manager
                        - npm
                        - pypi
                        - gomod
                        - cargo
                        - maven
                        - gem
                        - composer
                        - nuget
                        - pub
                        - swiftpm
                        - hex
                        - cocoapods
                        - mix
                        - opam
                    type: string
                    description: |+
                        Package ecosystem (enum defined in sca/vi/sca.proto) to which the dependency belongs

                        | value | description |
                        |-------|---------------|
                        | no_package_manager |  |
                        | npm |  |
                        | pypi |  |
                        | gomod |  |
                        | cargo |  |
                        | maven |  |
                        | gem |  |
                        | composer |  |
                        | nuget |  |
                        | pub |  |
                        | swiftpm |  |
                        | hex |  |
                        | cocoapods |  |
                        | mix |  |
                        | opam |  |

                    format: enum
                manifestFilePath:
                    type: string
                    description: The relative path (from the project root) to the manifest file which defines the subproject which the dependency is part of
        protos.issues.v1.ScaAttributes_IntroducingDependency:
            type: object
            properties:
                package:
                    type: string
                version:
                    type: string
            description: A direct dependency that pulls in a transitive dependency, making it part of the dependency tree.
        protos.issues.v1.ScaAttributes_ScaMatchInfo:
            type: object
            properties:
                matchKind:
                    enum:
                        - SCA_MATCH_KIND_LOCKFILE_ONLY
                        - SCA_MATCH_KIND_DIRECT_REACHABLE
                        - SCA_MATCH_KIND_DIRECT_UNREACHABLE
                        - SCA_MATCH_KIND_TRANSITIVE_REACHABLE
                        - SCA_MATCH_KIND_TRANSITIVE_UNREACHABLE
                        - SCA_MATCH_KIND_TRANSITIVE_UNDETERMINED
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | SCA_MATCH_KIND_LOCKFILE_ONLY |  |
                        | SCA_MATCH_KIND_DIRECT_REACHABLE |  |
                        | SCA_MATCH_KIND_DIRECT_UNREACHABLE |  |
                        | SCA_MATCH_KIND_TRANSITIVE_REACHABLE |  |
                        | SCA_MATCH_KIND_TRANSITIVE_UNREACHABLE |  |
                        | SCA_MATCH_KIND_TRANSITIVE_UNDETERMINED |  |

                    format: enum
                analyzedPackages:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.issues.v1.ScaAttributes_FoundDependency'
                transitiveMatches:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.issues.v1.ScaMatchInfo_TransitiveMatch'
        protos.issues.v1.ScaMatchInfo_TransitiveMatch:
            type: object
            properties:
                dependency:
                    $ref: '#/components/schemas/protos.issues.v1.ScaAttributes_FoundDependency'
                path:
                    type: string
                line:
                    type: string
        protos.issues.v1.SupersededRule:
            type: object
            properties:
                product:
                    enum:
                        - RULE_TYPE_SAST
                        - RULE_TYPE_SCA
                        - RULE_TYPE_SECRETS
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | RULE_TYPE_SAST |  |
                        | RULE_TYPE_SCA |  |
                        | RULE_TYPE_SECRETS |  |

                    format: enum
                rulePath:
                    type: string
            description: This represents the information of a rule which may supersede another.
        protos.issues.v1.UpdateFindingParams:
            type: object
            properties:
                triageState:
                    enum:
                        - FINDING_TRIAGE_STATE_UNTRIAGED
                        - FINDING_TRIAGE_STATE_IGNORED
                        - FINDING_TRIAGE_STATE_REOPENED
                        - FINDING_TRIAGE_STATE_UNKNOWN
                        - FINDING_TRIAGE_STATE_REVIEWING
                        - FINDING_TRIAGE_STATE_FIXING
                        - FINDING_TRIAGE_STATE_PROVISIONALLY_IGNORED
                    type: string
                    description: |+
                        New triage state for the finding.

                        | value | description |
                        |-------|---------------|
                        | FINDING_TRIAGE_STATE_UNTRIAGED |  |
                        | FINDING_TRIAGE_STATE_IGNORED |  |
                        | FINDING_TRIAGE_STATE_REOPENED |  |
                        | FINDING_TRIAGE_STATE_UNKNOWN |  |
                        | FINDING_TRIAGE_STATE_REVIEWING |  |
                        | FINDING_TRIAGE_STATE_FIXING |  |
                        | FINDING_TRIAGE_STATE_PROVISIONALLY_IGNORED |  |

                    format: enum
                triageReason:
                    enum:
                        - FINDING_TRIAGE_REASON_FALSE_POSITIVE
                        - FINDING_TRIAGE_REASON_NO_TIME
                        - FINDING_TRIAGE_REASON_ACCEPTABLE_RISK
                        - FINDING_TRIAGE_REASON_NO_TRIAGE_REASON
                        - FINDING_TRIAGE_REASON_UNKNOWN
                        - FINDING_TRIAGE_REASON_DUPLICATE
                    type: string
                    description: |+
                        Optional reason for why the finding was triaged.

                        | value | description |
                        |-------|---------------|
                        | FINDING_TRIAGE_REASON_FALSE_POSITIVE |  |
                        | FINDING_TRIAGE_REASON_NO_TIME |  |
                        | FINDING_TRIAGE_REASON_ACCEPTABLE_RISK |  |
                        | FINDING_TRIAGE_REASON_NO_TRIAGE_REASON |  |
                        | FINDING_TRIAGE_REASON_UNKNOWN |  |
                        | FINDING_TRIAGE_REASON_DUPLICATE |  |

                    format: enum
                note:
                    type: string
                    description: Optional note for why the finding was triaged.
        protos.issues.v1.UpdateFindingsRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                    description: Specifies the deployment to which the findings belong.
                issueType:
                    enum:
                        - ISSUE_TYPE_SAST
                        - ISSUE_TYPE_SCA
                        - ISSUE_TYPE_SECRETS
                        - ISSUE_TYPE_RESEARCH
                        - ISSUE_TYPE_AI_SAST
                    type: string
                    description: |+
                        Deprecated: use issue_types instead. Filters findings to those with the specified type (based on the product which produced these issues).

                        | value | description |
                        |-------|---------------|
                        | ISSUE_TYPE_SAST | Detected by Code rules |
                        | ISSUE_TYPE_SCA | Detected by Supply Chain rules |
                        | ISSUE_TYPE_SECRETS | Detected by Secrets rules |
                        | ISSUE_TYPE_RESEARCH | Detected by research rules or scanners |
                        | ISSUE_TYPE_AI_SAST | Detected by AI detection code scanning |

                    format: enum
                filter:
                    allOf:
                        - $ref: '#/components/schemas/protos.issues.v1.IssuesFilter'
                    description: Filters the findings to match search logic.
                params:
                    allOf:
                        - $ref: '#/components/schemas/protos.issues.v1.UpdateFindingParams'
                    description: Params used to update the list of findings.
                issueTypes:
                    enum:
                        - ISSUE_TYPE_SAST
                        - ISSUE_TYPE_SCA
                        - ISSUE_TYPE_SECRETS
                        - ISSUE_TYPE_RESEARCH
                        - ISSUE_TYPE_AI_SAST
                    type: array
                    items:
                        enum:
                            - ISSUE_TYPE_UNSPECIFIED
                            - ISSUE_TYPE_SAST
                            - ISSUE_TYPE_SCA
                            - ISSUE_TYPE_SECRETS
                            - ISSUE_TYPE_RESEARCH
                            - ISSUE_TYPE_AI_SAST
                        type: string
                        format: enum
                    description: |+
                        Filters findings to those with any of the specified types.
                         When empty, falls back to the deprecated issue_type field for backward compatibility.

                        | value | description |
                        |-------|---------------|
                        | ISSUE_TYPE_SAST | Detected by Code rules |
                        | ISSUE_TYPE_SCA | Detected by Supply Chain rules |
                        | ISSUE_TYPE_SECRETS | Detected by Secrets rules |
                        | ISSUE_TYPE_RESEARCH | Detected by research rules or scanners |
                        | ISSUE_TYPE_AI_SAST | Detected by AI detection code scanning |

        protos.issues.v1.UpdateFindingsResponse:
            type: object
            properties:
                issueParentCount:
                    type: integer
                    description: Number of issue parents triaged.
                    format: int64
                issueCount:
                    type: integer
                    description: Number of issues triaged across parents.
                    format: int64
                updatedCount:
                    type: integer
                    description: Number of issues updated successfully.
                    format: int64
                numIgnored:
                    type: integer
                    description: |-
                        Per-permission breakdown when a bulk ignore is split by the developer's
                         per-issue triage permission (only populated for ignore actions when the
                         developer exception-approvals feature is enabled).
                         Number of issues ignored directly.
                    format: int64
                numExceptionsRequested:
                    type: integer
                    description: |-
                        Number of issues for which an exception request was created instead of an
                         ignore (developer has request-only permission).
                    format: int64
                numSkipped:
                    type: integer
                    description: Number of issues skipped because the developer cannot triage them.
                    format: int64
        protos.managed_scan_settings.v2.CreateManagedScanSettingsRequest:
            type: object
            properties:
                deploymentId:
                    type: integer
                    format: int64
                managedScanSettings:
                    $ref: '#/components/schemas/protos.managed_scan_settings.v2.ManagedScanSettings'
        protos.managed_scan_settings.v2.CreateManagedScanSettingsResponse:
            type: object
            properties:
                managedScanSettings:
                    $ref: '#/components/schemas/protos.managed_scan_settings.v2.ManagedScanSettings'
        protos.managed_scan_settings.v2.DeleteManagedScanSettingsResponse:
            type: object
            properties: {}
        protos.managed_scan_settings.v2.GetManagedScanSettingsResponse:
            type: object
            properties:
                managedScanSettings:
                    $ref: '#/components/schemas/protos.managed_scan_settings.v2.ManagedScanSettings'
        protos.managed_scan_settings.v2.ManagedScanSettings:
            type: object
            properties:
                id:
                    type: integer
                    format: int64
                deploymentId:
                    type: integer
                    format: int64
                failOpen:
                    type: boolean
                failOpenTimeout:
                    pattern: ^-?(?:0|[1-9][0-9]{0,11})(?:\.[0-9]{1,9})?s$
                    type: string
        protos.managed_scan_settings.v2.UpdateManagedScanSettingsRequest:
            type: object
            properties:
                deploymentId:
                    type: integer
                    format: int64
                managedScanSettingsId:
                    type: integer
                    format: int64
                managedScanSettings:
                    $ref: '#/components/schemas/protos.managed_scan_settings.v2.ManagedScanSettings'
        protos.managed_scan_settings.v2.UpdateManagedScanSettingsResponse:
            type: object
            properties:
                managedScanSettings:
                    $ref: '#/components/schemas/protos.managed_scan_settings.v2.ManagedScanSettings'
        protos.misc.v1.GetIdentityResponse:
            type: object
            properties:
                identity:
                    type: string
                userId:
                    type: string
                    description: |-
                        Internal user ID of the token owner. Populated for API tokens; absent
                         for other identity types (e.g., web sessions).
                    format: int64
                deploymentId:
                    type: string
                    description: |-
                        Deployment ID associated with the API token. Populated for API tokens;
                         absent for other identity types.
                    format: int64
        protos.misc.v1.GetIpResponse:
            type: object
            properties:
                ip:
                    type: string
                cf:
                    type: string
        protos.misc.v1.GetPingResponse:
            type: object
            properties:
                message:
                    type: string
        protos.misc.v1.GetTenantResponse:
            type: object
            properties:
                tenant:
                    type: string
        protos.misc.v1.HealthCheckResponse:
            type: object
            properties:
                status:
                    type: string
                healthy:
                    type: boolean
        protos.misc.v1.ReadinessCheckResponse:
            type: object
            properties:
                status:
                    type: string
                ready:
                    type: boolean
        protos.notification_rules.v1.CreateNotificationRuleRequest:
            type: object
            properties:
                deploymentId:
                    type: integer
                    format: int64
                notificationRule:
                    $ref: '#/components/schemas/protos.notification_rules.v1.NotificationRule'
            description: Create
        protos.notification_rules.v1.CreateNotificationRuleResponse:
            type: object
            properties:
                notification_rule:
                    $ref: '#/components/schemas/protos.notification_rules.v1.NotificationRule'
        protos.notification_rules.v1.DeleteNotificationRuleResponse:
            type: object
            properties:
                notification_rule:
                    $ref: '#/components/schemas/protos.notification_rules.v1.NotificationRule'
        protos.notification_rules.v1.ListNotificationRulesFilter:
            type: object
            properties:
                channel:
                    enum:
                        - CHANNEL_EMAIL
                        - CHANNEL_SLACK_WEBHOOK
                        - CHANNEL_WEBHOOK
                        - CHANNEL_S3
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | CHANNEL_EMAIL |  |
                        | CHANNEL_SLACK_WEBHOOK |  |
                        | CHANNEL_WEBHOOK |  |
                        | CHANNEL_S3 |  |

                    format: enum
        protos.notification_rules.v1.ListNotificationRulesRequest:
            type: object
            properties:
                deploymentId:
                    type: integer
                    format: int64
                options:
                    $ref: '#/components/schemas/protos.common.v1.PaginateOptions'
                filters:
                    $ref: '#/components/schemas/protos.notification_rules.v1.ListNotificationRulesFilter'
            description: List
        protos.notification_rules.v1.ListNotificationRulesResponse:
            type: object
            properties:
                notification_rules:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.notification_rules.v1.NotificationRule'
        protos.notification_rules.v1.NotificationRule:
            type: object
            properties:
                id:
                    type: integer
                    format: int64
                channel:
                    type: string
                config:
                    type: object
                    additionalProperties:
                        type: string
                is_enabled:
                    type: boolean
                name:
                    type: string
                policy_slugs:
                    type: array
                    items:
                        type: string
                use_network_broker:
                    type: boolean
                config_error:
                    type: string
                    description: Populated when stored config cannot build a notifier (e.g. invalid URL). Omitted when healthy.
                send_scan_completion:
                    type: boolean
                    description: |-
                        When true, this webhook is sent an event each time a scan completes.
                         Defaults to true for new rules. Only meaningful for CHANNEL_WEBHOOK.
        protos.notification_rules.v1.ReplaceNotificationRuleRequest:
            type: object
            properties:
                deploymentId:
                    type: integer
                    format: int64
                notificationRuleId:
                    type: integer
                    format: int64
                notificationRule:
                    $ref: '#/components/schemas/protos.notification_rules.v1.NotificationRule'
            description: Update
        protos.notification_rules.v1.ReplaceNotificationRuleResponse:
            type: object
            properties:
                notification_rule:
                    $ref: '#/components/schemas/protos.notification_rules.v1.NotificationRule'
        protos.notification_rules.v1.TestNotificationRuleRequest:
            type: object
            properties:
                deploymentId:
                    type: integer
                    format: int64
                notificationRuleId:
                    type: integer
                    format: int64
        protos.notification_rules.v1.TestNotificationRuleResponse:
            type: object
            properties:
                success:
                    type: boolean
        protos.notification_webhooks.v1.CreateNotificationWebhookRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                name:
                    type: string
                    description: The user-specified name for the webhook
                url:
                    type: string
                    description: The URL endpoint where webhook payloads will be sent
                useNetworkBroker:
                    type: boolean
                    description: Whether to use the network broker for webhook delivery
                webhookSecret:
                    type: string
                    description: Optional webhook secret for request signing
        protos.notification_webhooks.v1.CreateNotificationWebhookResponse:
            type: object
            properties:
                webhook:
                    $ref: '#/components/schemas/protos.notification_webhooks.v1.NotificationWebhook'
        protos.notification_webhooks.v1.DeleteNotificationWebhookResponse:
            type: object
            properties: {}
        protos.notification_webhooks.v1.GetNotificationWebhookResponse:
            type: object
            properties:
                webhook:
                    $ref: '#/components/schemas/protos.notification_webhooks.v1.NotificationWebhook'
        protos.notification_webhooks.v1.ListNotificationWebhooksResponse:
            type: object
            properties:
                webhooks:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.notification_webhooks.v1.NotificationWebhook'
        protos.notification_webhooks.v1.NotificationWebhook:
            type: object
            properties:
                id:
                    type: string
                    description: The notification webhook ID
                name:
                    type: string
                    description: The user-specified name for the webhook
                url:
                    type: string
                    description: The URL endpoint where webhook payloads will be sent
                hasSecret:
                    type: boolean
                    description: Whether the webhook has a secret configured (actual secret never exposed)
                useNetworkBroker:
                    type: boolean
                    description: Whether to use the network broker for webhook delivery
        protos.notification_webhooks.v1.TestNotificationWebhookRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                webhookId:
                    type: string
        protos.notification_webhooks.v1.TestNotificationWebhookResponse:
            type: object
            properties:
                success:
                    type: boolean
                    description: Whether the test was successful
        protos.notification_webhooks.v1.UpdateNotificationWebhookRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                webhookId:
                    type: string
                name:
                    type: string
                    description: The user-specified name for the webhook
                url:
                    type: string
                    description: The URL endpoint where webhook payloads will be sent
                useNetworkBroker:
                    type: boolean
                    description: Whether to use the network broker for webhook delivery
                removeSecret:
                    type: boolean
                    description: Whether to clear the webhook secret
                webhookSecret:
                    type: string
                    description: 'Optional: new webhook secret (if not provided, existing secret is unchanged)'
        protos.notification_webhooks.v1.UpdateNotificationWebhookResponse:
            type: object
            properties:
                webhook:
                    $ref: '#/components/schemas/protos.notification_webhooks.v1.NotificationWebhook'
        protos.notifications.v1.CreateWizCredentialRequest:
            type: object
            properties:
                deploymentId:
                    type: integer
                    format: int64
                clientId:
                    type: string
                clientSecret:
                    type: string
                apiUrl:
                    type: string
                tokenUrl:
                    type: string
        protos.notifications.v1.CreateWizCredentialResponse:
            type: object
            properties:
                wizCredential:
                    $ref: '#/components/schemas/protos.notifications.v1.WizCredential'
        protos.notifications.v1.DeleteWizCredentialResponse:
            type: object
            properties:
                success:
                    type: boolean
        protos.notifications.v1.GetNotificationsResponse:
            type: object
            properties:
                notifications:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.notifications.v1.Notification'
                cursor:
                    type: string
            description: 'NOTE: As mentioned on the RPC, this is non-conforming.'
        protos.notifications.v1.GetWizCredentialResponse:
            type: object
            properties:
                wizCredential:
                    $ref: '#/components/schemas/protos.notifications.v1.WizCredential'
        protos.notifications.v1.ListWizCredentialsResponse:
            type: object
            properties:
                wizCredentials:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.notifications.v1.WizCredential'
        protos.notifications.v1.MarkNotificationsAsSeenRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                notificationIds:
                    type: array
                    items:
                        type: string
        protos.notifications.v1.MarkNotificationsAsSeenResponse:
            type: object
            properties:
                notifications:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.notifications.v1.Notification'
        protos.notifications.v1.Notification:
            type: object
            properties:
                id:
                    type: string
                title:
                    type: string
                description:
                    type: string
                severity:
                    enum:
                        - SEVERITY_INFO
                        - SEVERITY_WARNING
                        - SEVERITY_ERROR
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | SEVERITY_INFO |  |
                        | SEVERITY_WARNING |  |
                        | SEVERITY_ERROR |  |

                    format: enum
                status:
                    enum:
                        - STATUS_DELIVERED
                        - STATUS_SEEN
                        - STATUS_ARCHIVED
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | STATUS_DELIVERED |  |
                        | STATUS_SEEN |  |
                        | STATUS_ARCHIVED |  |

                    format: enum
                adminOnly:
                    type: boolean
                createdAt:
                    type: string
                link:
                    type: string
                isExternalLink:
                    type: boolean
                linkText:
                    type: string
        protos.notifications.v1.UpdateWizCredentialRequest:
            type: object
            properties:
                deploymentId:
                    type: integer
                    format: int64
                id:
                    type: string
                clientId:
                    type: string
                clientSecret:
                    type: string
                apiUrl:
                    type: string
                tokenUrl:
                    type: string
        protos.notifications.v1.UpdateWizCredentialResponse:
            type: object
            properties:
                wizCredential:
                    $ref: '#/components/schemas/protos.notifications.v1.WizCredential'
        protos.notifications.v1.ValidateWizCredentialRequest:
            type: object
            properties:
                deploymentId:
                    type: integer
                    format: int64
                clientId:
                    type: string
                clientSecret:
                    type: string
                apiUrl:
                    type: string
                tokenUrl:
                    type: string
                id:
                    type: string
                    description: |-
                        Existing credential to validate. When set and no client_secret is
                         provided, the stored secret is validated server-side, so clients can test
                         a saved credential without sending (or knowing) the secret. When a
                         client_secret is provided, that secret is validated instead.
        protos.notifications.v1.ValidateWizCredentialResponse:
            type: object
            properties:
                valid:
                    type: boolean
                error:
                    type: string
        protos.notifications.v1.WizCredential:
            type: object
            properties:
                id:
                    type: string
                deploymentId:
                    type: integer
                    format: int64
                clientId:
                    type: string
                apiUrl:
                    type: string
                tokenUrl:
                    type: string
        protos.onboarding.v1.GetChecklistStatusResponse:
            type: object
            properties:
                taskStatus:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.onboarding.v1.OnboardingTask'
        protos.onboarding.v1.InviteMembersRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                emails:
                    type: array
                    items:
                        type: string
        protos.onboarding.v1.InviteMembersResponse:
            type: object
            properties:
                message:
                    type: string
        protos.onboarding.v1.OnboardingTask:
            type: object
            properties:
                type:
                    enum:
                        - TASK_TYPE_COMPLETE_TOUR
                        - TASK_TYPE_SCAN_CODE
                        - TASK_TYPE_TRIAGE_FIRST_PARTY
                        - TASK_TYPE_TRIAGE_DEPENDENCY
                        - TASK_TYPE_SET_UP_RECURRING_SCAN
                        - TASK_TYPE_CONFIGURE_IGNORES
                        - TASK_TYPE_JOIN_SLACK
                        - TASK_TYPE_CUSTOMIZE_RULES
                        - TASK_TYPE_ENABLE_INTEGRATION
                        - TASK_TYPE_ADD_TEAM_MEMBER
                        - TASK_TYPE_WRITE_CUSTOM_RULE
                        - TASK_TYPE_SETUP_SCM_PROVIDER
                        - TASK_TYPE_ENABLE_ASSISTANT
                        - TASK_TYPE_ENABLE_SEMGREP_MULTIMODAL
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | TASK_TYPE_COMPLETE_TOUR |  |
                        | TASK_TYPE_SCAN_CODE |  |
                        | TASK_TYPE_TRIAGE_FIRST_PARTY |  |
                        | TASK_TYPE_TRIAGE_DEPENDENCY |  |
                        | TASK_TYPE_SET_UP_RECURRING_SCAN |  |
                        | TASK_TYPE_CONFIGURE_IGNORES |  |
                        | TASK_TYPE_JOIN_SLACK |  |
                        | TASK_TYPE_CUSTOMIZE_RULES |  |
                        | TASK_TYPE_ENABLE_INTEGRATION |  |
                        | TASK_TYPE_ADD_TEAM_MEMBER |  |
                        | TASK_TYPE_WRITE_CUSTOM_RULE |  |
                        | TASK_TYPE_SETUP_SCM_PROVIDER |  |
                        | TASK_TYPE_ENABLE_ASSISTANT |  |
                        | TASK_TYPE_ENABLE_SEMGREP_MULTIMODAL |  |

                    format: enum
                state:
                    enum:
                        - TASK_STATE_COMPLETE
                        - TASK_STATE_INCOMPLETE
                        - TASK_STATE_LOCKED
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | TASK_STATE_COMPLETE |  |
                        | TASK_STATE_INCOMPLETE |  |
                        | TASK_STATE_LOCKED |  |

                    format: enum
                level:
                    enum:
                        - TASK_LEVEL_ORG
                        - TASK_LEVEL_USER
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | TASK_LEVEL_ORG |  |
                        | TASK_LEVEL_USER |  |

                    format: enum
        protos.onboarding.v1.PatchChecklistRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                taskStatus:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.onboarding.v1.OnboardingTask'
        protos.onboarding.v1.PatchChecklistResponse:
            type: object
            properties:
                taskStatus:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.onboarding.v1.OnboardingTask'
        protos.permissions.common.v1.Group:
            type: object
            properties:
                id:
                    type: string
                deploymentId:
                    type: string
                name:
                    type: string
                slug:
                    type: string
                description:
                    type: string
                repositoryIds:
                    type: array
                    items:
                        type: string
                users:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.permissions.common.v1.GroupUser'
                isDefault:
                    type: boolean
                projectManagementType:
                    enum:
                        - PROJECT_MANAGEMENT_TYPE_UNMANAGED
                        - PROJECT_MANAGEMENT_TYPE_ALL_PROJECTS
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | PROJECT_MANAGEMENT_TYPE_UNMANAGED |  |
                        | PROJECT_MANAGEMENT_TYPE_ALL_PROJECTS |  |

                    format: enum
                parentGroupId:
                    type: string
                    description: Auth services allow for multiple parents, but the app allows only one
                childGroupIds:
                    type: array
                    items:
                        type: string
                repositoryCount:
                    type: string
                userCount:
                    type: string
                childGroupCount:
                    type: string
        protos.permissions.common.v1.GroupUser:
            type: object
            properties:
                userId:
                    type: string
                role:
                    enum:
                        - ROLE_ADMINISTRATOR
                        - ROLE_MANAGER
                        - ROLE_DEVELOPER
                        - ROLE_READ_ONLY
                        - ROLE_NO_ACCESS
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | ROLE_ADMINISTRATOR |  |
                        | ROLE_MANAGER |  |
                        | ROLE_DEVELOPER |  |
                        | ROLE_READ_ONLY |  |
                        | ROLE_NO_ACCESS |  |

                    format: enum
        protos.permissions.v2.CheckRbacStatusResponse:
            type: object
            properties:
                deploymentId:
                    example: "1111"
                    title: Deployment ID
                    type: string
                    description: The unique numerical identifier for the deployment.
                    format: int64
                enabled:
                    type: boolean
                    description: Whether RBAC has been enabled for the deployment.
                selfServeEnabled:
                    type: boolean
                    description: Whether the deployment has self-serve RBAC enablement turned on.
        protos.permissions.v2.CreateDeploymentTeamRequest:
            type: object
            properties:
                team:
                    allOf:
                        - $ref: '#/components/schemas/protos.permissions.v2.TeamCreate'
                    description: Details of the team to be created
        protos.permissions.v2.CreateDeploymentTeamResponse:
            type: object
            properties:
                team:
                    allOf:
                        - $ref: '#/components/schemas/protos.permissions.v2.Team'
                    description: Details of the created team
        protos.permissions.v2.DeleteDeploymentTeamResponse:
            title: Empty Response
            type: object
            properties: {}
        protos.permissions.v2.DeploymentTeamsFilter:
            type: object
            properties:
                name:
                    example: 'team1'
                    type: string
                    description: Filter teams by name (exact match only).
        protos.permissions.v2.GetDeploymentTeamResponse:
            type: object
            properties:
                team:
                    $ref: '#/components/schemas/protos.permissions.v2.Team'
        protos.permissions.v2.ListDeploymentTeamsRequest:
            type: object
            properties:
                limit:
                    example: "100"
                    type: string
                    default: "100"
                    description: Maximum number of items to return in a single page.
                    format: int64
                cursor:
                    type: string
                    default: ""
                    description: Opaque cursor used for pagination. If not provided the first page will be returned.
                filter:
                    $ref: '#/components/schemas/protos.permissions.v2.DeploymentTeamsFilter'
        protos.permissions.v2.ListDeploymentTeamsResponse:
            type: object
            properties:
                teams:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.permissions.v2.Team'
                cursor:
                    type: string
                    default: ""
                    description: Opaque cursor used for pagination. If not provided the first page will be returned.
        protos.permissions.v2.ListTeamChildTeamsResponse:
            type: object
            properties:
                deploymentId:
                    example: "1111"
                    title: Deployment ID
                    type: string
                    description: The unique numerical identifier for the deployment.
                    format: int64
                teamId:
                    example: "1234"
                    title: Team ID
                    type: string
                    description: The unique numerical identifier for the team.
                    format: int64
                childTeamIds:
                    example: [1111, 2222]
                    title: Child team IDs
                    type: array
                    items:
                        type: string
                    description: A list of child team IDs assigned to the team.
                limit:
                    example: "100"
                    type: string
                    default: "100"
                    description: Maximum number of items to return in a single page.
                    format: int64
                cursor:
                    type: string
                    default: ""
                    description: Opaque cursor used for pagination. If not provided the first page will be returned.
        protos.permissions.v2.ListTeamReposResponse:
            type: object
            properties:
                deploymentId:
                    example: "1111"
                    title: Deployment ID
                    type: string
                    description: The unique numerical identifier for the deployment.
                    format: int64
                teamId:
                    example: "1234"
                    title: Team ID
                    type: string
                    description: The unique numerical identifier for the team.
                    format: int64
                repositoryIds:
                    example: [1111, 2222]
                    title: Repository IDs
                    type: array
                    items:
                        type: string
                    description: A list of repository IDs assigned to the team.
                limit:
                    example: "100"
                    type: string
                    default: "100"
                    description: Maximum number of items to return in a single page.
                    format: int64
                cursor:
                    type: string
                    default: ""
                    description: Opaque cursor used for pagination. If not provided the first page will be returned.
        protos.permissions.v2.ListTeamUsersResponse:
            type: object
            properties:
                deploymentId:
                    example: "1111"
                    title: Deployment ID
                    type: string
                    description: The unique numerical identifier for the deployment.
                    format: int64
                teamId:
                    example: "1234"
                    title: Team ID
                    type: string
                    description: The unique numerical identifier for the team.
                    format: int64
                users:
                    title: Team users
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.permissions.v2.TeamUser'
                    description: A list of users assigned to the team.
                limit:
                    example: "100"
                    type: string
                    default: "100"
                    description: Maximum number of items to return in a single page.
                    format: int64
                cursor:
                    type: string
                    default: ""
                    description: Opaque cursor used for pagination. If not provided the first page will be returned.
        protos.permissions.v2.Team:
            title: Team
            type: object
            properties:
                id:
                    example: "1234"
                    title: Team ID
                    type: string
                    description: The unique numerical identifier for the team.
                    format: int64
                deploymentId:
                    example: "1111"
                    title: Deployment ID
                    type: string
                    description: The unique numerical identifier for the deployment.
                    format: int64
                name:
                    example: My Team
                    type: string
                    description: The name of this team.
                slug:
                    example: my-team
                    type: string
                    description: The slug of this team's name.
                parentTeamId:
                    example: "1234"
                    type: string
                    description: The Team ID of this team's parent team. If unset, the team is an organization-level team.
                    format: int64
                repositoryCount:
                    example: "1"
                    type: string
                    description: The number of repositories directly assigned to this team.
                    format: int64
                userCount:
                    example: "1"
                    type: string
                    description: The number of users directly assigned to this team.
                    format: int64
                childTeamCount:
                    example: "1"
                    type: string
                    description: The number of teams directly assigned to this team.
                    format: int64
                isProjectDefault:
                    example: false
                    type: boolean
                    description: Whether new repositories are automatically assigned to this team.
                isUserDefault:
                    example: false
                    type: boolean
                    description: Whether new users are automatically assigned to this team.
                authorizedScopes:
                    example: ["TEAM_SCOPE_DIRECT_MEMBER", "TEAM_SCOPE_MANAGE"]
                    enum:
                        - TEAM_SCOPE_DIRECT_MEMBER
                        - TEAM_SCOPE_MANAGE
                    type: array
                    items:
                        enum:
                            - TEAM_SCOPE_UNSPECIFIED
                            - TEAM_SCOPE_DIRECT_MEMBER
                            - TEAM_SCOPE_MANAGE
                        type: string
                        format: enum
                    description: |+
                        The scopes the the caller has for this team.

                        | value | description |
                        |-------|---------------|
                        | TEAM_SCOPE_DIRECT_MEMBER | Indicates that the user is a direct member of the team |
                        | TEAM_SCOPE_MANAGE | Indicates that the user can manage the team |

            description: An individual RBAC team
        protos.permissions.v2.TeamCreate:
            type: object
            properties:
                name:
                    example: my-team
                    type: string
                    description: The name to assign to the new team.
                repositoryIds:
                    example: ["1111", "1112"]
                    type: Array of strings <int64>
                    items:
                        type: string
                    description: The IDs of the repositories to assign to the new team.
                users:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.permissions.v2.TeamCreateUserAction'
                    description: Users to assign to the new team.
                parentTeamId:
                    example: "4321"
                    type: string
                    description: The Team ID under which to nest the new team. Up to 3 levels of nesting are supported. If not provided, the team will be an organization-level team.
                    format: int64
        protos.permissions.v2.TeamCreateUserAction:
            title: Team Create User Action
            type: object
            properties:
                userId:
                    example: "456"
                    title: User ID
                    type: string
                    description: The unique identifier of the user.
                    format: int64
                role:
                    enum:
                        - TEAM_ROLE_MEMBER
                        - TEAM_ROLE_MANAGER
                        - TEAM_ROLE_READONLY
                    type: string
                    description: |+
                        The user's role.

                        | value | description |
                        |-------|---------------|
                        | TEAM_ROLE_MEMBER | Indicates the user is a member of the team |
                        | TEAM_ROLE_MANAGER | Indicates the user is a manager of the team |
                        | TEAM_ROLE_READONLY | Indicates the user is a read-only member of the team |

                    format: enum
        protos.permissions.v2.TeamRepositoryAction:
            title: Team Repository Action
            type: object
            properties:
                repositoryId:
                    example: "789"
                    title: Repository ID
                    type: string
                    description: The unique identifier of the repository.
                    format: int64
                action:
                    enum:
                        - UPDATE_ACTION_ADD
                        - UPDATE_ACTION_UPDATE
                        - UPDATE_ACTION_REMOVE
                    type: string
                    description: |+
                        The action to apply to the repository on the team. UPDATE is not supported.

                        | value | description |
                        |-------|---------------|
                        | UPDATE_ACTION_ADD | Add the given entity to the team |
                        | UPDATE_ACTION_UPDATE | Update information associated with the given entity (e.g. their role) in the team |
                        | UPDATE_ACTION_REMOVE | Remove the given entity from the team |

                    format: enum
            description: An individual change to make to the repositories of a team
        protos.permissions.v2.TeamUpdate:
            title: Team Update
            type: object
            properties:
                name:
                    example: My Team
                    type: string
                    description: Value to change the team's name to. If not specified, the team's name will remain unchanged.
                repositories:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.permissions.v2.TeamRepositoryAction'
                    description: Repositories to add or remove from the team. Up to 500 unique repositories per request.
                users:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.permissions.v2.TeamUserAction'
                    description: Users to add, remove, or update in the team. Up to 500 unique users per request.
            description: Actions to take to update a team
        protos.permissions.v2.TeamUser:
            type: object
            properties:
                userId:
                    example: "1234"
                    title: User ID
                    type: string
                    description: The unique numerical identifier for the user.
                    format: int64
                role:
                    title: User Role
                    enum:
                        - TEAM_ROLE_MEMBER
                        - TEAM_ROLE_MANAGER
                        - TEAM_ROLE_READONLY
                    type: string
                    description: |+
                        The role assigned to the user for this team.

                        | value | description |
                        |-------|---------------|
                        | TEAM_ROLE_MEMBER | Indicates the user is a member of the team |
                        | TEAM_ROLE_MANAGER | Indicates the user is a manager of the team |
                        | TEAM_ROLE_READONLY | Indicates the user is a read-only member of the team |

                    format: enum
            description: A user in a team, with their role
        protos.permissions.v2.TeamUserAction:
            title: Team User Action
            type: object
            properties:
                userId:
                    example: 456
                    title: User ID
                    type: string
                    description: The unique identifier of the user.
                    format: int64
                action:
                    enum:
                        - UPDATE_ACTION_ADD
                        - UPDATE_ACTION_UPDATE
                        - UPDATE_ACTION_REMOVE
                    type: string
                    description: |+
                        The action to apply to the user on the team. If the action is UPDATE, the user's role will be updated to the given role.

                        | value | description |
                        |-------|---------------|
                        | UPDATE_ACTION_ADD | Add the given entity to the team |
                        | UPDATE_ACTION_UPDATE | Update information associated with the given entity (e.g. their role) in the team |
                        | UPDATE_ACTION_REMOVE | Remove the given entity from the team |

                    format: enum
                role:
                    enum:
                        - TEAM_ROLE_MEMBER
                        - TEAM_ROLE_MANAGER
                        - TEAM_ROLE_READONLY
                    type: string
                    description: |+
                        The user's new or existing role.

                        | value | description |
                        |-------|---------------|
                        | TEAM_ROLE_MEMBER | Indicates the user is a member of the team |
                        | TEAM_ROLE_MANAGER | Indicates the user is a manager of the team |
                        | TEAM_ROLE_READONLY | Indicates the user is a read-only member of the team |

                    format: enum
            description: An individual change to make to the users of a team
        protos.permissions.v2.UpdateDeploymentTeamRequest:
            type: object
            properties:
                team:
                    allOf:
                        - $ref: '#/components/schemas/protos.permissions.v2.TeamUpdate'
                    description: Changes to make to the team
        protos.permissions.v2.UpdateDeploymentTeamResponse:
            type: object
            properties:
                team:
                    allOf:
                        - $ref: '#/components/schemas/protos.permissions.v2.Team'
                    description: The updated team
        protos.policies.v1.ListPoliciesResponse:
            type: object
            properties:
                policies:
                    example: [{"id": "1", "name": "Global Policy", "slug": "global_policy", "productType": "PRODUCT_TYPE_SAST", "isDefault": true}, {"id": "2", "name": "Semgrep test", "slug": "semgrep_test", "productType": "PRODUCT_TYPE_SAST", "isDefault": false}, {"id": "3", "name": "Global Secrets Policy", "slug": "global_secrets_policy", "productType": "PRODUCT_TYPE_SECRETS", "isDefault": true}]
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.common.v1.Policy'
                    description: List of Policies associated with the given Deployment.
        protos.policies.v1.ListPolicyRulesResponse:
            type: object
            properties:
                policy:
                    $ref: '#/components/schemas/protos.common.v1.Policy'
                rules:
                    example: [{"id": "1", "policyMode": "MODE_MONITOR", "path": "python.rule.1", "source": "SOURCE_COMMUNITY", "severity": "SEVERITY_HIGH", "languages": ["python"], "confidence": "CONFIDENCE_HIGH", "vulnerabilityClass": ["Improper Authentication"], "rulesets": [], "lastChangeAt": "2024-07-29T22:33:37.380293Z", "category": "security", "owaspCategories": ["A07: Cross-Site Scripting (XSS)"], "technologies": ["django", "flask"], "cweCategories": ["CWE-918: Server-Side Request Forgery (SSRF)"], "url": "https://semgrep.com/r/123/python.rule.1", "registryMaintainer": "semgrep"}, {"id": "2", "policyMode": "MODE_COMMENT", "path": "python.rule.shared", "source": "SOURCE_PRO", "severity": "SEVERITY_MEDIUM", "languages": ["python"], "confidence": "CONFIDENCE_HIGH", "vulnerabilityClass": ["Improper Authentication"], "rulesets": ["comment", "default"], "lastChangeAt": "2024-07-29T22:33:37.380293Z", "category": "security", "owaspCategories": ["A01:2021 - Broken Access Control", "A07: Cross-Site Scripting (XSS)"], "technologies": ["django", "flask"], "cweCategories": ["CWE-918: Server-Side Request Forgery (SSRF)"], "url": "https://semgrep.com/r/123/python.rule.shared", "registryMaintainer": "semgrep"}, {"id": "3", "policyMode": "MODE_BLOCK", "path": "python.rule.custom_rule", "source": "SOURCE_CUSTOM", "severity": "SEVERITY_MEDIUM", "languages": ["python"], "confidence": "CONFIDENCE_HIGH", "vulnerabilityClass": ["Improper Authentication"], "rulesets": [], "lastChangeAt": "2024-07-29T22:33:37.380293Z", "lastChangeBy": "example-user", "category": "best-practice", "owaspCategories": [], "technologies": ["django", "flask"], "cweCategories": [], "url": "https://semgrep.com/r/123/python.rule.custom_rule", "registryMaintainer": "semgrep"}]
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.common.v1.Rule'
                    description: List of Rules for the given Policy.
                cursor:
                    example: Pm0ROjIwMjQtMDItMDYgMjA6MDQ6NDguMEDzNzk2fmk6NYTM2zUxOTI
                    type: string
                    description: Cursor to paginate through the rules.
        protos.policies.v1.UpdatePolicyRuleRequest:
            title: Update Policy Rule Request
            required:
                - deployment_id
                - policy_id
                - rule_path
                - policy_mode
            type: object
            properties:
                policyMode:
                    enum:
                        - MODE_MONITOR
                        - MODE_COMMENT
                        - MODE_BLOCK
                        - MODE_DISABLED
                    type: string
                    description: |+
                        New policy mode to set for the Rule.

                         - MODE_MONITOR: Monitor mode, silently report findings
                         - MODE_COMMENT: Comment mode, leaves PR comments but does not block
                         - MODE_BLOCK: Block mode, leaves PR comments and blocks PR
                         - MODE_DISABLED: Disabled mode, not active

                        | value | description |
                        |-------|---------------|
                        | MODE_MONITOR | Monitor mode, silently report findings |
                        | MODE_COMMENT | Comment mode, leaves PR comments but does not block |
                        | MODE_BLOCK | Block mode, leaves PR comments and blocks PR |
                        | MODE_DISABLED | Disabled mode, not active |

                    format: enum
        protos.policies.v1.UpdatePolicyRuleResponse:
            type: object
            properties:
                policyId:
                    example: "456"
                    type: string
                    description: Policy ID (numeric). Find your policy's ID via the [List Policies](/api/v2/docs/#tag/PoliciesService/operation/PoliciesService_ListPolicies) endpoint.
                    format: int64
                updatedRule:
                    $ref: '#/components/schemas/protos.common.v1.Rule'
        protos.policies.v2.ApplyDetectionPolicyRequest:
            title: Apply Detection Policy Request
            required:
                - deployment_id
                - product
                - bundle
            type: object
            properties:
                bundle:
                    allOf:
                        - $ref: '#/components/schemas/protos.policies.v2.DetectionPolicyBundle'
                    description: 'The bundle to apply. It replaces the current state for the product: exceptions absent from it are deleted.'
        protos.policies.v2.ApplyDetectionPolicyResponse:
            type: object
            properties:
                bundle:
                    allOf:
                        - $ref: '#/components/schemas/protos.policies.v2.DetectionPolicyBundle'
                    description: The detection policy bundle after the apply.
                state_version:
                    example: e5f6a7b8
                    type: string
                    description: The new state_version of the bundle after the apply.
        protos.policies.v2.ApplyRemediationPoliciesRequest:
            title: Apply Remediation Policies Request
            required:
                - deployment_id
                - bundle
            type: object
            properties:
                bundle:
                    allOf:
                        - $ref: '#/components/schemas/protos.policies.v2.RemediationPoliciesBundle'
                    description: 'The bundle to apply. It replaces the current state: policies absent from it are deleted.'
        protos.policies.v2.ApplyRemediationPoliciesResponse:
            type: object
            properties:
                bundle:
                    allOf:
                        - $ref: '#/components/schemas/protos.policies.v2.RemediationPoliciesBundle'
                    description: The remediation policies bundle after the apply.
                state_version:
                    example: f8e7d6c5
                    type: string
                    description: The new state_version of the bundle after the apply.
        protos.policies.v2.BundleValidationError:
            type: object
            properties:
                code:
                    example: UNSUPPORTED_ACTION_TYPE
                    type: string
                    description: A stable, machine-readable error code, for example `UNSUPPORTED_ACTION_TYPE` or `UNKNOWN_REFERENCE`.
                message:
                    type: string
                    description: A human-readable explanation of the problem.
                policy_slug:
                    type: string
                    description: The slug of the remediation policy the error applies to, when scoped to a single policy. Empty for bundle-wide errors.
                context:
                    type: object
                    additionalProperties:
                        type: string
                    description: Structured detail for the error; the keys present depend on `code` (for example `action_type`, `missing_companion`, `condition_type`, `value`).
            description: |-
                A single problem found while validating a candidate bundle. A dry run
                 reports every problem it finds at once, so a GitOps client can fix a whole
                 bundle in one round trip rather than one error per dry run. When a dry run
                 returns any validation_errors, the diff fields are empty: the candidate is
                 not applyable until every error is resolved, and a strict apply of the same
                 bundle would fail with the first error's code.
        protos.policies.v2.DetectionPolicyBundle:
            title: Detection Policy Bundle
            type: object
            properties:
                deployment_slug:
                    example: my-org
                    type: string
                    description: Output only. The slug of the deployment the bundle belongs to. Ignored when sent in a request body.
                product:
                    example: code
                    type: string
                    description: 'The product the bundle applies to. One of: `code`, `secrets`. Optional in request bodies; when present it must match the product in the URL.'
                rulesets:
                    example: ["p/owasp-top-10", "p/cwe-top-25"]
                    type: array
                    items:
                        type: string
                    description: Registry ruleset paths that run deployment-wide, for example `p/owasp-top-10`. Must be empty when product is `secrets`.
                rules:
                    example: ["python.lang.security.audit.dangerous-system-call"]
                    type: array
                    items:
                        type: string
                    description: Registry rule paths added individually, on top of the selected rulesets.
                disabled:
                    example: ["python.lang.security.audit.dangerous-eval"]
                    type: array
                    items:
                        type: string
                    description: Registry rule paths from the selected rulesets that are explicitly turned off.
                exceptions:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.policies.v2.DetectionPolicyException'
                    description: Per-project or per-tag include/exclude exceptions to the deployment-wide rule selection.
            description: 'The full declared detection state for one product. A strict apply replaces the entire bundle: rule selection is overwritten and exceptions absent from the bundle are deleted.'
        protos.policies.v2.DetectionPolicyDiffContent:
            type: object
            properties:
                rulesets:
                    type: array
                    items:
                        type: string
                    description: 'Populated only for kind `DetectionPolicy`: the ruleset selection. Empty for exception entries.'
                rules:
                    type: array
                    items:
                        type: string
                    description: 'Populated only for kind `DetectionPolicy`: the individually added rules. Empty for exception entries.'
                disabled:
                    type: array
                    items:
                        type: string
                    description: 'Populated only for kind `DetectionPolicy`: the explicitly disabled rules. Empty for exception entries.'
                exception_type:
                    example: exclude
                    type: string
                    description: 'Set for kind `DetectionPolicyException`. One of: `include`, `exclude`.'
            description: |-
                The content of a resource in a detection policy diff. For kind
                 "DetectionPolicy" the rule selection fields are set; for kind
                 "DetectionPolicyException" only exception_type is set.
        protos.policies.v2.DetectionPolicyDiffEntry:
            type: object
            properties:
                kind:
                    example: DetectionPolicyException
                    type: string
                    description: 'The resource the entry refers to. One of: `DetectionPolicy`, `DetectionPolicyException`.'
                key:
                    allOf:
                        - $ref: '#/components/schemas/protos.policies.v2.DetectionPolicyDiffKey'
                    description: The stable identity of the resource the entry refers to.
                before:
                    allOf:
                        - $ref: '#/components/schemas/protos.policies.v2.DetectionPolicyDiffContent'
                    description: The current content of the resource. Absent on creates.
                after:
                    allOf:
                        - $ref: '#/components/schemas/protos.policies.v2.DetectionPolicyDiffContent'
                    description: The content the apply would write. Absent on deletes.
            description: |-
                One entry of a detection policy diff. The detection policy itself always
                 exists per enabled product, so kind "DetectionPolicy" only ever appears in
                 updates; "DetectionPolicyException" entries can appear in creates, updates,
                 and deletes.
        protos.policies.v2.DetectionPolicyDiffKey:
            type: object
            properties:
                product:
                    example: code
                    type: string
                    description: 'Set for kind `DetectionPolicy`: the product the policy applies to.'
                scope_type:
                    example: project_tag
                    type: string
                    description: 'Set for kind `DetectionPolicyException`. One of: `project`, `project_tag`.'
                scope_target:
                    example: segment
                    type: string
                    description: 'Set for kind `DetectionPolicyException`: the project name or project tag name the exception targets.'
                rule:
                    example: python.lang.security.audit.dangerous-system-call
                    type: string
                    description: 'Set for kind `DetectionPolicyException`: the registry path of the rule or rule pack.'
                rule_type:
                    example: rule
                    type: string
                    description: 'Set for kind `DetectionPolicyException`. One of: `rule`, `pack`.'
            description: |-
                The stable identity of a resource in a detection policy diff. For kind
                 "DetectionPolicy" only product is set; for kind "DetectionPolicyException"
                 the scope, rule, and rule_type fields are set.
        protos.policies.v2.DetectionPolicyException:
            title: Detection Policy Exception
            required:
                - exception_type
                - rule
                - rule_type
            type: object
            properties:
                exception_type:
                    example: exclude
                    type: string
                    description: Whether the exception forces the rule to run (`include`) or skips it (`exclude`) on the targeted scope.
                project:
                    example: my-org/legacy-svc
                    type: string
                    description: The name of the project the exception targets. Mutually exclusive with project_tag_name.
                project_tag_name:
                    example: segment
                    type: string
                    description: 'The name of the project tag the exception targets. Treat tag names as opaque strings: they may contain spaces and special characters. Mutually exclusive with project.'
                rule:
                    example: python.lang.security.audit.dangerous-system-call
                    type: string
                    description: The registry path of the rule or rule pack the exception applies to.
                rule_type:
                    example: rule
                    type: string
                    description: Whether rule refers to a single rule (`rule`) or a rule pack (`pack`).
            description: A per-project or per-tag rule exception. Exactly one of project or project_tag_name must be set.
        protos.policies.v2.DetectionPolicyState:
            type: object
            properties:
                bundle:
                    allOf:
                        - $ref: '#/components/schemas/protos.policies.v2.DetectionPolicyBundle'
                    description: The detection policy bundle for the product.
                state_version:
                    example: a1b2c3d4
                    type: string
                    description: The state_version of the bundle. Send it as the If-Match header on a PUT to the product's detection policy endpoint.
            description: |-
                A detection policy bundle paired with its state_version, as returned by the
                 read-only summary endpoint.
        protos.policies.v2.DryRunDetectionPolicyRequest:
            title: Dry Run Detection Policy Request
            required:
                - deployment_id
                - product
                - bundle
            type: object
            properties:
                bundle:
                    allOf:
                        - $ref: '#/components/schemas/protos.policies.v2.DetectionPolicyBundle'
                    description: The candidate bundle to diff against the current state.
        protos.policies.v2.DryRunDetectionPolicyResponse:
            type: object
            properties:
                creates:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.policies.v2.DetectionPolicyDiffEntry'
                    description: Exceptions that the apply would create.
                updates:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.policies.v2.DetectionPolicyDiffEntry'
                    description: The detection policy and exceptions that the apply would update.
                deletes:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.policies.v2.DetectionPolicyDiffEntry'
                    description: Exceptions that the apply would delete.
                state_version:
                    example: a1b2c3d4
                    type: string
                    description: The state_version the diff was computed against. Send this exact value as the If-Match header on the follow-up PUT.
                validation_errors:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.policies.v2.BundleValidationError'
                    description: Validation problems with the candidate bundle. When non-empty, the diff fields are empty and a strict apply would be rejected.
        protos.policies.v2.DryRunRemediationPoliciesRequest:
            title: Dry Run Remediation Policies Request
            required:
                - deployment_id
                - bundle
            type: object
            properties:
                bundle:
                    allOf:
                        - $ref: '#/components/schemas/protos.policies.v2.RemediationPoliciesBundle'
                    description: The candidate bundle to diff against the current state.
        protos.policies.v2.DryRunRemediationPoliciesResponse:
            type: object
            properties:
                creates:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.policies.v2.RemediationPolicyDiffEntry'
                    description: Remediation policies that the apply would create.
                updates:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.policies.v2.RemediationPolicyDiffEntry'
                    description: Remediation policies that the apply would update.
                deletes:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.policies.v2.RemediationPolicyDiffEntry'
                    description: Remediation policies that the apply would delete.
                state_version:
                    example: d4c3b2a1
                    type: string
                    description: The state_version the diff was computed against. Send this exact value as the If-Match header on the follow-up PUT.
                validation_errors:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.policies.v2.BundleValidationError'
                    description: Validation problems with the candidate bundle. When non-empty, the diff fields are empty and a strict apply would be rejected.
        protos.policies.v2.GetDetectionPolicyResponse:
            type: object
            properties:
                bundle:
                    allOf:
                        - $ref: '#/components/schemas/protos.policies.v2.DetectionPolicyBundle'
                    description: The detection policy bundle for the requested product.
                state_version:
                    example: a1b2c3d4
                    type: string
                    description: A content-only fingerprint of the bundle. It changes only when the bundle's content changes. Send it as the If-Match header on PUT.
        protos.policies.v2.GetDetectionPolicySummaryResponse:
            type: object
            properties:
                deployment_slug:
                    example: my-org
                    type: string
                    description: The slug of the deployment.
                code:
                    allOf:
                        - $ref: '#/components/schemas/protos.policies.v2.DetectionPolicyState'
                    description: The detection policy state for Semgrep Code.
                secrets:
                    allOf:
                        - $ref: '#/components/schemas/protos.policies.v2.DetectionPolicyState'
                    description: The detection policy state for Semgrep Secrets. Absent when Secrets is not enabled for the deployment.
        protos.policies.v2.GetRemediationPoliciesResponse:
            type: object
            properties:
                bundle:
                    allOf:
                        - $ref: '#/components/schemas/protos.policies.v2.RemediationPoliciesBundle'
                    description: The remediation policies bundle for the deployment.
                state_version:
                    example: d4c3b2a1
                    type: string
                    description: A content-only fingerprint of the bundle. It changes only when the bundle's content changes. Send it as the If-Match header on PUT.
        protos.policies.v2.GetVocabResponse:
            type: object
            properties:
                condition_types:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.policies.v2.VocabConditionType'
                    description: The condition types accepted in remediation policy filters.
                action_types:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.policies.v2.VocabActionType'
                    description: The action types accepted in remediation policies, including their companion requirements.
                value_enums:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.policies.v2.VocabValueEnum'
                    description: 'The accepted values per condition type or bundle field. Product-specific: populated only when the product query parameter is set.'
                detection_constraints:
                    allOf:
                        - $ref: '#/components/schemas/protos.policies.v2.VocabDetectionConstraints'
                    description: Structural constraints on detection policy bundles. Populated when the product query parameter is `code` or `secrets`.
        protos.policies.v2.RemediationPoliciesBundle:
            title: Remediation Policies Bundle
            type: object
            properties:
                deployment_slug:
                    example: my-org
                    type: string
                    description: Output only. The slug of the deployment the bundle belongs to. Ignored when sent in a request body.
                policies:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.policies.v2.RemediationPolicy'
                    description: The remediation policies of the deployment.
            description: 'The full declared set of remediation policies for a deployment. A strict apply replaces the whole list: policies absent from the submitted bundle are deleted. System-managed policies never appear in the bundle and are never affected by an apply.'
        protos.policies.v2.RemediationPolicy:
            title: Remediation Policy
            required:
                - name
                - filters
                - actions
            type: object
            properties:
                slug:
                    example: block-high-confidence-criticals
                    type: string
                    description: 'The stable public identity of the policy. Immutable after create: renames change name but never slug. When omitted on create, it is derived from name; set it explicitly to pin a URL-safe identity independent of name.'
                name:
                    example: Block high-confidence criticals
                    type: string
                    description: The display name of the policy.
                description:
                    type: string
                    description: An optional free-form description of the policy.
                active:
                    example: true
                    type: boolean
                    description: Whether the policy is evaluated. Defaults to `true` when omitted on create.
                filters:
                    allOf:
                        - $ref: '#/components/schemas/protos.policies.v2.RemediationPolicyFilters'
                    description: The conditions a finding must match for the policy's actions to fire.
                actions:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.policies.v2.RemediationPolicyAction'
                    description: 'The actions that fire when a finding matches. The list is replaced as a unit on update: any change to it is a single update of the policy.'
            description: 'A remediation policy: conditions that fire actions when a finding matches.'
        protos.policies.v2.RemediationPolicyAction:
            title: Remediation Policy Action
            required:
                - type
            type: object
            properties:
                type:
                    example: block
                    type: string
                    description: 'The action type. One of: `block`, `pr_comment`, `jira`, `slack_app`, `webhook`, `triage`. The vocab endpoint lists the accepted types and their companion requirements (for example, `block` requires `pr_comment` in the same policy).'
                config:
                    type: object
                    additionalProperties:
                        type: string
                    description: Action-specific configuration. Downstream resources are referenced by slug or name, never by numeric id. For example, a `jira` action takes `project_id` and `credential_slug`.
            description: A single action of a remediation policy.
        protos.policies.v2.RemediationPolicyCondition:
            title: Remediation Policy Condition
            required:
                - type
                - values
            type: object
            properties:
                type:
                    example: severity
                    type: string
                    description: The condition type, for example `severity`, `confidence`, or `repository_tag`. The vocab endpoint lists the accepted types.
                values:
                    example: ["critical", "high"]
                    type: array
                    items:
                        type: string
                    description: The values the condition matches against.
                mode:
                    example: any
                    type: string
                    description: 'How multiple values combine. One of: `any`, `none`. `none` negates the condition (the finding must match none of the values). Defaults to `any`.'
            description: A single condition of a remediation policy.
        protos.policies.v2.RemediationPolicyDiffEntry:
            type: object
            properties:
                kind:
                    example: RemediationPolicy
                    type: string
                    description: The resource the entry refers to. Always `RemediationPolicy`.
                key:
                    allOf:
                        - $ref: '#/components/schemas/protos.policies.v2.RemediationPolicyDiffKey'
                    description: The stable identity of the policy the entry refers to.
                before:
                    allOf:
                        - $ref: '#/components/schemas/protos.policies.v2.RemediationPolicy'
                    description: The current content of the policy. Absent on creates.
                after:
                    allOf:
                        - $ref: '#/components/schemas/protos.policies.v2.RemediationPolicy'
                    description: The content the apply would write. Absent on deletes.
            description: One entry of a remediation policies diff.
        protos.policies.v2.RemediationPolicyDiffKey:
            type: object
            properties:
                slug:
                    example: block-high-confidence-criticals
                    type: string
                    description: The slug of the policy.
            description: The stable identity of a remediation policy in a diff.
        protos.policies.v2.RemediationPolicyFilters:
            title: Remediation Policy Filters
            required:
                - mode
            type: object
            properties:
                mode:
                    example: all
                    type: string
                    description: 'How the conditions combine. One of: `all`, `any`.'
                conditions:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.policies.v2.RemediationPolicyCondition'
                    description: The conditions evaluated against each finding. At least one condition is required.
            description: How a remediation policy decides whether a finding matches.
        protos.policies.v2.VocabActionType:
            type: object
            properties:
                type:
                    example: block
                    type: string
                    description: The action type, as used in the type field of an action.
                description:
                    type: string
                    description: What the action does.
                requires:
                    example: ["pr_comment"]
                    type: array
                    items:
                        type: string
                    description: Companion action types that must be present in the same policy for this action to be accepted.
            description: An action type accepted in remediation policies.
        protos.policies.v2.VocabConditionType:
            type: object
            properties:
                type:
                    example: severity
                    type: string
                    description: The condition type, as used in the type field of a condition.
                description:
                    type: string
                    description: What the condition matches on.
            description: A condition type accepted in remediation policy filters.
        protos.policies.v2.VocabDetectionConstraints:
            type: object
            properties:
                rulesets_accepted:
                    example: true
                    type: boolean
                    description: 'Whether the bundle accepts rulesets. Always false for `secrets`: secrets bundles must have an empty rulesets list.'
                exception_types:
                    example: ["include", "exclude"]
                    type: array
                    items:
                        type: string
                    description: The accepted exception_type values.
                rule_types:
                    example: ["rule", "pack"]
                    type: array
                    items:
                        type: string
                    description: The accepted rule_type values.
            description: Structural constraints on detection policy bundles for one product.
        protos.policies.v2.VocabValueEnum:
            type: object
            properties:
                type:
                    example: severity
                    type: string
                    description: The condition type or bundle field the values apply to.
                values:
                    example: ["critical", "high", "medium", "low"]
                    type: array
                    items:
                        type: string
                    description: The accepted values.
            description: The accepted values for one condition type or bundle field.
        protos.project_managed_scan_settings.v2.BulkGetProjectManagedScanSettingsRequest:
            type: object
            properties:
                deploymentId:
                    example: 123
                    type: string
                    description: 'Deployment ID (numeric). Example: `123`. Can be found at `/deployments`, or in your Settings in the web UI.'
                    format: int64
                projectIds:
                    example: [123, 456]
                    type: array
                    items:
                        type: string
                    description: 'Project IDs (numeric). Example: `123`. Can be found at `/deployments/{deployment_id}/projects/list`, or in "Projects" in the web UI.'
        protos.project_managed_scan_settings.v2.BulkGetProjectManagedScanSettingsResponse:
            type: object
            properties:
                settingsByProject:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.project_managed_scan_settings.v2.BulkGetProjectManagedScanSettingsResponse_ProjectSettingsList'
                    description: The list of managed scan settings, grouped by project.
        protos.project_managed_scan_settings.v2.BulkGetProjectManagedScanSettingsResponse_ProjectSettingsList:
            title: Project Settings List
            type: object
            properties:
                projectId:
                    example: 456
                    type: string
                    description: The Project ID associated with the managed scan settings.
                    format: int64
                project_managed_scan_settings:
                    $ref: '#/components/schemas/protos.project_managed_scan_settings.v2.ProjectManagedScanSettings'
        protos.project_managed_scan_settings.v2.GetProjectManagedScanSettingsResponse:
            type: object
            properties:
                project_managed_scan_settings:
                    $ref: '#/components/schemas/protos.project_managed_scan_settings.v2.ProjectManagedScanSettings'
        protos.project_managed_scan_settings.v2.ProjectManagedScanSettings:
            title: Project Managed Scan Settings
            type: object
            properties:
                diff_scan:
                    $ref: '#/components/schemas/protos.project_managed_scan_settings.v2.ProjectManagedScanSettings_DiffScanConfig'
                full_scan:
                    $ref: '#/components/schemas/protos.project_managed_scan_settings.v2.ProjectManagedScanSettings_FullScanConfig'
            description: Configuration of Semgrep Managed Scans for the project, if relevant.
        protos.project_managed_scan_settings.v2.ProjectManagedScanSettings_DiffScanConfig:
            title: Diff-aware Scan Config
            type: object
            properties:
                enabled:
                    type: boolean
                    description: When true, [diff-aware scans](https://semgrep.dev/docs/semgrep-code/glossary#diff-aware-scan) are enabled for the project.
        protos.project_managed_scan_settings.v2.ProjectManagedScanSettings_FullScanConfig:
            title: Full Scan Config
            type: object
            properties:
                enabled:
                    type: boolean
                    description: When true, weekly [full scans](https://semgrep.dev/docs/semgrep-code/glossary#full-scan) are enabled.
        protos.projects.v1.AiScanSettings:
            title: AI Scan Settings
            type: object
            properties:
                fullScan:
                    type: boolean
        protos.projects.v1.BulkAddRepoSecretRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                    description: id of the deployment
                filters:
                    allOf:
                        - $ref: '#/components/schemas/protos.projects.v1.RepoFilters'
                    description: filters to specify which repos to add the secret to
                excludeIds:
                    type: array
                    items:
                        type: string
                    description: repos to exclude from the changes
        protos.projects.v1.BulkAddRepoSecretResponse:
            type: object
            properties:
                repoTokenIds:
                    type: object
                    additionalProperties:
                        type: string
                    description: map of repo ids to the token ids
                errors:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.common.v1.BulkEndpointError'
                    description: errors and the ids of the impacted repositories
        protos.projects.v1.BulkApplyRepoUpdateRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                    description: id of the deployment
                filters:
                    allOf:
                        - $ref: '#/components/schemas/protos.projects.v1.RepoFilters'
                    description: filters to specify which repos to provision
                excludeIds:
                    type: array
                    items:
                        type: string
                    description: repos to exclude from the changes
                change:
                    allOf:
                        - $ref: '#/components/schemas/protos.projects.v1.SingleBulkRepoChange'
                    description: change to apply
        protos.projects.v1.BulkApplyRepoUpdateResponse:
            type: object
            properties:
                updatedRepoIds:
                    type: array
                    items:
                        type: string
                    description: list of ids of the repos that were updated
                errors:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.common.v1.BulkEndpointError'
                    description: Error messages
        protos.projects.v1.BulkEditReposItem:
            type: object
            properties:
                repoId:
                    example: 555
                    type: string
                    description: The unique numerical identifier of the project to edit.
                    format: int64
                change:
                    $ref: '#/components/schemas/protos.projects.v1.SingleBulkRepoChange'
        protos.projects.v1.BulkEditReposRequest:
            title: Bulk Edit Repos Request
            required:
                - deployment_id
            type: object
            properties:
                deploymentId:
                    example: 123
                    type: string
                    description: The unique numerical identifier for the deployment.
                    format: int64
                changes:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.projects.v1.BulkEditReposItem'
        protos.projects.v1.BulkEditReposResponse:
            type: object
            properties:
                updatedRepoNames:
                    example: [my-repo, my-other-repo]
                    type: array
                    items:
                        type: string
                    description: The names of the repositories that were updated.
        protos.projects.v1.BulkProvisionReposRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                    description: id of the deployment
                filters:
                    allOf:
                        - $ref: '#/components/schemas/protos.projects.v1.RepoFilters'
                    description: filters to specify which repos to provision
                excludeIds:
                    type: array
                    items:
                        type: string
                    description: repos to exclude from the changes
                ghaOptions:
                    allOf:
                        - $ref: '#/components/schemas/protos.projects.v1.GhaOptions'
                    description: GitHub action options to apply to the repos
        protos.projects.v1.BulkProvisionReposResponse:
            type: object
            properties:
                repoFileUrls:
                    type: object
                    additionalProperties:
                        type: string
                    description: map of repo ids to the files that were provisioned
                errors:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.common.v1.BulkEndpointError'
                    description: errors and the ids of the impacted repositories
        protos.projects.v1.EditRepoRequest:
            title: Edit Repo Request
            required:
                - deployment_id
                - id_or_name
            type: object
            properties:
                deploymentId:
                    example: 123
                    type: string
                    description: The unique numerical identifier for the deployment.
                    format: int64
                idOrName:
                    example: 456
                    type: string
                    description: A unique identifier for the project to modify. For example, `456` for uint64 ID or `"my-org/my-repo"` for name-slug.
                    format: int64 | name-slug
                name:
                    example: my-new-project
                    type: string
                    description: The new name for the project. If not provided, the project name will not be changed.
                managedScans:
                    $ref: '#/components/schemas/protos.projects.v1.ManagedScanSettings'
                tagsChanges:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.projects.v1.TagsChanges'
                    description: The change(s) to apply to the project's tags.
                primaryBranch:
                    example: refs/heads/deploy
                    type: string
                    description: |-
                        The new primary branch for the project. If not provided, the project's primary branch will not be changed.

                        If you set `primary_branch` to `"None"`, the project's primary branch will be set to the project's default branch, if known.

                        Note: the project's "default branch" is detected from your source code manager. The "primary branch" will override the default branch.
                aiScans:
                    $ref: '#/components/schemas/protos.projects.v1.AiScanSettings'
        protos.projects.v1.EditRepoResponse:
            type: object
            properties:
                repo:
                    $ref: '#/components/schemas/protos.projects.v1.Repository'
        protos.projects.v1.GetReposByTagResponse:
            type: object
            properties:
                tagIdToRepoIds:
                    type: object
                    additionalProperties:
                        $ref: '#/components/schemas/protos.projects.v1.GetReposByTagResponse_RepoIdList'
        protos.projects.v1.GetReposByTagResponse_RepoIdList:
            type: object
            properties:
                repoIds:
                    type: array
                    items:
                        type: string
        protos.projects.v1.GetReposCountRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                filters:
                    $ref: '#/components/schemas/protos.projects.v1.RepoFilters'
        protos.projects.v1.GetReposCountResponse:
            type: object
            properties:
                count:
                    type: string
        protos.projects.v1.GhaOptions:
            type: object
            properties:
                publishUrl:
                    type: string
                prEnabled:
                    type: boolean
                prSendComments:
                    type: boolean
                pushEnabled:
                    type: boolean
                pushBranches:
                    type: array
                    items:
                        type: string
                pushPaths:
                    type: array
                    items:
                        type: string
                cronEnabled:
                    type: boolean
                useSelfHostedRunners:
                    type: boolean
        protos.projects.v1.ManagedScanSettings:
            title: Managed Scan Settings
            type: object
            properties:
                diffScan:
                    type: boolean
                numConfigs:
                    type: integer
                    format: int32
                fullScan:
                    type: boolean
        protos.projects.v1.PrimaryRefItem:
            type: object
            properties:
                id:
                    type: string
                ref:
                    type: string
                isOverride:
                    type: boolean
            description: 'TODO: reuse RepositoryRefItem for this'
        protos.projects.v1.ProductIgnoredFilesMap:
            type: object
            properties:
                sast:
                    type: array
                    items:
                        type: string
                sca:
                    type: array
                    items:
                        type: string
                secrets:
                    type: array
                    items:
                        type: string
        protos.projects.v1.RefreshProjectsAsyncRequest:
            type: object
            properties:
                deploymentId:
                    type: integer
                    format: int64
                withCodeAccess:
                    example: true
                    title: With code access
                    type: boolean
                    description: Optional. When `true`, only projects with code access are synced. When omitted or `false` (the default), all projects are synced. This parameter is not required to start a sync.
        protos.projects.v1.RefreshProjectsAsyncResponse:
            type: object
            properties:
                task_token_jwt:
                    type: string
        protos.projects.v1.RepoFilters:
            type: object
            properties:
                search:
                    type: string
                    description: filter repos by name
                codeAccess:
                    type: boolean
                    description: filter repos by if they have code access
                lastScanSince:
                    type: string
                    description: filter repos by when they were last scanned
                    format: date-time
                setup:
                    type: boolean
                    description: filter repos by if they have been set up
                archived:
                    type: boolean
                    description: filter repos by if they are archived
                ids:
                    type: array
                    items:
                        type: string
                    description: filter repos by id
                hasSmsSetup:
                    type: boolean
                    description: filter repos by if they have SMS set up, whether or not it is currently enabled
                isScmRepository:
                    type: boolean
                    description: filter repos to only show repos that represent an SCM repository
                invertSearch:
                    type: boolean
                    description: filter repos to those that *do not* match the search string
                isLocalScanProject:
                    type: boolean
                    description: filter to projects created by local scans
                scmType:
                    enum:
                        - SCM_TYPE_GITHUB
                        - SCM_TYPE_GITHUB_ENTERPRISE
                        - SCM_TYPE_GITLAB
                        - SCM_TYPE_GITLAB_SELFMANAGED
                        - SCM_TYPE_BITBUCKET
                        - SCM_TYPE_BITBUCKET_DATACENTER
                        - SCM_TYPE_AZURE_DEVOPS
                        - SCM_TYPE_UNKNOWN
                        - SCM_TYPE_HARNESS
                    type: string
                    description: |+
                        filter repos based on ScmType

                        | value | description |
                        |-------|---------------|
                        | SCM_TYPE_GITHUB | GitHub Cloud |
                        | SCM_TYPE_GITHUB_ENTERPRISE | GitHub Enterprise |
                        | SCM_TYPE_GITLAB | GitLab Cloud |
                        | SCM_TYPE_GITLAB_SELFMANAGED | GitLab Self-Managed |
                        | SCM_TYPE_BITBUCKET | Bitbucket Cloud |
                        | SCM_TYPE_BITBUCKET_DATACENTER | Bitbucket Data Center |
                        | SCM_TYPE_AZURE_DEVOPS | Azure DevOps |
                        | SCM_TYPE_UNKNOWN |  |
                        | SCM_TYPE_HARNESS | Harness |

                    format: enum
                tagId:
                    type: integer
                    description: filter repos by tag id
                    format: int64
        protos.projects.v1.Repository:
            type: object
            properties:
                id:
                    type: string
                    description: The unique identifier for the repository in the database
                name:
                    type: string
                    description: The name of this repository in Semgrep
                tags:
                    type: array
                    items:
                        type: string
                    description: The tags that have been applied to this repository
                provisionedAt:
                    type: string
                    description: When this repository was first set up
                    format: date-time
                latestScan:
                    allOf:
                        - $ref: '#/components/schemas/protos.scan.v1.ScanSummary'
                    description: The most-recent scan to complete while scanning this repository
                deploymentId:
                    type: string
                    description: The deployment_id that owns this repository and its scans
                url:
                    type: string
                    description: The URL for this repository (in an SCM like GitHub)
                ignoredFiles:
                    type: array
                    items:
                        type: string
                    description: The list of files NOT to scan in this repository, if not the default
                productIgnoredFiles:
                    allOf:
                        - $ref: '#/components/schemas/protos.projects.v1.ProductIgnoredFilesMap'
                    description: The list of files NOT to scan just for particular products
                firstScanId:
                    type: string
                    description: The unique identifier of the first scan of this repository, if it exists
                isArchived:
                    type: boolean
                    description: 'Deprecated: use is_scm_archived instead.'
                isDisconnected:
                    type: boolean
                    description: Whether or not this repository has been disconnected from the SCM
                hasCodeAccess:
                    type: boolean
                    description: Whether or not code access has been granted for this repository
                managedScans:
                    allOf:
                        - $ref: '#/components/schemas/protos.projects.v1.ManagedScanSettings'
                    description: A summary of the repository-wide SMS settings
                isSetup:
                    type: boolean
                    description: Whether or not the repository seems set up for Semgrep scanning of some kind
                scmLastSyncedAt:
                    type: number
                    description: 'Deprecated: no longer populated'
                    format: float
                authorizedScopes:
                    enum:
                        - REPO_SCOPE_READ_FINDING
                        - REPO_SCOPE_TRIAGE_FINDING
                        - REPO_SCOPE_MANAGE_PROJECT_SETTINGS
                        - REPO_SCOPE_AUTOINSTALL
                        - REPO_SCOPE_DELETE_PROJECT
                        - REPO_SCOPE_ASSIGN_TEAM
                    type: array
                    items:
                        enum:
                            - REPO_SCOPE_UNSPECIFIED
                            - REPO_SCOPE_READ_FINDING
                            - REPO_SCOPE_TRIAGE_FINDING
                            - REPO_SCOPE_MANAGE_PROJECT_SETTINGS
                            - REPO_SCOPE_AUTOINSTALL
                            - REPO_SCOPE_DELETE_PROJECT
                            - REPO_SCOPE_ASSIGN_TEAM
                        type: string
                        format: enum
                    description: |+
                        For users with RBAC, the permissions available to this user on this repo

                        | value | description |
                        |-------|---------------|
                        | REPO_SCOPE_READ_FINDING | Can read findings from the repo |
                        | REPO_SCOPE_TRIAGE_FINDING | Can triage findings from the repo |
                        | REPO_SCOPE_MANAGE_PROJECT_SETTINGS | Can view and modify project settings |
                        | REPO_SCOPE_AUTOINSTALL | Can tell semgrep to 'provision' the repo by committing a CI config file |
                        | REPO_SCOPE_DELETE_PROJECT | Indicates that the user can delete the repo |
                        | REPO_SCOPE_ASSIGN_TEAM | Indicates that the user can assign the project to an RBAC team |

                provider:
                    enum:
                        - PROVIDER_GITHUB
                    type: string
                    description: |+
                        The SCM for this user (TODO: there must be a better version of this supporting more than GitHub)

                        | value | description |
                        |-------|---------------|
                        | PROVIDER_GITHUB |  |

                    format: enum
                defaultBranch:
                    type: string
                    description: 'The name of the default branch (Deprecated: this has been replaced with default_ref_info)'
                refs:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.projects.v1.RepositoryRefItem'
                    description: All of the scanned refs for this project
                primaryRef:
                    allOf:
                        - $ref: '#/components/schemas/protos.projects.v1.PrimaryRefItem'
                    description: The information about the primary ref, if it is set and requested
                defaultRef:
                    allOf:
                        - $ref: '#/components/schemas/protos.projects.v1.SimpleRefItem'
                    description: The information about the default ref, if it is known and requested
                lastScannedRef:
                    allOf:
                        - $ref: '#/components/schemas/protos.projects.v1.SimpleRefItem'
                    description: 'TODO: possibly move this inside of the latest_scan object?'
                latestFullScaScanParserErrors:
                    allOf:
                        - $ref: '#/components/schemas/protos.sca.v1.DependencyParserErrors'
                    description: parser errors from the latest full SCA scan
                latestFullScaScanAt:
                    type: string
                    description: when the last full SCA scan was completed
                    format: date-time
                scaInfo:
                    allOf:
                        - $ref: '#/components/schemas/protos.projects.v1.ScaInfo'
                    description: information specific to Supply Chain
                linkedRepos:
                    type: array
                    items:
                        type: string
                    description: ids of possible duplicate repos, if is is requested
                scmType:
                    enum:
                        - SCM_TYPE_GITHUB
                        - SCM_TYPE_GITHUB_ENTERPRISE
                        - SCM_TYPE_GITLAB
                        - SCM_TYPE_GITLAB_SELFMANAGED
                        - SCM_TYPE_BITBUCKET
                        - SCM_TYPE_BITBUCKET_DATACENTER
                        - SCM_TYPE_AZURE_DEVOPS
                        - SCM_TYPE_UNKNOWN
                        - SCM_TYPE_HARNESS
                    type: string
                    description: |+
                        The SCM type

                        | value | description |
                        |-------|---------------|
                        | SCM_TYPE_GITHUB | GitHub Cloud |
                        | SCM_TYPE_GITHUB_ENTERPRISE | GitHub Enterprise |
                        | SCM_TYPE_GITLAB | GitLab Cloud |
                        | SCM_TYPE_GITLAB_SELFMANAGED | GitLab Self-Managed |
                        | SCM_TYPE_BITBUCKET | Bitbucket Cloud |
                        | SCM_TYPE_BITBUCKET_DATACENTER | Bitbucket Data Center |
                        | SCM_TYPE_AZURE_DEVOPS | Azure DevOps |
                        | SCM_TYPE_UNKNOWN |  |
                        | SCM_TYPE_HARNESS | Harness |

                    format: enum
                repositoryScmLinkId:
                    type: string
                    description: The unique id of the SCM repository in Semgrep
                tokenScopes:
                    $ref: '#/components/schemas/protos.scm.v1.ScmTokenScopes'
                cloudContext:
                    allOf:
                        - $ref: '#/components/schemas/protos.cloud_context.v1.CloudContext'
                    description: cloud context for this project, if it exists
                aiScans:
                    allOf:
                        - $ref: '#/components/schemas/protos.projects.v1.AiScanSettings'
                    description: AI scan settings for this project
                isScmArchived:
                    type: boolean
                    description: Whether or not this repository has been archived in the SCM
                isSemgrepArchived:
                    type: boolean
                    description: Whether or not this repository has been archived in Semgrep
                archivedAt:
                    type: string
                    description: When this repository was archived in Semgrep
                    format: date-time
        protos.projects.v1.RepositoryRefItem:
            type: object
            properties:
                repoRefId:
                    type: string
                ref:
                    type: string
                isDefault:
                    type: boolean
                isPrimary:
                    type: boolean
        protos.projects.v1.ScaInfo:
            type: object
            properties:
                dependencyCounts:
                    type: object
                    additionalProperties:
                        type: string
                    description: a map from file name to the number of dependencies
        protos.projects.v1.SimpleRefItem:
            type: object
            properties:
                id:
                    type: string
                ref:
                    type: string
            description: 'TODO: reuse RepositoryRefItem for this'
        protos.projects.v1.SingleBulkRepoChange:
            type: object
            properties:
                updateTags:
                    type: boolean
                    description: if the tags should be updated
                tags:
                    type: array
                    items:
                        type: string
                    description: what the tags should be updated to, will be ignored if update_tags is false
                managedScans:
                    allOf:
                        - $ref: '#/components/schemas/protos.projects.v1.ManagedScanSettings'
                    description: managed scans settings to update
                aiScans:
                    allOf:
                        - $ref: '#/components/schemas/protos.projects.v1.AiScanSettings'
                    description: AI scan settings to update
        protos.projects.v1.SyncRepoRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                repoId:
                    type: string
        protos.projects.v1.SyncRepoResponse:
            type: object
            properties:
                repo:
                    $ref: '#/components/schemas/protos.projects.v1.Repository'
        protos.projects.v1.TagsChanges:
            title: Tags Changes
            type: object
            properties:
                operation:
                    example: ADD_TAGS
                    enum:
                        - ADD_TAGS
                        - REMOVE_TAGS
                        - SET_TAGS
                    type: string
                    description: |+
                        The operation to perform with the included tags.

                        | value | description |
                        |-------|---------------|
                        | ADD_TAGS | Add the tags to the project. |
                        | REMOVE_TAGS | Remove the tags from the project. |
                        | SET_TAGS | Set the tags for the project, removing all other tags. `SET_TAGS` cannot be used with any other operation, including another `SET_TAGS`. |

                    format: enum
                tags:
                    example: [tag1, tag2, tag3]
                    type: array
                    items:
                        type: string
                    description: The tags to add, remove, or set.
        protos.projects.v2.Branch:
            type: object
            properties:
                id:
                    example: 51234
                    type: integer
                    description: The unique identifier for the branch.
                name:
                    example: refs/heads/main
                    type: string
                    description: The name of the branch.
        protos.projects.v2.DeleteProjectResponse:
            type: object
            properties:
                project:
                    $ref: '#/components/schemas/protos.projects.v2.Project'
        protos.projects.v2.GetBranchResponse:
            type: object
            properties:
                branch:
                    $ref: '#/components/schemas/protos.projects.v2.Branch'
        protos.projects.v2.GetProjectResponse:
            type: object
            properties:
                project:
                    $ref: '#/components/schemas/protos.projects.v2.Project'
        protos.projects.v2.ListProjectsRequest:
            type: object
            properties:
                pageSize:
                    example: 100
                    maximum: !!float 3000
                    minimum: !!float 1
                    type: integer
                    default: "100"
                    description: Maximum number of projects to return in a single page.
                    format: int64
                pageToken:
                    example: ""
                    type: string
                    default: ""
                    description: Opaque cursor used for pagination. If not provided the first page will be returned.
                filter:
                    $ref: '#/components/schemas/protos.projects.v2.ProjectsFilter'
        protos.projects.v2.ListProjectsResponse:
            type: object
            properties:
                projects:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.projects.v2.Project'
                    description: The list of projects.
                pageToken:
                    example: abc123
                    type: string
                    description: An opaque cursor used to paginate through the results.
        protos.projects.v2.Project:
            title: Project
            type: object
            properties:
                id:
                    example: 555
                    type: integer
                    description: The unique identifier for the project.
                name:
                    example: foo/bar
                    type: string
                    description: The name of the project. Usually the name of the repository.
                createTime:
                    example: 2021-01-01T01:23:00Z
                    type: string
                    description: When this project was first set up.
                    format: date-time
                tags:
                    example: ['backend', 'python']
                    type: array
                    items:
                        type: string
                    description: The tags that have been applied to this project.
                latestScanId:
                    example: 4356445
                    type: integer
                    description: The most-recent started scan on this project.
                url:
                    example: https://github.com/foo/bar
                    type: string
                    description: The URL for this project.
                primaryBranchId:
                    example: 12345
                    type: string
                    description: |-
                        The ID of the primary branch of the project, if known.

                        Get more details about the branch from [Get Branch](#tag/ProjectsService/operation/ProjectsService_GetBranch).
                defaultBranchId:
                    example: 67890
                    type: string
                    description: |-
                        The ID of default branch as retrieved from the source code manager.

                        Get more details about the branch from [Get Branch](#tag/ProjectsService/operation/ProjectsService_GetBranch).
        protos.projects.v2.ProjectsFilter:
            title: Projects Filter
            type: object
            properties:
                assignedToTeams:
                    example: false
                    type: boolean
                    description: When `true`, returns projects that have one or more NON-DEFAULT teams assigned. When `false`, returns projects that only have DEFAULT teams or have no teams at all. If not specified, projects will not be filtered by teams.
                names:
                    example: ['foo/bar', 'baz/qux']
                    type: array
                    items:
                        type: string
                    description: Only return projects whose name matches any of the given substrings. If not specified, projects will not be filtered by name.
                statuses:
                    example: ['PROJECT_STATUS_ARCHIVED', 'PROJECT_STATUS_UNINITIALIZED']
                    enum:
                        - PROJECT_STATUS_SETUP
                        - PROJECT_STATUS_NOT_SETUP
                        - PROJECT_STATUS_ARCHIVED
                    type: array
                    items:
                        enum:
                            - PROJECT_STATUS_UNSPECIFIED
                            - PROJECT_STATUS_SETUP
                            - PROJECT_STATUS_NOT_SETUP
                            - PROJECT_STATUS_ARCHIVED
                        type: string
                        format: enum
                    description: |+
                        Only return projects matching one of the specified statuses. If not specified, projects will not be filtered by status.

                        | value | description |
                        |-------|---------------|
                        | PROJECT_STATUS_SETUP | Represents a scanning or otherwise fully-initialized project. |
                        | PROJECT_STATUS_NOT_SETUP | Represents a project that is neither fully-initialized nor scanning (e.g. is only inferred from an SCM sync). Archived projects are not included in this status. |
                        | PROJECT_STATUS_ARCHIVED | Represents a project that has been archived. |

            description: Optionally apply filters to which projects should be returned.
        protos.reporting.v1.GetBacklogByProductReportResponse:
            type: object
            properties:
                buckets:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.reporting.v1.GetBacklogByProductReportResponse_Bucket'
        protos.reporting.v1.GetBacklogByProductReportResponse_Bucket:
            type: object
            properties:
                timePeriod:
                    $ref: '#/components/schemas/protos.reporting.v1.TimePeriod'
                code:
                    type: integer
                    format: int64
                sca:
                    type: integer
                    format: int64
                secrets:
                    type: integer
                    format: int64
        protos.reporting.v1.GetBacklogByRuleReportResponse:
            type: object
            properties:
                buckets:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.reporting.v1.GetBacklogByRuleReportResponse_Bucket'
        protos.reporting.v1.GetBacklogByRuleReportResponse_Bucket:
            type: object
            properties:
                timePeriod:
                    $ref: '#/components/schemas/protos.reporting.v1.TimePeriod'
                open:
                    type: object
                    additionalProperties:
                        type: integer
                        format: int64
        protos.reporting.v1.GetBacklogBySeverityReportResponse:
            type: object
            properties:
                buckets:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.reporting.v1.GetBacklogBySeverityReportResponse_Bucket'
        protos.reporting.v1.GetBacklogBySeverityReportResponse_Bucket:
            type: object
            properties:
                timePeriod:
                    $ref: '#/components/schemas/protos.reporting.v1.TimePeriod'
                low:
                    type: integer
                    format: int64
                medium:
                    type: integer
                    format: int64
                high:
                    type: integer
                    format: int64
                critical:
                    type: integer
                    format: int64
        protos.reporting.v1.GetFindingsActivityReportResponse:
            type: object
            properties:
                buckets:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.reporting.v1.GetFindingsActivityReportResponse_Bucket'
                totalNew:
                    type: integer
                    format: int64
                totalFixed:
                    type: integer
                    format: int64
                totalIgnored:
                    type: integer
                    format: int64
                totalNetNew:
                    type: integer
                    format: int32
                totalProvisionallyIgnored:
                    type: integer
                    format: int64
                thisPeriod:
                    $ref: '#/components/schemas/protos.reporting.v1.GetFindingsActivityReportResponse_SummaryTotals'
                previousPeriod:
                    $ref: '#/components/schemas/protos.reporting.v1.GetFindingsActivityReportResponse_SummaryTotals'
        protos.reporting.v1.GetFindingsActivityReportResponse_Bucket:
            type: object
            properties:
                timePeriod:
                    $ref: '#/components/schemas/protos.reporting.v1.TimePeriod'
                opened:
                    type: integer
                    format: int64
                ignored:
                    type: integer
                    format: int64
                fixed:
                    type: integer
                    format: int64
                removed:
                    type: integer
                    format: int64
                provisionallyIgnored:
                    type: integer
                    format: int64
                net:
                    type: integer
                    format: int32
        protos.reporting.v1.GetFindingsActivityReportResponse_SummaryTotals:
            type: object
            properties:
                totalNew:
                    type: integer
                    format: int64
                totalFixed:
                    type: integer
                    format: int64
                totalIgnored:
                    type: integer
                    format: int64
                totalNetNew:
                    type: integer
                    format: int32
                totalProvisionallyIgnored:
                    type: integer
                    format: int64
        protos.reporting.v1.GetFindingsByProjectAndProductReportResponse:
            type: object
            properties:
                byProject:
                    type: object
                    additionalProperties:
                        $ref: '#/components/schemas/protos.reporting.v1.GetFindingsByProjectAndProductReportResponse_ProjectStats'
        protos.reporting.v1.GetFindingsByProjectAndProductReportResponse_ProjectStats:
            type: object
            properties:
                code:
                    type: integer
                    format: int64
                sca:
                    type: integer
                    format: int64
                secrets:
                    type: integer
                    format: int64
        protos.reporting.v1.GetFindingsByProjectAndSeverityReportResponse:
            type: object
            properties:
                byProject:
                    type: object
                    additionalProperties:
                        $ref: '#/components/schemas/protos.reporting.v1.GetFindingsByProjectAndSeverityReportResponse_ProjectStats'
        protos.reporting.v1.GetFindingsByProjectAndSeverityReportResponse_ProjectStats:
            type: object
            properties:
                low:
                    type: integer
                    format: int64
                medium:
                    type: integer
                    format: int64
                high:
                    type: integer
                    format: int64
                critical:
                    type: integer
                    format: int64
        protos.reporting.v1.GetFindingsFunnelReportResponse:
            type: object
            properties:
                allFindings:
                    type: integer
                    format: int64
                possiblyExploitable:
                    type: integer
                    format: int64
                internetExposed:
                    type: integer
                    format: int64
                priorityFindings:
                    type: integer
                    format: int64
                byProduct:
                    type: object
                    additionalProperties:
                        $ref: '#/components/schemas/protos.reporting.v1.GetFindingsFunnelReportResponse_FunnelStats'
        protos.reporting.v1.GetFindingsFunnelReportResponse_FunnelStats:
            type: object
            properties:
                allFindings:
                    type: integer
                    format: int64
                possiblyExploitable:
                    type: integer
                    format: int64
                internetExposed:
                    type: integer
                    format: int64
                priorityFindings:
                    type: integer
                    format: int64
        protos.reporting.v1.GetGuardrailsActivityReportResponse:
            type: object
            properties:
                buckets:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.reporting.v1.GetGuardrailsActivityReportResponse_Bucket'
                totalFixed:
                    type: integer
                    format: int64
                totalOpened:
                    type: integer
                    format: int64
        protos.reporting.v1.GetGuardrailsActivityReportResponse_Bucket:
            type: object
            properties:
                timePeriod:
                    $ref: '#/components/schemas/protos.reporting.v1.TimePeriod'
                silenced:
                    type: integer
                    format: int64
                open:
                    type: integer
                    format: int64
                fixed:
                    type: integer
                    format: int64
                ignored:
                    type: integer
                    format: int64
                provisionallyIgnored:
                    type: integer
                    format: int64
        protos.reporting.v1.GetGuardrailsAdoptionReportResponse:
            type: object
            properties:
                buckets:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.reporting.v1.GetGuardrailsAdoptionReportResponse_Bucket'
                totalShownToDeveloper:
                    type: integer
                    format: int64
                totalOpened:
                    type: integer
                    format: int64
        protos.reporting.v1.GetGuardrailsAdoptionReportResponse_Bucket:
            type: object
            properties:
                timePeriod:
                    $ref: '#/components/schemas/protos.reporting.v1.TimePeriod'
                shownToDeveloperCount:
                    type: integer
                    format: int64
                totalCount:
                    type: integer
                    format: int64
        protos.reporting.v1.GetMalwareFirewallBlockedMalDepsByAdvisoryReportResponse:
            type: object
            properties:
                rows:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.reporting.v1.GetMalwareFirewallBlockedMalDepsByAdvisoryReportResponse_Row'
                cursor:
                    type: string
        protos.reporting.v1.GetMalwareFirewallBlockedMalDepsByAdvisoryReportResponse_Advisory:
            type: object
            properties:
                rulePath:
                    type: string
                title:
                    type: string
        protos.reporting.v1.GetMalwareFirewallBlockedMalDepsByAdvisoryReportResponse_Row:
            type: object
            properties:
                advisory:
                    $ref: '#/components/schemas/protos.reporting.v1.GetMalwareFirewallBlockedMalDepsByAdvisoryReportResponse_Advisory'
                totalBlocked:
                    type: integer
                    format: int64
        protos.reporting.v1.GetMalwareFirewallBlockedMalDepsByDepVersionAndEcosystemReportResponse:
            type: object
            properties:
                rows:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.reporting.v1.GetMalwareFirewallBlockedMalDepsByDepVersionAndEcosystemReportResponse_Row'
                cursor:
                    type: string
        protos.reporting.v1.GetMalwareFirewallBlockedMalDepsByDepVersionAndEcosystemReportResponse_Row:
            type: object
            properties:
                dependency:
                    type: string
                version:
                    type: string
                ecosystem:
                    type: string
                totalBlocked:
                    type: integer
                    format: int64
        protos.reporting.v1.GetMalwareFirewallBlockedMalDepsByEcosystemReportResponse:
            type: object
            properties:
                rows:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.reporting.v1.GetMalwareFirewallBlockedMalDepsByEcosystemReportResponse_Row'
                cursor:
                    type: string
        protos.reporting.v1.GetMalwareFirewallBlockedMalDepsByEcosystemReportResponse_Row:
            type: object
            properties:
                ecosystem:
                    type: string
                totalBlocked:
                    type: integer
                    format: int64
        protos.reporting.v1.GetMalwareFirewallBlockedMalDepsRequest:
            type: object
            properties:
                filters:
                    $ref: '#/components/schemas/protos.reporting.v1.MalwareFirewallReportFilters'
                cursor:
                    type: string
                limit:
                    type: integer
                    format: int64
        protos.reporting.v1.GetMedianOpenAgeByProductReportResponse:
            type: object
            properties:
                buckets:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.reporting.v1.GetMedianOpenAgeByProductReportResponse_Bucket'
        protos.reporting.v1.GetMedianOpenAgeByProductReportResponse_Bucket:
            type: object
            properties:
                timePeriod:
                    $ref: '#/components/schemas/protos.reporting.v1.TimePeriod'
                code:
                    type: integer
                    format: int64
                sca:
                    type: integer
                    format: int64
                secrets:
                    type: integer
                    format: int64
        protos.reporting.v1.GetMedianOpenAgeBySeverityReportResponse:
            type: object
            properties:
                buckets:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.reporting.v1.GetMedianOpenAgeBySeverityReportResponse_Bucket'
        protos.reporting.v1.GetMedianOpenAgeBySeverityReportResponse_Bucket:
            type: object
            properties:
                timePeriod:
                    $ref: '#/components/schemas/protos.reporting.v1.TimePeriod'
                low:
                    type: integer
                    format: int64
                medium:
                    type: integer
                    format: int64
                high:
                    type: integer
                    format: int64
                critical:
                    type: integer
                    format: int64
        protos.reporting.v1.GetReportFindingsRequest:
            type: object
            properties:
                reportType:
                    enum:
                        - REPORT_TYPE_TOTAL_OPEN
                        - REPORT_TYPE_TOTAL_FIXED
                        - REPORT_TYPE_TOTAL_IGNORED
                        - REPORT_TYPE_TOTAL_PROVISIONALLY_IGNORED
                        - REPORT_TYPE_OPEN_BACKLOG
                        - REPORT_TYPE_BACKLOG_ACTIVITY
                        - REPORT_TYPE_PROJECT
                        - REPORT_TYPE_GUARDRAILS_ACTIVITY
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | REPORT_TYPE_TOTAL_OPEN |  |
                        | REPORT_TYPE_TOTAL_FIXED |  |
                        | REPORT_TYPE_TOTAL_IGNORED |  |
                        | REPORT_TYPE_TOTAL_PROVISIONALLY_IGNORED |  |
                        | REPORT_TYPE_OPEN_BACKLOG |  |
                        | REPORT_TYPE_BACKLOG_ACTIVITY |  |
                        | REPORT_TYPE_PROJECT |  |
                        | REPORT_TYPE_GUARDRAILS_ACTIVITY |  |

                    format: enum
                filters:
                    $ref: '#/components/schemas/protos.reporting.v1.ReportFilters'
                cursor:
                    type: string
                limit:
                    type: integer
                    format: int64
                bucketStart:
                    type: string
                    format: date-time
                findingState:
                    enum:
                        - AGGREGATE_ISSUE_STATE_OPEN
                        - AGGREGATE_ISSUE_STATE_FIXED
                        - AGGREGATE_ISSUE_STATE_REMOVED
                        - AGGREGATE_ISSUE_STATE_IGNORED_APP
                        - AGGREGATE_ISSUE_STATE_IGNORED_CODE
                        - AGGREGATE_ISSUE_STATE_UNKNOWN
                        - AGGREGATE_ISSUE_STATE_REVIEWING
                        - AGGREGATE_ISSUE_STATE_FIXING
                        - AGGREGATE_ISSUE_STATE_PROVISIONALLY_IGNORED_APP
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | AGGREGATE_ISSUE_STATE_OPEN |  |
                        | AGGREGATE_ISSUE_STATE_FIXED |  |
                        | AGGREGATE_ISSUE_STATE_REMOVED |  |
                        | AGGREGATE_ISSUE_STATE_IGNORED_APP |  |
                        | AGGREGATE_ISSUE_STATE_IGNORED_CODE |  |
                        | AGGREGATE_ISSUE_STATE_UNKNOWN |  |
                        | AGGREGATE_ISSUE_STATE_REVIEWING |  |
                        | AGGREGATE_ISSUE_STATE_FIXING |  |
                        | AGGREGATE_ISSUE_STATE_PROVISIONALLY_IGNORED_APP |  |

                    format: enum
                guardrailsState:
                    type: string
        protos.reporting.v1.GetReportFindingsResponse:
            type: object
            properties:
                findings:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.issues.v1.Issue'
                cursor:
                    type: string
                total:
                    type: integer
                    format: int64
                totalCode:
                    type: integer
                    format: int64
                totalSca:
                    type: integer
                    format: int64
                totalSecrets:
                    type: integer
                    format: int64
        protos.reporting.v1.GetReportRequest:
            type: object
            properties:
                filters:
                    $ref: '#/components/schemas/protos.reporting.v1.ReportFilters'
        protos.reporting.v1.MalwareFirewallReportFilters:
            type: object
            properties:
                timePeriod:
                    $ref: '#/components/schemas/protos.reporting.v1.TimePeriod'
        protos.reporting.v1.ReportFilters:
            type: object
            properties:
                timePeriod:
                    $ref: '#/components/schemas/protos.reporting.v1.TimePeriod'
                timeBucketSize:
                    enum:
                        - TIME_BUCKET_SIZE_DAY
                        - TIME_BUCKET_SIZE_WEEK
                        - TIME_BUCKET_SIZE_MONTH
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | TIME_BUCKET_SIZE_DAY |  |
                        | TIME_BUCKET_SIZE_WEEK |  |
                        | TIME_BUCKET_SIZE_MONTH |  |

                    format: enum
                findingTypes:
                    enum:
                        - FINDING_TYPE_CODE
                        - FINDING_TYPE_SCA
                        - FINDING_TYPE_SECRETS
                    type: array
                    items:
                        enum:
                            - FINDING_TYPE_UNSPECIFIED
                            - FINDING_TYPE_CODE
                            - FINDING_TYPE_SCA
                            - FINDING_TYPE_SECRETS
                        type: string
                        format: enum
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | FINDING_TYPE_CODE |  |
                        | FINDING_TYPE_SCA |  |
                        | FINDING_TYPE_SECRETS |  |

                findingSeverities:
                    enum:
                        - FINDING_SEVERITY_LOW
                        - FINDING_SEVERITY_MEDIUM
                        - FINDING_SEVERITY_HIGH
                        - FINDING_SEVERITY_CRITICAL
                    type: array
                    items:
                        enum:
                            - FINDING_SEVERITY_UNSPECIFIED
                            - FINDING_SEVERITY_LOW
                            - FINDING_SEVERITY_MEDIUM
                            - FINDING_SEVERITY_HIGH
                            - FINDING_SEVERITY_CRITICAL
                        type: string
                        format: enum
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | FINDING_SEVERITY_LOW |  |
                        | FINDING_SEVERITY_MEDIUM |  |
                        | FINDING_SEVERITY_HIGH |  |
                        | FINDING_SEVERITY_CRITICAL |  |

                projects:
                    type: array
                    items:
                        type: string
                    description: Case sensitive project names, prefer project_ids for filtering.
                tags:
                    type: array
                    items:
                        type: string
                confidence:
                    enum:
                        - FINDING_CONFIDENCE_LOW
                        - FINDING_CONFIDENCE_MEDIUM
                        - FINDING_CONFIDENCE_HIGH
                    type: array
                    items:
                        enum:
                            - FINDING_CONFIDENCE_UNSPECIFIED
                            - FINDING_CONFIDENCE_LOW
                            - FINDING_CONFIDENCE_MEDIUM
                            - FINDING_CONFIDENCE_HIGH
                        type: string
                        format: enum
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | FINDING_CONFIDENCE_LOW |  |
                        | FINDING_CONFIDENCE_MEDIUM |  |
                        | FINDING_CONFIDENCE_HIGH |  |

                reachability:
                    enum:
                        - FINDING_REACHABILITY_REACHABLE
                        - FINDING_REACHABILITY_ALWAYS_REACHABLE
                        - FINDING_REACHABILITY_CONDITIONALLY_REACHABLE
                        - FINDING_REACHABILITY_NO_REACHABILITY_ANALYSIS
                        - FINDING_REACHABILITY_UNREACHABLE
                    type: array
                    items:
                        enum:
                            - FINDING_REACHABILITY_UNSPECIFIED
                            - FINDING_REACHABILITY_REACHABLE
                            - FINDING_REACHABILITY_ALWAYS_REACHABLE
                            - FINDING_REACHABILITY_CONDITIONALLY_REACHABLE
                            - FINDING_REACHABILITY_NO_REACHABILITY_ANALYSIS
                            - FINDING_REACHABILITY_UNREACHABLE
                        type: string
                        format: enum
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | FINDING_REACHABILITY_REACHABLE |  |
                        | FINDING_REACHABILITY_ALWAYS_REACHABLE |  |
                        | FINDING_REACHABILITY_CONDITIONALLY_REACHABLE |  |
                        | FINDING_REACHABILITY_NO_REACHABILITY_ANALYSIS |  |
                        | FINDING_REACHABILITY_UNREACHABLE |  |

                validity:
                    enum:
                        - FINDING_VALIDITY_VALID
                        - FINDING_VALIDITY_INVALID
                        - FINDING_VALIDITY_ERROR
                        - FINDING_VALIDITY_NO_VALIDATOR
                    type: array
                    items:
                        enum:
                            - FINDING_VALIDITY_UNSPECIFIED
                            - FINDING_VALIDITY_VALID
                            - FINDING_VALIDITY_INVALID
                            - FINDING_VALIDITY_ERROR
                            - FINDING_VALIDITY_NO_VALIDATOR
                        type: string
                        format: enum
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | FINDING_VALIDITY_VALID |  |
                        | FINDING_VALIDITY_INVALID |  |
                        | FINDING_VALIDITY_ERROR |  |
                        | FINDING_VALIDITY_NO_VALIDATOR |  |

                teams:
                    type: array
                    items:
                        type: string
                ruleIds:
                    type: array
                    items:
                        type: string
                aiVerdicts:
                    enum:
                        - VERDICT_TRUE_POSITIVE
                        - VERDICT_FALSE_POSITIVE
                        - VERDICT_NO_VERDICT
                    type: array
                    items:
                        enum:
                            - VERDICT_UNSPECIFIED
                            - VERDICT_TRUE_POSITIVE
                            - VERDICT_FALSE_POSITIVE
                            - VERDICT_NO_VERDICT
                        type: string
                        format: enum
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | VERDICT_TRUE_POSITIVE |  |
                        | VERDICT_FALSE_POSITIVE |  |
                        | VERDICT_NO_VERDICT |  |

                deploymentStatuses:
                    enum:
                        - DEPLOYMENT_STATUS_UNKNOWN
                        - DEPLOYMENT_STATUS_DEPLOYED
                        - DEPLOYMENT_STATUS_NOT_DEPLOYED
                    type: array
                    items:
                        enum:
                            - DEPLOYMENT_STATUS_UNSPECIFIED
                            - DEPLOYMENT_STATUS_UNKNOWN
                            - DEPLOYMENT_STATUS_DEPLOYED
                            - DEPLOYMENT_STATUS_NOT_DEPLOYED
                        type: string
                        format: enum
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | DEPLOYMENT_STATUS_UNKNOWN |  |
                        | DEPLOYMENT_STATUS_DEPLOYED |  |
                        | DEPLOYMENT_STATUS_NOT_DEPLOYED |  |

                publicExposures:
                    enum:
                        - PUBLIC_EXPOSURE_UNKNOWN
                        - PUBLIC_EXPOSURE_PUBLIC
                        - PUBLIC_EXPOSURE_NOT_PUBLIC
                    type: array
                    items:
                        enum:
                            - PUBLIC_EXPOSURE_UNSPECIFIED
                            - PUBLIC_EXPOSURE_UNKNOWN
                            - PUBLIC_EXPOSURE_PUBLIC
                            - PUBLIC_EXPOSURE_NOT_PUBLIC
                        type: string
                        format: enum
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | PUBLIC_EXPOSURE_UNKNOWN |  |
                        | PUBLIC_EXPOSURE_PUBLIC |  |
                        | PUBLIC_EXPOSURE_NOT_PUBLIC |  |

                findingCategories:
                    type: array
                    items:
                        type: string
                projectIds:
                    type: array
                    items:
                        type: string
        protos.reporting.v1.TimePeriod:
            type: object
            properties:
                since:
                    type: string
                    format: date-time
                until:
                    type: string
                    format: date-time
            description: |-
                ******************************************
                 Shared types
                 ******************************************
        protos.review_comment_content.v1.CreateReviewCommentProductContentRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                reviewCommentProductContent:
                    $ref: '#/components/schemas/protos.common.v1.ReviewCommentContent'
        protos.review_comment_content.v1.CreateReviewCommentProductContentResponse:
            type: object
            properties:
                reviewCommentProductContent:
                    $ref: '#/components/schemas/protos.common.v1.ReviewCommentContent'
        protos.review_comment_content.v1.DeleteReviewCommentProductContentResponse:
            type: object
            properties: {}
        protos.review_comment_content.v1.ListReviewCommentProductContentResponse:
            type: object
            properties:
                reviewCommentContents:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.common.v1.ReviewCommentContent'
        protos.review_comment_content.v1.UpdateReviewCommentProductContentRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                reviewCommentProductContentId:
                    type: string
                reviewCommentProductContent:
                    $ref: '#/components/schemas/protos.common.v1.ReviewCommentContent'
        protos.review_comment_content.v1.UpdateReviewCommentProductContentResponse:
            type: object
            properties:
                reviewCommentProductContent:
                    $ref: '#/components/schemas/protos.common.v1.ReviewCommentContent'
        protos.ruleboard.v1.Changes:
            type: object
            properties:
                item:
                    $ref: '#/components/schemas/protos.ruleboard.v1.RuleItem'
                policy:
                    type: string
                update_type:
                    type: string
        protos.ruleboard.v1.CreateRuleboardRequest:
            type: object
            properties:
                name:
                    type: string
                assigned_repos:
                    type: array
                    items:
                        type: string
        protos.ruleboard.v1.DeleteRuleboardResponse:
            type: object
            properties: {}
        protos.ruleboard.v1.GetRuleboardFindingCountsResponse:
            type: object
            properties:
                items:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.ruleboard.v1.RuleFindingCounts'
        protos.ruleboard.v1.GetRuleboardOverviewResponse:
            type: object
            properties:
                name:
                    type: string
                slug:
                    type: string
                default:
                    type: boolean
                assigned_repo_items:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.ruleboard.v1.RuleboardRepoItem'
        protos.ruleboard.v1.GetRuleboardResponse:
            type: object
            properties:
                rules:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.ruleboard.v1.Rule'
        protos.ruleboard.v1.ListRuleboardsResponse:
            type: object
            properties:
                ruleboards:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.ruleboard.v1.RuleboardOverview'
        protos.ruleboard.v1.Rule:
            type: object
            properties:
                policy:
                    type: string
                item:
                    $ref: '#/components/schemas/protos.ruleboard.v1.RuleItem'
        protos.ruleboard.v1.RuleFindingCounts:
            type: object
            properties:
                ruleName:
                    type: string
                open:
                    type: string
                total:
                    type: string
                fixRate:
                    type: number
                    format: float
                ignoreRate:
                    type: number
                    format: float
        protos.ruleboard.v1.RuleItem:
            type: object
            properties:
                id:
                    type: string
                type:
                    type: string
        protos.ruleboard.v1.RuleboardOverview:
            type: object
            properties:
                name:
                    type: string
                slug:
                    type: string
                default:
                    type: boolean
                assigned_repos:
                    type: array
                    items:
                        type: string
        protos.ruleboard.v1.RuleboardRepoItem:
            type: object
            properties:
                id:
                    type: integer
                    format: int64
                name:
                    type: string
                tags:
                    type: array
                    items:
                        type: string
                scmType:
                    enum:
                        - SCM_TYPE_GITHUB
                        - SCM_TYPE_GITHUB_ENTERPRISE
                        - SCM_TYPE_GITLAB
                        - SCM_TYPE_GITLAB_SELFMANAGED
                        - SCM_TYPE_BITBUCKET
                        - SCM_TYPE_BITBUCKET_DATACENTER
                        - SCM_TYPE_AZURE_DEVOPS
                        - SCM_TYPE_UNKNOWN
                        - SCM_TYPE_HARNESS
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | SCM_TYPE_GITHUB | GitHub Cloud |
                        | SCM_TYPE_GITHUB_ENTERPRISE | GitHub Enterprise |
                        | SCM_TYPE_GITLAB | GitLab Cloud |
                        | SCM_TYPE_GITLAB_SELFMANAGED | GitLab Self-Managed |
                        | SCM_TYPE_BITBUCKET | Bitbucket Cloud |
                        | SCM_TYPE_BITBUCKET_DATACENTER | Bitbucket Data Center |
                        | SCM_TYPE_AZURE_DEVOPS | Azure DevOps |
                        | SCM_TYPE_UNKNOWN |  |
                        | SCM_TYPE_HARNESS | Harness |

                    format: enum
        protos.ruleboard.v1.UpdateRuleboardOverviewRequest:
            type: object
            properties:
                name:
                    example: My Custom Policy
                    type: string
                    description: Name of the ruleboard.
                assigned_repos:
                    type: array
                    items:
                        type: string
                    description: List of projects associated with the ruleboard, as strings.
        protos.ruleboard.v1.UpdateRuleboardRequest:
            type: object
            properties:
                changes:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.ruleboard.v1.Changes'
        protos.ruleboard.v1.UpdateRuleboardResponse:
            type: object
            properties:
                rules:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.ruleboard.v1.Rule'
        protos.sca.v1.BranchFindingSummary:
            type: object
            properties:
                branchName:
                    type: string
                findingCount:
                    type: integer
                    format: int64
        protos.sca.v1.CodeLocation:
            type: object
            properties:
                path:
                    type: string
                    description: Path to a file.
                startLine:
                    type: string
                    description: Starting line number (1 indexed).
                startCol:
                    type: string
                    description: Starting column number (1 indexed).
                endLine:
                    type: string
                    description: Ending line number (1 indexed).
                endCol:
                    type: string
                    description: Ending column number (1 indexed).
                url:
                    type: string
                    description: URL to code location if available, otherwise empty.
                committedAt:
                    type: string
                    description: Timestamp when code file was last modified, if available.
                    format: date-time
            description: Specific location in a file.
        protos.sca.v1.Dependency:
            type: object
            properties:
                name:
                    type: string
                    description: String identifier of dependency
                versionSpecifier:
                    type: string
                    description: Version specifier of dependency.
            description: A specific dependency.
        protos.sca.v1.DependencyFilter:
            type: object
            properties:
                name:
                    type: string
                    description: Deprecated - use package_filters instead. Filter by dependency name (e.g. lodash).
                version:
                    type: string
                    description: Deprecated - use package_filters instead. Filter by dependency version (e.g. 1.0.1).
                repositoryId:
                    type: array
                    items:
                        type: integer
                        format: int64
                    description: |-
                        Repository IDs (numeric) to filter by. Omit if the endpoint has Repository ID as a path parameter.
                         Use Projects endpoints to retrieve Repository IDs.
                transitivity:
                    enum:
                        - UNKNOWN_TRANSITIVITY
                        - TRANSITIVE
                        - DIRECT
                    type: array
                    items:
                        enum:
                            - UNKNOWN_TRANSITIVITY
                            - TRANSITIVE
                            - DIRECT
                        type: string
                        format: enum
                    description: |+
                        Filter by transitivity.

                        | value | description |
                        |-------|---------------|
                        | UNKNOWN_TRANSITIVITY |  |
                        | TRANSITIVE |  |
                        | DIRECT |  |

                ecosystem:
                    enum:
                        - no_package_manager
                        - npm
                        - pypi
                        - gomod
                        - cargo
                        - maven
                        - gem
                        - composer
                        - nuget
                        - pub
                        - swiftpm
                        - hex
                        - cocoapods
                        - mix
                        - opam
                    type: array
                    items:
                        enum:
                            - no_package_manager
                            - npm
                            - pypi
                            - gomod
                            - cargo
                            - maven
                            - gem
                            - composer
                            - nuget
                            - pub
                            - swiftpm
                            - hex
                            - cocoapods
                            - mix
                            - opam
                        type: string
                        format: enum
                    description: |+
                        Filter by ecosystem (e.g. npm, pypi, etc).

                        | value | description |
                        |-------|---------------|
                        | no_package_manager |  |
                        | npm |  |
                        | pypi |  |
                        | gomod |  |
                        | cargo |  |
                        | maven |  |
                        | gem |  |
                        | composer |  |
                        | nuget |  |
                        | pub |  |
                        | swiftpm |  |
                        | hex |  |
                        | cocoapods |  |
                        | mix |  |
                        | opam |  |

                lockfilePath:
                    type: string
                    description: Filter by path to the lockfile (e.g. `foo/bar/package-lock.json`).
                licensePolicySettings:
                    enum:
                        - LICENSE_POLICY_SETTING_ALLOW
                        - LICENSE_POLICY_SETTING_COMMENT
                        - LICENSE_POLICY_SETTING_BLOCK
                    type: array
                    items:
                        enum:
                            - LICENSE_POLICY_SETTING_UNSPECIFIED
                            - LICENSE_POLICY_SETTING_ALLOW
                            - LICENSE_POLICY_SETTING_COMMENT
                            - LICENSE_POLICY_SETTING_BLOCK
                        type: string
                        format: enum
                    description: |+
                        Filter by license policy setting outcome.

                        | value | description |
                        |-------|---------------|
                        | LICENSE_POLICY_SETTING_ALLOW |  |
                        | LICENSE_POLICY_SETTING_COMMENT |  |
                        | LICENSE_POLICY_SETTING_BLOCK |  |

                license:
                    type: array
                    items:
                        type: string
                    description: Filter by license (e.g. MIT).
                packageFilters:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.sca.v1.PackageFilter'
                    description: Multiple package filters with exact name matching and version bounds.
            description: Object to provide dependency details to filter by.
        protos.sca.v1.DependencyParserError:
            type: object
            properties:
                location:
                    $ref: '#/components/schemas/protos.sca.v1.CodeLocation'
                reason:
                    type: string
                parser:
                    type: string
                text:
                    type: string
        protos.sca.v1.DependencyParserErrors:
            type: object
            properties:
                errors:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.sca.v1.DependencyParserError'
        protos.sca.v1.EpssScore:
            type: object
            properties:
                score:
                    type: number
                    format: float
                percentile:
                    type: number
                    format: float
                updatedAt:
                    type: string
                    format: date-time
                categorization:
                    enum:
                        - EPSS_PROBABILITY_LOW
                        - EPSS_PROBABILITY_MEDIUM
                        - EPSS_PROBABILITY_HIGH
                        - EPSS_PROBABILITY_NONE
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | EPSS_PROBABILITY_LOW |  |
                        | EPSS_PROBABILITY_MEDIUM |  |
                        | EPSS_PROBABILITY_HIGH |  |
                        | EPSS_PROBABILITY_NONE |  |

                    format: enum
            description: Represents a single "Exploit Prediction Scoring System" score (https://www.first.org/epss/)
        protos.sca.v1.FoundDependency:
            type: object
            properties:
                repositoryId:
                    type: string
                    description: ID of repository dependency is found in.
                definedAt:
                    allOf:
                        - $ref: '#/components/schemas/protos.sca.v1.CodeLocation'
                    description: Path and line number dependency is declared in.
                transitivity:
                    enum:
                        - UNKNOWN_TRANSITIVITY
                        - TRANSITIVE
                        - DIRECT
                    type: string
                    description: |+
                        Whether dependency is direct or transitive.

                        | value | description |
                        |-------|---------------|
                        | UNKNOWN_TRANSITIVITY |  |
                        | TRANSITIVE |  |
                        | DIRECT |  |

                    format: enum
                package:
                    allOf:
                        - $ref: '#/components/schemas/protos.sca.v1.Dependency'
                    description: What the dependency is.
                ecosystem:
                    enum:
                        - no_package_manager
                        - npm
                        - pypi
                        - gomod
                        - cargo
                        - maven
                        - gem
                        - composer
                        - nuget
                        - pub
                        - swiftpm
                        - hex
                        - cocoapods
                        - mix
                        - opam
                    type: string
                    description: |+
                        The ecosystem the dependency is in (e.g. pypi, npm, etc).

                        | value | description |
                        |-------|---------------|
                        | no_package_manager |  |
                        | npm |  |
                        | pypi |  |
                        | gomod |  |
                        | cargo |  |
                        | maven |  |
                        | gem |  |
                        | composer |  |
                        | nuget |  |
                        | pub |  |
                        | swiftpm |  |
                        | hex |  |
                        | cocoapods |  |
                        | mix |  |
                        | opam |  |

                    format: enum
                licenses:
                    type: array
                    items:
                        type: string
                    description: Licenses the dependency is using.
                manifestDefinition:
                    allOf:
                        - $ref: '#/components/schemas/protos.sca.v1.CodeLocation'
                    description: Path to the manifest file that defines the subproject containing this dependency
                resolvedUrl:
                    type: string
                    description: The resolved URL of the dependency. Could point to a compressed source code directory (e.g. tarball), source code repository, or a package manager cache directory. May be empty if the package manager doesn't supply a URL.
        protos.sca.v1.GenerateSbomAsyncRequest:
            title: Generate Sbom Async Request
            required:
                - deployment_id
                - repository_id
            type: object
            properties:
                deploymentId:
                    example: 123
                    type: string
                    description: 'Deployment ID (numeric). Example: `123`. Can be found at `/deployments`, or in your Settings in the web UI.'
                    format: int64
                repositoryId:
                    example: 123
                    type: string
                    description: Project ID to export SBOM for. Use Projects endpoints to find IDs.
                    format: int64
                ref:
                    example: refs/pull/1234/merge
                    type: string
                    description: Branch to export SBOM for.
                formatVersion:
                    $ref: '#/components/schemas/protos.sca.v1.SbomFormatVersion'
                sbomOutputFormat:
                    example: SBOM_OUTPUT_FORMAT_JSON
                    enum:
                        - SBOM_OUTPUT_FORMAT_XML
                        - SBOM_OUTPUT_FORMAT_JSON
                    type: string
                    default: SBOM_OUTPUT_FORMAT_JSON
                    description: |+
                        Output format for the SBOM file.

                        | value | description |
                        |-------|---------------|
                        | SBOM_OUTPUT_FORMAT_XML |  |
                        | SBOM_OUTPUT_FORMAT_JSON |  |

                    format: enum
                metadataComponentType:
                    enum:
                        - SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_APPLICATION
                        - SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_FRAMEWORK
                        - SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_LIBRARY
                        - SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_CONTAINER
                        - SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_PLATFORM
                        - SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_OPERATING_SYSTEM
                        - SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_DEVICE
                        - SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_DEVICE_DRIVER
                        - SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_FIRMWARE
                        - SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_FILE
                        - SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_MACHINE_LEARNING_MODEL
                        - SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_DATA
                    type: string
                    description: |+
                        Type of component being documented.

                        | value | description |
                        |-------|---------------|
                        | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_APPLICATION |  |
                        | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_FRAMEWORK |  |
                        | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_LIBRARY |  |
                        | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_CONTAINER |  |
                        | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_PLATFORM |  |
                        | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_OPERATING_SYSTEM |  |
                        | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_DEVICE |  |
                        | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_DEVICE_DRIVER |  |
                        | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_FIRMWARE |  |
                        | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_FILE |  |
                        | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_MACHINE_LEARNING_MODEL |  |
                        | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_DATA |  |

                    format: enum
                metadataSupplier:
                    $ref: '#/components/schemas/protos.sca.v1.SbomMetadataSupplier'
            description: |-
                This is the API message proto for `GenerateSbomAsync`, but it should stay
                 roughly in-sync with the product message `GenerateSbomRequest`.
        protos.sca.v1.GenerateSbomAsyncResponse:
            type: object
            properties:
                taskTokenJwt:
                    type: string
                    description: Task token to track the status and result of the export job.
        protos.sca.v1.ListDependenciesRequest:
            title: List Dependencies Request
            required:
                - deployment_id
            type: object
            properties:
                deploymentId:
                    example: 123
                    type: string
                    description: 'Deployment ID (numeric). Example: `123`. Can be found at `/deployments`, or in your Settings in the web UI.'
                    format: int64
                dependencyFilter:
                    $ref: '#/components/schemas/protos.sca.v1.DependencyFilter'
                cursor:
                    type: string
                    description: Cursor to paginate through the dependencies. Provide a cursor value from the response to retrieve the next page.
                    format: int64
                pageSize:
                    example: 1000
                    maximum: !!float 10000
                    minimum: !!float 1
                    type: integer
                    default: !!float 1000
                    description: Number of dependencies per page.
                    format: int64
        protos.sca.v1.ListDependenciesResponse:
            title: List Dependencies Response
            required:
                - dependencies
                - has_more
            type: object
            properties:
                dependencies:
                    example: [{"id": "1", "name": "dependency1", "version": "1.0.0"}, {"id": "2", "name": "dependency2", "version": "2.0.0"}]
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.sca.v1.FoundDependency'
                    description: List of dependencies.
                hasMore:
                    type: boolean
                    description: True if there are more dependencies to get.
                cursor:
                    type: string
                    description: Pass to next request to get next page of results.
                    format: int64
        protos.sca.v1.ListFindingsForAdvisoryRequest:
            title: List Findings For Advisory Request
            required:
                - deployment_id
                - advisory_id
            type: object
            properties:
                deploymentId:
                    example: 123
                    type: string
                    description: 'Deployment ID (numeric). Example: `123`. Can be found at `/deployments`, or in your Settings in the web UI.'
                    format: int64
                advisoryId:
                    example: ssc-abc123
                    type: string
                    description: Advisory identifier to get findings for
                pageSize:
                    example: 25
                    maximum: !!float 100
                    minimum: !!float 1
                    type: integer
                    default: !!float 25
                    description: Number of projects per page.
                    format: int64
                cursorFindingCount:
                    type: integer
                    description: Total finding count from the last project of the previous page for cursor-based pagination.
                    format: int64
                cursorProjectName:
                    type: string
                    description: Project name from the last project of the previous page for cursor-based pagination.
        protos.sca.v1.ListFindingsForAdvisoryResponse:
            title: List Findings For Advisory Response
            required:
                - findings
                - has_more
            type: object
            properties:
                projects:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.sca.v1.ProjectFindingSummary'
                    description: List of projects with their branch-level finding summaries.
                hasMore:
                    type: boolean
                    description: True if there are more projects to get.
                cursorFindingCount:
                    type: integer
                    description: Total finding count from the last project - pass to next request for pagination.
                    format: int64
                cursorProjectName:
                    type: string
                    description: Project name from the last project - pass to next request for pagination.
                ruleId:
                    type: string
                    description: Database rule ID for constructing findings URLs (integer primary key)
        protos.sca.v1.ListLockfilesForDependenciesRequest:
            title: List Lockfiles For Dependencies Request
            required:
                - deployment_id
                - repository_id
            type: object
            properties:
                deploymentId:
                    type: string
                    description: 'Deployment ID (numeric). Example: `123`. Can be found at `/deployments`, or in your Settings in the web UI.'
                    format: int64
                repositoryId:
                    type: string
                    description: Repository ID to filter by. Use Projects endpoints to retrieve repository IDs.
                    format: int64
                dependencyFilter:
                    $ref: '#/components/schemas/protos.sca.v1.DependencyFilter'
                cursor:
                    type: string
                    description: Use cursor in response to get next page of results.
                pageSize:
                    example: 100
                    maximum: !!float 100
                    minimum: !!float 1
                    type: integer
                    default: !!float 5
                    description: Number of repositories per page.
                    format: int64
        protos.sca.v1.ListLockfilesForDependenciesResponse:
            title: List Lockfiles For Dependencies Response
            required:
                - has_more
                - lockfile_summaries
            type: object
            properties:
                lockfileSummaries:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.sca.v1.LockfileDependencySummary'
                    description: List of lockfiles thhat match the filter.
                hasMore:
                    type: boolean
                    description: True if there are more lockfiles to get.
                cursor:
                    type: string
                    description: Pass to next request to get next page of results.
        protos.sca.v1.ListRepositoriesForDependenciesRequest:
            title: List Repositories For Dependencies Request
            required:
                - deployment_id
            type: object
            properties:
                deploymentId:
                    type: string
                    description: 'Deployment ID (numeric). Example: `123`. Can be found at `/deployments`, or in your Settings in the web UI.'
                    format: int64
                dependencyFilter:
                    $ref: '#/components/schemas/protos.sca.v1.DependencyFilter'
                cursor:
                    type: integer
                    description: Use cursor in response to get next page of results.
                    format: int64
                pageSize:
                    example: 100
                    maximum: !!float 100
                    minimum: !!float 1
                    type: integer
                    default: !!float 5
                    description: Number of repositories per page.
                    format: int64
        protos.sca.v1.ListRepositoriesForDependenciesResponse:
            title: List Repositories For Dependencies Response
            required:
                - repository_summaries
                - has_more
            type: object
            properties:
                repositorySummaries:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.sca.v1.RepositoryDependencySummary'
                    description: List of repositories.
                hasMore:
                    type: boolean
                    description: True if there are more repositories to get.
                cursor:
                    type: integer
                    description: Pass to next request to get next page of results.
                    format: int64
        protos.sca.v1.LockfileDependencySummary:
            type: object
            properties:
                lockfilePath:
                    type: string
                    description: Path to lockfile (e.g. foo/bar/package-lock.json).
                numDependencies:
                    type: integer
                    description: Total number of dependencies in the lockfile.
                    format: int64
        protos.sca.v1.PackageFilter:
            type: object
            properties:
                name:
                    type: string
                    description: Exact package name (e.g. lodash).
                versionLowerBound:
                    type: string
                    description: |-
                        Lower bound version constraint (e.g. ">=1.0.0").
                         Ignored if exact_version is set.
                versionUpperBound:
                    type: string
                    description: |-
                        Upper bound version constraint (e.g. "<2.0.0").
                         Ignored if exact_version is set.
                exactVersion:
                    type: string
                    description: |-
                        Exact version match (e.g. "1.0.0").
                         Takes precedence over version bounds if set.
                exactNameMatch:
                    type: boolean
                    description: When true, name must match exactly. When false (default), name is fuzzy-matched (contains).
            description: Individual package filter with optional version bounds.
        protos.sca.v1.ProjectFindingSummary:
            type: object
            properties:
                projectName:
                    type: string
                totalFindingCount:
                    type: integer
                    format: int64
                branchFindings:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.sca.v1.BranchFindingSummary'
        protos.sca.v1.RepositoryDependencySummary:
            type: object
            properties:
                id:
                    type: integer
                    description: ID of repository.
                    format: int64
                name:
                    type: string
                    description: Name of repository.
                numDependencies:
                    type: integer
                    description: Total number of dependencies in the repository.
                    format: int64
                hasDependencyPathScan:
                    type: boolean
                    description: |-
                        True if the repository has been scanned with the `hasPathToTransitivityInScans` feature flag
                         which means it will have dependency graph data in DGraph available to query
        protos.sca.v1.SbomFormatVersion:
            type: object
            properties:
                format:
                    enum:
                        - SBOM_FORMAT_CYCLONEDX
                    type: string
                    default: SBOM_FORMAT_CYCLONEDX
                    description: |+
                        Format for the SBOM export.

                        | value | description |
                        |-------|---------------|
                        | SBOM_FORMAT_CYCLONEDX |  |

                    format: enum
                cyclonedxVersion:
                    example: SBOM_CYCLONE_DX_VERSION_V1_7
                    enum:
                        - SBOM_CYCLONE_DX_VERSION_V1_4
                        - SBOM_CYCLONE_DX_VERSION_V1_5
                        - SBOM_CYCLONE_DX_VERSION_V1_6
                        - SBOM_CYCLONE_DX_VERSION_V1_7
                    type: string
                    description: |+
                        CycloneDX schema version for the SBOM export. Supported: 1.4, 1.5, 1.6, 1.7. Defaults to 1.4 when unset.

                        | value | description |
                        |-------|---------------|
                        | SBOM_CYCLONE_DX_VERSION_V1_4 |  |
                        | SBOM_CYCLONE_DX_VERSION_V1_5 |  |
                        | SBOM_CYCLONE_DX_VERSION_V1_6 |  |
                        | SBOM_CYCLONE_DX_VERSION_V1_7 |  |

                    format: enum
        protos.sca.v1.SbomMetadataContact:
            type: object
            properties:
                name:
                    type: string
                email:
                    type: string
                phone:
                    type: string
        protos.sca.v1.SbomMetadataSupplier:
            type: object
            properties:
                name:
                    type: string
                url:
                    type: string
                contact:
                    $ref: '#/components/schemas/protos.sca.v1.SbomMetadataContact'
        protos.scan.v1.ScanSummary:
            type: object
            properties:
                id:
                    type: string
                    description: ID of the scan
                startedAt:
                    type: string
                    description: when the scan was started
                    format: date-time
                completedAt:
                    type: string
                    description: when the scan was completed
                    format: date-time
                exitCode:
                    type: string
                    description: scan exit code, can be negative
                hasLogs:
                    type: boolean
                    description: if the scan has logs that are stored by Semgrep (SMS only)
                status:
                    enum:
                        - SCAN_STATUS_RUNNING
                        - SCAN_STATUS_COMPLETED
                        - SCAN_STATUS_PENDING
                        - SCAN_STATUS_CANCELLED
                        - SCAN_STATUS_ERROR
                        - SCAN_STATUS_NEVER_FINISHED
                    type: string
                    description: |+
                        scan status

                        | value | description |
                        |-------|---------------|
                        | SCAN_STATUS_RUNNING | The scan is currently running |
                        | SCAN_STATUS_COMPLETED | The scan has completed successfully (0 or 1 exit code) |
                        | SCAN_STATUS_PENDING | The scan is queued and waiting to start |
                        | SCAN_STATUS_CANCELLED | The scan was cancelled before completion |
                        | SCAN_STATUS_ERROR | The scan has exited with a failure (exit code not 0 or 1) |
                        | SCAN_STATUS_NEVER_FINISHED | The scan did not report an error or success after over an hour |

                    format: enum
                isManagedScanPlaceholder:
                    type: boolean
                    description: |-
                        True when this summary was synthesized from a ManagedScan row because no
                         backing Scan row exists yet (managed scan failed before the CLI ran).
                         Mirrors `Scan.is_managed_scan_placeholder`. When true, `id == 0`.
                aiFailureReason:
                    enum:
                        - AI_SCAN_JOB_FAILURE_REASON_GIT_BRANCH_NOT_FOUND
                        - AI_SCAN_JOB_FAILURE_REASON_GIT_UNAUTHORIZED
                        - AI_SCAN_JOB_FAILURE_REASON_TIMED_OUT
                        - AI_SCAN_JOB_FAILURE_REASON_INTERNAL_ERROR
                        - AI_SCAN_JOB_FAILURE_REASON_GIT_TRANSIENT_ERROR
                        - AI_SCAN_JOB_FAILURE_REASON_GIT_UPSTREAM_UNAVAILABLE
                        - AI_SCAN_JOB_FAILURE_REASON_BUDGET_EXCEEDED
                    type: string
                    description: |+
                        The reason an AI scan job failed, when the scan was stopped by the AI
                         scanning pipeline (e.g. the free-tier AI scan budget was exceeded).

                        | value | description |
                        |-------|---------------|
                        | AI_SCAN_JOB_FAILURE_REASON_GIT_BRANCH_NOT_FOUND |  |
                        | AI_SCAN_JOB_FAILURE_REASON_GIT_UNAUTHORIZED |  |
                        | AI_SCAN_JOB_FAILURE_REASON_TIMED_OUT |  |
                        | AI_SCAN_JOB_FAILURE_REASON_INTERNAL_ERROR |  |
                        | AI_SCAN_JOB_FAILURE_REASON_GIT_TRANSIENT_ERROR |  |
                        | AI_SCAN_JOB_FAILURE_REASON_GIT_UPSTREAM_UNAVAILABLE |  |
                        | AI_SCAN_JOB_FAILURE_REASON_BUDGET_EXCEEDED |  |

                    format: enum
        protos.scan.v2.GetScanResponse:
            type: object
            properties:
                scan:
                    $ref: '#/components/schemas/protos.scan.v2.Scan'
        protos.scan.v2.ListScansFilters:
            title: List Scans Filter
            type: object
            properties:
                branch:
                    example: refs/heads/main
                    type: string
                    description: Only get scans from the specified branch within your project. If not specified, scans from all branches will be returned.
                createdSince:
                    example: 2019-08-24T14:15:22Z
                    type: string
                    description: Only get scans created after this time. Provide time in ISO 8601 format.
                    format: date-time
                duration:
                    $ref: '#/components/schemas/protos.scan.v2.ScanDurationRange'
                includeEnabledProducts:
                    example: ["PRODUCT_SAST", "PRODUCT_SECRETS"]
                    enum:
                        - PRODUCT_SAST
                        - PRODUCT_SCA
                        - PRODUCT_SECRETS
                        - PRODUCT_AI_SAST
                    type: array
                    items:
                        enum:
                            - PRODUCT_UNSPECIFIED
                            - PRODUCT_SAST
                            - PRODUCT_SCA
                            - PRODUCT_SECRETS
                            - PRODUCT_AI_SAST
                        type: string
                        format: enum
                    description: |+
                        Only get scans that include all of the specified products (or more).

                        | value | description |
                        |-------|---------------|
                        | PRODUCT_SAST |  |
                        | PRODUCT_SCA |  |
                        | PRODUCT_SECRETS |  |
                        | PRODUCT_AI_SAST |  |

                statuses:
                    example: ["SCAN_STATUS_RUNNING", "SCAN_STATUS_COMPLETED"]
                    enum:
                        - SCAN_STATUS_RUNNING
                        - SCAN_STATUS_COMPLETED
                        - SCAN_STATUS_PENDING
                        - SCAN_STATUS_CANCELLED
                        - SCAN_STATUS_ERROR
                        - SCAN_STATUS_NEVER_FINISHED
                    type: array
                    items:
                        enum:
                            - SCAN_STATUS_UNSPECIFIED
                            - SCAN_STATUS_RUNNING
                            - SCAN_STATUS_COMPLETED
                            - SCAN_STATUS_PENDING
                            - SCAN_STATUS_CANCELLED
                            - SCAN_STATUS_ERROR
                            - SCAN_STATUS_NEVER_FINISHED
                        type: string
                        format: enum
                    description: |+
                        Only get scans that match one of these statuses.

                        | value | description |
                        |-------|---------------|
                        | SCAN_STATUS_RUNNING | The scan is currently running |
                        | SCAN_STATUS_COMPLETED | The scan has completed successfully (0 or 1 exit code) |
                        | SCAN_STATUS_PENDING | The scan is queued and waiting to start |
                        | SCAN_STATUS_CANCELLED | The scan was cancelled before completion |
                        | SCAN_STATUS_ERROR | The scan has exited with a failure (exit code not 0 or 1) |
                        | SCAN_STATUS_NEVER_FINISHED | The scan did not report an error or success after over an hour |

                types:
                    example: ["SCAN_TYPE_FULL"]
                    enum:
                        - SCAN_TYPE_FULL
                        - SCAN_TYPE_DIFF
                    type: array
                    items:
                        enum:
                            - SCAN_TYPE_UNSPECIFIED
                            - SCAN_TYPE_FULL
                            - SCAN_TYPE_DIFF
                        type: string
                        format: enum
                    description: |+
                        Only get scans matching one of the specified types. If not specified, scans of any type will be returned.

                        | value | description |
                        |-------|---------------|
                        | SCAN_TYPE_FULL | [Full scan](https://semgrep.dev/docs/semgrep-code/glossary#full-scan) |
                        | SCAN_TYPE_DIFF | [Diff-aware scan](https://semgrep.dev/docs/semgrep-code/glossary#diff-aware-scan) |

            description: Specify some or all of these optional filters to narrow down the results.
        protos.scan.v2.ListScansRequest:
            type: object
            properties:
                cursor:
                    type: string
                    description: Include the cursor from the previous response to paginate through the results
                limit:
                    example: 100
                    type: integer
                    description: Number of scans to return per page. Default is 100, max is 500.
                    format: int64
                filters:
                    $ref: '#/components/schemas/protos.scan.v2.ListScansFilters'
        protos.scan.v2.ListScansResponse:
            type: object
            properties:
                scans:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.scan.v2.Scan'
                    description: The list of scans.
                cursor:
                    type: string
                    description: Cursor to retrieve the next page of results.
        protos.scan.v2.RetryScansError:
            type: object
            properties:
                repoId:
                    type: string
                    description: The repository ID when the error is repo-scoped
                scanId:
                    type: string
                    description: The scan ID that could not be retried
                message:
                    type: string
                    description: Human-readable error message
            description: Matches the error shape returned by POST /api/agent/deployments/{id}/scans/run
        protos.scan.v2.RetryScansRequest:
            type: object
            properties:
                scanIds:
                    example: [12345, 12346]
                    title: Scan IDs
                    type: array
                    items:
                        type: string
                    description: Scan IDs to retry (SMS scans that failed or never finished). Send one ID for single retry or multiple for batch. Maximum 10 IDs per request.
        protos.scan.v2.RetryScansResponse:
            type: object
            properties:
                tasks:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.scan.v2.RetryScansTask'
                    description: One task per successfully scheduled retry
                errors:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.scan.v2.RetryScansError'
                    description: One error per scan that could not be retried
        protos.scan.v2.RetryScansTask:
            type: object
            properties:
                repoId:
                    type: string
                    description: The repository (project) ID
                scanId:
                    type: string
                    description: The scan ID that was retried
                configId:
                    type: string
                    description: The autoscan config ID
                branch:
                    type: string
                    description: The branch for the scan, if applicable
                taskId:
                    type: string
                    description: The Celery task ID for the retry request
                managedScanId:
                    type: string
                    description: The new managed scan ID created for the retry
            description: Matches the task shape returned by POST /api/agent/deployments/{id}/scans/run
        protos.scan.v2.Scan:
            title: Scan
            type: object
            properties:
                id:
                    example: "12345"
                    title: Scan ID
                    type: string
                    description: The unique numerical identifier for the scan
                    format: int64
                deploymentId:
                    example: "1605"
                    type: string
                    description: The unique numerical identifier of the deployment associated with the scanned project
                    format: int64
                projectId:
                    example: "7884"
                    type: string
                    description: The unique numerical identifier for the project that was scanned
                    format: int64
                branchId:
                    example: "7890"
                    type: string
                    description: |-
                        The unique numerical identifier of the branch the scan was run on

                        Get more details about the branch from [Get Branch](#tag/ProjectsService/operation/ProjectsService_GetBranch).
                    format: int64
                commit:
                    example: abcdef1234567890
                    type: string
                    description: The commit hash that the scan was run on
                startTime:
                    example: 2023-11-18T23:28:12.391807Z
                    type: string
                    description: Timestamp of when the scan started
                    format: date-time
                completeTime:
                    example: 2023-11-18T23:30:12.391807Z
                    type: string
                    description: Timestamp of when the scan completed
                    format: date-time
                exitCode:
                    example: 0
                    type: string
                    description: The exit code of the scan, can be negative
                isFullScan:
                    example: true
                    type: boolean
                    description: Whether the scan is a full scan
                duration:
                    example: 501.4
                    pattern: ^-?(?:0|[1-9][0-9]{0,11})(?:\.[0-9]{1,9})?s$
                    type: string
                    description: The total time the scan took to run in seconds. Note that this does not include the time it took to upload the scan results.
                findingsCounts:
                    $ref: '#/components/schemas/protos.scan.v2.ScanFindingsCounts'
                status:
                    example: SCAN_STATUS_RUNNING
                    enum:
                        - SCAN_STATUS_RUNNING
                        - SCAN_STATUS_COMPLETED
                        - SCAN_STATUS_PENDING
                        - SCAN_STATUS_CANCELLED
                        - SCAN_STATUS_ERROR
                        - SCAN_STATUS_NEVER_FINISHED
                    type: string
                    description: |+
                        Whether the scan is running, completed, or errored

                        | value | description |
                        |-------|---------------|
                        | SCAN_STATUS_RUNNING | The scan is currently running |
                        | SCAN_STATUS_COMPLETED | The scan has completed successfully (0 or 1 exit code) |
                        | SCAN_STATUS_PENDING | The scan is queued and waiting to start |
                        | SCAN_STATUS_CANCELLED | The scan was cancelled before completion |
                        | SCAN_STATUS_ERROR | The scan has exited with a failure (exit code not 0 or 1) |
                        | SCAN_STATUS_NEVER_FINISHED | The scan did not report an error or success after over an hour |

                    format: enum
                enabledProducts:
                    example: ["PRODUCT_SAST", "PRODUCT_SCA", "PRODUCT_SECRETS"]
                    enum:
                        - PRODUCT_SAST
                        - PRODUCT_SCA
                        - PRODUCT_SECRETS
                        - PRODUCT_AI_SAST
                    type: array
                    items:
                        enum:
                            - PRODUCT_UNSPECIFIED
                            - PRODUCT_SAST
                            - PRODUCT_SCA
                            - PRODUCT_SECRETS
                            - PRODUCT_AI_SAST
                        type: string
                        format: enum
                    description: |+
                        The products used when running the scan.

                        | value | description |
                        |-------|---------------|
                        | PRODUCT_SAST |  |
                        | PRODUCT_SCA |  |
                        | PRODUCT_SECRETS |  |
                        | PRODUCT_AI_SAST |  |

            description: A scan of a project.
        protos.scan.v2.ScanDurationRange:
            title: Scan Duration Range
            type: object
            properties:
                min:
                    example: 12.5
                    type: number
                    description: The minimum duration of the scan in seconds. If not specified, the minimum duration will be 0.
                    format: float
                max:
                    example: 60.0
                    type: number
                    description: The maximum duration of the scan in seconds. If not specified, the maximum duration will be infinity.
                    format: float
            description: Only get scans that have a total running time (in seconds) within this range.
        protos.scan.v2.ScanFindingsCounts:
            title: Scan Findings Counts
            type: object
            properties:
                total:
                    example: 10
                    type: integer
                    description: The total number of findings in the scan
                    format: int64
                code:
                    example: 5
                    type: integer
                    description: The number of code findings in the scan
                    format: int64
                supplyChain:
                    example: 3
                    type: integer
                    description: The number of supply chain findings in the scan
                    format: int64
                secrets:
                    example: 2
                    type: integer
                    description: The number of secrets findings in the scan
                    format: int64
            description: The number of findings in a scan by product
        protos.scm.v1.AddAdoScmProjectRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                scmAppId:
                    type: string
                organizationName:
                    example: myorg
                    type: string
                    description: The Azure DevOps organization name
                projectName:
                    example: myproject
                    type: string
                    description: The Azure DevOps project name within the organization
        protos.scm.v1.AddAdoScmProjectResponse:
            type: object
            properties: {}
        protos.scm.v1.AutoScanSettings:
            type: object
            properties:
                diffEnabled:
                    type: boolean
        protos.scm.v1.CheckScmConfigResponse:
            type: object
            properties:
                status:
                    $ref: '#/components/schemas/protos.scm.v1.ScmStatus'
                tokenScopes:
                    $ref: '#/components/schemas/protos.scm.v1.ScmTokenScopes'
        protos.scm.v1.CompleteAdoScmAppInstallRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                scmAppId:
                    type: string
        protos.scm.v1.CompleteAdoScmAppInstallResponse:
            type: object
            properties:
                app:
                    $ref: '#/components/schemas/protos.scm.v1.ScmApp'
        protos.scm.v1.CompleteScmAppRequestRequest:
            type: object
            properties:
                requestId:
                    type: string
                code:
                    type: string
        protos.scm.v1.CompleteScmAppRequestResponse:
            type: object
            properties:
                app:
                    $ref: '#/components/schemas/protos.scm.v1.ScmApp'
        protos.scm.v1.CreateAdoScmAppRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                baseUrl:
                    type: string
                tenantId:
                    type: string
                clientId:
                    type: string
                organizationName:
                    type: string
                projectName:
                    type: string
        protos.scm.v1.CreateAdoScmAppResponse:
            type: object
            properties:
                scmAppId:
                    type: string
                publicCertificatePem:
                    type: string
                    description: Public certificate (PEM) the customer uploads to their Entra app registration.
        protos.scm.v1.CreateScmAppRequestRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                deploymentScmConfigId:
                    type: string
                baseUrl:
                    type: string
                namespace:
                    type: string
                githubEntityType:
                    enum:
                        - GITHUB_ENTITY_TYPE_ORG
                        - GITHUB_ENTITY_TYPE_USER
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | GITHUB_ENTITY_TYPE_ORG |  |
                        | GITHUB_ENTITY_TYPE_USER |  |

                    format: enum
        protos.scm.v1.CreateScmAppRequestResponse:
            type: object
            properties:
                requestId:
                    type: string
        protos.scm.v1.CreateScmConfigRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                type:
                    enum:
                        - SCM_TYPE_GITHUB
                        - SCM_TYPE_GITHUB_ENTERPRISE
                        - SCM_TYPE_GITLAB
                        - SCM_TYPE_GITLAB_SELFMANAGED
                        - SCM_TYPE_BITBUCKET
                        - SCM_TYPE_BITBUCKET_DATACENTER
                        - SCM_TYPE_AZURE_DEVOPS
                        - SCM_TYPE_UNKNOWN
                        - SCM_TYPE_HARNESS
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | SCM_TYPE_GITHUB | GitHub Cloud |
                        | SCM_TYPE_GITHUB_ENTERPRISE | GitHub Enterprise |
                        | SCM_TYPE_GITLAB | GitLab Cloud |
                        | SCM_TYPE_GITLAB_SELFMANAGED | GitLab Self-Managed |
                        | SCM_TYPE_BITBUCKET | Bitbucket Cloud |
                        | SCM_TYPE_BITBUCKET_DATACENTER | Bitbucket Data Center |
                        | SCM_TYPE_AZURE_DEVOPS | Azure DevOps |
                        | SCM_TYPE_UNKNOWN |  |
                        | SCM_TYPE_HARNESS | Harness |

                    format: enum
                namespace:
                    type: string
                sourceId:
                    type: string
                baseUrl:
                    type: string
                accessToken:
                    type: string
                scmConfigId:
                    type: string
                subscribe:
                    type: boolean
                autoScan:
                    type: boolean
                autoScanSettings:
                    $ref: '#/components/schemas/protos.scm.v1.AutoScanSettings'
        protos.scm.v1.CreateScmConfigResponse:
            type: object
            properties:
                config:
                    $ref: '#/components/schemas/protos.scm.v1.ScmConfig'
        protos.scm.v1.DeleteScmAppResponse:
            type: object
            properties:
                deploymentId:
                    type: string
                scmAppId:
                    type: string
        protos.scm.v1.DeleteScmConfigResponse:
            type: object
            properties: {}
        protos.scm.v1.GetGitHubAppStatusResponse:
            type: object
            properties:
                deploymentId:
                    type: string
                namespace:
                    type: string
                installed:
                    type: boolean
        protos.scm.v1.GetScmAppResponse:
            type: object
            properties:
                app:
                    $ref: '#/components/schemas/protos.scm.v1.ScmApp'
        protos.scm.v1.ListScmAppsResponse:
            type: object
            properties:
                apps:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.scm.v1.ScmApp'
        protos.scm.v1.ListScmConfigResponse:
            type: object
            properties:
                configs:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.scm.v1.ScmConfig'
                    description: a list of SCM configs for this deployment
                cursor:
                    type: string
        protos.scm.v1.ListScmWebhookSubscriptionResponse:
            type: object
            properties:
                deploymentId:
                    type: string
                configId:
                    type: string
                subscriptions:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.scm.v1.ScmWebhookSubscription'
        protos.scm.v1.PatchScmConfigRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                configId:
                    type: string
                accessToken:
                    type: string
                autoScan:
                    type: boolean
                useNetworkBroker:
                    type: boolean
                namespace:
                    type: string
                subscribe:
                    type: boolean
                autoScanSettings:
                    $ref: '#/components/schemas/protos.scm.v1.AutoScanSettings'
        protos.scm.v1.PatchScmConfigResponse:
            type: object
            properties:
                config:
                    $ref: '#/components/schemas/protos.scm.v1.ScmConfig'
        protos.scm.v1.RotateScmAppWebhookSecretResponse:
            type: object
            properties:
                success:
                    type: boolean
        protos.scm.v1.RotateScmWebhookSecretResponse:
            type: object
            properties:
                success:
                    type: boolean
        protos.scm.v1.ScmApp:
            type: object
            properties:
                id:
                    type: string
                slug:
                    type: string
                appId:
                    type: string
                scmType:
                    enum:
                        - SCM_TYPE_GITHUB
                        - SCM_TYPE_GITHUB_ENTERPRISE
                        - SCM_TYPE_GITLAB
                        - SCM_TYPE_GITLAB_SELFMANAGED
                        - SCM_TYPE_BITBUCKET
                        - SCM_TYPE_BITBUCKET_DATACENTER
                        - SCM_TYPE_AZURE_DEVOPS
                        - SCM_TYPE_UNKNOWN
                        - SCM_TYPE_HARNESS
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | SCM_TYPE_GITHUB | GitHub Cloud |
                        | SCM_TYPE_GITHUB_ENTERPRISE | GitHub Enterprise |
                        | SCM_TYPE_GITLAB | GitLab Cloud |
                        | SCM_TYPE_GITLAB_SELFMANAGED | GitLab Self-Managed |
                        | SCM_TYPE_BITBUCKET | Bitbucket Cloud |
                        | SCM_TYPE_BITBUCKET_DATACENTER | Bitbucket Data Center |
                        | SCM_TYPE_AZURE_DEVOPS | Azure DevOps |
                        | SCM_TYPE_UNKNOWN |  |
                        | SCM_TYPE_HARNESS | Harness |

                    format: enum
                baseUrl:
                    type: string
                requestId:
                    type: string
                scmName:
                    type: string
                codeAccess:
                    type: boolean
                tenantId:
                    type: string
                    description: Entra tenant ID, unset for other SCM types
        protos.scm.v1.ScmConfig:
            type: object
            properties:
                id:
                    type: string
                    description: the unique id of the config
                type:
                    enum:
                        - SCM_TYPE_GITHUB
                        - SCM_TYPE_GITHUB_ENTERPRISE
                        - SCM_TYPE_GITLAB
                        - SCM_TYPE_GITLAB_SELFMANAGED
                        - SCM_TYPE_BITBUCKET
                        - SCM_TYPE_BITBUCKET_DATACENTER
                        - SCM_TYPE_AZURE_DEVOPS
                        - SCM_TYPE_UNKNOWN
                        - SCM_TYPE_HARNESS
                    type: string
                    description: |+
                        the type of the source code manager that this config is for

                        | value | description |
                        |-------|---------------|
                        | SCM_TYPE_GITHUB | GitHub Cloud |
                        | SCM_TYPE_GITHUB_ENTERPRISE | GitHub Enterprise |
                        | SCM_TYPE_GITLAB | GitLab Cloud |
                        | SCM_TYPE_GITLAB_SELFMANAGED | GitLab Self-Managed |
                        | SCM_TYPE_BITBUCKET | Bitbucket Cloud |
                        | SCM_TYPE_BITBUCKET_DATACENTER | Bitbucket Data Center |
                        | SCM_TYPE_AZURE_DEVOPS | Azure DevOps |
                        | SCM_TYPE_UNKNOWN |  |
                        | SCM_TYPE_HARNESS | Harness |

                    format: enum
                namespace:
                    type: string
                    description: the namespace of the config (e.g. GitHub org, GitLab group, etc.)
                sourceId:
                    type: string
                baseUrl:
                    type: string
                app:
                    allOf:
                        - $ref: '#/components/schemas/protos.scm.v1.ScmApp'
                    description: for the private app only
                status:
                    allOf:
                        - $ref: '#/components/schemas/protos.scm.v1.ScmStatus'
                    description: most recent status written to the db
                installed:
                    type: boolean
                suspended:
                    type: boolean
                githubEntityType:
                    enum:
                        - GITHUB_ENTITY_TYPE_ORG
                        - GITHUB_ENTITY_TYPE_USER
                    type: string
                    description: |+
                        the type of GitHub entity (org or personal)

                        | value | description |
                        |-------|---------------|
                        | GITHUB_ENTITY_TYPE_ORG |  |
                        | GITHUB_ENTITY_TYPE_USER |  |

                    format: enum
                autoScan:
                    type: boolean
                useNetworkBroker:
                    type: boolean
                tokenScopes:
                    $ref: '#/components/schemas/protos.scm.v1.ScmTokenScopes'
                subscriptions:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.scm.v1.ScmWebhookSubscription'
                lastSuccessfulSyncAt:
                    type: string
                    format: date-time
                autoScanSettings:
                    $ref: '#/components/schemas/protos.scm.v1.AutoScanSettings'
                hasAccessToken:
                    type: boolean
                    description: |-
                        True when the config has an access token (e.g. a GitHub PAT). Independent
                         of `app`: a private app installation may also have an access token.
                scmId:
                    type: string
        protos.scm.v1.ScmStatus:
            type: object
            properties:
                checked:
                    type: string
                    format: date-time
                ok:
                    type: boolean
                error:
                    type: string
        protos.scm.v1.ScmTokenScopes:
            type: object
            properties:
                readMetadata:
                    type: boolean
                readPullRequest:
                    type: boolean
                writePullRequestComment:
                    type: boolean
                readContents:
                    type: boolean
                readMembers:
                    type: boolean
                manageWebhooks:
                    type: boolean
                writeContents:
                    type: boolean
                writePullRequest:
                    type: boolean
        protos.scm.v1.ScmWebhookSubscription:
            type: object
            properties:
                scmUrl:
                    type: string
                events:
                    type: array
                    items:
                        type: string
        protos.scm.v1.ScmWebhookSubscriptionSubscribeResponse:
            type: object
            properties:
                deploymentId:
                    type: string
                configId:
                    type: string
                subscription:
                    $ref: '#/components/schemas/protos.scm.v1.ScmWebhookSubscription'
        protos.scm.v1.ScmWebhookSubscriptionUnsubscribeResponse:
            type: object
            properties:
                deploymentId:
                    type: string
                configId:
                    type: string
                subscription:
                    $ref: '#/components/schemas/protos.scm.v1.ScmWebhookSubscription'
        protos.scm.v1.SearchScmConfigRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                cursor:
                    type: string
                limit:
                    type: string
                filter:
                    $ref: '#/components/schemas/protos.scm.v1.SearchScmConfigRequestFilter'
                sortDirection:
                    enum:
                        - SORT_DIRECTION_ASC
                        - SORT_DIRECTION_DESC
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | SORT_DIRECTION_ASC |  |
                        | SORT_DIRECTION_DESC |  |

                    format: enum
                sortBy:
                    enum:
                        - SCM_CONFIG_SORT_BY_NAME
                        - SCM_CONFIG_SORT_BY_ID
                        - SCM_CONFIG_SORT_BY_LAST_SUCCESSFUL_SYNC_AT
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | SCM_CONFIG_SORT_BY_NAME |  |
                        | SCM_CONFIG_SORT_BY_ID |  |
                        | SCM_CONFIG_SORT_BY_LAST_SUCCESSFUL_SYNC_AT |  |

                    format: enum
        protos.scm.v1.SearchScmConfigRequestFilter:
            type: object
            properties:
                namespace:
                    type: string
                type:
                    enum:
                        - SCM_TYPE_GITHUB
                        - SCM_TYPE_GITHUB_ENTERPRISE
                        - SCM_TYPE_GITLAB
                        - SCM_TYPE_GITLAB_SELFMANAGED
                        - SCM_TYPE_BITBUCKET
                        - SCM_TYPE_BITBUCKET_DATACENTER
                        - SCM_TYPE_AZURE_DEVOPS
                        - SCM_TYPE_UNKNOWN
                        - SCM_TYPE_HARNESS
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | SCM_TYPE_GITHUB | GitHub Cloud |
                        | SCM_TYPE_GITHUB_ENTERPRISE | GitHub Enterprise |
                        | SCM_TYPE_GITLAB | GitLab Cloud |
                        | SCM_TYPE_GITLAB_SELFMANAGED | GitLab Self-Managed |
                        | SCM_TYPE_BITBUCKET | Bitbucket Cloud |
                        | SCM_TYPE_BITBUCKET_DATACENTER | Bitbucket Data Center |
                        | SCM_TYPE_AZURE_DEVOPS | Azure DevOps |
                        | SCM_TYPE_UNKNOWN |  |
                        | SCM_TYPE_HARNESS | Harness |

                    format: enum
                statusOk:
                    type: boolean
        protos.scm.v1.SearchScmConfigResponse:
            type: object
            properties:
                configs:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.scm.v1.ScmConfig'
                cursor:
                    type: string
        protos.scm.v1.SyncScmConfigRequest:
            type: object
            properties:
                deploymentId:
                    type: string
                configId:
                    type: string
                debug:
                    type: boolean
        protos.scm.v1.SyncScmConfigResponse:
            type: object
            properties:
                taskTokenJwt:
                    type: string
                    description: Encoded TaskToken
        protos.secrets.v1.HistoricalInfo:
            type: object
            properties:
                gitCommit:
                    type: string
                    description: |-
                        Git commit at which the finding is present. Used by "historical" scans,
                         which scan non-HEAD commits in the git history. Relevant for finding, e.g.,
                         secrets which are buried in the git history which we wouldn't find at HEAD
                gitCommitTimestamp:
                    type: string
                    format: date-time
                gitBlob:
                    type: string
                    description: |-
                        Git blob at which the finding is present. Sent in addition to the commit
                         since some SCMs have permalinks which use the blob sha, so this information
                         is useful when generating links back to the SCM.
        protos.slack.v1.DeleteSlackInstallationResponse:
            type: object
            properties:
                deployment_id:
                    type: integer
                    format: int32
                client_id:
                    type: string
                app_id:
                    type: string
                team_name:
                    type: string
        protos.slack.v1.GetSlackChannelMappingsResponse:
            type: object
            properties:
                channel_mappings:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.slack.v1.SlackChannelMapping'
        protos.slack.v1.GetSlackInstallationResponse:
            type: object
            properties:
                deployment_id:
                    type: integer
                    format: int32
                client_id:
                    type: string
                app_id:
                    type: string
                enterprise_name:
                    type: string
                enterprise_url:
                    type: string
                team_name:
                    type: string
                update_available:
                    type: boolean
                archived:
                    type: boolean
        protos.slack.v1.GetSlackNotificationMappingsResponse:
            type: object
            properties:
                notification_mappings:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.slack.v1.SlackNotificationMapping'
        protos.slack.v1.HandleSlackCallbackRequest:
            type: object
            properties:
                deploymentId:
                    type: integer
                    format: int32
                state:
                    type: string
                code:
                    type: string
            description: Messages for HandleSlackCallback
        protos.slack.v1.HandleSlackCallbackResponse:
            type: object
            properties:
                deployment_id:
                    type: integer
                    format: int32
                app_id:
                    type: string
                enterprise_id:
                    type: string
                enterprise_name:
                    type: string
                enterprise_url:
                    type: string
                team_id:
                    type: string
                team_name:
                    type: string
        protos.slack.v1.InstallSlackAppResponse:
            type: object
            properties:
                redirect_url:
                    type: string
        protos.slack.v1.SlackChannelMapping:
            type: object
            properties:
                id:
                    type: string
                installation_id:
                    type: string
                channel_id:
                    type: string
                channel_name:
                    type: string
        protos.slack.v1.SlackNotificationMapping:
            type: object
            properties:
                id:
                    type: string
                installation_id:
                    type: string
                deployment_id:
                    type: integer
                    format: int32
                deployment_slug:
                    type: string
                team_id:
                    type: string
                team_name:
                    type: string
                channel_id:
                    type: string
                channel_name:
                    type: string
                sast_enabled:
                    type: boolean
                sca_enabled:
                    type: boolean
                products:
                    type: array
                    items:
                        type: string
                projects:
                    type: array
                    items:
                        type: string
                policies:
                    type: array
                    items:
                        type: string
        protos.sms.v2.AdditionalConfig:
            type: object
            properties:
                maven:
                    $ref: '#/components/schemas/protos.sms.v2.MavenConfig'
                pypi:
                    $ref: '#/components/schemas/protos.sms.v2.PypiConfig'
                npm:
                    $ref: '#/components/schemas/protos.sms.v2.NpmConfig'
        protos.sms.v2.CodeArtifactCredentials:
            type: object
            properties:
                assumeRoleArn:
                    example: arn:aws:iam::123456789012:role/my-codeartifact-role
                    type: string
                    description: The ARN of the IAM role to assume for CodeArtifact access.
        protos.sms.v2.DeletePackageManagerAuthConfigsResponse:
            type: object
            properties:
                packageManagerConfigId:
                    example: 123
                    type: integer
                    description: The unique identifier of the deleted package manager configuration.
        protos.sms.v2.GetPackageManagerAuthConfigsResponse:
            type: object
            properties:
                packageManagerConfigsWithCredentials:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.sms.v2.PackageManagerConfigWithCredentials'
                    description: List of package manager configurations with their encrypted credentials.
        protos.sms.v2.GetScaResolutionConfigsResponse:
            type: object
            properties:
                resolutionConfigs:
                    $ref: '#/components/schemas/protos.sms.v2.ScaResolutionConfigMapping'
        protos.sms.v2.MavenConfig:
            type: object
            properties:
                repositoryType:
                    example: MAVEN_REPOSITORY_TYPE_RELEASE
                    enum:
                        - MAVEN_REPOSITORY_TYPE_RELEASE
                        - MAVEN_REPOSITORY_TYPE_SNAPSHOT
                        - MAVEN_REPOSITORY_TYPE_BOTH
                    type: string
                    description: |+
                        Specifies whether this Maven repository serves release artifacts, snapshot artifacts, or both.

                        | value | description |
                        |-------|---------------|
                        | MAVEN_REPOSITORY_TYPE_RELEASE |  |
                        | MAVEN_REPOSITORY_TYPE_SNAPSHOT |  |
                        | MAVEN_REPOSITORY_TYPE_BOTH |  |

                    format: enum
        protos.sms.v2.MavenCredentials:
            type: object
            properties:
                username:
                    example: my-username
                    type: string
                    description: Username for Maven repository authentication.
                password:
                    example: my-password
                    type: string
                    description: Password for Maven repository authentication.
        protos.sms.v2.NpmConfig:
            type: object
            properties:
                scope:
                    example:
                    type: string
                    description: npm scope this registry serves (e.g. @my-org). Optional; omit for a default registry.
        protos.sms.v2.NpmCredentials:
            type: object
            properties:
                token:
                    example: <registry auth token>
                    type: string
                    description: npm registry auth token.
                basicAuth:
                    $ref: '#/components/schemas/protos.sms.v2.NpmCredentials_BasicAuth'
        protos.sms.v2.NpmCredentials_BasicAuth:
            type: object
            properties:
                username:
                    example: my-username
                    type: string
                    description: Username for basic-auth npm registries.
                password:
                    example: my-password
                    type: string
                    description: Password for basic-auth npm registries.
        protos.sms.v2.PackageManagerConfig:
            type: object
            properties:
                id:
                    example: 123
                    type: integer
                    description: The unique identifier for the package manager configuration.
                name:
                    example: Corporate Maven Repository
                    type: string
                    description: A human-readable name for the package manager configuration.
                url:
                    example: https://repo.mycompany.com/maven2
                    type: string
                    description: The URL of the package manager repository.
                requiresAuth:
                    example: true
                    type: boolean
                    description: Whether this package manager repository requires authentication.
                ecosystem:
                    example: maven
                    enum:
                        - no_package_manager
                        - npm
                        - pypi
                        - gomod
                        - cargo
                        - maven
                        - gem
                        - composer
                        - nuget
                        - pub
                        - swiftpm
                        - hex
                        - cocoapods
                        - mix
                        - opam
                    type: string
                    description: |+
                        The package manager ecosystem (e.g., Maven, PyPI).

                        | value | description |
                        |-------|---------------|
                        | no_package_manager |  |
                        | npm |  |
                        | pypi |  |
                        | gomod |  |
                        | cargo |  |
                        | maven |  |
                        | gem |  |
                        | composer |  |
                        | nuget |  |
                        | pub |  |
                        | swiftpm |  |
                        | hex |  |
                        | cocoapods |  |
                        | mix |  |
                        | opam |  |

                    format: enum
                deploymentId:
                    example: 456
                    type: integer
                    description: The unique identifier for the deployment this configuration belongs to.
                useNetworkBroker:
                    example: false
                    type: boolean
                    description: Whether or not requests to this package registry should be routed through the network broker.
                additionalConfig:
                    $ref: '#/components/schemas/protos.sms.v2.AdditionalConfig'
            description: |-
                Represents properties of the PackageManagerConfig model
                 without the credentials
        protos.sms.v2.PackageManagerConfigForInsert:
            type: object
            properties:
                config:
                    $ref: '#/components/schemas/protos.sms.v2.PackageManagerConfig'
                maven:
                    $ref: '#/components/schemas/protos.sms.v2.MavenCredentials'
                pypi:
                    $ref: '#/components/schemas/protos.sms.v2.PypiCredentials'
                codeArtifact:
                    $ref: '#/components/schemas/protos.sms.v2.CodeArtifactCredentials'
                npm:
                    $ref: '#/components/schemas/protos.sms.v2.NpmCredentials'
            description: Should not be used except for when creating new configs
        protos.sms.v2.PackageManagerConfigWithCredentials:
            type: object
            properties:
                config:
                    $ref: '#/components/schemas/protos.sms.v2.PackageManagerConfig'
                credentials:
                    $ref: '#/components/schemas/protos.encryption.v1.EncryptedValueDictMessage'
            description: PackageManagerConfig properties with encrypted credentials
        protos.sms.v2.PostPackageManagerAuthCredentialsRequest:
            type: object
            properties:
                deploymentId:
                    type: integer
                    description: The unique identifier for the deployment.
                packageManagerConfigForInsert:
                    $ref: '#/components/schemas/protos.sms.v2.PackageManagerConfigForInsert'
        protos.sms.v2.PostPackageManagerAuthCredentialsResponse:
            type: object
            properties:
                packageManagerConfig:
                    $ref: '#/components/schemas/protos.sms.v2.PackageManagerConfig'
        protos.sms.v2.PypiConfig:
            type: object
            properties: {}
        protos.sms.v2.PypiCredentials:
            type: object
            properties:
                username:
                    example: my-username
                    type: string
                    description: Username for PyPI repository authentication.
                password:
                    example: my-password
                    type: string
                    description: Password for PyPI repository authentication.
        protos.sms.v2.ScaResolutionConfig:
            type: object
            properties:
                configVersion:
                    type: integer
                    format: int32
                miseTools:
                    type: object
                    additionalProperties:
                        type: string
                envVars:
                    type: object
                    additionalProperties:
                        type: string
                systemPackages:
                    type: array
                    items:
                        type: string
                commands:
                    type: array
                    items:
                        type: string
                outputPath:
                    type: string
                outputFormat:
                    enum:
                        - SCA_RESOLUTION_OUTPUT_FORMAT_CYCLONEDX_JSON
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | SCA_RESOLUTION_OUTPUT_FORMAT_CYCLONEDX_JSON |  |

                    format: enum
                resolutionTimeoutS:
                    type: integer
                    format: int64
            description: A single resolution configuration for a subproject.
        protos.sms.v2.ScaResolutionConfigMapping:
            type: object
            properties:
                perSubproject:
                    type: object
                    additionalProperties:
                        $ref: '#/components/schemas/protos.sms.v2.ScaResolutionConfig'
            description: Maps subproject IDs to their resolution configurations.
        protos.sms.v2.UpdatePackageManagerAuthCredentialsRequest:
            type: object
            properties:
                deploymentId:
                    type: integer
                    description: The unique identifier for the deployment.
                packageManagerConfigId:
                    example: 123
                    type: integer
                    description: The unique identifier for the package manager configuration to update.
                packageManagerConfigForInsert:
                    $ref: '#/components/schemas/protos.sms.v2.PackageManagerConfigForInsert'
        protos.sms.v2.UpdatePackageManagerAuthCredentialsResponse:
            type: object
            properties:
                packageManagerConfig:
                    $ref: '#/components/schemas/protos.sms.v2.PackageManagerConfig'
        protos.support.v1.CreateSupportCaseRequest:
            type: object
            properties:
                subject:
                    type: string
                description:
                    type: string
                type:
                    enum:
                        - TYPE_FEATURE_REQUEST
                        - TYPE_BUG_FIX
                        - TYPE_QUESTION
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | TYPE_FEATURE_REQUEST |  |
                        | TYPE_BUG_FIX |  |
                        | TYPE_QUESTION |  |

                    format: enum
                email:
                    type: string
                priority:
                    enum:
                        - PRIORITY_URGENT
                        - PRIORITY_HIGH
                        - PRIORITY_MEDIUM
                        - PRIORITY_LOW
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | PRIORITY_URGENT |  |
                        | PRIORITY_HIGH |  |
                        | PRIORITY_MEDIUM |  |
                        | PRIORITY_LOW |  |

                    format: enum
                organizationId:
                    type: string
                deploymentId:
                    type: string
        protos.support.v1.CreateSupportCaseResponse:
            type: object
            properties: {}
        protos.support.v1.ListSupportCasesResponse:
            type: object
            properties:
                supportCases:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.support.v1.SupportCase'
        protos.support.v1.SupportCase:
            type: object
            properties:
                priority:
                    type: string
                status:
                    type: string
                caseType:
                    type: string
                subject:
                    type: string
                description:
                    type: string
                createdAt:
                    type: string
                caseOwner:
                    type: string
                caseNumber:
                    type: string
        protos.survey.v1.CreateSurveyResponseRequest:
            type: object
            properties:
                surveyName:
                    type: string
                data:
                    type: object
        protos.survey.v1.CreateSurveyResponseResponse:
            type: object
            properties:
                response:
                    $ref: '#/components/schemas/protos.survey.v1.SurveyResponse'
        protos.survey.v1.GetSurveyResponseResponse:
            type: object
            properties:
                response:
                    $ref: '#/components/schemas/protos.survey.v1.SurveyResponse'
        protos.survey.v1.SurveyResponse:
            type: object
            properties:
                surveyName:
                    type: string
                data:
                    type: object
                id:
                    type: integer
                    format: int32
                userId:
                    type: integer
                    format: int32
                submittedAt:
                    type: string
        protos.tasks.v1.GetTaskResultResponse:
            type: object
            properties:
                taskResult:
                    $ref: '#/components/schemas/protos.tasks.v1.TaskResult'
                taskGroupResult:
                    $ref: '#/components/schemas/protos.tasks.v1.TaskGroupResult'
        protos.tasks.v1.TaskGroupResult:
            title: Task Group Result
            type: object
            properties:
                status:
                    enum:
                        - TASK_STATUS_IN_PROGRESS
                        - TASK_STATUS_COMPLETED
                        - TASK_STATUS_FAILED
                        - TASK_STATUS_TERMINATED
                    type: string
                    description: |+
                        The overall status of the task group.

                        | value | description |
                        |-------|---------------|
                        | TASK_STATUS_IN_PROGRESS | The task is scheduled or running. |
                        | TASK_STATUS_COMPLETED | The task has completed. |
                        | TASK_STATUS_FAILED | The task has failed. |
                        | TASK_STATUS_TERMINATED | The task will no longer run but neither succeeded nor failed. |

                    format: enum
                completedCount:
                    type: string
                    description: The number of tasks that have completed.
                totalCount:
                    type: string
                    description: The total number of tasks in the group.
                taskResults:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.tasks.v1.TaskResult'
                    description: The result of each task in the group, in dispatch order.
            description: The status and results of a task group.
        protos.tasks.v1.TaskResult:
            title: Task Result
            type: object
            properties:
                status:
                    enum:
                        - TASK_STATUS_IN_PROGRESS
                        - TASK_STATUS_COMPLETED
                        - TASK_STATUS_FAILED
                        - TASK_STATUS_TERMINATED
                    type: string
                    description: |+
                        The current status of the task.

                        | value | description |
                        |-------|---------------|
                        | TASK_STATUS_IN_PROGRESS | The task is scheduled or running. |
                        | TASK_STATUS_COMPLETED | The task has completed. |
                        | TASK_STATUS_FAILED | The task has failed. |
                        | TASK_STATUS_TERMINATED | The task will no longer run but neither succeeded nor failed. |

                    format: enum
                resultString:
                    type: string
                    description: A string version of the task's result, if applicable.
            description: The status and result of a task.
        protos.ticketing.v1.ExternalTicket:
            type: object
            properties:
                url:
                    type: string
                    description: URL of the external ticket.
                externalSlug:
                    type: string
                    description: Identifier of the external ticket (e.g. for Jira, something like OPS-158).
                id:
                    type: string
                    description: Nango ticket id
                linkedIssueIds:
                    type: array
                    items:
                        type: string
                    description: Semgrep issue ids that are linked to this external ticket
        protos.ticketing.v1.TicketAttempt:
            type: object
            properties:
                attemptedAt:
                    type: string
                    description: Date that the ticket was last attempted
                    format: date-time
                responseMessage:
                    type: string
                    description: The (error) message returned when the attempt was made
        protos.ticketing.v2.AutomationStates:
            type: object
            properties:
                sast:
                    type: boolean
                sca:
                    type: boolean
                secrets:
                    type: boolean
                scaMaliciousDeps:
                    type: boolean
                aiSast:
                    type: boolean
        protos.ticketing.v2.DeleteNangoTicketResponse:
            type: object
            properties:
                issueIds:
                    type: array
                    items:
                        type: string
        protos.ticketing.v2.GetNangoTicketingInstancesResponse:
            type: object
            properties:
                instances:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.ticketing.v2.TicketingInstanceWithMetadata'
        protos.ticketing.v2.JiraTransition:
            type: object
            properties:
                jiraTransitionId:
                    type: string
                semgrepAggregateState:
                    type: string
        protos.ticketing.v2.LinkTicketRequest:
            type: object
            properties:
                ticketUrl:
                    type: string
                    description: The URL of the external ticket to link (e.g. https://myorg.atlassian.net/browse/SEC-123).
                issueIds:
                    type: array
                    items:
                        type: integer
                        format: int32
                    description: An array of Semgrep finding IDs to link the ticket to.
            description: LinkTicket
        protos.ticketing.v2.LinkTicketResponse:
            type: object
            properties:
                ticketId:
                    type: integer
                    format: int32
                ticketUrl:
                    type: string
                externalSlug:
                    type: string
                linkedIssueIds:
                    type: array
                    items:
                        type: integer
                        format: int32
                replacedIssueIds:
                    type: array
                    items:
                        type: integer
                        format: int32
        protos.ticketing.v2.NangoCreateTicketsRequest:
            type: object
            properties:
                groupIssues:
                    type: boolean
                    default: true
                    description: Whether to group issues from the same rule and repository into a single ticket.
                projectId:
                    type: string
                    description: Optionally specify which Jira project the ticket should be created in. If not specified, the default project configured in your integration settings will be used.
                issueIds:
                    type: array
                    items:
                        type: integer
                        format: int32
                issueType:
                    enum:
                        - ISSUE_TYPE_SAST
                        - ISSUE_TYPE_SCA
                        - ISSUE_TYPE_SECRETS
                        - ISSUE_TYPE_RESEARCH
                        - ISSUE_TYPE_AI_SAST
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | ISSUE_TYPE_SAST | Detected by Code rules |
                        | ISSUE_TYPE_SCA | Detected by Supply Chain rules |
                        | ISSUE_TYPE_SECRETS | Detected by Secrets rules |
                        | ISSUE_TYPE_RESEARCH | Detected by research rules or scanners |
                        | ISSUE_TYPE_AI_SAST | Detected by AI detection code scanning |

                    format: enum
                issueFilters:
                    $ref: '#/components/schemas/protos.issues.v1.IssuesFilter'
                issueTypes:
                    enum:
                        - ISSUE_TYPE_SAST
                        - ISSUE_TYPE_SCA
                        - ISSUE_TYPE_SECRETS
                        - ISSUE_TYPE_RESEARCH
                        - ISSUE_TYPE_AI_SAST
                    type: array
                    items:
                        enum:
                            - ISSUE_TYPE_UNSPECIFIED
                            - ISSUE_TYPE_SAST
                            - ISSUE_TYPE_SCA
                            - ISSUE_TYPE_SECRETS
                            - ISSUE_TYPE_RESEARCH
                            - ISSUE_TYPE_AI_SAST
                        type: string
                        format: enum
                    description: |+
                        Filters issues to those with any of the specified types (based on the product which produced these issues).
                         When empty, falls back to the deprecated issue_type field for backward compatibility.

                        | value | description |
                        |-------|---------------|
                        | ISSUE_TYPE_SAST | Detected by Code rules |
                        | ISSUE_TYPE_SCA | Detected by Supply Chain rules |
                        | ISSUE_TYPE_SECRETS | Detected by Secrets rules |
                        | ISSUE_TYPE_RESEARCH | Detected by research rules or scanners |
                        | ISSUE_TYPE_AI_SAST | Detected by AI detection code scanning |

            description: NangoCreateTickets
        protos.ticketing.v2.NangoCreateTicketsResponse:
            type: object
            properties:
                succeeded:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.ticketing.v2.NangoCreateTicketsResponse_TicketSucceededResult'
                failed:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.ticketing.v2.NangoCreateTicketsResponse_TicketFailedResult'
                skipped:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.ticketing.v2.NangoCreateTicketsResponse_TicketSkippedResult'
        protos.ticketing.v2.NangoCreateTicketsResponse_TicketFailedResult:
            type: object
            properties:
                issueIds:
                    type: array
                    items:
                        type: integer
                        format: int32
                error:
                    type: string
        protos.ticketing.v2.NangoCreateTicketsResponse_TicketSkippedResult:
            type: object
            properties:
                issueIds:
                    type: array
                    items:
                        type: integer
                        format: int32
                reason:
                    type: string
        protos.ticketing.v2.NangoCreateTicketsResponse_TicketSucceededResult:
            type: object
            properties:
                issueIds:
                    type: array
                    items:
                        type: integer
                        format: int32
                ticketId:
                    type: integer
                    format: int32
                ticketUrl:
                    type: string
                externalSlug:
                    type: string
        protos.ticketing.v2.TicketingInstanceWithMetadata:
            type: object
            properties:
                id:
                    type: integer
                    format: int32
                isConfigured:
                    type: boolean
                isAuthRevoked:
                    type: boolean
                instanceType:
                    type: string
                subdomain:
                    type: string
                projectId:
                    type: string
                issueTypeId:
                    type: string
                fields:
                    type: object
                automationStates:
                    $ref: '#/components/schemas/protos.ticketing.v2.AutomationStates'
                transitionStates:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.ticketing.v2.JiraTransition'
                subtaskIssueTypeId:
                    type: string
        protos.ticketing.v2.UnlinkTicketRequest:
            type: object
            properties:
                issueIds:
                    type: array
                    items:
                        type: integer
                        format: int32
                    description: An array of Semgrep finding IDs to unlink tickets from.
            description: UnlinkTicket
        protos.ticketing.v2.UnlinkTicketResponse:
            type: object
            properties:
                unlinkedIssueIds:
                    type: array
                    items:
                        type: integer
                        format: int32
        protos.token.v1.DeleteTokensResponse:
            type: object
            properties:
                deletedCount:
                    example: 5
                    type: integer
                    description: The number of tokens that were deleted.
                    format: int64
        protos.versions.v1.GetProjectVersionInfoResponse:
            type: object
            properties:
                projectInfo:
                    type: array
                    items:
                        $ref: '#/components/schemas/protos.versions.v1.GetProjectVersionInfoResponse_ProjectVersionInfo'
        protos.versions.v1.GetProjectVersionInfoResponse_ProjectVersionInfo:
            type: object
            properties:
                repositoryName:
                    type: string
                repositoryId:
                    type: string
                cliVersion:
                    type: string
                scanEnvironment:
                    enum:
                        - SCAN_ENVIRONMENT_LOCAL
                        - SCAN_ENVIRONMENT_MANAGED_SCANS
                        - SCAN_ENVIRONMENT_GITHUB_ACTIONS
                        - SCAN_ENVIRONMENT_GITLAB_CI
                        - SCAN_ENVIRONMENT_BITBUCKET
                        - SCAN_ENVIRONMENT_JENKINS
                        - SCAN_ENVIRONMENT_CIRCLECI
                        - SCAN_ENVIRONMENT_BUILDKITE
                        - SCAN_ENVIRONMENT_AZURE_PIPELINES
                    type: string
                    description: |4+

                        | value | description |
                        |-------|---------------|
                        | SCAN_ENVIRONMENT_LOCAL |  |
                        | SCAN_ENVIRONMENT_MANAGED_SCANS |  |
                        | SCAN_ENVIRONMENT_GITHUB_ACTIONS |  |
                        | SCAN_ENVIRONMENT_GITLAB_CI |  |
                        | SCAN_ENVIRONMENT_BITBUCKET |  |
                        | SCAN_ENVIRONMENT_JENKINS |  |
                        | SCAN_ENVIRONMENT_CIRCLECI |  |
                        | SCAN_ENVIRONMENT_BUILDKITE |  |
                        | SCAN_ENVIRONMENT_AZURE_PIPELINES |  |

                    format: enum
    securitySchemes:
        SemgrepWebToken:
            type: http
            description: |-
                Get access to data with your API token. Example header:

                `Authorization: Bearer 2991e2fb4b540fe75b8f90677b0b892b6314e4961cb001fe6eb452eee248a628`

                The token can be provisioned from the Tokens section in your Settings, and requires explicitly enabling `Web API` access.
            scheme: bearer
            bearerFormat: string
        SemgrepJWT:
            type: http
            description: Get access to data with your user's JSON Web Token.
            scheme: bearer
            bearerFormat: string
        SemgrepAdminJWT:
            type: http
            description: Get access to data with a Semgrep Admin JSON Web Token.
            scheme: bearer
            bearerFormat: string
tags:
    - name: AiFixJobsService
      description: Manage AI fix jobs for automated security fixes
      x-displayName: AI Fix Jobs
    - name: AiTasksService
      description: Manage AI tasks, such as triage, auto-triage, and issue tagging backfill
      x-displayName: Ai Tasks
    - name: AutofixService
      description: Trigger automated fixes for SAST, AI SAST, and SCA issues.
      x-displayName: Autofix
    - name: AutomationsService
      description: Automations are a way to automatically take actions on findings based on certain conditions.
      x-displayName: Automations
    - name: AutomationsService
      description: Automations are a way to automatically take actions on findings based on certain conditions.
      x-displayName: Automations
    - name: AutotriageFeedbackService
      description: Feedback for the quality of autotriage, guidance or autofix
      x-displayName: Autotriage Feedback
    - name: ChecklistService
      description: Manage onboarding checklist
      x-displayName: Onboarding Checklist
    - name: DeploymentProductsService
      description: Manage deployment product configurations.
      x-displayName: Deployment Products
    - name: DeploymentService
      description: Manage deployment and its resources.
      x-displayName: Deployment
    - name: DeploymentSsoProvidersService
      description: Manage Deployment SSO Providers
      x-displayName: Deployment SSO Providers
    - name: DeploymentTagService
      description: Assign tags to a deployment.
      x-displayName: Deployment Tags
    - name: DeploymentsService
      description: Deployments encapsulate your organization's security organization, with multiple projects, policies, and integrations. As the root object of the organization, they're similarly the root object of the API.
      x-displayName: Deployments
    - name: EditorService
      description: Run Semgrep patterns against target code in the editor playground
      x-displayName: Editor
    - name: ExternalTicketingService
      description: APIs that power the External Ticketing experience.
      x-displayName: External Ticketing
    - name: FeatureRolloutsService
      description: View feature flags rolled out to all deployments
      x-displayName: Feature Rollouts
    - name: IgnoresService
      description: API for managing global ignores. See https://semgrep.dev/docs/ignoring-files-folders-code
      x-displayName: Global Ignores
    - name: InfrastructureConfigurationsService
      description: Infrastructure configuration information.
      x-displayName: Infrastructure Configurations
    - name: IssuesService
      description: Manage findings found by Semgrep scans
      x-displayName: Issues
    - name: ManagedScanSettingsService
      description: Settings that affect all of a deployment's managed scans
      x-displayName: Managed Scan Settings
    - name: MemoriesService
      description: Memories help reduce noise from findings.
      x-displayName: Memories
    - name: MiscService
      description: Miscellaneous endpoints
      x-displayName: Misc
    - name: NotificationRulesService
      description: Setup rules to get notified about new findings
      x-displayName: Notification Rules
    - name: NotificationWebhooksService
      description: Manage webhook endpoints for deployment notifications.
      x-displayName: Notification Webhooks
    - name: NotificationsService
      description: Notifications show in-app toasts to users.
      x-displayName: Notifications
    - name: PoliciesService
      description: |-
        **Deprecated.** View and manage the Policies of your organization.

        This API is deprecated. Use the [Policies V2 API](/api/v2/docs/#tag/PoliciesV2Service) instead. Deployments on the Unified Policies model must use Policies V2; this service stops working after the migration.
      x-displayName: Policies
    - name: PoliciesV2Service
      description: 'Declarative management of detection and remediation policies for deployments on the Unified Policies model. Designed for GitOps-style reconciliation: read the current bundle, edit it, preview the diff with a dry run, then apply it strictly with optimistic concurrency control.'
      x-displayName: Policies V2
    - name: ProjectManagedScanSettingsService
      description: Settings that affect a specific project's managed scans
      x-displayName: Projects – Managed Scan Settings
    - name: ProjectsService
      description: Projects are groups of files that are scanned by Semgrep. These normally correspond to repositories.
      x-displayName: Projects
    - name: ProjectsService
      description: Projects are groups of files that are scanned by Semgrep. These normally correspond to repositories.
      x-displayName: Projects
    - name: ReportsService
      description: APIs for Reporting Dashboards
      x-displayName: Reporting
    - name: ReviewCommentProductContentService
      description: Review comment product content is a way to add additional per-product information to a review comment.
      x-displayName: Review Comment Product Content
    - name: RuleboardService
      description: |-
        The [Policies API](/api/v2/docs/#tag/PoliciesService) is *strongly* recommended. It is also newer than this Ruleboard service. Deployments on the Unified Policies model use the [Policies V2 API](/api/v2/docs/#tag/PoliciesV2Service) instead; this service stops working after the migration.

        Manage Ruleboards (sets of policies).
      x-displayName: Ruleboards
    - name: ScansService
      description: View details of scans associated with projects in your organization.
      x-displayName: Scans
    - name: ScmAppsService
      description: Manage connections to source code management systems (Github, Gitlab, etc.)
      x-displayName: Source Code Management (SCM) App
    - name: ScmService
      description: Manage connections to source code management systems (Github, Gitlab, etc.)
      x-displayName: Source Code Management (SCM) Configs
    - name: ScmSubscriptionsService
      description: Manage SCM Webhook Subscriptions
      x-displayName: Source Code Management (SCM) Webhooks
    - name: SlackService
    - name: SmsPackageManagerConfigService
      description: Manage authentication configurations for package managers used in Supply Chain Analysis (SCA) scans.
      x-displayName: Supply Chain - SMS Package Manager Configurations
    - name: SmsScaResolutionConfigService
      description: Retrieve custom dependency resolution configurations for lockfileless scans.
      x-displayName: Supply Chain - SMS SCA Resolution Configurations
    - name: SupplyChain2Service
      description: The Supply Chain is all of the dependencies of code, rather than the code itself. This service gives information about the supply chain.
      x-displayName: Supply Chain
    - name: SupportService
      description: Create and List Support Cases
      x-displayName: Support Service
    - name: SurveysService
      description: Retrieve and submit company surveys
      x-displayName: Surveys
    - name: TasksService
      description: Many tasks are done asynchronously; this service deals with managing async tasks.
      x-displayName: Tasks
    - name: TeamsService
      description: Teams are used to manage access control for resources within a deployment. For more information visit https://semgrep.dev/docs/deployment/teams.
      x-displayName: Teams
    - name: TokenService
      description: Tokens are used for programmatic access to the Semgrep Cloud Platform APIs.
      x-displayName: Tokens
    - name: UsersService
      description: Manage user accounts, settings, and organization memberships
      x-displayName: Users Auth Service
    - name: VersionsService
      description: Semgrep version information
      x-displayName: Versions
    - name: WizCredentialService
      description: Manage Wiz credentials
      x-displayName: Wiz Credentials
