> ## Documentation Index
> Fetch the complete documentation index at: https://www.c1.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Finding State

> Update finding workflow state (snooze, accept risk, suppress, reopen, resolve).



## OpenAPI

````yaml https://spec.speakeasy.com/conductor-one/conductorone/my-source-with-code-samples post /api/v1/findings/{finding_id}/state
openapi: 3.1.0
info:
  description: The C1 API is a HTTP API for managing C1 resources.
  title: C1 API
  version: 0.1.0-alpha
servers:
  - description: The C1 API server for the current tenant.
    url: https://{tenantDomain}.conductor.one
    variables:
      tenantDomain:
        default: example
        description: The domain of the tenant to use for this request.
security:
  - bearerAuth: []
    oauth: []
paths:
  /api/v1/findings/{finding_id}/state:
    post:
      tags:
        - Findings
      summary: Update Finding State
      description: >-
        Update finding workflow state (snooze, accept risk, suppress, reopen,
        resolve).
      operationId: c1.api.finding.v1.FindingService.UpdateFindingState
      parameters:
        - in: path
          name: finding_id
          required: true
          schema:
            description: The ID of the finding whose state to update.
            readOnly: false
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/c1.api.finding.v1.UpdateFindingStateRequestInput
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/c1.api.finding.v1.UpdateFindingStateResponse
          description: Successful response
      x-codeSamples:
        - lang: go
          label: UpdateFindingState
          source: "package main\n\nimport(\n\t\"context\"\n\t\"github.com/conductorone/conductorone-sdk-go/pkg/models/shared\"\n\tconductoronesdkgo \"github.com/conductorone/conductorone-sdk-go\"\n\t\"github.com/conductorone/conductorone-sdk-go/pkg/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n    ctx := context.Background()\n\n    s := conductoronesdkgo.New(\n        conductoronesdkgo.WithSecurity(shared.Security{\n            BearerAuth: \"<YOUR_BEARER_TOKEN_HERE>\",\n            Oauth: \"<YOUR_OAUTH_HERE>\",\n        }),\n    )\n\n    res, err := s.Finding.UpdateFindingState(ctx, operations.C1APIFindingV1FindingServiceUpdateFindingStateRequest{\n        FindingID: \"<id>\",\n    })\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res.UpdateFindingStateResponse != nil {\n        // handle response\n    }\n}"
        - lang: typescript
          label: Typescript (SDK)
          source: >-
            import { ConductoroneSDKTypescript } from
            "conductorone-sdk-typescript";


            const conductoroneSDKTypescript = new ConductoroneSDKTypescript({
              security: {
                bearerAuth: "<YOUR_BEARER_TOKEN_HERE>",
                oauth: "<YOUR_OAUTH_HERE>",
              },
            });


            async function run() {
              const result = await conductoroneSDKTypescript.finding.updateFindingState({
                findingId: "<id>",
              });

              console.log(result);
            }


            run();
components:
  schemas:
    c1.api.finding.v1.UpdateFindingStateRequestInput:
      description: >
        The UpdateFindingStateRequest message.


        This message contains a oneof named action. Only a single field of the
        following list may be set at a time:
          - snooze
          - suppress
          - acceptRisk
          - unsuppress
          - resolve
          - reopen
      properties:
        acceptRisk:
          $ref: '#/components/schemas/c1.api.finding.v1.AcceptRiskAction'
        reopen:
          $ref: '#/components/schemas/c1.api.finding.v1.ReopenAction'
        resolve:
          $ref: '#/components/schemas/c1.api.finding.v1.ResolveAction'
        snooze:
          $ref: '#/components/schemas/c1.api.finding.v1.SnoozeAction'
        suppress:
          $ref: '#/components/schemas/c1.api.finding.v1.SuppressStateAction'
        unsuppress:
          $ref: '#/components/schemas/c1.api.finding.v1.UnsuppressAction'
      title: Update Finding State Request
      type: object
      x-speakeasy-name-override: UpdateFindingStateRequest
    c1.api.finding.v1.UpdateFindingStateResponse:
      description: The UpdateFindingStateResponse message.
      properties:
        finding:
          $ref: '#/components/schemas/c1.api.finding.v1.Finding'
      title: Update Finding State Response
      type: object
      x-speakeasy-name-override: UpdateFindingStateResponse
    c1.api.finding.v1.AcceptRiskAction:
      description: AcceptRiskAction parameters for UpdateFindingState.
      nullable: true
      properties:
        expiresAt:
          format: date-time
          readOnly: false
          type: string
        justification:
          description: The justification field.
          readOnly: false
          type: string
      title: Accept Risk Action
      type: object
      x-speakeasy-name-override: AcceptRiskAction
    c1.api.finding.v1.ReopenAction:
      description: ReopenAction parameters for UpdateFindingState.
      nullable: true
      title: Reopen Action
      type: object
      x-speakeasy-name-override: ReopenAction
    c1.api.finding.v1.ResolveAction:
      description: ResolveAction parameters for UpdateFindingState (manual resolve).
      nullable: true
      properties:
        reason:
          description: The reason field.
          readOnly: false
          type: string
      title: Resolve Action
      type: object
      x-speakeasy-name-override: ResolveAction
    c1.api.finding.v1.SnoozeAction:
      description: SnoozeAction parameters for UpdateFindingState.
      nullable: true
      properties:
        reason:
          description: The reason field.
          readOnly: false
          type: string
        snoozeUntil:
          format: date-time
          readOnly: false
          type: string
      title: Snooze Action
      type: object
      x-speakeasy-name-override: SnoozeAction
    c1.api.finding.v1.SuppressStateAction:
      description: SuppressStateAction parameters for UpdateFindingState.
      nullable: true
      properties:
        reason:
          description: The reason field.
          readOnly: false
          type: string
      title: Suppress State Action
      type: object
      x-speakeasy-name-override: SuppressStateAction
    c1.api.finding.v1.UnsuppressAction:
      deprecated: true
      description: UnsuppressAction parameters for UpdateFindingState.
      nullable: true
      title: Unsuppress Action
      type: object
      x-speakeasy-name-override: UnsuppressAction
    c1.api.finding.v1.Finding:
      description: >
        The Finding message.


        This message contains a oneof named finding_type. Only a single field of
        the following list may be set at a time:
          - similarUsernameMatch
          - serviceAccountMisclassification


        This message contains a oneof named target. Only a single field of the
        following list may be set at a time:
          - identityUserTarget
          - appUserTarget


        This message contains a oneof named evidence. Only a single field of the
        following list may be set at a time:
          - similarUsernameMatchEvidence
          - serviceAccountMisclassificationEvidence
      properties:
        appId:
          description: The appId field.
          readOnly: false
          type: string
        appUserTarget:
          $ref: '#/components/schemas/c1.api.finding.v1.AppUserTarget'
        assignedOwner:
          $ref: '#/components/schemas/c1.api.finding.v1.FindingOwnerRef'
        computedOwner:
          $ref: '#/components/schemas/c1.api.finding.v1.FindingOwnerRef'
        createdAt:
          format: date-time
          readOnly: false
          type: string
        customTags:
          additionalProperties:
            type: string
          description: The customTags field.
          readOnly: false
          type: object
        fingerprint:
          description: The fingerprint field.
          readOnly: false
          type: string
        firstObservedAt:
          format: date-time
          readOnly: false
          type: string
        id:
          description: The id field.
          readOnly: false
          type: string
        identityUserTarget:
          $ref: '#/components/schemas/c1.api.finding.v1.IdentityUserTarget'
        lastObservedAt:
          format: date-time
          readOnly: false
          type: string
        recurrenceCount:
          description: The recurrenceCount field.
          format: uint32
          readOnly: false
          type: integer
        remediationDescription:
          description: The remediationDescription field.
          readOnly: false
          type: string
        resolvedAt:
          format: date-time
          readOnly: false
          type: string
        riskAcceptanceExpiresAt:
          format: date-time
          readOnly: false
          type: string
        riskAcceptanceJustification:
          description: The riskAcceptanceJustification field.
          readOnly: false
          type: string
        riskScore:
          $ref: '#/components/schemas/c1.api.finding.v1.FindingRiskScore'
        serviceAccountMisclassification:
          $ref: >-
            #/components/schemas/c1.api.finding.v1.ServiceAccountMisclassificationType
        serviceAccountMisclassificationEvidence:
          $ref: >-
            #/components/schemas/c1.api.finding.v1.ServiceAccountMisclassificationEvidence
        severity:
          description: The severity field.
          enum:
            - FINDING_SEVERITY_UNSPECIFIED
            - FINDING_SEVERITY_INFO
            - FINDING_SEVERITY_LOW
            - FINDING_SEVERITY_MEDIUM
            - FINDING_SEVERITY_HIGH
            - FINDING_SEVERITY_CRITICAL
          readOnly: false
          type: string
          x-speakeasy-unknown-values: allow
        similarUsernameMatch:
          $ref: '#/components/schemas/c1.api.finding.v1.SimilarUsernameMatchType'
        similarUsernameMatchEvidence:
          $ref: '#/components/schemas/c1.api.finding.v1.SimilarUsernameMatchEvidence'
        snoozeReason:
          description: The snoozeReason field.
          readOnly: false
          type: string
        snoozeUntil:
          format: date-time
          readOnly: false
          type: string
        sourceDetectorId:
          description: The sourceDetectorId field.
          readOnly: false
          type: string
        state:
          description: The state field.
          enum:
            - FINDING_STATE_UNSPECIFIED
            - FINDING_STATE_OPEN
            - FINDING_STATE_IN_PROGRESS
            - FINDING_STATE_RESOLVED
            - FINDING_STATE_SNOOZED
            - FINDING_STATE_RISK_ACCEPTED
            - FINDING_STATE_SUPPRESSED
          readOnly: false
          type: string
          x-speakeasy-unknown-values: allow
        stateUpdatedById:
          description: The stateUpdatedById field.
          readOnly: false
          type: string
        suppressReason:
          description: The suppressReason field.
          readOnly: false
          type: string
        taskId:
          description: The taskId field.
          readOnly: false
          type: string
        updatedAt:
          format: date-time
          readOnly: false
          type: string
      title: Finding
      type: object
      x-speakeasy-name-override: Finding
    c1.api.finding.v1.AppUserTarget:
      description: The AppUserTarget message.
      nullable: true
      properties:
        appId:
          description: The appId field.
          readOnly: false
          type: string
        appUserId:
          description: The appUserId field.
          readOnly: false
          type: string
      title: App User Target
      type: object
      x-speakeasy-name-override: AppUserTarget
    c1.api.finding.v1.FindingOwnerRef:
      description: >
        The FindingOwnerRef message.


        This message contains a oneof named owner. Only a single field of the
        following list may be set at a time:
          - identityUserId
          - appOwnerAppId
          - managerOfUserId
          - userSetId
      properties:
        appOwnerAppId:
          description: >-
            The appOwnerAppId field.

            This field is part of the `owner` oneof.

            See the documentation for `c1.api.finding.v1.FindingOwnerRef` for
            more details.
          nullable: true
          readOnly: false
          type: string
        identityUserId:
          description: >-
            The identityUserId field.

            This field is part of the `owner` oneof.

            See the documentation for `c1.api.finding.v1.FindingOwnerRef` for
            more details.
          nullable: true
          readOnly: false
          type: string
        managerOfUserId:
          description: >-
            The managerOfUserId field.

            This field is part of the `owner` oneof.

            See the documentation for `c1.api.finding.v1.FindingOwnerRef` for
            more details.
          nullable: true
          readOnly: false
          type: string
        userSetId:
          description: >-
            The userSetId field.

            This field is part of the `owner` oneof.

            See the documentation for `c1.api.finding.v1.FindingOwnerRef` for
            more details.
          nullable: true
          readOnly: false
          type: string
      title: Finding Owner Ref
      type: object
      x-speakeasy-name-override: FindingOwnerRef
    c1.api.finding.v1.IdentityUserTarget:
      description: The IdentityUserTarget message.
      nullable: true
      properties:
        identityUserId:
          description: The identityUserId field.
          readOnly: false
          type: string
      title: Identity User Target
      type: object
      x-speakeasy-name-override: IdentityUserTarget
    c1.api.finding.v1.FindingRiskScore:
      description: The FindingRiskScore message.
      properties:
        originalScore:
          description: The originalScore field.
          format: uint32
          readOnly: false
          type: integer
        overrideByUserId:
          description: The overrideByUserId field.
          readOnly: false
          type: string
        overrideScore:
          description: The overrideScore field.
          format: uint32
          readOnly: false
          type: integer
        riskFactors:
          description: The riskFactors field.
          items:
            $ref: '#/components/schemas/c1.api.finding.v1.FindingRiskFactor'
          nullable: true
          readOnly: false
          type: array
        score:
          description: The score field.
          format: uint32
          readOnly: false
          type: integer
        systemScore:
          description: The systemScore field.
          format: uint32
          readOnly: false
          type: integer
      title: Finding Risk Score
      type: object
      x-speakeasy-name-override: FindingRiskScore
    c1.api.finding.v1.ServiceAccountMisclassificationType:
      description: The ServiceAccountMisclassificationType message.
      nullable: true
      properties:
        currentAccountType:
          description: The currentAccountType field.
          enum:
            - APP_USER_TYPE_UNSPECIFIED
            - APP_USER_TYPE_USER
            - APP_USER_TYPE_SERVICE_ACCOUNT
            - APP_USER_TYPE_SYSTEM_ACCOUNT
          readOnly: false
          type: string
          x-speakeasy-unknown-values: allow
        detectedAccountType:
          description: The detectedAccountType field.
          enum:
            - APP_USER_TYPE_UNSPECIFIED
            - APP_USER_TYPE_USER
            - APP_USER_TYPE_SERVICE_ACCOUNT
            - APP_USER_TYPE_SYSTEM_ACCOUNT
          readOnly: false
          type: string
          x-speakeasy-unknown-values: allow
      title: Service Account Misclassification Type
      type: object
      x-speakeasy-name-override: ServiceAccountMisclassificationType
    c1.api.finding.v1.ServiceAccountMisclassificationEvidence:
      description: The ServiceAccountMisclassificationEvidence message.
      nullable: true
      properties:
        detectionReason:
          description: The detectionReason field.
          readOnly: false
          type: string
      title: Service Account Misclassification Evidence
      type: object
      x-speakeasy-name-override: ServiceAccountMisclassificationEvidence
    c1.api.finding.v1.SimilarUsernameMatchType:
      description: The SimilarUsernameMatchType message.
      nullable: true
      properties:
        proposedIdentityUserId:
          description: The proposedIdentityUserId field.
          readOnly: false
          type: string
      title: Similar Username Match Type
      type: object
      x-speakeasy-name-override: SimilarUsernameMatchType
    c1.api.finding.v1.SimilarUsernameMatchEvidence:
      description: The SimilarUsernameMatchEvidence message.
      nullable: true
      properties:
        appUsername:
          description: The appUsername field.
          readOnly: false
          type: string
        identityUsername:
          description: The identityUsername field.
          readOnly: false
          type: string
        similarityScore:
          description: The similarityScore field.
          readOnly: false
          type: number
      title: Similar Username Match Evidence
      type: object
      x-speakeasy-name-override: SimilarUsernameMatchEvidence
    c1.api.finding.v1.FindingRiskFactor:
      description: The FindingRiskFactor message.
      properties:
        description:
          description: The description field.
          readOnly: false
          type: string
        name:
          description: The name field.
          readOnly: false
          type: string
        severity:
          description: The severity field.
          enum:
            - FINDING_SEVERITY_UNSPECIFIED
            - FINDING_SEVERITY_INFO
            - FINDING_SEVERITY_LOW
            - FINDING_SEVERITY_MEDIUM
            - FINDING_SEVERITY_HIGH
            - FINDING_SEVERITY_CRITICAL
          readOnly: false
          type: string
          x-speakeasy-unknown-values: allow
        weight:
          description: The weight field.
          format: uint32
          readOnly: false
          type: integer
      title: Finding Risk Factor
      type: object
      x-speakeasy-name-override: FindingRiskFactor
  securitySchemes:
    bearerAuth:
      scheme: bearer
      type: http
    oauth:
      description: >-
        This API uses OAuth2 with the Client Credential flow.

        Client Credentials must be sent in the BODY, not the headers.

        For an example of how to implement this, refer to the
        [c1TokenSource.Token()](https://github.com/ConductorOne/conductorone-sdk-go/blob/3375fe7c0126d17e7ec4e711693dee7b791023aa/token_source.go#L101-L187)
        function.
      flows:
        clientCredentials:
          scopes: {}
          tokenUrl: /auth/v1/token
      type: oauth2

````