---
title: "UpdateFeedback"
method: PATCH
path: "/v1/namespaces/{object.tenant_meta.namespace}/feedbacks"
tags: ["FeedbackService"]
---

# UpdateFeedback

`PATCH /v1/namespaces/{object.tenant_meta.namespace}/feedbacks`

## Request

- Base URL: `https://api.endorlabs.com`
- URL: `https://api.endorlabs.com/v1/namespaces/{object.tenant_meta.namespace}/feedbacks`
- Auth: none declared

Updates a feedback with the information in the request body.

## Path parameters

- `object.tenant_meta.namespace` string, required

## Request body

- FeedbackServiceUpdateFeedbackBody: Request to update the ai feedback.
  - `object` object: Feedback represents a feedback in the system.
    - `context` V1Context: Contexts keep objects from different scans separated.
      - `id` string, required: The context ID, such as a pull request ID or branch reference.
      - `tags` string[]: A list of tags applied to a context. Used primarily for CI and SBOM contexts.
      - `type` 'CONTEXT_TYPE_UNSPECIFIED' | 'CONTEXT_TYPE_MAIN' | 'CONTEXT_TYPE_EXTERNAL' | 'CONTEXT_TYPE_CI_RUN' | 'CONTEXT_TYPE_SBOM' | 'CONTEXT_TYPE_REF', required: - CONTEXT_TYPE_MAIN: Objects from a scan of the default branch. All objects in the oss namespace are in the main context. The context id is always "default". - CONTEXT_TYPE_EXTERNAL: Indicates that this object is a copy/temporary value of an object in another project. Used for same-tenant dependencies. In source code reference this is equivalent to "vendor" folders. Package versions in the external context are only scanned for call graphs. No other operations are performed on them. - CONTEXT_TYPE_CI_RUN: Objects from a PR scan. The context id is the PR UUID. Objects in this context are deleted after 30 days. - CONTEXT_TYPE_SBOM: Objects from an SBOM scan. The context id is the SBOM serial number or some other unique identifier. - CONTEXT_TYPE_REF: Objects from a scan of a specific branch. The context id is the branch reference name.
      - `will_be_deleted_at` string, date-time: Time that all objects in this context will be deleted. This field is deprecated and will be removed in the future. Please use the meta.will_be_deleted_at field instead.
    - `meta` V1Meta: Common fields for all Endor Labs resources.
      - `annotations` object: Annotations can be used to attach metadata to a resource message. Annotation values can be small or large, structured or unstructured, and may include characters not permitted by labels. The keys may contain alphanumerics, underscores (_), dots (.) and dashes (-). The values of an annotation must be 16384 bytes or smaller.
      - `create_time` string, date-time: Time the resource was created. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
      - `created_by` string: Name and authentication source of the user who created the object, for example, ewok@endor.ai@google@api-key.
      - `description` string: Resource description. Must be less than 1024 bytes.
      - `index_data` V1IndexData: IndexData is used to index the resource for search. It's an internal object.
        - `data` string[]
        - `search_score` number, float: search_score is the score of the resource for search. Internal use only.
        - `tenant` string
        - `will_be_deleted_at` string, date-time: Time that the resource will be deleted.
      - `kind` string: Resource kind, for example, HelloResponse. Auto-generated using the protobuf message proto.MessageName().Name().
      - `name` string, required: Resource name. Must be 63 characters or less.
      - `parent_kind` string: Parent object resource kind, for example, Project.
      - `parent_uuid` string: Parent object UUID.
      - `references` object: Map of objects referenced in a query API.
      - `tags` string[]: List of tags attached to the resource. Tags can be used to select objects and to find collections of objects that satisfy certain conditions. A tag must be 255 characters or less.
      - `update_time` string, date-time: Time the resource was last updated. Note: Updated on all create/patch/delete operations. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
      - `updated_by` string: Name and authentication source of the last user who updated the object, for example, vulnerabilityingestor@endor.ai@x509.
      - `upsert_time` string, date-time: Time the resource was last upserted. Note: create_time is only set the first time the resource is created. upsert_time is set every time the resource is upseted. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
      - `version` string: Message version.
    - `spec` V1FeedbackSpec
      - `comment` string: The comment associated with the feedback.
      - `feedback_type` 'FEEDBACK_TYPE_UNSPECIFIED' | 'FEEDBACK_TYPE_POSITIVE' | 'FEEDBACK_TYPE_NEGATIVE', required
      - `finding` V1Finding: A finding contains details of a problem that needs to be fixed. The finding applies to the parent object, which can be one of: Repository, RepositoryVersion, or PackageVersion. Finding objects are connected to the project via spec.project_uuid.
        - `context` V1Context, required: Contexts keep objects from different scans separated.
          - `id` string, required: The context ID, such as a pull request ID or branch reference.
          - `tags` string[]: A list of tags applied to a context. Used primarily for CI and SBOM contexts.
          - `type` 'CONTEXT_TYPE_UNSPECIFIED' | 'CONTEXT_TYPE_MAIN' | 'CONTEXT_TYPE_EXTERNAL' | 'CONTEXT_TYPE_CI_RUN' | 'CONTEXT_TYPE_SBOM' | 'CONTEXT_TYPE_REF', required: - CONTEXT_TYPE_MAIN: Objects from a scan of the default branch. All objects in the oss namespace are in the main context. The context id is always "default". - CONTEXT_TYPE_EXTERNAL: Indicates that this object is a copy/temporary value of an object in another project. Used for same-tenant dependencies. In source code reference this is equivalent to "vendor" folders. Package versions in the external context are only scanned for call graphs. No other operations are performed on them. - CONTEXT_TYPE_CI_RUN: Objects from a PR scan. The context id is the PR UUID. Objects in this context are deleted after 30 days. - CONTEXT_TYPE_SBOM: Objects from an SBOM scan. The context id is the SBOM serial number or some other unique identifier. - CONTEXT_TYPE_REF: Objects from a scan of a specific branch. The context id is the branch reference name.
          - `will_be_deleted_at` string, date-time: Time that all objects in this context will be deleted. This field is deprecated and will be removed in the future. Please use the meta.will_be_deleted_at field instead.
        - `meta` V1Meta, required: Common fields for all Endor Labs resources.
          - `annotations` object: Annotations can be used to attach metadata to a resource message. Annotation values can be small or large, structured or unstructured, and may include characters not permitted by labels. The keys may contain alphanumerics, underscores (_), dots (.) and dashes (-). The values of an annotation must be 16384 bytes or smaller.
          - `create_time` string, date-time: Time the resource was created. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
          - `created_by` string: Name and authentication source of the user who created the object, for example, ewok@endor.ai@google@api-key.
          - `description` string: Resource description. Must be less than 1024 bytes.
          - `index_data` V1IndexData: IndexData is used to index the resource for search. It's an internal object.
            - `data` string[]
            - `search_score` number, float: search_score is the score of the resource for search. Internal use only.
            - `tenant` string
            - `will_be_deleted_at` string, date-time: Time that the resource will be deleted.
          - `kind` string: Resource kind, for example, HelloResponse. Auto-generated using the protobuf message proto.MessageName().Name().
          - `name` string, required: Resource name. Must be 63 characters or less.
          - `parent_kind` string: Parent object resource kind, for example, Project.
          - `parent_uuid` string: Parent object UUID.
          - `references` object: Map of objects referenced in a query API.
          - `tags` string[]: List of tags attached to the resource. Tags can be used to select objects and to find collections of objects that satisfy certain conditions. A tag must be 255 characters or less.
          - `update_time` string, date-time: Time the resource was last updated. Note: Updated on all create/patch/delete operations. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
          - `updated_by` string: Name and authentication source of the last user who updated the object, for example, vulnerabilityingestor@endor.ai@x509.
          - `upsert_time` string, date-time: Time the resource was last upserted. Note: create_time is only set the first time the resource is created. upsert_time is set every time the resource is upseted. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
          - `version` string: Message version.
        - `spec` V1FindingSpec, required: Finding specific data.
          - `actions` V1Actions: Metadata added by the admission or notification policy scanner.
            - `ci_blocker_since` string, date-time: Time the finding first matched a blocking action policy. Reset if the finding no longer matches a blocking action policy. See also FINDING_TAGS_CI_BLOCKER in spec.finding_tags.
            - `ci_warning_since` string, date-time: Time the finding first matched a warning action policy. Reset if the finding no longer matches a warning action policy. See also FINDING_TAGS_CI_WARNING in spec.finding_tags.
            - `policy_uuids` string[]: List of action policies triggered by this finding.
          - `approximation` boolean: True if this finding is for an approximate dependency based on the unresolved package dependencies.
          - `call_graph_analysis_type` 'CALL_GRAPH_ANALYSIS_TYPE_UNSPECIFIED' | 'CALL_GRAPH_ANALYSIS_TYPE_FULL' | 'CALL_GRAPH_ANALYSIS_TYPE_PRECOMPUTED': Call graph analysis type for findings. - CALL_GRAPH_ANALYSIS_TYPE_UNSPECIFIED: Unspecified call graph analysis type. - CALL_GRAPH_ANALYSIS_TYPE_FULL: Full call graph analysis was performed. - CALL_GRAPH_ANALYSIS_TYPE_PRECOMPUTED: Precomputed call graph analysis was used.
          - `code_owners` V1CodeOwnerData: Code owner information for a file path or pattern.
            - `labels` string[]: List of labels.
            - `owners` string[]: List of code owners.
          - `dependency_file_paths` string[]: List of relative paths to the dependency files used to create the bom, if applicable. This field is optional and is only set when the source code of the package version is known. For example, for Golang it contains go.mod and go.sum.
          - `dismiss` boolean: Set to true to exclude finding from action policies (a.k.a. admission and notification policies). Findings can be dismissed in bulk by exception policies and/or individually via the snooze parameters or the ignore file.
          - `ecosystem` 'ECOSYSTEM_UNSPECIFIED' | 'ECOSYSTEM_GO' | 'ECOSYSTEM_MAVEN' | 'ECOSYSTEM_PYPI' | 'ECOSYSTEM_CARGO' | 'ECOSYSTEM_NPM' | 'ECOSYSTEM_GEM' | 'ECOSYSTEM_NUGET' | 'ECOSYSTEM_PACKAGIST' | 'ECOSYSTEM_SBOM' | 'ECOSYSTEM_RPM' | 'ECOSYSTEM_DEBIAN' | 'ECOSYSTEM_GITHUB_ACTION' | 'ECOSYSTEM_COCOAPOD' | 'ECOSYSTEM_APK' | 'ECOSYSTEM_CONTAINER' | 'ECOSYSTEM_HUGGING_FACE' | 'ECOSYSTEM_C' | 'ECOSYSTEM_GIT' | 'ECOSYSTEM_AI_MODEL' | 'ECOSYSTEM_SWIFT' | 'ECOSYSTEM_CONAN' | 'ECOSYSTEM_VSCODE': - ECOSYSTEM_GO: GoLang. - ECOSYSTEM_MAVEN: Maven. - ECOSYSTEM_PYPI: Python. - ECOSYSTEM_CARGO: Rust. - ECOSYSTEM_NPM: Javascript. - ECOSYSTEM_GEM: Ruby. - ECOSYSTEM_NUGET: Dotnet. - ECOSYSTEM_PACKAGIST: PHP. - ECOSYSTEM_SBOM: SBOMs. - ECOSYSTEM_RPM: RPM. - ECOSYSTEM_DEBIAN: Debian. - ECOSYSTEM_GITHUB_ACTION: GitHub Actions. - ECOSYSTEM_COCOAPOD: Cocoapods. - ECOSYSTEM_APK: APK (alpine et.al). - ECOSYSTEM_CONTAINER: Containers. - ECOSYSTEM_HUGGING_FACE: Hugging Face. - ECOSYSTEM_C: C/C++. - ECOSYSTEM_GIT: ecosystem GIT for GIT repository dependencies. This can be used for package name of the resolved dependencies when a given repository has dependencies to other GIT repositories. Currently we use this to represent vulnerabilities for the given GIT repository. ex: git submodules, C/C++ dependencies. - ECOSYSTEM_AI_MODEL: AI models. - ECOSYSTEM_SWIFT: Ecosystem Swift consists of native Swift packages, which are defined using the Package.swift manifest file and managed by the Swift Package Manager. There is a separate ecosystem for Cocoapod packages called ECOSYSTEM_COCOAPOD, which is an alternative package manager for Swift packages. - ECOSYSTEM_CONAN: Ecosystem Conan for C/C++ packages managed by the Conan 2.x package manager. - ECOSYSTEM_VSCODE: VS Code editor extensions, distributed via the Microsoft Visual Studio Marketplace.
          - `exceptions` V1Exceptions: Metadata added by the exception policy scanner.
            - `policy_uuids` string[]: List of exception policies triggered by this finding.
            - `tags` string[]: List of tags set by exception policies.
          - `explanation` string: Information about why this finding is considered noteworthy.
          - `extra_key` string, required: Additional information used to create a unique finding. In some cases we want to create multiple findings for the same combination of parent_uuid, meta.name, and target_uuid, for example when there are multiple vulnerabilities affecting the same dependency. By setting different values in this field, we are able to create a unique finding per combination of parent_uuid, meta.name, target_uuid, and extra_key.
          - `finding_categories` V1FindingCategory[]: List of categories that capture the use case the finding fits in.
          - `finding_metadata` V1FindingMetadata: Metadata associated with a finding.
            - `ai_sast_data` AIResultSAST
              - …
            - `ci_blocking_policy_info` V1FindingPolicyInfo: Details about the policy that created the finding.
              - …
            - `container_data` V1FindingContainerData
              - …
            - `custom` unknown
            - `cvss_version` 'CVSS_VERSION_UNSPECIFIED' | 'CVSS_VERSION_V2' | 'CVSS_VERSION_V3' | 'CVSS_VERSION_V4': The CVSS version.
            - `dependency_package_version_metadata` V1PackageVersionMetadata: PackageVersionMetadata represents a metadata for a package version.
              - …
            - `dependency_score_card` V1ScoreCard: A scorecard contains a total score per ScoreCategory.
              - …
            - `dependency_score_factor_list` V1ScoreFactorList: A list of score factors that are directly exported by the related anlaytics.
              - …
            - `malware` V1Malware
              - …
            - `root_package_resolved_dependencies` V1Bom
              - …
            - `root_package_score_card` V1ScoreCard: A scorecard contains a total score per ScoreCategory.
              - …
            - `root_package_score_factor_list` V1ScoreFactorList: A list of score factors that are directly exported by the related anlaytics.
              - …
            - `root_package_version_metadata` V1PackageVersionMetadata: PackageVersionMetadata represents a metadata for a package version.
              - …
            - `sast_data` V1SastData: Fields common to every SAST-shaped finding: AI SAST and rule-based (opengrep) findings alike. location reuses SourceLocation rather than a separate snippet field.
              - …
            - `security_review_data` V1SecurityReviewFindingData
              - …
            - `source_policy_info` V1FindingPolicyInfo: Details about the policy that created the finding.
              - …
            - `typosquatted_dependency_version_metadata` V1PackageVersionMetadata: PackageVersionMetadata represents a metadata for a package version.
              - …
            - `vulnerability` V1Vuln: Vuln represents an Endor Labs vulnerability in the system.
              - …
          - `finding_tags` V1FindingTags[], required: List of tags, or attributes, that describe the scope of the finding and can be used to filter findings.
          - `fixing_patch` V1FindingFixingPatch: FindingFixingPatch that can fix the finding.
            - `endor_patch_available` boolean
          - `fixing_upgrades` V1FindingFixingUpgrades: Upgrades that can fix the finding.
            - `upgrade_list` FindingFixingUpgradesUpgradeInfo[]: List of upgrades that can fix the finding.
              - …
          - `ignore` V1DismissParams: Metadata associated with a snooze or ignore request.
            - `comments` string: Comments for the snooze or ignore.
            - `entry_id` string: The ignore file entry id.
            - `expiration_time` string, date-time: Expiration time of the snooze or ignore.
            - `expire_if_fix_available` boolean: Set to true if the snooze or ignore should expire if a fix is available.
            - `file_name` string: Name of the file that was used to ignore the finding.
            - `reason` 'EXCEPTION_REASON_UNSPECIFIED' | 'EXCEPTION_REASON_FALSE_POSITIVE' | 'EXCEPTION_REASON_RISK_ACCEPTED' | 'EXCEPTION_REASON_IN_TRIAGE' | 'EXCEPTION_REASON_OTHER' | 'EXCEPTION_REASON_RESOLVED' | 'EXCEPTION_REASON_PRESENT_IN_BASELINE': Reasons for dismissing a finding. - EXCEPTION_REASON_FALSE_POSITIVE: Tool is incorrect. This is not a real issue. - EXCEPTION_REASON_RISK_ACCEPTED: Risk acknowledged and accepted. - EXCEPTION_REASON_IN_TRIAGE: Issue is actively being triaged. - EXCEPTION_REASON_OTHER: Other reason. Use policy description or dismiss comments to elaborate. - EXCEPTION_REASON_RESOLVED: Issue has been resolved. For example, a secret is no longer valid. - EXCEPTION_REASON_PRESENT_IN_BASELINE: The finding is also present in the baseline scan this one was diffed against, so it is not newly introduced. Set only by container diff tooling, never by a human.
            - `source` 'DISMISS_SOURCE_UNSPECIFIED' | 'DISMISS_SOURCE_CONTAINER_DIFF': Which tool created a snooze or ignore, for tooling that maintains its own dismissals over time and must never clear one it did not create. - DISMISS_SOURCE_UNSPECIFIED: Created by a person, or by tooling that does not maintain what it writes. - DISMISS_SOURCE_CONTAINER_DIFF: Created by `endorctl container diff --snooze-baseline-findings`, or by the equivalent step of `endorctl container scan --diff`. Those commands clear the dismissals carrying this source once the finding is no longer common with the baseline, so no other writer may set it.
            - `update_time` string, date-time: Timestamp of the last update.
            - `updated_by` string: Username of the user who last updated the snooze or ignore.
          - `last_processed` string, date-time, required: Last time the finding was processed.
          - `latest_version` string: Latest version of dependency, if available.
          - `level` 'FINDING_LEVEL_UNSPECIFIED' | 'FINDING_LEVEL_CRITICAL' | 'FINDING_LEVEL_HIGH' | 'FINDING_LEVEL_MEDIUM' | 'FINDING_LEVEL_LOW', required: Finding severity level. - FINDING_LEVEL_CRITICAL: Critical finding. - FINDING_LEVEL_HIGH: Very important findings. - FINDING_LEVEL_MEDIUM: Important findings. - FINDING_LEVEL_LOW: Low priority finding.
          - `location_urls` object: The URLs that correspond to the paths contained in dependency_file_paths.
          - `method` 'SYSTEM_EVALUATION_METHOD_DEFINITION_UNSPECIFIED' | 'SYSTEM_EVALUATION_METHOD_DEFINITION_VULNERABILITIES' | 'SYSTEM_EVALUATION_METHOD_DEFINITION_SCORES' | 'SYSTEM_EVALUATION_METHOD_DEFINITION_CONDITIONS' | 'SYSTEM_EVALUATION_METHOD_DEFINITION_POLICIES' | 'SYSTEM_EVALUATION_METHOD_DEFINITION_TYPOSQUATTING' | 'SYSTEM_EVALUATION_METHOD_DEFINITION_CIS' | 'SYSTEM_EVALUATION_METHOD_DEFINITION_MALWARE' | 'SYSTEM_EVALUATION_METHOD_DEFINITION_SECURITY_REVIEW' | 'SYSTEM_EVALUATION_METHOD_DEFINITION_AI_SAST': SystemEvaluationMethodDefinition is the type of evaluation method implemented by the system. - SYSTEM_EVALUATION_METHOD_DEFINITION_VULNERABILITIES: VULNERABILITIES calculates vulnerability related findings. - SYSTEM_EVALUATION_METHOD_DEFINITION_SCORES: SCORES calculates score related findings. - SYSTEM_EVALUATION_METHOD_DEFINITION_CONDITIONS: CONDITIONS calculates findings related to specific conditions. - SYSTEM_EVALUATION_METHOD_DEFINITION_POLICIES: POLICIES evaluates methods based on user defined policies. - SYSTEM_EVALUATION_METHOD_DEFINITION_TYPOSQUATTING: TYPOSQUATTING calculates the findings related to typosquatted packages. - SYSTEM_EVALUATION_METHOD_DEFINITION_CIS: CIS calculates the findings related to CIS benchmark requirements. - SYSTEM_EVALUATION_METHOD_DEFINITION_MALWARE: MALWARE calculates the findings related to malware. - SYSTEM_EVALUATION_METHOD_DEFINITION_SECURITY_REVIEW: SECURITY REVIEW calculates security review related findings. - SYSTEM_EVALUATION_METHOD_DEFINITION_AI_SAST: AI_SAST calculates AI SAST related findings.
          - `project_uuid` string, required: The UUID of the project to which this finding belongs.
          - `proposed_version` string: Recommended version of dependency if available.
          - `reachable_paths` FindingSpecPath[]: Function paths to the vulnerable method. Only applies to vulnerability findings.
            - `nodes` PathNode[]: List of structured, annotated function nodes.
              - …
          - `relationship` string: String describing the relationship to dependency, For example, "Foo is a direct dependency of bar.", if applicable.
          - `remediation` string: String describing the recommended remediation to fix this finding.
          - `remediation_action` 'FINDING_REMEDIATION_UNSPECIFIED' | 'FINDING_REMEDIATION_UPGRADE' | 'FINDING_REMEDIATION_DOWNGRADE' | 'FINDING_REMEDIATION_REPLACE' | 'FINDING_REMEDIATION_REMOVE' | 'FINDING_REMEDIATION_VENDOR' | 'FINDING_REMEDIATION_IMPROVE' | 'FINDING_REMEDIATION_REIMPLEMENT' | 'FINDING_REMEDIATION_REVIEW' | 'FINDING_REMEDIATION_NOTIFICATION' | 'FINDING_REMEDIATION_PIN': Recommended action to resolve the finding. - FINDING_REMEDIATION_UPGRADE: Upgrade to a later version. - FINDING_REMEDIATION_DOWNGRADE: Downgrade to an older version. - FINDING_REMEDIATION_REPLACE: Replace dependency with another package. - FINDING_REMEDIATION_REMOVE: Remove unused dependency. - FINDING_REMEDIATION_VENDOR: Vendor a dependency. - FINDING_REMEDIATION_IMPROVE: Make changes to improve a dependency. - FINDING_REMEDIATION_REIMPLEMENT: Reimplement a dependency locally. - FINDING_REMEDIATION_REVIEW: Review, no remediation to suggest - FINDING_REMEDIATION_NOTIFICATION: Notification, there may not be any remediation - FINDING_REMEDIATION_PIN: Pin dependency to one of the recommended versions
          - `snooze` V1DismissParams: Metadata associated with a snooze or ignore request.
            - `comments` string: Comments for the snooze or ignore.
            - `entry_id` string: The ignore file entry id.
            - `expiration_time` string, date-time: Expiration time of the snooze or ignore.
            - `expire_if_fix_available` boolean: Set to true if the snooze or ignore should expire if a fix is available.
            - `file_name` string: Name of the file that was used to ignore the finding.
            - `reason` 'EXCEPTION_REASON_UNSPECIFIED' | 'EXCEPTION_REASON_FALSE_POSITIVE' | 'EXCEPTION_REASON_RISK_ACCEPTED' | 'EXCEPTION_REASON_IN_TRIAGE' | 'EXCEPTION_REASON_OTHER' | 'EXCEPTION_REASON_RESOLVED' | 'EXCEPTION_REASON_PRESENT_IN_BASELINE': Reasons for dismissing a finding. - EXCEPTION_REASON_FALSE_POSITIVE: Tool is incorrect. This is not a real issue. - EXCEPTION_REASON_RISK_ACCEPTED: Risk acknowledged and accepted. - EXCEPTION_REASON_IN_TRIAGE: Issue is actively being triaged. - EXCEPTION_REASON_OTHER: Other reason. Use policy description or dismiss comments to elaborate. - EXCEPTION_REASON_RESOLVED: Issue has been resolved. For example, a secret is no longer valid. - EXCEPTION_REASON_PRESENT_IN_BASELINE: The finding is also present in the baseline scan this one was diffed against, so it is not newly introduced. Set only by container diff tooling, never by a human.
            - `source` 'DISMISS_SOURCE_UNSPECIFIED' | 'DISMISS_SOURCE_CONTAINER_DIFF': Which tool created a snooze or ignore, for tooling that maintains its own dismissals over time and must never clear one it did not create. - DISMISS_SOURCE_UNSPECIFIED: Created by a person, or by tooling that does not maintain what it writes. - DISMISS_SOURCE_CONTAINER_DIFF: Created by `endorctl container diff --snooze-baseline-findings`, or by the equivalent step of `endorctl container scan --diff`. Those commands clear the dismissals carrying this source once the finding is no longer common with the baseline, so no other writer may set it.
            - `update_time` string, date-time: Timestamp of the last update.
            - `updated_by` string: Username of the user who last updated the snooze or ignore.
          - `source_code_version` V1Version
            - `metadata` object: Version metadata.
            - `ref` string, required: Resolved ref of the source control version. Can be a tag, a branch or a SHA.
            - `sha` string: SHA of the source control version. Because the SHA might not be possible to resolved this field is optional.
          - `summary` string, required: A more detailed description of the finding.
          - `target_dependency_name` string: Dependency package name, if applicable. This is just the name (i.e. it does not include the ecosystem or the version).
          - `target_dependency_native_scope` string: Un-normalized native dependency scope from the package manager (e.g. Maven "provided"). Empty if none.
          - `target_dependency_package_name` string: Fully qualified name of the dependency, e.g. eco://package@version, if applicable.
          - `target_dependency_version` string: Dependency version, if applicable. This is just the version (i.e. it does not include the ecosystem or the package name).
          - `target_uuid` string, required: The UUID of the DependencyMetadata object for the dependency, if applicable.
        - `tenant_meta` V1TenantMeta: Tenant related data for the tenant containing the resource.
          - `namespace` string, required: Namespaces are a way to organize organizational units into virtual groupings of resources. Namespaces must be a fully qualified name, for example, the child namespace of namespace "endor.prod" called "app" is called "endor.prod.app".
        - `uuid` string: The UUID of the object.
      - `resource_kind` string, required: The type of the parent resource to which this feedback is attached, such as "Project".
      - `resource_uuid` string, required: The unique identifier (UUID) of the parent resource to which this feedback is attached.
    - `tenant_meta` object: Security review pull requests are associated with a tenant.
    - `uuid` string: The UUID of the feedback.
  - `request` V1UpdateRequest: Message used for all update requests.
    - `force` boolean: Force will force the update of the resource if any checks fail.
    - `update_mask` string: Fields to update. Defaults to all fields.

## Response `200`

A successful response.

- V1Feedback: Feedback represents a feedback in the system.
  - `context` V1Context, required: Contexts keep objects from different scans separated.
    - `id` string, required: The context ID, such as a pull request ID or branch reference.
    - `tags` string[]: A list of tags applied to a context. Used primarily for CI and SBOM contexts.
    - `type` 'CONTEXT_TYPE_UNSPECIFIED' | 'CONTEXT_TYPE_MAIN' | 'CONTEXT_TYPE_EXTERNAL' | 'CONTEXT_TYPE_CI_RUN' | 'CONTEXT_TYPE_SBOM' | 'CONTEXT_TYPE_REF', required: - CONTEXT_TYPE_MAIN: Objects from a scan of the default branch. All objects in the oss namespace are in the main context. The context id is always "default". - CONTEXT_TYPE_EXTERNAL: Indicates that this object is a copy/temporary value of an object in another project. Used for same-tenant dependencies. In source code reference this is equivalent to "vendor" folders. Package versions in the external context are only scanned for call graphs. No other operations are performed on them. - CONTEXT_TYPE_CI_RUN: Objects from a PR scan. The context id is the PR UUID. Objects in this context are deleted after 30 days. - CONTEXT_TYPE_SBOM: Objects from an SBOM scan. The context id is the SBOM serial number or some other unique identifier. - CONTEXT_TYPE_REF: Objects from a scan of a specific branch. The context id is the branch reference name.
    - `will_be_deleted_at` string, date-time: Time that all objects in this context will be deleted. This field is deprecated and will be removed in the future. Please use the meta.will_be_deleted_at field instead.
  - `meta` V1Meta, required: Common fields for all Endor Labs resources.
    - `annotations` object: Annotations can be used to attach metadata to a resource message. Annotation values can be small or large, structured or unstructured, and may include characters not permitted by labels. The keys may contain alphanumerics, underscores (_), dots (.) and dashes (-). The values of an annotation must be 16384 bytes or smaller.
    - `create_time` string, date-time: Time the resource was created. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
    - `created_by` string: Name and authentication source of the user who created the object, for example, ewok@endor.ai@google@api-key.
    - `description` string: Resource description. Must be less than 1024 bytes.
    - `index_data` V1IndexData: IndexData is used to index the resource for search. It's an internal object.
      - `data` string[]
      - `search_score` number, float: search_score is the score of the resource for search. Internal use only.
      - `tenant` string
      - `will_be_deleted_at` string, date-time: Time that the resource will be deleted.
    - `kind` string: Resource kind, for example, HelloResponse. Auto-generated using the protobuf message proto.MessageName().Name().
    - `name` string, required: Resource name. Must be 63 characters or less.
    - `parent_kind` string: Parent object resource kind, for example, Project.
    - `parent_uuid` string: Parent object UUID.
    - `references` object: Map of objects referenced in a query API.
    - `tags` string[]: List of tags attached to the resource. Tags can be used to select objects and to find collections of objects that satisfy certain conditions. A tag must be 255 characters or less.
    - `update_time` string, date-time: Time the resource was last updated. Note: Updated on all create/patch/delete operations. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
    - `updated_by` string: Name and authentication source of the last user who updated the object, for example, vulnerabilityingestor@endor.ai@x509.
    - `upsert_time` string, date-time: Time the resource was last upserted. Note: create_time is only set the first time the resource is created. upsert_time is set every time the resource is upseted. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
    - `version` string: Message version.
  - `spec` V1FeedbackSpec
    - `comment` string: The comment associated with the feedback.
    - `feedback_type` 'FEEDBACK_TYPE_UNSPECIFIED' | 'FEEDBACK_TYPE_POSITIVE' | 'FEEDBACK_TYPE_NEGATIVE', required
    - `finding` V1Finding: A finding contains details of a problem that needs to be fixed. The finding applies to the parent object, which can be one of: Repository, RepositoryVersion, or PackageVersion. Finding objects are connected to the project via spec.project_uuid.
      - `context` V1Context, required: Contexts keep objects from different scans separated.
        - `id` string, required: The context ID, such as a pull request ID or branch reference.
        - `tags` string[]: A list of tags applied to a context. Used primarily for CI and SBOM contexts.
        - `type` 'CONTEXT_TYPE_UNSPECIFIED' | 'CONTEXT_TYPE_MAIN' | 'CONTEXT_TYPE_EXTERNAL' | 'CONTEXT_TYPE_CI_RUN' | 'CONTEXT_TYPE_SBOM' | 'CONTEXT_TYPE_REF', required: - CONTEXT_TYPE_MAIN: Objects from a scan of the default branch. All objects in the oss namespace are in the main context. The context id is always "default". - CONTEXT_TYPE_EXTERNAL: Indicates that this object is a copy/temporary value of an object in another project. Used for same-tenant dependencies. In source code reference this is equivalent to "vendor" folders. Package versions in the external context are only scanned for call graphs. No other operations are performed on them. - CONTEXT_TYPE_CI_RUN: Objects from a PR scan. The context id is the PR UUID. Objects in this context are deleted after 30 days. - CONTEXT_TYPE_SBOM: Objects from an SBOM scan. The context id is the SBOM serial number or some other unique identifier. - CONTEXT_TYPE_REF: Objects from a scan of a specific branch. The context id is the branch reference name.
        - `will_be_deleted_at` string, date-time: Time that all objects in this context will be deleted. This field is deprecated and will be removed in the future. Please use the meta.will_be_deleted_at field instead.
      - `meta` V1Meta, required: Common fields for all Endor Labs resources.
        - `annotations` object: Annotations can be used to attach metadata to a resource message. Annotation values can be small or large, structured or unstructured, and may include characters not permitted by labels. The keys may contain alphanumerics, underscores (_), dots (.) and dashes (-). The values of an annotation must be 16384 bytes or smaller.
        - `create_time` string, date-time: Time the resource was created. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
        - `created_by` string: Name and authentication source of the user who created the object, for example, ewok@endor.ai@google@api-key.
        - `description` string: Resource description. Must be less than 1024 bytes.
        - `index_data` V1IndexData: IndexData is used to index the resource for search. It's an internal object.
          - `data` string[]
          - `search_score` number, float: search_score is the score of the resource for search. Internal use only.
          - `tenant` string
          - `will_be_deleted_at` string, date-time: Time that the resource will be deleted.
        - `kind` string: Resource kind, for example, HelloResponse. Auto-generated using the protobuf message proto.MessageName().Name().
        - `name` string, required: Resource name. Must be 63 characters or less.
        - `parent_kind` string: Parent object resource kind, for example, Project.
        - `parent_uuid` string: Parent object UUID.
        - `references` object: Map of objects referenced in a query API.
        - `tags` string[]: List of tags attached to the resource. Tags can be used to select objects and to find collections of objects that satisfy certain conditions. A tag must be 255 characters or less.
        - `update_time` string, date-time: Time the resource was last updated. Note: Updated on all create/patch/delete operations. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
        - `updated_by` string: Name and authentication source of the last user who updated the object, for example, vulnerabilityingestor@endor.ai@x509.
        - `upsert_time` string, date-time: Time the resource was last upserted. Note: create_time is only set the first time the resource is created. upsert_time is set every time the resource is upseted. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
        - `version` string: Message version.
      - `spec` V1FindingSpec, required: Finding specific data.
        - `actions` V1Actions: Metadata added by the admission or notification policy scanner.
          - `ci_blocker_since` string, date-time: Time the finding first matched a blocking action policy. Reset if the finding no longer matches a blocking action policy. See also FINDING_TAGS_CI_BLOCKER in spec.finding_tags.
          - `ci_warning_since` string, date-time: Time the finding first matched a warning action policy. Reset if the finding no longer matches a warning action policy. See also FINDING_TAGS_CI_WARNING in spec.finding_tags.
          - `policy_uuids` string[]: List of action policies triggered by this finding.
        - `approximation` boolean: True if this finding is for an approximate dependency based on the unresolved package dependencies.
        - `call_graph_analysis_type` 'CALL_GRAPH_ANALYSIS_TYPE_UNSPECIFIED' | 'CALL_GRAPH_ANALYSIS_TYPE_FULL' | 'CALL_GRAPH_ANALYSIS_TYPE_PRECOMPUTED': Call graph analysis type for findings. - CALL_GRAPH_ANALYSIS_TYPE_UNSPECIFIED: Unspecified call graph analysis type. - CALL_GRAPH_ANALYSIS_TYPE_FULL: Full call graph analysis was performed. - CALL_GRAPH_ANALYSIS_TYPE_PRECOMPUTED: Precomputed call graph analysis was used.
        - `code_owners` V1CodeOwnerData: Code owner information for a file path or pattern.
          - `labels` string[]: List of labels.
          - `owners` string[]: List of code owners.
        - `dependency_file_paths` string[]: List of relative paths to the dependency files used to create the bom, if applicable. This field is optional and is only set when the source code of the package version is known. For example, for Golang it contains go.mod and go.sum.
        - `dismiss` boolean: Set to true to exclude finding from action policies (a.k.a. admission and notification policies). Findings can be dismissed in bulk by exception policies and/or individually via the snooze parameters or the ignore file.
        - `ecosystem` 'ECOSYSTEM_UNSPECIFIED' | 'ECOSYSTEM_GO' | 'ECOSYSTEM_MAVEN' | 'ECOSYSTEM_PYPI' | 'ECOSYSTEM_CARGO' | 'ECOSYSTEM_NPM' | 'ECOSYSTEM_GEM' | 'ECOSYSTEM_NUGET' | 'ECOSYSTEM_PACKAGIST' | 'ECOSYSTEM_SBOM' | 'ECOSYSTEM_RPM' | 'ECOSYSTEM_DEBIAN' | 'ECOSYSTEM_GITHUB_ACTION' | 'ECOSYSTEM_COCOAPOD' | 'ECOSYSTEM_APK' | 'ECOSYSTEM_CONTAINER' | 'ECOSYSTEM_HUGGING_FACE' | 'ECOSYSTEM_C' | 'ECOSYSTEM_GIT' | 'ECOSYSTEM_AI_MODEL' | 'ECOSYSTEM_SWIFT' | 'ECOSYSTEM_CONAN' | 'ECOSYSTEM_VSCODE': - ECOSYSTEM_GO: GoLang. - ECOSYSTEM_MAVEN: Maven. - ECOSYSTEM_PYPI: Python. - ECOSYSTEM_CARGO: Rust. - ECOSYSTEM_NPM: Javascript. - ECOSYSTEM_GEM: Ruby. - ECOSYSTEM_NUGET: Dotnet. - ECOSYSTEM_PACKAGIST: PHP. - ECOSYSTEM_SBOM: SBOMs. - ECOSYSTEM_RPM: RPM. - ECOSYSTEM_DEBIAN: Debian. - ECOSYSTEM_GITHUB_ACTION: GitHub Actions. - ECOSYSTEM_COCOAPOD: Cocoapods. - ECOSYSTEM_APK: APK (alpine et.al). - ECOSYSTEM_CONTAINER: Containers. - ECOSYSTEM_HUGGING_FACE: Hugging Face. - ECOSYSTEM_C: C/C++. - ECOSYSTEM_GIT: ecosystem GIT for GIT repository dependencies. This can be used for package name of the resolved dependencies when a given repository has dependencies to other GIT repositories. Currently we use this to represent vulnerabilities for the given GIT repository. ex: git submodules, C/C++ dependencies. - ECOSYSTEM_AI_MODEL: AI models. - ECOSYSTEM_SWIFT: Ecosystem Swift consists of native Swift packages, which are defined using the Package.swift manifest file and managed by the Swift Package Manager. There is a separate ecosystem for Cocoapod packages called ECOSYSTEM_COCOAPOD, which is an alternative package manager for Swift packages. - ECOSYSTEM_CONAN: Ecosystem Conan for C/C++ packages managed by the Conan 2.x package manager. - ECOSYSTEM_VSCODE: VS Code editor extensions, distributed via the Microsoft Visual Studio Marketplace.
        - `exceptions` V1Exceptions: Metadata added by the exception policy scanner.
          - `policy_uuids` string[]: List of exception policies triggered by this finding.
          - `tags` string[]: List of tags set by exception policies.
        - `explanation` string: Information about why this finding is considered noteworthy.
        - `extra_key` string, required: Additional information used to create a unique finding. In some cases we want to create multiple findings for the same combination of parent_uuid, meta.name, and target_uuid, for example when there are multiple vulnerabilities affecting the same dependency. By setting different values in this field, we are able to create a unique finding per combination of parent_uuid, meta.name, target_uuid, and extra_key.
        - `finding_categories` V1FindingCategory[]: List of categories that capture the use case the finding fits in.
        - `finding_metadata` V1FindingMetadata: Metadata associated with a finding.
          - `ai_sast_data` AIResultSAST
            - `attack_vector` string: Attack vector breakdown table when no exploit reproduction is emitted (the "## Attack Vector" section).
            - `classification` 'FINDING_CLASSIFICATION_UNSPECIFIED' | 'FINDING_CLASSIFICATION_SECURITY_VULNERABILITY' | 'FINDING_CLASSIFICATION_LOGICAL_BUG': Classification of the finding type. Extensible for future categories. - FINDING_CLASSIFICATION_SECURITY_VULNERABILITY: Security vulnerability (e.g. SQL injection, XSS, hardcoded creds). - FINDING_CLASSIFICATION_LOGICAL_BUG: Logical bug (e.g. null pointer, resource leak, race condition).
            - `context` V1AISASTContext: The code context an AI SAST finding depends on, hashed at scan time, so a scheduled refresh can detect modified context by re-hashing these regions.
              - …
            - `cwes` string[]: The CWEs of the vulnerability.
            - `dataflow` V1SourceLocation[]: Deprecated: use call_stack instead. One or more source locations representing the data flow path from a source to a sink. The locations are ordered and include the source, any intermediate nodes, and the sink. If only a single location is provided, it represents the sink location only.
              - …
            - `exploit_reproduction` string: Step-by-step exploit reproduction for high/critical true positives (the "## Exploit Reproduction" section).
            - `fixed_strikes` integer: Strictly consecutive scheduled-refresh FIXED verdicts. Deletion requires two: the first only stamps this counter and keeps the finding due. Reset by any non-FIXED outcome (STILL_PRESENT, UNKNOWN, agent error).
            - `language` string: Programming language of the file where this result was found.
            - `last_scan` string, date-time: When the scheduled AI SAST refresh last revalidated this finding. Unset for findings created before refresh tracking; drives refresh staleness.
            - `location` V1SourceLocation
              - …
            - `refresh_attempts` integer: Consecutive inconclusive scheduled-refresh attempts (agent error or UNKNOWN verdict); at the retry cap the refresh re-baselines last_scan instead of retrying forever. Reset on a definitive verdict.
            - `remediation` string: Recommended remediation, including any unified-diff fix (the "## Remediation Guidance" section).
            - `security_controls` string: Security controls assessment table (the "## Security Controls" section).
            - `severity_scoring` string: Severity scoring breakdown (the "## Severity Scoring" section).
            - `summary` string: Short prose summary of the vulnerability (the "## Summary" section).
            - `validation_outcome` string: Validation outcome for unknown findings (the "## Validation Outcome" section).
            - `validation_verdict` 'VALIDATION_VERDICT_UNSPECIFIED' | 'VALIDATION_VERDICT_TRUE_POSITIVE' | 'VALIDATION_VERDICT_FALSE_POSITIVE' | 'VALIDATION_VERDICT_UNKNOWN': Verdict from AI SAST validation about whether a reported finding is real. Distinct from FindingClassification, which describes the kind of issue. - VALIDATION_VERDICT_UNSPECIFIED: No verdict is recorded for this finding. - VALIDATION_VERDICT_TRUE_POSITIVE: Validation confirmed the finding. - VALIDATION_VERDICT_FALSE_POSITIVE: Validation refuted the finding. - VALIDATION_VERDICT_UNKNOWN: Validation could not determine whether the finding is real.
            - `verification_scorecard` string: Verification scorecard with per-criterion verdicts (the "## Verification Scorecard" section).
          - `ci_blocking_policy_info` V1FindingPolicyInfo: Details about the policy that created the finding.
            - `description` string: Policy description.
            - `finding_name` string: Finding name.
            - `name` string: Policy name.
            - `results` FindingPolicyInfoPolicyResult[]: List of policy matches.
              - …
            - `tags` string[]: Policy meta tags.
            - `total_num_results` integer: The total number of results matched by the policy. This number may be greater than the list of policy matches in the results field, which is truncated if there are more than 5 results.
            - `uuid` string: Policy UUID.
          - `container_data` V1FindingContainerData
            - `base_image` string: Base image of the container image where the target dependency was found.
            - `has_base_layer` boolean: Set to true if the target dependency was found in the base layer of the container image.
            - `layer_digests` string[]: List of layer digests for the container image where the target dependency was found.
          - `custom` unknown
          - `cvss_version` 'CVSS_VERSION_UNSPECIFIED' | 'CVSS_VERSION_V2' | 'CVSS_VERSION_V3' | 'CVSS_VERSION_V4': The CVSS version.
          - `dependency_package_version_metadata` V1PackageVersionMetadata: PackageVersionMetadata represents a metadata for a package version.
            - `meta` V1Meta, required: Common fields for all Endor Labs resources.
              - …
            - `spec` V1PackageVersionMetadataSpec, required
              - …
            - `tenant_meta` V1TenantMeta: Tenant related data for the tenant containing the resource.
              - …
            - `uuid` string: The UUID of the package version metadata.
          - `dependency_score_card` V1ScoreCard: A scorecard contains a total score per ScoreCategory.
            - `analysis_scope_description` string: Description of the analysis scope.
            - `category_scores` V1CategoryScore[]: The per category scores.
              - …
            - `overall_score` number, float: The overall score.
          - `dependency_score_factor_list` V1ScoreFactorList: A list of score factors that are directly exported by the related anlaytics.
            - `score_factors` V1ScoreFactor[]
              - …
          - `malware` V1Malware
            - `meta` V1Meta, required: Common fields for all Endor Labs resources.
              - …
            - `spec` V1MalwareSpec, required
              - …
            - `tenant_meta` V1TenantMeta: Tenant related data for the tenant containing the resource.
              - …
            - `uuid` string: The UUID of a malware record.
          - `root_package_resolved_dependencies` V1Bom
            - `dependencies` BomDependency[]: Different package managers use different dependency graph serialization strategies. Include the serialized list here to avoid re-implementing this within endoctl.
              - …
            - `dependency_files` BomDependencyFile[]: The list of the dependency files used to create the BOM. This field is optional and is only set when the source code of the package versions is known. It will contain the list of relative path of files used to compute the BOM. For instance for Golang, it will contain the go.mod and go.sum.
              - …
            - `dependency_graph` object
            - `resolution_timestamp` string, date-time, required
          - `root_package_score_card` V1ScoreCard: A scorecard contains a total score per ScoreCategory.
            - `analysis_scope_description` string: Description of the analysis scope.
            - `category_scores` V1CategoryScore[]: The per category scores.
              - …
            - `overall_score` number, float: The overall score.
          - `root_package_score_factor_list` V1ScoreFactorList: A list of score factors that are directly exported by the related anlaytics.
            - `score_factors` V1ScoreFactor[]
              - …
          - `root_package_version_metadata` V1PackageVersionMetadata: PackageVersionMetadata represents a metadata for a package version.
            - `meta` V1Meta, required: Common fields for all Endor Labs resources.
              - …
            - `spec` V1PackageVersionMetadataSpec, required
              - …
            - `tenant_meta` V1TenantMeta: Tenant related data for the tenant containing the resource.
              - …
            - `uuid` string: The UUID of the package version metadata.
          - `sast_data` V1SastData: Fields common to every SAST-shaped finding: AI SAST and rule-based (opengrep) findings alike. location reuses SourceLocation rather than a separate snippet field.
            - `ai_analyses` V1LinterCorrectnessAnalysis[]: False-positive analyses. Populating this reroutes the finding to the FP-validation UI tab.
              - …
            - `classification` 'FINDING_CLASSIFICATION_UNSPECIFIED' | 'FINDING_CLASSIFICATION_SECURITY_VULNERABILITY' | 'FINDING_CLASSIFICATION_LOGICAL_BUG': Classification of the finding type. Extensible for future categories. - FINDING_CLASSIFICATION_SECURITY_VULNERABILITY: Security vulnerability (e.g. SQL injection, XSS, hardcoded creds). - FINDING_CLASSIFICATION_LOGICAL_BUG: Logical bug (e.g. null pointer, resource leak, race condition).
            - `confidence` string: Confidence that the finding is a true positive.
            - `cwes` string[]: CWE identifiers associated with the finding.
            - `impact` string: Impact of the finding if exploited.
            - `languages` string[]: Programming languages the finding's location spans.
            - `likelihood` string: Likelihood the finding is exploitable. Rule-based findings only.
            - `location` V1SourceLocation
              - …
            - `message` string: Detailed finding message, shown when the finding has no explanation or remediation text of its own.
            - `references` string[]: Reference links for the finding.
            - `rule_id` string: Rule identifier: CWE ID for an AI SAST finding, or the rule id for a rule-based finding.
            - `rule_name` string: Human-readable rule/CWE name, used for UI grouping and rule filtering.
            - `rule_uuid` string: UUID of the SemgrepRule resource that produced the finding. Rule-based findings only.
            - `rule_version` string: Version of the rule that produced the finding. Rule-based findings only.
            - `tags` string[]: Compliance/classification tags (e.g. OWASP, SANS).
            - `title` string: Short display title for the detected pattern, distinct from rule_name.
          - `security_review_data` V1SecurityReviewFindingData
            - `ai_meta` V1AIMeta: AI metadata for the finding. This is only used for findings generated by AI.
              - …
            - `category` 'SECURITY_REVIEW_CATEGORY_UNSPECIFIED' | 'SECURITY_REVIEW_CATEGORY_DEPENDENCY' | 'SECURITY_REVIEW_CATEGORY_ACCESS_CONTROL' | 'SECURITY_REVIEW_CATEGORY_API_ENDPOINT' | 'SECURITY_REVIEW_CATEGORY_DATABASE' | 'SECURITY_REVIEW_CATEGORY_CRYPTOGRAPHIC' | 'SECURITY_REVIEW_CATEGORY_PAYMENT_PROCESSING' | 'SECURITY_REVIEW_CATEGORY_MEMORY_PROTECTION' | 'SECURITY_REVIEW_CATEGORY_PII_DATA_HANDLING' | 'SECURITY_REVIEW_CATEGORY_INPUT_VALIDATION' | 'SECURITY_REVIEW_CATEGORY_INFRASTRUCTURE' | 'SECURITY_REVIEW_CATEGORY_CI_CD' | 'SECURITY_REVIEW_CATEGORY_CONFIGURATION' | 'SECURITY_REVIEW_CATEGORY_NETWORK' | 'SECURITY_REVIEW_CATEGORY_AI' | 'SECURITY_REVIEW_CATEGORY_IMPROVEMENT' | 'SECURITY_REVIEW_CATEGORY_VULNERABILITY' | 'SECURITY_REVIEW_CATEGORY_BUG': SecurityCategory represents the different categories of security aspects that can be evaluated. - SECURITY_REVIEW_CATEGORY_UNSPECIFIED: Default when category is unknown - SECURITY_REVIEW_CATEGORY_DEPENDENCY: Integration of external code, packages, and frameworks - SECURITY_REVIEW_CATEGORY_ACCESS_CONTROL: Authentication, authorization mechanisms and session management - SECURITY_REVIEW_CATEGORY_API_ENDPOINT: API and service entry points - SECURITY_REVIEW_CATEGORY_DATABASE: Database architecture and security - SECURITY_REVIEW_CATEGORY_CRYPTOGRAPHIC: Cryptographic systems and implementations - SECURITY_REVIEW_CATEGORY_PAYMENT_PROCESSING: Payment processing and financial systems - SECURITY_REVIEW_CATEGORY_MEMORY_PROTECTION: Memory management and protection - SECURITY_REVIEW_CATEGORY_PII_DATA_HANDLING: Processing of PII and sensitive information - SECURITY_REVIEW_CATEGORY_INPUT_VALIDATION: Input validation and processing security - SECURITY_REVIEW_CATEGORY_INFRASTRUCTURE: Infrastructure security - SECURITY_REVIEW_CATEGORY_CI_CD: CI/CD pipeline security - SECURITY_REVIEW_CATEGORY_CONFIGURATION: Application and infrastructure configuration - SECURITY_REVIEW_CATEGORY_NETWORK: Network security and communication protocols - SECURITY_REVIEW_CATEGORY_AI: AI/LLM integration security - SECURITY_REVIEW_CATEGORY_IMPROVEMENT: Improvement to the security posture - SECURITY_REVIEW_CATEGORY_VULNERABILITY: Vulnerability found in the code - SECURITY_REVIEW_CATEGORY_BUG: Bug found in the code
            - `code_snippet` PullRequestSecurityReviewResultInfoCodeSnippet: CodeSnippet represents a specific portion of code that has security implications. This could be sensitive operations, security controls, or potential vulnerabilities.
              - …
            - `justification` string: Justification for the security review category.
            - `security_impact_type` 'SECURITY_IMPACT_TYPE_UNSPECIFIED' | 'SECURITY_IMPACT_TYPE_IMPROVEMENT' | 'SECURITY_IMPACT_TYPE_REGRESSION' | 'SECURITY_IMPACT_TYPE_NEUTRAL': Indicates whether a code change improves security, introduces regression, or is neutral. - SECURITY_IMPACT_TYPE_UNSPECIFIED: Default unspecified value. - SECURITY_IMPACT_TYPE_IMPROVEMENT: The change improves security. - SECURITY_IMPACT_TYPE_REGRESSION: The change introduces security regression. - SECURITY_IMPACT_TYPE_NEUTRAL: The change has neutral security impact.
          - `source_policy_info` V1FindingPolicyInfo: Details about the policy that created the finding.
            - `description` string: Policy description.
            - `finding_name` string: Finding name.
            - `name` string: Policy name.
            - `results` FindingPolicyInfoPolicyResult[]: List of policy matches.
              - …
            - `tags` string[]: Policy meta tags.
            - `total_num_results` integer: The total number of results matched by the policy. This number may be greater than the list of policy matches in the results field, which is truncated if there are more than 5 results.
            - `uuid` string: Policy UUID.
          - `typosquatted_dependency_version_metadata` V1PackageVersionMetadata: PackageVersionMetadata represents a metadata for a package version.
            - `meta` V1Meta, required: Common fields for all Endor Labs resources.
              - …
            - `spec` V1PackageVersionMetadataSpec, required
              - …
            - `tenant_meta` V1TenantMeta: Tenant related data for the tenant containing the resource.
              - …
            - `uuid` string: The UUID of the package version metadata.
          - `vulnerability` V1Vuln: Vuln represents an Endor Labs vulnerability in the system.
            - `meta` V1Meta, required: Common fields for all Endor Labs resources.
              - …
            - `spec` V1VulnSpec
              - …
            - `tenant_meta` V1TenantMeta: Tenant related data for the tenant containing the resource.
              - …
            - `uuid` string: The UUID of a vulnerability.
        - `finding_tags` V1FindingTags[], required: List of tags, or attributes, that describe the scope of the finding and can be used to filter findings.
        - `fixing_patch` V1FindingFixingPatch: FindingFixingPatch that can fix the finding.
          - `endor_patch_available` boolean
        - `fixing_upgrades` V1FindingFixingUpgrades: Upgrades that can fix the finding.
          - `upgrade_list` FindingFixingUpgradesUpgradeInfo[]: List of upgrades that can fix the finding.
            - `direct_dependency_name` string: Fully qualified name of the direct dependency to be upgraded.
            - `from_version` string: Current version of the direct dependency.
            - `package_name` string: Fully qualified name of the root package.
            - `to_version` string: Version that the direct dependency should be upgraded to.
            - `upgrade_risk` string: The risk of the upgrade.
        - `ignore` V1DismissParams: Metadata associated with a snooze or ignore request.
          - `comments` string: Comments for the snooze or ignore.
          - `entry_id` string: The ignore file entry id.
          - `expiration_time` string, date-time: Expiration time of the snooze or ignore.
          - `expire_if_fix_available` boolean: Set to true if the snooze or ignore should expire if a fix is available.
          - `file_name` string: Name of the file that was used to ignore the finding.
          - `reason` 'EXCEPTION_REASON_UNSPECIFIED' | 'EXCEPTION_REASON_FALSE_POSITIVE' | 'EXCEPTION_REASON_RISK_ACCEPTED' | 'EXCEPTION_REASON_IN_TRIAGE' | 'EXCEPTION_REASON_OTHER' | 'EXCEPTION_REASON_RESOLVED' | 'EXCEPTION_REASON_PRESENT_IN_BASELINE': Reasons for dismissing a finding. - EXCEPTION_REASON_FALSE_POSITIVE: Tool is incorrect. This is not a real issue. - EXCEPTION_REASON_RISK_ACCEPTED: Risk acknowledged and accepted. - EXCEPTION_REASON_IN_TRIAGE: Issue is actively being triaged. - EXCEPTION_REASON_OTHER: Other reason. Use policy description or dismiss comments to elaborate. - EXCEPTION_REASON_RESOLVED: Issue has been resolved. For example, a secret is no longer valid. - EXCEPTION_REASON_PRESENT_IN_BASELINE: The finding is also present in the baseline scan this one was diffed against, so it is not newly introduced. Set only by container diff tooling, never by a human.
          - `source` 'DISMISS_SOURCE_UNSPECIFIED' | 'DISMISS_SOURCE_CONTAINER_DIFF': Which tool created a snooze or ignore, for tooling that maintains its own dismissals over time and must never clear one it did not create. - DISMISS_SOURCE_UNSPECIFIED: Created by a person, or by tooling that does not maintain what it writes. - DISMISS_SOURCE_CONTAINER_DIFF: Created by `endorctl container diff --snooze-baseline-findings`, or by the equivalent step of `endorctl container scan --diff`. Those commands clear the dismissals carrying this source once the finding is no longer common with the baseline, so no other writer may set it.
          - `update_time` string, date-time: Timestamp of the last update.
          - `updated_by` string: Username of the user who last updated the snooze or ignore.
        - `last_processed` string, date-time, required: Last time the finding was processed.
        - `latest_version` string: Latest version of dependency, if available.
        - `level` 'FINDING_LEVEL_UNSPECIFIED' | 'FINDING_LEVEL_CRITICAL' | 'FINDING_LEVEL_HIGH' | 'FINDING_LEVEL_MEDIUM' | 'FINDING_LEVEL_LOW', required: Finding severity level. - FINDING_LEVEL_CRITICAL: Critical finding. - FINDING_LEVEL_HIGH: Very important findings. - FINDING_LEVEL_MEDIUM: Important findings. - FINDING_LEVEL_LOW: Low priority finding.
        - `location_urls` object: The URLs that correspond to the paths contained in dependency_file_paths.
        - `method` 'SYSTEM_EVALUATION_METHOD_DEFINITION_UNSPECIFIED' | 'SYSTEM_EVALUATION_METHOD_DEFINITION_VULNERABILITIES' | 'SYSTEM_EVALUATION_METHOD_DEFINITION_SCORES' | 'SYSTEM_EVALUATION_METHOD_DEFINITION_CONDITIONS' | 'SYSTEM_EVALUATION_METHOD_DEFINITION_POLICIES' | 'SYSTEM_EVALUATION_METHOD_DEFINITION_TYPOSQUATTING' | 'SYSTEM_EVALUATION_METHOD_DEFINITION_CIS' | 'SYSTEM_EVALUATION_METHOD_DEFINITION_MALWARE' | 'SYSTEM_EVALUATION_METHOD_DEFINITION_SECURITY_REVIEW' | 'SYSTEM_EVALUATION_METHOD_DEFINITION_AI_SAST': SystemEvaluationMethodDefinition is the type of evaluation method implemented by the system. - SYSTEM_EVALUATION_METHOD_DEFINITION_VULNERABILITIES: VULNERABILITIES calculates vulnerability related findings. - SYSTEM_EVALUATION_METHOD_DEFINITION_SCORES: SCORES calculates score related findings. - SYSTEM_EVALUATION_METHOD_DEFINITION_CONDITIONS: CONDITIONS calculates findings related to specific conditions. - SYSTEM_EVALUATION_METHOD_DEFINITION_POLICIES: POLICIES evaluates methods based on user defined policies. - SYSTEM_EVALUATION_METHOD_DEFINITION_TYPOSQUATTING: TYPOSQUATTING calculates the findings related to typosquatted packages. - SYSTEM_EVALUATION_METHOD_DEFINITION_CIS: CIS calculates the findings related to CIS benchmark requirements. - SYSTEM_EVALUATION_METHOD_DEFINITION_MALWARE: MALWARE calculates the findings related to malware. - SYSTEM_EVALUATION_METHOD_DEFINITION_SECURITY_REVIEW: SECURITY REVIEW calculates security review related findings. - SYSTEM_EVALUATION_METHOD_DEFINITION_AI_SAST: AI_SAST calculates AI SAST related findings.
        - `project_uuid` string, required: The UUID of the project to which this finding belongs.
        - `proposed_version` string: Recommended version of dependency if available.
        - `reachable_paths` FindingSpecPath[]: Function paths to the vulnerable method. Only applies to vulnerability findings.
          - `nodes` PathNode[]: List of structured, annotated function nodes.
            - `function_ref` NodeFunctionRef
              - …
            - `internal` boolean
            - `package_version` string
        - `relationship` string: String describing the relationship to dependency, For example, "Foo is a direct dependency of bar.", if applicable.
        - `remediation` string: String describing the recommended remediation to fix this finding.
        - `remediation_action` 'FINDING_REMEDIATION_UNSPECIFIED' | 'FINDING_REMEDIATION_UPGRADE' | 'FINDING_REMEDIATION_DOWNGRADE' | 'FINDING_REMEDIATION_REPLACE' | 'FINDING_REMEDIATION_REMOVE' | 'FINDING_REMEDIATION_VENDOR' | 'FINDING_REMEDIATION_IMPROVE' | 'FINDING_REMEDIATION_REIMPLEMENT' | 'FINDING_REMEDIATION_REVIEW' | 'FINDING_REMEDIATION_NOTIFICATION' | 'FINDING_REMEDIATION_PIN': Recommended action to resolve the finding. - FINDING_REMEDIATION_UPGRADE: Upgrade to a later version. - FINDING_REMEDIATION_DOWNGRADE: Downgrade to an older version. - FINDING_REMEDIATION_REPLACE: Replace dependency with another package. - FINDING_REMEDIATION_REMOVE: Remove unused dependency. - FINDING_REMEDIATION_VENDOR: Vendor a dependency. - FINDING_REMEDIATION_IMPROVE: Make changes to improve a dependency. - FINDING_REMEDIATION_REIMPLEMENT: Reimplement a dependency locally. - FINDING_REMEDIATION_REVIEW: Review, no remediation to suggest - FINDING_REMEDIATION_NOTIFICATION: Notification, there may not be any remediation - FINDING_REMEDIATION_PIN: Pin dependency to one of the recommended versions
        - `snooze` V1DismissParams: Metadata associated with a snooze or ignore request.
          - `comments` string: Comments for the snooze or ignore.
          - `entry_id` string: The ignore file entry id.
          - `expiration_time` string, date-time: Expiration time of the snooze or ignore.
          - `expire_if_fix_available` boolean: Set to true if the snooze or ignore should expire if a fix is available.
          - `file_name` string: Name of the file that was used to ignore the finding.
          - `reason` 'EXCEPTION_REASON_UNSPECIFIED' | 'EXCEPTION_REASON_FALSE_POSITIVE' | 'EXCEPTION_REASON_RISK_ACCEPTED' | 'EXCEPTION_REASON_IN_TRIAGE' | 'EXCEPTION_REASON_OTHER' | 'EXCEPTION_REASON_RESOLVED' | 'EXCEPTION_REASON_PRESENT_IN_BASELINE': Reasons for dismissing a finding. - EXCEPTION_REASON_FALSE_POSITIVE: Tool is incorrect. This is not a real issue. - EXCEPTION_REASON_RISK_ACCEPTED: Risk acknowledged and accepted. - EXCEPTION_REASON_IN_TRIAGE: Issue is actively being triaged. - EXCEPTION_REASON_OTHER: Other reason. Use policy description or dismiss comments to elaborate. - EXCEPTION_REASON_RESOLVED: Issue has been resolved. For example, a secret is no longer valid. - EXCEPTION_REASON_PRESENT_IN_BASELINE: The finding is also present in the baseline scan this one was diffed against, so it is not newly introduced. Set only by container diff tooling, never by a human.
          - `source` 'DISMISS_SOURCE_UNSPECIFIED' | 'DISMISS_SOURCE_CONTAINER_DIFF': Which tool created a snooze or ignore, for tooling that maintains its own dismissals over time and must never clear one it did not create. - DISMISS_SOURCE_UNSPECIFIED: Created by a person, or by tooling that does not maintain what it writes. - DISMISS_SOURCE_CONTAINER_DIFF: Created by `endorctl container diff --snooze-baseline-findings`, or by the equivalent step of `endorctl container scan --diff`. Those commands clear the dismissals carrying this source once the finding is no longer common with the baseline, so no other writer may set it.
          - `update_time` string, date-time: Timestamp of the last update.
          - `updated_by` string: Username of the user who last updated the snooze or ignore.
        - `source_code_version` V1Version
          - `metadata` object: Version metadata.
          - `ref` string, required: Resolved ref of the source control version. Can be a tag, a branch or a SHA.
          - `sha` string: SHA of the source control version. Because the SHA might not be possible to resolved this field is optional.
        - `summary` string, required: A more detailed description of the finding.
        - `target_dependency_name` string: Dependency package name, if applicable. This is just the name (i.e. it does not include the ecosystem or the version).
        - `target_dependency_native_scope` string: Un-normalized native dependency scope from the package manager (e.g. Maven "provided"). Empty if none.
        - `target_dependency_package_name` string: Fully qualified name of the dependency, e.g. eco://package@version, if applicable.
        - `target_dependency_version` string: Dependency version, if applicable. This is just the version (i.e. it does not include the ecosystem or the package name).
        - `target_uuid` string, required: The UUID of the DependencyMetadata object for the dependency, if applicable.
      - `tenant_meta` V1TenantMeta: Tenant related data for the tenant containing the resource.
        - `namespace` string, required: Namespaces are a way to organize organizational units into virtual groupings of resources. Namespaces must be a fully qualified name, for example, the child namespace of namespace "endor.prod" called "app" is called "endor.prod.app".
      - `uuid` string: The UUID of the object.
    - `resource_kind` string, required: The type of the parent resource to which this feedback is attached, such as "Project".
    - `resource_uuid` string, required: The unique identifier (UUID) of the parent resource to which this feedback is attached.
  - `tenant_meta` V1TenantMeta: Tenant related data for the tenant containing the resource.
    - `namespace` string, required: Namespaces are a way to organize organizational units into virtual groupings of resources. Namespaces must be a fully qualified name, for example, the child namespace of namespace "endor.prod" called "app" is called "endor.prod.app".
  - `uuid` string: The UUID of the feedback.

## Other responses

- `default`: An unexpected error response.

## Changes

- **2026-11-03** `4acd9fe15140`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/endorlabs/apis/endor-labs-rest-api-reference/changes/v1/namespaces/:object.tenant_meta.namespace/feedbacks/patch.md)

---

[API](https://skmtc.dev/endorlabs/apis/endor-labs-rest-api-reference.md) - [All operations](https://skmtc.dev/endorlabs/apis/endor-labs-rest-api-reference/llms.txt) - [OpenAPI document](https://skmtc.dev/endorlabs/apis/endor-labs-rest-api-reference/revisions/4acd9fe15140?raw)
